Realtime energiegegevensabonnement via MQTT Broker (2025 Editie)
1. Inleiding
IAMMETER-Cloud is een professioneel platform voor energiemonitoring en fotovoltaïsch beheer. Naast de krachtige visualisatie- en rapportagefuncties biedt IAMMETER-Cloud ook flexibele data-interfaces. Hierdoor kunnen gebruikers met maatwerkvereisten IAMMETER-Cloud gebruiken als datatussenlaag, waarbij ze gegevens programmatisch ophalen via code.
Er zijn twee manieren om gegevens uit IAMMETER-Cloud te verkrijgen via code:
- Abonneer op gegevens via de MQTT Broker van IAMMETER (de focus van dit artikel)
- Roep de officiële API's van IAMMETER-Cloud aan
Deze handleiding legt uit hoe u zich kunt abonneren op IAMMETER MQTT-topics, hoe u gegevensstructuren interpreteert (voor zowel enkelfasige als driefasige meters) en hoe u werkende Python- en Node.js-voorbeelden implementeert.
2. Overzicht van de IAMMETER MQTT Broker
Opmerking: De IAMMETER MQTT Broker is oorspronkelijk ontworpen als een ontwikkel- en testservice voor het gemak en maakt geen deel uit van het standaard IAMMETER-Cloud-aanbod (hoewel het al meer dan 5 jaar stabiel draait). Voor productie- of grootschalige implementaties raden we aan om uw eigen MQTT-broker op te zetten.
Configuratie van de IAMMETER MQTT Broker
| Parameter | Beschrijving |
|---|---|
| Brokeradres | mqtt.iammeter.com |
| Poort | 1883 (niet-SSL) |
| Gebruikersnaam / Wachtwoord | Moet worden aangemaakt in IAMMETER Cloud → Instellingen → MQTT-instellingen![]() |
| Topic-indeling | device/{SN}/realtime |
| Payload-indeling | JSON |
⚠️ Belangrijk: Gebruik hier niet uw IAMMETER Cloud-inloggegevens. U moet een speciale MQTT-gebruikersnaam en -wachtwoord aanmaken in het IAMMETER Cloud-dashboard.
Configureer de IAMMETER-meter voor MQTT-modus
Stel uw IAMMETER-meter in op MQTT-uploadmodus (zie firmwareconfiguratiehandleiding) en voer de parameters van de IAMMETER MQTT Broker in.

