Atvainojiet, jūsu pārlūkprogramma neatbalsta JavaScript!
Pierakstīties

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ījumiMQTT iestatījumu ekrānuzņēmums
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.

Skaitītāja iestatīšana MQTT augšupielādes režīmā un IAMMETER MQTT brokera parametru konfigurēšana


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

Reaktīvā mērījuma iespējošana skaitītājā

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

  1. 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).
  2. Lokālā datu vizualizācija Glabājiet ienākošos MQTT datus InfluxDB un vizualizējiet tos ar Grafana informācijas paneļiem.
  3. 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


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

Uz augšu