Skip to content

feat(editor): wire up show_window_contacts_in_rooms + show_door_contacts_in_rooms#282

Open
TheDave94 wants to merge 1 commit into
TheRealSimon42:mainfrom
TheDave94:feat/editor-coverage
Open

feat(editor): wire up show_window_contacts_in_rooms + show_door_contacts_in_rooms#282
TheDave94 wants to merge 1 commit into
TheRealSimon42:mainfrom
TheDave94:feat/editor-coverage

Conversation

@TheDave94
Copy link
Copy Markdown

Summary

Two config fields — `show_window_contacts_in_rooms` and `show_door_contacts_in_rooms` — existed in `Simon42StrategyConfig` with translation strings (en + de) describing intended behavior, but the implementation was never finished: no editor UI and no view-side gating. Changing the values in YAML had zero effect. From the user's perspective the feature was advertised in the strings but didn't work.

This PR closes that loop:

  1. `RoomViewStrategy` now gates the window/door contact badge candidates on the corresponding flag. Default is `true` (opt-out via `!== false`), so existing installs see no behavior change — badges remain visible by default. Set either flag to `false` to silence that badge type.
  2. `StrategyEditor` exposes both toggles in the Areas/Rooms section, alongside the existing `show_locks_in_rooms` / `show_automations_in_rooms` / `show_scripts_in_rooms` toggles.
  3. Type comments updated to document the default-true / opt-out semantics (the original `default: false` comments were aspirational and would have been a breaking change had they been wired up that way).

How this was found

Walked every field in `Simon42StrategyConfig` and grepped `StrategyEditor.ts` for each. After filtering out internal/derived types (FloorGroup, SensorEntities, ResolvedArea, LovelaceViewConfig fields like `max_columns`), these two were the only real "declared in config but not wired anywhere" gaps. The audit found no other YAML-only fields — every other config option already has editor UI.

Test plan

  • Defaults: existing dashboards unchanged (window + door badges still visible)
  • Editor: both toggles appear in the Areas/Rooms section
  • Toggle `show_window_contacts_in_rooms` off → window contact badges disappear
  • Toggle `show_door_contacts_in_rooms` off → door contact badges disappear
  • Both on → behaves identically to defaults

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.

…cts_in_rooms

Both fields existed in Simon42StrategyConfig with translation strings
(en + de) describing intended behavior, but the implementation was never
finished: no editor UI and no view-side gating. The translations made
this look like a working feature in HA installs that read them, even
though changing the values had no effect.

Three-part fix:

1. RoomViewStrategy gates the window/door contact badge candidates on
   the corresponding flag (default true via != false, so existing
   installs see no behavior change — badges remain visible by default).

2. Editor exposes both toggles in the Areas/Rooms section, alongside
   show_locks_in_rooms / show_automations_in_rooms / show_scripts_in_rooms.

3. Type comments updated to document the default-true / opt-out
   semantics (the original "default: false" comments were aspirational
   and would have been a breaking change had they been wired up that way).

Found via an editor-coverage audit: walked every field in
Simon42StrategyConfig and confirmed each has either editor UI or is an
internal/derived type. These two were the only real orphans.
@codacy-production
Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

🟢 Metrics 0 complexity · 0 duplication

Metric Results
Complexity 0
Duplication 0

View in Codacy

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>
@TheDave94 TheDave94 closed this May 20, 2026
@TheDave94 TheDave94 deleted the feat/editor-coverage branch May 20, 2026 22:44
@TheDave94 TheDave94 restored the feat/editor-coverage branch May 21, 2026 08:56
@TheDave94 TheDave94 reopened this May 21, 2026
@TheDave94
Copy link
Copy Markdown
Author

TheDave94 commented May 21, 2026

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>
@TheDave94 TheDave94 closed this May 22, 2026
@TheDave94 TheDave94 deleted the feat/editor-coverage branch May 22, 2026 05:55
@TheDave94 TheDave94 restored the feat/editor-coverage branch May 23, 2026 20:45
@TheDave94 TheDave94 reopened this May 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant