Tyvärr stöder din webbläsare inte JavaScript!
Logga in

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ällningarSkärmbild: 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.

Ställ in mätaren på MQTT-uppladdningsläge och konfigurera 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).

Aktivera reaktiv effektmätning i mätaren

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

  1. 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).
  2. Lokal datavisualisering Lagra inkommande MQTT-data i InfluxDB och visualisera den med Grafana-dashboards.
  3. 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


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

Upp