Created ControllerX app is not found as an active app in AppDaemon

Hey guys, I need your help.

I use HA as a virtual machine on a Synology NAS (VMware ESXi/vSphere). Everything works fine. Now I wanted to install ControllerX on my HA to controll lights with my Philips Hue Dimmer V2 controller. So I added AppDaemon and installed ControllerX via HACS. I used the official installation guide (Installation - ControllerX) and followed all the steps in the right way:

My /addon_configs/a0d7b954_appdaemon/appdaemon.yaml is edited:

---
secrets: /homeassistant/secrets.yaml
appdaemon:
  latitude: 52.379189
  longitude: 4.899431
  elevation: 2
  time_zone: Europe/Amsterdam
  missing_app_warnings: 0 
  app_dir: /homeassistant/appdaemon/apps
  plugins:
    HASS:
      type: hass
http:
  url: http://127.0.0.1:5050
admin:
api:
hadashboard:

ControllerX is installed to /homeassistant/appdaemon/apps/

After every change in AppDaemon settings I restarted AppDaemon addon.

My apps.yaml in /homeassistant/appdaemon/apps/apps.yaml looks like:

---
hello_world:
  module: hello
  class: HelloWorld

schlafzimmer_hue.dimmer:
  module: controllerx
  class: Philips929002398602LightController
  integration: zha
  controller: 00:17:88:01:0d:8b:70:74
  light: light.schlafzimmer

When I start AppDaemon addon, the log file shows that AppDaemon doesn’t find <<schlafzimmer_hue.dimmer>> as a second active app:

Add-on: AppDaemon
 Python Apps and Dashboard using AppDaemon 4.x for Home Assistant
-----------------------------------------------------------
 Add-on version: 0.16.7
 You are running the latest version of this add-on.
 System: Home Assistant OS 14.2  (amd64 / qemux86-64)
 Home Assistant Core: 2025.3.3
 Home Assistant Supervisor: 2025.03.2
-----------------------------------------------------------
 Please, share the above information when looking for help
 or support in, e.g., GitHub, forums or the Discord chat.
-----------------------------------------------------------
s6-rc: info: service base-addon-banner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service base-addon-log-level: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service base-addon-log-level successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service init-appdaemon: starting
s6-rc: info: service init-appdaemon successfully started
s6-rc: info: service appdaemon: starting
s6-rc: info: service appdaemon successfully started
s6-rc: info: service legacy-services: starting
[23:21:47] INFO: Starting AppDaemon...
s6-rc: info: service legacy-services successfully started
2025-03-15 23:21:53.861997 INFO AppDaemon: AppDaemon Version 4.4.2 starting
2025-03-15 23:21:53.862503 INFO AppDaemon: Python version is 3.11.10
2025-03-15 23:21:53.862880 INFO AppDaemon: Configuration read from: /config/appdaemon.yaml
2025-03-15 23:21:53.863542 INFO AppDaemon: Added log: AppDaemon
2025-03-15 23:21:53.864150 INFO AppDaemon: Added log: Error
2025-03-15 23:21:53.864721 INFO AppDaemon: Added log: Access
2025-03-15 23:21:53.865388 INFO AppDaemon: Added log: Diag
2025-03-15 23:21:54.251206 INFO AppDaemon: Loading Plugin HASS using class HassPlugin from module hassplugin
2025-03-15 23:21:54.631854 INFO HASS: HASS Plugin Initializing
2025-03-15 23:21:54.632503 WARNING HASS: ha_url not found in HASS configuration - module not initialized
2025-03-15 23:21:54.633107 INFO HASS: HASS Plugin initialization complete
2025-03-15 23:21:54.636476 INFO AppDaemon: Initializing HTTP
2025-03-15 23:21:54.637569 INFO AppDaemon: Using 'ws' for event stream
2025-03-15 23:21:54.653840 INFO AppDaemon: Starting API
2025-03-15 23:21:54.661623 INFO AppDaemon: Starting Admin Interface
2025-03-15 23:21:54.662469 INFO AppDaemon: Starting Dashboards
2025-03-15 23:21:54.762005 INFO HASS: Connected to Home Assistant 2025.3.3
2025-03-15 23:21:54.783982 INFO AppDaemon: App 'hello_world' added
2025-03-15 23:21:54.786223 INFO AppDaemon: Found 1 active apps
2025-03-15 23:21:54.787620 INFO AppDaemon: Found 0 inactive apps
2025-03-15 23:21:54.787943 INFO AppDaemon: Found 0 global libraries
2025-03-15 23:21:54.788369 INFO AppDaemon: Starting Apps with 1 workers and 1 pins
2025-03-15 23:21:54.790442 INFO AppDaemon: Running on port 5050
2025-03-15 23:21:54.847892 INFO HASS: Evaluating startup conditions
2025-03-15 23:21:54.861950 INFO HASS: Startup condition met: hass state=RUNNING
2025-03-15 23:21:54.862882 INFO HASS: All startup conditions met
2025-03-15 23:21:54.888465 INFO AppDaemon: Got initial state from namespace default
2025-03-15 23:21:56.800189 INFO AppDaemon: Scheduler running in realtime
2025-03-15 23:21:56.807520 INFO AppDaemon: Adding /homeassistant/appdaemon/apps to module import path
2025-03-15 23:21:56.808474 INFO AppDaemon: Adding /homeassistant/appdaemon/apps/controllerx to module import path
2025-03-15 23:21:56.809425 INFO AppDaemon: Adding /homeassistant/appdaemon/apps/controllerx/cx_devices to module import path
2025-03-15 23:21:56.810518 INFO AppDaemon: Adding /homeassistant/appdaemon/apps/controllerx/cx_core to module import path
2025-03-15 23:21:56.811921 INFO AppDaemon: Adding /homeassistant/appdaemon/apps/controllerx/cx_core/feature_support to module import path
2025-03-15 23:21:56.812854 INFO AppDaemon: Adding /homeassistant/appdaemon/apps/controllerx/cx_core/type to module import path
2025-03-15 23:21:56.813801 INFO AppDaemon: Adding /homeassistant/appdaemon/apps/controllerx/cx_core/action_type to module import path
2025-03-15 23:21:56.814681 INFO AppDaemon: Adding /homeassistant/appdaemon/apps/controllerx/cx_core/integration to module import path
2025-03-15 23:21:56.815815 INFO AppDaemon: Adding /homeassistant/appdaemon/apps/controllerx/cx_core/stepper to module import path
2025-03-15 23:21:56.926698 INFO AppDaemon: Loading App Module: /homeassistant/appdaemon/apps/hello.py
2025-03-15 23:21:57.041939 INFO AppDaemon: Loading app hello_world using class HelloWorld from module hello
2025-03-15 23:21:57.045592 INFO AppDaemon: Calling initialize() for hello_world
2025-03-15 23:21:57.194548 INFO hello_world: Hello from AppDaemon
2025-03-15 23:21:57.196608 INFO hello_world: You are now ready to run Apps!
2025-03-15 23:21:57.212215 INFO AppDaemon: App initialization complete

