Reāllaika enerģijas datu abonēšana, izmantojot MQTT brokeri (2025. gada izdevums)
1. Ievads
IAMMETER-Cloud ir profesionāla enerģijas uzraudzības un fotoelementu (saules) pārvaldības platforma. Papildus spēcīgajām vizualizācijas un atskaišu funkcijām IAMMETER-Cloud piedāvā arī elastīgas datu saskarnes. Tas ļauj lietotājiem ar pielāgotām prasībām izmantot IAMMETER-Cloud kā datu starpnieku (middleware), iegūstot datus programmatiski, izmantojot kodu.
Ir divi galvenie veidi, kā ar koda palīdzību iegūt datus no IAMMETER-Cloud:
- Abonēt datus, izmantojot IAMMETER MQTT brokeri (šī raksta galvenā tēma)
- Izsaukt IAMMETER-Cloud oficiālās API
Šī rokasgrāmata izskaidro, kā abonēt IAMMETER MQTT tēmas, interpretēt datu struktūras (gan vienfāzes, gan trīsfāžu skaitītājiem) un izveidot darbojošos Python un Node.js piemērus.
2. IAMMETER MQTT brokera pārskats
Piezīme: IAMMETER MQTT brokeris sākotnēji tika izveidots kā izstrādes un testēšanas serviss ērtībai un nav daļa no standarta IAMMETER-Cloud piedāvājuma (kaut arī tas ir stabils un darbojas jau vairāk nekā 5 gadus). Produkcijas vai liela mēroga izvietošanai mēs iesakām izveidot savu MQTT brokeri.
IAMMETER MQTT brokera konfigurācija
| Parametrs | Apraksts |
|---|---|
| Brokera adrese | mqtt.iammeter.com |
| Ports | 1883 (bez SSL) |
| Lietotājvārds / parole | Jāizveido sadaļā IAMMETER Cloud → Iestatījumi → MQTT iestatījumi![]() |
| Tēmas formāts | device/{SN}/realtime |
| Datu (payload) formāts | JSON |
⚠️ Svarīgi: Šeit neizmantojiet savus IAMMETER Cloud pieteikšanās akreditācijas datus. Jums ir jāizveido īpašs MQTT lietotājvārds un parole IAMMETER Cloud panelī.
IAMMETER skaitītāja konfigurēšana MQTT režīmam
Iestatiet savu IAMMETER skaitītāju MQTT augšupielādes režīmā (skatiet programmatūras konfigurācijas rokasgrāmatu) un ievadiet IAMMETER MQTT brokera parametrus.

