Subscripció de dades energètiques en temps real mitjançant el broker MQTT (edició 2025)
1. Introducció
IAMMETER-Cloud és una plataforma professional de monitoratge energètic i gestió fotovoltaica. A més de les seves potents funcions de visualització i d'informes, IAMMETER-Cloud també ofereix interfícies de dades flexibles. Això permet als usuaris amb requisits personalitzats utilitzar IAMMETER-Cloud com a middleware de dades, obtenint dades programàticament mitjançant codi.
Hi ha dues maneres principals d'obtenir dades d'IAMMETER-Cloud mitjançant codi:
- Subscriure's a les dades a través del broker MQTT d'IAMMETER (el tema central d'aquest article)
- Cridar les API oficials d'IAMMETER-Cloud
Aquesta guia explica com subscriure's als temes MQTT d'IAMMETER, com interpretar les estructures de dades (tant per a comptadors monofàsics com trifàsics) i com implementar exemples funcionals en Python i Node.js.
2. Visió general del broker MQTT d'IAMMETER
Nota: El broker MQTT d'IAMMETER es va dissenyar originalment com a servei de desenvolupament i proves per comoditat i no forma part de l'oferta estàndard d'IAMMETER-Cloud (tot i que ha estat estable i en funcionament durant més de 5 anys). Per a desplegaments de producció o a gran escala, us recomanem configurar el vostre propi broker MQTT.
Configuració del broker MQTT d'IAMMETER
| Paràmetre | Descripció |
|---|---|
| Adreça del broker | mqtt.iammeter.com |
| Port | 1883 (sense SSL) |
| Usuari / Contrasenya | Cal crear-los a IAMMETER Cloud → Settings → MQTT Settings![]() |
| Format del tema | device/{SN}/realtime |
| Format de la càrrega útil | JSON |
⚠️ Important: No utilitzeu aquí les vostres credencials d'accés a IAMMETER Cloud. Cal crear un nom d'usuari i una contrasenya MQTT dedicats al tauler d'IAMMETER Cloud.
Configurar el comptador IAMMETER perquè utilitzi el mode MQTT
Poseu el vostre comptador IAMMETER en mode de càrrega MQTT (vegeu la guia de configuració del firmware) i introduïu els paràmetres del broker MQTT d'IAMMETER.

3. Format del tema MQTT
Cada dispositiu IAMMETER publica les seves dades en temps real sota el tema següent:
device/{SN}/realtime
On {SN} és el número de sèrie del vostre comptador.
Per exemple, si el número de sèrie del vostre dispositiu és DA2BED94, el tema serà:
device/DA2BED94/realtime
Podeu subscriure-us a aquest tema per rebre dades de mesura contínues en temps real.
4. Format de les dades
4.1 Format de dades d'un comptador monofàsic
Un comptador IAMMETER monofàsic publica les dades en temps real en format JSON de la manera següent:
{
"method": "1-272",
"mac": "B0F8932A295C",
"version": "i.91.062T6",
"server": "em",
"SN": "DA2BED94",
"Data": [227.02, 1.81, 296.0, 21699.98, 0.00, 50.01, 0.72]
}
| Índex | Camp | Descripció | Unitat |
|---|---|---|---|
| 1 | Tensió | Tensió de la línia actual | V |
| 2 | Corrent | Corrent de la línia actual | A |
| 3 | Potència | Potència activa | W |
| 4 | Energia directa | Energia importada (consumida) | kWh |
| 5 | Energia inversa | Energia exportada (abocament a la xarxa, solar) | kWh |
| 6 | Freqüència | Freqüència de la xarxa | Hz |
| 7 | Factor de potència | Factor de potència actual | PF |
🟢 Notes:
- Potència positiva → consum d'energia
- Potència negativa → exportació d'energia (per exemple, abocament solar a la xarxa)
4.2 Format de dades d'un comptador trifàsic (WEM3080T / WEM3046T / WEM3050T)
Els comptadors trifàsics IAMMETER publiquen les dades en un format JSON similar, amb tres matrius corresponents a cada fase.
{
"method": "4-9",
"mac": "849DC2CEC625",
"version": "i.91.062T6",
"server": "em",
"SN": "CB0A0CFB",
"EA": {
"Reactive": [
[-111.0, 0.000, 176.750],
[-113.0, 0.000, 179.110],
[-114.0, 36.120, 144.410]
]
},
"Datas": [
[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]
]
}
Datas és una llista que conté tres matrius, cadascuna corresponent a les fases A, B i C.
Cada matriu interna té la mateixa estructura que la matriu Data del comptador monofàsic.
| Índex | Camp | Descripció | Unitat |
|---|---|---|---|
| 1 | Tensió | Tensió de fase | V |
| 2 | Corrent | Corrent de fase | A |
| 3 | Potència | Potència activa | W |
| 4 | Energia directa | Energia importada | kWh |
| 5 | Energia inversa | Energia exportada | kWh |
| 6 | Freqüència | Freqüència de la xarxa | Hz |
| 7 | Factor de potència | Factor de potència de fase | PF |
A més de les dades de potència activa, quan el mesurament de potència reactiva està activat, també veureu la secció EA de la manera següent:
"EA": {
"Reactive": [
[-111.0, 0.000, 176.750],
[-113.0, 0.000, 179.110],
[-114.0, 36.120, 144.410]
]
}
Aquesta secció mostra les dades de mesura reactiva, que només apareixen quan la funció de prova reactiva està activada (vegeu la captura de pantalla següent).

Cada matriu representa les tres fases (A, B, C) i mostra la potència reactiva (Q en kVar) i l'energia reactiva (kVARh).
Q (kVar): Potència reactiva — positiva = inductiva, negativa = capacitiva kVARh: Energia reactiva — cada fase inclou dos valors de kVARh: un per a la càrrega inductiva i un per a la càrrega capacitiva.
5. Exemple en Python: subscripció a dades en temps real
A continuació teniu un script de Python funcional que utilitza la biblioteca paho-mqtt.
import paho.mqtt.client as mqtt
import json
# MQTT Broker configuration
MQTT_BROKER = "mqtt.iammeter.com"
MQTT_PORT = 1883
MQTT_USER = "your_mqtt_username" # Set in IAMMETER Cloud → MQTT Settings
MQTT_PASS = "your_mqtt_password"
TOPIC = "device/DA2BED94/realtime" # Replace with your own device SN
# Callback when connected to the broker
def on_connect(client, userdata, flags, rc):
if rc == 0:
print("✅ Connected to IAMMETER MQTT Broker successfully")
client.subscribe(TOPIC)
print(f"📡 Subscribed to topic: {TOPIC}")
else:
print(f"❌ Connection failed with code {rc}")
# Callback when a message is received
def on_message(client, userdata, msg):
payload = json.loads(msg.payload.decode())
print("📊 Received real-time data:")
print(json.dumps(payload, indent=2, ensure_ascii=False))
# Initialize MQTT client
client = mqtt.Client()
client.username_pw_set(MQTT_USER, MQTT_PASS)
client.on_connect = on_connect
client.on_message = on_message
# Connect to the broker and start the loop
client.connect(MQTT_BROKER, MQTT_PORT, 60)
client.loop_forever()
6. Exemple en Node.js
Us recomanem provar aquest interessant projecte de codi obert: Utilitza Node.js per subscriure's a les dades en temps real del broker MQTT d'IAMMETER i visualitzar-les en una interfície web, creant un fantàstic tauler en temps real.
🔗 https://github.com/lewei50/iammeterJS
7. Casos d'ús pràctics
- Automatització de la llar intel·ligent Integreu les dades de potència en temps real a Home Assistant o Node-RED per activar accions automatitzades (per exemple, engegar un escalfador quan la generació solar és alta).
- Visualització local de dades Emmagatzemeu les dades MQTT rebudes a InfluxDB i visualitzeu-les amb taulers de Grafana.
- Núvol privat o informàtica perifèrica (edge computing) Obteniu dades de potència en temps real directament per MQTT per a anàlisis personalitzades o lògica de control sense dependre d'IAMMETER Cloud.
8. Resolució de problemes
| Problema | Causa possible / Solució |
|---|---|
| No es pot connectar al broker | Comproveu si el nom d'usuari i la contrasenya MQTT estan configurats correctament a IAMMETER Cloud. |
| No es reben dades | Verifiqueu el format del tema (device/{SN}/realtime) i assegureu-vos que el comptador estigui en línia. |
| Retard en les dades | Comproveu l'estabilitat de la xarxa o la potència del senyal Wi-Fi. |
| Diversos comptadors | Podeu subscriure-us a diversos temes simultàniament (un per cada SN). |
9. Conclusió
Amb el broker MQTT d'IAMMETER, podeu accedir fàcilment als fluxos de dades energètiques en temps real dels vostres dispositius IAMMETER. És un mètode potent i flexible per construir taulers locals, automatitzacions intel·ligents o sistemes d'optimització energètica basats en IA.
📘 Referències
- Funcions de firmware i comunicació d'IAMMETER
- Documentació d'IAMMETER Cloud i de l'API MQTT
- Desenvolupeu el vostre propi tauler de monitoratge energètic amb NodeJS
Voleu que us prepari una versió del bloc en format Markdown (a punt per publicar al bloc oficial d'IAMMETER, amb el ressaltat de sintaxi i els enllaços d'imatge incrustats intactes)?
