Désolé, votre navigateur ne prend pas en charge JavaScript !
Se connecter

Abonnement aux données énergétiques en temps réel via le courtier MQTT (Édition 2025)

1. Introduction

IAMMETER-Cloud est une plateforme professionnelle de surveillance énergétique et de gestion photovoltaïque. En plus de ses puissantes fonctions de visualisation et de rapport, IAMMETER-Cloud fournit également des interfaces de données flexibles. Cela permet aux utilisateurs ayant des besoins personnalisés d'utiliser IAMMETER-Cloud comme un intergiciel de données, en récupérant les données par programmation via du code.

Il existe deux façons principales d'obtenir des données depuis IAMMETER-Cloud à l'aide de code :

  • S'abonner aux données via le courtier MQTT d'IAMMETER (l'objet de cet article)
  • Appeler les API officielles d'IAMMETER-Cloud

Ce guide explique comment s'abonner aux sujets MQTT d'IAMMETER, interpréter les structures de données (pour les compteurs monophasés et triphasés) et implémenter des exemples fonctionnels en Python et Node.js.


2. Présentation du courtier MQTT IAMMETER

Remarque : Le courtier MQTT IAMMETER a été initialement conçu comme un service de développement et de test pour plus de commodité et ne fait pas partie de l'offre standard d'IAMMETER-Cloud (bien qu'il soit stable et fonctionne depuis plus de 5 ans). Pour les déploiements de production ou à grande échelle, nous recommandons de configurer votre propre courtier MQTT.

Configuration du courtier MQTT IAMMETER

Paramètre Description
Adresse du courtier mqtt.iammeter.com
Port 1883 (non-SSL)
Nom d'utilisateur / Mot de passe Doit être créé dans IAMMETER Cloud → Paramètres → Paramètres MQTTCapture d'écran des paramètres MQTT
Format du sujet device/{SN}/realtime
Format de la charge utile JSON

⚠️ Important : N'utilisez pas vos identifiants de connexion IAMMETER Cloud ici. Vous devez créer un nom d'utilisateur et un mot de passe MQTT dédiés dans le tableau de bord IAMMETER Cloud.

Configurer le compteur IAMMETER pour utiliser le mode MQTT

Réglez votre compteur IAMMETER sur le mode de téléchargement MQTT (voir le guide de configuration du firmware) et saisissez les paramètres du courtier MQTT IAMMETER.

Régler le compteur en mode de téléchargement MQTT et configurer les paramètres du courtier MQTT IAMMETER


3. Format du sujet MQTT

Chaque appareil IAMMETER publie ses données en temps réel sous le sujet suivant :

device/{SN}/realtime

{SN} est le numéro de série de votre compteur. Par exemple, si le SN de votre appareil est DA2BED94, le sujet sera :

device/DA2BED94/realtime

Vous pouvez vous abonner à ce sujet pour recevoir en continu des données de mesure en temps réel.


4. Format des données

4.1 Format des données du compteur monophasé

Un compteur IAMMETER monophasé publie les données en temps réel au format JSON comme suit :

{
  "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]
}
Indice Champ Description Unité
1 Voltage Tension de ligne actuelle V
2 Current Courant de ligne actuel A
3 Power Puissance active W
4 Forward Energy Énergie importée (consommée) kWh
5 Reverse Energy Énergie exportée (injection solaire) kWh
6 Frequency Fréquence du réseau Hz
7 Power Factor Facteur de puissance actuel PF

🟢 Remarques :

  • Puissance positive → consommation d'énergie
  • Puissance négative → exportation d'énergie (par exemple, injection solaire)

4.2 Format des données du compteur triphasé (WEM3080T / WEM3046T / WEM3050T)

Les compteurs IAMMETER triphasés publient les données dans un format JSON similaire, avec trois tableaux correspondant à chaque phase.

{
  "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 est une liste contenant trois tableaux, chacun correspondant à la phase A, B et C. Chaque tableau interne a la même structure que le tableau Data monophasé.

Indice Champ Description Unité
1 Voltage Tension de phase V
2 Current Courant de phase A
3 Power Puissance active W
4 Forward Energy Énergie importée kWh
5 Reverse Energy Énergie exportée kWh
6 Frequency Fréquence du réseau Hz
7 Power Factor Facteur de puissance PF

En plus des données de puissance active, lorsque la mesure de puissance réactive est activée, vous verrez également la section EA comme suit :

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

Cette section affiche les données de mesure réactive, qui n'apparaissent que lorsque la fonction de test réactif est activée (voir la capture d'écran ci-dessous).

Activer la mesure réactive dans le compteur

Chaque tableau représente les trois phases (A, B, C), affichant la puissance réactive (Q en kVar) et l'énergie réactive (kVARh).

Q (kVar) : Puissance réactive — positive = inductive, négative = capacitive kVARh : Énergie réactive — chaque phase comprend deux valeurs kVARh : une pour la charge inductive et une pour la charge capacitive.


5. Exemple Python : abonnement aux données en temps réel

Voici un script Python fonctionnel utilisant la bibliothèque paho-mqtt.

import paho.mqtt.client as mqtt
import json

# Configuration du courtier MQTT
MQTT_BROKER = "mqtt.iammeter.com"
MQTT_PORT = 1883
MQTT_USER = "your_mqtt_username"  # Défini dans IAMMETER Cloud → Paramètres MQTT
MQTT_PASS = "your_mqtt_password"
TOPIC = "device/DA2BED94/realtime"  # Remplacez par le SN de votre propre appareil

# Callback lors de la connexion au courtier
def on_connect(client, userdata, flags, rc):
    if rc == 0:
        print("✅ Connecté au courtier MQTT IAMMETER avec succès")
        client.subscribe(TOPIC)
        print(f"📡 Abonné au sujet : {TOPIC}")
    else:
        print(f"❌ Échec de la connexion avec le code {rc}")

# Callback lors de la réception d'un message
def on_message(client, userdata, msg):
    payload = json.loads(msg.payload.decode())
    print("📊 Données en temps réel reçues :")
    print(json.dumps(payload, indent=2, ensure_ascii=False))

# Initialisation du client MQTT
client = mqtt.Client()
client.username_pw_set(MQTT_USER, MQTT_PASS)
client.on_connect = on_connect
client.on_message = on_message

# Connexion au courtier et démarrage de la boucle
client.connect(MQTT_BROKER, MQTT_PORT, 60)
client.loop_forever()

6. Exemple Node.js

Nous vous recommandons d'essayer ce projet open source intéressant : Il utilise Node.js pour s'abonner aux données en temps réel du courtier MQTT IAMMETER et les visualiser dans une interface Web, créant ainsi un tableau de bord en temps réel très cool.

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


7. Cas d'utilisation pratiques

  1. Automatisation de la maison intelligente Intégrez les données de puissance en temps réel dans Home Assistant ou Node-RED pour déclencher des actions d'automatisation (par exemple, démarrer un chauffage lorsque la production solaire est élevée).
  2. Visualisation locale des données Stockez les données MQTT entrantes dans InfluxDB et visualisez-les avec des tableaux de bord Grafana.
  3. Cloud privé ou informatique de périphérie Récupérez les données de puissance en temps réel directement via MQTT pour des analyses personnalisées ou une logique de contrôle sans dépendre d'IAMMETER Cloud.

8. Dépannage

Problème Cause possible / Solution
Impossible de se connecter au courtier Vérifiez que votre nom d'utilisateur et mot de passe MQTT sont correctement définis dans IAMMETER Cloud.
Aucune donnée reçue Vérifiez le format de votre sujet (device/{SN}/realtime) et assurez-vous que le compteur est en ligne.
Retard des données Vérifiez la stabilité de votre réseau ou la force du signal Wi-Fi.
Plusieurs compteurs Vous pouvez vous abonner à plusieurs sujets simultanément (un par SN).

9. Conclusion

En utilisant le courtier MQTT IAMMETER, vous pouvez facilement accéder aux flux de données énergétiques en temps réel de vos appareils IAMMETER. C'est une méthode puissante et flexible pour construire des tableaux de bord locaux, des automatisations intelligentes ou des systèmes d'optimisation énergétique basés sur l'IA.


📘 Références


Souhaitez-vous que je crée une version d'article de blog au format Markdown (prête à être publiée sur le blog officiel d'IAMMETER, avec la coloration syntaxique et les liens d'images intégrés intacts) ?

Haut