Suscripción a Datos de Energía en Tiempo Real a través del Broker MQTT de IAMMETER (Edición 2025)
1. Introducción
IAMMETER-Cloud es una plataforma profesional de monitoreo energético y gestión fotovoltaica. Además de sus potentes funciones de visualización y generación de informes, IAMMETER-Cloud también proporciona interfaces de datos flexibles. Esto permite a los usuarios con requisitos personalizados utilizar IAMMETER-Cloud como un middleware de datos, recuperando datos mediante programación a través de código.
Hay dos formas principales de obtener datos de IAMMETER-Cloud mediante código:
- Suscribirse a datos a través del Broker MQTT de IAMMETER (el tema central de este artículo)
- Llamar a las APIs oficiales de IAMMETER-Cloud
Esta guía explica cómo suscribirse a los temas MQTT de IAMMETER, interpretar las estructuras de datos (tanto para medidores monofásicos como trifásicos) e implementar ejemplos prácticos en Python y Node.js.
2. Descripción General del Broker MQTT de IAMMETER
Nota: El Broker MQTT de IAMMETER fue diseñado originalmente como un servicio de desarrollo y pruebas para mayor comodidad y no forma parte de la oferta estándar de IAMMETER-Cloud (aunque ha sido estable y ha estado funcionando durante más de 5 años). Para implementaciones en producción o a gran escala, recomendamos configurar su propio broker MQTT.
Configuración del Broker MQTT de IAMMETER
| Parámetro | Descripción |
|---|---|
| Dirección del broker | mqtt.iammeter.com |
| Puerto | 1883 (sin SSL) |
| Usuario / Contraseña | Deben crearse en IAMMETER Cloud → Configuración → Configuración MQTT ![]() |
| Formato del tema | device/{SN}/realtime |
| Formato del payload | JSON |
⚠️ Importante: No utilice sus credenciales de inicio de sesión de IAMMETER Cloud aquí. Debe crear un nombre de usuario y contraseña MQTT dedicados en el panel de IAMMETER Cloud.
Configurar el Medidor IAMMETER para Usar el Modo MQTT
Configure su medidor IAMMETER en modo de carga MQTT (consulte la guía de configuración de firmware) e ingrese los parámetros del Broker MQTT de IAMMETER.

