Abonament la date energetice în timp real prin MQTT Broker (ediția 2025)
1. Introducere
IAMMETRO-noreste o platformă profesională de monitorizare a energiei și gestionare a sistemelor fotovoltaice. Pe lângă funcțiile sale puternice de vizualizare și raportare, IAMMETER-Cloud oferă și interfețe de date flexibile. Acest lucru permite utilizatorilor cu cerințe personalizate să utilizeze IAMMETER-Cloud ca...middleware de date, recuperarea datelor programatic prin cod.
Există două modalități principale de a obține date de la IAMMETER-Cloud folosind cod:
- Abonați-vă la date prinBrokerul MQTT al IAMMETER(punctul central al acestui articol)
- Sunați oficialul IAMMETER-CloudAPI-uri
Acest ghid explică cum să vă abonați la subiectele IAMMETER MQTT, să interpretați structurile de date (atât pentru contoare monofazate, cât și pentru cele trifazate) și să implementați exemple funcționale în Python și Node.js.
2. Prezentare generală a brokerului IAMMETER MQTT
Notă:Brokerul IAMMETER MQTT a fost inițial conceput ca unserviciu de dezvoltare și testarepentru comoditate și nu face parte din oferta standard IAMMETER-Cloud (deși este stabilă și funcționează de peste 5 ani). Pentru implementări de producție sau la scară largă, vă recomandăm să configurațipropriul broker MQTT.
Configurarea brokerului IAMMETER MQTT
| parametru | Descriere |
|---|---|
| Adresa brokerului | mqtt.iammeter.com |
| Port | 1883(non-SSL) |
| Nume de utilizator / Parolă | Trebuie creat înIAMMETER Cloud → Setări → Setări MQTT![]() |
| Formatul subiectului | dispozitiv/{SN}/timp real |
| Formatul sarcinii utile | JSON |
⚠️ Important:DonuFolosește aici datele tale de autentificare IAMMETER Cloud. Trebuie săcreați un nume de utilizator și o parolă dedicate MQTTîn tabloul de bord IAMMETER Cloud.
Configurați contorul IAMMETER pentru a utiliza modul MQTT
Setați amperometrul IAMMETER laMod de încărcare MQTT(vedeaghid de configurare a firmware-ului) și introduceți parametrii IAMMETER MQTT Broker.

3. Formatul subiectului MQTT
Fiecare dispozitiv IAMMETER își publică datele în timp real sub următoarea temă:
dispozitiv/{SN}/timp real
Unde{SN}este numărul de serie al contorului dumneavoastră.
De exemplu, dacă numărul de serie al dispozitivului dumneavoastră esteDA2BED94, subiectul va fi:
dispozitiv/DA2BED94/timp real
Vă puteți abona la acest subiect pentru a primi date de măsurare în timp real.
4. Formatul datelor
4.1 Formatul datelor contorului monofazat
Un contor IAMMETER monofazat publică date în timp real în format JSON după cum urmează:
{
„metodă”: „1-272”,
„mac”: „B0F8932A295C”,
„versiune”: „i.91.062T6”,
„server”: „em”,
„SN”: „DA2BED94”,
„Date”: [227.02, 1.81, 296.0, 21699.98, 0.00, 50.01, 0.72]
}
| index | Domeniu | Descriere | Unitate |
|---|---|---|---|
| 1 | Voltaj | Tensiunea curentă a liniei | V |
| 2 | Actual | Curent de linie | A |
| 3 | Putere | Putere activă | W |
| 4 | Energie înainte | Energie importată (consumată) | kWh |
| 5 | Energie inversă | Energie exportată (alimentare, solară) | kWh |
| 6 | Frecvență | Frecvența rețelei | Hz |
| 7 | factor de putere | Factorul de putere curent | PF |
🟢 Note:
- Putere pozitivă → consum de energie
- Putere negativă → export de energie (de exemplu, alimentare solară)
4.2 Formatul datelor contorului trifazat (WEM3080T / WEM3046T / WEM3050T)
Contoarele IAMMETER trifazate publică datele într-un format JSON similar, cu trei matrice corespunzătoare fiecărei faze.
{
„metodă”: „4-9”,
„mac”: „849DC2CEC625”,
„versiune”: „i.91.062T6”,
„server”: „em”,
„SN”: „CB0A0CFB”,
„EA”: {
„Reactiv”: [
[-111.0, 0.000, 176.750],
[-113.0, 0.000, 179.110],
[-114.0, 36.120, 144.410]
]
},
„Date”: [
[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]
]
}
Dateeste o listă care conținetrei tablouri, fiecare corespunzândfazele A, B și CFiecare matrice internă are aceeași structură ca și cea monofazatăDatematrice.
| index | Domeniu | Descriere | Unitate |
|---|---|---|---|
| 1 | Voltaj | tensiunea de fază | V |
| 2 | Actual | curent de fază | A |
| 3 | Putere | Putere activă | W |
| 4 | Energie înainte | Energie importată | kWh |
| 5 | Energie inversă | Energie Exportată | kWh |
| 6 | Frecvență | Frecvența rețelei | Hz |
| 7 | factor de putere | Factorul de putere al fazei | PF |
Pe lângă datele reale privind puterea, cândMăsurarea puterii reactiveeste activat, veți vedea șiEAsecțiune după cum urmează:
„EA”: {
„Reactiv”: [
[-111,0, 0,000, 176,750],
[-113,0, 0,000, 179,110],
[-114,0, 36,120, 144,410]
]
}
Această secțiune prezintădate de măsurare reactive, care apare doar atunci cândfuncție de testare reactivăeste activat (vezi captura de ecran de mai jos).

