ControllerX. Bring full functionality to light and media player controllers

That would be a perfect Christmas gift. .-)

1 Like

Hi Xavi,

thank you so much for your answer. I will try it and will report here if I had success!

Regards,
viertausend

1 Like

Hola,

No soy capaz, cuan creo que tengo todo bien el mensaje que me sale del log de appdaemon es:

2020-12-09 18:03:10.048799 WARNING HASS: Disconnected from Home Assistant, retrying in 5 seconds

mi appdaemon.yaml es:

appdaemon:
latitude: XXXXXX
longitude: yyyyy
elevation: 80
time_zone: Europe/Madrid
threads: 10
plugins:
HASS:
type: hass
ha_url: 192.168.1.2:8123
token: eyJ0I0MjljYjU3NxxxxxxxxxxxxxxxxxxpL7jCBvmo
http:
url: http://192.168.1.2:5050
admin:
api:
hadashboard:

Gracias.

Hola @markina,

ĀæCĆ³mo has instalado AppDaemon? ĀæA travĆ©s del addon de la addon store?

Gracias,
Xavi M.

Hola Xavi,

Tengo el home assistant normal, pero ya lo resolvĆ­, el problema era que tenia acceder por https ( Lets EnCrypt)

Muchas gracias

1 Like

Hey, @allen024, it would be helpful if you described your solution, instead of just ā€œFigured it out.ā€ It can help people who hasnā€™t figured it out yet. (Obligatory xkcd)

The ā€œsolutionā€ I found was to create two apps for the same controller. One app uses the light class E1743Controller, the other uses the switch class E1743SwitchController. That way, the light class can behave as expected (including the hold action and all the customization parameters), while the switch class can disable the circadian switch (by setting its mapping to 'off' in reaction to the hold events).

I took me a while to figure out that I could create multiple apps listening to the same events from the same controller, as none of the many examples had that. (Well, at least the many examples I looked at.)

1 Like

Hiā€™ @chbndrhnns

Well, people like me probably struggled for countless of hours with hopeless, semi-working automations as the end resultā€¦ :roll_eyes::unamused::scream::skull:

ControllerX is absolutely brilliant and now Xavi has spent countless of hours for a year now - constantly improving on this fab little app :+1::clap::clap::sunglasses:
This app can now be tweaked in so many ways, that almost anything is possible with a zigbee controller.

Ciao !

1 Like

Hello!

Would it be possible on a 5 buttons Ikea remote control to use the left and right buttons to change the light that is controlled?

(the question has probably been askedā€¦).

Merci

Hi @Canaletto,

Someone asked recently this on the GitHub platform, you can read here. ControllerX does not natively support this, but it can be easily achieved with the help of an input_select from HA + Callback constraints from AppDaemon.

Let me know if you have any questions.

Cheers,
Xavi M.

P.S.: I read your post from your blog about ControllerX. I had to translate it, but I liked it :slight_smile:

I applied this example (modified for DeconZ) and it works well. But I still have some latency, I donā€™t know if it comes from ControlerX or DeconZ, I have to do the test with z2mqtt to seeā€¦

Which sort of latency do you have? When dimming the brightness or when switching between lights with the arrows?

@denilsonsa Sorry for that. Here is the the automation I created which disables the Circadian Lighting custom component switch if I press any of the Ikea remote buttons except the middle one. Just change ā€œikea_5bremote1ā€ with the id of your remote.

automations.yaml

- id: '1601143465533'
  alias: Turn Off CL Switch
  description: Disable CL when brightness or color temp is manually adjusted
  trigger:
  - platform: event
    event_type: deconz_event
    event_data:
      id: ikea_5bremote1
  condition:
  - condition: state
    entity_id: switch.circadian_lighting_circadian_lighting
    state: 'on'
  - condition: and
    conditions:
    - condition: template
      value_template: '{{ trigger.event.data.event in [2002, 2001, 2003, 3002, 3001,
        3003, 4002, 5002] }}'
  action:
  - service: switch.turn_off
    data: {}
    entity_id: switch.circadian_lighting_circadian_lighting
  mode: single

