Spiacenti, il tuo browser non supporta JavaScript!
Accedi

Monitoraggio Energetico Self-Hosted con Docker

Monitoraggio Energetico Self-Hosted con Docker

Un sistema di monitoraggio energetico self-hosted mantiene il server di monitoraggio e i dati elettrici sotto il tuo controllo. Invece di inviare ogni lettura a un cloud pubblico, il contatore energetico carica i dati su un container Docker in esecuzione su un server locale, NAS, Raspberry Pi o router compatibile.

IAMMETER-Docker fornisce un server di monitoraggio energetico locale pronto all'uso per il consumo elettrico e i sistemi solari fotovoltaici. Può raccogliere misurazioni, visualizzare dati in tempo reale e storici, esporre API e opzionalmente funzionare come datalogger offline.

Contatore energetico IAMMETER
        │
        │ Wi-Fi / rete locale
        ▼
IAMMETER-Docker
        │
        ├── Dashboard web locale
        ├── Dati energetici storici
        ├── API REST
        ├── MQTT
        ├── Datalogger CSV
        └── Inoltro opzionale

IAMMETER-Docker è un'opzione pratica self-hosted, ma non riproduce tutte le funzionalità e i report di IAMMETER-Cloud. Se stai ancora scegliendo un'architettura, confronta le opzioni nella pagina soluzioni di monitoraggio energetico self-hosted.

🎬 Guarda il video tutorial su IAMMETER-Docker

1. Quando Dovresti Usare un Sistema di Monitoraggio Energetico Self-Hosted?

IAMMETER-Docker è adatto quando desideri:

  • mantenere i dati energetici su un server che gestisci;
  • monitorare l'elettricità su una LAN senza dipendere dall'accesso a Internet;
  • distribuire una dashboard locale di monitoraggio solare;
  • raccogliere dati in un sito remoto utilizzando un datalogger offline;
  • accedere alle misurazioni tramite API REST locale o MQTT;
  • inoltrare dati selezionati a un'altra piattaforma;
  • creare una dashboard privata o un'integrazione basata sui dati energetici memorizzati.

Le installazioni tipiche includono:

  • monitoraggio dell'elettricità domestica e del solare fotovoltaico;
  • officine, uffici e piccoli siti commerciali;
  • sistemi solari remoti e sale attrezzature;
  • ambienti di sviluppo e test;
  • progetti in cui è richiesto un percorso dati locale.

Se hai solo bisogno di letture dirette del contatore per Home Assistant, Node-RED, un PLC o software personalizzato, distribuire un server completo potrebbe non essere necessario. Consulta opzioni di integrazione locale e self-hosted prima di scegliere.

2. Cosa Ti Serve

Prima della distribuzione, prepara:

  • un dispositivo in grado di eseguire Docker, come un server Linux, NAS, Raspberry Pi o router compatibile;
  • spazio di archiviazione persistente per il database dell'applicazione;
  • porta TCP 5050 disponibile per l'applicazione web e l'API;
  • porta TCP 1883 se verrà utilizzato il servizio MQTT integrato;
  • un indirizzo IP stabile o una prenotazione DHCP per l'host Docker;
  • un contatore energetico IAMMETER o un'altra fonte di dati che possa inviare il formato API supportato.

L'host Docker e il contatore devono potersi raggiungere tramite la rete locale. Per il funzionamento offline, non è necessario l'accesso a Internet dopo aver installato l'immagine e il software richiesto.

3. Distribuisci IAMMETER-Docker

La versione corrente su Docker Hub è IAMMETER-Docker V2.4.

3.1 Opzione A: Docker run

Crea una directory di lavoro ed esegui il container con archiviazione persistente:

docker run -d \
  --name myiammeter \
  --restart always \
  -p 5050:5050 \
  -p 1883:1883 \
  -e TZ=Etc/UTC \
  -v "$PWD/data:/app/data" \
  iammeter/iammeter

Cambia TZ=Etc/UTC con il fuso orario corretto per il sito di monitoraggio. I report energetici dipendono dalla data e dall'ora locali, quindi imposta questo prima di raccogliere dati di produzione.

3.2 Opzione B: Docker Compose

Crea compose.yaml:

services:
  iammeter:
    image: iammeter/iammeter
    container_name: myiammeter
    restart: always
    ports:
      - "5050:5050"
      - "1883:1883"
    environment:
      TZ: Etc/UTC
    volumes:
      - ./data:/app/data

Avvia il servizio:

docker compose up -d

Controlla il suo stato:

docker compose ps
docker compose logs --tail=100 iammeter

3.3 Apri la dashboard locale

Apri il seguente indirizzo da un browser sulla stessa rete:

http://<docker-host-ip>:5050

Credenziali predefinite:

