Almond is an open, privacy-preserving virtual assistant by Stanford Open Virtual Assistant Lab. It allows you, among other things, to control Home Assistant using natural language. Once installed, it will be available on Lovelace via the microphone icon in the top right.
Almond consists of three parts:
- Almond Server: Knows about Home Assistant and your data. Executes your sentences.
- LUInet: Neural network that converts your sentences into Thingtalk programs.
- Thingpedia: Skills that provide the building blocks for Thingtalk programs.
To install Almond Server on Hass.io, go to Hass.io App Store, search for Almond and click on Install. Once started, it will initiate a config flow to finish set up in Home Assistant. You can find it on the integrations page in the configuration panel.
You can install Almond Server by following the instructions in their README.
Before linking it to Home Assistant, you will need to visit the Almond UI once to create a password. It is by default available on port 3000.
Once installed, configure Almond like this:
# Example configuration.yaml entry almond: type: local host: http://127.0.0.1:3000
The Almond integration does not update config entries yet. If you make a change to configuration.yaml, you will need to remove the config entry and then restart Home Assistant.
Stanford offers a hosted version of Almond Server called Almond Web. To use this, go to the integrations page and add Almond using the add integration flow.
Your Home Assistant installation needs to be externally accessible if you want Almond Web to be able to control Home Assistant.
It is possible to set up Almond Web manually. You will need to create your own client ID and secret in the web interface.
# Example configuration.yaml entry almond: type: oauth2 client_id: AAAAAAAAAAAAA client_secret: BBBBBBBBBBBBBBBBB
You can now go to the integrations page and start the configuration flow.
Almond is currently limited to the English language. This is not a technical limitation but requires specialized engineering effort. Almond has currently no public timeline for adding other languages.
Almond is constantly improving. It does not currently support all devices, but we’re working with Almond on improving this.