Abonnement von Echtzeit-Energiedaten über MQTT-Broker (Edition 2025)
1. Einleitung
IAMMETER-Wolkeist eine professionelle Plattform für Energiemonitoring und Photovoltaik-Management. Neben leistungsstarken Visualisierungs- und Berichtsfunktionen bietet IAMMETER-Cloud flexible Datenschnittstellen. Dadurch können Anwender mit individuellen Anforderungen IAMMETER-Cloud als … nutzen.Daten-Middleware, das programmgesteuerte Abrufen von Daten mittels Code.
Es gibt zwei Hauptwege, um Daten aus IAMMETER-Cloud mithilfe von Code zu erhalten:
- Daten abonnieren überMQTT-Broker von IAMMETER(der Schwerpunkt dieses Artikels)
- Rufen Sie den offiziellen IAMMETER-Cloud-Kundendienst an.APIs
Dieser Leitfaden erklärt, wie man IAMMETER MQTT-Themen abonniert, Datenstrukturen interpretiert (sowohl für Einphasen- als auch für Dreiphasenzähler) und wie man funktionierende Python- und Node.js-Beispiele implementiert.
2. IAMMETER MQTT Broker – Übersicht
Notiz:Der IAMMETER MQTT Broker wurde ursprünglich als einEntwicklungs- und TestserviceAus praktischen Gründen ist diese Lösung nicht Teil des Standardangebots von IAMMETER-Cloud (obwohl sie seit über 5 Jahren stabil läuft). Für Produktionsumgebungen oder großflächige Implementierungen empfehlen wir die Einrichtung Ihrer eigenen Lösung.eigener MQTT-Broker.
IAMMETER MQTT Broker-Konfiguration
| Parameter | Beschreibung |
|---|---|
| Brokeradresse | mqtt.iammeter.com |
| Hafen | 1883(nicht SSL) |
| Benutzername / Passwort | Muss erstellt werden inIAMMETER Cloud → Einstellungen → MQTT-Einstellungen![]() |
| Themenformat | Gerät/{SN}/Echtzeit |
| Nutzlastformat | JSON |
⚠️ Wichtig:TunnichtVerwenden Sie hier Ihre IAMMETER Cloud-Anmeldedaten. Sie müssenErstellen Sie einen dedizierten MQTT-Benutzernamen und ein Passwort.im IAMMETER Cloud-Dashboard.
Konfigurieren Sie den IAMMETER-Zähler für die Verwendung des MQTT-Modus
Stellen Sie Ihr IAMMETER-Messgerät ein aufMQTT-Upload-Modus(sehenFirmware-Konfigurationsleitfaden) und geben Sie die IAMMETER MQTT Broker-Parameter ein.

3. MQTT-Themenformat
Jedes IAMMETER-Gerät veröffentlicht seine Echtzeitdaten unter dem folgenden Thema:
Gerät/{SN}/Echtzeit
Wo{SN}ist die Seriennummer Ihres Messgeräts.
Beispiel: Die Seriennummer Ihres Geräts lautetDA2BED94Das Thema wird lauten:
Gerät/DA2BED94/Echtzeit
Sie können dieses Thema abonnieren, um kontinuierlich Messdaten in Echtzeit zu erhalten.
4. Datenformat
4.1 Datenformat für Einphasenzähler
Ein einphasiger IAMMETER-Zähler veröffentlicht Echtzeitdaten im JSON-Format wie folgt:
{
"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 | Feld | Beschreibung | Einheit |
|---|---|---|---|
| 1 | Stromspannung | Aktuelle Netzspannung | V |
| 2 | Aktuell | Aktueller Leitungsstrom | EIN |
| 3 | Leistung | Wirkleistung | W |
| 4 | Vorwärtsenergie | Importierte Energie (Verbrauch) | kWh |
| 5 | Umgekehrte Energie | Exportierte Energie (Einspeisevergütung, Solarenergie) | kWh |
| 6 | Frequenz | Netzfrequenz | Hz |
| 7 | Leistungsfaktor | Aktueller Leistungsfaktor | PF |
🟢 Anmerkungen:
- Positive Leistung → Energieverbrauch
- Negative Leistung → Energieexport (z. B. Solareinspeisung)
4.2 Dreiphasen-Zählerdatenformat (WEM3080T / WEM3046T / WEM3050T)
Dreiphasige IAMMETER-Zähler veröffentlichen Daten in einem ähnlichen JSON-Format, wobei drei Arrays jeweils einer Phase entsprechen.
{
"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,11; 0,000; 49,99; 0,87],
[225,8; 1,26; 193,0; 302,69; 0,000; 49,99; 0,86],
[225,9; 1,26; 192,0; 300,89; 0,000; 49,99; 0,86]
]
}
Datenist eine Liste, die enthältdrei Anordnungenjeweils entsprechendPhase A, B und CJede innere Anordnung hat die gleiche Struktur wie die einphasige Anordnung.DatenArray.
| Index | Feld | Beschreibung | Einheit |
|---|---|---|---|
| 1 | Stromspannung | Phasenspannung | V |
| 2 | Aktuell | Phasenstrom | EIN |
| 3 | Leistung | Wirkleistung | W |
| 4 | Vorwärtsenergie | Importierte Energie | kWh |
| 5 | Umgekehrte Energie | Exportierte Energie | kWh |
| 6 | Frequenz | Netzfrequenz | Hz |
| 7 | Leistungsfaktor | Phasenleistungsfaktor | PF |
Zusätzlich zu den Daten zur tatsächlichen Leistung, wennBlindleistungsmessungWenn diese Option aktiviert ist, sehen Sie auch dieEAAbschnitt wie folgt:
EA: {
Reaktiv: [
[-111,0, 0,000, 176,750],
[-113,0, 0,000, 179,110],
[-114,0, 36,120, 144,410]
]
}
Dieser Abschnitt zeigtreaktive Messdaten, das nur dann erscheint, wennreaktive Testfunktionist aktiviert (siehe Screenshot unten).