Username: testuser
Password: 123456

Cambia immediatamente la password predefinita. Non esporre le porte 5050 o 1883 direttamente a Internet pubblico senza un firewall appropriato, autenticazione e una progettazione di rete sicura.

Accesso a IAMMETER-Docker

4. Configurazione Iniziale

Dopo aver effettuato l'accesso:

  1. Crea un Luogo per la casa, il sito solare o la struttura monitorata.
  2. Aggiungi un Contatore.
  3. Inserisci il numero di serie (SN) del contatore.
  4. Seleziona il tipo corretto di contatore monofase o trifase.
  5. Assegna ciascuna fase o canale come Rete, Inverter o Carico.
  6. Conferma il fuso orario del sito e la struttura delle misurazioni prima di valutare i report.

Configura un contatore in IAMMETER-Docker

L'assegnazione corretta dei canali è particolarmente importante per il monitoraggio solare. Il sistema deve sapere quale misurazione rappresenta la rete, l'inverter o il carico prima di poter visualizzare risultati significativi del flusso energetico.

5. Connetti un Contatore Energetico IAMMETER

I contatori IAMMETER possono caricare direttamente al server Docker locale.

Nella WebUI del contatore, configura il caricamento HTTP di terze parti e utilizza l'indirizzo dell'host Docker:

<docker-host-ip>:5050/api/v1/sensor/uploadsensor

L'IP dell'host Docker deve essere raggiungibile dalla rete Wi-Fi del contatore. Utilizza lo stesso SN del contatore aggiunto a IAMMETER-Docker.

Configura il caricamento HTTP verso IAMMETER-Docker

Dopo aver salvato la configurazione del contatore:

  1. attendi il primo caricamento;
  2. conferma che il contatore risulti online in IAMMETER-Docker;
  3. confronta i valori di tensione, potenza ed energia con i dati locali del contatore;
  4. verifica la direzione e l'assegnazione del canale prima di fare affidamento sui calcoli solari o di importazione/esportazione.

Utilizza IAMMETER-Cloud contemporaneamente

IAMMETER-Docker può opzionalmente inoltrare i dati del contatore a IAMMETER-Cloud. Abilita l'inoltro solo quando desideri sia l'archiviazione locale che i servizi IAMMETER-Cloud.

Inoltra dati locali a IAMMETER-Cloud

Per un'installazione offline o indipendente dal cloud, lascia l'inoltro cloud disabilitato.

6. Carica Dati da un Altro Dispositivo o Applicazione

IAMMETER-Docker può anche ricevere dati energetici supportati tramite la sua API REST. Questo è utile per simulatori, gateway o applicazioni personalizzate che non utilizzano un contatore IAMMETER.

Crea un contatore con un SN personalizzato, quindi utilizza lo stesso SN in ogni richiesta API.

La documentazione interattiva dell'API è disponibile sul server locale:

http://<docker-host-ip>:5050/docs

Documentazione API di IAMMETER-Docker

Testa una richiesta API di IAMMETER-Docker

Testa l'API prima su un contatore non di produzione. Mantieni coerenti SN, conteggio fasi, ordine dei campi e unità di misura in modo che i dati storici rimangano utilizzabili.

7. Esegui un Datalogger Energetico Offline

IAMMETER-Docker V2.4 può salvare i dati in CSV quando viene montata una directory del datalogger. Questo è utile per un sito solare remoto, fabbrica o sala attrezzature senza una connessione Internet affidabile.

Docker run con archiviazione datalogger

docker run -d \
  --name myiammeter \
  --restart always \
  -p 5050:5050 \
  -p 1883:1883 \
  -e TZ=Etc/UTC \
  -v "$PWD/data:/app/data" \
  -v "$PWD/datalogger:/app/datalogger" \
  iammeter/iammeter

Per Docker Compose, aggiungi questo volume:

volumes:
  - ./data:/app/data
  - ./datalogger:/app/datalogger

Apri la pagina del datalogger all'indirizzo:

http://<docker-host-ip>:5050/datalogger

La pagina del datalogger utilizza inizialmente:

Username: admin
Password: admin

Cambia questa password come parte della distribuzione. Per il flusso di lavoro completo basato su router ed esportazione CSV, consulta Datalogger Energetico Offline con IAMMETER-Docker.

8. MQTT e Altre Funzionalità Avanzate

La porta 1883 è utilizzata dal servizio MQTT di IAMMETER-Docker. Un contatore o un'altra applicazione può pubblicare dati di misurazione supportati su IAMMETER-Docker, e i client MQTT possono sottoscriversi ai valori in tempo reale.

IAMMETER-Docker supporta anche funzionalità come:

  • MySQL al posto del database locale predefinito per set di dati più grandi;
  • pubblicazione e sottoscrizione MQTT;
  • inoltro PVOutput;
  • dati energetici Tasmota compatibili;
  • allarmi in tempo reale e scenari di datalogger al secondo.

