Prenumerera på realtidsenergidata via MQTT-broker (2025 års utgåva)
1. Introduktion
IAMMETER-Cloud är en professionell plattform för energimätning och hantering av solcellsanläggningar. Utöver sina kraftfulla visualiserings- och rapportfunktioner erbjuder IAMMETER-Cloud även flexibla datagränssnitt. Det gör att användare med särskilda behov kan använda IAMMETER-Cloud som datamellanlager och hämta data programmatiskt via kod.
Det finns två huvudsakliga sätt att hämta data från IAMMETER-Cloud med kod:
- Prenumerera på data via IAMMETER:s MQTT-broker (det här är artikelns huvudfokus)
- Anropa IAMMETER-Cloud:s officiella API:er
Den här guiden förklarar hur du prenumererar på IAMMETER:s MQTT-ämnen, tolkar datastrukturerna (för både enfas- och trefasmätare) samt implementerar fungerande exempel i Python och Node.js.
2. Översikt över IAMMETER:s MQTT-broker
Obs: IAMMETER:s MQTT-broker utformades från början som en utvecklings- och testtjänst för bekvämlighetens skull och ingår inte i det ordinarie IAMMETER-Cloud-utbudet (även om den har varit stabil och varit i drift i över 5 år). För produktion eller storskaliga driftsättningar rekommenderar vi att du sätter upp en egen MQTT-broker.
Konfiguration av IAMMETER:s MQTT-broker
| Parameter | Beskrivning |
|---|---|
| Brokeradress | mqtt.iammeter.com |
| Port | 1883 (utan SSL) |
| Användarnamn / Lösenord | Måste skapas i IAMMETER Cloud → Inställningar → MQTT-inställningar![]() |
| Ämnesformat | device/{SN}/realtime |
| Dataformat | JSON |
⚠️ Viktigt: Använd inte dina inloggningsuppgifter för IAMMETER Cloud här. Du måste skapa ett särskilt MQTT-användarnamn och lösenord i IAMMETER Cloud:s kontrollpanel.
Konfigurera IAMMETER-mätaren för MQTT-läge
Ställ in din IAMMETER-mätare på MQTT-uppladdningsläge (se guiden för firmwarekonfiguration) och ange parametrarna för IAMMETER:s MQTT-broker.

3. MQTT-ämnesformat
Varje IAMMETER-enhet publicerar sin realtidsdata under följande ämne:
device/{SN}/realtime
Där {SN} är mätarens serienummer.
Om din enhets SN till exempel är DA2BED94 blir ämnet:
device/DA2BED94/realtime
Du kan prenumerera på det här ämnet för att kontinuerligt ta emot realtidsmätdata.
4. Dataformat
4.1 Dataformat för enfasmätare
En enfasig IAMMETER-mätare publicerar realtidsdata i JSON-format enligt följande:
{
"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]
}
| Index | Fält | Beskrivning | Enhet |
|---|---|---|---|
| 1 | Spänning | Aktuell nätspänning | V |
| 2 | Ström | Aktuell ström | A |
| 3 | Effekt | Aktiv effekt | W |
| 4 | Frammatad energi | Importerad energi (förbrukad) | kWh |
| 5 | Bakmatad energi | Exporterad energi (inmatning, solceller) | kWh |
| 6 | Frekvens | Nätfrekvens | Hz |
| 7 | Effektfaktor | Aktuell effektfaktor | PF |
🟢 Anmärkningar:
- Positiv effekt → energiförbrukning
- Negativ effekt → energiutmatning (t.ex. inmatning från solceller)
4.2 Dataformat för trefasmätare (WEM3080T / WEM3046T / WEM3050T)
Trefasiga IAMMETER-mätare publicerar data i ett liknande JSON-format, med tre arrayer som motsvarar varje fas.
{
"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 är en lista som innehåller tre arrayer, där varje array motsvarar fas A, B respektive C.
Varje inre array har samma struktur som Data-arrayen för enfasmätare.
| Index | Fält | Beskrivning | Enhet |
|---|---|---|---|
| 1 | Spänning | Fasspänning | V |
| 2 | Ström | Fasström | A |
| 3 | Effekt | Aktiv effekt | W |
| 4 | Frammatad energi | Importerad energi | kWh |
| 5 | Bakmatad energi | Exporterad energi | kWh |
| 6 | Frekvens | Nätfrekvens | Hz |
| 7 | Effektfaktor | Faseffektfaktor | PF |
Förutom den aktiva effektdata, när reaktiv effektmätning är aktiverad, visas även EA-sektionen enligt följande:
"EA": {
"Reactive": [
[-111.0, 0.000, 176.750],
[-113.0, 0.000, 179.110],
[-114.0, 36.120, 144.410]
]
}
Den här sektionen visar reaktiva mätdata, som bara visas när testfunktionen för reaktiv effekt är aktiverad (se skärmbilden nedan).

Varje array representerar de tre faserna (A, B, C) och visar reaktiv effekt (Q i kVar) och reaktiv energi (kVARh).
Q (kVar): Reaktiv effekt — positiv = induktiv, negativ = kapacitiv kVARh: Reaktiv energi — varje fas innehåller två kVARh-värden: ett för induktiv last och ett för kapacitiv last.
5. Python-exempel: Prenumerera på realtidsdata
Nedan följer ett fungerande Python-skript som använder biblioteket 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. Node.js-exempel
Vi rekommenderar att du provar detta intressanta open source-projekt: Det använder Node.js för att prenumerera på realtidsdata från IAMMETER:s MQTT-broker och visualisera den i ett webbgränssnitt, vilket ger en snygg realtidsdashboard.
🔗 https://github.com/lewei50/iammeterJS
7. Praktiska användningsområden
- Smarta hem-automatisering Integrera realtidseffektdata i Home Assistant eller Node-RED för att utlösa automatiseringsåtgärder (t.ex. starta ett värmeelement när solproduktionen är hög).
- Lokal datavisualisering Lagra inkommande MQTT-data i InfluxDB och visualisera den med Grafana-dashboards.
- Privat molntjänst eller edge computing Hämta realtidseffektdata direkt via MQTT för anpassad analys eller styrlogik, utan att förlita sig på IAMMETER Cloud.
8. Felsökning
| Problem | Möjlig orsak / Lösning |
|---|---|
| Kan inte ansluta till broker | Kontrollera att ditt MQTT-användarnamn och lösenord är korrekt inställda i IAMMETER Cloud. |
| Inga data tas emot | Kontrollera ditt ämnesformat (device/{SN}/realtime) och säkerställ att mätaren är online. |
| Datafördröjning | Kontrollera nätverksstabiliteten eller Wi-Fi-signalstyrkan. |
| Flera mätare | Du kan prenumerera på flera ämnen samtidigt (ett per SN). |
9. Slutsats
Med IAMMETER:s MQTT-broker får du enkelt tillgång till realtidsströmmar av energidata från dina IAMMETER-enheter. Det är en kraftfull och flexibel metod för att bygga lokala dashboards, smarta automatiseringar eller AI-baserade system för energioptimering.
📘 Referenser
- IAMMETER:s firmware- och kommunikationsfunktioner
- Dokumentation för IAMMETER Cloud och MQTT-API
- Utveckla din egen energimätningsdashboard med NodeJS
Vill du att jag skapar en Markdown-formaterad bloggversion (redo att publiceras på IAMMETER:s officiella blogg, med syntaxmarkering och inbäddade bildlänkar intakta)?
