For the past couple of months, I’ve been working on Home Intent, a locally hosted voice assistant for Home Assistant! It’s especially useful if any cloud services might be down…!
It uses Rhasspy under the covers, and after setup, Home Intent will pull in all the various controllable entities and automatically setup all the sentences. No more manually setting up entities and messing around with templates. It’s all handled for you.
It currently supports climate, cover, fan, group, humidifier, light, lock, remote, shopping list, and switch entities. After connecting it to Home Assistant (which involves setting up a long-lived token), it’s just configuring a mic/speaker (which it has a nice interface for!)
After that, you can just interact with Home Assistant with your voice:
- Jarvis, turn on the kitchen light
- Jarvis, add milk to the shopping list
- Jarvis, set the bedroom light to red at 80% brightness
We even have a simple timer that can be enabled - “Jarvis, set timer 10 minutes”
Setup is currently done via docker-compose, and once satellite support is in, we’ll work on adding it as a Home Assistant addon.
version: "3.9"
services:
homeintent:
image: "ghcr.io/jarvyj/homeintent:latest"
restart: unless-stopped
volumes:
- "/PATH_TO_CONFIG/rhasspy:/profiles"
- "/PATH_TO_CONFIG/config:/config"
- "/etc/localtime:/etc/localtime:ro"
ports:
- "11102:11102" # For the Home Intent UI
- "12183:12183" # For communicating over MQTT/satellites
- "12101:12101" # For the Rhasspy UI (optional)
devices:
- "/dev/snd:/dev/snd"
Code can be found on GitHub