ControllerX. Bring full functionality to light and media player controllers

Hi,
thanks for great solution, but I have some issue with WXCJKG13LM and IKEA Tradfri 1000 - double click bottom right button should increase the light temperature to max, but my bulb is getting cold. Holding this button works good.

Hey @Jan_D,

You are right, there is a typo in the code for this device. It is doing the same as double clicking the bottom left. I will get this fixed asap :slight_smile:

Hey @Jan_D,

I just released v3.0.1 with the fix, now it should go to full color temp :slight_smile :slight_smile:

1 Like

Hey @xaviml

Found your post on reddit and it was perfect timing as I bought the Ikea ICTCG1 controllers for half price.

Set this up last night and set up was a breeze. I do have a few issues though with this controller.
I find the actions aren’t smooth or they aren’t reading correctly. Whether I am turning left or right sometimes it doesn’t read or it is very delayed. Same goes for the quick turns. I have tried both MQTT and Z2M integrations and I find Z2M to be more responsive but still not 100%. Would you have any suggestions?

Hope you can help. I love these rotating dimmers but not liking how choppy they are. Hope I can fix them.

Edit: Had a problem with using media player integration but I figured it out. Didn’t realise the class changes as well :slight_smile:

Hey @tikob25,

If I undertood well, you integrated this controller with z2m, right? As far as I know these controllers are a little bit more laggy than the symfonisk ones (E1744) which are like the “new” version of the one that you bought. However, I would recommend you to set it up with the MQTT integration, something like this:

example_app:
  module: controllerx
  class: ICTCG1Controller
  controller: zigbee2mqtt/my_controller/action
  integration: mqtt
  light: light.my_light
  automatic_steps: 15
  delay: 200

This will change how often ControllerX will call HA to change the brightness of the light and the steps for the change. By default these 2 attribute are much “laggy” since depending on the network, this could be too much. So you can play around with those 2 parameters. Also, you will need to check the mqtt topic of that controller on the zigbee2mqtt logs, it normally finishes with /action or /click.

Regarding the use of this controller for a media plaer is not yet implemented. I will add support to it, since this controller does not have click action, I will leave as default that quick right will call the play action and quick left will call pause action.

Cheers,
Xavi M.

I tried both Z2M and MQTT and I found Z2M more responsive. I will try this out right now and report back :slight_smile:

1 Like

I just created a beta release with the support for the MediaPlayer controller for the ICTCG1 dimmer. You won’t see yet the documentation for it since it is not a stable release. You can mark “Show beta” in HACS and you will see v3.1.0b0.

The configuration should look like:

example_app2:
  module: controllerx
  class: ICTCG1MediaPlayerController
  controller: zigbee2mqtt/my_controller/action
  integration: mqtt
  media_player: media_player.my_media_player
  volume_steps: 15
  delay: 200

Let me know if you try :slight_smile:

@xaviml

So It is better but not 100%. The dimming is better but sometimes when Im rotating and I stop, it will continue to dim. The other issue I have is If I do a quick rotate left or right, it takes me a couple of tries for it the light to turn on and off.

I think you’re right and I will have to play with the the 2 parameters to find that sweet spot.

Just noticed you made the beta! Thank you so much. I will try that out shortly.

To all the Canadian’s out there, Happy Canada Day!

Again, Thank you for making this release! You have saved me lots of time trying to wrap my head on integrating these dimmers/switches.

1 Like

Thanks @tikob25 :slight_smile:

I am not Canadian, but happy Canada day :smile: I think the problem you are experimenting with the light dimming down without stopping it is ecause the controller sends a lot of rotation actions and it might happen that the last one is no a rotation_stop. I will recomend you to check the logs on z2m logs, so you will see the events that the controller fires, this is shy the symfonisk one is much better for this.

Good luck with it and let me know about the media player controller integration, you might have the same problems with the media player volume that you have with the brightness of the light, the idea behind is the same one.

