Oprostite, vaš brskalnik ne podpira JavaScripta!
Prijava

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 MQTTPosnetek zaslona nastavitev 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.

Nastavitev števca v način pošiljanja podatkov prek MQTT in konfiguracija parametrov 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).

Omogočanje merjenja jalove moči na števcu

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

  1. 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).
  2. Lokalna vizualizacija podatkov Shranjujte dohodne MQTT podatke v InfluxDB in jih vizualizirajte z Grafana nadzornimi ploščami.
  3. 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


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

Na vrh