Abonnement på realtids-energidata via MQTT Broker (2025-udgave)
1. Introduktion
IAMMETER-Cloud er en professionel platform til energiovervågning og administration af solcelleanlæg. Ud over sine kraftfulde visualiserings- og rapporteringsfunktioner tilbyder IAMMETER-Cloud også fleksible datagrænseflader. Dette giver brugere med skræddersyede behov mulighed for at bruge IAMMETER-Cloud som datamellemvare og hente data programmatisk via kode.
Der er to hovedmåder at hente data fra IAMMETER-Cloud via kode:
- Abonner på data via IAMMETERs MQTT Broker (fokus i denne artikel)
- Kald IAMMETER-Clouds officielle API'er
Denne guide forklarer, hvordan du abonnerer på IAMMETERs MQTT-emner, fortolker datastrukturer (for både enfasede og trefasede målere) og implementerer fungerende Python- og Node.js-eksempler.
2. Oversigt over IAMMETER MQTT Broker
Bemærk: IAMMETER MQTT Broker blev oprindeligt designet som en udviklings- og testtjeneste for bekvemmelighedens skyld og er ikke en del af det standardmæssige IAMMETER-Cloud-tilbud (selvom den har kørt stabilt i over 5 år). Til produktions- eller storskalainstallationer anbefaler vi, at du opretter din egen MQTT-broker.
Konfiguration af IAMMETER MQTT Broker
| Parameter | Beskrivelse |
|---|---|
| Brokeradresse | mqtt.iammeter.com |
| Port | 1883 (uden SSL) |
| Brugernavn / Adgangskode | Skal oprettes i IAMMETER Cloud → Indstillinger → MQTT-indstillinger![]() |
| Emneformat | device/{SN}/realtime |
| Payload-format | JSON |
⚠️ Vigtigt: Brug ikke dine IAMMETER Cloud-loginoplysninger her. Du skal oprette et dedikeret MQTT-brugernavn og -adgangskode i IAMMETER Cloud-dashboardet.
Konfigurer IAMMETER-måleren til at bruge MQTT-tilstand
Indstil din IAMMETER-måler til MQTT-upload-tilstand (se vejledning til firmwarekonfiguration) og indtast parametrene for IAMMETER MQTT Broker.

3. MQTT-emneformat
Hver IAMMETER-enhed offentliggør sine realtidsdata under følgende emne:
device/{SN}/realtime
Hvor {SN} er serienummeret på din måler.
Hvis din enheds SN f.eks. er DA2BED94, bliver emnet:
device/DA2BED94/realtime
Du kan abonnere på dette emne for at modtage løbende realtidsmåledata.
4. Dataformat
4.1 Dataformat for enfasede målere
En enfaset IAMMETER-måler offentliggør realtidsdata i JSON-format som følger:
{
"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]
}
| Indeks | Felt | Beskrivelse | Enhed |
|---|---|---|---|
| 1 | Voltage | Aktuel netspænding | V |
| 2 | Current | Aktuel netstrøm | A |
| 3 | Power | Aktiv effekt | W |
| 4 | Forward Energy | Importeret energi (forbrug) | kWh |
| 5 | Reverse Energy | Eksporteret energi (indfødning, sol) | kWh |
| 6 | Frequency | Netfrekvens | Hz |
| 7 | Power Factor | Aktuel effektfaktor | PF |
🟢 Bemærkninger:
- Positiv effekt → energiforbrug
- Negativ effekt → energieksport (f.eks. solindfødning)
4.2 Dataformat for trefasede målere (WEM3080T / WEM3046T / WEM3050T)
Trefasede IAMMETER-målere offentliggør data i et lignende JSON-format med tre arrays, der hver svarer til en 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 er en liste, der indeholder tre arrays, som hver svarer til fase A, B og C.
Hvert indre array har samme struktur som det enfasede Data-array.
| Indeks | Felt | Beskrivelse | Enhed |
|---|---|---|---|
| 1 | Voltage | Fasespænding | V |
| 2 | Current | Fasestrøm | A |
| 3 | Power | Aktiv effekt | W |
| 4 | Forward Energy | Importeret energi | kWh |
| 5 | Reverse Energy | Eksporteret energi | kWh |
| 6 | Frequency | Netfrekvens | Hz |
| 7 | Power Factor | Fasens effektfaktor | PF |
Ud over de aktive effektdata vil du, når måling af reaktiv effekt er aktiveret, også se EA-afsnittet som følger:
"EA": {
"Reactive": [
[-111.0, 0.000, 176.750],
[-113.0, 0.000, 179.110],
[-114.0, 36.120, 144.410]
]
}
Dette afsnit viser måledata for reaktiv effekt, som kun vises, når den reaktive testfunktion er aktiveret (se skærmbilledet nedenfor).

Hvert array repræsenterer de tre faser (A, B, C) og viser reaktiv effekt (Q i kVar) og reaktiv energi (kVARh).
Q (kVar): Reaktiv effekt — positiv = induktiv, negativ = kapacitiv kVARh: Reaktiv energi — hver fase indeholder to kVARh-værdier: én for induktiv belastning og én for kapacitiv belastning.
5. Python-eksempel: Abonnement på realtidsdata
Nedenfor er et fungerende Python-script, der bruger paho-mqtt-biblioteket.
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-eksempel
Vi anbefaler at prøve dette interessante open source-projekt: Det bruger Node.js til at abonnere på realtidsdata fra IAMMETER MQTT-brokeren og visualisere dem i en web-UI, så du får et sejt realtidsdashboard.
🔗 https://github.com/lewei50/iammeterJS
7. Praktiske anvendelsestilfælde
- Smarthome-automatisering Integrer realtids-effektdata i Home Assistant eller Node-RED for at udløse automatiseringshandlinger (f.eks. start en varmeovn, når solproduktionen er høj).
- Lokal datavisualisering Gem indkommende MQTT-data i InfluxDB og visualiser dem med Grafana-dashboards.
- Privat cloud eller edge computing Hent realtids-effektdata direkte via MQTT til brugerdefineret analyse eller styringslogik uden at være afhængig af IAMMETER Cloud.
8. Fejlfinding
| Problem | Mulig årsag / løsning |
|---|---|
| Kan ikke oprette forbindelse til broker | Kontrollér, at dine MQTT-brugernavn og -adgangskode er korrekt indstillet i IAMMETER Cloud. |
| Ingen data modtaget | Bekræft dit emneformat (device/{SN}/realtime), og sørg for, at måleren er online. |
| Dataforsinkelse | Kontrollér din netværksstabilitet eller Wi-Fi-signalstyrke. |
| Flere målere | Du kan abonnere på flere emner samtidigt (ét pr. SN). |
9. Konklusion
Med IAMMETER MQTT Broker kan du nemt få adgang til realtids-energidatastrømme fra dine IAMMETER-enheder. Det er en kraftfuld og fleksibel metode til at opbygge lokale dashboards, smarte automatiseringer eller AI-baserede energioptimeringssystemer.
📘 Referencer
- IAMMETER Firmware- og kommunikationsfunktioner
- IAMMETER Cloud- og MQTT API-dokumentation
- Udvikl dit eget energiovervågningsdashboard med NodeJS
Vil du have, at jeg laver en Markdown-formateret blogindlægsversion (klar til udgivelse på IAMMETERs officielle blog, med syntaksfremhævning og intakte indlejrede billedlinks)?
