ControllerX. Bring full functionality to light and media player controllers

So this has exactly the same functions as the E1810? No change, only another look?
If I find the time and Ikea is open I will look for one at the end of the month.

Yes, it is almost the same button but without a middle button, so it only has 4 buttons, not 5. The top button click is used as a toggle, but the rest works the same as the E1810 in ControllerX. These are the advantages and disadvantages I see for this controller:

Advantages:

  • It looks nicer than E1810
  • It has less 1 button and you can stilll do practically the same

Disadvantages:

  • The experience is less pleasant than the E1810 since it is bigger and more difficult to manage
  • It works with AA batteries which for me is a disadvantage. The E1810 works with button battery and it already lasts a lot.

This is my opinion, someone might think different.

Regards,
Xavi M.

Before HA 2021.5 it was possible to control the colour with ControllerX. With 2021.5 the colour-wheel in HA was not working. You selected a colour and the light switches back to white. Then I installed the tasmota integration and the colour wheel in HA is working again.

This is one of the lights:

This is the lightgroup:

This one is a ZigBee LED stripe and there it is working:
Bildschirmfoto 2021-06-04 um 22.43.19

I also tried this configuration:

  julian_controller_licht:
    module: controllerx
    class: E1810Controller
    controller: fernbedienung_julian
    integration: deconz
    light: light.julian_deckenlicht

but it changes nothing.

How is this done? How will the toggle be differentiated from the brightness up?

My first thought was that two AA batteries can be easier found than the CR2032. But if they are empty after one month it will not be so good.

Hi @carsten_h,

The error is in the tasmota integration since it indicates that the light only supports effect and transition. I know this because of the supported_feature attribute (36), which is a flagged variable. The working light is 63, which indicated support for brightness, color_temp, effect, transition, flash and color. This supported_feature is important for controllerx to know which which color attribute to use (color_temp or xy_color). It is also used to check if an action should be called or not depending on the supported feature from the entity.

ControllerX does not have a mechanism to ignore the supported feature, since this is not a common use case (it is a bug on the integration), however, it would be a good idea to add such functionality to make ControllerX believe everything is supoprted, and if needed it can fail. For this I created the following ticket: Add a new attribute to ignore `supported_features` attribute · Issue #314 · xaviml/controllerx · GitHub

However, since I might take a while to develop this, there is a workaround for you that would be more elegant than even having the feature I just mentioned. The Light Controller has an attribute called color_mode inside the light mapping to indicate which type of color you want to use for the light. By default is auto and it detects (through supported_features) if the light uses xy_color or color_temp. The color_mode is handy if light uses both and you want to use one in specific. However, this attribute is also in your favour since if you select xy_color, it will avoid checking the supported_features.

TL;DR: This is the proposed configuration to solved the problem.

julian_controller_licht:
    module: controllerx
    class: E1810Controller
    controller: fernbedienung_julian
    integration: deconz
    light:
      name: light.julian_deckenlicht
      color_mode: xy_color
    multiple_click_delay: 1000
    merge_mapping:
      1002$2:
        service: scene.turn_on
        entity_id: scene.julian_weiss
      4001:
        service: scene.turn_on
        entity_id: scene.julian_weiss
      5001:
        service: switch.toggle
        entity_id: switch.leiste_4

This should do the trick and work without errors. You can also use color_temp for the color_mode if you want the color temperature to work instead of xy color. Hope it helps :slight_smile:

Regards,
Xavi M.

There is no click up for brightness since it does toggle, but you can hold the button for brightness up. Again, for me it is neither an advantage nor a disadvantage since I barely use the click up brightness. I either do double click for brightness up (custom config) or hold the button.

That is true, AA batteries are easier to find. I have not had the controller long enough to report on battery status, but I am guessing it should last quite a lot as well.

Regards,
Xavi M.

Yes, this works without any problem. Thank you very much!

