I got a EGLO connect.z Smart Home Remote Control 2.0 from amazon to have a way of controlling my HASS from a wide radius when the network shits itself. Initially i hoped it would just expose every button as entity so i can just listen to the button press in automations. But it only exposes some unuseful entities sadly. Now i know that the commands from the buttons have to go through zigbee so HASS must recieve them at some point so i was wondering how i can get HASS to catch those and use them. I was told there was a trick with listening to zha_event
s on http://homeassistant.local:8123/developer-tools/event but sadly that does not trigger anything for me and another person i asked to test it.
Are all the events from this remote recognised by ZHA? I can’t see it on the Blackadder list (although that doesn’t mean it won’t work - just that nobody has tried it). There are no references to it in the ZHA device handlers issues list either.
It does appear to be supported by Z2M:
You may have to find or construct a custom quirk.
@Stiltjack Can you test the zha_event
monitoring in dev tools? I don’t have ZHA setup on any of my instances here, so I can’t test it. But, it’s curious to me that @Bluscream doesn’t see any events coming in on the zha_event bus.
I have found the code where they seem to implement the remote:
Sadly i am not knowledged enough to know how to convert any of this to a custom quirk myself. Any help would be appreciated. I am going to attach some logs and debug files/events
Since i cannot attach non-images here i uploaded the files at Zigbee zha EGLO 99099 3 groups remote controller debugging · GitHub
I have also found a custom quirk PR that supposedly adds support for the device at Issues · zigpy/zha-device-handlers · GitHub, but none of the identifiers from any of my debug logs appear in that, instead it says TLSR82xx
which i cant find anywhere for my remote
So in the end i got it to work by buying a second Zigbee stick and running Zigbee2MQTT only for the remote control. I have taken some time to create quite a elaborate Automation for it so if it saves someone in the future some time, here you go. It requires a input_number.zigbee_remote_profile
number helper that allows for different layouts to be switched to so the remote can theoretically have a infinite number of buttons
alias: Zigbee Remote Buttons
description: Handles various actions triggered by Zigbee remote buttons
trigger:
- platform: mqtt
topic: zigbee2mqtt/Zigbee Remote Control/action
condition: []
action:
- choose:
- conditions:
- condition: state
entity_id: input_number.zigbee_remote_profile
state: "1.0"
sequence:
- choose:
- conditions:
- condition: template
value_template: "{{ trigger.payload == \"color_temperature_step_up\" }}"
sequence:
- service: fan.toggle
target:
entity_id: fan.ventilator
data: {}
- conditions:
- condition: template
value_template: "{{ trigger.payload == \"color_temperature_step_down\" }}"
sequence:
- service: switch.toggle
target:
entity_id: switch.timos_a_c_socket_switch
data: {}
- conditions:
- condition: template
value_template: "{{ trigger.payload == \"brightness_step_down\" }}"
sequence:
- service: light.turn_on
data:
brightness_step_pct: -25
target:
entity_id:
- light.ceiling_light_local
- conditions:
- condition: template
value_template: "{{ trigger.payload == \"brightness_step_up\" }}"
sequence:
- service: light.turn_on
data:
brightness_step_pct: 25
target:
entity_id: light.ceiling_light_local
- conditions:
- condition: template
value_template: "{{ trigger.payload == \"recall_1\" }}"
sequence:
- service: light.toggle
metadata: {}
data: {}
target:
entity_id:
- light.floodlight_api
- conditions:
- condition: template
value_template: "{{ trigger.payload == \"recall_2\" }}"
sequence:
- service: switch.toggle
target:
entity_id: switch.timo_pc
data: {}
- conditions:
- condition: template
value_template: "{{ trigger.payload == \"red\" }}"
sequence:
- service: light.turn_on
data:
color_name: red
target:
entity_id: light.my_lights_color
- conditions:
- condition: template
value_template: "{{ trigger.payload == \"green\" }}"
sequence:
- service: light.turn_on
data:
color_name: green
target:
entity_id: light.my_lights_color
- conditions:
- condition: template
value_template: "{{ trigger.payload == \"blue\" }}"
sequence:
- service: light.turn_on
data:
color_name: blue
target:
entity_id:
- light.my_lights_color
- conditions:
- condition: template
value_template: "{{ trigger.payload == \"refresh\" }}"
sequence:
- service: switch.toggle
target:
entity_id: switch.party_my_lights
data: {}
- conditions:
- condition: template
value_template: "{{ trigger.payload == \"off\" }}"
sequence:
- service: light.toggle
target:
entity_id: light.ceiling_light
data: {}
- conditions:
- condition: state
entity_id: input_number.zigbee_remote_profile
state: "2.0"
sequence:
- choose:
- conditions:
- condition: template
value_template: "{{ trigger.payload == \"color_temperature_step_up\" }}"
sequence:
- service: fan.toggle
target:
entity_id: fan.ventilator
data: {}
- conditions:
- condition: template
value_template: "{{ trigger.payload == \"color_temperature_step_down\" }}"
sequence: null
- conditions:
- condition: template
value_template: "{{ trigger.payload == \"brightness_step_down\" }}"
sequence: null
- conditions:
- condition: template
value_template: "{{ trigger.payload == \"brightness_step_up\" }}"
sequence: null
- conditions:
- condition: template
value_template: "{{ trigger.payload == \"recall_1\" }}"
sequence: null
- conditions:
- condition: template
value_template: "{{ trigger.payload == \"recall_2\" }}"
sequence: null
- conditions:
- condition: template
value_template: "{{ trigger.payload == \"red\" }}"
sequence: null
- conditions:
- condition: template
value_template: "{{ trigger.payload == \"green\" }}"
sequence: null
- conditions:
- condition: template
value_template: "{{ trigger.payload == \"blue\" }}"
sequence: null
- conditions:
- condition: template
value_template: "{{ trigger.payload == \"refresh\" }}"
sequence: null
- conditions:
- condition: template
value_template: "{{ trigger.payload == \"off\" }}"
sequence:
- service: light.toggle
metadata: {}
data: {}
target:
entity_id:
- light.floodlight_api
default: []
mode: queued
max: 10
Just want to add my 10ct here:
I use three atumations for the Awox/Eglo 99099 remote control. One for each button group.
No need for a input number helper. Btw. how is that helper set in the code above?
Working sample code for Group1 is below.
For other groups just copy the code and change the group value in this line:
value_template: “{{ trigger.payload_json.action_group == 32778 }}”
Group1 = 32778, Group2 = 32779, Group3 = 32780.
alias: Eglo99099 Remote Group1
description: Eglo99099 Remote Tasten Group1
triggers:
- trigger: mqtt
topic: zigbee2mqtt/Remote Eglo99099
payload: "on"
value_template: "{{ value_json.action }}"
id: Group1On
- trigger: mqtt
topic: zigbee2mqtt/Remote Eglo99099
payload: "off"
value_template: "{{ value_json.action }}"
id: Group1Off
- trigger: mqtt
topic: zigbee2mqtt/Remote Eglo99099
payload: green
value_template: "{{ value_json.action }}"
id: Group1green
- trigger: mqtt
topic: zigbee2mqtt/Remote Eglo99099
payload: red
value_template: "{{ value_json.action }}"
id: Group1red
- trigger: mqtt
topic: zigbee2mqtt/Remote Eglo99099
payload: blue
value_template: "{{ value_json.action }}"
id: Group1blue
- trigger: mqtt
topic: zigbee2mqtt/Remote Eglo99099
payload: refresh
value_template: "{{ value_json.action }}"
id: Group1refresh
- trigger: mqtt
topic: zigbee2mqtt/Remote Eglo99099
payload: brightness_step_up
value_template: "{{ value_json.action }}"
id: Group1brightness_step_up
- trigger: mqtt
topic: zigbee2mqtt/Remote Eglo99099
payload: recall_1
value_template: "{{ value_json.action }}"
id: Group1recall_1
- trigger: mqtt
topic: zigbee2mqtt/Remote Eglo99099
payload: color_temperature_step_up
value_template: "{{ value_json.action }}"
id: Group1color_temperature_step_up
- trigger: mqtt
topic: zigbee2mqtt/Remote Eglo99099
payload: brightness_step_down
value_template: "{{ value_json.action }}"
id: Group1brightness_step_down
- trigger: mqtt
topic: zigbee2mqtt/Remote Eglo99099
payload: recall_2
value_template: "{{ value_json.action }}"
id: Group1recall_2
- trigger: mqtt
topic: zigbee2mqtt/Remote Eglo99099
payload: color_temperature_step_down
value_template: "{{ value_json.action }}"
id: Group1color_temperature_step_down
conditions:
- condition: template
value_template: "{{ trigger.payload_json.action_group == 32778 }}"
actions:
- choose:
- conditions:
- condition: trigger
id:
- Group1On
sequence:
- action: light.turn_on
metadata: {}
data: {}
target:
entity_id: light.ceilinglight_eglo
- conditions:
- condition: trigger
id:
- Group1Off
sequence:
- action: light.turn_off
metadata: {}
data: {}
target:
entity_id: light.ceilinglight_eglo
mode: single