The IEEE of the Hue Controller is 100% correct. The ID of the light the same. I have no idea, why AppDaemon doesn’t find the ControllerX app, Who can tell me where my mistake is? I am happy for every help/idea I get from you!

Thanks guys in advance!

Hi @kaiba_mann ,

Apps names cannot contain a dot (.) in its name (schlafzimmer_hue.dimmer). This an AppDaemon feature to hide configurarion so YAML anchors can be used.

Although it is not a ControllerX issue, I will make sure to add a note to the documentation as a reminder about this rule.

Regards,
Xavi M.

Thanks! That helped me to let AppDaemon find the app.

Add-on version: 0.16.7
 You are running the latest version of this add-on.
 System: Home Assistant OS 14.2  (amd64 / qemux86-64)
 Home Assistant Core: 2025.3.3
 Home Assistant Supervisor: 2025.03.3
-----------------------------------------------------------
 Please, share the above information when looking for help
 or support in, e.g., GitHub, forums or the Discord chat.
-----------------------------------------------------------
s6-rc: info: service base-addon-banner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service base-addon-log-level: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service base-addon-log-level successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service init-appdaemon: starting
s6-rc: info: service init-appdaemon successfully started
s6-rc: info: service appdaemon: starting
s6-rc: info: service appdaemon successfully started
s6-rc: info: service legacy-services: starting
[21:18:46] INFO: Starting AppDaemon...
s6-rc: info: service legacy-services successfully started
2025-03-19 21:18:52.879699 INFO AppDaemon: AppDaemon Version 4.4.2 starting
2025-03-19 21:18:52.880057 INFO AppDaemon: Python version is 3.11.10
2025-03-19 21:18:52.880552 INFO AppDaemon: Configuration read from: /config/appdaemon.yaml
2025-03-19 21:18:52.880899 INFO AppDaemon: Added log: AppDaemon
2025-03-19 21:18:52.881246 INFO AppDaemon: Added log: Error
2025-03-19 21:18:52.881599 INFO AppDaemon: Added log: Access
2025-03-19 21:18:52.881902 INFO AppDaemon: Added log: Diag
2025-03-19 21:18:53.263652 INFO AppDaemon: Loading Plugin HASS using class HassPlugin from module hassplugin
2025-03-19 21:18:53.630678 INFO HASS: HASS Plugin Initializing
2025-03-19 21:18:53.631017 WARNING HASS: ha_url not found in HASS configuration - module not initialized
2025-03-19 21:18:53.631343 INFO HASS: HASS Plugin initialization complete
2025-03-19 21:18:53.632137 INFO AppDaemon: Initializing HTTP
2025-03-19 21:18:53.633116 INFO AppDaemon: Using 'ws' for event stream
2025-03-19 21:18:53.641387 INFO AppDaemon: Starting API
2025-03-19 21:18:53.645861 INFO AppDaemon: Starting Admin Interface
2025-03-19 21:18:53.646853 INFO AppDaemon: Starting Dashboards
2025-03-19 21:18:53.683112 INFO HASS: Connected to Home Assistant 2025.3.3
2025-03-19 21:18:53.705704 INFO AppDaemon: App 'hello_world' added
2025-03-19 21:18:53.710540 INFO AppDaemon: App 'schlafzimmer_hue_dimmer' added
2025-03-19 21:18:53.712322 INFO AppDaemon: Found 2 active apps
2025-03-19 21:18:53.713099 INFO AppDaemon: Found 0 inactive apps
2025-03-19 21:18:53.713528 INFO AppDaemon: Found 0 global libraries
2025-03-19 21:18:53.714178 INFO AppDaemon: Starting Apps with 2 workers and 2 pins
2025-03-19 21:18:53.716694 INFO AppDaemon: Running on port 5050
2025-03-19 21:18:53.772927 INFO HASS: Evaluating startup conditions
2025-03-19 21:18:53.787302 INFO HASS: Startup condition met: hass state=RUNNING
2025-03-19 21:18:53.787960 INFO HASS: All startup conditions met
2025-03-19 21:18:53.816130 INFO AppDaemon: Got initial state from namespace default
2025-03-19 21:18:53.913630 INFO AppDaemon: New client Admin Client connected
2025-03-19 21:18:55.724975 INFO AppDaemon: Scheduler running in realtime
2025-03-19 21:18:55.754099 INFO AppDaemon: Adding /homeassistant/appdaemon/apps to module import path
2025-03-19 21:18:55.755326 INFO AppDaemon: Adding /homeassistant/appdaemon/apps/controllerx to module import path
2025-03-19 21:18:55.763283 INFO AppDaemon: Adding /homeassistant/appdaemon/apps/controllerx/cx_devices to module import path
2025-03-19 21:18:55.764134 INFO AppDaemon: Adding /homeassistant/appdaemon/apps/controllerx/cx_core to module import path
2025-03-19 21:18:55.765098 INFO AppDaemon: Adding /homeassistant/appdaemon/apps/controllerx/cx_core/feature_support to module import path
2025-03-19 21:18:55.765980 INFO AppDaemon: Adding /homeassistant/appdaemon/apps/controllerx/cx_core/type to module import path
2025-03-19 21:18:55.766666 INFO AppDaemon: Adding /homeassistant/appdaemon/apps/controllerx/cx_core/action_type to module import path
2025-03-19 21:18:55.767335 INFO AppDaemon: Adding /homeassistant/appdaemon/apps/controllerx/cx_core/integration to module import path
2025-03-19 21:18:55.768121 INFO AppDaemon: Adding /homeassistant/appdaemon/apps/controllerx/cx_core/stepper to module import path
2025-03-19 21:18:55.868574 INFO AppDaemon: Loading App Module: /homeassistant/appdaemon/apps/hello.py
2025-03-19 21:18:55.937529 INFO AppDaemon: Loading App Module: /homeassistant/appdaemon/apps/controllerx/controllerx.py
2025-03-19 21:18:56.237121 INFO AppDaemon: Loading app hello_world using class HelloWorld from module hello
2025-03-19 21:18:56.244263 INFO AppDaemon: Loading app schlafzimmer_hue_dimmer using class Philips929002398602LightController from module controllerx
2025-03-19 21:18:56.251881 INFO AppDaemon: Calling initialize() for hello_world
2025-03-19 21:18:56.427247 INFO hello_world: Hello from AppDaemon
2025-03-19 21:18:56.429378 INFO hello_world: You are now ready to run Apps!
2025-03-19 21:18:56.431284 INFO AppDaemon: Calling initialize() for schlafzimmer_hue_dimmer
2025-03-19 21:18:56.443379 INFO schlafzimmer_hue_dimmer: 🎮 ControllerX v4.29.0
2025-03-19 21:18:56.579065 INFO AppDaemon: App initialization complete
2025-03-19 21:18:56.579065 INFO AppDaemon: App initialization complete

