Hoy os voy a explicar como reiniciar de forma automatica el router en caso de fallar la conexión , toda el control estará en manos en Home Assistant , si tenéis un router de operadora al cual no se puede acceder via ssh entonces montaremos un enchufe wifi para hacer el reinicio.
En este caso he utilizado un Sonoff S26 que tenia por casa con el firmware espurna ( no hay firmware para el S26 pero el del S20 funciona perfectamente)
Primero definimos un sensor que cada minuto compruebe si tenemos conexión a internet
- platform: ping
host: 8.8.8.8
name: conectividad_internet
count: 5
scan_interval: 60
Le damos los valores en customize.yaml
binary_sensor.conectividad_internet:
friendly_name: Internet
icon: mdi:router-wireless
Y nos quedaría de la siguiente forma :
Creamos el switch con los valores apropiados para poder controlar el enchufe
- name: enchufe_router
platform: mqtt
state_topic: enchufe-router/relay/0
command_topic: enchufe-router/relay/0/set
payload_on: 1
payload_off: 0
availability_topic: enchufe-router/status
payload_available: 1
payload_not_available: 0
qos: 0
retain: false
optimistic: false
También le damos los valores en customize.yaml
switch.enchufe_router:
friendly_name: Enchufe router
icon: mdi:power-socket-eu
Y creamos la automatización , que básicamente controla que si durante cinco minutos no tenemos conexión a internet apaga durante cinco segundos el enchufe y lo vuelve a activar , luego espera cuatro minutos y si ha vuelto la conexión nos envía un mensaje por Telegram de que ha reiniciado el router
- alias: "Internet caido reiniciar"
initial_state: true
trigger:
platform: state
entity_id: binary_sensor.conectividad_internet
from: 'on'
to: 'off'
for: 00:05:00
action:
- delay: 00:00:10
- service: switch.turn_off
entity_id: switch.enchufe_router
- delay: 00:00:05
- service: switch.turn_on
entity_id: switch.enchufe_router
- delay: 00:04:00
#Si ha vuelto internet enviamos el mensaje por telegram
- condition: state
entity_id: binary_sensor.conectividad_internet
state: 'on'
- service: notify.notif_telegram_bot
data:
message: "\U0001f4a6\U0001f4a6\U0001f4a6\U0001f4a6 ¡He tenido que reiniciar el Router, ahora el servicio de Internet está *ONLINE, todo correcto! \U0001f4a6\U0001f4a6\U0001f4a6\U0001f4a6"
Ya solo nos queda mostrarlo en nuestro panel
- type: entities
title: Información sistema
show_name: true
show_state: false
show_header_toggle: false
columns: 3
entities:
- sensor.version
- sensor.last_boot
- binary_sensor.conectividad_internet
- entity: sensor.ip_externa
name: 'Dirección IP externa'
BONUS; Como siempre puede fallar algo y como protección redundante en el apartado “SCHEDULE” hemos programado tres inicios automáticos del enchufe al día. y también debemos programar que el estado inicial al volver la alimentación sea ON
Para probarlo solo hay que quitar el cable WAN que viene de la ONT y esperar los cinco minutos y veremos que funciona perfectamente !!!!!!