Jedes Array repräsentiert die drei Phasen (A, B, C) und zeigtBlindleistung (Q in kVar)undBlindenergie (kVARh).
Q (kVar):Blindleistung – positiv = induktiv, negativ = kapazitivkVARh:Blindenergie – jede Phase enthält zwei kVARh-Werte: einen fürinduktive Lastund eins fürkapazitive Last.
5. Python-Beispiel: Abonnieren von Echtzeitdaten
Nachfolgend finden Sie ein funktionierendes Python-Skript, das Folgendes verwendet:paho-mqttBibliothek.
import paho.mqtt.client as mqtt
import json
# MQTT-Broker-Konfiguration
MQTT_BROKER = "mqtt.iammeter.com"
MQTT_PORT = 1883
MQTT_USER = "Ihr_MQTT-Benutzername" # In IAMMETER Cloud → MQTT-Einstellungen festlegen
MQTT_PASS = "Ihr_MQTT-Passwort"
TOPIC = "device/DA2BED94/realtime" # Ersetzen Sie dies durch Ihre eigene Geräte-SN
# Callback bei Verbindung zum Broker
def on_connect(client, userdata, flags, rc):
if rc == 0:
print("✅ Erfolgreich mit dem IAMMETER MQTT Broker verbunden")
client.subscribe(TOPIC)
print(f"📡 Thema abonniert: {TOPIC}")
else:
print(f"❌ Verbindung fehlgeschlagen mit Code {rc}")
# Callback bei Empfang einer Nachricht
def on_message(client, userdata, msg):
payload = json.loads(msg.payload.decode())
print("📊 Echtzeitdaten empfangen:")
print(json.dumps(payload, indent=2, ensure_ascii=False))
# MQTT-Client initialisieren
client = mqtt.Client()
client.username_pw_set(MQTT_USER, MQTT_PASS)
client.on_connect = on_connect
client.on_message = on_message
# Verbindung zum Broker herstellen und Schleife starten
client.connect(MQTT_BROKER, MQTT_PORT, 60)
client.loop_forever()
6. Node.js-Beispiel
Wir empfehlen Ihnen, dieses interessante Open-Source-Projekt auszuprobieren: Es verwendetNode.jsum Echtzeitdaten vom IAMMETER MQTT-Broker zu abonnieren und diese in einem zu visualisierenWeb-Benutzeroberfläche, wodurch ein cooles Echtzeit-Dashboard erstellt wird.
🔗 https://github.com/lewei50/iammeterJS
7. Praktische Anwendungsfälle
- Intelligente HausautomationIntegrieren Sie Echtzeit-Leistungsdaten inHome-AssistentoderKnoten-REDum Automatisierungsaktionen auszulösen (z. B. die Heizung einschalten, wenn die Solarstromerzeugung hoch ist).
- Lokale DatenvisualisierungEingehende MQTT-Daten speichern inInfluxDBund visualisiere es mitGrafana-Dashboards.
- Private Cloud oder Edge ComputingRufen Sie Echtzeit-Leistungsdaten direkt über MQTT ab, um benutzerdefinierte Analysen oder Steuerungslogiken zu erstellen, ohne auf IAMMETER Cloud angewiesen zu sein.
8. Fehlerbehebung
| Ausgabe | Mögliche Ursache / Lösung |
|---|---|
| Verbindung zum Broker nicht möglich | Prüfen Sie, ob Ihr MQTT-Benutzername und Ihr Passwort in IAMMETER Cloud korrekt eingestellt sind. |
| Keine Daten empfangen | Überprüfen Sie Ihr Themenformat (Gerät/{SN}/Echtzeit) und sicherstellen, dass der Zähler online ist. |
| Datenverzögerung | Überprüfen Sie die Stabilität Ihres Netzwerks bzw. die Stärke Ihres WLAN-Signals. |
| Mehrere Meter | Sie können mehrere Themen gleichzeitig abonnieren (eines pro Social-Media-Kanal). |
9. Schlussfolgerung
VerwendenIAMMETER MQTT BrokerSie können problemlos darauf zugreifenEchtzeit-Energiedatenströmevon Ihren IAMMETER-Geräten. Es ist eine leistungsstarke und flexible Methode zum Erstellen vonlokale Dashboards, intelligente Automatisierungen oder KI-basierte Energieoptimierungssysteme.
📘 Verweise
- IAMMETER Firmware & Kommunikationsfunktionen
- IAMMETER Cloud- und MQTT-API-Dokumentation
- Entwickeln Sie Ihr eigenes Energiemonitoring-Dashboard mit NodeJS
Soll ich eins machen?Blogbeitragsversion im Markdown-Format(Bereit zur Veröffentlichung im offiziellen IAMMETER-Blog, inklusive Syntaxhervorhebung und eingebetteten Bildlinks)?