But now I have the problem, that ControllerX is connected to the Philips Hue Dimmer V2 and in AppDaemon I can see the callback record of every time firing a button on the Philips Hue Dimmer V2 but there is no effect to the lights at all.

Bild_2025-03-19_212900286

The apps.yaml looks now like that:

schlafzimmer_hue_dimmer:
  module: controllerx
  class: Philips929002398602LightController
  integration: zha
  controller: 00:17:88:01:0d:8b:70:74
  light: light.schlafzimmer

I use a light group named “schlafzimmer” and the entity of the group I got from HA group integration.

I also changed the light to a single light entity but also the same result. No light control…

What could be the reason? I have no clue…

Does the light.schlafzimmer work in HA through developer tools > services?

Are there any logs in AppDaemon when pressing the button?

The group entity works in HA through developer tools > services. There are no logs in AppDaemon when pressing the button of the HueDimmer V2 (log level: info), just the callbacks are recorded in AppDaemon:

Could you add “log_level: DEBUG” to the controller configuration and then share logs with me when using the controller?

There are so many debug logs every second so I hope I copied the ones you wanna analyse:

2025-03-21 14:51:18.427320 DEBUG AppDaemon: Update thread info: async
2025-03-21 14:51:18.427845 DEBUG AppDaemon: get_state: sensor.threads_current_busy.None None True
2025-03-21 14:51:18.428348 DEBUG AppDaemon: set_state(): sensor.threads_current_busy, {'state': 1}
2025-03-21 14:51:18.428928 DEBUG AppDaemon: parse_state: sensor.threads_current_busy, {'state': 1}
2025-03-21 14:51:18.429489 DEBUG AppDaemon: Old state: {'entity_id': 'sensor.threads_current_busy', 'state': 0, 'last_changed': '2025-03-21T14:50:44+01:00', 'attributes': {}}
2025-03-21 14:51:18.429980 DEBUG AppDaemon: New state: {'entity_id': 'sensor.threads_current_busy', 'state': 1, 'last_changed': '2025-03-21T14:51:18+01:00', 'attributes': {}}
2025-03-21 14:51:18.430254 DEBUG AppDaemon: sending event locally
2025-03-21 14:51:18.430823 DEBUG AppDaemon: get_state: sensor.threads_current_busy.None None True
2025-03-21 14:51:18.433891 DEBUG AppDaemon: get_state: sensor.threads_max_busy.None None True
2025-03-21 14:51:18.435026 DEBUG AppDaemon: set_state(): thread.async, {'q': 0, 'state': 'event_callback() in schlafzimmer_hue_dimmer', 'time_called': '2025-03-21T14:51:18+01:00', 'is_alive': True, 'pinned_apps': []}
2025-03-21 14:51:18.435834 DEBUG AppDaemon: parse_state: thread.async, {'q': 0, 'state': 'event_callback() in schlafzimmer_hue_dimmer', 'time_called': '2025-03-21T14:51:18+01:00', 'is_alive': True, 'pinned_apps': []}
2025-03-21 14:51:18.437412 DEBUG AppDaemon: Old state: {'entity_id': 'thread.async', 'state': 'idle', 'last_changed': '2025-03-21T14:50:44+01:00', 'attributes': {'q': 0, 'is_alive': True, 'time_called': '2025-03-21T14:50:44+01:00', 'pinned_apps': []}}
2025-03-21 14:51:18.437751 DEBUG AppDaemon: New state: {'entity_id': 'thread.async', 'state': 'event_callback() in schlafzimmer_hue_dimmer', 'last_changed': '2025-03-21T14:51:18+01:00', 'attributes': {'q': 0, 'is_alive': True, 'time_called': '2025-03-21T14:51:18+01:00', 'pinned_apps': []}}
2025-03-21 14:51:18.438006 DEBUG AppDaemon: sending event locally
2025-03-21 14:51:18.438279 DEBUG AppDaemon: set_state(): app.schlafzimmer_hue_dimmer, {'state': 'event_callback() in schlafzimmer_hue_dimmer'}
2025-03-21 14:51:18.441549 DEBUG AppDaemon: parse_state: app.schlafzimmer_hue_dimmer, {'state': 'event_callback() in schlafzimmer_hue_dimmer'}
2025-03-21 14:51:18.442003 DEBUG AppDaemon: Old state: {'entity_id': 'app.schlafzimmer_hue_dimmer', 'state': 'idle', 'last_changed': '2025-03-21T14:50:44+01:00', 'attributes': {'totalcallbacks': 7, 'instancecallbacks': 7, 'args': {'module': 'controllerx', 'class': 'Philips929002398602LightController', 'integration': 'zha', 'controller': '00:17:88:01:0d:8b:70:74', 'light': 'light.schlafzimmer'}, 'config_path': '/homeassistant/appdaemon/apps/apps.yaml', '_silent': True, 'module_path': '/homeassistant/appdaemon/apps/controllerx/controllerx.py'}}
2025-03-21 14:51:18.442187 DEBUG AppDaemon: New state: {'entity_id': 'app.schlafzimmer_hue_dimmer', 'state': 'event_callback() in schlafzimmer_hue_dimmer', 'last_changed': '2025-03-21T14:51:18+01:00', 'attributes': {'totalcallbacks': 7, 'instancecallbacks': 7, 'args': {'module': 'controllerx', 'class': 'Philips929002398602LightController', 'integration': 'zha', 'controller': '00:17:88:01:0d:8b:70:74', 'light': 'light.schlafzimmer'}, 'config_path': '/homeassistant/appdaemon/apps/apps.yaml', '_silent': True, 'module_path': '/homeassistant/appdaemon/apps/controllerx/controllerx.py'}}
2025-03-21 14:51:18.442380 DEBUG AppDaemon: sending event locally
2025-03-21 14:51:18.460188 DEBUG schlafzimmer_hue_dimmer: 🎮 Button event triggered, but not registered: `on`
2025-03-21 14:51:18.464010 DEBUG AppDaemon: get_state: thread.async.time_called None True
2025-03-21 14:51:18.467794 DEBUG AppDaemon: get_state: sensor.threads_current_busy.None None True
2025-03-21 14:51:18.469804 DEBUG AppDaemon: set_state(): sensor.threads_current_busy, {'state': 0}
2025-03-21 14:51:18.472682 DEBUG AppDaemon: parse_state: sensor.threads_current_busy, {'state': 0}
2025-03-21 14:51:18.476838 DEBUG AppDaemon: Old state: {'entity_id': 'sensor.threads_current_busy', 'state': 1, 'last_changed': '2025-03-21T14:51:18+01:00', 'attributes': {}}
2025-03-21 14:51:18.477095 DEBUG AppDaemon: New state: {'entity_id': 'sensor.threads_current_busy', 'state': 0, 'last_changed': '2025-03-21T14:51:18+01:00', 'attributes': {}}
2025-03-21 14:51:18.480966 DEBUG AppDaemon: sending event locally
2025-03-21 14:51:18.481284 DEBUG AppDaemon: get_state: app.schlafzimmer_hue_dimmer.all None True
2025-03-21 14:51:18.482856 DEBUG AppDaemon: set_state(): app.schlafzimmer_hue_dimmer, {'attributes': {'totalcallbacks': 8, 'instancecallbacks': 7, 'args': {'module': 'controllerx', 'class': 'Philips929002398602LightController', 'integration': 'zha', 'controller': '00:17:88:01:0d:8b:70:74', 'light': 'light.schlafzimmer'}, 'config_path': '/homeassistant/appdaemon/apps/apps.yaml', '_silent': True, 'module_path': '/homeassistant/appdaemon/apps/controllerx/controllerx.py'}}
2025-03-21 14:51:18.483625 DEBUG AppDaemon: parse_state: app.schlafzimmer_hue_dimmer, {'attributes': {'totalcallbacks': 8, 'instancecallbacks': 7, 'args': {'module': 'controllerx', 'class': 'Philips929002398602LightController', 'integration': 'zha', 'controller': '00:17:88:01:0d:8b:70:74', 'light': 'light.schlafzimmer'}, 'config_path': '/homeassistant/appdaemon/apps/apps.yaml', '_silent': True, 'module_path': '/homeassistant/appdaemon/apps/controllerx/controllerx.py'}}
2025-03-21 14:51:18.484063 DEBUG AppDaemon: Old state: {'entity_id': 'app.schlafzimmer_hue_dimmer', 'state': 'event_callback() in schlafzimmer_hue_dimmer', 'last_changed': '2025-03-21T14:51:18+01:00', 'attributes': {'totalcallbacks': 7, 'instancecallbacks': 7, 'args': {'module': 'controllerx', 'class': 'Philips929002398602LightController', 'integration': 'zha', 'controller': '00:17:88:01:0d:8b:70:74', 'light': 'light.schlafzimmer'}, 'config_path': '/homeassistant/appdaemon/apps/apps.yaml', '_silent': True, 'module_path': '/homeassistant/appdaemon/apps/controllerx/controllerx.py'}}
2025-03-21 14:51:18.484268 DEBUG AppDaemon: New state: {'entity_id': 'app.schlafzimmer_hue_dimmer', 'state': 'event_callback() in schlafzimmer_hue_dimmer', 'last_changed': '2025-03-21T14:51:18+01:00', 'attributes': {'totalcallbacks': 8, 'instancecallbacks': 7, 'args': {'module': 'controllerx', 'class': 'Philips929002398602LightController', 'integration': 'zha', 'controller': '00:17:88:01:0d:8b:70:74', 'light': 'light.schlafzimmer'}, 'config_path': '/homeassistant/appdaemon/apps/apps.yaml', '_silent': True, 'module_path': '/homeassistant/appdaemon/apps/controllerx/controllerx.py'}}
2025-03-21 14:51:18.488346 DEBUG AppDaemon: sending event locally
2025-03-21 14:51:18.488786 DEBUG AppDaemon: get_state: app.schlafzimmer_hue_dimmer.all None True
2025-03-21 14:51:18.492784 DEBUG AppDaemon: set_state(): app.schlafzimmer_hue_dimmer, {'attributes': {'totalcallbacks': 8, 'instancecallbacks': 8, 'args': {'module': 'controllerx', 'class': 'Philips929002398602LightController', 'integration': 'zha', 'controller': '00:17:88:01:0d:8b:70:74', 'light': 'light.schlafzimmer'}, 'config_path': '/homeassistant/appdaemon/apps/apps.yaml', '_silent': True, 'module_path': '/homeassistant/appdaemon/apps/controllerx/controllerx.py'}}
2025-03-21 14:51:18.493263 DEBUG AppDaemon: parse_state: app.schlafzimmer_hue_dimmer, {'attributes': {'totalcallbacks': 8, 'instancecallbacks': 8, 'args': {'module': 'controllerx', 'class': 'Philips929002398602LightController', 'integration': 'zha', 'controller': '00:17:88:01:0d:8b:70:74', 'light': 'light.schlafzimmer'}, 'config_path': '/homeassistant/appdaemon/apps/apps.yaml', '_silent': True, 'module_path': '/homeassistant/appdaemon/apps/controllerx/controllerx.py'}}
2025-03-21 14:51:18.498408 DEBUG AppDaemon: Old state: {'entity_id': 'app.schlafzimmer_hue_dimmer', 'state': 'event_callback() in schlafzimmer_hue_dimmer', 'last_changed': '2025-03-21T14:51:18+01:00', 'attributes': {'totalcallbacks': 8, 'instancecallbacks': 7, 'args': {'module': 'controllerx', 'class': 'Philips929002398602LightController', 'integration': 'zha', 'controller': '00:17:88:01:0d:8b:70:74', 'light': 'light.schlafzimmer'}, 'config_path': '/homeassistant/appdaemon/apps/apps.yaml', '_silent': True, 'module_path': '/homeassistant/appdaemon/apps/controllerx/controllerx.py'}}
2025-03-21 14:51:18.503836 DEBUG AppDaemon: New state: {'entity_id': 'app.schlafzimmer_hue_dimmer', 'state': 'event_callback() in schlafzimmer_hue_dimmer', 'last_changed': '2025-03-21T14:51:18+01:00', 'attributes': {'totalcallbacks': 8, 'instancecallbacks': 8, 'args': {'module': 'controllerx', 'class': 'Philips929002398602LightController', 'integration': 'zha', 'controller': '00:17:88:01:0d:8b:70:74', 'light': 'light.schlafzimmer'}, 'config_path': '/homeassistant/appdaemon/apps/apps.yaml', '_silent': True, 'module_path': '/homeassistant/appdaemon/apps/controllerx/controllerx.py'}}
2025-03-21 14:51:18.504249 DEBUG AppDaemon: sending event locally
2025-03-21 14:51:18.507060 DEBUG AppDaemon: get_state: event_callback.cf38ba3c85744338897283d7d1a25a1b.all None True
2025-03-21 14:51:18.508825 DEBUG AppDaemon: set_state(): event_callback.cf38ba3c85744338897283d7d1a25a1b, {'attributes': {'app': 'schlafzimmer_hue_dimmer', 'event_name': 'zha_event', 'function': 'event_callback', 'pinned': True, 'pinned_thread': 0, 'fired': 8, 'executed': 8, 'kwargs': {'device_ieee': '00:17:88:01:0d:8b:70:74'}}}
2025-03-21 14:51:18.511223 DEBUG AppDaemon: parse_state: event_callback.cf38ba3c85744338897283d7d1a25a1b, {'attributes': {'app': 'schlafzimmer_hue_dimmer', 'event_name': 'zha_event', 'function': 'event_callback', 'pinned': True, 'pinned_thread': 0, 'fired': 8, 'executed': 8, 'kwargs': {'device_ieee': '00:17:88:01:0d:8b:70:74'}}}
2025-03-21 14:51:18.511845 DEBUG AppDaemon: Old state: {'entity_id': 'event_callback.cf38ba3c85744338897283d7d1a25a1b', 'state': 'active', 'last_changed': '2025-03-21T14:51:18+01:00', 'attributes': {'app': 'schlafzimmer_hue_dimmer', 'event_name': 'zha_event', 'function': 'event_callback', 'pinned': True, 'pinned_thread': 0, 'fired': 8, 'executed': 7, 'kwargs': {'device_ieee': '00:17:88:01:0d:8b:70:74'}}}
2025-03-21 14:51:18.512102 DEBUG AppDaemon: New state: {'entity_id': 'event_callback.cf38ba3c85744338897283d7d1a25a1b', 'state': 'active', 'last_changed': '2025-03-21T14:51:18+01:00', 'attributes': {'app': 'schlafzimmer_hue_dimmer', 'event_name': 'zha_event', 'function': 'event_callback', 'pinned': True, 'pinned_thread': 0, 'fired': 8, 'executed': 8, 'kwargs': {'device_ieee': '00:17:88:01:0d:8b:70:74'}}}

