Create controller-based automations with ease to control your home devices and scenes.
ControllerX brings the following functionalities for different controllers:
- Turn on/Turn off any home device (light, switch, media player, etc.)
- Manual increase/decrease of brightness and color temperature
- Smooth increase/decrease (holding button) of brightness, color temperature, volume, etc.
- Color loop changing if the light supports xy color
- Play/pause music
- Open/close covers
Solutions like Zigbee2MQTT, deCONZ and ZHA have their pros and cons, but if there is something good about these solutions is that we can remove the dependency of a propietary hub (e.g.: IKEA, Xiaomi, Phillips). However, there is a downside about removing this dependency and it is that not only the proprietary hubs let you integrate a controller with lights or media players, but it also gives a behaviour to them. This is why we end up using Home Assistant automations, however when it comes to create complex automations like this kind, it gets tricky and difficult to maintain. This is where ControllerX comes in together with AppDaemon, to give the behaviour to the devices we lose when not having the original hub as well as easily create automation focus on button events.
With just this configuration placed in
/config/appdaemon/apps/apps.yaml, you can have the E1810 controller from IKEA (5 buttons one) connected to the bedroom light and be able to change the brightness and color temperature or color.
livingroom_controller: module: controllerx class: E1810Controller controller: sensor.livingroom_controller_action integration: z2m light: light.bedroom
- E1810 (IKEA) controlling a light through MQTT
- Symfonisk controlling Chromecast volume
- Magic Xiaomi Cube controlling a colour light
- E1810 (IKEA) controlling a colour light with ZHA
- Symfonisk controlling Google Home mini
- Symfonisk controlling a light
- Showing the colour wheel from HA
- E1743 (IKEA) button as a cover controller
- E1810 (IKEA) as a TV remote
- Double click for the middle button for E1810 (IKEA)
ControllerX uses an async loop to make HA call services requests (e.g. to change the brightness, the color temperature, the xy color, the volume of a media player). This means that when a button is held, ControllerX calls periodically HA services until a release action is fired.