Cheers,
Xavi M.

1 Like

Thank you @xaviml, I got it working pretty smoothly. I set the delay to 1000 and it seems to be working pretty well.

Media player beta is working well too!

1 Like

How can I debug? I got ControllerX installed with HACS, I see the apps getting loaded in appdaemon, but nothing happens in HASS. I do see the logs in zigbee2mqtt. Is there any way I can log, or check why nothing is happening?

This is my config:

kitchen_remote:
  module: controllerx
  class: E1744MediaPlayerController
  controller: sensor.zigbee_remote_01_action
  integration: z2m
  media_player: media_player.snapcast_client_kitchen

Hi @ashwin :slight_smile:

Did you install AppDaemon via addon? If you go there, you should be able to see the logs. Do you see something like ControllerX v3.0.1? Then if you do anything with the controller, you should also see logs in there with the HA service calls, do you see any calls happening? And last check I would recommend you is in “Developer Tools > States”, do you see the state of sensor.zigbee_remote_01_action changing? It changes the state to the action and then it goes back to nothing.

I hope this helps you,
Xavi M.

Thank you for your quick response! I installed AppDaemon using Docker. I just started it in debug-mode, and I do see the state-changes coming from HASS. I also see the state of sensor.zigbee_remote_01_action changing in HASS itself. I don’t see any mention of controllerx in the logs… Seems that I’m missing something. This is my log in AD:

INFO AppDaemon: App 'kitchen_remote' added,
INFO HASS: Evaluating startup conditions,
INFO AppDaemon: Starting Apps with 1 workers and 1 pins,
INFO AppDaemon: Found 1 total apps,
INFO AppDaemon: Got initial state from namespace default,
INFO AppDaemon: Scheduler running in realtime,
INFO AppDaemon: Adding /conf/apps to module import path,
INFO AppDaemon: App initialization complete

Anything else I can check?

How does your appdaemon.yaml looks like? Remember to remove private data like long and lat

I figured it out :). In my docker-compose I added the wrong folder, so my apps folder wasn’t read by appdaemon. It is working great now. Thanks for your help!

1 Like

v3.1.0 is now released :partying_face:

This minor change does not contain breaking changes.

:pencil2: Features

  • Add update_supported_features. When true it will check the supported_features attribute from the entity every time before an action. It is false by default.
  • Add Media Player support for ICTCG1 dimmer (z2m, deconz and zha)

Hi,

I just started using this and it works great with an Ikea Symfonisk controller.
I also have a few Xiaomi Round switches (https://xaviml.github.io/controllerx/controllers/WXKG01LM) connected through ZHA. It currently says ZHA is not supported for this button.
Any chance you can add support for it?

Cheers.

Hi @Kanishkaz,

Give support to new integrations for controllers is fairly easy. In case of ZHA, I will need the commands and arguments that the switch fires for each of the actions that it supports. Normally the command is a string and the arguments is a list. You can create an issue with that information in here.

Cheers,
Xavi M.

Issue raised (https://github.com/xaviml/controllerx/issues/94).
Cheers :slight_smile:

Hi Xavi,
really a great job and it solves many lines of code.

In my case I have two IKEA Tradfri RGB lights and E1810 controller.

In the examples section, https://xaviml.github.io/controllerx/examples/, you include an example in which the light is selected depending on the location you are in.
In another example you change the mapping of the buttons to manage two lights according to left / right or up / down clicks.

In this last example, the possibility of manage the light’s color is lost.
To solve this problem I have thought that each press of the central button behaves as follows, in cycle:

  • click. TURN ON light 1 - Keep off light 2
  • click. Keep on light 1 - TURN ON light 2
  • click. TURN OFF light 1 - Keep on light 2
  • click. Keep off light 1 - TURN OFF light 2 ----> all off

and the intensity and color buttons will take action on the light were on.
I have not found info on what instruction to add to do this behavior.
Do we have possibilitties for this?

Thank you!!