Thanks for your help!

I see the mapping does not correspond to the one from documentation:

It could be either:

  • your device is using an old firmware
  • ControllerX needs to be updated with the new actions.

Could you check for all actions by listening in the developer tools > events to “zha_event” and share here all the different actions (on, off, hold, releases, etc.)

A workaround solution will be to use the “mapping” attribute and create your own controller with the actions your controller fires.

Regards,
Xavi M.

Hey, thanks for feedback. Unfortunately HA ZHA doesn’t show me info of current firmware on the Hue Dimmer V2.

So I share you the zha-event log of all actions of the controller:

event_type: zha_event
data:
  device_ieee: 00:17:88:01:0d:8b:70:74
  unique_id: 00:17:88:01:0d:8b:70:74:1:0x0006
  device_id: 460e1c6cbf9989681ce8cb31b2a7ddd3
  endpoint_id: 1
  cluster_id: 6
  command: off_with_effect
  args:
    - 0
    - 0
  params:
    effect_id: 0
    effect_variant: 0
origin: LOCAL
time_fired: "2025-03-21T21:52:05.566694+00:00"
context:
  id: 01JPXB28DY5JBHE3EWWSCSB5Z1
  parent_id: null
  user_id: null
event_type: zha_event
data:
  device_ieee: 00:17:88:01:0d:8b:70:74
  unique_id: 00:17:88:01:0d:8b:70:74:1:0x0006
  device_id: 460e1c6cbf9989681ce8cb31b2a7ddd3
  endpoint_id: 1
  cluster_id: 6
  command: "on"
  args: []
  params: {}
