Ikea tiene una serie de elementos zigbee bastante originales y practicos , uno de los que mas me gusta de la serie TRÅDFRI es su remote control ( https://www.ikea.com/us/en/p/tradfri-remote-control-00443130/ ) que nos permite tener cinco teclas diferentes en un solo dispositivo con su base magnética

Viene con la batería , una base magnética y un adhesivo de doble cara 3M

Para alimentarlo retiramos la tapa trasera e introducimos la batería en su alojamiento

Emparejamiento : Teniendo zigbee2mqtt en modo “permitir emparejamiento” pulsaremos el botón al lado de la batería cuatro veces , si es correcto el led frontal se encenderá varias veces y ya estaría emparejado apareciendo en la pagina de zigbee2mqtt

Cuando se dispara una acción se puede ver el estado de la propiedad action , los valores posibles son : arrow_left_click, arrow_left_hold, arrow_left_release, arrow_right_click, arrow_right_hold, arrow_right_release, brightness_down_click, brightness_down_hold, brightness_down_release, brightness_up_click, brightness_up_hold, brightness_up_release y toggle
El botón central al ser pulsado envía este mensaje {“click”: “toggle”}, y al ser soltado siempre envia {“click”: “toggle_hold”}
Existe un problema de emparejamiento en función del firmware que lleva , de las versiones 2.3.014 a 2.3.74 solo permite el bind a grupos , por lo que o se actualiza el firmware vía OTA o se debe hacer bind a un grupo que creemos y vincular el dispositivo a ese grupo

Una vez emparejado ya podemos empezar a crear los sensores y las automatizaciones oportunas :
Sensor mqtt de disponiblidad
# MANDO IKEA 4
platform"mqtt"
state_topic"zigbee2mqtt/ikea_mando_4"
availability_topic"zigbee2mqtt/bridge/state"
payload_ontrue
payload_offfalse
value_template"{{ value_json.update_available}}"
name ikea_mando_4_disponibilidad
Sensores mqtt de acción , batería y calidad de la señal
xxxxxxxxxx
### IKEA MANDO 4
platform"mqtt"
state_topic"zigbee2mqtt/ikea_mando_4"
availability_topic"zigbee2mqtt/bridge/state"
icon"mdi:gesture-double-tap"
value_template"{{ value_json.action }}"
name"ikea_mando_4_evento"
platform"mqtt"
state_topic"zigbee2mqtt/ikea_mando_4"
availability_topic"zigbee2mqtt/bridge/state"
unit_of_measurement"%"
device_class"battery"
value_template"{{ value_json.battery }}"
expire_after86400
force_updatetrue
name"ikea_mando_4_bateria"
platform"mqtt"
state_topic"zigbee2mqtt/ikea_mando_4"
availability_topic"zigbee2mqtt/bridge/state"
icon"mdi:signal"
unit_of_measurement"lqi"
value_template"{{ value_json.linkquality }}"
name"ikea_mando_4_estado"
Le daremos nombre a nuestro gusto en customize.yaml
xxxxxxxxxx
binary_sensor.ikea_mando_4_evento
friendly_name Mando luz ikea estudio
sensor.ikea_mando_4_bateria
friendly_name Mando luz ikea estudio
sensor.ikea_mando_4_estado
friendly_name Mando luz ikea estudio
sensor.ikea_mando_4_evento
friendly_name Mando luz ikea estudio
Yo uno ello lo utilizo para apagar y encender un plafón xiaomi y dos tiras de led de forma independiente con cada tecla , y con las dos teclas restantes subo o bajo el brillo del plafón , los delay de un segundo están puestos de forma intencionada porque a los plafones xiaomi les sienta muy mal el envió de varios comandos consecutivos y entra en un estado de protección que hace caso omiso de los comandos recibidos durante algo mas de un minuto
xxxxxxxxxx
id ikea_controller_toggle_oriol
alias Ikea Controller - Toggle _oriol
trigger
platform state
entity_id sensor.ikea_mando_4_evento
to"toggle"
condition
action
service light.toggle
data
entity_id light.luz_oriol
delay 00 00 01
###########################################
## Dim up/down and warm up/down with clicks
###########################################
id ikea_controller_dim_up_oriol
alias Ikea controller dim up _oriol
trigger
platform state
entity_id sensor.ikea_mando_4_evento
to brightness_up_click
action
data_template
entity_id light.luz_oriol
brightness"{{ state_attr('light.luz_oriol', 'brightness') + 15 | int(0) | round(0,default=0) }}"
service light.turn_on
delay 00 0001
id ikea_controller_dim_down_oriol
alias Ikea controller dim down _oriol
trigger
platform state
entity_id sensor.ikea_mando_4_evento
to brightness_down_click
action
data_template
entity_id light.luz_oriol
brightness"{{ [state_attr('light.luz_oriol', 'brightness') - 15, 1] | max }}"
service light.turn_on
delay 00 0001
id ikea_controller_warm_up_oriol
alias Ikea controller warm up _oriol
trigger
platform state
entity_id sensor.ikea_mando_4_evento
to arrow_right_click
action
service light.toggle
data
entity_id light.tira_led_mesa_oriol
id ikea_controller_warm_down_oriol
alias Ikea controller warm down _oriol
trigger
platform state
entity_id sensor.ikea_mando_4_evento
to arrow_left_click
action
service light.toggle
data
entity_id light.tira_led_cama_oriol
Crearemos un sensor de batería para que nos de una alerta cuando la batería este baja
xxxxxxxxxx
mando_ikea_2_battery_level:
friendly_name: Mando Ikea Oriol
value_template: "{{ states.sensor.ikea_mando_2_bateria.state |default(-1)| int(0) if states.sensor.ikea_mando_2_bateria is not none }}"
unit_of_measurement: '%'
icon_template: '{% if states.sensor.ikea_mando_2_bateria.state| int(0) == 100 %}
mdi:battery
{% elif states.sensor.ikea_mando_2_bateria.state| int(0) >= 90 %}
mdi:battery-90
{% elif states.sensor.ikea_mando_2_bateria.state| int(0) >= 80 %}
mdi:battery-80
{% elif states.sensor.ikea_mando_2_bateria.state| int(0) >= 70 %}
mdi:battery-70
{% elif states.sensor.ikea_mando_2_bateria.state| int(0) >= 60 %}
mdi:battery-60
{% elif states.sensor.ikea_mando_2_bateria.state| int(0) >= 50 %}
mdi:battery-50
{% elif states.sensor.ikea_mando_2_bateria.state| int(0) >= 40 %}
mdi:battery-40
{% elif states.sensor.ikea_mando_2_bateria.state| int(0) >= 30 %}
mdi:battery-30
{% elif states.sensor.ikea_mando_2_bateria.state| int(0) >= 20 %}
mdi:battery-20
{% elif states.sensor.ikea_mando_2_bateria.state| int(0) >= 10 %}
mdi:battery-10
{% else %}
mdi:battery-outline
{% endif %}'
Y colorin colorado …………