Domácí monitorovací stanice – 2 – Základní pojmy a jak to funguje

0

Tento seriál pojednává o propojení čidel sledujících hodnoty teploty, vlhkosti a tlaku ( případně i jiných veličin) v bytě, dále monitorování svých serverů, ať už samotného NASu nebo Raspberry Pi, kdy o to vše se stará NAS Synology, který odečítá hodnoty, ukládá je do databáze InfluxDB a vizualizuje je v podobě grafů v Grafaně na internetu nebo intranetu.

Řešení bez cizího cloudu, s plnou kontrolou nad celým systémem a domácí síťové úložiště tak získá další uplatnění ve vaší chytré domácnosti.

Obsah  seriálu:

  1. Úvod
  2. Základní pojmy a jak to funguje
  3. Programování ESP8266 – první čidlo
  4. Programování NodeMCU – druhé čidlo
  5. Raspberry Pi a Telegraf
  6. Nastavení NAS
  7. Výstupy na Grafanu
  8. Závěr

Jak už jsem dříve jednoduše popsal, propojení celého systému je MQTT → Node-Red → InfluxDB → Grafana.

MQTT

MQTT neboli Message Queuing Telemetry Transport je otevřený a jednoduchý protokol určený k předávání zpráv jednotlivých klientů prostřednictvím určitého centrálního bodu tzv. brokera , což je u mě MQTT server spuštěný na NASu. Každá zpráva je složena z tématu ( topic ) a obsahu ( payload ) a zařízení buď publikuje v daném tématu (publish) –  čili posílá data brokeru, který je ukládá a přeposílá na další zařízení, nebo je zařízení přihlášeno k odběru tématu (subscribe), a broker pak všechny zprávy s daným tématem posílá do tohoto zařízení. Jednoduše funkcí MQTT serveru je doručovat zprávy od publisherů k subscriberům.

Témata popisují kategorii zpráv. Používají stromovou strukturu oddělenou znakem “/” .  Příklad mých témat :

/bytData/obyvak/esp07/vlhkost
/bytData/obyvak/esp07/teplota
/bytData/obyvak/esp07/tlak
/bytData/obyvak/esp07/vcc

 

NODE-RED

Je to programovací nástroj jehož odlehčený runtime je postavený na technologii Node.js. Vzájemně propojuje jednotlivá hardwarová zařízení, API nebo online služby. Má editor přes  internetový prohlížeč, který usnadňuje nastavení jednotlivých toků dat na jedno kliknutí. Takto vytvořený tok dat je uložen ve formátu JSON, který se dá snadno importovat a exportovat a třeba sdílet s ostatními.

Schéma celého toku dat je velice jednoduché  :

Schéma toku dat v NODE-RED
Převod MQTT zprávy do formatu pro InfluxDB
Přihlášení k odběru topicu /bytData
Zápis do InfluxDB

 

 

 

 

 

(začerněná položka je IP adresa vašeho NASu )

Kód zápisu do databáze InfluxDB :

 

 

Jako centrální broker je Mqtt server spuštěný na NASu, klienti jsou jednotlivé ESP s čidly, které posílají informace brokerovi na NAS. Pomocí NODE-RED spuštěného na NASu jsem přihlášen k odběru zpráv s tématem /bytData/#  ( zástupný znak # zde naznačuje, že odebírám všechny témata za bytData ). Následně NODE-RED převádí tyto data na určený formát a odesílá do InfluxDB databáze, ze které to celé čte Grafana a ta zobrazí graf . Jak prosté
.

Samozřejmě je to jen náčrt řešení, které lze pozmětit. Například MQTT broker může běžet na jiném zařízení, třeba na Raspberry Pi, které tak NASu odlehčí. Nicméně já jednotlivá řešení mám spuštěna na NASu jako kontejnery v Dockeru, takže tuto skládačku můžu jednoduše modifikovat aniž bych zasahoval do celého systému. Však se podívejte sami ( v Ubuntu kontejneru běží MQTT a Node-Red, Grafana i InfluxDB má kontejner svůj a o Telegrafu až jindy ).

 

Spuštěné jednotlivé kontejnery v NASu.

 

Máte k tomu co říct. Napište