> ## Content Index
> Fetch the complete content index at: https://blog.firenetwork.it/llms.txt
> Use this file to discover other available public pages before exploring further.

# NUT - come "smartizzare" un UPS
- URL: https://blog.firenetwork.it/nut-come-smartizzare-un-ups/
- Published: 2025-06-30T21:31:22.000Z
- Updated: 2025-07-16T08:46:01.000Z
- Description: Anche il più solido dei sistemi non può nulla senza alimentazione. In questa guida vedremo come monitorare in rete uno o più UPS tramite NUT (Network UPS Tools), così da garantirvi tranquillità anche durante un blackout improvviso.
- Author: Samuele Gabbrielli
- Tags: Guide, Monitoraggio, #Import 2026-03-12 20:23

Gli **UPS** sono indubbiamente i componenti dell'infrastruttura più importanti, specialmente per chi non dispone di un'utenza elettrica professionale e viene impattato maggiormente da un blackout locale o da sbalzi di corrente.

Potrete anche avere messo sotto bilanciamento i vostri servizi, ma **senza corrente nessuno dei vostri nodi rimarrà acceso** per fronteggiare il guasto!

Mi piace immaginare che vi siate presi un po' di paura avendo pensato a quanto ho appena scritto, e che avete appena montato un UPS nuovo fiammante, ma **non sapete come monitorarlo**.

Il manuale del produttore **sembra scritto in geroglifici**, ed avete solo capito che dovete collegare l'UPS tramite cavo USB-B (volgarmente chiamato "*Cavo Stampante*") ad un computer.

Grazie al progetto **NUT** (Network UPS Tools) installato su un computer collegato fisicamente all'UPS potrete monitorare lo stato dell'UPS direttamente dalla rete.

Di conseguenza, **potrete stare molto più tranquilli** quando sentirete il vicino smadonnare perché ha appena perso il lavoro delle ultime due ore, e non solo! **Saprete anche quanta batteria vi rimane**, e per quanto **tempo** potrete ancora stare -relativamente- tranquilli.

Vediamo insieme come fare!

