msgbartop
Gallia est omnis divisa in partes tres
msgbarbottom

18 ene 25 Uso de pulsadores Zigbee e interruptores WiFi para emular llaves conmutadas con Home Assistant

Como decía en el anterior artículo, estoy haciendo algunas mejoras en la domótica de Forcarey, motivadas por algunos cambios en el dormitorio principal. En concreto, estamos poniendo un cabecero de cama con mesillas flotantes, que hace que el cabecero ocupe todo el frontal de la pared, impidiendo el acceso a las llaves conmutadas del dormitorio.

Ejemplo de cabecero, no el mismo modelo

Ejemplo de cabecero, no el mismo modelo

Esto implica que es necesario trasladar estas llaves al tablero del cabecero, lo que en condiciones normales implicaría abrir agujeros para empotrar las llaves y los enchufes, pero he pensado en hacer algo diferente para evitar hacer estos agujeros, que es usar pulsadores de tipo Zigbee, que al no necesitar cableado, son muy compactos y se pueden instalar simplemente en superficie.

Pulsador Zibgee compatible con Tuya

Pulsador Zibgee compatible con Tuya

He escogido un modelo compatible con Tuya con dos pulsadores independientes, que además permite realizar tres acciones por pulsador (pulsación única, doble y larga), lo que permite mapear hasta seis acciones, y que se alimenta con una pila de botón. Este modelo es compatible con Zigbee2MQTT, que es lo que tengo montado para mi domótica, lo que me permite controlar cualquier tipo de dispositivo, y no sólo dispositivos de tipo Zigbee.

En cuanto al interruptor, he escogido los Sonoff Mini R2, con los que ya tengo experiencia sobrada, a los que he instalado el firmware Tasmota, de tal manera que puedo controlar el dispositivo mediante MQTT.

El sistema de domótica es Home Assistant, lo que me permite definir automatizaciones para integrar el funcionamiento de los pulsadores Zigbee y del interruptor Sonoff Mini R2. Y en este caso, esta automatización me permite emular el funcionamiento de las llaves conmutadas. El despliegue ha sido el siguiente:

  • He anulado las dos llaves que están en la cabecera de la cama, ya que no van a tener uso.
  • He adaptado el cableado que va desde la caja de registro para que la fase esté conectada al conector de salida de fase del Sonoff. Éste, a su vez, se ha conectado a fase y neutro de la caja de registro. Además, he conectado a las entradas de pulsador manual un par de hilos que van a la antigua llave de la entrada del dormitorio, de tal manera que se pueda seguir utilizando. Esta parte es que que permite un uso de esta llave para encender y apagar, pero sin ser ya realmente conmutada.

    Esquema de cableado del Sonoff Mini en modo simple

    Esquema de cableado del Sonoff Mini en modo simple

  • He registrado las llaves en Zigbee2MQTT. En mi caso, ha sido simplemente ponerlas en modo de emparejado (5 segundos pulsado el primer botón del pulsador) y se registran automáticamente. Es conveniente ponerles un alias descriptivo, para el posterior seguimiento del topic MQTT. Por ejemplo:

    ’0xa4c13855fdxxxxxx’:
    friendly_name: interruptor_dormitorio_1
    ’0xa4c138adxxxxxx’:
    friendly_name: interruptor_dormitorio_2

  • En el Sonoff Mini, configurar el dispositivo para que trabaje con MQTT (Configuration->MQTT). De nuevo, es recomendable hacer uso de un topic descriptivo.
  • Pasamos a Home Assistant. Aquí tendremos que hacer dos acciones diferentes: registrar el Sonoff Mini como un dispositivo de tipo switch, y crear una automatización basada en MQTT que se dispare con los topic MQTT de los pulsadores Zigbee.
  • Registro del Sonoff Mini: En mi caso lo realizo de manera manual, mediante una entrada en el fichero configuration.yaml de mi Home Assistant, con una entrada como esta:

    – platform: mqtt
    name: “Luz dormitorio Forcarey 1″
    state_topic: “topic_interruptor1/stat/dormitorio1/RESULT”
    value_template: ‘{{ value_json["POWER"] }}’
    command_topic: “topic_interruptor1/cmnd/dormitorio1/POWER”
    availability_topic: “topic_interruptor1/tele/dormitorio1/LWT”
    qos: 1
    payload_on: “ON”
    payload_off: “OFF”
    payload_available: “Online”
    payload_not_available: “Offline”
    retain: false

  • Creación de la automatización: Esta es la clave del asunto para lograr el funcionamiento conmutado. Se trata de crear una automatización que responda a tantos topic como interruptores tengamos, de tal modo que la activación de cualquiera de ellos haga que se dispare la automatización (otra alternativa sería usar automatizaciones independientes por pulsardor, pero el resultado no es tan limpio, y la gestión es más engorrosa). Este es un ejemplo de cómo realizar esta automatización, para el caso de una sola pulsación:

    - alias: Activacion simple del primer pulsador de las llaves
    trigger:
    – platform: mqtt
    topic: topic_pulsador/interruptor_dormitorio_1
    – platform: mqtt
    topic: topic_pulsador/interruptor_dormitorio_2
    condition:
    condition: template
    value_template: ‘{{ “1_single” == trigger.payload_json.action }}’
    action:
    entity_id: switch.luz_dormitorio_forcarey_1
    service: switch.toggle

  • ¡Y listo! Para definir hasta las seis acciones que permite este pulsador doble, basta con crear más automatizaciones según el esquema anterior, simplemente jugando con la condición de la automatización, configurando de manera adecuada el parámetro “action” que se recibe de cualquiera de los dos topic MQTT. Estos pueden venir con los valores siguientes: “1_single” (que es el que se genera cuando se pulsa una vez el primero de los dos pulsadores del interruptor), “2_single” (lo mismo, para el segundo pulsador), “1_double” (pulsación doble), “2_double”, “1_hold” (pulsación mantenida) y “2_hold”.

Hemos escogido un pulsador doble porque tenemos dos luces independientes en el dormitorio, una sobre la cama, y otra sobre la entrada a la habitación. Con esto, tenemos un bonito sistema para controlar la iluminación de manera independiente (con un segundo Sonoff Mini R2 para la otra luz, conectado de manera equivalente, claro), y tenemos aún cuatro acciones disponibles para controlar otros aspectos, como la calefacción o cualquier otro elemento la casa. Todo un progreso que nace de la necesidad de evitar taladrar el cabecero. :mrgreen:

VN:F [1.9.20_1166]
Rating: 0.0/10 (0 votes cast)

Etiquetas: , , , , , ,