Voice-controlled interface for Home Assistant. Speak natural commands to control lights, switches, covers, sirens, media players, check sensor states, and add items to your shopping list. Uses LLM-based intent classification with fuzzy entity name matching — no exact names needed.
- "smart home"
- "home assistant"
- "control my home"
- "home control"
- Home Assistant must be accessible via REST API on your local network
- Generate a Long-Lived Access Token in Home Assistant:
- Go to your HA instance → Profile (bottom-left user icon) → Long-Lived Access Tokens → Create Token
- Open
main.pyand replaceYOUR_HOME_ASSISTANT_TOKEN_HEREwith your token - Update
HA_URLif your Home Assistant is not athttp://192.168.68.60:8123
- On trigger, fetches all entity states from the HA REST API
- Filters to actionable domains (lights, switches, covers, sensors, sirens, media players, todo lists)
- Greets you with device count
- Enters a conversation loop — speak commands naturally
- LLM classifies your intent and fuzzy-matches entity names from the full list
- Executes the action via HA REST API and speaks the result
- Dangerous actions (gate, sirens) require voice confirmation before execution
- Say "done", "stop", or "goodbye" to exit
| Voice Command | What Happens |
|---|---|
| "Turn on/off the [device]" | Toggles lights, switches, etc. |
| "Toggle the [device]" | Toggles device state |
| "Open/close the gate" | Controls covers (with confirmation) |
| "Is there motion at [camera]?" | Reads binary sensor state |
| "What's the [sensor] reading?" | Reports sensor value |
| "Sound/stop the siren" | Controls sirens (with confirmation) |
| "Add milk to the shopping list" | Adds item to HA todo list |
User: "Smart home" AI: "Home Assistant connected. I found 24 devices across 5 categories. What would you like to do?" User: "Turn on the floodlight" AI: "Turning on Camera 1 Floodlight." User: "Is there motion at the front door?" AI: "No motion detected at the front door." User: "Open the gate" AI: "Are you sure you want to open the gate?" User: "Yes" AI: "Opening the driveway gate." User: "Add cat food to the shopping list" AI: "Added cat food to your shopping list." User: "Done" AI: "Home Assistant control ended. Have a good one."