Naročanje na podatke o porabi energije v realnem času prek MQTT Brokerja (izdaja 2025)
1. Uvod
IAMMETER-Cloud je profesionalna platforma za spremljanje porabe energije in upravljanje fotovoltaičnih sistemov. Poleg zmogljivih funkcij vizualizacije in poročanja ponuja IAMMETER-Cloud tudi prilagodljive podatkovne vmesnike. To uporabnikom s posebnimi zahtevami omogoča, da IAMMETER-Cloud uporabljajo kot podatkovni posrednik (middleware) in podatke pridobivajo programsko s pomočjo kode.
Obstajata dva glavna načina pridobivanja podatkov iz IAMMETER-Cloud s kodo:
- Naročanje na podatke prek IAMMETER MQTT Brokerja (osrednja tema tega članka)
- Klicanje uradnih API-jev IAMMETER-Cloud
Ta vodnik pojasnjuje, kako se naročiti na IAMMETER MQTT teme, kako interpretirati strukture podatkov (tako za enofazne kot trifazne števce) ter kako implementirati delujoča primera v Pythonu in Node.js.
2. Pregled IAMMETER MQTT Brokerja
Opomba: IAMMETER MQTT Broker je bil prvotno zasnovan kot razvojna in testna storitev zaradi priročnosti in ni del standardne ponudbe IAMMETER-Cloud (čeprav deluje stabilno že več kot 5 let). Za produkcijske ali obsežne namestitve priporočamo, da vzpostavite svoj lasten MQTT broker.
Konfiguracija IAMMETER MQTT Brokerja
| Parameter | Opis |
|---|---|
| Naslov brokerja | mqtt.iammeter.com |
| Vrata (port) | 1883 (brez SSL) |
| Uporabniško ime / geslo | Ustvariti ju je treba v IAMMETER Cloud → Nastavitve → Nastavitve MQTT![]() |
| Format teme (topic) | device/{SN}/realtime |
| Format podatkov (payload) | JSON |
⚠️ Pomembno: Tukaj ne uporabljajte svojih prijavnih poverilnic za IAMMETER Cloud. V nadzorni plošči IAMMETER Cloud morate ustvariti namensko MQTT uporabniško ime in geslo.
Nastavitev števca IAMMETER v način MQTT
Nastavite svoj IAMMETER števec v način pošiljanja podatkov prek MQTT (glejte vodnik za konfiguracijo vdelane programske opreme) in vnesite parametre IAMMETER MQTT Brokerja.

