f101ca4c73
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)
99 lines
4.4 KiB
Markdown
99 lines
4.4 KiB
Markdown
# LedGrab Home Assistant Integration
|
|
|
|
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, 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
|
|
|
|
### Option 1: HACS (recommended)
|
|
|
|
1. Install [HACS](https://hacs.xyz/docs/setup/download) if you have not already.
|
|
2. Open HACS in Home Assistant.
|
|
3. Click the three-dot menu, then **Custom repositories**.
|
|
4. Add URL: `https://git.dolgolyov-family.by/alexei.dolgolyov/ledgrab-haos-integration`
|
|
5. Set category to **Integration** and click **Add**.
|
|
6. Search for "LedGrab" in HACS and click **Download**.
|
|
7. Restart Home Assistant.
|
|
8. Go to **Settings > Devices & Services > Add Integration** and search for "LedGrab".
|
|
9. Enter your server URL (e.g., `http://192.168.1.100:8080`) and API key.
|
|
|
|
### Option 2: Manual
|
|
|
|
Copy the `custom_components/ledgrab/` folder from this repository into your Home Assistant `config/custom_components/` directory, then restart Home Assistant and add the integration as above.
|
|
|
|
## Automation Example
|
|
|
|
```yaml
|
|
automation:
|
|
- alias: "Start ambient lighting when TV turns on"
|
|
trigger:
|
|
- platform: state
|
|
entity_id: media_player.living_room_tv
|
|
to: "on"
|
|
action:
|
|
- service: switch.turn_on
|
|
target:
|
|
entity_id: switch.living_room_tv_processing
|
|
|
|
- alias: "Stop ambient lighting when TV turns off"
|
|
trigger:
|
|
- platform: state
|
|
entity_id: media_player.living_room_tv
|
|
to: "off"
|
|
action:
|
|
- service: switch.turn_off
|
|
target:
|
|
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
|
|
- A running [LedGrab](https://git.dolgolyov-family.by/alexei.dolgolyov/ledgrab) server accessible on your network
|
|
|
|
## Troubleshooting
|
|
|
|
1. Verify the component exists: check that `config/custom_components/ledgrab/` is present.
|
|
2. Clear the browser cache and hard-refresh the HA UI.
|
|
3. Restart Home Assistant.
|
|
4. Check logs at **Settings > System > Logs** and search for `ledgrab`.
|
|
|
|
## License
|
|
|
|
MIT
|