origin: LOCAL
time_fired: "2025-03-21T22:03:05.382762+00:00"
context:
  id: 01JPXBPCS6WDRGNA6M45DJ7QTV
  parent_id: null
  user_id: null
event_type: zha_event
data:
  device_ieee: 00:17:88:01:0d:8b:70:74
  unique_id: 00:17:88:01:0d:8b:70:74:1:0x0008
  device_id: 460e1c6cbf9989681ce8cb31b2a7ddd3
  endpoint_id: 1
  cluster_id: 8
  command: step
  args:
    - 0
    - 30
    - 9
  params:
    step_mode: 0
    step_size: 30
    transition_time: 9
    options_mask: null
    options_override: null
origin: LOCAL
time_fired: "2025-03-21T22:03:43.019073+00:00"
context:
  id: 01JPXBQHHB1ADMQ0ECE5R7PT3E
  parent_id: null
  user_id: null
event_type: zha_event
data:
  device_ieee: 00:17:88:01:0d:8b:70:74
  unique_id: 00:17:88:01:0d:8b:70:74:1:0x0008
  device_id: 460e1c6cbf9989681ce8cb31b2a7ddd3
  endpoint_id: 1
  cluster_id: 8
  command: step
  args:
    - 0
    - 63
    - 9
  params:
    step_mode: 0
    step_size: 63
    transition_time: 9
    options_mask: null
    options_override: null
