Tengo desde hace cuatro años o mas como relé de termostato en la caldera un SonOff Mini que va como un tiro , pero en el proceso de cambio de wifi a Zigbee le ha tocado al Mini , lo tenia modificado para hacerlo de contacto seco ( dry contact ) o sin tensión de la siguiente manera , cortando esas dos pistas y uniendo los otros dos puntos

Quedando de la siguiente manera

Para empezar el proceso de cambio lo primero es elegir uno que sea zigbee y directamente sea de contacto seco para no tener que cambiar nada a nivel de placa
En Aliexpres encontre este que cumple ambos requisitos ( AC DC7-32V 85-250V )
Este es el manual que trae , podemos ver que solo tiene un par de pulsadores , el de cambio de estado y el de emparejamiento
Pulsaremos el botón superior de emparejamiento durante al menos ocho segundos

Nos aparecerá en Zigbee2MQTT si lo tenemos en permitir emparejamiento

Nos aparecerá como un interruptor Tuya

Definiremos el estado inicial al darle tensión , en mi caso seria OFF al estar conectado a la caldera

Y al momento ya tenemos movimiento en MQTT Explorer

Este seria el JSON que nos enviara ante cada cambio producido
{
"action": "on",
"device": {
"applicationVersion": 72,
"dateCode": "",
"friendlyName": "rele_zigbee",
"hardwareVersion": 1,
"ieeeAddr": "0xa4c1387ebe0cd9f3",
"manufacturerID": 4417,
"manufacturerName": "_TZ3000_g8n1n7lg",
"model": "TS0001",
"networkAddress": 29706,
"powerSource": "Mains (single phase)",
"stackVersion": 0,
"type": "Router",
"zclVersion": 3
},
"last_seen": "2025-01-26T19:38:14+01:00",
"linkquality": 47,
"power_on_behavior": "off",
"state": "ON"
}
Definimos un sensor para saber la ultima conexión del dispositivo
xxxxxxxxxx
state_topic"zigbee2mqtt/rele_zigbee"
availability_topic"zigbee2mqtt/bridge/state"
icon"mdi:calendar-clock"
value_template"{{ value_json.last_seen }}"
name"rele_zigbee_ultima_conexion"
Creamos un sensor binario para saber si el dispositivo esta activo o no
xxxxxxxxxx
state_topic"zigbee2mqtt/rele_zigbee/availability"
availability_topic"zigbee2mqtt/rele_zigbee/availability"
name rele_zigbee_disponibilidad
device_class"connectivity"
payload_on"online"
payload_off"offline"
Definimos la parte de puesta y lectura del estado del relé
xxxxxxxxxx
name rele_zigbee
command_topic"zigbee2mqtt/rele_zigbee/set"
state_topic"zigbee2mqtt/rele_zigbee"
availability_topic"zigbee2mqtt/bridge/state"
icon mdi power-socket
payload_on"ON"
payload_off"OFF"
value_template"{{ value_json.state }}"
Le damos algun retoque en customize.yaml
xxxxxxxxxx
binary_sensor.rele_zigbee_disponibilidad
friendly_name"Rele Zigbee"
switch.rele_zigbee
friendly_name"Rele Zigbee"
Creamos un sensor para saber el tiempo transcurrido desde la ultima conexión
xxxxxxxxxx
platform template
sensors
rele_zigbee_ultima_conexion_minutos
value_template -
'sensor.rele_zigbee_ultima_conexion')) % % set x1 = as_timestamp(states(
% set x2 = as_timestamp(now()) %
% set time = x2 - x1 | int(0) %
% set days = (time/86400) | int %
% set hours = (time / 3600 % 24) | int %
% set minutes = (((time / 3600) % 1) * 60) | int %
'd ' ~ hours ~ 'h ' ~ minutes ~ 'm' days ~
friendly_name Ultima conexión Rele Zigbee
icon_template"mdi:calendar-clock"
Y ya podemos ponerlo por el lovelace
xxxxxxxxxx
entity binary_sensor.rele_zigbee_disponibilidad
entity sensor.rele_zigbee_ultima_conexion_minutos
type divider
Ya podemos crear nuestras automatización , en este caso para hacer pruebas cree una que si el OpenMQTTGateway no tenia comunicación durante 30 minutos lo reiniciase.
xxxxxxxxxx
id reinicio de OpenMQTTGateway si esta mas de quince minutos sin conectar
alias reinicio de OpenMQTTGateway si esta mas de quince minutos sin conectar
initial_state'on'
trigger
platform state
entity_id binary_sensor.ping_openmqttgateway
# from: 'on'
to'off'
for
minutes30
action
service notify.notif_telegram_bot
data_template
message"\U0001f648\U0001f648 Atención! el dispositivo *OpenMQTTGateway* se ha desconectado de la red interna , lo reiniciamos\U0001f648\U0001f648"
service switch.turn_off
entity_id switch.rele_zigbee
delay 00 0015
service switch.turn_on
entity_id switch.rele_zigbee
Y con esto y un bizcocho ………….