3. MQTT Topic-indeling
Elk IAMMETER-apparaat publiceert zijn real-time gegevens onder het volgende topic:
device/{SN}/realtime
Waarbij {SN} het serienummer van uw meter is.
Als uw apparaat-SN bijvoorbeeld DA2BED94 is, wordt het topic:
device/DA2BED94/realtime
U kunt zich op dit topic abonneren om continu real-time meetgegevens te ontvangen.
4. Gegevensformaat
4.1 Gegevensformaat voor enkelfasige meter
Een enkelfasige IAMMETER-meter publiceert real-time gegevens in JSON-formaat als volgt:
{
"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 | Veld | Beschrijving | Eenheid |
|---|---|---|---|
| 1 | Voltage | Huidige lijnspanning | V |
| 2 | Current | Huidige lijnstroom | A |
| 3 | Power | Actief vermogen | W |
| 4 | Forward Energy | Geïmporteerde energie (verbruikt) | kWh |
| 5 | Reverse Energy | Geëxporteerde energie (teruglevering, zonne-energie) | kWh |
| 6 | Frequency | Netfrequentie | Hz |
| 7 | Power Factor | Huidige arbeidsfactor | PF |
🟢 Opmerkingen:
- Positief vermogen → energieverbruik
- Negatief vermogen → energie-export (bijv. teruglevering van zonne-energie)
4.2 Gegevensformaat voor driefasige meter (WEM3080T / WEM3046T / WEM3050T)
Driefasige IAMMETER-meters publiceren gegevens in een vergelijkbaar JSON-formaat, met drie arrays die overeenkomen met elke 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 is een lijst met drie arrays, die elk overeenkomen met fase A, B en C.
Elke interne array heeft dezelfde structuur als de enkelfasige Data-array.
| Index | Veld | Beschrijving | Eenheid |
|---|---|---|---|
| 1 | Voltage | Fasespanning | V |
| 2 | Current | Fasestroom | A |
| 3 | Power | Actief vermogen | W |
| 4 | Forward Energy | Geïmporteerde energie | kWh |
| 5 | Reverse Energy | Geëxporteerde energie | kWh |
| 6 | Frequency | Netfrequentie | Hz |
| 7 | Power Factor | Arbeidsfactor per fase | PF |
Naast de actieve vermogensgegevens, wanneer blindvermogenmeting is ingeschakeld, ziet u ook de EA-sectie als volgt:
"EA": {
"Reactive": [
[-111.0, 0.000, 176.750],
[-113.0, 0.000, 179.110],
[-114.0, 36.120, 144.410]
]
}
Deze sectie toont blindvermogenmeetgegevens, die alleen verschijnen wanneer de blindtestfunctie is ingeschakeld (zie onderstaande schermafbeelding).

Elke array vertegenwoordigt de drie fasen (A, B, C) en toont blindvermogen (Q in kVar) en blindenenergie (kVARh).
Q (kVar): Blindvermogen — positief = inductief, negatief = capacitief kVARh: Blindenenergie — elke fase bevat twee kVARh-waarden: één voor inductieve belasting en één voor capacitieve belasting.
5. Python-voorbeeld: Abonneren op real-time gegevens
Hieronder staat een werkend Python-script met behulp van de paho-mqtt-bibliotheek.
import paho.mqtt.client as mqtt
import json
# MQTT Broker-configuratie
MQTT_BROKER = "mqtt.iammeter.com"
MQTT_PORT = 1883
MQTT_USER = "your_mqtt_username" # Ingesteld in IAMMETER Cloud → MQTT-instellingen
MQTT_PASS = "your_mqtt_password"
TOPIC = "device/DA2BED94/realtime" # Vervang door het SN van uw eigen apparaat
# Callback wanneer verbonden met de broker
def on_connect(client, userdata, flags, rc):
if rc == 0:
print("✅ Verbonden met IAMMETER MQTT Broker")
client.subscribe(TOPIC)
print(f"📡 Geabonneerd op topic: {TOPIC}")
else:
print(f"❌ Verbinding mislukt met code {rc}")
# Callback wanneer een bericht wordt ontvangen
def on_message(client, userdata, msg):
payload = json.loads(msg.payload.decode())
print("📊 Real-time gegevens ontvangen:")
print(json.dumps(payload, indent=2, ensure_ascii=False))
# MQTT-client initialiseren
client = mqtt.Client()
client.username_pw_set(MQTT_USER, MQTT_PASS)
client.on_connect = on_connect
client.on_message = on_message
# Verbinden met de broker en de lus starten
client.connect(MQTT_BROKER, MQTT_PORT, 60)
client.loop_forever()
6. Node.js-voorbeeld
We raden aan dit interessante open-sourceproject te proberen: Het gebruikt Node.js om zich te abonneren op real-time gegevens van de IAMMETER MQTT-broker en deze te visualiseren in een web-UI, waarmee een coole real-time dashboard ontstaat.
🔗 https://github.com/lewei50/iammeterJS
7. Praktische gebruiksscenario's
- Smart Home-automatisering Integreer real-time vermogensgegevens in Home Assistant of Node-RED om automatiseringsacties te activeren (bijv. een verwarming inschakelen wanneer de zonne-opwekking hoog is).
- Lokale datavisualisatie Sla inkomende MQTT-gegevens op in InfluxDB en visualiseer ze met Grafana-dashboards.
- Private Cloud of Edge Computing Haal real-time vermogensgegevens rechtstreeks op via MQTT voor aangepaste analyses of besturingslogica zonder afhankelijk te zijn van IAMMETER Cloud.
8. Probleemoplossing
| Probleem | Mogelijke oorzaak / oplossing |
|---|---|
| Kan geen verbinding maken met broker | Controleer of uw MQTT-gebruikersnaam/-wachtwoord correct zijn ingesteld in IAMMETER Cloud. |
| Geen gegevens ontvangen | Controleer uw topic-indeling (device/{SN}/realtime) en zorg ervoor dat de meter online is. |
| Vertraging in gegevens | Controleer uw netwerkstabiliteit of Wi-Fi-signaalsterkte. |
| Meerdere meters | U kunt zich tegelijkertijd op meerdere topics abonneren (één per SN). |
9. Conclusie
Met behulp van de IAMMETER MQTT Broker kunt u eenvoudig real-time energiedatastromen van uw IAMMETER-apparaten benaderen. Het is een krachtige en flexibele methode om lokale dashboards, slimme automatiseringen of AI-gebaseerde energieoptimalisatiesystemen te bouwen.
📘 Referenties
- IAMMETER Firmware & Communicatiefuncties
- IAMMETER Cloud en MQTT API-documentatie
- Ontwikkel uw eigen energiemonitoringsdashboard met NodeJS
Zou u een Markdown-opgemaakte blogpostversie willen (klaar om te publiceren op de officiële IAMMETER-blog, met syntaxishighlighting en ingesloten afbeeldingslinks intact)?