origin: LOCAL
time_fired: "2025-03-21T22:04:16.472569+00:00"
context:
  id: 01JPXBRJ6R1GZSGC6BQA532NZB
  parent_id: null
  user_id: null
event_type: zha_event
data:
  device_ieee: 00:17:88:01:0d:8b:70:74
  unique_id: 00:17:88:01:0d:8b:70:74:1:0x0008
  device_id: 460e1c6cbf9989681ce8cb31b2a7ddd3
  endpoint_id: 1
  cluster_id: 8
  command: stop
  args: []
  params:
    options_mask: null
    options_override: null
origin: LOCAL
time_fired: "2025-03-21T22:04:17.943175+00:00"
context:
  id: 01JPXBRKMQT4JMSWJXAG1ZD6ZJ
  parent_id: null
  user_id: null
event_type: zha_event
data:
  device_ieee: 00:17:88:01:0d:8b:70:74
  unique_id: 00:17:88:01:0d:8b:70:74:1:0x0008
  device_id: 460e1c6cbf9989681ce8cb31b2a7ddd3
  endpoint_id: 1
  cluster_id: 8
  command: step
  args:
    - 1
    - 30
    - 9
  params:
    step_mode: 1
    step_size: 30
    transition_time: 9
    options_mask: null
    options_override: null
