Objetivo
Que la pulsación simple de un botón Zigbee (vía Zigbee2MQTT) alterne la luz del salón y la doble pulsación apague toda la casa.
Requisitos
- La integración MQTT configurada y Zigbee2MQTT publicando el botón como
zigbee2mqtt/boton_salon. - Para ver qué publica, usa Ajustes → Dispositivos y servicios → MQTT → Configurar → Escuchar un tema.
En el editor visual: Añadir disparador → Otros disparadores → MQTT.
El código
alias: "Botón del salón"
mode: queued
triggers:
- trigger: mqtt
topic: "zigbee2mqtt/boton_salon"
value_template: "{{ value_json.action }}"
payload: "single"
id: simple
- trigger: mqtt
topic: "zigbee2mqtt/boton_salon"
value_template: "{{ value_json.action }}"
payload: "double"
id: doble
actions:
- choose:
- conditions:
- condition: trigger
id: simple
sequence:
- action: light.toggle
target:
entity_id: light.salon
- conditions:
- condition: trigger
id: doble
sequence:
- action: light.turn_off
target:
entity_id: all
Cómo funciona
topices el tema que se escucha. Admite comodines:+(un nivel) y#(todo lo que cuelga).value_templateextrae un dato del mensaje JSON antes de comparar.payloades el valor que debe tener.- En las acciones tienes
trigger.topic,trigger.payloadytrigger.payload_json. - Muchos botones ya aparecen en Home Assistant como entidades de evento (
event.boton_salon_action). Si es tu caso, el disparador de estado sobre esa entidad o el específico Evento recibido no dependen de MQTT.
Resultado
Acción
zigbee2mqtt/boton_salon
{"action": "double", "battery": 92}Resultado
Disparador «doble»
Se apagan todas las luces