Přeskočit na hlavní obsah

MQTT Storage

Pro ukládání dat z našich senzorů rádi používáme InfluxDB – databázi pro časové řady. Jako most mezi MQTT a InfluxDB jsme vytvořili nástroj mqtt2influxdb. Ten se připojí k InfluxDB a MQTT brokeru a podle uživatelem definované konfigurace se přihlásí k MQTT tématům a ukládá data ze zpráv.

caution

Aby bylo možné získat Gateway Service, musíte mít na svém zařízení nainstalovaný Python a pip a mít je v systémové PATH

Nastavení MQTT do InfluxDb

Pro instalaci mqtt2influxdb stačí zadat do příkazové řádky následující příkaz

sudo pip3 install --upgrade mqtt2influxdb

Dále bude potřeba vytvořit adresář, do kterého budete ukládat konfigurační soubory. To provedete příkazem:

sudo mkdir /etc/hardwario

Pro vytvoření konfiguračního souboru můžete použít jakýkoli textový editor, v tomto návodu použijeme nano:

sudo nano /etc/hardwario/mqtt2influxdb.yml
tip

V editoru nano uložíte změny stisknutím kombinace klávesy Ctrl + O a editor ukončíte stisknutím Ctrl + X.

Ukázka konfiguračního souboru

mqtt:
host: 127.0.0.1
port: 1883

influxdb:
host: 127.0.0.1
port: 8086
database: node

points:
- measurement: temperature
topic: node/+/thermometer/+/temperature
fields:
value: $.payload
tags:
id: $.topic[1]
channel: $.topic[3]

- measurement: relative-humidity
topic: node/+/hygrometer/+/relative-humidity
fields:
value: $.payload
tags:
id: $.topic[1]
channel: $.topic[3]

- measurement: illuminance
topic: node/+/lux-meter/0:0/illuminance
fields:
value: $.payload
tags:
id: $.topic[1]

- measurement: pressure
topic: node/+/barometer/0:0/pressure
fields:
value: $.payload
tags:
id: $.topic[1]

- measurement: co2
topic: node/+/co2-meter/-/concentration
fields:
value: $.payload
tags:
id: $.topic[1]

- measurement: voltage
topic: node/+/battery/+/voltage
fields:
value: $.payload
tags:
id: $.topic[1]

- measurement: button
topic: node/+/push-button/+/event-count
fields:
value: $.payload
tags:
id: $.topic[1]
channel: $.topic[3]

- measurement: tvoc
topic: node/+/voc-lp-sensor/0:0/tvoc
fields:
value: $.payload
tags:
id: $.topic[1]

- measurement: tvoc
topic: node/+/voc-sensor/0:0/tvoc
fields:
value: $.payload
tags:
id: $.topic[1]

note

V sekci tags můžete použít vlastní identifikátory, např.: tags: room: bedroom

Chcete-li otestovat, zda váš konfigurační soubor funguje, můžete vložit příkaz:

mqtt2influxdb -c /etc/hardwario/mqtt2influxdb.yml --test

Pokud je vše v pořádku, můžete MQTT to InfluxDB spustit také jako službu, takže poběží na pozadí i po restartu

pm2 start `which python3` --name "mqtt2influxdb" -- `which mqtt2influxdb` -c /etc/hardwario/mqtt2influxdb.yml
pm2 save