Fiecare matrice reprezintă cele trei faze (A, B, C), arătândputere reactivă (Q în kVar)șiEnergie reactivă (kVARh).
Q (kVar):Putere reactivă — pozitivă = inductivă, negativă = capacitivăkVARh:Energie reactivă — fiecare fază include două valori kVARh: una pentrusarcină inductivăși unul pentrusarcină capacitivă.
5. Exemplu Python: Abonarea la date în timp real
Mai jos este un script Python funcțional care foloseștepaho-mqttbibliotecă.
import paho.mqtt.client ca mqtt
import json
# Configurare Broker MQTT
MQTT_BROKER = „mqtt.iammeter.com”
MQTT_PORT = 1883
MQTT_USER = „numele_dvs.mqtt” # Setați în IAMMETER Cloud → Setări MQTT
MQTT_PASS = „parola_dvs.mqtt”
TOPIC = „dispozitiv/DA2BED94/timp_real” # Înlocuiți cu propriul SN al dispozitivului
# Apel invers la conectarea la broker
def on_connect(client, userdata, flags, rc):
if rc == 0:
print("✅ Conectare cu succes la IAMMETER MQTT Broker")
client.subscribe(TOPIC)
print(f"📡 Abonat la subiectul: {TOPIC}")
else:
print(f"❌ Conexiunea a eșuat cu codul {rc}")
# Apel invers la primirea unui mesaj
def on_message(client, userdata, msg):
payload = json.loads(msg.payload.decode())
print("📊 Date în timp real primite:")
print(json.dumps(payload, indent=2, ensure_ascii=False))
# Inițializați clientul MQTT
client = mqtt.Client()
client.username_pw_set(MQTT_USER, MQTT_PASS)
client.on_connect = on_connect
client.on_message = on_message
# Conectare la broker și pornire buclă
client.connect(MQTT_BROKER, MQTT_PORT, 60)
client.loop_forever()
6. Exemplu Node.js
Vă recomandăm să încercați acest proiect open-source interesant: Acesta foloseșteNode.jspentru a vă abona la date în timp real de la brokerul IAMMETER MQTT și a le vizualiza într-un formatinterfață de utilizare web, creând un tablou de bord interesant în timp real.
🔗 https://github.com/lewei50/iammeterJS
7. Cazuri practice de utilizare
- Automatizare inteligentă a caseiIntegrați datele energetice în timp real înAsistent acasăsauNod-ROȘUpentru a declanșa acțiuni de automatizare (de exemplu, pornirea unui încălzitor atunci când generarea solară este mare).
- Vizualizare date localeStocați datele MQTT primite înInfluxDBși vizualizați-o cuTablouri de bord Grafana.
- Cloud privat sau Edge ComputingPreluați date despre energie în timp real direct prin MQTT pentru analize personalizate sau logică de control, fără a vă baza pe IAMMETER Cloud.
8. Depanare
| Emisiune | Cauză posibilă / Soluție |
|---|---|
| Nu se poate conecta la broker | Verificați dacă numele de utilizator/parola MQTT sunt setate corect în IAMMETER Cloud. |
| Nu au fost primite date | Verificați formatul subiectului (dispozitiv/{SN}/timp real) și asigurați-vă că contorul este online. |
| Întârziere de date | Verificați stabilitatea rețelei sau puterea semnalului Wi-Fi. |
| Mai mulți metri | Te poți abona la mai multe subiecte simultan (unul per SN). |
9. Concluzie
FolosindBroker IAMMETER MQTT, puteți accesa cu ușurințăfluxuri de date energetice în timp realde la dispozitivele tale IAMMETER. Este o metodă puternică și flexibilă de a construitablouri de bord locale, automatizări inteligente sau sisteme de optimizare energetică bazate pe inteligență artificială.
📘 Referințe
- Firmware și funcții de comunicare IAMMETER
- Documentația API-ului IAMMETER Cloud și MQTT
- Dezvoltați-vă propriul tablou de bord pentru monitorizarea energiei folosind NodeJS
Ai vrea să fac oVersiune a postării de blog formatată în Markdown(gata de publicat pe blogul oficial IAMMETER, cu evidențierea sintaxei și linkurile de imagini încorporate intacte)?
