Lo sentimos, su navegador no es compatible con JavaScript.

Suscripción a datos de energía en tiempo real a través de MQTT Broker (edición 2025)

1. Introducción

IAMMETER-nubeEs una plataforma profesional de monitorización energética y gestión fotovoltaica. Además de sus potentes funciones de visualización y generación de informes, IAMMETER-Cloud también ofrece interfaces de datos flexibles. Esto permite a los usuarios con necesidades personalizadas utilizar IAMMETER-Cloud como...middleware de datos, recuperando datos programáticamente a través del código.

Hay dos formas principales de obtener datos de IAMMETER-Cloud usando código:

  • Suscríbete a los datos a través deBroker MQTT de IAMMETER(el foco de este artículo)
  • Llama al representante oficial de IAMMETER-CloudAPI

Esta guía explica cómo suscribirse a los temas MQTT de IAMMETER, interpretar estructuras de datos (para medidores monofásicos y trifásicos) e implementar ejemplos funcionales de Python y Node.js.


2. Descripción general del bróker IAMMETER MQTT

Nota:El broker IAMMETER MQTT fue diseñado originalmente como unservicio de desarrollo y pruebasPor comodidad, no forma parte de la oferta estándar de IAMMETER-Cloud (aunque lleva más de 5 años funcionando de forma estable). Para implementaciones de producción o a gran escala, recomendamos configurar subróker MQTT propio.

Configuración del agente MQTT de IAMMETER

parámetro Descripción
Dirección del corredor mqtt.iammeter.com
Puerto 1883(sin SSL)
Nombre de usuario / Contraseña Debe crearse enIAMMETER Cloud → Configuración → Configuración de MQTTCaptura de pantalla de configuración de MQTT
Formato del tema dispositivo/{SN}/tiempo real
Formato de carga útil JSON

⚠️ Importante:HacernoUsa tus credenciales de inicio de sesión de IAMMETER Cloud aquí. Necesitascrear un nombre de usuario y una contraseña MQTT dedicadosen el panel de control de IAMMETER Cloud.

Configurar el medidor IAMMETER para usar el modo MQTT

Configure su medidor IAMMETER enModo de carga MQTT(verguía de configuración del firmware) e ingrese los parámetros del Broker IAMMETER MQTT.

Establezca el medidor en modo de carga MQTT y configure los parámetros del agente MQTT de IAMMETER


3. Formato de tema MQTT

Cada dispositivo IAMMETER publica sus datos en tiempo real bajo el siguiente tema:

dispositivo/{SN}/tiempo real

Dónde{SN}es el número de serie de su medidor. Por ejemplo, si el número de serie de su dispositivo esDA2BED94, el tema será:

dispositivo/DA2BED94/tiempo real

Puedes suscribirte a este tema para recibir datos de medición continuos en tiempo real.


4. Formato de datos

4.1 Formato de datos del medidor monofásico

Un medidor IAMMETER monofásico publica datos en tiempo real en formato JSON de la siguiente manera:

{
"método": "1-272",
"mac": "B0F8932A295C",
"versión": "i.91.062T6",
"servidor": "em",
"SN": "DA2BED94",
"Datos": [227.02, 1.81, 296.0, 21699.98, 0.00, 50.01, 0.72]
}
índice Campo Descripción Unidad
1 Voltaje Voltaje de línea actual V
2 Actual Línea actual actual A
3 Energía Potencia activa W
4 Energía hacia adelante Energía importada (consumida) kWh
5 Energía inversa Energía exportada (alimentación, solar) kWh
6 Frecuencia Frecuencia de red Hz
7 Factor de potencia Factor de potencia actual PF

🟢 Notas:

  • Potencia positiva → consumo de energía
  • Potencia negativa → exportación de energía (por ejemplo, inyección de energía solar)

4.2 Formato de datos del medidor trifásico (WEM3080T / WEM3046T / WEM3050T)

Los medidores IAMMETER trifásicos publican datos en un formato JSON similar, con tres matrices correspondientes a cada fase.

{
"método": "4-9",
"mac": "849DC2CEC625",
"versión": "i.91.062T6",
"servidor": "em",
"SN": "CB0A0CFB",
"EA": {
"Reactivo": [
[-111.0, 0.000, 176.750],
[-113.0, 0.000, 179.110],
[-114.0, 36.120, 144.410]
]
},
"Datos": [
[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]
]
}

Datoses una lista que contienetres matrices, cada uno correspondiente afase A, B y CCada matriz interna tiene la misma estructura que la monofásica.Datosformación.