Also updated my ā€œFigured it out.ā€ post with this.

2 Likes

Hello Xavi and the rest :slight_smile:

I am having a problem with trying multiple clicks:
controller itself works fine, just no multiple click is exectued:

chodba_xiaomi_controller:
  module: controllerx
  class: E1743Controller
  controller: tradfri_switch_2
  integration: deconz
  light: light.chodba
  smooth_power_on: true
  multiple_click_delay: 500
  merge_mapping:
    1002$2: on_min_color_temp
    1002$3: set_half_color_temp
    1002$4: on_full_color_temp

do you see any issue with config? Thanks.

Hi @slamkalukas,

I do not see anything out of place with this configuration. Could you please share your AppDaemon logs when initializing the controller (the section where the ControllerX version appears) and when double clicking as well?

Regards,
Xavi M.

Hi Xavi,

sure, here is the log:

2020-12-26 13:51:13.754661 INFO AppDaemon: Initializing app chodba_controller using class Controller from module controllerx
2020-12-26 13:51:14.131288 INFO nika_ikea_controller: šŸŽ® ControllerX v4.3.0
2020-12-26 13:51:14.157299 INFO nika_xiaomi_controller: šŸŽ® ControllerX v4.3.0
2020-12-26 13:51:14.167232 INFO lukas_xiaomi_controller: šŸŽ® ControllerX v4.3.0
2020-12-26 13:51:14.179500 INFO chodba_ikea_controller: šŸŽ® ControllerX v4.3.0
2020-12-26 13:51:14.190989 INFO chodba_controller: šŸŽ® ControllerX v4.3.0
2020-12-26 13:51:14.197836 INFO AppDaemon: App initialization complete

No errors. It seems to me that ControllerX is not waiting X miliseconds - when i press 1002, the action is executed immediately.

I also tried another approach - check the config below:

chodba_ikea_controller:
  module: controllerx
  class: LightController
  controller: tradfri_switch_2
  integration: deconz
  light: light.chodba
  multiple_click_delay: 1000
  mapping:
    1001: hold_brightness_up
    1002: "on"
    1003: release
    2001: hold_brightness_down
    2002: "off"
    2003: release
    1002$2: on_min_color_temp
    1002$3: set_half_color_temp
    1002$4: on_full_color_temp

And this is working as expected - single clicks and multiclicks as well.
Any ideas why merge_mapping is not working as expexted?

Thanks.
Lukas

I trying to setup custom mapping with an Ikea E1743 dimmer. This is what I have and have tried several combination, but the on and off mapping does not trigger. However, the last 2 triggers. I have tested the top 2 service in developer tool and they both triggers.

computer_room_curtains:
  module: controllerx
  class: Controller
  controller: sensor.cr_curtains_action
  integration: z2m
  mapping:
    on:
      service: cover.open_cover
      data:
        entity_id: cover.computer_room_curtains
    off:
      service: cover.close_cover
      data:
        entity_id: cover.computer_room_curtains

    brightness_move_up:
      service: cover.open_cover
      data:
        entity_id: cover.all_curtains
    brightness_move_down:
      service: cover.close_cover
      data:
        entity_id: cover.all_curtains

Update: Got it working now. Strange, I have seen this page (last section) and tried the sample code but it didnā€™t work. Tried again and it works now. I might of added the wrong class. Cool beans.

computer_room_curtains:
  module: controllerx
  class: E1743SwitchController
  controller: sensor.cr_curtains_action
  integration: z2m
  switch: switch.computer_room_curtains
  merge_mapping:
    brightness_move_up:
      service: cover.open_cover
      data:
        entity_id: cover.all_curtains
    brightness_move_down:
      service: cover.close_cover
      data:
        entity_id: cover.all_curtains

Hi All,