![](https://blog.firenetwork.it/content/images/2025/06/Immagine-WhatsApp-2025-06-26-ore-19.35.25_07626ed9.jpg) 

## Prerequisiti

Per poter utilizzare NUT avrete bisogno di:

- Un UPS con interfaccia di comunicazione. Di solito a partire dagli UPS di fascia media è molto comune trovare una porta USB-B sul retro per collegare l'UPS con un computer.

![](https://blog.firenetwork.it/content/images/2025/06/S86cba2ddaf784dabb3ff0d4faa1f5cfcg.jpg_640x640q90.webp)

due porte USB-B ed un cavo da USB-A ad USB-B

‼️

Se state acquistando un UPS, accertatevi che il cavo da USB-A a USB-B sia incluso, altrimenti procuratevene uno.

- Un computer a cui collegare l'UPS. Potete collegarlo direttamente al vostro PC, ma dovrete usare il software fornito dal produttore (**che non sempre è all'altezza**).  
Per utilizzare l'UPS tramite NUT dovrete collegarlo ad un computer che faccia da *middleman*, cioè che **legga le informazioni dall'UPS** e **le esponga tramite un'interfaccia web** per la fruizione da un dispositivo terzo.  
Per via del costo e delle dimensioni contenute, vi consiglio di usare un **Raspberry Pi Zero 2 W** (va benissimo anche un modello di prima generazione, se ce l'avete di scorta!)

![](https://blog.firenetwork.it/content/images/2025/06/61mLe5TOkFL._AC_SL1500_.jpg) 

#### Raspberry Pi Zero 2 W

€28

[Acquista su Amazon](https://www.amazon.it/Raspberry-Pi-Zero-2-W/dp/B09KLVX4RT?%5F%5Fmk%5Fit%5FIT=%C3%85M%C3%85%C5%BD%C3%95%C3%91&crid=3E9K45TGZ6LLB&dib=eyJ2IjoiMSJ9.fncIJs8H7j2XX5cd0eT7d8px-9wYIZp3aiwI14Cgw2eTEPwiVlf%5F-RCMHlnyl1yGiLUhE1GR5MmX4q95FbArISU5KXFTivzPNgcm%5FKcQIIUkWT7ODAoFC0Ib8hcgE6ddu1ISptQYvcG5hyeGZEBhmFlQVqB2GxbJK1QRZwp1N4vnhtyBLkkGDcAzicBGEBEGBJ6fedIrgwV6kzpdIRIn%5FflLlhcm4PZy%5FuCRpBAenymNb7YX3igGQrn-cQXMNj0aiPPa4xseJSpUS9XowRfFKQljw%5FAmVqTXI7GF7EQeSqI.pUH2IIrhJlqtbE-2XaIxRKI-lZwc6NNsy5OIPkF9P3A&dib%5Ftag=se&keywords=raspberry+pi+zero+w&qid=1751318152&s=pc&sprefix=raspberry+pi+zero+w%2Ccomputers%2C101&sr=1-2&ref=blog.firenetwork.it) 

💡

Se non avete un computer o un SBC da dedicare a questo progetto, potete collegare l'UPS ad un Host ESXi ed esporre ad una VM Linux il dispositivo USB.

![](https://blog.firenetwork.it/content/images/2025/06/luca-bravo-XJXWbfSo2f0-unsplash-1-.jpg) 

## Installazione

*(procedura testata su Raspberry Pi OS 2024-11-19)*

L'installazione di NUT è **semplicissima**, basta installare il pacchetto tramite il gestore dei pacchetti del nostro sistema operativo

```
sudo apt install nut
```

A breve andremo a **censire** l'UPS su NUT, e vi consiglio quindi di andare a recuperare **marca** e **modello** del vostro UPS.

Nel mio caso si tratta di un EPYC NEON da 650VA:

![](https://blog.firenetwork.it/content/images/2025/06/EPYC_NEON.jpg) 

#### EPYC NEON 650VA

€70

[Acquista su Amazon](https://www.amazon.it/dp/B07N2NMJ9X?ref=blog.firenetwork.it) 

E di un Tecnoware ERA Plus 2000:

![](https://blog.firenetwork.it/content/images/2025/06/Tecnoware_Era_Plus_2000.jpg) 

#### Tecnoware ERA Plus 2000VA

€145

[Acquista su Amazon](https://www.amazon.it/dp/B01B1WAJG0?th=1&ref=blog.firenetwork.it) 

![](https://blog.firenetwork.it/content/images/2025/06/thisisengineering-zBLtU0zbJcU-unsplash.jpg) 

## Configurazione

Andiamo a censire il nostro UPS

```
nano /etc/nut/ups.conf
```

Di seguito, due esempi relativi ai miei due UPS. Sulla [pagina del progetto NUT](https://networkupstools.org/index.html?ref=blog.firenetwork.it) potete trovare una [lista di parametri associati a vari modelli di UPS](https://networkupstools.org/stable-hcl.html?ref=blog.firenetwork.it).

```
[Tecnoware]  
driver = "blazer_usb"  
port = auto  
desc = "Tecnoware Era Plus 2000"  
langid_fix = "0x409"

[EPYC]  
driver = "usbhid-ups"  
port = auto  
desc = "EPYC NEON"
```

❗

Ricordatevi di segnarvi il nome dell'UPS che andate a censire (negli esempi sopra, si tratta di **Tecnoware* ed **EPYC*) perché in seguito dovremo passare questi nomi case sensitive a NUT

Modifichiamo il file *nut.conf*

```
nano /etc/nut/nut.conf
```

impostando la modalità in **standalone**

```
MODE=standalone
```

diamo un riavvio alla macchina (non sempre necessario)

```
reboot
```

Prima di procedere, controlliamo un paio di cose:

- Controlliamo che lo stato del servizio *nut-server* sia **active (running)**

```
sudo service nut-server status
```

- Controlliamo quindi se NUT riesce a leggere correttamente i parametri dall'UPS

```
upsc %nomeups%
```

Dovreste ricevere un output simile a questo, ma tenete a mente che il numero di parametri disponibili varia molto a seconda del modello.

```
Init SSL without certificate database
battery.charge: 100
battery.voltage: 27.20
battery.voltage.high: 26.00
battery.voltage.low: 20.80
battery.voltage.nominal: 24.0
device.type: ups
driver.name: blazer_usb
driver.parameter.langid_fix: 0x409
driver.parameter.pollinterval: 2
driver.parameter.port: auto
driver.parameter.synchronous: auto
driver.version: 2.8.0
driver.version.internal: 0.14
driver.version.usb: libusb-1.0.26 (API: 0x1000109)
input.current.nominal: 4.0
input.frequency: 50.0
input.frequency.nominal: 50
input.voltage: 236.2
input.voltage.fault: 236.2
input.voltage.nominal: 230
output.voltage: 236.2
ups.beeper.status: enabled
ups.delay.shutdown: 30
ups.delay.start: 180
ups.load: 2
ups.productid: 0000
ups.status: OL
ups.type: offline / line interactive
ups.vendorid: 0001
```

Da ora in poi, su questo sistema potremo visualizzare i parametri dell'UPS tramite il comando **upsc**.

Se volete integrare questa funzione con altri applicativi in rete (come Grafana e HomeAssistant) procedete col prossimo capitolo.

---

## Censimento Utenti

Modifichiamo il file *upsd.users* che definisce gli utenti che possono contattare il servizio *upsd* via rete per ottenere i parametri degli UPS.

```
nano /etc/nut/upsd.users
```

Compilate il file come segue, cambiando la password di default *mypasswd*

```
[admin]  
password = mypasswd  
actions = SET  
instcmds = ALL

[upsmon]  
password = mypasswd  
upsmon master
```

---

## Configurazione monitoraggio

Modifichiamo il file *upsmon.conf*

```
nano /etc/nut/upsmon.conf
```

Aggiungete la seguente riga in cima al file

```
MONITOR %nomeups%@localhost 1 upsmon %password% master
```

facendo attenzione a valorizzare:

- *%nomeups%* col nome UPS indicato in */etc/nut/ups.conf*
- *%password%* con la password di upsmon indicata in */etc/nut/upsd.users*

**Opzionalmente**, se si vuole ricevere un avviso sulla CLI di questa macchina quando lo stato dell'UPS cambia, decommentare le seguenti righe (sono già presenti nel file di default):

```
NOTIFYFLAG ONLINE SYSLOG+WALL  
NOTIFYFLAG ONBATT SYSLOG+WALL  
NOTIFYFLAG LOWBATT SYSLOG+WALL  
NOTIFYFLAG REPLBATT SYSLOG+WALL
```

---

## Configurazione servizio web

- modifichiamo il file */etc/nut/upsd.conf* che contiene i parametri del server web **upsd**, che gli altri applicativi contatteranno per ricevere le metriche degli UPS

```
nano /etc/nut/upsd.conf
```

- aggiungiamo la seguente riga al file per lasciare il server in ascolto su **tutti gli indirizzi IP disponibili**, sulla **porta 3493**

```
LISTEN 0.0.0.0 3493
```

---

## Configurazione dei permessi sui files

- Come ultima cosa, modifichiamo i permessi dei files di configurazione in modo che il servizio li possa leggere

```
sudo chown nut:nut /etc/nut/*
sudo chmod 640 /etc/nut/upsd.users /etc/nut/upsmon.conf
```

![](https://blog.firenetwork.it/content/images/2025/06/home-automation-integration-8_x700.webp) 

## Utilizzo

su HomeAssistant

Usando l'integrazione nativa **Network UPS Tools (NUT)** possiamo importare le metriche degli UPS, tramite NUT, direttamente su HomeAssistant.

- Andate in **Settings** → **Devices & Services** e premete su **Add Integration**
- Cercate e selezionate "Network UPS Tools (NUT)"

![](https://blog.firenetwork.it/content/images/2025/06/1.png)

- Configurate i parametri di connessione indicando:
  - **Host** → l'indirizzo IP del server NUT (nel mio caso, il Raspberry Pi)
  - **Port** → la porta che avete indicato nella direttiva **LISTEN** dentro a */etc/nut/upsd.conf*
  - **Username** → l'utente amministratore del server NUT (quello con cui effettuate l'accesso sulla macchina)
  - **Password** → la password dell'utente amministratore del server NUT

![](https://blog.firenetwork.it/content/images/2025/06/2.png)

Come avrete notato, non possiamo specificare il nome dell'UPS da monitorare. In questo modo verranno importati in HomeAssistant tutti gli UPS collegati a questa istanza di NUT, se ce ne sono più di uno.

A seconda delle metriche supportate dal vostro UPS, adesso avrete un nuovo **Device** con svariate **Entities**, come:

- Percentuale di carica
- Tensione in ingresso
- Tensione in uscita
- Carico (%)

Che potete usare nelle vostre dashboard o anche in automazioni.

Per esempio, potete creare una nuova automazione che vi invii un messaggio su Telegram quando la percentuale di carica dell'UPS scende sopra al 90%.

![](https://blog.firenetwork.it/content/images/2025/06/b14391529d982c43634156f8b0e8b09c94b7ad4f.jpg) 

## Utilizzo

su Windows

Ci sono vari client open-source per Windows che supportano NUT. In questo esempio vedremo come configurare [Windows NUT Client](https://github.com/nutdotnet/WinNUT-Client?ref=blog.firenetwork.it)

❗

****Windows NUT Client** è ben lontano dall'essere un software perfetto, ma tra tutti i progetti che ho trovato è il migliore disponibile (al momento). Non esitate a farmi sapere se doveste trovare un alternativa migliore e più aggiornata.

- Prima di tutto, scaricate il pacchetto .msi dell'[ultima release disponibile](https://github.com/nutdotnet/WinNUT-Client/releases?ref=blog.firenetwork.it) ed installatelo
- Aprite WinNUT-Client e premete su Settings

![](https://blog.firenetwork.it/content/images/2025/06/3.png)

- Configurate le impostazioni:
  - **NUT Host** → l'indirizzo IP del server NUT (nel mio caso, il Raspberry Pi)
  - **NUT Port** → la porta che avete indicato nella direttiva **LISTEN** dentro a */etc/nut/upsd.conf*
  - **UPS Name** → il nome dell'UPS da monitorare, come censito in */etc/nut/ups.conf*
  - **Polling Interval** → ogni quanti secondi il client dovrà richiedere le metriche al NUT Server
  - **Login** → l'utente amministratore del server NUT (quello con cui effettuate l'accesso sulla macchina)
  - **Password** → la password dell'utente amministratore del server NUT
  - **Re-establish connection** → attivare questa opzione per permettere a WinNUT-Client di ricollegarsi all'UPS quando perde la connessione

![](https://blog.firenetwork.it/content/images/2025/06/4.png)

Ora che avete terminato la configurazione di WinNUT-Client, riceverete una notifica di Windows appena lo stato dell'UPS cambia.

Nel caso in cui l'UPS dovesse perdere il collegamento alla corrente, WinNUT-Client vi avviserà periodicamente circa il tempo rimanente prima dell'esaurimento delle batterie (Attenzione: si tratta comunque di una stima che va presa molto con le pinze!)

❗

Purtroppo, allo stato attuale ****Windows NUT Client** non si integra con le funzionalità di Windows relative agli UPS. Non è in grado quindi di mostrare il livello della batteria tramite il widget nativo di Windows. Peccato 😔

---

# Utilizzo con Prometheus/Grafana

Per integrare NUT con Prometheus e Grafana, ed inserire quindi un widget sulla vostra dashboard che indica lo stato dell'UPS, serve un software aggiuntivo che legga i dati da NUT e li prepari per darli in pasto a Prometheus.

Non mi sembrava il caso di allungare così tanto questa guida, che già di suo non è sicuramente corta, ma potete leggere la guida dedicata seguendo questo bookmark:

[Monitorare gli USP tramite NUT e GrafanaUna guida pratica per esporre e raccogliere le metriche dei tuoi gruppi di continuità (UPS) gestiti da NUT. Impara come integrare nut\_exporter con Prometheus per avere sempre sotto controllo lo stato di alimentazione del tuo homelab.![](https://blog.firenetwork.it/content/images/icon/FireNetwork2-30.png)Firenetwork - BlogSamuele Gabbrielli![](https://blog.firenetwork.it/content/images/thumbnail/444-2.png)](https://blog.firenetwork.it/monitorare-gli-usp-tramite-nut-e-grafana/)

---

![](https://blog.firenetwork.it/content/images/2025/06/Written-By-Human-Not-By-AI-Badge-white@2x-4.png)