Skip to content

Home

Create controller-based automations with ease to control your home devices and scenes from Home Assistant (HA).

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

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.

Why ControllerX?

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.

Quick example

With just this configuration placed in /homeassistant/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

Videos examples

Community

Thank you to all these people for putting out there content related to ControllerX:

Questions can be asked in following channels: