Abbonamento ai dati energetici in tempo reale tramite MQTT Broker (edizione 2025)
1. Introduzione
IAMMETER-nuvolaè una piattaforma professionale per il monitoraggio energetico e la gestione fotovoltaica. Oltre alle sue potenti funzioni di visualizzazione e reporting, IAMMETER-Cloud offre anche interfacce dati flessibili. Ciò consente agli utenti con esigenze personalizzate di utilizzare IAMMETER-Cloud comemiddleware di dati, recuperando i dati in modo programmatico tramite codice.
Esistono due modi principali per ottenere dati da IAMMETER-Cloud utilizzando il codice:
- Iscriviti ai dati tramiteBroker MQTT di IAMMETER(il focus di questo articolo)
- Chiama il funzionario di IAMMETER-CloudAPI
Questa guida spiega come iscriversi agli argomenti MQTT di IAMMETER, interpretare le strutture dati (sia per contatori monofase che trifase) e implementare esempi funzionanti in Python e Node.js.
2. Panoramica del broker MQTT IAMMETER
Nota:Il broker MQTT IAMMETER è stato originariamente progettato come unservizio di sviluppo e testper comodità e non fa parte dell'offerta standard di IAMMETER-Cloud (sebbene sia stabile e funzionante da oltre 5 anni). Per la produzione o le distribuzioni su larga scala, consigliamo di configurareproprio broker MQTT.
Configurazione del broker MQTT IAMMETER
| parametro | Descrizione |
|---|---|
| Indirizzo del broker | mqtt.iammeter.com |
| Porta | 1883(non SSL) |
| Nome utente / Password | Deve essere creato inIAMMETER Cloud → Impostazioni → Impostazioni MQTT![]() |
| Formato dell'argomento | dispositivo/{SN}/tempo reale |
| Formato del carico utile | JSON |
⚠️ Importante:FarenonUtilizza qui le tue credenziali di accesso a IAMMETER Cloud. Devicreare un nome utente e una password MQTT dedicatinella dashboard IAMMETER Cloud.
Configurare il misuratore IAMMETER per utilizzare la modalità MQTT
Imposta il tuo misuratore IAMMETER suModalità di caricamento MQTT(Vedereguida alla configurazione del firmware) e immettere i parametri del broker MQTT IAMMETER.

3. Formato argomento MQTT
Ogni dispositivo IAMMETER pubblica i propri dati in tempo reale sotto il seguente argomento:
dispositivo/{SN}/tempo reale
Dove{SN}è il numero di serie del tuo contatore.
Ad esempio, se il numero di serie del tuo dispositivo èDA2BED94, l'argomento sarà:
dispositivo/DA2BED94/tempo reale
Puoi iscriverti a questo argomento per ricevere dati di misurazione continui in tempo reale.
4. Formato dei dati
4.1 Formato dei dati del contatore monofase
Un contatore IAMMETER monofase pubblica dati in tempo reale in formato JSON come segue:
{
"metodo": "1-272",
"mac": "B0F8932A295C",
"versione": "i.91.062T6",
"server": "em",
"SN": "DA2BED94",
"Dati": [227.02, 1.81, 296.0, 21699.98, 0.00, 50.01, 0.72]
}
| indice | Campo | Descrizione | Unità |
|---|---|---|---|
| 1 | Voltaggio | Tensione di linea attuale | V |
| 2 | Attuale | Corrente di linea attuale | UN |
| 3 | Potenza | Potenza attiva | W |
| 4 | Energia in avanti | Energia importata (consumata) | kWh |
| 5 | Energia inversa | Energia esportata (immissione in rete, solare) | kWh |
| 6 | Frequenza | Frequenza di rete | Hz |
| 7 | fattore di potenza | Fattore di potenza attuale | PF |
🟢 Appunti:
- Potenza positiva → consumo energetico
- Potenza negativa → esportazione di energia (ad esempio, immissione di energia solare)
4.2 Formato dati contatore trifase (WEM3080T / WEM3046T / WEM3050T)
I contatori IAMMETER trifase pubblicano i dati in un formato JSON simile, con tre array corrispondenti a ciascuna fase.
{
"metodo": "4-9",
"mac": "849DC2CEC625",
"versione": "i.91.062T6",
"server": "em",
"SN": "CB0A0CFB",
"EA": {
"Reattivo": [
[-111.0, 0.000, 176.750],
[-113.0, 0.000, 179.110],
[-114.0, 36.120, 144.410]
]
},
"Dati": [
[225.9, 1,260, 194,0, 305,110, 0,000, 49,99, 0,87],
[225,8, 1,260, 193,0, 302,690, 0,000, 49,99, 0,86],
[225,9, 1,260, 192,0, 300,890, 0,000, 49,99, 0,86]
]
}
Datiè un elenco contenentetre matrici, ciascuno corrispondente afase A, B e C.
Ogni array interno ha la stessa struttura del monofaseDativettore.
| indice | Campo | Descrizione | Unità |
|---|---|---|---|
| 1 | Voltaggio | tensione di fase | V |
| 2 | Attuale | corrente di fase | UN |
| 3 | Potenza | Potenza attiva | W |
| 4 | Energia in avanti | Energia importata | kWh |
| 5 | Energia inversa | Energia esportata | kWh |
| 6 | Frequenza | Frequenza di rete | Hz |
| 7 | fattore di potenza | Fattore di potenza di fase | PF |
Oltre ai dati di potenza reale, quandoMisurazione della potenza reattivaè abilitato, vedrai anche ilE.A.sezione come segue:
"EA": {
"Reattivo": [
[-111,0, 0,000, 176,750],
[-113,0, 0,000, 179,110],
[-114,0, 36,120, 144,410]
]
}
Questa sezione mostradati di misurazione reattivi, che appare solo quando ilfunzione di test reattivaè abilitato (vedi schermata qui sotto).