Queste funzionalità sono intenzionalmente tenute fuori dal percorso di distribuzione di base. Configura e testa prima il container principale, poi continua con la guida avanzata di IAMMETER-Docker.

9. Esegui il Backup dei Tuoi Dati Energetici

Il volume /app/data contiene i dati persistenti dell'applicazione. Esegui il backup della directory host corrispondente regolarmente.

Un processo di base sicuro è:

  1. ferma o metti in pausa le scritture nel container;
  2. copia l'intera directory data montata in un archivio di backup;
  3. includi la directory datalogger quando la registrazione CSV è abilitata;
  4. conserva più di una generazione di backup;
  5. testa il ripristino su un container separato prima di fare affidamento sul piano di backup.

Non trattare il filesystem del container come archiviazione permanente. Se /app/data non è montato, la rimozione del container potrebbe eliminare anche il database di monitoraggio.

10. Aggiorna IAMMETER-Docker

Prima di aggiornare, esegui il backup della directory dei dati persistenti.

Per Docker Compose:

docker compose pull
docker compose up -d
docker compose logs --tail=100 iammeter

Per un container creato con docker run:

  1. registra le porte, il fuso orario e i volumi montati esistenti;
  2. scarica la nuova immagine;
  3. ferma e rimuovi il vecchio container;
  4. crea di nuovo il container con lo stesso volume persistente;
  5. verifica l'accesso, lo stato del contatore e i dati storici.
docker pull iammeter/iammeter
docker stop myiammeter
docker rm myiammeter

Poi ripeti il comando docker run originale. Rimuovere un container è sicuro solo quando i dati dell'applicazione sono stati memorizzati in una directory host correttamente montata di cui è stato eseguito il backup.

11. Risoluzione dei Problemi

La pagina web non si apre

  • Conferma che il container sia in esecuzione con docker ps o docker compose ps.
  • Verifica se la porta host 5050 è già in uso.
  • Controlla i log del container.
  • Conferma che il firewall permetta l'accesso dalla rete locale.

Il contatore non risulta online

  • Conferma che il contatore possa raggiungere l'IP dell'host Docker.
  • Controlla l'URL e la porta di caricamento.
  • Conferma che lo SN in IAMMETER-Docker corrisponda allo SN del contatore.
  • Evita di utilizzare localhost come indirizzo del server nel contatore; si riferisce al contatore stesso, non all'host Docker.
  • Conferma che l'isolamento del client o una rete Wi-Fi ospite non stia bloccando il traffico LAN.

I dati solari sembrano errati

  • Verifica la direzione del CT e il cablaggio.
  • Conferma quale canale è assegnato alla Rete e quale all'Inverter.
  • Controlla il segno della potenza attiva durante l'importazione e l'esportazione.
  • Conferma il fuso orario prima di confrontare i totali energetici giornalieri.

I dati scompaiono dopo aver ricreato il container

  • Conferma che /app/data sia stato montato su una directory host persistente.
  • Controlla i permessi della directory.
  • Ripristina l'ultimo backup verificato se il volume originale non è disponibile.

12. IAMMETER-Docker, IAMMETER-Cloud o un Sistema Personalizzato?

Opzione Ideale per Posizione dati Impegno di configurazione Compromesso principale
IAMMETER-Docker Un server di monitoraggio locale già pronto Il tuo host Docker Da basso a medio Meno funzionalità cloud gestite
IAMMETER-Cloud Monitoraggio, report e accesso remoto già pronti IAMMETER-Cloud Basso Utilizza un servizio cloud ospitato
Home Assistant / Node-RED Entità smart-home e automazione personalizzata La tua piattaforma Medio Devi progettare dashboard e flussi di lavoro
Server personalizzato Un prodotto, EMS o pipeline dati specializzata La tua infrastruttura Alto Sviluppi e mantieni il sistema

Continua con:

13. Lista di Controllo per la Distribuzione

  • L'host Docker ha un indirizzo LAN stabile.
  • /app/data è montato su archiviazione persistente.
  • Il fuso orario corrisponde al sito di monitoraggio.
  • Le password predefinite sono state cambiate.
  • Le porte 5050 e 1883 non sono esposte inutilmente a Internet.
  • SN del contatore e assegnazioni dei canali sono corretti.
  • Il caricamento locale è stato verificato con misurazioni in tempo reale.
  • L'inoltro cloud è abilitato solo quando necessario.
  • Le procedure di backup e aggiornamento sono state testate.
  • Il volume del datalogger è montato se è richiesta l'esportazione CSV.

Ultimo aggiornamento: 17 luglio 2026.

In alto