Home Assistant: Automazione di reboot in caso di errori
Recentemente mi sono cimentato in un problema relativo a home assistant e al riavvio dell’host in caso, ad esempio, di mancata corrente.
Più in generale, se all’avvio di home assistant un integrazione o un dispositivo (e.g. sensore) non fosse momentaneamente disponibile il nostro hub non lo configura rendendo di fatto inutilizzabile tutto ciò che ad esso è collegato (automazioni, script etc). Vediamo come ovviare a questo problema.
Nella mia architettura posseggo un server fisico su cui ho installato xcp-ng che schedula diverse virtual machines, tra cui una che si occupa di gestire container docker. Su quest’ultima è installato il docker home assistant.
Quando dovesse mancare la corrente e successivamente ritornare il server riparte e potrebbe capitare che la connessione ad internet, il server dns o qualche servizio e/o integrazione configurati su home assistant non siano ancora disponibile.
In questo caso home assistant, dopo aver fallito l’inizializzazione del componente, segnalerà un errore di invalid config (persistent_notification.invalid_config) e non attiverà tutto ciò che è associato a questo elemento.
Un workaround per questo può essere quella di creare un automazione:
automation:
- alias: "Startup: Restart on Error"
trigger:
- platform: homeassistant
event: start
action:
- delay: 00:00:60
- condition: state
entity_id: persistent_notification.invalid_config
state: 'notifying'
- service: script.homeassistant_restart
Questa automazione di fatto viene eseguita allo startup di home assistant. Attende 1 minuto e se si verifica un invalid configuration esegue lo script di restart. Di seguito è riportato lo script di restart:
script:
homeassistant_restart:
alias: "Riavvio servizio"
sequence:
- service: shell_command.docker_restart
Riporto infine lo shell_command associato:
shell_command:
docker_restart: '/sbin/reboot'
Nel mio caso, essendo home assistant in esecuzione su un container docker, il comando reboot verrà eseguito sul container (e non sull’host o vm in cui è in esecuzione docker).
Nota: è consigliabile disabilitare questa automazione quando si prova a modificare la configurazione di home assistant per, ad esempio, aggiungere nuove funzionalità o modifiche varie.
Alla prossima.
Share this content: