Scopi della guida:
Concetti affrontati:
|
Componenti software utilizzate:
Prerequisiti:
Dispositivi fisici utilizzati:
|
GUIDA INDICATA A UTENTI CON ISTALLAZIONE:![]() |
|
NOTE E DISCLAIMER
|
|
Revisione guida: 1.2 |
Abstract
La possibilità di integrare sulla domotica gestita tramite il noto HUB personale Home Assistant le letture istantanee di un gruppo di continuità (UPS) è tra le cose più utili – e forse primarie – che si possano attuare.
Un gruppo di continuità è, in pratica, un pacco batterie che consente a determinati elettrodomestici (solitamente a basso consumo) di non subire uno spegnimento repentino in caso di black-out. Nulla come la domotica merita questo tipo di salvaguardia, e non per vezzo: per utilità. Si pensi banalmente al tema dei furti in appartamento trattato sulla scheda in cui spieghiamo come scegliere un UPS domestico.
Integrare un UPS al proprio HUB significa conoscerne istantaneamente lo stato di carica delle batterie e molti indicatori, tra i quali, primariamente, il fatto che ci si trovi sotto alimentazione di rete o, in caso di black-out, sotto batterie. Questo è utile perché offre la possibilità all’utente di definire delle automazioni che, in assenza di corrente (qualsiasi sia il motivo di questo outage) venga allertato tramite notifiche, inneschi degli allarmi e tanto altro ancora.
A tale scopo, Home Assistant dispone, tra le decine di componenti di integrazione, di uno specifico chiamato “Network UPS Tools (NUT)” il quale consente di integrare qualsiasi UPS collegato a un server NUT. Va da sé che, prima di utilizzare questo componente, ci si debba dotare di tale server.
Ma vediamo una cosa alla volta.
Si parte
Cos’è NUT
NUT, acronimo di Network UPT Tools, è un insieme di strumenti software che consente a un generico computer (Raspberry? Mac? Intel NUC? qualsiasi, in pratica) di interfacciarsi a uno o più gruppi di continuità UPS dotati di una interfaccia a scelta tra USB, seriale oppure una qualche connessione di rete (che sfrutti SNMP, Eaton, MGE XML/HTTP via TCP/IP).
Va da sé che per integrare a Home Assistant un UPS tramite NUT sia necessario installarne e configurarne la parte server, prima di attuare la presente guida.
Qualche guida a tal proposito:
- in caso si disponga un computer tradizionale, un Mini PC o un Intel NUC con sistema operativo Linux Debian con Docker, la guida è questa;
- in caso si disponga un Raspberry Pi con sistema operativo Raspberry Pi OS (Raspbian), la guida è questa;
- in caso si disponga un Raspberry Pi con sistema operativo Raspberry Pi OS (Raspbian) con Docker, la guida è questa;
- in caso si disponga di Home Assistant OS, la guida è questa.
Solo e unicamente dopo aver installato e configurato con successo il proprio server NUT sarà possibile effettuare l’integrazione come descritto nella presente guida.
N.b. Network UPS Tools non è l’unico componente di integrazione disponibile su Home Assistant per integrare UPS: ne esistono svariati (eg. apcupsd per gli UPS a marca APC). Semplicemente, NUT è uno “strato di standardizzazione” tra i più comunemente utilizzati (e coi quali gli UPS sono più compatibili), ragion per cui abbiamo realizzato questa guida. |
Integrazione Home Assistant
Ora che abbiamo dato per assodata la presenza sulla nostra rete LAN di un proprio server NUT che dialoga correttamente col nostro/i UPS, siamo pronti ad attuare l’integrazione presso il nostro HUB. Solitamente il server NUT e Home Assistant sono in esecuzione sullo stesso computer (questo è sicuramente vero nel caso di Home Assistant OS); ciononostante, tale server potrebbe anche essere in esecuzione su un computer diverso. Non è un problema.
Detto ciò, presso l’interfaccia di Home Assistant clicchiamo su “Configurazione” > “Dispositivi e servizi” e poi su “+“. Nell’elenco, cerchiamo NUT:
Trovata l’integrazione, cliccarci sopra. Si aprirà una finestra di dialogo come segue:
Nei vari campi indicheremo:
Host | l’indirizzo IP del server NUT (localhost, se è in esecuzione sullo stesso computer di Home Assistant) |
Porta | La porta del server, solitamente 3493 |
Nome utente | Il nome utente definito in fase di configurazione del NUT |
Password | La password relativa all’utente definito in fase di configurazione del NUT |
Completati i campi, cliccare su “INVIA“.
Se tutto andrà come deve, Home Assistant riporterà un successo, indicando quale UPS è stato riconosciuto in base alla connessione con il server NUT (in questo caso un Tecnoware Era Plus 1100, come quello portato a mo’ d’esempio nelle guide di installazione del NUT).
Cliccando su “FINITO“, l’integrazione elencherà i possibili sensori (in base al modello di UPS) includibili a Home Assistant:
Selezionare dunque quelli di proprio interesse (suggeriamo di includerli tutti).
Terminata questa operazione, presso il menu “Integrazioni” di Home Assistant sarà apparsa una nuova voce:
Tanti saranno i dispositivi quanti gli UPS “conosciuti” dal server NUT; il numero di entità varierà invece in base al modello/i di UPS (e alle selezioni effettuate nel passo precedente).
A scopo esemplificativo, mostriamo l’elenco delle entità relative al Tecnoware Era Plus 1100 usato com esempio nelle altre guide:
Automazione
Arrivati a questo punto ci saremo dotati di diverse entità (principalmente di tipo “Sensor“) che potremo utilizzare sia per la consultazione sia per l’automazione legata allo stato dell’USP (o degli UPS).
Le tre entità che riteniamo più importanti sono essenzialmente:
- sensor.NOME_UPS_status_data
- sensor.NOME_UPS_battery_charge
- sensor.NOME_UPS_load
Le quali ci danno la misura di cosa sia succedendo sul piano elettrico.
Lo stato della prima entità sostanzialmente prevede tre possibili valori:
- OL (on-line, cioè alimentato a rete)
- OB (on-battery, ovvero erogazione tramite batteria in corso per assenza di alimentazione di rete)
- Unknow (quando ci sono problemi di comunicazione verso NUT).
Va da sé che quando si passa da OL a OB significa che è “saltata la corrente”, viceversa quando ritorna.
La seconda entità riporta quanta carica di batteria rimane: arrivati a 0%, l’UPS si spegne. Infine, la terza ci dice quale % di carico l’UPS stia supportato, in caso di erogazione a batterie.
NOTIFICA BLACK-OUT (e ritorno)
Definire un’automazione che per esempio invii una notifica all’app Home Assistant Companion degli inquilini a fronte di un black-out (o del ritorno alla normalità) è quanto di più elementare:
automation: - alias: "Notifica power outage" trigger: platform: state entity_id: sensor.NOME_UPS_status_data condition: [] action: service: notify.mobile_app_NOME_SMARTPHONE-TABLET data: data: push: badge: 1 title: Domotica message: > {% if trigger.to_state.state == 'OB' %} ATTENZIONE: Assenza di tensione elettrica in casa! {% elif trigger.to_state.state == 'OL' %} Fornitura elettrica domestica ristabilita. {% else %} UPS fuori linea. {% endif %}
Ovviamente nei blocchi condition e action si potrà impostare quello che meglio si crede, come l’attivazione di un allarme o molto altro.
NOTIFICA BATTERIA BASSA UPS
E se volessimo esser notificati, mentre siamo in blackout, dell’abbassarsi – criticamente – della batteria?
automation: - alias: "Notifica batteria UPS bassa" trigger: platform: numeric_state entity_id: sensor.NOME_UPS_battery_charge below: 15 condition: [] action: - service: notify.mobile_app_NOME_SMARTPHONE-TABLET data: data: push: badge: 1 title: Domotica message: "Attenzione, capacità residua dell'UPS inferiore al 15%."
SPEGNIMENTO CONTROLLATO RASPBERRY PI
Ipotizziamo che, come capita sovente, il nostro Home Assistant sia in esecuzione su Raspberry Pi o su Mini PC (o altro) e che esso sia alimentato dall’UPS in questione. In caso ci si avvicini allo 0% di batteria residua, vorremo che esso venga spento in modo controllato per evitare danni e corruzione dei dati.
Su Home Assistant OS, definiremmo un’automazione di questo tipo:
automation: - alias: "Shutdown per batteria UPS bassa" trigger: platform: numeric_state entity_id: sensor.NOME_UPS_battery_charge below: 5 condition: [] action: - service: notify.mobile_app_NOME_SMARTPHONE-TABLET data: data: push: badge: 1 title: Domotica message: "Raspberry Pi in spegnimento controllato per batteria UPS insufficiente." - service: hassio.host_shutdown
mentre su Home Assistant Core installato su sistema operativo Raspberry Pi OS, definiremmo un’automazione accompagnata da uno “Shell Command“.
automation: - alias: "Shutdown per batteria UPS bassa" trigger: platform: numeric_state entity_id: sensor.NOME_UPS_battery_charge below: 5 condition: [] action: - service: notify.mobile_app_NOME_SMARTPHONE-TABLET data: data: push: badge: 1 title: Domotica message: "Raspberry Pi in spegnimento controllato per batteria UPS insufficiente." - service: shell_command.shutdown_pi_cmd shell_command: shutdown_pi_cmd: '/usr/bin/sudo /sbin/shutdown now'
Inoltre è necessario eseguire da terminale il seguente comando:
sudo nano /etc/sudoers
e appurare che esista la seguente riga (altrimenti, aggiungerla) nel file che apparirà:
homeassistant ALL=(ALL) NOPASSWD:ALL
Dopodiché salvare, uscire (ctrl+x, y, invio) e riavviare.
CAMBI DI STATO
A prescindere, è possibile utilizzare un’automazione che invii notifiche (o faccia altro, chiaro) a fronte della ricezione di qualsiasi cambio di stato dell’UPS (o degli UPS) configurato/i su NUT:
automations: - alias: 'Cambio di stato UPS' trigger: platform: event event_type: nut.ups_event condition: [] action: service: notify.mobile_app_NOME_SMARTPHONE-TABLET data: data: push: badge: 1 title: Domotica message: "{{ trigger.event.data.notify_msg }}"
⚠️ Se di Home Assistant ne sai poco ma sei interessato a capirne di più, ti suggeriamo di partire da qui. |
Questa pagina è redatta, manutenuta e aggiornata dallo staff di inDomus, un gruppo di persone molto diverse tra loro che trovi, per domande e supporto, sul forum e sulla chat del sito. Se ti sei perso, a tua disposizione c'è la mappa. |