Iā€™m probably being stupid here but I need some helpā€¦ I have a Sonos speaker which I am controlling with a E1810MediaPlayerConroller, but I cant get it to scroll through the radio stations I have set on itā€¦ the left and right buttons do nothingā€¦ now I know it is something I have done or am not doing but Ihave no idea what that isā€¦

here is what I have in apps.yaml

sonos_controller:
  module: controllerx
  class: E1810MediaPlayerController
  controller: sonos_controller
  integration: deconz
  media_player: media_player.sonos

if I go into ā€˜statesā€™ I have the following

source_list:
  - Absolute Classic Rock
  - BBC Radio 1
  - Nation Radio Scotland
  - Pure Radio Scotland
volume_level: 0.06
is_volume_muted: false
media_content_id: 'x-rincon-mp3radio://https://listen-pureradio.sharp-stream.com/pure_radio.mp3'
media_content_type: music
media_title: Pure Radio Scotland
media_channel: Pure Radio Scotland
source: Pure Radio Scotland
shuffle: false
repeat: 'off'
sonos_group:
  - media_player.sonos
friendly_name: Sonos
supported_features: 457279

can anyone help me?

Hiā€™ @Rdoull

Iā€™m using z2m integration, but it should work anyway.
Just remember that default mapping is hold action for scrolling back/forth in your Sonos source list. Click action is for next/previous track in playlists.

Iā€™ve flipped this behaviour in my setup, as I mainly use the remote when playing radio stations.
Example below you can find here among the other ControllerX examples.

sonos_speaker:
  module: controllerx
  class: MediaPlayerController
  controller: sensor.0x90fd9ffffe0cbd69_action
  integration: z2m
  media_player: group.sonos_all
  mapping:
    toggle: play_pause
    brightness_up_click: click_volume_up
    brightness_down_click: click_volume_down
    brightness_up_hold: hold_volume_up
    brightness_down_hold: hold_volume_down
    brightness_up_release: release
    brightness_down_release: release
    arrow_right_click: next_source
    arrow_left_click: previous_source
    arrow_right_hold: next_track
    arrow_left_hold: previous_track

Ciao !

Hi, I have overhead lights and was able to connect my Ikea tradfri remote to Home Assistant via ZHA. In my bedroom, I have an Aqara Zigbee plug to repeat signals. I was able to identify button pushes for the remote (see log below), but, for whatever reason, anytime I push the on/off button on the trader remote, it turns on/off my Zigbee plug (and the lights) rather than just the lights. Any help appreciated, I am using the device ID from the remote as far as Iā€™m aware. Thank you

Additional information

  • Devices involved:
    • Model: IKEA E1810 as Controller
  • Integration: zha
  • AppDaemon version: 4
  • ControllerX version: latest via HACS
  • HACS version (if installed from there): latest
  • Home Assistant Core version: latest

AppDaemon app configuration

bedroom_controller: module: controllerx class: E1810Controller controller: XXXX integration: zha light: light.master_bedroom_lamps actions: - ā€œonā€ - ā€œoffā€

Logs

{
    "event_type": "zha_event",
    "data": {
        "device_ieee": "XXXX",
        "unique_id": "XXXX:1:0x0008",
        "device_id": "_long-id-number_",
        "endpoint_id": 1,
        "cluster_id": 8,
        "command": "step",
        "args": [
            1,
            43,
            5
        ]
    },
    "origin": "LOCAL",
    "time_fired": "2020-12-26T23:10:39.059636+00:00",
    "context": {
        "id": "_long-id-number_",
        "parent_id": null,
        "user_id": null
    }
}

Have an Ikea sound controllers E1744 however the jumps in volume for Sonos app are to large i.e. 1/4 of a turn on the controller equals an 80% increase in volume. Any way to increase the turns needed? for example 2 full rotations equal 100% volume increase.
apps.yaml

tv_sonos_speaker:
  module: controllerx
  class: E1744MediaPlayerController
  controller: sensor.sound_controller_action
  integration: z2m
  media_player: media_player.living_room

Configuration.yaml

  '0x14b457fffe663c57':
    friendly_name: sound_controller
    legacy: false