Ho sentim, el teu navegador no admet JavaScript!
Inicia sessió

Subscripció de dades energètiques en temps real mitjançant el broker MQTT (edició 2025)

1. Introducció

IAMMETER-Cloud és una plataforma professional de monitoratge energètic i gestió fotovoltaica. A més de les seves potents funcions de visualització i d'informes, IAMMETER-Cloud també ofereix interfícies de dades flexibles. Això permet als usuaris amb requisits personalitzats utilitzar IAMMETER-Cloud com a middleware de dades, obtenint dades programàticament mitjançant codi.

Hi ha dues maneres principals d'obtenir dades d'IAMMETER-Cloud mitjançant codi:

  • Subscriure's a les dades a través del broker MQTT d'IAMMETER (el tema central d'aquest article)
  • Cridar les API oficials d'IAMMETER-Cloud

Aquesta guia explica com subscriure's als temes MQTT d'IAMMETER, com interpretar les estructures de dades (tant per a comptadors monofàsics com trifàsics) i com implementar exemples funcionals en Python i Node.js.


2. Visió general del broker MQTT d'IAMMETER

Nota: El broker MQTT d'IAMMETER es va dissenyar originalment com a servei de desenvolupament i proves per comoditat i no forma part de l'oferta estàndard d'IAMMETER-Cloud (tot i que ha estat estable i en funcionament durant més de 5 anys). Per a desplegaments de producció o a gran escala, us recomanem configurar el vostre propi broker MQTT.

Configuració del broker MQTT d'IAMMETER

Paràmetre Descripció
Adreça del broker mqtt.iammeter.com
Port 1883 (sense SSL)
Usuari / Contrasenya Cal crear-los a IAMMETER Cloud → Settings → MQTT SettingsMQTT Settings Screenshot
Format del tema device/{SN}/realtime
Format de la càrrega útil JSON

⚠️ Important: No utilitzeu aquí les vostres credencials d'accés a IAMMETER Cloud. Cal crear un nom d'usuari i una contrasenya MQTT dedicats al tauler d'IAMMETER Cloud.

Configurar el comptador IAMMETER perquè utilitzi el mode MQTT

Poseu el vostre comptador IAMMETER en mode de càrrega MQTT (vegeu la guia de configuració del firmware) i introduïu els paràmetres del broker MQTT d'IAMMETER.

Set meter to MQTT upload mode and configure IAMMETER MQTT Broker parameters


3. Format del tema MQTT

Cada dispositiu IAMMETER publica les seves dades en temps real sota el tema següent:

device/{SN}/realtime

On {SN} és el número de sèrie del vostre comptador. Per exemple, si el número de sèrie del vostre dispositiu és DA2BED94, el tema serà:

device/DA2BED94/realtime

Podeu subscriure-us a aquest tema per rebre dades de mesura contínues en temps real.


4. Format de les dades

4.1 Format de dades d'un comptador monofàsic

Un comptador IAMMETER monofàsic publica les dades en temps real en format JSON de la manera següent:

{
  "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]
}
Índex Camp Descripció Unitat
1 Tensió Tensió de la línia actual V
2 Corrent Corrent de la línia actual A
3 Potència Potència activa W
4 Energia directa Energia importada (consumida) kWh
5 Energia inversa Energia exportada (abocament a la xarxa, solar) kWh
6 Freqüència Freqüència de la xarxa Hz
7 Factor de potència Factor de potència actual PF

🟢 Notes:

  • Potència positiva → consum d'energia
  • Potència negativa → exportació d'energia (per exemple, abocament solar a la xarxa)

4.2 Format de dades d'un comptador trifàsic (WEM3080T / WEM3046T / WEM3050T)

Els comptadors trifàsics IAMMETER publiquen les dades en un format JSON similar, amb tres matrius corresponents a cada fase.

{
  "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 és una llista que conté tres matrius, cadascuna corresponent a les fases A, B i C. Cada matriu interna té la mateixa estructura que la matriu Data del comptador monofàsic.

Índex Camp Descripció Unitat
1 Tensió Tensió de fase V
2 Corrent Corrent de fase A
3 Potència Potència activa W
4 Energia directa Energia importada kWh
5 Energia inversa Energia exportada kWh
6 Freqüència Freqüència de la xarxa Hz
7 Factor de potència Factor de potència de fase PF

A més de les dades de potència activa, quan el mesurament de potència reactiva està activat, també veureu la secció EA de la manera següent:

"EA": {
  "Reactive": [
    [-111.0, 0.000, 176.750],
    [-113.0, 0.000, 179.110],
    [-114.0, 36.120, 144.410]
  ]
}

Aquesta secció mostra les dades de mesura reactiva, que només apareixen quan la funció de prova reactiva està activada (vegeu la captura de pantalla següent).

Enable reactive measurement in the meter

Cada matriu representa les tres fases (A, B, C) i mostra la potència reactiva (Q en kVar) i l'energia reactiva (kVARh).

Q (kVar): Potència reactiva — positiva = inductiva, negativa = capacitiva kVARh: Energia reactiva — cada fase inclou dos valors de kVARh: un per a la càrrega inductiva i un per a la càrrega capacitiva.


5. Exemple en Python: subscripció a dades en temps real

A continuació teniu un script de Python funcional que utilitza la biblioteca 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. Exemple en Node.js

Us recomanem provar aquest interessant projecte de codi obert: Utilitza Node.js per subscriure's a les dades en temps real del broker MQTT d'IAMMETER i visualitzar-les en una interfície web, creant un fantàstic tauler en temps real.

🔗 https://github.com/lewei50/iammeterJS


7. Casos d'ús pràctics

  1. Automatització de la llar intel·ligent Integreu les dades de potència en temps real a Home Assistant o Node-RED per activar accions automatitzades (per exemple, engegar un escalfador quan la generació solar és alta).
  2. Visualització local de dades Emmagatzemeu les dades MQTT rebudes a InfluxDB i visualitzeu-les amb taulers de Grafana.
  3. Núvol privat o informàtica perifèrica (edge computing) Obteniu dades de potència en temps real directament per MQTT per a anàlisis personalitzades o lògica de control sense dependre d'IAMMETER Cloud.

8. Resolució de problemes

Problema Causa possible / Solució
No es pot connectar al broker Comproveu si el nom d'usuari i la contrasenya MQTT estan configurats correctament a IAMMETER Cloud.
No es reben dades Verifiqueu el format del tema (device/{SN}/realtime) i assegureu-vos que el comptador estigui en línia.
Retard en les dades Comproveu l'estabilitat de la xarxa o la potència del senyal Wi-Fi.
Diversos comptadors Podeu subscriure-us a diversos temes simultàniament (un per cada SN).

9. Conclusió

Amb el broker MQTT d'IAMMETER, podeu accedir fàcilment als fluxos de dades energètiques en temps real dels vostres dispositius IAMMETER. És un mètode potent i flexible per construir taulers locals, automatitzacions intel·ligents o sistemes d'optimització energètica basats en IA.


📘 Referències


Voleu que us prepari una versió del bloc en format Markdown (a punt per publicar al bloc oficial d'IAMMETER, amb el ressaltat de sintaxi i els enllaços d'imatge incrustats intactes)?

Amunt