Trinn 1: Telegraf leser via Modbus TCP
Telegraf har et Modbus-inputplugin. For hver måler oppretter du en blokk med enhetsadressen. Eksempelet leser forbruk og innmating for en strømmåler med enhetsadresse 9:
[[inputs.modbus]]
name = "m_center"
controller = "tcp://192.168.1.50:502"
slave_id = 9
timeout = "5s"
interval = "15m"
holding_registers = [
{ name = "forbruk_totalt", byte_order = "ABCD", data_type = "FLOAT32-IEEE", scale = 1.0, address = [999, 1000] },
{ name = "innmating_totalt", byte_order = "ABCD", data_type = "FLOAT32-IEEE", scale = 1.0, address = [1149, 1150] },
]
[inputs.modbus.tags]
maaler = "leilighet_1"
Telegraf teller adresser fra 0, bruksanvisningen fra 1: register 1000 blir til 999. Byterekkefølgen ABCD tilsvarer big endian med det høye ordet først, slik M-Center leverer. Skrivemåten for alternativene endres mellom Telegraf-versjoner; plugin-dokumentasjonen for din versjon gjelder.
Alternativ: Telegraf leser via MQTT
Med MQTT-lisensen abonnerer Telegraf på M-Centers topics med pluginet inputs.mqtt_consumer:
<prefiks>/emu/mcenter/<MAC>/meterreading/+/byobis/#
Hvordan Telegraf tolker meldingene, bestemmer du med data_format. Se derfor først på meldingsinnholdet med en MQTT-klient.
Trinn 2: InfluxDB og Grafana
- Still inn utgangen i Telegraf til InfluxDB (
outputs.influxdb_v2med URL, token, organisasjon og bucket). - Legg til InfluxDB som datakilde i Grafana.
- Opprett et panel og spør etter måleverdien. For forbruk per dag eller måned beregner du differansen i målerstand over tidsvinduet.
Målerstander stiger bare. Et søylediagram med daglig forbruk sier derfor som regel mer enn kurven for målerstanden.