Spiacenti, il tuo browser non supporta JavaScript!

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 MQTTSchermata delle 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.

Imposta il contatore in modalità di caricamento MQTT e configura 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).

Abilita la misurazione reattiva nel misuratore

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

  1. 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).
  2. Visualizzazione dei dati localiMemorizza i dati MQTT in arrivo inInfluxDBe visualizzalo conDashboard Grafana.
  3. 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


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)?

Superiore