This application is a fully balena hosted voice assistant integrating with Home Assistant. It provides an intuitive UI that allows the end-user to easily connect pre-defined sentences to mapped actions (or intents) in Home Assistant.
Previous projects had integrated Alexa or any other voice assistant with Home Assistant, however if you have privacy concerns or simply do not want to pay for a voice assistant, this projects uses an Intel Nuc (that can be swtiched to a Rasp Pi or balenaFin) running the open-source and fully offline Rhasspy server. The only additional hardware required is some way to input/output audio (such as an headset).
This project is built with docker and docker compose. To build it, run:
docker-compose build
and to run:
docker-compose up
This projects involves different moving parts and quite a few different local http servers talking between themselves, therefore, one good practice is to have a reverse-proxy, in this project, we use nginx to do so.
The main services/containers involved are:
- balena audio: A block for out-of-the-box audio handling with PulseAudio server.
- rhasspy: The voice assistant engine that provide many usefull services.
- home assistant: an open source home automation tool that connect multiple devices.
- rules editor: The UI developed that allows the customer to easily declare new sentences and directly connect with Home Assistant intents.
Other additional services used to support the above are:
- haas-configurator: Easily change configuration files and more in the Home Assistant container
- mqtt server: A simple mqtt server that allows haas-configurator and home assistant to talk between themselves.
- nginx: As mentioned before, the only customer facing app that handles all the request forwarding internally.
