xaviml / controllerx

Create controller-based automations with ease to control your home devices and scenes.
https://xaviml.github.io/controllerx/
MIT License
336 stars 70 forks source link

[BUG] IKEA Tradfri Remote E1810 "Hold/Release events" for < > are not recognized by deconz #215

Closed tnaumann71 closed 3 years ago

tnaumann71 commented 3 years ago

Bug report

IKEA Tradfri Remote E1810 "Hold/Release events" for < > are not recognized by deconz When holding "<" or ">" the deconz_events 4001 → Hold < 4003 → Release < 5001 → Hold > 5003 → Release > are not recognized. Therefore I can't switch the sources.

Description

Holding and releasing the "<" or ">" buttons leads only to 4002 or 5002 events. It doesnt matter how long I'm holding them. Normal behaviour would be 4001/4003 and 5001/5003 events which will lead to source skipping.

Additional information

AppDaemon app configuration

hello_world:
  module: hello
  class: HelloWorld

essen_speakers:
  module: controllerx
  class: E1810MediaPlayerController
  controller: tradfri_remote_control
  integration: deconz
  media_player: media_player.esszimmer
  volume_steps: 10
  delay: 100

Logs

no error occurs, just the events 4001/3 and 5001/3 are not recognized

Additional Context

xaviml commented 3 years ago

Hi @tnaumann71,

This seems to be a problem of deCONZ, not ControllerX. I currently do not have this controller set up with deCONZ to help you out with it. However, I can say that Z2M does report hold and release actions for the firmware 1.2.223. Maybe there are some breaking changes for the new firmware version.

Regards, Xavi M.

htvekov commented 3 years ago

Hi' guys. Just FYI FW v.2.3.014 also reports hold and release action 'as usual' on Z2M

Ciao !

htvekov commented 3 years ago

Just checked. FW 2.3.014 was a ZB 3.0 update. So could be a breaking change in DeCONZ

Release Version: 1.10.4New features and changes in Accessories:

 Remote Control V-2.3.014. Upgrade to ZB3.0.  Signal Repeater V-2.2.005. Max number of blinds per repeater was limited to 4. This limit is now enhanced to 10 blinds.

tnaumann71 commented 3 years ago

As you can see per reference I opened an Issue with deconz-rest-plugin. I'll keep you updated. Thanks for the quick response.

tnaumann71 commented 3 years ago

response: https://github.com/dresden-elektronik/deconz-rest-plugin/issues/4091#issuecomment-753921930

Cite: Just checked with mine, and it doesn't emit those events either. However, I've sniffed the traffic, and the device doesn't even send the "expected" commands, but just all the same. Therefore, it is related to the device (configuration) and not deconz itself.

htvekov commented 3 years ago

Whaaat ???

Not correct !! Believe me, I would have noticed!! 😉

Feel free to cut and forward my z2m log below showing that Ikea E1810 HW v1, with fw 2.3.014 indeed sends hold and release commands for all four direction buttons.

{"dateCode":"20190401","description":"TRADFRI remote control","friendly_name":"Office Ikea 5 button","hardwareVersion":1,"ieeeAddr":"0xec1bbdfffe1b99e8","lastSeen":1609751218742,"manufacturerID":4476,"manufacture Name":"IKEA of Sweden","model":"E1524/E1810","modelID":"TRADFRI remote control","networkAddress":32904,"powerSource":"Battery","softwareBuildID":"2.3.014","type":"EndDevice","vendor":"IKEA"}

Zigbee2MQTT:info  2021-01-04 13:47:24: MQTT publish: topic 'zigbee2mqtt/Office Ikea 5 button', payload '{"action":"arrow_left_hold","battery":37,"linkquality":102,"update":{"state":"idle"},"update_available":false}'
Zigbee2MQTT:info  2021-01-04 13:47:24: MQTT publish: topic 'zigbee2mqtt/Office Ikea 5 button', payload '{"action":"","battery":37,"linkquality":102,"update":{"state":"idle"},"update_available":false}'
Zigbee2MQTT:info  2021-01-04 13:47:25: MQTT publish: topic 'zigbee2mqtt/Office Ikea 5 button', payload '{"action":"arrow_left_release","action_duration":0.859,"battery":37,"duration":0.859,"linkquality":99,"update":{"state":"idle"},"update_available":false}'
Zigbee2MQTT:info  2021-01-04 13:47:25: MQTT publish: topic 'zigbee2mqtt/Office Ikea 5 button', payload '{"action":"","battery":37,"linkquality":99,"update":{"state":"idle"},"update_available":false}'

Zigbee2MQTT:info  2021-01-04 13:47:27: MQTT publish: topic 'zigbee2mqtt/Office Ikea 5 button', payload '{"action":"arrow_right_hold","battery":37,"linkquality":99,"update":{"state":"idle"},"update_available":false}'
Zigbee2MQTT:info  2021-01-04 13:47:27: MQTT publish: topic 'zigbee2mqtt/Office Ikea 5 button', payload '{"action":"","battery":37,"linkquality":99,"update":{"state":"idle"},"update_available":false}'
Zigbee2MQTT:info  2021-01-04 13:47:28: MQTT publish: topic 'zigbee2mqtt/Office Ikea 5 button', payload '{"action":"arrow_right_release","action_duration":0.823,"battery":37,"duration":0.823,"linkquality":102,"update":{"state":"idle"},"update_available":false}'
Zigbee2MQTT:info  2021-01-04 13:47:28: MQTT publish: topic 'zigbee2mqtt/Office Ikea 5 button', payload '{"action":"","battery":37,"linkquality":102,"update":{"state":"idle"},"update_available":false}'