3. Formato del Tema MQTT
Cada dispositivo IAMMETER publica sus datos en tiempo real bajo el siguiente tema:
device/{SN}/realtime
Donde {SN} es el número de serie de su medidor.
Por ejemplo, si el SN de su dispositivo es DA2BED94, el tema será:
device/DA2BED94/realtime
Puede suscribirse 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:
{
"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]
}
| Índice | Campo | Descripción | Unidad |
|---|---|---|---|
| 1 | Voltage | Tensión de línea actual | V |
| 2 | Current | Corriente de línea actual | A |
| 3 | Power | Potencia activa | W |
| 4 | Forward Energy | Energía importada (consumida) | kWh |
| 5 | Reverse Energy | Energía exportada (inyectada, solar) | kWh |
| 6 | Frequency | Frecuencia de red | Hz |
| 7 | Power Factor | Factor de potencia actual | PF |
🟢 Notas:
- Potencia positiva → consumo de energía
- Potencia negativa → exportación de energía (ej., inyección 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.
{
"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 es una lista que contiene tres matrices, cada una correspondiente a la fase A, B y C.
Cada matriz interna tiene la misma estructura que la matriz Data del monofásico.
| Índice | Campo | Descripción | Unidad |
|---|---|---|---|
| 1 | Voltage | Tensión de fase | V |
| 2 | Current | Corriente de fase | A |
| 3 | Power | Potencia activa | W |
| 4 | Forward Energy | Energía importada | kWh |
| 5 | Reverse Energy | Energía exportada | kWh |
| 6 | Frequency | Frecuencia de red | Hz |
| 7 | Power Factor | Factor de potencia de fase | PF |
Además de los datos de potencia activa, cuando la medición de potencia reactiva está habilitada, también verá la sección EA de la siguiente manera:
"EA": {
"Reactive": [
[-111.0, 0.000, 176.750],
[-113.0, 0.000, 179.110],
[-114.0, 36.120, 144.410]
]
}
Esta sección muestra los datos de medición reactiva, que aparecen solo cuando la función de prueba reactiva está habilitada (consulte la captura de pantalla a continuación).

Cada matriz representa las tres fases (A, B, C), mostrando la potencia reactiva (Q en kVar) y la energía reactiva (kVARh).
Q (kVar): Potencia reactiva — positiva = inductiva, negativa = capacitiva kVARh: Energía reactiva — cada fase incluye dos valores de kVARh: uno para carga inductiva y otro para carga capacitiva.
5. Ejemplo en Python: Suscripción a Datos en Tiempo Real
A continuación se muestra un script funcional en Python que utiliza la biblioteca paho-mqtt.
import paho.mqtt.client as mqtt
import json
# Configuración del Broker MQTT
MQTT_BROKER = "mqtt.iammeter.com"
MQTT_PORT = 1883
MQTT_USER = "your_mqtt_username" # Configurado en IAMMETER Cloud → Configuración MQTT
MQTT_PASS = "your_mqtt_password"
TOPIC = "device/DA2BED94/realtime" # Reemplácelo con el SN de su dispositivo
# Callback cuando se conecta al broker
def on_connect(client, userdata, flags, rc):
if rc == 0:
print("✅ Conectado al Broker MQTT de IAMMETER exitosamente")
client.subscribe(TOPIC)
print(f"📡 Suscrito al tema: {TOPIC}")
else:
print(f"❌ Conexión fallida con código {rc}")
# Callback cuando se recibe un mensaje
def on_message(client, userdata, msg):
payload = json.loads(msg.payload.decode())
print("📊 Datos en tiempo real recibidos:")
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
# Conectarse al broker e iniciar el bucle
client.connect(MQTT_BROKER, MQTT_PORT, 60)
client.loop_forever()
6. Ejemplo en Node.js
Recomendamos probar este interesante proyecto de código abierto: Utiliza Node.js para suscribirse a datos en tiempo real del broker MQTT de IAMMETER y visualizarlos en una interfaz web, creando un atractivo panel de control en tiempo real.
🔗 https://github.com/lewei50/iammeterJS
7. Casos de Uso Prácticos
- Automatización del Hogar Inteligente Integre datos de potencia en tiempo real en Home Assistant o Node-RED para activar acciones automatizadas (por ejemplo, encender un calentador cuando la generación solar sea alta).
- Visualización Local de Datos Almacene los datos MQTT entrantes en InfluxDB y visualícelos con paneles de Grafana.
- Nube Privada o Computación en el Borde Recupere datos de potencia 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
| Problema | Posible Causa / Solución |
|---|---|
| No se puede conectar al broker | Verifique que su nombre de usuario y contraseña MQTT estén configurados correctamente en IAMMETER Cloud. |
| No se reciben datos | Verifique el formato de su tema (device/{SN}/realtime) y asegúrese de que el medidor esté en línea. |
| Retraso en los datos | Verifique la estabilidad de su red o la intensidad de la señal Wi-Fi. |
| Múltiples medidores | Puede suscribirse a varios temas simultáneamente (uno por SN). |
9. Conclusión
Usando el Broker MQTT de IAMMETER, puede acceder fácilmente a flujos de datos de energía en tiempo real desde sus dispositivos IAMMETER. Es un método potente y flexible para construir paneles de control locales, automatizaciones inteligentes o sistemas de optimización energética basados en IA.
📘 Referencias
- Características del Firmware y Comunicación de IAMMETER
- Documentación de la API de IAMMETER Cloud y MQTT
- Desarrolle su propio panel de monitoreo energético usando NodeJS
¿Le gustaría que prepare una versión de publicación de blog en formato Markdown (lista para publicar en el blog oficial de IAMMETER, con resaltado de sintaxis y enlaces de imágenes incrustados intactos)?