origin: LOCAL
time_fired: "2025-03-21T22:05:19.838950+00:00"
context:
  id: 01JPXBTG2Y1BYP6P9V37SDXKZR
  parent_id: null
  user_id: null
event_type: zha_event
data:
  device_ieee: 00:17:88:01:0d:8b:70:74
  unique_id: 00:17:88:01:0d:8b:70:74:1:0x0008
  device_id: 460e1c6cbf9989681ce8cb31b2a7ddd3
  endpoint_id: 1
  cluster_id: 8
  command: step
  args:
    - 1
    - 63
    - 9
  params:
    step_mode: 1
    step_size: 63
    transition_time: 9
    options_mask: null
    options_override: null
origin: LOCAL
time_fired: "2025-03-21T22:06:41.645275+00:00"
context:
  id: 01JPXBWZZD34WQSC3883X1A5J3
  parent_id: null
  user_id: null
event_type: zha_event
data:
  device_ieee: 00:17:88:01:0d:8b:70:74
  unique_id: 00:17:88:01:0d:8b:70:74:1:0x0008
  device_id: 460e1c6cbf9989681ce8cb31b2a7ddd3
  endpoint_id: 1
  cluster_id: 8
  command: stop
  args: []
  params:
    options_mask: null
    options_override: null
origin: LOCAL
time_fired: "2025-03-21T22:06:43.072321+00:00"
context:
  id: 01JPXBX1C0XAWXGRQR4WEM5K5A
  parent_id: null
  user_id: null
