Después de probar a controlar el router con un Sonoff S26 versión zigbee una vez cada dos semanas mas o menos se quedaba sin comunicación y no había forma de volver a controlarlo hasta reiniciar el sonoff , volví a rescatar del cajón de los chismes el Sonoff S26 wifi que tenia guardado y hacer un nuevo intento.
Lo primero será crear un firmware personalizado con la parte del código para el ping , ya que esta parte del código en el firmware habitual no viene implementada.
Para ello usaremos de nuevo el compilador en linea de https://github.com/benzino77/tasmocompiler
Cargaremos todo el entorno de desarrollo.

Descargamos el codigo

Lo actualizamos a la ultima versión

Aprovechamos para poner las credenciales del wifi para que directamente se conecte a la wifi primaria

Aquí marcaremos las características que deseemos , en mi caso con estas cuatro es mas que suficiente

Añadiremos los módulos que queremos usar en los parámetros personalizados

#define USE_PING
#define USE_TELEGRAM
Definimos la versión que queremos y el idioma del paquete de salida

Empezara a descargar todos los ficheros que necesite

Una vez descargados empezara a compilar todo en le VPS

Una vez compilado nos ofrece la posibilidad de descargarlo directamente el BIN , y también el binario comprimido

Aquí tenéis ambos ficheros , tanto el comprimido como sin comprimir
Como no cabia por espacio el firmware tuve que abrir el enchufe y soldarle cuatro cables para pasar via serie el firmware tal como explique aquí ( https://rivas.cloud/2020/05/15/enchufe-inteligente-reset-router/ )
Para ello usaremos como siempre tasmotizer , arrancando el modulo con el pulsador del enchufe pulsado para que entre en modo programación

Una vez arrancado lo primero será aplicar la plantilla para el S26 en Configuración / Configuración extra
xxxxxxxxxx
"NAME":"Sonoff S26""GPIO": 17 255 255 255 0 0 0 0 21 56 0 0 0"FLAG":0"BASE":8
También habilitamos la parte de MQTT

Una vez probamos accedemos a la consola para insertar nuestra regla que será la madre del cordero

Así ha quedado la regla que contralara el funcionamiento del enchufe , al final de la entrada la explicaremos poco a poco
Añadimos esta regla en la zona de ingresar comando
xxxxxxxxxx
Rule1
ON System#Boot DO Backlog Power1 1; Delay 3000; Publish stat/%topic%/rules "Enchufe a ON al arrancar" ENDON
ON Time#Minute|10 DO Backlog Ping4 www.google.com; Publish stat/%topic%/rules "Ping a www.google.com" ENDON
ON Ping#Status=0 DO Backlog Publish stat/%topic%/rules "Sin conexión a Internet, enchufe a OFF"; Delay 100; Power1 0; ENDON
ON Power1#State=0 DO Backlog Delay 100; Power1 1; Delay 3000; Publish stat/%topic%/rules "Enchufe a OFF y puesto a ON después de 10 segundos" ENDON
ON Time#Minute=60 DO Backlog Power1 1; Publish stat/%topic%/rules "Salida encendida cada hora" ENDON
ON Time#Minute=359 DO Backlog Power1 1; Publish stat/%topic%/rules "Reinicio del modulo en 5 segundos"; Delay 100; Restart 1 ENDON
la activamos con
xxxxxxxxxx
rule1 1
y si la queremos eliminar introducimos este comando
xxxxxxxxxx
rule1 "
Una vez arrancada veremos como empieza a hacer pings cada diez minutos

Tal cual ya funcionaria de forma totalmente autónoma , pero si queremos añadirle algo mas de chicha lo integraremos en nuestro Home Assistant.
Lo integramos como un enchufe mqtt
xxxxxxxxxx
unique_id tasmota_switch_enchufe_router
name enchufe_router
state_topic"stat/tasmota_9C2CEA/RESULT"
value_template"{{ value_json.POWER }}"
command_topic"cmnd/tasmota_9C2CEA/POWER"
payload_on"ON"
payload_off"OFF"
availability_topic"tele/tasmota_9C2CEA/LWT"
payload_available"Online"
payload_not_available"Offline"
# retain: true
retainfalse
qos 0
optimistic false
Lo ponemos algo mas chulo en customize.yaml
xxxxxxxxxx
switch.enchufe_router
friendly_name Enchufe router
# icon: mdi:power-socket-eu
icon'bha:open-wrt'
Y añadimos algunas automatizaciones :
- Hacemos que nos envié cualquier activación de la reglas por Telegram
- Hacemos que nos envié el cambio a ON de la salida del enchufe por Telegram
- Hacemos que nos envié el cambio a OFF de la salida del enchufe por Telegram
xxxxxxxxxx
#################################################
# ENCHUFE S26 ROUTER
#################################################
alias"Enviar mensaje por Telegram cuando cambie el topic MQTT del enchufe del router"
id"Enviar mensaje por Telegram cuando cambie el topic MQTT del enchufe del router"
trigger
platform mqtt
topic"stat/tasmota_9C2CEA/rules"
action
service notify.notif_telegram_bot
data
message"*Enchufe router* en reglas : {{ trigger.payload }}"
alias"Enviar mensaje por Telegram cuando cambie enchufe del router a ON"
id"Enviar mensaje por Telegram cuando cambie enchufe del router a ON"
trigger
platform state
entity_id switch.enchufe_router
to"on"
action
service notify.notif_telegram_bot
data
message"Enchufe router a : *ON*"
delay 00 05 00
service notify.notif_telegram_bot
data
message"Enchufe router a : *ON* hace cinco minutos"
alias"Enviar mensaje por Telegram cuando cambie enchufe del router a OFF"
id"Enviar mensaje por Telegram cuando cambie enchufe del router a OFF"
trigger
platform state
entity_id switch.enchufe_router
to"off"
action
service notify.notif_telegram_bot
data
message"Enchufe router a : *OFF*"
delay 00 05 00
service notify.notif_telegram_bot
data
message"Enchufe router a : *OFF* hace cinco minutos"
De esta manera tendríamos unas trazas del funcionamiento en nuestro Telegram

La regla Rule1
define una serie de acciones que se ejecutan en respuesta a diferentes eventos. A continuación, te explico cada parte de la regla en detalle:
xxxxxxxxxx
ON System#Boot DO Backlog Power1 1; Delay 3000; Publish stat/%topic%/rules "Enchufe a ON al arrancar" ENDON
- Evento:
System#Boot
se activa cuando el dispositivo se inicia o reinicia. - Acciones:
Backlog Power1 1
: Enciende el relé o salidaPower1
(enchufe) inmediatamente después del arranque.Delay 3000
: Espera 300 segundos antes de continuar con la siguiente acción.Publish stat/%topic%/rules "Enchufe a ON al arrancar"
: Publica un mensaje MQTT en el tópicostat/%topic%/rules
con el mensaje “Enchufe a ON al arrancar”.
xxxxxxxxxx
ON Time#Minute|10 DO Backlog Ping4 www.google.com; Publish stat/%topic%/rules "Ping a www.google.com" ENDON
- Evento:
Time#Minute|10
se activa cada 10 minutos. - Acciones:
Backlog Ping4 www.google.com
: Realiza un ping awww.google.com
para verificar la conectividad a Internet.Publish stat/%topic%/rules "Ping a www.google.com"
: Publica un mensaje MQTT indicando que se ha realizado un ping a Google.
xxxxxxxxxx
ON Ping#Status=0 DO Backlog Publish stat/%topic%/rules "Sin conexión a Internet, enchufe a OFF"; Delay 100; Power1 0; ENDON
- Evento:
Ping#Status=0
se activa cuando el ping falla, es decir, cuando no hay conexión a Internet. - Acciones:
Backlog Publish stat/%topic%/rules "Sin conexión a Internet, enchufe a OFF"
: Publica un mensaje MQTT indicando que no hay conexión a Internet y que el enchufe se apagará.Delay 100
: Espera 10 segundos antes de continuar.Power1 0
: Apaga el relé o salidaPower1
(enchufe).
xxxxxxxxxx
ON Power1#State=0 DO Backlog Delay 100; Power1 1; Delay 3000; Publish stat/%topic%/rules "Enchufe a OFF y puesto a ON después de 10 segundos" ENDON
- Evento:
Power1#State=0
se activa cuando el reléPower1
se apaga. - Acciones:
Backlog Delay 100
: Espera 10 segundos.Power1 1
: Enciende el reléPower1
nuevamente.Delay 3000
: Espera 300 segundos.Publish stat/%topic%/rules "Enchufe a OFF y puesto a ON después de 10 segundos"
: Publica un mensaje MQTT indicando que el enchufe se apagó y se volvió a encender después de 10 segundos.
xxxxxxxxxx
ON Time#Minute=45 DO Backlog Power1 1; Publish stat/%topic%/rules "Salida encendida cada hora" ENDON
- Evento:
Time#Minute=
45 se activa cada hora (cuando los minutos son 45). - Acciones:
Backlog Power1 1
: Enciende el reléPower1
.Publish stat/%topic%/rules "Salida encendida cada hora"
: Publica un mensaje MQTT indicando que la salida se ha encendido cada hora.
xxxxxxxxxx
ON Time#Minute=359 DO Backlog Power1 1; Publish stat/%topic%/rules "Reinicio del modulo en 5 segundos"; Delay 100; Restart 1 ENDON
- Evento:
Time#Minute=359
se activa cuando los minutos son 359 después de la media noche (es decir, a las 5:59). - Acciones:
Backlog Power1 1
: Enciende el reléPower1
.Publish stat/%topic%/rules "Reinicio del modulo en 5 segundos"
: Publica un mensaje MQTT indicando que el módulo se reiniciará en 5 segundos.Delay 100
: Espera 10 segundos.Restart 1
: Reinicia el módulo después de 1 segundo.
En resumen :
Esta regla Rule1
está diseñada para:
- Encender el enchufe al arrancar el dispositivo.
- Verificar la conectividad a Internet cada 10 minutos.
- Apagar el enchufe si no hay conexión a Internet.
- Volver a encender automáticamente si el enchufe si se apaga.
- Encender el enchufe cada hora.
- Reiniciar el módulo a una hora específica (a las 5:59 minutos).
Cada acción está acompañada de un mensaje MQTT que informa sobre el estado y las acciones realizadas, lo que facilita el monitoreo y la depuración del dispositivo.
Y con esto y un bizcocho …..