3. Format MQTT teme
Vsaka IAMMETER naprava objavlja svoje podatke v realnem času pod naslednjo temo:
device/{SN}/realtime
Kjer je {SN} serijska številka vašega števca. Na primer, če je serijska številka vaše naprave DA2BED94, bo tema:
device/DA2BED94/realtime
Na to temo se lahko naročite in tako prejemate neprekinjene merilne podatke v realnem času.
4. Format podatkov
4.1 Format podatkov enofaznega števca
Enofazni IAMMETER števec objavlja podatke v realnem času v formatu JSON, kot sledi:
{
"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 | Polje | Opis | Enota |
|---|---|---|---|
| 1 | Napetost | Trenutna omrežna napetost | V |
| 2 | Tok | Trenutni omrežni tok | A |
| 3 | Moč | Delovna moč | W |
| 4 | Dovozna energija | Uvožena energija (porabljena) | kWh |
| 5 | Odvozna energija | Izvožena energija (oddaja v omrežje, sončna) | kWh |
| 6 | Frekvenca | Omrežna frekvenca | Hz |
| 7 | Faktor moči | Trenutni faktor moči | PF |
🟢 Opombe:
- Pozitivna moč → poraba energije
- Negativna moč → oddaja energije v omrežje (npr. sončna elektrarna)
4.2 Format podatkov trifaznega števca (WEM3080T / WEM3046T / WEM3050T)
Trifazni IAMMETER števci objavljajo podatke v podobnem formatu JSON, s tremi polji, ki ustrezajo posameznim fazam.
{
"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 je seznam, ki vsebuje tri polja, od katerih vsako ustreza fazi A, B in C. Vsako notranje polje ima enako strukturo kot enofazno polje Data.
| Indeks | Polje | Opis | Enota |
|---|---|---|---|
| 1 | Napetost | Fazna napetost | V |
| 2 | Tok | Fazni tok | A |
| 3 | Moč | Delovna moč | W |
| 4 | Dovozna energija | Uvožena energija | kWh |
| 5 | Odvozna energija | Izvožena energija | kWh |
| 6 | Frekvenca | Omrežna frekvenca | Hz |
| 7 | Faktor moči | Fazni faktor moči | PF |
Poleg podatkov o delovni moči, ko je omogočeno merjenje jalove moči, boste videli tudi razdelek EA, kot sledi:
"EA": {
"Reactive": [
[-111.0, 0.000, 176.750],
[-113.0, 0.000, 179.110],
[-114.0, 36.120, 144.410]
]
}
Ta razdelek prikazuje podatke merjenja jalove moči, ki se pojavijo le, ko je omogočena funkcija testiranja jalove moči (glejte posnetek zaslona spodaj).

Vsako polje predstavlja tri faze (A, B, C) ter prikazuje jalovo moč (Q v kVar) in jalovo energijo (kVARh).
Q (kVar): Jalova moč — pozitivna = induktivna, negativna = kapacitivna kVARh: Jalova energija — vsaka faza vključuje dve vrednosti kVARh: eno za induktivno breme in eno za kapacitivno breme.
5. Primer v Pythonu: naročanje na podatke v realnem času
Spodaj je delujoč Python skript, ki uporablja knjižnico 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. Primer v Node.js
Priporočamo, da preizkusite ta zanimiv projekt odprte kode: Uporablja Node.js za naročanje na podatke v realnem času iz IAMMETER MQTT brokerja in njihovo vizualizacijo v spletnem uporabniškem vmesniku, s čimer ustvari odlično nadzorno ploščo v realnem času.
🔗 https://github.com/lewei50/iammeterJS
7. Praktični primeri uporabe
- Avtomatizacija pametnega doma Integrirajte podatke o moči v realnem času v Home Assistant ali Node-RED, da sprožite avtomatizirana dejanja (npr. zagon grelnika, ko je sončna proizvodnja visoka).
- Lokalna vizualizacija podatkov Shranjujte dohodne MQTT podatke v InfluxDB in jih vizualizirajte z Grafana nadzornimi ploščami.
- Zasebni oblak ali robno računalništvo Pridobivajte podatke o moči v realnem času neposredno prek MQTT za lastno analitiko ali krmilno logiko, ne da bi se zanašali na IAMMETER Cloud.
8. Odpravljanje težav
| Težava | Možen vzrok / rešitev |
|---|---|
| Ni mogoče vzpostaviti povezave z brokerjem | Preverite, ali sta vaše MQTT uporabniško ime in geslo pravilno nastavljena v IAMMETER Cloud. |
| Ni prejetih podatkov | Preverite format teme (device/{SN}/realtime) in se prepričajte, da je števec na spletu. |
| Zamuda podatkov | Preverite stabilnost omrežja ali moč signala Wi-Fi. |
| Več števcev | Hkrati se lahko naročite na več tem (eno na serijsko številko). |
9. Zaključek
Z uporabo IAMMETER MQTT Brokerja lahko enostavno dostopate do tokov podatkov o porabi energije v realnem času iz svojih IAMMETER naprav. To je zmogljiva in prilagodljiva metoda za izgradnjo lokalnih nadzornih plošč, pametnih avtomatizacij ali sistemov za optimizacijo porabe energije na osnovi umetne inteligence.
📘 Reference
- Funkcije vdelane programske opreme in komunikacije IAMMETER
- Dokumentacija IAMMETER Cloud in MQTT API
- Razvijte lastno nadzorno ploščo za spremljanje porabe energije z NodeJS
Želite, da pripravim različico objave v formatu Markdown (pripravljeno za objavo na uradnem blogu IAMMETER, s poudarjanjem sintakse in nespremenjenimi vdelanimi povezavami do slik)?
