Zpracovávám data z MQTT…

V minulém článku jsem nastínil postup sběru dat ze snímačů (použil jsem tagy BigClown). Data hezky tečou do MQTT a já je mohu sledovat, ale to se mi moc nehodí. Já totiž v první řadě potřebuju sledovat, jak mi klesá napětí na baterii.

  • Možnost číslo 1 – pustit si nějakého démona, co bude logovat napětí a někam mi to zapisovat. Moc se mi nelíbila. Je to moc práce a málo užitku. Určitě by se našla nějaká
  • Možnost číslo 2 – tedy taková, kde použiju už něco existujícího.

Fajn, tak co se nabízí? Třeba Thingspeak. Má to jednoduché API, kam lze posílat data, a jednoduchý dashboard, kde lze vytvořit grafy pro různé hodnoty. Nevýhoda: nemá to MQTT. Takže je potřeba něco mezi.

Naprostou náhodou jsem objevil věc, co se jmenuje Node-RED. Běží to na Node.js, a je to takový vizuální editor toku dat. Doleva si dáte MQTT, pak to nějak zpracujete, pak to pošlete ven. Jednoduché jak trojky vidle.

bc0

Hezké je, že na vstupu může být spousta různých věcí, od MQTT přes HTTP a TCP až po sériový port. Na výstupu totéž. Nebo soubor. Nebo ještě něco jiného. Třeba Twitter. Nebo něco vlastního – kupříkladu ten Thingspeak.

Já čtu data ze tří MQTT topiců, preparuju si z nich pouze číslo, pak tři zprávy (teplota, osvětlení a baterie) skládám do jedné, v ní dělám nějaké drobné úpravy a volám API Thingspeak. Všechno bylo velmi intuitivní a nastavené během půl hodiny.

Navíc se to všechno dá programovat v JavaScriptu a můžete si udělat vlastní konektory a funkce.

Složité komponenty si můžete rozdělit do „subflows“ – já mám takhle celé zařízení zapouzdřené do subflow „ESPclown“. V něm se skládají data ze tří senzorů:

bc2

A každý senzor se skládá z konektoru na MQTT a zpracování payloadu:

bc3

A výsledek? Hezký:

 

Líbil se vám článek? Podpořte autora na Patreonu
banner