Lo sentimos, tu navegador no admite JavaScript.
Iniciar sesión

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 Captura de pantalla de 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.

Configurar el medidor en modo de carga MQTT y configurar 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).

Habilitar la medición reactiva en el medidor

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

  1. 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).
  2. Visualización Local de Datos Almacene los datos MQTT entrantes en InfluxDB y visualícelos con paneles de Grafana.
  3. 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


¿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)?

Arriba