Abonner på sanntids energidata via MQTT-broker (2025-utgaven)
1. Introduksjon
IAMMETER-Cloud er en profesjonell plattform for energiovervåking og administrasjon av solcelleanlegg. I tillegg til sine kraftige visualiserings- og rapporteringsfunksjoner tilbyr IAMMETER-Cloud også fleksible data-grensesnitt. Dette gjør at brukere med tilpassede behov kan bruke IAMMETER-Cloud som en datamellomvare og hente data programmatisk gjennom kode.
Det er to hovedmåter å hente data fra IAMMETER-Cloud med kode:
- Abonnere på data via IAMMETERs MQTT-broker (fokus for denne artikkelen)
- Kalle opp IAMMETER-Clouds offisielle API-er
Denne guiden forklarer hvordan du abonnerer på IAMMETERs MQTT-emner, tolker datastrukturene (for både enfase- og trefasemålere) og implementerer fungerende Python- og Node.js-eksempler.
2. Oversikt over IAMMETER MQTT-brokeren
Merk: IAMMETER MQTT-brokeren ble opprinnelig designet som en utviklings- og testtjeneste for enkelhets skyld og er ikke en del av det standard IAMMETER-Cloud-tilbudet (selv om den har vært stabil og i drift i over 5 år). For produksjon eller storskala utrulling anbefaler vi at du setter opp din egen MQTT-broker.
Konfigurasjon av IAMMETER MQTT-brokeren
| Parameter | Beskrivelse |
|---|---|
| Broker-adresse | mqtt.iammeter.com |
| Port | 1883 (ikke-SSL) |
| Brukernavn / Passord | Må opprettes i IAMMETER Cloud → Innstillinger → MQTT-innstillinger![]() |
| Emneformat | device/{SN}/realtime |
| Nyttelastformat | JSON |
⚠️ Viktig: Ikke bruk påloggingsdetaljene dine for IAMMETER Cloud her. Du må opprette et dedikert MQTT-brukernavn og passord i IAMMETER Cloud-kontrollpanelet.
Konfigurere IAMMETER-måleren til å bruke MQTT-modus
Sett IAMMETER-måleren til MQTT-opplastingsmodus (se fastvarekonfigurasjonsguiden) og skriv inn parametrene for IAMMETER MQTT-brokeren.

3. MQTT-emneformat
Hver IAMMETER-enhet publiserer sanntidsdataene sine under følgende emne:
device/{SN}/realtime
Der {SN} er serienummeret til måleren din.
For eksempel, hvis enhetens SN er DA2BED94, vil emnet være:
device/DA2BED94/realtime
Du kan abonnere på dette emnet for å motta kontinuerlige sanntidsmåledata.
4. Dataformat
4.1 Dataformat for enfasemåler
En enfaset IAMMETER-måler publiserer sanntidsdata 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 | Enhet |
|---|---|---|---|
| 1 | Spenning | Gjeldende linjespenning | V |
| 2 | Strøm | Gjeldende linjestrøm | A |
| 3 | Effekt | Aktiv effekt | W |
| 4 | Fremover energi | Importert energi (forbruk) | kWh |
| 5 | Tilbakemating | Eksportert energi (innmating, sol) | kWh |
| 6 | Frekvens | Nettfrekvens | Hz |
| 7 | Effektfaktor | Gjeldende effektfaktor | PF |
🟢 Merknader:
- Positiv effekt → energiforbruk
- Negativ effekt → energieksport (f.eks. solinnmating)
4.2 Dataformat for trefasemåler (WEM3080T / WEM3046T / WEM3050T)
Trefase IAMMETER-målere publiserer data i et lignende JSON-format, med tre matriser som tilsvarer hver 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 som inneholder tre matriser, der hver tilsvarer fase A, B og C.
Hver indre matrise har samme struktur som enfasemålerens Data-matrise.
| Indeks | Felt | Beskrivelse | Enhet |
|---|---|---|---|
| 1 | Spenning | Fasespenning | V |
| 2 | Strøm | Fasestrøm | A |
| 3 | Effekt | Aktiv effekt | W |
| 4 | Fremover energi | Importert energi | kWh |
| 5 | Tilbakemating | Eksportert energi | kWh |
| 6 | Frekvens | Nettfrekvens | Hz |
| 7 | Effektfaktor | Faseeffektfaktor | PF |
I tillegg til de aktive effektdataene vil du, når måling av reaktiv effekt er aktivert, også se EA-delen som følger:
"EA": {
"Reactive": [
[-111.0, 0.000, 176.750],
[-113.0, 0.000, 179.110],
[-114.0, 36.120, 144.410]
]
}
Denne delen viser reaktive måledata, som bare vises når den reaktive testfunksjonen er aktivert (se skjermbildet nedenfor).

Hver matrise representerer de tre fasene (A, B, C) og viser reaktiv effekt (Q i kVar) og reaktiv energi (kVARh).
Q (kVar): Reaktiv effekt — positiv = induktiv, negativ = kapasitiv kVARh: Reaktiv energi — hver fase inkluderer to kVARh-verdier: én for induktiv last og én for kapasitiv last.
5. Python-eksempel: Abonner på sanntidsdata
Nedenfor er et fungerende Python-skript som bruker 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 du prøver dette interessante open-source-prosjektet: Det bruker Node.js til å abonnere på sanntidsdata fra IAMMETER MQTT-brokeren og visualisere dem i et web-grensesnitt, og skaper et kult sanntidsdashboard.
🔗 https://github.com/lewei50/iammeterJS
7. Praktiske bruksområder
- Smarthjem-automatisering Integrer sanntids effektdata i Home Assistant eller Node-RED for å utløse automatiseringshandlinger (f.eks. starte en varmeovn når solproduksjonen er høy).
- Lokal datavisualisering Lagre innkommende MQTT-data i InfluxDB og visualiser dem med Grafana-dashboards.
- Privat sky eller edge computing Hent sanntids effektdata direkte via MQTT for tilpasset analyse eller kontrolllogikk, uten å være avhengig av IAMMETER Cloud.
8. Feilsøking
| Problem | Mulig årsak / løsning |
|---|---|
| Kan ikke koble til broker | Kontroller at MQTT-brukernavnet/-passordet er riktig angitt i IAMMETER Cloud. |
| Ingen data mottatt | Kontroller emneformatet ditt (device/{SN}/realtime) og påse at måleren er online. |
| Dataforsinkelse | Kontroller nettverksstabiliteten eller Wi-Fi-signalstyrken. |
| Flere målere | Du kan abonnere på flere emner samtidig (ett per SN). |
9. Konklusjon
Ved å bruke IAMMETER MQTT-brokeren kan du enkelt få tilgang til sanntidsstrømmer av energidata fra IAMMETER-enhetene dine. Det er en kraftig og fleksibel metode for å bygge lokale dashboards, smarthjem-automatiseringer eller AI-baserte energiopptimiseringssystemer.
📘 Referanser
- IAMMETER fastvare- og kommunikasjonsfunksjoner
- IAMMETER Cloud- og MQTT API-dokumentasjon
- Utvikle ditt eget energiovervåkingsdashboard med NodeJS
Ønsker du at jeg lager en Markdown-formatert blogginnleggsversjon (klar til publisering på IAMMETERs offisielle blogg, med syntaksutheving og innebygde bildelenker intakt)?
