Vaihe 1: Telegraf lukee Modbus TCP:llä
Telegrafissa on Modbus-syöteliitännäinen. Jokaiselle mittarille luodaan lohko sen laiteosoitteella. Esimerkki lukee laiteosoitteen 9 sähkömittarin kulutuksen ja syötön:
[[inputs.modbus]]
name = "m_center"
controller = "tcp://192.168.1.50:502"
slave_id = 9
timeout = "5s"
interval = "15m"
holding_registers = [
{ name = "kulutus_yhteensa", byte_order = "ABCD", data_type = "FLOAT32-IEEE", scale = 1.0, address = [999, 1000] },
{ name = "syotto_yhteensa", byte_order = "ABCD", data_type = "FLOAT32-IEEE", scale = 1.0, address = [1149, 1150] },
]
[inputs.modbus.tags]
mittari = "asunto_1"
Telegraf laskee osoitteet nollasta, käyttöohje yhdestä: rekisteristä 1000 tulee 999. Tavujärjestys ABCD vastaa big endiania ylempi sana ensin, kuten M-Center toimittaa. Asetusten kirjoitusasu vaihtelee Telegrafin versioiden välillä; oman versiosi liitännäisdokumentaatio ratkaisee.
Vaihtoehto: Telegraf lukee MQTT:llä
MQTT-lisenssillä Telegraf tilaa M-Centerin topicit liitännäisellä inputs.mqtt_consumer:
<etuliite>/emu/mcenter/<MAC>/meterreading/+/byobis/#
Sen, miten Telegraf tulkitsee viestit, määrität parametrilla data_format. Tarkastele siksi ensin viestien sisältöä MQTT-asiakkaalla.
Vaihe 2: InfluxDB ja Grafana
- Aseta Telegrafin lähdöksi InfluxDB (
outputs.influxdb_v2, URL, token, organisaatio ja bucket). - Lisää InfluxDB Grafanaan tietolähteeksi.
- Luo paneeli ja kysy mittausarvoa. Päivä- tai kuukausikulutusta varten lasketaan mittarilukeman erotus aikaikkunan yli.
Mittarilukemat vain kasvavat. Pylväskaavio päiväkulutuksesta kertoo siksi yleensä enemmän kuin mittarilukeman käyrä.