Ok. Then it seems for an media player it is not the correct remote. I think I will stay with the E1810. They work great. For media player I am using the E1744 which is really great with ControllerX!

1 Like

Hi,
I have issue with smoothness.
Brightness up and down is not smooth at all. It looks like is jumping up around 10%.
I have tried Ikea multicolor bulb, Ikea driver (connected to Ikea hub) and also sonoff multicolor bulb (connected to eWeeLink). Ikea switch connected by ZHA. I am using dongle CC2531.

example_app:
  module: controllerx
  class: E1743Controller
  controller: cc:cc:cc:ff:fe:98:6d:93
  integration: zha
  light: light.sonoff_10010ad03d

Hi @Sylwester,

I would say this is a network problem. Not sure 100% about IKEA hub, but the Eweelink goes through the internet to make changes to your devices, so it connection is not locally. This means that ControllerX together with Home Assistant is sending more requests than the light can handle. It probbaly happens the same with the IKEA hub.

First, I recommend you to play around with delay (default is 350ms) and automatic_steps (default is 10) attributes. You can read more about them in here . The higher the delay is, the less request will be make to HA. The more automatic_steps, the more steps it will take to get from min to max and vice versa. Maybe you can find the right setting for both atrributes that satisfy your needs.

However, what I really recommend you is that you integrate those lights with ZHA or any other local integration. Not sure about the sonoff light, but you can definetely integrate the IKEA light with ZHA. The smoothness issues will disappear since the network will be able to respond immedeately.

Regards,
Xavi M.

1 Like

Thank you for quick response.
I think as well that is network problem.
I want to move all ikea devices to my new zigbee dongle anyway. I will post back if that helped. Sonoff bulb is wifi so can not to be added.

1 Like

Hi Xavi,

I’m using the deconz integration. The actions/events are:

up_press (on): 1002
up_hold (brightness): 1001 (move) - 1003 (stop)

down_press (off): 2002
down_hold (brightness): 2001 (move) - 2003 (stop)

Change white spectrum or color:
left_press: 3002
left_hold: 3001 - 3003

Change white spectrum or color:
right_press: 4002
right_hold: 4001 - 4003

Is the specific enough?

Hi @erik7,

That is enough for me to implement the default mapping for this controller. It will be added for next release. I created the following ticket to track this: Add deconz support for W2049 · Issue #315 · xaviml/controllerx · GitHub

Regards,
Xavi M.

Thanks a lot! :+1:

1 Like

Now I see that there is one button less than in the E1810.

Hi @erik7,

The W2049 IKEA device now has a default mapping for deconz. You can now download ControllerX v4.12.0 and try the following configuration:

example_app:
  module: controllerx
  class: W2049LightController
  controller: your_controller_id
  integration: deconz
  light: light.your_light

Regards,
Xavi M.

Indeed. I also realised that the original behaviour for this controller is to turn on by pressing the brightness up, and turn off with brightness off. And this is the default mapping is implemented in ControllerX. I thought (and I told you before) the brightness up would toggle the light, but to do that the default mapping needs to be changed throught configuration.

Regards,
Xavi M.

Hi,
I have integrated ikea bulb with ZHA and transition is smooth now, but I noticed there is no transition when bulb is off and I press ON button. Bulb is going straight to last brightness without transition.

This is really weird. :thinking:
I installed AppDaemon 4 and ControllerX, restarted the server and I don’t see the up_press 1002 and down_press 2002 anymore when running deconz_event.
Before, when trying to control the light via Automation I was able to see the 1002 and 2002. Any idea what this can be?

Hi @Sylwester,

Do you have the same behaviour when turning it on from Home Assistant? Could you please provide the AppDaemon logs when you turn on the light?

Regards,
Xavi M.

Hi @erik7,