3. MQTT tēmas formāts
Katra IAMMETER ierīce publicē savus reāllaika datus zem šādas tēmas:
device/{SN}/realtime
Kur {SN} ir jūsu skaitītāja sērijas numurs.
Piemēram, ja jūsu ierīces sērijas numurs (SN) ir DA2BED94, tēma būs:
device/DA2BED94/realtime
Jūs varat abonēt šo tēmu, lai saņemtu nepārtrauktus reāllaika mērījumu datus.
4. Datu formāts
4.1 Vienfāzes skaitītāja datu formāts
Vienfāzes IAMMETER skaitītājs publicē reāllaika datus JSON formātā šādi:
{
"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]
}
| Indekss | Lauks | Apraksts | Mērvienība |
|---|---|---|---|
| 1 | Spriegums | Aktuālais līnijas spriegums | V |
| 2 | Strāva | Aktuālā līnijas strāva | A |
| 3 | Jauda | Aktīvā jauda | W |
| 4 | Uz priekšu esošā enerģija | Importētā enerģija (patērētā) | kWh |
| 5 | Atpakaļ esošā enerģija | Eksportētā enerģija (piegādātā, saules) | kWh |
| 6 | Frekvence | Tīkla frekvence | Hz |
| 7 | Jaudas koeficients | Aktuālais jaudas koeficients | PF |
🟢 Piezīmes:
- Pozitīva jauda → enerģijas patēriņš
- Negatīva jauda → enerģijas eksports (piemēram, saules enerģijas piegāde tīklam)
4.2 Trīsfāžu skaitītāja datu formāts (WEM3080T / WEM3046T / WEM3050T)
Trīsfāžu IAMMETER skaitītāji publicē datus līdzīgā JSON formātā, ar trim masīviem, kas atbilst katrai fāzei.
{
"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 ir saraksts, kas satur trīs masīvus, un katrs atbilst A, B un C fāzei.
Katram iekšējam masīvam ir tāda pati struktūra kā vienfāzes Data masīvam.
| Indekss | Lauks | Apraksts | Mērvienība |
|---|---|---|---|
| 1 | Spriegums | Fāzes spriegums | V |
| 2 | Strāva | Fāzes strāva | A |
| 3 | Jauda | Aktīvā jauda | W |
| 4 | Uz priekšu esošā enerģija | Importētā enerģija | kWh |
| 5 | Atpakaļ esošā enerģija | Eksportētā enerģija | kWh |
| 6 | Frekvence | Tīkla frekvence | Hz |
| 7 | Jaudas koeficients | Fāzes jaudas koeficients | PF |
Papildus reālās jaudas datiem, kad ir iespējots reaktīvās jaudas mērījums, jūs redzēsiet arī EA sadaļu šādi:
"EA": {
"Reactive": [
[-111.0, 0.000, 176.750],
[-113.0, 0.000, 179.110],
[-114.0, 36.120, 144.410]
]
}
Šī sadaļa parāda reaktīvā mērījuma datus, kas parādās tikai tad, kad ir iespējota reaktīvās jaudas testa funkcija (skatiet ekrānuzņēmumu zemāk).

Katrs masīvs atspoguļo trīs fāzes (A, B, C), parādot reaktīvo jaudu (Q kVar) un reaktīvo enerģiju (kVARh).
Q (kVar): Reaktīvā jauda — pozitīva = induktīva, negatīva = kapacitatīva kVARh: Reaktīvā enerģija — katra fāze ietver divas kVARh vērtības: vienu induktīvai slodzei un vienu kapacitatīvai slodzei.
5. Python piemērs: reāllaika datu abonēšana
Zemāk ir darbojošs Python skripts, kas izmanto paho-mqtt bibliotēku.
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 piemērs
Mēs iesakām izmēģināt šo interesanto atvērtā pirmkoda projektu: Tas izmanto Node.js, lai abonētu reāllaika datus no IAMMETER MQTT brokera un vizualizētu tos tīmekļa saskarnē, izveidojot foršu reāllaika informācijas paneli (dashboard).
🔗 https://github.com/lewei50/iammeterJS
7. Praktiskie lietošanas gadījumi
- Viedās mājas automatizācija Integrējiet reāllaika jaudas datus Home Assistant vai Node-RED, lai aktivizētu automatizācijas darbības (piemēram, ieslēgtu sildītāju, kad saules enerģijas ražošana ir augsta).
- Lokālā datu vizualizācija Glabājiet ienākošos MQTT datus InfluxDB un vizualizējiet tos ar Grafana informācijas paneļiem.
- Privātais mākonis vai edge computing Iegūstiet reāllaika jaudas datus tieši, izmantojot MQTT, pielāgotai analīzei vai vadības loģikai, nepaļaujoties uz IAMMETER Cloud.
8. Problēmu novēršana
| Problēma | Iespējamais cēlonis / risinājums |
|---|---|
| Nevar pieslēgties brokerim | Pārbaudiet, vai jūsu MQTT lietotājvārds un parole ir pareizi iestatīti IAMMETER Cloud. |
| Dati netiek saņemti | Pārbaudiet savu tēmas formātu (device/{SN}/realtime) un pārliecinieties, ka skaitītājs ir tiešsaistē. |
| Datu aizkave | Pārbaudiet tīkla stabilitāti vai Wi-Fi signāla stiprumu. |
| Vairāki skaitītāji | Jūs varat vienlaikus abonēt vairākas tēmas (vienu katram SN). |
9. Secinājums
Izmantojot IAMMETER MQTT brokeri, jūs varat viegli piekļūt reāllaika enerģijas datu plūsmām no savām IAMMETER ierīcēm. Tas ir spēcīgs un elastīgs veids, kā izveidot lokālus informācijas paneļus, viedās automatizācijas vai uz mākslīgo intelektu balstītas enerģijas optimizācijas sistēmas.
📘 Atsauces
- IAMMETER programmatūras un komunikācijas funkcijas
- IAMMETER Cloud un MQTT API dokumentācija
- Izstrādājiet savu enerģijas uzraudzības informācijas paneli, izmantojot NodeJS
Vai vēlaties, lai es izveidoju Markdown formāta emuāra ieraksta versiju (gatavu publicēšanai IAMMETER oficiālajā emuārā, ar sintakses izcelšanu un iegultajām attēlu saitēm)?