event_type: zha_event
data:
  device_ieee: 00:17:88:01:0d:8b:70:74
  unique_id: 00:17:88:01:0d:8b:70:74:1:0x0005
  device_id: 460e1c6cbf9989681ce8cb31b2a7ddd3
  endpoint_id: 1
  cluster_id: 5
  command: recall
  args:
    - 17599
    - 1
  params:
    group_id: 17599
    scene_id: 1
    transition_time: null
origin: LOCAL
time_fired: "2025-03-21T22:08:12.907935+00:00"
context:
  id: 01JPXBZS3BQME4FCJFYB0W9JET
  parent_id: null
  user_id: null

Hope the event logs help you to sync controllerX.

Hi @kaiba_mann ,

By looking at the events, I remember these are the old actions from this controller. If you want to use it with ControllerX, you would need to upgrade to latest firmware version.

There is also the option to configure it through “mapping” usually. However, it would need some custom code that is not in ControllerX anymore to read the “step” commands.

Regards,
Xavi M.

After updating the firmware of the controller, everything works fine. Thanks for all your help!

Now after I checked the default mapping, I found out that when I toggle the light with the events on_hold , on_short_release, it keeps the light color which was set before i toggled the lights to status off.

That’s not what I want. So I tried to figure out how mapping works. My aim is to change the events that when I turn on the lights from off-status, it shall always have the same brightness (100%), light-temperate (3400K) and no rgb colour.

What is the right mapping for that? Do I need to change the attributes for the action “toggle” or do I need to change the settings for the whole event?

Hope you can also help me with that last issue :slight_smile:

Thanks in advance!

So, you want to turn on the light always with the same setting? Or just turn on and keep the setting it had before?

If it is thee first one, you can use merge_mapping (or mapping if you are already using) to override the on_short_release with the setting you want:

...
merge_mapping:
  on_short_release:
    action: "on"
    attributes:
      brightness: 100
      color_temp: 294

Let me know if this works for you.

Cheers,
Xavi M.