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_on: true payload_off: false value_template: "{{ value_json.update_available}}" name: ikea_mando_4_disponibilidad
Sensores mqtt de acción , batería y calidad de la señal
### 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_after: 86400 force_update: true 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
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
- 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:00:01 - 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:00:01 - 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
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 …………