Installare e configurare i “Network UPS Tools” su HASSIO

7 minuti di lettura
SCOPI DELLA GUIDA:
  • Utilizzare l’ambiente HASSIO per gestire in modo standard, indipendentemente da marca e modello, un qualunque gruppo di continuità (UPS) compatibile con NUT, tramite un add-on specifico
  • Livello di difficoltà: medio/basso
CONCETTI AFFRONTATI:
  • Installazione add-on
  • Configurazione firmware
COMPONENTI SOFTWARE UTILIZZATE:
PREREQUISITI:
DISPOSITIVI FISICI UTILIZZATI:
  • Il (o gli) UPS da gestire tramite NUT
GUIDA maggiormente indicatA per:

Tutti gli ambienti

Note e disclaimer
  • qualsiasi eventuale modifica agli impianti domestici dev'essere progettata ed realizzata SOLO da personale qualificato;
  • qualsiasi modifica attuata in proprio è a propria responsabilità personale nonché a proprio rischio e pericolo (i contenuti della presenta pagina hanno puro scopo didattico);
  • qualsiasi modifica attuata in proprio a un dispositivo ne fa decadere garanzia, omologazioni e certificazioni di qualità.
Revisione guida: 1.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.

UPS APCModelli 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 HASSIO 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 HASSIO 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 Raspbian@Raspberry Pi (o, più genericamente, a installazioni Linux) debbono fare riferimento a quest’altra guida e non alla presente, la quale è dedicata solo agli utenti HASSIO.

Si parte

Assunti

Per questa guida utilizzeremo a mo’ d’esempio un UPS Tecnoware Era Plus 1100 – 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 in distribuzione HASSIO, 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 HASSIO 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 HASSIO 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 HASSIO (che, lo ricordiamo, è composto da un sistema operativo Alpine Linux, da un virtualizzatore “Supervisor” e dall’HUB personale Home Assistant in esecuzione sul virtualizzatore) 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 HASSIO è quanto di più facile.

Per installare l’add-on, cliccare, presso il menu, la voce “Supervisor”  > “ADD-ON STORE“: 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 “INSTALL“:HASSIO - Network UPS Tools AddonAttendere svariati minuti per il completamento dell’installazione. Nel mentre, non chiudere la finestra.
Al termine dell’installazione, non cliccare ancora su “START“. Cliccare invece su “START ON BOOT“.

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 duque 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: 0x4095
    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 HASSIO 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 HASSIO 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 HASSIO, 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’instanza NUT creata tramite e su HASSIO 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 Raspbian. I concetti sono i medesimi applicabili a un qualunque computer che, tramite i servizi client, si interfacci a un server NUT.


Home Assistant Official Logo ATTENZIONE: ricorda che sul nostro community FORUM c'è una sezione ad hoc dedica a Home Assistant, per qualsiasi dubbio, domanda, informazione nel merito specifico di queste componenti.


Telegram News Channel