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 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.

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).

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
- 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).
- Visualización de datos localesAlmacenar datos MQTT entrantes enInfluxDBy visualizarlo conPaneles de control de Grafana.
- 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
- Funciones de comunicación y firmware de IAMMETER
- Documentación de la API de IAMMETER Cloud y MQTT
- Desarrolla tu propio Dashboard de Monitoreo de Energía usando NodeJS
¿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)?
