Krok 1: Telegraf čte přes Modbus TCP
Telegraf má vstupní plugin Modbus. Pro každý měřič vytvoříte blok s jeho adresou zařízení. Příklad čte odběr a dodávku elektroměru s adresou zařízení 9:
[[inputs.modbus]]
name = "m_center"
controller = "tcp://192.168.1.50:502"
slave_id = 9
timeout = "5s"
interval = "15m"
holding_registers = [
{ name = "odber_celkem", byte_order = "ABCD", data_type = "FLOAT32-IEEE", scale = 1.0, address = [999, 1000] },
{ name = "dodavka_celkem", byte_order = "ABCD", data_type = "FLOAT32-IEEE", scale = 1.0, address = [1149, 1150] },
]
[inputs.modbus.tags]
elektromer = "byt_1"
Telegraf počítá adresy od 0, příručka od 1: z registru 1000 se stane 999. Pořadí bajtů ABCD odpovídá big endian s vyšším slovem napřed, jak jej dodává M-Center. Zápis voleb se mezi verzemi Telegrafu mění; platí dokumentace pluginu vaší verze.
Alternativa: Telegraf čte přes MQTT
S licencí MQTT odebírá Telegraf témata M-Center pomocí pluginu inputs.mqtt_consumer:
<prefix>/emu/mcenter/<MAC>/meterreading/+/byobis/#
Jak Telegraf zprávy zpracuje, určíte parametrem data_format. Proto si nejprve prohlédněte obsah zpráv klientem MQTT.
Krok 2: InfluxDB a Grafana
- V Telegrafu nastavte výstup do InfluxDB (
outputs.influxdb_v2s URL, tokenem, organizací a bucketem). - V Grafaně přidejte InfluxDB jako zdroj dat.
- Vytvořte panel a dotazujte naměřenou hodnotu. Pro spotřebu za den nebo měsíc počítejte rozdíl stavu měřiče v časovém okně.
Stavy měřičů jen rostou. Sloupcový graf s denní spotřebou proto obvykle řekne víc než křivka stavu měřiče.