índice Campo Descripción Unidad
1 Voltaje tensión de fase V
2 Actual corriente de fase A
3 Energía Potencia activa W
4 Energía hacia adelante Energía importada kWh
5 Energía inversa Energía exportada kWh
6 Frecuencia Frecuencia de red Hz
7 Factor de potencia Factor de potencia de fase PF

Además de los datos de potencia real, cuandoMedición de potencia reactivaestá habilitado, también verá elEAsección como sigue:

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

Esta sección muestradatos de medición reactiva, que aparece sólo cuando elfunción de prueba reactivaestá habilitado (ver captura de pantalla a continuación).

Habilitar la medición reactiva en el medidor

Cada matriz representa las tres fases (A, B, C), mostrandopotencia reactiva (Q en kVar)yEnergía reactiva (kVARh).

Q (kVar):Potencia reactiva: positiva = inductiva, negativa = capacitivakVARh:Energía reactiva: cada fase incluye dos valores de kVARh: uno paracarga inductivay uno paracarga capacitiva.


5. Ejemplo de Python: Suscripción a datos en tiempo real

A continuación se muestra un script de Python que funciona utilizando elOPS-MQTTbiblioteca.

Importar paho.mqtt.client como mqtt
Importar json

# Configuración del Broker MQTT
MQTT_BROKER = "mqtt.iammeter.com"
MQTT_PORT = 1883
MQTT_USER = "su_nombre_de_usuario_mqtt" # Configurado en IAMMETER Cloud → Configuración MQTT
MQTT_PASS = "su_contraseña_mqtt"
TOPIC = "dispositivo/DA2BED94/tiempo_real" # Reemplazar con el número de serie de su dispositivo

# Retrollamada al conectarse al broker
def on_connect(client, userdata, flags, rc):
if rc == 0:
print("✅ Conectado al broker MQTT de IAMMETER correctamente")
client.subscribe(TOPIC)
print(f"📡 Suscrito al tema: {TOPIC}")
else:
print(f"❌ Error de conexión con el código {rc}")

# Retrollamada al recibir un mensaje
def on_message(client, userdata, msg):
payload = json.loads(msg.payload.decode())
print("📊 Datos recibidos en tiempo real:")
print(json.dumps(payload, indent=2, ensure_ascii=False))

# Inicializar el cliente MQTT
client = mqtt.Client()
client.username_pw_set(MQTT_USER, MQTT_PASS)
client.on_connect = on_connect
client.on_message = on_message

# Conectar al broker e iniciar el bucle
client.connect(MQTT_BROKER, MQTT_PORT, 60)
client.loop_forever()

6. Ejemplo de Node.js

Te recomendamos probar este interesante proyecto de código abierto: UtilizaNode.jssuscribirse a datos en tiempo real del broker IAMMETER MQTT y visualizarlos en uninterfaz de usuario web, creando un atractivo panel de control en tiempo real.

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


7. Casos de uso práctico

  1. automatización del hogar inteligenteIntegrar datos de energía en tiempo real enAsistente de hogaroNodo-REDpara activar acciones de automatización (por ejemplo, iniciar un calentador cuando la generación solar es alta).
  2. Visualización de datos localesAlmacenar datos MQTT entrantes enInfluxDBy visualizarlo conPaneles de control de Grafana.
  3. Nube privada o computación de bordeRecupere datos de energía en tiempo real directamente a través de MQTT para análisis personalizados o lógica de control sin depender de IAMMETER Cloud.

8. Solución de problemas

Asunto Posible causa / solución
No se puede conectar al bróker Compruebe si su nombre de usuario y contraseña de MQTT están configurados correctamente en IAMMETER Cloud.
No se recibieron datos Verifique el formato de su tema (dispositivo/{SN}/tiempo real) y asegúrese de que el medidor esté en línea.
Retraso de datos Comprueba la estabilidad de tu red o la intensidad de la señal Wi-Fi.
Varios metros Puedes suscribirte a varios temas simultáneamente (uno por SN).

9. Conclusión

UsandoCorredor IAMMETER MQTT, puedes acceder fácilmenteflujos de datos de energía en tiempo realdesde sus dispositivos IAMMETER. Es un método potente y flexible para construirPaneles de control locales, automatizaciones inteligentes o sistemas de optimización energética basados en IA.


📘 Referencias


¿Te gustaría que te haga una?Versión de la publicación del blog con formato Markdown(listo para publicar en el blog oficial de IAMMETER, con resaltado de sintaxis y enlaces de imágenes incrustados intactos)?

Cima