feat(hass): smart-plug lamps as lights (switch_as_x) + free wake-word choice #99
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/hass-plugs-as-lights"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What (from live Binks testing on the M9)
Two fixes:
switch, not alight, so Binks (correctly) saw no lights on. Wrap the three general-purpose plugs (Athom 613888, Shelly Plug 1, Shelly Plug 2 (Lamp)) aslightentities via the built-in Switch as X helper → "lights" commands (Binks + built-in intents + lights cards) now control them. Appliance switches (cat litter, printer camera) left as switches.ok_nabu— the startup automation re-pinned it on every browser reconnect. Stop pinning the wake word (Pipeline=Binks + on-device microWakeWord stay pinned); it is now user-selectable until the customhey_binksmodel ships (Stage 4B re-adds the pin).Changes
seed-switch-as-x-lightsinit container — seedsswitch_as_xconfig entries (config inentry.options, VERSION 1/MINOR 3). Idempotent onoptions.entity_id. Wrapped lights register incore.entity_registry→seed-binks-exposeexposes them to Binks on the next boot (a 2nd rollout is done post-merge so they expose immediately).voice_satellite_binks.yaml— stop forcingwake_word_1.Verification
.storage→ 3 entries, correct + idempotent.light.*entities exist, source switches hidden, exposed to Binks; wake-word dropdown is freely selectable.Note
Binks is not blind — it gets a live exposed-entity + state snapshot each turn; this was a switch-vs-light domain modeling gap.
Areas: 3 of 4 (Living Room/Kitchen/Bedroom) already exist; Office is a 10-sec Settings → Areas add (areas/room-assignment are UI/registry ops I keep out of automation per the repo safety rule). Room→device mapping + the fuller structured-device/RF model deserve their own plan.
Two fixes from live Binks testing: 1. 'Turn off the lights' missed lamps on smart plugs because a plug is a `switch`, not a `light` — Binks (correctly) saw no lights on. Wrap the three general-purpose plugs (Athom 613888, Shelly Plug 1, Shelly Plug 2 (Lamp)) as `light` entities via the built-in Switch as X helper, so 'lights' commands (Binks + built-in intents + lights cards) control them. Appliance switches (cat litter, printer camera) are left as switches. - seed-switch-as-x-lights init container: seeds switch_as_x config entries (config in entry.options, VERSION 1/MINOR 3). Idempotent on options.entity_id. The wrapped lights register in core.entity_registry → seed-binks-expose exposes them to Binks on the next boot. 2. The startup automation re-pinned the wake WORD on every browser reconnect, which blocked picking a word in the UI. Stop pinning wake_word_1 (Pipeline= Binks + on-device microWakeWord stay pinned); it becomes user-selectable until the custom hey_binks model ships (Stage 4B re-adds the pin). Verified: kustomize build OK, package YAML parses, switch_as_x seed dry-runs twice against live .storage (3 entries, correct + idempotent). Note: Binks is NOT blind — it gets a live exposed-entity+state snapshot each turn; this was a switch-vs-light domain modeling gap, now fixed.