Sonoff S26 Wifi vitaminado para control Router e internet

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

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

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

la activamos con

y si la queremos eliminar introducimos este comando

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

Lo ponemos algo mas chulo en customize.yaml

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

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:

  • Evento: System#Boot se activa cuando el dispositivo se inicia o reinicia.
  • Acciones:
    • Backlog Power1 1: Enciende el relé o salida Power1 (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ópico stat/%topic%/rules con el mensaje “Enchufe a ON al arrancar”. 

  • Evento: Time#Minute|10 se activa cada 10 minutos.
  • Acciones:
    • Backlog Ping4 www.google.com: Realiza un ping a www.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.

  • 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 salida Power1 (enchufe).

  • 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.

  • 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.

  • 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:

  1. Encender el enchufe al arrancar el dispositivo.
  2. Verificar la conectividad a Internet cada 10 minutos.
  3. Apagar el enchufe si no hay conexión a Internet.
  4. Volver a encender automáticamente si el enchufe si se apaga.
  5. Encender el enchufe cada hora.
  6. 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 …..