Zigbee2MQTT:info  2021-01-04 13:47:29: MQTT publish: topic 'zigbee2mqtt/Office Ikea 5 button', payload '{"action":"brightness_up_hold","battery":37,"linkquality":102,"update":{"state":"idle"},"update_available":false}'
Zigbee2MQTT:info  2021-01-04 13:47:29: MQTT publish: topic 'zigbee2mqtt/Office Ikea 5 button', payload '{"action":"","battery":37,"linkquality":102,"update":{"state":"idle"},"update_available":false}'
Zigbee2MQTT:info  2021-01-04 13:47:30: MQTT publish: topic 'zigbee2mqtt/Office Ikea 5 button', payload '{"action":"brightness_up_release","battery":37,"linkquality":102,"update":{"state":"idle"},"update_available":false}'
Zigbee2MQTT:info  2021-01-04 13:47:30: MQTT publish: topic 'zigbee2mqtt/Office Ikea 5 button', payload '{"action":"","battery":37,"linkquality":102,"update":{"state":"idle"},"update_available":false}'

Zigbee2MQTT:info  2021-01-04 13:47:32: MQTT publish: topic 'zigbee2mqtt/Office Ikea 5 button', payload '{"action":"brightness_down_hold","battery":37,"linkquality":102,"update":{"state":"idle"},"update_available":false}'
Zigbee2MQTT:info  2021-01-04 13:47:32: MQTT publish: topic 'zigbee2mqtt/Office Ikea 5 button', payload '{"action":"","battery":37,"linkquality":102,"update":{"state":"idle"},"update_available":false}'
Zigbee2MQTT:info  2021-01-04 13:47:33: MQTT publish: topic 'zigbee2mqtt/Office Ikea 5 button', payload '{"action":"brightness_down_release","battery":37,"linkquality":99,"update":{"state":"idle"},"update_available":false}'
Zigbee2MQTT:info  2021-01-04 13:47:33: MQTT publish: topic 'zigbee2mqtt/Office Ikea 5 button', payload '{"action":"","battery":37,"linkquality":99,"update":{"state":"idle"},"update_available":false}'

Ciao !

tnaumann71 commented 3 years ago

Thanks Henning. I will share your log with SwoopX.

tnaumann71 commented 3 years ago

After factory reset and new pairing and holding the remote direct beside the ConBee II nothing changed.

Found and solved the issue. During my test the battery went from 80 to 60% low. I renewed the battery and all events are now emitted.

Strange thing is that this happens with a battery level higher than 50%. Anyway...

Thanks for you support. I really appreciate that and your work. Best regards, Torsten

xaviml commented 3 years ago

Thank you @tnaumann71 for reporting back and closing the ticket :)

xaviml commented 3 years ago

Hi @tnaumann71,

Did you open this ticket back for any reason?

Regards, Xavi M.

tnaumann71 commented 3 years ago

Hi,

strange behaviour. deconz now gets the events and "basic" features of the E1810MediaPlayerController are working with but without the "next/previous_source" actions.

apps.yaml - default mapping for "next/previous_source" actions are not working:

essen_speakers:
  module: controllerx
  class: E1810MediaPlayerController
  controller: tradfri_fernbedienung
  integration: deconz
  media_player: media_player.esszimmer
  volume_steps: 20

deconz and HA show me the events from the E1810 but ControllerX doesn't react.

apps.yaml - default mapping and extra "mapping:" for "next/previous_source" actions is working BUT none of all the others:

essen_speakers:
  module: controllerx
  class: E1810MediaPlayerController
  controller: tradfri_fernbedienung
  integration: deconz
  media_player: media_player.esszimmer
  volume_steps: 20
  mapping:
    4001: previous_source
    4003: release
    5001: next_source
    5003: release

Questions: Does this mean if I'm going to use "mapping:" I have define all the actions an I can't overwrite/define selectivly?

Why does ControllerX not reacting on "Holding/Releasing" "<" ">" without "mapping:" definition?

xaviml commented 3 years ago

Hi @tnaumann71,

Does this mean if I'm going to use "mapping:" I have define all the actions an I can't overwrite/define selectivly?

The mapping attribute remove the default mapping and it just adds the mapping you define. If you want to overwrite actions, you can use merge_mapping instead of mapping:

essen_speakers:
  module: controllerx
  class: E1810MediaPlayerController
  controller: tradfri_fernbedienung
  integration: deconz
  media_player: media_player.esszimmer
  volume_steps: 20
  merge_mapping:
    4001: previous_source
    5001: next_source

You don't need to add the release actions since the previous_source and next_source are not holding actions.

Why does ControllerX not reacting on "Holding/Releasing" "<" ">" without "mapping:" definition?

I just checked the mapping for this controller and I see that for deCONZ and ZHA, I missed the previous_source and next_source actions. I will fix that up and for the next release (v4.4.0), you will just be able to get this functionality without the merge_mapping:

essen_speakers:
  module: controllerx
  class: E1810MediaPlayerController
  controller: tradfri_fernbedienung
  integration: deconz
  media_player: media_player.esszimmer
  volume_steps: 20

Regards, Xavi M.

tnaumann71 commented 3 years ago

Thanks for your quick response and the hint with merge_mapping:. Clear case of RTFM on my side ...

Thx, Torsten

xaviml commented 3 years ago

No worries! What it matters is that you know it now :) The fix is added to the dev branch now.