$ git clone git@github.com:sidnarayanan/control.git
$ cd control
$ pip install .
There are three primary executables. add_keyword
lets the user define a new keyword.
$ add_keyword --keyword kitchen_light --n_samples 10
# user will be asked to repeat the keyword 10 times to build a reference library
To remove an unneeded keyword:
$ remove_keyword --keyword kitchen_lights
The agent is started by simply calling agent
. TODO: implement a daemon mode.
There are two configuration files you can create.
The first is ~/.control/config.yaml
. It overrides settings defined in control/config.py
. The most important setting to set is control_wakeword
, which is used to wake the agent into active-listening mode. TODO: write proper documentation.
The second is ~/.control/actions.yaml
. It is used to define Home Assistant actions. For example:
kitchen_lights:
action: light_toggle
entity: lights.kitchen_lights
Assume the above is in your actions.yaml
, and you have defined a "kitchen_lights"
keyword above. Then, upon hearing the corresponding keyword, the agent will call control.hass.light_toggle(entity="lights.kitchen_lights")
. The list of currently-supported HASS actions are available in control/hass.py
. TODO: write proper documentation.
Control was originally named after Stephen Fry's character, but it turns out that "control" is a horrible wakeword. It's too easily confused with other English words, like "hello"