feat(overview): five opt-in live header badges (power, unavailable count, now-playing, sun, updates)#271
Open
TheDave94 wants to merge 11 commits into
Open
Conversation
Adds power_badge_entity config field. When set to a sensor with device_class 'power' or unit W/kW, a small badge appears in the overview header (next to person chips) showing the current value. Modular + auto-hide: - Unset by default → no badge, no behaviour change - Even when configured, the badge is dropped if the entity disappears from hass.states (renamed integration, etc.) — no broken badge - Editor dropdown is itself hidden when no power-class sensors exist Required integration: none. Works with any sensor reporting power (grid power from energy integrations, smart-plug power readings, inverter live output, etc.). - types/strategy.ts: power_badge_entity?: string - OverviewViewStrategy: inject power badge into the badges array - StrategyEditor: _getPowerSensorEntities helper + dropdown under energy section (only rendered when sensors are available) - en.json / de.json: descriptions Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds an optional red badge in the overview header showing the count of entities whose state is "unavailable". Useful for noticing broken integrations, dead batteries, offline devices at a glance. Modular + auto-hide: - show_unavailable_alert_badge defaults to false → no surface area change - Auto-hides at zero (count > 0 is the only render condition) - Respects user-curated filters: no_dboard label, hidden_by, registry hidden flag — entities the user has chosen not to see don't inflate the count Required integration: none. - types/strategy.ts: show_unavailable_alert_badge?: boolean - OverviewViewStrategy: count + badge injection - StrategyEditor: checkbox under the section-order panel with description - en.json / de.json: translations Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds a small green badge in the overview header showing the first media_player.* entity whose state is 'playing'. Click opens the media controls. Modular + auto-hide: - show_now_playing_badge defaults to false - Badge only renders when at least one media_player is actively playing; auto-hides when paused / idle / off / unavailable Required integration: none — uses the HA-native media_player domain. - types/strategy.ts: show_now_playing_badge?: boolean - OverviewViewStrategy: badge injection - StrategyEditor: checkbox under the section-order panel - en.json / de.json: translations Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds an optional badge for sun.sun in the overview header. Icon flips between sunset-down (sun up) and sunset-up (sun down); tap opens more-info with the next sunrise/sunset. Modular + auto-hide: - show_sun_badge defaults to false - Badge auto-hides if sun.sun entity isn't present Required integration: the HA-bundled sun integration (active by default). - types/strategy.ts: show_sun_badge?: boolean - OverviewViewStrategy: badge injection - StrategyEditor: checkbox under section-order panel - en.json / de.json: translations Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds show_updates_badge config (default false). When enabled, a small orange badge in the overview header shows the count of update.* entities in state 'on'. Tap navigates to Settings → Updates. Modular + auto-hide: - Default false → no surface area change - Auto-hides at zero pending updates - Mirrors PR TheRealSimon42#260 (maintenance section) for users who prefer a header badge over a whole section, or want both at once Required integration: none — update.* is HA-native. - types/strategy.ts: show_updates_badge?: boolean - OverviewViewStrategy: count visible update.* entities, inject badge - StrategyEditor: checkbox under section-order panel - en.json / de.json: translations Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
# Conflicts: # src/translations/de.json # src/translations/en.json # src/types/strategy.ts # src/views/OverviewViewStrategy.ts
# Conflicts: # src/editor/StrategyEditor.ts # src/translations/de.json # src/translations/en.json # src/types/strategy.ts # src/views/OverviewViewStrategy.ts
# Conflicts: # src/editor/StrategyEditor.ts # src/translations/de.json # src/translations/en.json # src/types/strategy.ts # src/views/OverviewViewStrategy.ts
# Conflicts: # src/editor/StrategyEditor.ts # src/translations/de.json # src/translations/en.json # src/types/strategy.ts # src/views/OverviewViewStrategy.ts
This was referenced May 19, 2026
Up to standards ✅🟢 Issues
|
| Metric | Results |
|---|---|
| Complexity | 11 |
| Duplication | 0 |
NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.
TheDave94
pushed a commit
to TheDave94/oriel-dashboard
that referenced
this pull request
May 20, 2026
Brings into main the remaining open PRs that weren't part of the prior consolidation (bb43b04): Improvement PRs (8 — real content): - TheRealSimon42#277 chore(ci): translation lint guard - TheRealSimon42#278 test: section-builder + entity-filter unit tests + snapshots - TheRealSimon42#279 feat(rooms): auto-detect humidifier/valve/water_heater - TheRealSimon42#280 feat(editor): derive target_section dropdown from section meta - TheRealSimon42#281 fix(areas): auto-hide section + audit test - TheRealSimon42#282 feat(editor): wire show_window_contacts_in_rooms + show_door_contacts_in_rooms - TheRealSimon42#283 feat: custom_sections — user-declared sections without forking - TheRealSimon42#284 chore(ci): release-please + release-build + ESLint enforcement Grouped PRs (7 — content already in main via bb43b04 consolidation; recorded with `-s ours` so the merges land in history without duplicate/regressive edits): - TheRealSimon42#270 grouped/optional-overview-sections - TheRealSimon42#271 grouped/live-overview-badges - TheRealSimon42#272 grouped/battery-view-improvements - TheRealSimon42#273 grouped/room-view-features - TheRealSimon42#274 grouped/section-meta-security - TheRealSimon42#275 grouped/covers-weather - TheRealSimon42#276 grouped/persons-overview-tweaks CI fixes uncovered during merge: - Bump Node 20 → 22 in validate.yml + release-build.yml (ESLint 10 requires Node 22+) - Load eslint-plugin-security (rules off) so source-level Codacy disable directives resolve cleanly - Drop unused PropertyValues import in StrategyEditor.ts Version 1.3.4-thedave-r2 → 1.4.0-thedave (minor bump: feat: custom_sections, auto-detect humidifier/valve, editor coverage, release automation). Dist rebuilt + tests + ESLint pass (0 errors, 0 warnings). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Author
|
My main focus has shifted to a downstream project (Oriel Dashboard) — built on what simon42 established, taken in its own direction — but the work in this PR was always meant for simon42 and I'm happy to keep iterating on it here. Address review feedback, split bundled changes into smaller pieces, whatever helps the review. Just ping me. |
TheDave94
pushed a commit
to TheDave94/oriel-dashboard
that referenced
this pull request
May 21, 2026
Brings into main the remaining open PRs that weren't part of the prior consolidation (ee9c67c): Improvement PRs (8 — real content): - TheRealSimon42#277 chore(ci): translation lint guard - TheRealSimon42#278 test: section-builder + entity-filter unit tests + snapshots - TheRealSimon42#279 feat(rooms): auto-detect humidifier/valve/water_heater - TheRealSimon42#280 feat(editor): derive target_section dropdown from section meta - TheRealSimon42#281 fix(areas): auto-hide section + audit test - TheRealSimon42#282 feat(editor): wire show_window_contacts_in_rooms + show_door_contacts_in_rooms - TheRealSimon42#283 feat: custom_sections — user-declared sections without forking - TheRealSimon42#284 chore(ci): release-please + release-build + ESLint enforcement Grouped PRs (7 — content already in main via ee9c67c consolidation; recorded with `-s ours` so the merges land in history without duplicate/regressive edits): - TheRealSimon42#270 grouped/optional-overview-sections - TheRealSimon42#271 grouped/live-overview-badges - TheRealSimon42#272 grouped/battery-view-improvements - TheRealSimon42#273 grouped/room-view-features - TheRealSimon42#274 grouped/section-meta-security - TheRealSimon42#275 grouped/covers-weather - TheRealSimon42#276 grouped/persons-overview-tweaks CI fixes uncovered during merge: - Bump Node 20 → 22 in validate.yml + release-build.yml (ESLint 10 requires Node 22+) - Load eslint-plugin-security (rules off) so source-level Codacy disable directives resolve cleanly - Drop unused PropertyValues import in StrategyEditor.ts Version 1.3.4-thedave-r2 → 1.4.0-thedave (minor bump: feat: custom_sections, auto-detect humidifier/valve, editor coverage, release automation). Dist rebuilt + tests + ESLint pass (0 errors, 0 warnings). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds five opt-in live badges to the overview header. Each is off by default, auto-hides when no relevant entity/state is present, and is configurable via the editor.
power_badge_entityconfigured or entity missingunavailable, respecting hidden/excluded labelsmedia_playerinplayingstate, tap → more-infosun.sunwith auto icon swapsun.sunentity missingupdate.*entities, tap →/config/updatesConfig
power_badge_entity?: string— pick a sensor to enable; auto-hide if absentshow_unavailable_alert_badge?: boolean— default falseshow_now_playing_badge?: boolean— default falseshow_sun_badge?: boolean— default false (auto-hide if nosun.sun)show_updates_badge?: boolean— default falseAll five are independently toggleable. The badge order in the header is
person → power → unavailable → now-playing → sun → updates → custom.Integrations / dependencies
sun.sunentity). Auto-hides if absent.update.*entities (HA Core / HACS / Supervisor produce these automatically when integrations are installed).media_playerentity present.Supersedes
This PR consolidates five individual feature PRs into a single review unit because they all add to the same badge array in
OverviewViewStrategy.tsplus config fields and editor UI. Merging them one-by-one would have caused cascading conflicts.Test plan
AI-drafted under human supervision by @TheDave94. Tested live on Home Assistant — fully when the relevant hardware is available, otherwise only along the code paths that don't require an actual sensor of that type.