What do you mind you don’t see it? Do you mean that you don’t see the event when listening to deconz_event in the Developer Tools? If that is the case I can assure you that AppDaemon and ControllerX does not have anything to do with that, they run different in a different process from deconz. If the events are not popping up, I would recommend you to take a look to the deCONZ integration and see if it is working as expected. If you don’t see anything, I would recommend you ten to restart Home Assistant, sometimes a good restart fixes the weirdest things…

In fact, those events are important because ControllerX listens to those events from Home Assistant to make the controllers work.

I don’t use deCONZ as a main integration, but I do have it for testing purposes, so I can help you further debug this problem if you specify with the details.

Regards,
Xavi M.

Hi,
I have the same behaviour on Home Assistant as well. The transition is there but very fast. Only if brightness is low transition is visible and is ok. The same behaviour is on zha and z2m. All is good when bulb is connected to IKEA hub and hub to HA through IKEA integration. I will try different IKEA bulb. Log looks fine to me.

2021-06-09 02:08:46.935688 INFO example_app_mqtt: 🎮 Button event triggered: `on`
2021-06-09 02:08:46.940467 INFO example_app_mqtt: 🏃 Running `Predefined (on)` now
2021-06-09 02:08:46.944480 INFO example_app_mqtt: 
🤖 Service: light.turn_on
  - entity_id: light.0xccccccfffe9e8ff5
2021-06-09 02:08:50.487179 INFO example_app_mqtt: 🎮 Button event triggered: `brightness_move_down`
2021-06-09 02:08:50.489325 INFO example_app_mqtt: 🏃 Running `Predefined (hold_brightness_down)` now
2021-06-09 02:08:50.499405 INFO example_app_mqtt: 
🤖 Service: light.turn_on
  - entity_id: light.0xccccccfffe9e8ff5
  - brightness: 228.60
  - transition: 0.35
2021-06-09 02:08:50.867960 INFO example_app_mqtt: 
🤖 Service: light.turn_on
  - entity_id: light.0xccccccfffe9e8ff5
  - brightness: 203.20
  - transition: 0.35
2021-06-09 02:08:51.236385 INFO example_app_mqtt: 
🤖 Service: light.turn_on
  - entity_id: light.0xccccccfffe9e8ff5
  - brightness: 177.80
  - transition: 0.35
2021-06-09 02:08:51.603977 INFO example_app_mqtt: 
🤖 Service: light.turn_on
  - entity_id: light.0xccccccfffe9e8ff5
  - brightness: 152.40
  - transition: 0.35
2021-06-09 02:08:51.973611 INFO example_app_mqtt: 
🤖 Service: light.turn_on
  - entity_id: light.0xccccccfffe9e8ff5
  - brightness: 127.00
  - transition: 0.35
2021-06-09 02:08:52.340352 INFO example_app_mqtt: 
🤖 Service: light.turn_on
  - entity_id: light.0xccccccfffe9e8ff5
  - brightness: 101.60
  - transition: 0.35
2021-06-09 02:08:52.713627 INFO example_app_mqtt: 
🤖 Service: light.turn_on
  - entity_id: light.0xccccccfffe9e8ff5
  - brightness: 76.20
  - transition: 0.35
2021-06-09 02:08:53.081912 INFO example_app_mqtt: 
🤖 Service: light.turn_on
  - entity_id: light.0xccccccfffe9e8ff5
  - brightness: 50.80
  - transition: 0.35
2021-06-09 02:08:53.448244 INFO example_app_mqtt: 
🤖 Service: light.turn_on
  - entity_id: light.0xccccccfffe9e8ff5
  - brightness: 25.40
  - transition: 0.35
2021-06-09 02:08:53.817994 INFO example_app_mqtt: 
🤖 Service: light.turn_on
  - entity_id: light.0xccccccfffe9e8ff5
  - brightness: 1
  - transition: 0.35
2021-06-09 02:08:57.647401 INFO example_app_mqtt: 🎮 Button event triggered: `brightness_stop`
2021-06-09 02:08:57.650100 INFO example_app_mqtt: 🏃 Running `Predefined (release)` now