feat: expose scene presets as voice-controllable scene.* entities (0.5.0)

Add a SCENE platform (scene.py) so each scene preset becomes a scene.*
entity. Alexa / Google Assistant / HomeKit expose the scene, light, and
switch domains — but NOT button — so the existing button.* scene entities
are invisible to voice assistants. Scenes use a distinct unique_id so both
coexist (buttons for dashboards, scenes for voice).

- Register Platform.SCENE; bump manifest 0.4.0 -> 0.5.0
- README: "Voice Control (Alexa / Google / Siri)" guide (Nabu Casa cloud,
  manual skill linking, HomeKit bridge, voice-friendly naming)
This commit is contained in:
2026-06-23 00:50:38 +03:00
parent eca6cb516a
commit f101ca4c73
4 changed files with 118 additions and 2 deletions
+35 -1
View File
@@ -2,7 +2,7 @@
Custom Home Assistant integration for [LedGrab](https://git.dolgolyov-family.by/alexei.dolgolyov/ledgrab) — ambient lighting system that captures screen content and drives LED strips in real time.
Creates light, switch, sensor, number, and select entities for each configured device, allowing full control and automation from Home Assistant.
Creates light, switch, scene, sensor, number, and select entities for each configured device, allowing full control and automation from Home Assistant — including hands-free voice control via Alexa, Google Assistant, and Siri.
## Installation
@@ -47,6 +47,40 @@ automation:
entity_id: switch.living_room_tv_processing
```
## Voice Control (Alexa / Google / Siri)
Scene presets are exposed both as **`scene.*`** entities (new in 0.5.0) and as `button.*` entities. **For voice control, use the `scene.*` entities** — Alexa, Google Assistant, and HomeKit/Siri expose `scene`, `light`, and `switch` domains, but **not** `button`. Capture targets are `switch.*_processing` entities and `api_input` color sources are `light.*` entities, both of which are also voice-controllable.
### Prerequisites
Install the LedGrab integration (above) and create the entities you want to control. Confirm you have:
- `scene.*` entities for your scene presets (e.g. `scene.movie_night`)
- `switch.*_processing` for your capture targets
- `light.*` for any `api_input` color sources
### Alexa & Google Assistant — easy path (Nabu Casa)
1. Subscribe to **Home Assistant Cloud** (Nabu Casa).
2. **Settings → Home Assistant Cloud → Alexa / Google Assistant** → enable.
3. **Settings → Voice assistants → Expose** → tick the LedGrab `scene`, `switch`, and `light` entities.
4. Discover devices: *"Alexa, discover devices"* (or open the Google Home app).
5. Say *"Alexa, turn on Movie Night"* or *"Hey Google, turn off the TV ambient light."*
### Alexa & Google Assistant — manual path (no subscription)
Link the official **Home Assistant** Alexa skill / Google Assistant action against an externally reachable HA URL with a long-lived access token, then expose the same domains. See HA's [`cloud`](https://www.home-assistant.io/integrations/cloud/), [`google_assistant`](https://www.home-assistant.io/integrations/google_assistant/), and [`alexa`](https://www.home-assistant.io/integrations/alexa/) component docs.
### Siri — HomeKit Bridge
Add the **HomeKit Bridge** integration (`homekit:`), include the LedGrab `scene` / `light` / `switch` entities in its `filter`, then scan the pairing QR code in the iOS Home app. Say *"Hey Siri, turn on Movie Night."*
### Voice-friendly naming tips
- Rename entities in HA so the friendly name is what you'll say (e.g. `scene.movie_night` → "Movie Night").
- Add **Aliases** in the Expose dialog so multiple phrasings work.
- Avoid the generic auto-names ("Light", "Processing").
## Requirements
- Home Assistant 2023.1.0 or later