Hace unos días mirando por internet vi un mando a distancia zigbee bastante chulo y decidí comprarlo e integrarlo, el mando en cuestión es este
https://www.eglo.com/es/control-remoto-connect-z-99099.html
El mando viene con un soporte para la pared.
Y es alimentado por dos pilas AAA
Las especificaciones para integrarlo estan en https://www.zigbee2mqtt.io/devices/99099.html
El manual de instrucciones del equipo es este.
Según el manual para emparejarlo bastaba con pulsar el botón ON y el botón azul y se debía emparejar
Pero así no hay forma de emparejarlo , después de buscar un rato vi que hay una forma de previamente hacerle un reset de fabrica , pero antes baje la aplicación para Android y le actualice el firmware a la ultima versión.
Después de actualizar tampoco emparejaba , buscando en la web del fabricante encontre como hacer un reset de fabrica pulsando estos dos botones tres segundos .
Ahora al pulsar el botón ON y el botón azul y se emparejo correctamente con zigbee2mqtt
Al momento ya empezó a aparecer la información en MqttExplorer
Este el json que envia al pulsar el botón ON
{ "action": "on", "action_group": 32780, "device": { "applicationVersion": 2, "friendlyName": "0xa4c13836ff794744", "hardwareVersion": 60, "ieeeAddr": "0xa4c13836ff794744", "manufacturerID": 4417, "manufacturerName": "AwoX", "model": "99099", "networkAddress": 32859, "powerSource": "Battery", "softwareBuildID": "2.7.3_1387", "stackVersion": 1, "type": "EndDevice", "zclVersion": 3 }, "last_seen": "2024-02-27T16:21:36+01:00", "linkquality": 25 }
Cambiaremos en el configuration.yaml de zigbee2mqtt el nombre del mando
'0xa4c13836ff794744': friendly_name: '0xa4c13836ff794744'
y le añadiremos que simule el control de brillo
'0xa4c13836ff794744': friendly_name: mando_zigbee simulated_brightness: delta: 20 # delta per interval, default = 20 interval: 200 # interval in milliseconds, default = 200
Añadiremos los sensores del manto en el fichero configuration.yaml de nuestro home assistant
### MANDO ZIGBEE - state_topic: "zigbee2mqtt/mando_zigbee" availability_topic: "zigbee2mqtt/bridge/state" icon: "mdi:gesture-double-tap" value_template: "{{ value_json.action }}" name: "mando_zigbee_evento" - state_topic: "zigbee2mqtt/mando_zigbee" availability_topic: "zigbee2mqtt/bridge/state" unit_of_measurement: "%" device_class: "battery" value_template: "{{ value_json.battery }}" expire_after: 86400 force_update: true name: "mando_zigbee_bateria" - state_topic: "zigbee2mqtt/mando_zigbee" availability_topic: "zigbee2mqtt/bridge/state" icon: "mdi:signal" unit_of_measurement: "lqi" value_template: "{{ value_json.linkquality }}" name: "mando_zigbee_estado" - state_topic: "zigbee2mqtt/mando_zigbee" availability_topic: "zigbee2mqtt/bridge/state" icon: "mdi:calendar-clock" value_template: "{{ value_json.last_seen }}" name: "mando_zigbee_ultima_conexion"
Crearemos el sensor de disponibilidad
- state_topic: "zigbee2mqtt/mando_zigbee/availability" availability_topic: "zigbee2mqtt/mando_zigbee/availability" name: mando_zigbee_disponibilidad device_class: "connectivity" payload_on: "online" payload_off: "offline"
Pondremos las etiquetas en el customize.yaml
binary_sensor.mando_zigbee_evento: friendly_name: Mando zigbee sensor.mando_zigbee_bateria: friendly_name: Mando zigbee sensor.mando_zigbeeestado: friendly_name: Mando zigbee sensor.mando_zigbee_evento: friendly_name: Mando zigbee binary_sensor.mando_zigbee_disponibilidad: friendly_name: Mando zigbee
Lo añadiremos al sensor general de fallo de cualquier dispositivo zigbee
- platform: template sensors: sensor_fallo_dispositivos_zigbee: #ON cuando cualquiera falla en la comunicacion friendly_name: 'Sensor fallo algun dispositivo zigbee' value_template: > {% if is_state('binary_sensor.temperatura_balcon_disponibilidad', 'off') or is_state('binary_sensor.sensor_agua_lavabo_disponibilidad', 'off') or is_state('binary_sensor.sensor_puerta_entrada_disponibilidad', 'off') or is_state('binary_sensor.sensor_movimiento_recibidor_disponibilidad', 'off') or is_state('binary_sensor.sensor_proximidad_timbre_disponibilidad', 'off') or is_state('binary_sensor.temperatura_comedor_disponibilidad', 'off') or is_state('binary_sensor.sensor_movimiento_comedor_disponibilidad', 'off') or is_state('binary_sensor.sensor_balcon_comedor_derecho_disponibilidad', 'off') or is_state('binary_sensor.sensor_balcon_comedor_izquierdo_disponibilidad', 'off') or is_state('binary_sensor.movimiento_3_disponibilidad', 'off') or is_state('binary_sensor.pulsador_luz_sofa_disponibilidad', 'off') or is_state('binary_sensor.sensor_balcon_matrimonio_izquierdo_disponibilidad', 'off') or is_state('binary_sensor.sensor_balcon_matrimonio_derecho_disponibilidad', 'off') or is_state('binary_sensor.puls_conmut_entrada_matrimonio_disponibilidad', 'off') or is_state('binary_sensor.puls_conmut_tere_matrimonio_disponibilidad', 'off') or is_state('binary_sensor.puls_conmut_antonio_matrimonio_disponibilidad', 'off') or is_state('binary_sensor.temperatura_matrimonio_disponibilidad', 'off') or is_state('binary_sensor.temperatura_congelador_disponibilidad', 'off') or is_state('binary_sensor.temperatura_nevera_disponibilidad', 'off') or is_state('binary_sensor.mando_zigbee_disponibilidad', 'off') or is_state('binary_sensor.ikea_mando_1_disponibilidad', 'off') or is_state('binary_sensor.sensor_trastero_disponibilidad', 'off') or is_state('binary_sensor.temperatura_trastero_disponibilidad', 'off') or is_state('binary_sensor.temperatura_oriol_disponibilidad', 'off') or is_state('binary_sensor.puls_leds_oriol_disponibilidad', 'off') or is_state('binary_sensor.sensor_oriol_izquierdo_disponibilidad', 'off') or is_state('binary_sensor.sensor_oriol_derecho_disponibilidad', 'off') or is_state('binary_sensor.sensor_puerta_armario_oriol_disponibilidad', 'off') or is_state('binary_sensor.ikea_mando_2_disponibilidad', 'off') or is_state('binary_sensor.puls_conmut_1_oriol_disponibilidad', 'off') or is_state('binary_sensor.puls_conmut_2_oriol_disponibilidad', 'off') or is_state('binary_sensor.enchufe_zb_1_disponibilidad', 'off') or is_state('binary_sensor.enchufe_zb_2_tv_matrimonio_disponibilidad', 'off') or is_state('binary_sensor.enchufe_zb_3_balcon_disponibilidad', 'off') or is_state('binary_sensor.ikea_mando_4_disponibilidad', 'off') or is_state('binary_sensor.sensor_movimiento_cocina_disponibilidad', 'off') or is_state('binary_sensor.sensor_agua_cocina_disponibilidad', 'off') or is_state('binary_sensor.sensor_agua_lavadero_disponibilidad', 'off') %} on {% else %} off {% endif %} icon_template: > {% if is_state('binary_sensor.temperatura_balcon_disponibilidad', 'off') or is_state('binary_sensor.sensor_agua_lavabo_disponibilidad', 'off') or is_state('binary_sensor.sensor_puerta_entrada_disponibilidad', 'off') or is_state('binary_sensor.sensor_movimiento_recibidor_disponibilidad', 'off') or is_state('binary_sensor.sensor_proximidad_timbre_disponibilidad', 'off') or is_state('binary_sensor.temperatura_comedor_disponibilidad', 'off') or is_state('binary_sensor.sensor_movimiento_comedor_disponibilidad', 'off') or is_state('binary_sensor.sensor_balcon_comedor_derecho_disponibilidad', 'off') or is_state('binary_sensor.sensor_balcon_comedor_izquierdo_disponibilidad', 'off') or is_state('binary_sensor.movimiento_3_disponibilidad', 'off') or is_state('binary_sensor.pulsador_luz_sofa_disponibilidad', 'off') or is_state('binary_sensor.sensor_balcon_matrimonio_izquierdo_disponibilidad', 'off') or is_state('binary_sensor.sensor_balcon_matrimonio_derecho_disponibilidad', 'off') or is_state('binary_sensor.puls_conmut_entrada_matrimonio_disponibilidad', 'off') or is_state('binary_sensor.puls_conmut_tere_matrimonio_disponibilidad', 'off') or is_state('binary_sensor.puls_conmut_antonio_matrimonio_disponibilidad', 'off') or is_state('binary_sensor.temperatura_matrimonio_disponibilidad', 'off') or is_state('binary_sensor.temperatura_congelador_disponibilidad', 'off') or is_state('binary_sensor.temperatura_nevera_disponibilidad', 'off') or is_state('binary_sensor.mando_zigbee_disponibilidad', 'off') or is_state('binary_sensor.ikea_mando_1_disponibilidad', 'off') or is_state('binary_sensor.sensor_trastero_disponibilidad', 'off') or is_state('binary_sensor.temperatura_trastero_disponibilidad', 'off') or is_state('binary_sensor.temperatura_oriol_disponibilidad', 'off') or is_state('binary_sensor.puls_leds_oriol_disponibilidad', 'off') or is_state('binary_sensor.sensor_oriol_izquierdo_disponibilidad', 'off') or is_state('binary_sensor.sensor_oriol_derecho_disponibilidad', 'off') or is_state('binary_sensor.sensor_puerta_armario_oriol_disponibilidad', 'off') or is_state('binary_sensor.ikea_mando_2_disponibilidad', 'off') or is_state('binary_sensor.puls_conmut_1_oriol_disponibilidad', 'off') or is_state('binary_sensor.puls_conmut_2_oriol_disponibilidad', 'off') or is_state('binary_sensor.enchufe_zb_1_disponibilidad', 'off') or is_state('binary_sensor.enchufe_zb_2_tv_matrimonio_disponibilidad', 'off') or is_state('binary_sensor.enchufe_zb_3_balcon_disponibilidad', 'off') or is_state('binary_sensor.ikea_mando_4_disponibilidad', 'off') or is_state('binary_sensor.sensor_movimiento_cocina_disponibilidad', 'off') or is_state('binary_sensor.sensor_agua_cocina_disponibilidad', 'off') or is_state('binary_sensor.sensor_agua_lavadero_disponibilidad', 'off') %} mdi:signal-off {% else %} mdi:signal {% endif %}
Los valores en action que nos devolverá son : on
, off
, red
, refresh
, refresh_colored
, blue
, yellow
, green
, brightness_step_up
, brightness_step_down
, brightness_move_up
, brightness_move_down
, brightness_stop
, recall_1
, color_temperature_step_up
, color_temperature_step_down
Los botones 1, 2 ,3 y recall_2 no funcionan ya que son para emparejar directamente a dispositivos , mas información aquí : https://github.com/Koenkk/zigbee2mqtt/issues/14786#issuecomment-1304827843
Empezaremos a crear automatizaciones según nuestras necesidades
#################################################################################################################### # MANDO ZIGBEE #################################################################################################################### #################################################################################################################### # on, off, red, refresh, refresh_colored, blue, yellow, green, brightness_step_up, brightness_step_down, # brightness_move_up, brightness_move_down, brightness_stop, recall_1, color_temperature_step_up, # color_temperature_step_down #################################################################################################################### - id: mando zigbee comando off alias: mando zigbee comando off trigger: - platform: state entity_id: sensor.mando_zigbee_evento to: "off" condition: action: - service: light.turn_off data: entity_id: light.luz_matrimonio - service: light.turn_off data: entity_id: light.luz_matrimonio_ambilight mode: single - id: mando zigbee comando refresh alias: mando zigbee comando refresh trigger: - platform: state entity_id: sensor.mando_zigbee_evento to: "refresh" condition: action: - service: light.toggle data: entity_id: light.luz_matrimonio - service: light.toggle data: entity_id: light.luz_matrimonio_ambilight mode: single - id: mando zigbee comando brightness_step_up alias: mando zigbee comando brightness_step_up trigger: - platform: state entity_id: sensor.mando_zigbee_evento to: "brightness_step_up" condition: action: - data_template: entity_id: light.luz_matrimonio brightness: 255 service: light.turn_on mode: single - id: mando zigbee comando brightness_step_down alias: mando zigbee comando brightness_step_down trigger: - platform: state entity_id: sensor.mando_zigbee_evento to: "brightness_step_down" condition: action: - data_template: entity_id: light.luz_matrimonio brightness: 1 service: light.turn_on mode: single - id: mando zigbee comando color_temperature_step_up alias: mando zigbee comando color_temperature_step_up trigger: - platform: state entity_id: sensor.mando_zigbee_evento to: "color_temperature_step_up" condition: action: - data_template: entity_id: light.luz_matrimonio_ambilight brightness: 255 service: light.turn_on mode: single - id: mando zigbee comando color_temperature_step_down alias: mando zigbee comando color_temperature_step_down trigger: - platform: state entity_id: sensor.mando_zigbee_evento to: "color_temperature_step_down" condition: action: - data_template: entity_id: light.luz_matrimonio_ambilight brightness: 1 service: light.turn_on mode: single - id: mando zigbee comando recall_1 alias: mando zigbee comando recall_1 trigger: - platform: state entity_id: sensor.mando_zigbee_evento to: "recall_1" condition: action: - service: light.toggle data: entity_id: light.luz_matrimonio mode: single - id: mando zigbee comando recall_2 alias: mando zigbee comando recall_2 trigger: - platform: state entity_id: sensor.mando_zigbee_evento to: "recall_2" condition: action: - service: light.toggle data: entity_id: light.luz_matrimonio_ambilight mode: single - id: mando zigbee comando refresh_colored alias: mando zigbee comando refresh_colored trigger: - platform: state entity_id: sensor.mando_zigbee_evento to: "refresh_colored" condition: action: - service: light.toggle data: entity_id: light.luz_matrimonio_ambilight - service: light.turn_off data: entity_id: light.luz_matrimonio mode: single - id: mando zigbee comando refresh_colored alias: mando zigbee comando refresh_colored trigger: - platform: state entity_id: sensor.mando_zigbee_evento to: "refresh_colored" condition: action: - service: light.toggle data: entity_id: light.luz_matrimonio_ambilight - service: light.turn_off data: entity_id: light.luz_matrimonio mode: single - id: mando zigbee comando red alias: mando zigbee comando red trigger: - platform: state entity_id: sensor.mando_zigbee_evento to: "red" condition: action: - service: light.turn_on entity_id: light.luz_matrimonio_ambilight data: brightness: 255 rgb_color: [255,0,0] - service: light.turn_off data: entity_id: light.luz_matrimonio mode: single - id: mando zigbee comando blue alias: mando zigbee comando blue trigger: - platform: state entity_id: sensor.mando_zigbee_evento to: "blue" condition: action: - service: light.turn_on entity_id: light.luz_matrimonio_ambilight data: brightness: 255 rgb_color: [0,0,255] - service: light.turn_off data: entity_id: light.luz_matrimonio mode: single - id: mando zigbee comando green alias: mando zigbee comando green trigger: - platform: state entity_id: sensor.mando_zigbee_evento to: "green" condition: action: - service: light.turn_on entity_id: light.luz_matrimonio_ambilight data: brightness: 255 rgb_color: [63,255,0] - service: light.turn_off data: entity_id: light.luz_matrimonio mode: single
Y con esto y un bizcocho ……