SCOPI DELLA GUIDA:
CONCETTI AFFRONTATI:
|
COMPONENTI SOFTWARE UTILIZZATE:PREREQUISITI:
DISPOSITIVI FISICI UTILIZZATI:
|
GUIDA indicatA per UTENTI: |
|
NOTE E DISCLAIMER
|
|
Revisione guida: 2.0 |
Abstract
Abbiamo già affrontato in diverse occasioni il tema della continuità elettrica, ovvero la possibilità di rendere la nostra domotica (o altro) costantemente operativa, specie in caso di black-out. Per farlo è necessario dotarsi di un UPS (Uninterruptable Power Supply), il quale sostanzialmente è un pacco di batterie che, in caso di assenza di alimentazione elettrica continua a fornire energia – per lo meno fino alla sua completa scarica.
Modelli di UPS ne esistono centinaia per non dire migliaia: al tema di come e perché scegliere un UPS adeguato alle proprie esigenze abbiamo dedicato una scheda apposita; in tale scheda, nelle conclusioni, abbiamo fatto riferimento all’esistenza di UPS dotati di interfaccia USB la quale consente, in molti casi, di collegare l’unità a un computer al fine di verificarne lo stato operativo, quello di carica rimanente e moltissimi altri parametri. In alcuni casi, essi utilizzano porte seriali oppure una qualche connessione di rete (che sfrutti SNMP, Eaton, MGE XML/HTTP via TCP/IP).
In questa guida prenderemo in analisi l’adozione presso l’ecosistema Home Assistant OS dei cosiddetti “Network UPS Tools” (o “NUT”), un pacchetto di software concepiti espressamente allo scopo di riuscire a “dialogare” con l’UPS (indipendentemente dalla tipologia di interfaccia, di marca, del modello o dalle caratteristiche) e standardizzarne così non solo la consultazione delle misure ma anche l’eventuale esecuzione di comandi specifici verso di esso.
Tale pacchetto viene installato su HassOS/Supervised come add-on, eseguendolo così come server stand-alone: la sua adozione non solo abilita eventuali esecuzioni di comandi e di interrogazioni tramite riga di comando, ma anche e sopratutto all’integrazione verso Home Assistant.
N.b. Gli utilizzatori di un’eventuale installazione Raspberry Pi OS (o, più genericamente, a installazioni Linux) debbono fare riferimento a quest’altra guida e non alla presente, la quale è dedicata solo agli utenti HassOS/Supervised. |
Altre guide e progetti dedicati a NUT:
- Gestire un UPS con Mini PC/Intel NUC/computer tramite NUT (“Network UPS Tools”) con Docker su Linux Debian
- Gestire un UPS con Raspberry Pi tramite “Network UPS Tools” (NUT) su Raspberry Pi OS
- Gestire un UPS con Raspberry Pi tramite NUT (“Network UPS Tools”) con Docker (su Raspberry Pi OS)
- Integrare un UPS a Home Assistant tramite “Network UPS Tools” (NUT)
Si parte
Assunti
Per questa guida utilizzeremo a mo’ d’esempio un UPS Tecnoware Era Plus 1100 (o il leggermente più capiente 1200) – non foss’altro perché lo abbiamo in redazione e si tratta di un modello piuttosto diffuso. Come si capirà facilmente nella proseguimento della lettura, in realtà i modelli coi quali questa guida è applicabile sono tantissimi.
Si assume dunque di possedere un’installazione di Home Assistant OS/Supervised, oltre ovviamente a un UPS compatibile (vedremo come) con NUT. Nell’esempio del Tecnoware Era Plus 1100, si immagina tale UPS connesso dal punto di vista logico al computer sul quale è in esecuzione l’ambiente HassOS/Supervised tramite cavo USB type B.
Cosa sono i NUT
Come spiegato nell’Abstract, Network UPS Tools è un insieme di software utile a interfacciarsi in modo standard a un UPS dotato di interfaccia USB, seriale o di rete (via SNMP, Eaton o MGE XML/HTTP su TCP/IP).
I NUT per HassOS/Supervised sono sostanzialmente composti da:
- un driver per comunicare con l’UPS tramite qualsiasi interfaccia e protocollo supportati, trasformando tale comunicazione in API locali standard;
- un demone (un servizio) che funga da interfaccia tra il driver e qualunque altro interlocutore (per esempio il client che segue, o gli HUB personali).
L’ecosistema Home Assistant OS/Supervised dispone di add-on (sostanzialmente, altre macchine virtuali eseguite sempre sotto virtualizzatore) chiamato per l’appunto “Network UPS Tools”, il quale consente di dotarsi dei NUT al fine di comunicare con l’UPS (o gli UPS) ed eventualmente integrarli con l’HUB domotico.
Scelta del driver
Non tutti gli UPS con interfacciamento USB/seriale/di rete sono necessariamente compatibili con NUT, anche se solitamente la probabilità è piuttosto alta.
Come abbiamo spiegato anche nella scheda dedicata alla scelta del proprio UPS, esiste una tabella di riferimento che elenca tutti i modelli compatibili con i Network UPS Tools: se il proprio UPS è presente in quella lista, è dunque possibile controllarlo con i NUT. Una volta trovato il proprio modello è necessario segnarsi da parte il driver corrispondente (colonna “Driver”, per l’appunto), informazione fondamentale per l’esecuzione dei prossimi passi.
N.b. Non sempre i modelli sono puntualmente elencati in tabella. Per esempio, proprio nel caso del nostro Tecnoware 1100 è riportato in pratica solo il brand Tecnoware, ma non il modello specifico. Utilizzando comunque il driver genericamente indicato (blazer_usb), l’integrazione verso i NUT ha funzionato alla perfezione, come infatti vedremo a seguire. |
Installazione dell’add-on
Installare l’add-on “Network UPS Tools” su HassOS/Supervised è quanto di più facile.
Per installare l’add-on, cliccare, presso il menu, la voce: “Impostazioni” > “Componenti aggiuntivi” e poi sul pulsante “Raccolta di componenti aggiuntivi“.
Si tratta di accedere ad una vera e propria “vetrina” di componenti aggiuntivi (gratuiti) che, proprio come mattoncini da costruzioni, andranno ad arricchire le funzionalità del nostro HUB.
Cercare dunque “NUT“, selezionarlo e cliccare su “INSTALLA“:Attendere svariati minuti per il completamento dell’installazione. Nel mentre, non chiudere la finestra.
Al termine dell’installazione, non cliccare ancora su “AVVIO“. Cliccare invece su “ESEGUI ALL’AVVIO“.
Configurazione dell’add-on
A questo punto è necessario definire l’elenco di UPS gestiti dai Network UPS Tools. Nella maggior parte dei casi, si tratterà di un solo elemento, ma nessuno vieterebbe di definirne più di uno.
Ipotizziamo quindi di aver collegato il nostro UPS al Raspberry tramite cavo USB e di aver identificato nel “blazer_usb” il driver corretto: andremo quindi a modificare il file di configurazione dei NUT aggiungendo la voce relativa all’UPS.
Accedere dunque alla voce “Configuration“, in alto.
La configurazione proposta di default è la seguente:
users: - username: '' password: '' instcmds: - all actions: [] devices: - name: myups driver: usbhid-ups port: auto config: [] mode: netserver shutdown_host: 'false'
Nel blocco users si definiscono gli utenti che debbano avere accesso al servizio (ne definiremo uno), in quello devices l’elenco degli UPS da gestire.
Il blocco users andremo a impostare come segue:
users: - username: nutty password: mia_password instcmds: - all actions: []
dove ovviamente andremo ad indicare una password personale (il più possibile complessa). Per aumentare il livello di sicurezza, infatti, l’add-on all’avvio verificherà che la password non sia insicura; in caso la consideri tale, nella sezione “Log” si troverà una voce come segue:
WARNING: Password is in the Have I Been Pwned database!
la quale indicherà una configurazione non sicura che impedisce l’avvio dell’add-on. Impostare dunque una password più complessa e riprovare l’avvio. Come username imposteremo “nutty” (ma potrebbe essere anche un altro username a scelta).
La parte più importante viene ora, ovvero la definizione del blocco devices. Qui possono essere indicati quanti UPS si vuole; nel caso del Tecnoware Era Plus 1100, la configurazione è la seguente:
devices: - name: tecnoware driver: blazer_usb langid_fix: 0x409 desc: Technoware Era Plus 1100 port: auto config: []
Spieghiamo i campi.
name | Il nome col quale l’UPS sarà conosciuto dai NUT |
driver | L’indicazione del driver da utilizzare per questo UPS |
port | La porta da utilizzare (solitamente si indica auto, ma potrebbe essere anche esplicitata come spiegato qui) |
desc | Descrizione verbosa del proprio UPS |
langid_fix | Campo opzionale, necessario in alcuni casi. Per il Tecnoware d’esempio, la fix indicata è quella specifica per il Tecnoware 1100 (trovata in rete). |
Così facendo, i NUT su HassOS/Supervised conosceranno ora un UPS chiamato “tecnoware“.
N.b. Va da sé che ogni UPS abbia una propria configurazione. Se si è fortunati, una configurazione molto semplice come quella qui sopra indicata è più che sufficiente; in altri casi è necessario scavare più a fondo per precisare meglio la configurazione, come documentato in dettaglio qui): |
Infine, alla voce “Network” impostare la porta 3493.
Salvare, uscire e, sulla pagina principale dell’add-on, cliccare su “START“.
Recarsi alla voce in alto a sinistra “LOG“: se tutto andrà bene, si avrà un output analogo al seguente:
[12:00:25] INFO: Setting mode to netserver... [12:00:26] INFO: Generating /etc/nut/upsd.users... [12:00:28] INFO: Configuring user: admin [12:00:30] INFO: Password is NOT in the Have I Been Pwned database! Nice! [12:00:34] INFO: Configuring Device named tecnoware... [12:00:35] INFO: Starting the UPS drivers... Network UPS Tools - UPS driver controller 3.8.0-3396-gcdc7c4b5b1 Network UPS Tools - Megatec/Q1 protocol USB driver 0.12 (3.8.0-3396-gcdc7c4b5b1) Supported UPS detected with mustek protocol Vendor information unavailable No values provided for battery high/low voltages in ups.conf Using 'guestimation' (low: 10.400000, high: 13.000000)! Battery runtime will not be calculated (runtimecal not set) [cont-init.d] nut.sh: exited 0. [cont-init.d] nutclient.sh: executing... [cont-init.d] nutclient.sh: exited 0. [cont-init.d] done. [services.d] starting services [services.d] done.
Questo fornirà l’evidenza che i servizi siano stati avviati in modo corretto, che l’UPS in questione sia stato contattato in modo corretto e che, sostanzialmente, i NUT siano correttamente funzionanti.
Uso
A questo punto sulla vostra rete LAN sarà apparso un server NUT autonomo, il quale risponderà all’IP che ospita Home Assistant OS/Supervised e alla porta 3493.
Cosa farne?
Il 99% degli utenti arrivati sino a questo punto della guida l’avranno eseguita per integrare i suoi servizi al proprio HUB personale per domotica, ovvero Home Assistant. C’è da chiarire che, come tutti gli add-on di Home Assistant OS/Supervised, si tratta di un servizio a se stante: se per assurdo sulla rete fosse presente un altro HUB personale, diciamo openHAB, esso potrebbe collegarsi all’istanza NUT creata tramite e su HassOS/Supervised al fine di censire e controllare l’UPS.
Al processo di integrazione dei servizi NUT verso Home Assistant abbiamo dedicato una guida ad hoc.
Chi volesse potrebbe anche, giusto per esempio, installarsi i soli servizi client da eseguire sul proprio computer di appoggio (per Windows, Mac, Linux eccetera) e, puntando verso l’IP/porta del server NUT appena installato, interrogare e/o comandare il proprio/i propri UPS tramite esso gestiti. In riferimento al tema dei comandi eseguibili verso l’UPS, si consiglia di leggere questo paragrafo di questa stessa guida declinata all’uso su Raspberry Pi OS. I concetti sono i medesimi applicabili a un qualunque computer che, tramite i servizi client, si interfacci a un server NUT.
⚠️ 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. Alcuni link sono taggati in qualità di affiliati Amazon e riceviamo un compenso dagli acquisti idonei, utile al sostenimento del sito, ma le nostre recensioni sono tutte indipendenti e non sponsorizzate. Se ti sei perso, a tua disposizione c'è la mappa. |