Steg 1: Telegraf läser via Modbus TCP
Telegraf har ett Modbus-inputplugin. För varje mätare skapar du ett block med dess enhetsadress. Exemplet läser förbrukning och inmatning för en elmätare med enhetsadress 9:
[[inputs.modbus]]
name = "m_center"
controller = "tcp://192.168.1.50:502"
slave_id = 9
timeout = "5s"
interval = "15m"
holding_registers = [
{ name = "forbrukning_totalt", byte_order = "ABCD", data_type = "FLOAT32-IEEE", scale = 1.0, address = [999, 1000] },
{ name = "inmatning_totalt", byte_order = "ABCD", data_type = "FLOAT32-IEEE", scale = 1.0, address = [1149, 1150] },
]
[inputs.modbus.tags]
matare = "lagenhet_1"
Telegraf räknar adresser från 0, manualen från 1: register 1000 blir 999. Byteordningen ABCD motsvarar big endian med det högre ordet först, som M-Center levererar. Skrivsättet för alternativen ändras mellan Telegraf-versioner; plugindokumentationen för din version gäller.
Alternativ: Telegraf läser via MQTT
Med MQTT-licensen prenumererar Telegraf på M-Centers topics med pluginet inputs.mqtt_consumer:
<prefix>/emu/mcenter/<MAC>/meterreading/+/byobis/#
Hur Telegraf tolkar meddelandena bestämmer du med data_format. Titta därför först på meddelandeinnehållet med en MQTT-klient.
Steg 2: InfluxDB och Grafana
- Ställ in utgången i Telegraf till InfluxDB (
outputs.influxdb_v2med URL, token, organisation och bucket). - Lägg till InfluxDB som datakälla i Grafana.
- Skapa en panel och fråga efter mätvärdet. För förbrukning per dag eller månad beräknar du skillnaden i mätarställning över tidsfönstret.
Mätarställningar stiger bara. Ett stapeldiagram med daglig förbrukning säger därför oftast mer än kurvan för mätarställningen.