Ogni matrice rappresenta le tre fasi (A, B, C), mostrandopotenza reattiva (Q in kVar)eEnergia reattiva (kVARh).
Q (kVar):Potenza reattiva — positiva = induttiva, negativa = capacitivakVARh:Energia reattiva: ogni fase include due valori kVARh: uno percarico induttivoe uno percarico capacitivo.
5. Esempio Python: sottoscrizione di dati in tempo reale
Di seguito è riportato uno script Python funzionante che utilizzapaho-mqttbiblioteca.
importa paho.mqtt.client come mqtt
importa json
# Configurazione del broker MQTT
MQTT_BROKER = "mqtt.iammeter.com"
MQTT_PORT = 1883
MQTT_USER = "tuo_nome_utente_mqtt" # Impostato in IAMMETER Cloud → Impostazioni MQTT
MQTT_PASS = "tuo_password_mqtt"
TOPIC = "device/DA2BED94/realtime" # Sostituisci con il tuo SN del dispositivo
# Callback quando connesso al broker
def on_connect(client, userdata, flags, rc):
if rc == 0:
print("✅ Connessione al broker MQTT IAMMETER riuscita")
client.subscribe(TOPIC)
print(f"📡 Iscritto all'argomento: {TOPIC}")
else:
print(f"❌ Connessione fallita con codice {rc}")
# Callback quando viene ricevuto un messaggio
def on_message(client, userdata, msg):
payload = json.loads(msg.payload.decode())
print("📊 Dati in tempo reale ricevuti:")
print(json.dumps(payload, indent=2, ensure_ascii=False))
# Inizializza il client MQTT
client = mqtt.Client()
client.username_pw_set(MQTT_USER, MQTT_PASS)
client.on_connect = on_connect
client.on_message = on_message
# Connettiti al broker e avvia il ciclo
client.connect(MQTT_BROKER, MQTT_PORT, 60)
client.loop_forever()
6. Esempio di Node.js
Ti consigliamo di provare questo interessante progetto open source: UtilizzaNode.jsper sottoscrivere i dati in tempo reale dal broker IAMMETER MQTT e visualizzarli in uninterfaccia utente web, creando un fantastico dashboard in tempo reale.
🔗 https://github.com/lewei50/iammeterJS
7. Casi d'uso pratici
- Domotica intelligenteIntegrare i dati di potenza in tempo reale inAssistente domiciliareoNodo-REDper attivare azioni di automazione (ad esempio, avviare un riscaldatore quando la produzione solare è elevata).
- Visualizzazione dei dati localiMemorizza i dati MQTT in arrivo inInfluxDBe visualizzalo conDashboard Grafana.
- Cloud privato o Edge ComputingRecupera i dati di potenza in tempo reale direttamente tramite MQTT per analisi personalizzate o logica di controllo senza dover ricorrere a IAMMETER Cloud.
8. Risoluzione dei problemi
| Problema | Possibile causa/soluzione |
|---|---|
| Impossibile connettersi al broker | Controlla che il tuo nome utente/password MQTT siano impostati correttamente in IAMMETER Cloud. |
| Nessun dato ricevuto | Verifica il formato del tuo argomento (dispositivo/{SN}/tempo reale) e assicurarsi che il contatore sia online. |
| ritardo dei dati | Controlla la stabilità della tua rete o la potenza del segnale Wi-Fi. |
| contatori multipli | Puoi iscriverti a più argomenti contemporaneamente (uno per SN). |
9. Conclusion
UtilizzandoBroker MQTT IAMMETER, puoi accedere facilmenteflussi di dati energetici in tempo realedai tuoi dispositivi IAMMETER. È un metodo potente e flessibile per costruiredashboard locali, automazioni intelligenti o sistemi di ottimizzazione energetica basati sull'intelligenza artificiale.
📘 Riferimenti
- Firmware IAMMETER e funzionalità di comunicazione
- Documentazione API IAMMETER Cloud e MQTT
- Sviluppa la tua dashboard di monitoraggio energetico utilizzando NodeJS
Vorresti che facessi unVersione del post del blog formattata in Markdown(pronto per la pubblicazione sul blog ufficiale di IAMMETER, con evidenziazione della sintassi e link alle immagini incorporate intatti)?
