Étape 1 : Telegraf lit via Modbus TCP
Telegraf dispose d’un plugin d’entrée Modbus. Pour chaque compteur, vous créez un bloc avec son adresse d’appareil. L’exemple lit le soutirage et l’injection d’un compteur d’électricité à l’adresse d’appareil 9 :
[[inputs.modbus]]
name = "m_center"
controller = "tcp://192.168.1.50:502"
slave_id = 9
timeout = "5s"
interval = "15m"
holding_registers = [
{ name = "soutirage_total", byte_order = "ABCD", data_type = "FLOAT32-IEEE", scale = 1.0, address = [999, 1000] },
{ name = "injection_total", byte_order = "ABCD", data_type = "FLOAT32-IEEE", scale = 1.0, address = [1149, 1150] },
]
[inputs.modbus.tags]
compteur = "logement_1"
Telegraf compte les adresses à partir de 0, le manuel à partir de 1 : le registre 1000 devient 999. L’ordre des octets ABCD correspond au big endian avec le mot de poids fort en premier, comme le fournit le M-Center. L’écriture des options change entre les versions de Telegraf ; la documentation du plugin de votre version fait foi.
Alternative : Telegraf lit via MQTT
Avec la licence MQTT, Telegraf s’abonne aux topics du M-Center avec le plugin inputs.mqtt_consumer :
<préfixe>/emu/mcenter/<MAC>/meterreading/+/byobis/#
La manière dont Telegraf évalue les messages se règle avec data_format. Regardez donc d’abord le contenu des messages avec un client MQTT.
Étape 2 : InfluxDB et Grafana
- Dans Telegraf, régler la sortie sur InfluxDB (
outputs.influxdb_v2avec URL, token, organisation et bucket). - Dans Grafana, ajouter InfluxDB comme source de données.
- Créer un panneau et interroger la mesure. Pour les consommations par jour ou par mois, calculez la différence de l’index sur la fenêtre de temps.
Les index ne font qu’augmenter. Un histogramme de la consommation par jour est donc généralement plus parlant que la courbe de l’index.