{"id":99,"date":"2020-11-11T22:35:05","date_gmt":"2020-11-11T21:35:05","guid":{"rendered":"https:\/\/www.berlinger.cz\/?p=99"},"modified":"2020-11-11T22:36:51","modified_gmt":"2020-11-11T21:36:51","slug":"raspberry-pi-server-pro-senzory","status":"publish","type":"post","link":"https:\/\/www.berlinger.cz\/blog\/raspberry-pi-server-pro-senzory\/","title":{"rendered":"Raspberry Pi &#8211; server pro senzory"},"content":{"rendered":"\n<p><a href=\"https:\/\/www.berlinger.cz\/blog\/uvod-do-mereni-energii\/\" data-type=\"URL\" data-id=\"https:\/\/www.berlinger.cz\/blog\/uvod-do-mereni-energii\/\" target=\"_blank\" rel=\"noreferrer noopener\">V minul\u00e9m \u010dl\u00e1nku jsme si dali takov\u00fd r\u00e1mcov\u00fd \u00favod<\/a>. Dneska se pod\u00edv\u00e1me na server, kter\u00fd bude slou\u017eit ke zpracov\u00e1n\u00ed dat.<\/p>\n\n\n\n<p>Um\u011bt data p\u0159e\u010d\u00edst je jedna v\u011bc, ale je pot\u0159eba, aby se v\u00e1m data n\u011bkde sb\u00edrala, abyste je mohli vizualizovat a tak d\u00e1le. Teoreticky na to m\u016f\u017eete pou\u017e\u00edt st\u00e1vaj\u00edc\u00ed po\u010d\u00edta\u010d nebo n\u011bjakou cloudovou slu\u017ebu. Ale nakonec mi p\u0159ijde nejjednodu\u0161\u0161\u00ed rozb\u011bhnout si vlastn\u00ed server pomoc\u00ed mal\u00e9ho po\u010d\u00edta\u010de <a href=\"https:\/\/www.raspberrypi.org\/\" data-type=\"URL\" data-id=\"https:\/\/www.raspberrypi.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">Raspberry Pi<\/a>, kter\u00fd m\u016f\u017ee b\u011b\u017eet 24\/7 na lok\u00e1ln\u00ed s\u00edti, je to pom\u011brn\u011b levn\u00e9 a bez\u00fadr\u017ebov\u00e9 \u0159e\u0161en\u00ed, odb\u011br m\u00e1 do 5W. Uk\u00e1\u017eu v\u00e1m p\u00e1r tip\u016f a software, kter\u00fd pou\u017e\u00edv\u00e1m.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"800\" height=\"800\" src=\"https:\/\/www.berlinger.cz\/wp-content\/uploads\/2020\/11\/raspberry-pi-4-8gb.jpg\" alt=\"\" class=\"wp-image-100\" srcset=\"https:\/\/www.berlinger.cz\/blog\/wp-content\/uploads\/2020\/11\/raspberry-pi-4-8gb.jpg 800w, https:\/\/www.berlinger.cz\/blog\/wp-content\/uploads\/2020\/11\/raspberry-pi-4-8gb-300x300.jpg 300w, https:\/\/www.berlinger.cz\/blog\/wp-content\/uploads\/2020\/11\/raspberry-pi-4-8gb-150x150.jpg 150w, https:\/\/www.berlinger.cz\/blog\/wp-content\/uploads\/2020\/11\/raspberry-pi-4-8gb-768x768.jpg 768w, https:\/\/www.berlinger.cz\/blog\/wp-content\/uploads\/2020\/11\/raspberry-pi-4-8gb-270x270.jpg 270w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><figcaption>Raspberry Pi 4<\/figcaption><\/figure>\n\n\n\n<!--more-->\n\n\n\n<h2>Hardware<\/h2>\n\n\n\n<p>Jak u\u017e jsem \u0159\u00edkal, vybral jsem Raspberry Pi 4, proto\u017ee to je prost\u011b nejroz\u0161\u00ed\u0159en\u011bj\u0161\u00ed a nejjednodu\u0161\u0161\u00ed platforma pro toto pou\u017eit\u00ed. Koupil jsem verzi se 4GB RAM, vych\u00e1z\u00ed to na n\u011bjak\u00fdch 1.500 K\u010d. Samoz\u0159ejm\u011b m\u016f\u017eete koupit i jin\u00fd hardware s jin\u00fdm softwarem. T\u0159eba i levn\u011bj\u0161\u00ed, lep\u0161\u00ed. J\u00e1 se sna\u017e\u00edm j\u00edt jednoduchou cestou a kdy\u017e je n\u011bco osv\u011bd\u010den\u00e9 a roz\u0161\u00ed\u0159en\u00e9 a nestoj\u00ed to raketu, tak do toho jdu.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"800\" height=\"800\" src=\"https:\/\/www.berlinger.cz\/wp-content\/uploads\/2020\/11\/flirc-raspberry-pi-4-b-case.jpg\" alt=\"\" class=\"wp-image-101\" srcset=\"https:\/\/www.berlinger.cz\/blog\/wp-content\/uploads\/2020\/11\/flirc-raspberry-pi-4-b-case.jpg 800w, https:\/\/www.berlinger.cz\/blog\/wp-content\/uploads\/2020\/11\/flirc-raspberry-pi-4-b-case-300x300.jpg 300w, https:\/\/www.berlinger.cz\/blog\/wp-content\/uploads\/2020\/11\/flirc-raspberry-pi-4-b-case-150x150.jpg 150w, https:\/\/www.berlinger.cz\/blog\/wp-content\/uploads\/2020\/11\/flirc-raspberry-pi-4-b-case-768x768.jpg 768w, https:\/\/www.berlinger.cz\/blog\/wp-content\/uploads\/2020\/11\/flirc-raspberry-pi-4-b-case-270x270.jpg 270w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><figcaption>Jedna z mnoha krabi\u010dek pro Rapsberry Pi<\/figcaption><\/figure>\n\n\n\n<p>Po\u010d\u00edtejte s t\u00edm, \u017ee k tomu je\u0161t\u011b pot\u0159ebujete krabi\u010dku do kter\u00e9 to vlo\u017e\u00edte, nap\u00e1jec\u00ed adapt\u00e9r a SD kartu. P\u0159\u00edpadn\u011b kabel k monitoru, ale j\u00e1 to k monitoru nep\u0159ipojoval. K tomu p\u0159\u00edslu\u0161enstv\u00ed p\u00e1r tip\u016f.<\/p>\n\n\n\n<ul><li>Krabi\u010dka &#8211; j\u00e1 sem po\u0159\u00eddil tu na obr\u00e1zku, ale m\u016f\u017eete jakoukoli jinou. Tato mimochodem funguje z\u00e1rove\u0148 jako chladi\u010d. P\u0159\u00edpadn\u011b byste m\u011bli chladi\u010d po\u0159\u00eddit extra.<\/li><li>Nap\u00e1jec\u00ed adapt\u00e9r &#8211; kupte rad\u011bji origin\u00e1ln\u00ed a nebo n\u011bjak\u00fd prost\u011b kvalitn\u00ed. \u010cetl jsem o \u010dast\u00fdch probl\u00e9mech s kol\u00edsaj\u00edc\u00edm nap\u011bt\u00ed n\u011bkter\u00fdch adapt\u00e9r\u016f, kter\u00e9 pak Rapsberry Pi t\u011b\u017eko sn\u00e1\u0161\u00ed.<\/li><li>SD Karta &#8211; pot\u0159ebujete microSD kartu, ta na tomto po\u010d\u00edta\u010di funguje v podstat\u011b jako disk. I kdy\u017e se pak daj\u00ed p\u0159ipojit dal\u0161\u00ed periferie p\u0159es USB, tak opera\u010dn\u00ed syst\u00e9m b\u00fdv\u00e1 typicky na SD kart\u011b, i kdy\u017e ani to nemus\u00ed. Do SD karty malinko zainvestujte. Dal jsem tam napoprv\u00e9 n\u011bjakou kartu co jsem na\u0161el doma a bylo to stra\u0161n\u011b pomal\u00fd a nakonec jsem j\u00ed velmi rychle odd\u011blal. Potom jsem po\u0159\u00eddil kartu \u0159ady Samsung EVO Plus (dle rad z internetu) a to je \u00fapln\u011b jin\u00e1 kategorie &#8211; v\u0161e jede rychle a u\u017e mi to b\u011b\u017e\u00ed p\u0159es p\u016fl roku \u00fapln\u011b bez probl\u00e9mu. Pr\u00fd ty karty ale \u010das od \u010dasu stejn\u011b odejdou.<\/li><\/ul>\n\n\n\n<h2>V\u00fdb\u011br opera\u010dn\u00edho syst\u00e9mu<\/h2>\n\n\n\n<p>Do Raspberry pak budete muset nainstalovat n\u011bjak\u00fd opera\u010dn\u00ed software. V\u0161echno jsou to vesm\u011bs n\u011bjak\u00e9 verze Linuxu. Bu\u010f si tam d\u00e1te p\u0159\u00edmo n\u011bjakou linuxovou distribuci, nebo je p\u0159\u00edmo opera\u010dn\u00ed syst\u00e9m <a href=\"https:\/\/www.raspberrypi.org\/downloads\/\" data-type=\"URL\" data-id=\"https:\/\/www.raspberrypi.org\/downloads\/\" target=\"_blank\" rel=\"noreferrer noopener\">Rapsberry Pi OS<\/a>. Pak jsou je\u0161t\u011b syst\u00e9my p\u0159\u00edmo na automatizaci dom\u00e1cnosti, kter\u00e9 v sob\u011b maj\u00ed rovnou i ten opera\u010dn\u00ed syst\u00e9m a trochu v\u00edc laickou instalaci. J\u00e1 sem nejd\u0159\u00edve chv\u00edli zkou\u0161el <a href=\"https:\/\/www.openhab.org\/\" data-type=\"URL\" data-id=\"https:\/\/www.openhab.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">openHAB<\/a>, ale nakonec jsem skon\u010dil u <a href=\"https:\/\/www.home-assistant.io\/\" data-type=\"URL\" data-id=\"https:\/\/www.home-assistant.io\/\" target=\"_blank\" rel=\"noreferrer noopener\">Home Assistant<\/a>. Ale je to v z\u00e1sad\u011b jedno, sta\u010dil by v\u00e1m klidn\u011b \u010dist\u00fd Linux, proto\u017ee v\u0161echny dal\u0161\u00ed n\u00e1stroje co si uk\u00e1\u017eeme tam m\u016f\u017eete \u00fapln\u011b stejn\u011b nainstalovat taky.<\/p>\n\n\n\n<p>Op\u011bt bych volil n\u011bco s \u010d\u00edm se v\u00e1m bude dob\u0159e pracovat a bude k tomu dostupn\u00e1 rozumn\u00e1 podpora.<\/p>\n\n\n\n<h2>Pro\u010d Home Assistant?<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"800\" height=\"535\" src=\"https:\/\/www.berlinger.cz\/wp-content\/uploads\/2020\/11\/Home-Assistant-Figure-0.png\" alt=\"\" class=\"wp-image-103\" srcset=\"https:\/\/www.berlinger.cz\/blog\/wp-content\/uploads\/2020\/11\/Home-Assistant-Figure-0.png 800w, https:\/\/www.berlinger.cz\/blog\/wp-content\/uploads\/2020\/11\/Home-Assistant-Figure-0-300x201.png 300w, https:\/\/www.berlinger.cz\/blog\/wp-content\/uploads\/2020\/11\/Home-Assistant-Figure-0-768x514.png 768w, https:\/\/www.berlinger.cz\/blog\/wp-content\/uploads\/2020\/11\/Home-Assistant-Figure-0-404x270.png 404w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><figcaption>P\u0159\u00edklad \u00favodn\u00edho dashboard Home Assistant. Osobn\u011b ho ale nakonec v\u016fbec nepou\u017e\u00edv\u00e1m &#8211; kouk\u00e1m hlavn\u011b do graf\u016f p\u0159es Grafanu. A taky jsem si tam dal \u010dern\u00fd skin, aby pr\u00e1v\u011b ladil s Grafanou.<\/figcaption><\/figure>\n\n\n\n<p><a href=\"https:\/\/www.home-assistant.io\/\" data-type=\"URL\" data-id=\"https:\/\/www.home-assistant.io\/\" target=\"_blank\" rel=\"noreferrer noopener\">Home Assistant<\/a> m\u00e1 p\u00e1r feature, kter\u00e9 mi p\u0159i\u0161ly fajn. Nam\u00e1tkou vypisuji. M\u016f\u017eete to t\u0159eba vz\u00edt i jako vod\u00edtko co br\u00e1t p\u0159i rozhodov\u00e1n\u00ed o opera\u010dn\u00edm syst\u00e9mu v \u00favahu.<\/p>\n\n\n\n<ul><li>All -in-one open source \u0159e\u0161en\u00ed. Nainstaluju a ne\u0159e\u0161\u00edm extra n\u011bjak\u00fd OS. Pomoc\u00ed plugin\u016f naistaluji nejpou\u017e\u00edvan\u011bj\u0161\u00ed roz\u0161\u00ed\u0159en\u00ed a m\u00e1m hotovo.<\/li><li>Jednoduch\u00e1 spr\u00e1va senzor\u016f a ovlada\u010d\u016f, mo\u017enost roz\u0161\u00ed\u0159en\u00ed o dal\u0161\u00ed periferie, aktivn\u00ed komunita.<\/li><li>Mo\u017enost cloudov\u00e9ho p\u0159\u00edstupu. Je to teda placen\u00e9, 5$ \/ m\u011bs\u00edc. M\u016f\u017eete si samoz\u0159ejm\u011b ud\u011blat n\u011bjakej tunel, VPN apod. a dostanete se na sv\u016fj server zvenku taky. Tohle je ale fajn jednoduch\u00e9 \u0159e\u0161en\u00ed a j\u00e1 ho t\u0159eba aktu\u00e1ln\u011b pou\u017e\u00edv\u00e1m, proto\u017ee se k definitivn\u00edmu vy\u0159e\u0161en\u00ed d\u00e1lkov\u00e9ho p\u0159\u00edstupu teprve chyst\u00e1m.<\/li><li>Mobiln\u00ed aplikace. V kombinaci s cloudem fajn v\u011bc. Chov\u00e1 se \u00fapln\u011b stejn\u011b jako webov\u00e1 verze (ono to nejsp\u00ed\u0161 bude to sam\u00e9). Vhodn\u00e9 by to bylo p\u0159edev\u0161\u00edm na to, kdybyste t\u00edm t\u0159eba cht\u011bli n\u011bco ovl\u00e1dat na d\u00e1lku, proto\u017ee i to je mo\u017en\u00e9. S n\u011bjak\u00fdm takov\u00fdm syst\u00e9mem se z toho st\u00e1v\u00e1 pom\u011brn\u011b siln\u00fd a roz\u0161i\u0159iteln\u00fd n\u00e1stroj.<\/li><li>Jeden z m\u00fdch dal\u0161\u00edch hlavn\u00edch po\u017eadavk\u016f byl nap\u0159\u00edklad i na z\u00e1lohov\u00e1n\u00ed. Co\u017e se nakonec u Home Assistant uk\u00e1zalo jako pom\u011brn\u011b jednoduch\u00e9, proto\u017ee existuje plugin, kter\u00fd v\u00e1m ud\u011bl\u00e1 image a nahraje na Google Drive. Tak\u017ee to m\u00e1m nastaven\u00e9, \u017ee ka\u017ed\u00fd den ve 3 r\u00e1no se mi nahr\u00e1v\u00e1 z\u00e1loha do cloudu. A kdy\u017e p\u0159ijdu o SD kartu (a d\u0159\u00edv nebo pozd\u011bji o ni p\u0159ijdu nebo si n\u011bco rozhasim a budu muset p\u0159einstalovat), tak jen najedu \u010dist\u00fd Home Assistant a do n\u011bj p\u0159es plugin z\u00e1lohu a jsem tam kde jsem byl. Vyzkou\u0161eno, funguje to rychle a v\u00fdborn\u011b.<\/li><\/ul>\n\n\n\n<p>Zkou\u0161el jsem je\u0161t\u011b ten <a rel=\"noreferrer noopener\" href=\"https:\/\/www.openhab.org\/\" data-type=\"URL\" data-id=\"https:\/\/www.openhab.org\/\" target=\"_blank\">openHAB<\/a> a a\u010d se mi ze za\u010d\u00e1tku l\u00edbil v\u00edc, tak jsem pak p\u0159e\u0161el a p\u0159izn\u00e1m se, \u017ee si nepamatuji p\u0159esn\u011b pro\u010d. Mo\u017en\u00e1 to byla pr\u00e1v\u011b ta mobiln\u00ed aplikace, cloud a z\u00e1lohy, ale nev\u00edm.<\/p>\n\n\n\n<p>Jak nainstalovat takov\u00fd syst\u00e9m najdete <a href=\"https:\/\/www.home-assistant.io\/getting-started\/\" data-type=\"URL\" data-id=\"https:\/\/www.home-assistant.io\/getting-started\/\" target=\"_blank\" rel=\"noreferrer noopener\">p\u0159\u00edmo na jejich str\u00e1nk\u00e1ch<\/a>, v\u011bt\u0161inou je to docela jednoduch\u00e9.<\/p>\n\n\n\n<h2>P\u0159ehled z\u00e1kladn\u00edch n\u00e1stroj\u016f<\/h2>\n\n\n\n<p>Pou\u017e\u00edv\u00e1m n\u00e1sleduj\u00edc\u00ed sadu n\u00e1stroj\u016f. Jsou roz\u0161\u00ed\u0159en\u00e9, d\u00e1 se k nim toho dost naj\u00edt, jsou open source a dob\u0159e propojen\u00e9. Je v z\u00e1sad\u011b jedno, jak\u00fd druh opera\u010dn\u00edho syst\u00e9mu jste si na server nainstalovali, tyto n\u00e1stroje tam s nejvy\u0161\u0161\u00ed pravd\u011bpodobnost\u00ed dok\u00e1\u017eete dostat tak\u00e9.<\/p>\n\n\n\n<p>Nejd\u0159\u00edve takov\u00fd z\u00e1kladn\u00ed pohled: Data sb\u00edr\u00e1 Arduino, pos\u00edl\u00e1 je po WiFi na MQTT broker, z toho si pak data p\u0159eb\u00edr\u00e1 Node-RED, lehce je zpracov\u00e1v\u00e1 a pos\u00edl\u00e1 do InfluxDB. A nakonec je pak zobrazuje Grafana. (V m\u00e9m p\u0159\u00edpad\u011b to je\u0161t\u011b ob\u010das jde z Node-RED do Home Assistant ale ten pak stejn\u011b pou\u017e\u00edv\u00e1 InfluxDB, tak\u017ee to je vlastn\u011b jen mezikrok).<\/p>\n\n\n\n<p>Postup je tedy n\u00e1sleduj\u00edc\u00ed:<\/p>\n\n\n\n<p>Senzor -&gt; Arduino  -&gt; WiFi -&gt; MQTT -&gt; Node-RED -&gt; InfluxDB -&gt; Grafana<\/p>\n\n\n\n<p>Vypad\u00e1 to komplikovan\u011b, ale v z\u00e1sad\u011b je tomu pr\u00e1v\u011b naopak. D\u00edky spr\u00e1vn\u00e9 kombinaci n\u00e1stroj\u016f je v\u0161e pom\u011brn\u011b jednoduch\u00e9. Poj\u010fme se na n\u011b pod\u00edvat jednotliv\u011b. K senzor\u016fm, Arduinu a WiFi se pak dostanu n\u011bkdy pozd\u011bji, tento \u010dl\u00e1nek je o serveru, tak\u017ee za\u010dneme od MQTT. Nast\u00edn\u00edm v\u00e1m z\u00e1kladn\u00ed p\u0159ehled k \u010demu jsou n\u00e1stroje dobr\u00e9, detaily si p\u0159\u00edpadn\u011b dohled\u00e1te sami.<\/p>\n\n\n\n<h2>MQTT<\/h2>\n\n\n\n<p><a href=\"https:\/\/mqtt.org\/\">https:\/\/mqtt.org\/<\/a><\/p>\n\n\n\n<p>Protokol pro pos\u00edl\u00e1n\u00ed zpr\u00e1v v r\u00e1mci IoT (Internet of things). Pou\u017e\u00edv\u00e1 se term\u00edn MQTT broker nebo server. Jde o syst\u00e9m, kter\u00fd sb\u00edr\u00e1 zpr\u00e1vy a pos\u00edl\u00e1 zpr\u00e1vy v r\u00e1mci t\u00e9mat (topics). Ka\u017ed\u00e9 za\u0159\u00edzen\u00ed pak m\u016f\u017ee odes\u00edlat data do r\u016fzn\u00fdch topic\u016f a nebo se na r\u016fzn\u00e9 topicy nav\u00e1zat a sledovat data v nich. F\u00f3r je v tom, \u017ee v\u00e1m to umo\u017e\u0148uje, aby dan\u00e1 za\u0159\u00edzen\u00ed (nap\u0159. senzory, vyp\u00edna\u010de) byly pom\u011brn\u011b dost hloup\u00e9.<\/p>\n\n\n\n<p>P\u0159edstavte si, \u017ee m\u00e1te n\u011bkde bezdr\u00e1tov\u00e9 tla\u010d\u00edtko a bezdr\u00e1tovou \u017e\u00e1rovku. a chcete tla\u010d\u00edtkem ovl\u00e1dat \u017e\u00e1rovku. Tak\u017ee naprogramujete tla\u010d\u00edtko aby odes\u00edlalo n\u011bjak\u00e1 data, n\u011bjak to sp\u00e1rujete se \u017e\u00e1rovkou a na \u017e\u00e1rovce naprogramujete p\u0159\u00edjem dat. Potud fajn. A co se stane, kdy\u017e budete cht\u00edt p\u0159idat n\u011bkolik dal\u0161\u00edch vyp\u00edna\u010d\u016f a sv\u011btel? A n\u00e1sledn\u011b zjist\u00edte, \u017ee chcete zm\u011bnit, kter\u00fd sp\u00edna\u010d sp\u00edn\u00e1 kter\u00e9 sv\u011btlo? Budete muset vyp\u00edna\u010de a \u017e\u00e1rovky vz\u00edt a v\u0161echny je p\u0159eprogramovat.<\/p>\n\n\n\n<p>MQTT v\u00e1m toto zjednodu\u0161uje. Na vyp\u00edna\u010di nastav\u00edte pouze, na kter\u00fd topic pos\u00edl\u00e1 zm\u011bnu stavu a u \u017e\u00e1rovek v\u00e1s zaj\u00edm\u00e1 jen na kter\u00fd topic reaguje. M\u016f\u017eete tak snadno p\u0159id\u00e1vat sp\u00edna\u010de pro stejnou  \u017e\u00e1rovku a z\u00e1rove\u0148 i p\u0159id\u00e1vat dal\u0161\u00ed \u017e\u00e1rovky pro jedno tla\u010d\u00edtko. Za\u0159\u00edzen\u00ed jsou tedy hloup\u00e1 a nev\u00ed nic o vztaz\u00edch ve va\u0161em syst\u00e9mu, jen reaguj\u00ed na stavy topic\u016f a pos\u00edlaj\u00ed do nich data. Co se d\u011bje d\u00e1l a co je s \u010d\u00edm propojeno se nestaraj\u00ed, o to se mus\u00ed starat n\u011bjak\u00fd dal\u0161\u00ed syst\u00e9m na serveru. V m\u00e9m p\u0159\u00edpad\u011b Node-RED n\u00ed\u017ee.<\/p>\n\n\n\n<p>Jeden z nejpou\u017e\u00edvan\u011bj\u0161\u00edch je <a rel=\"noreferrer noopener\" href=\"https:\/\/mosquitto.org\/\" data-type=\"URL\" data-id=\"https:\/\/mosquitto.org\/\" target=\"_blank\">Mosquitto broker<\/a>. Pro Home Assistant nainstalujete stejn\u011b jako v\u0161echny n\u00e1sleduj\u00edc\u00ed programy jednodu\u0161e jako add-on. O MQTT by se toho dalo napsat mnohem v\u00edc, ale takto to mysl\u00edm pro \u00favod sta\u010d\u00ed.<\/p>\n\n\n\n<h2>Node-RED<\/h2>\n\n\n\n<p><a href=\"https:\/\/nodered.org\/\">https:\/\/nodered.org\/<\/a><\/p>\n\n\n\n<p>Node-RED je n\u00e1stroj, kde m\u016f\u017eete jednodu\u0161e pomoc\u00ed vizu\u00e1ln\u00edho programov\u00e1n\u00ed propojovat dal\u0161\u00ed syst\u00e9my. V z\u00e1sad\u011b to je pr\u00e1v\u011b Node-RED v \u00fazk\u00e9 kombinaci s MQTT, kter\u00e9 v\u00e1m umo\u017e\u0148uj\u00ed, aby va\u0161e za\u0159\u00edzen\u00ed byla hodn\u011b hloup\u00e1, proto\u017ee logiku co je s \u010d\u00edm propojen\u00e9 nastav\u00edte pr\u00e1v\u011b zde. Tak\u017ee pokud bych si v p\u0159edchoz\u00edm p\u0159\u00edkladu se \u017e\u00e1rovkami nap\u0159. o\u010d\u00edsloval \u017e\u00e1rovky i tla\u010d\u00edtka 1-5 a sp\u00e1roval je v\u017edy 1-1, 2-2 a pak se rozhodl \u017ee chci jejich propojen\u00ed p\u0159eh\u00e1zet, nemus\u00edm p\u0159eprogramov\u00e1vat hardware, ale pouze v Node-RED nastav\u00edm, aby tla\u010d\u00edtko 1 spou\u0161t\u011blo \u017e\u00e1rovku 2 apod.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"303\" src=\"https:\/\/www.berlinger.cz\/wp-content\/uploads\/2020\/11\/Screenshot-2020-11-11-at-21.33.36-1024x303.png\" alt=\"\" class=\"wp-image-107\" srcset=\"https:\/\/www.berlinger.cz\/blog\/wp-content\/uploads\/2020\/11\/Screenshot-2020-11-11-at-21.33.36-1024x303.png 1024w, https:\/\/www.berlinger.cz\/blog\/wp-content\/uploads\/2020\/11\/Screenshot-2020-11-11-at-21.33.36-300x89.png 300w, https:\/\/www.berlinger.cz\/blog\/wp-content\/uploads\/2020\/11\/Screenshot-2020-11-11-at-21.33.36-768x227.png 768w, https:\/\/www.berlinger.cz\/blog\/wp-content\/uploads\/2020\/11\/Screenshot-2020-11-11-at-21.33.36-1536x454.png 1536w, https:\/\/www.berlinger.cz\/blog\/wp-content\/uploads\/2020\/11\/Screenshot-2020-11-11-at-21.33.36-604x179.png 604w, https:\/\/www.berlinger.cz\/blog\/wp-content\/uploads\/2020\/11\/Screenshot-2020-11-11-at-21.33.36-850x251.png 850w, https:\/\/www.berlinger.cz\/blog\/wp-content\/uploads\/2020\/11\/Screenshot-2020-11-11-at-21.33.36.png 1650w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption>P\u0159\u00edklad m\u00e9ho zpracov\u00e1n\u00ed teploty a vlhkosti ze senzoru ve sklep\u011b. Senzor je hloup\u00fd, m\u00e1 pouze nastaven topic &#8222;sensors\/temerature\/3&#8220; a pos\u00edl\u00e1 n\u00e1sleduj\u00edc\u00ed JSON: {temperature: 12.4, humidity: 62.5} z toho si pak vyb\u00edr\u00e1m zvl\u00e1\u0161\u0165 vlhkost a teplotu a pos\u00edl\u00e1m do p\u0159\u00edslu\u0161n\u00fdch senzor\u016f pro sklep. A\u017e budu cht\u00edt senzor p\u0159em\u00edstit na p\u016fdu tak zde akor\u00e1t p\u0159epoj\u00edm nody, ale nemus\u00edm zasahovat do teplom\u011bru.<\/figcaption><\/figure>\n\n\n\n<p>V m\u00e9m p\u0159\u00edpad\u011b tak typicky na za\u010d\u00e1tku pou\u017eiju MQTT node, kde sb\u00edr\u00e1m data z n\u011bjak\u00e9ho topicu. Ty pak zpracov\u00e1v\u00e1m. Nap\u0159\u00edklad kdy\u017e pos\u00edl\u00e1m v\u00edce dat najednou v JSONu tak si je vyberu nebo d\u011bl\u00e1m n\u011bjakou kalibraci apod. D\u00e1le pak data m\u016f\u017eu poslat nap\u0159\u00edklad do Home Assistant senzoru, nebo p\u0159\u00edmo do InfluxDB datab\u00e1ze a nebo t\u0159eba je d\u00e1l poslat pomoc\u00ed MQTT do n\u011bjak\u00e9ho dal\u0161\u00edho za\u0159\u00edzen\u00ed.<\/p>\n\n\n\n<p>Dal\u0161\u00ed p\u0159\u00edklad, kde se bude hodit Node-RED je po\u010d\u00edt\u00e1n\u00ed objemu vody v n\u00e1dr\u017ei na de\u0161\u0165ovou vodu. Ultrazvukov\u00fd senzor m\u011b\u0159\u00ed vzd\u00e1lenost hladiny od senzoru. V\u00fdsledn\u00fd objem pak z\u00e1vis\u00ed na um\u00edst\u011bn\u00ed senzoru a tvaru n\u00e1dr\u017ee (= vztahem mezi v\u00fd\u0161kou hladiny a objemem). Senzor je op\u011bt hloup\u00fd a odes\u00edl\u00e1 pouze nam\u011b\u0159enou vzd\u00e1lenost hladiny. Node-RED si pak nam\u011b\u0159enou vzd\u00e1lenost p\u0159epo\u010d\u00edt\u00e1v\u00e1 na spr\u00e1vn\u00fd objem a pos\u00edl\u00e1 data do datab\u00e1ze k p\u0159\u00edslu\u0161n\u00e9 n\u00e1dr\u017ei. P\u0159i zm\u011bn\u011b um\u00edst\u011bn\u00ed senzoru, zm\u011bn\u011b tvaru n\u00e1dr\u017ee nebo p\u0159em\u00edst\u011bn\u00ed do jin\u00e9 n\u00e1dr\u017ee sta\u010d\u00ed jen upravit sch\u00e9ma a vzorce ve sch\u00e9matu.<\/p>\n\n\n\n<h2>InfluxDB<\/h2>\n\n\n\n<p><a href=\"https:\/\/www.influxdata.com\/\">https:\/\/www.influxdata.com\/<\/a><\/p>\n\n\n\n<p>O datab\u00e1zi InfluxDB v\u00e1m toho moc nepov\u00edm, naposledy kdy\u017e jsem se zab\u00fdval datab\u00e1zemi tak to bylo MySQL a PHP a bylo to p\u0159ed 10 lety. InfluxDB je prost\u011b datab\u00e1ze, kter\u00e1 je vhodn\u00e1 pro tyto \u00fa\u010dely, funguje, napojen\u00ed je op\u011bt p\u0159ipraven\u00e9 pro spoustu dal\u0161\u00edch n\u00e1stroj\u016f. A to je vlastn\u011b v\u0161echno co pot\u0159ebuju v\u011bd\u011bt.<\/p>\n\n\n\n<h2>Grafana<\/h2>\n\n\n\n<p><a href=\"https:\/\/grafana.com\/\">https:\/\/grafana.com\/<\/a><\/p>\n\n\n\n<p>Grafana v\u00e1m umo\u017e\u0148uje vytv\u00e1\u0159et p\u011bkn\u00e9 dashboardy, grafy, ukazatele. Je toho hodn\u011b, vypad\u00e1 to dob\u0159e a daj\u00ed se na z\u00e1klad\u011b toho ode\u010d\u00edtat v\u0161elijak\u00e1 data. Na za\u010d\u00e1tku jsem pro \u010dten\u00ed dat ze senzor\u016f pou\u017e\u00edval home page Home Assistenta (\u0159\u00edkaj\u00ed tomu lovelace), ale postupn\u011b jsem si zvykl chodit p\u0159edev\u0161\u00edm pr\u00e1v\u011b na str\u00e1nku Grafany. A i to je mimochodem d\u016fvod pro\u010d jsem si pak p\u0159ehodil cel\u00fd Home Assistant do \u010dern\u00e9ho t\u00e9matu, aby mi to ladilo s Grafanou.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"999\" src=\"https:\/\/www.berlinger.cz\/wp-content\/uploads\/2020\/11\/Screenshot-2020-11-11-at-21.50.52-1024x999.png\" alt=\"\" class=\"wp-image-109\" srcset=\"https:\/\/www.berlinger.cz\/blog\/wp-content\/uploads\/2020\/11\/Screenshot-2020-11-11-at-21.50.52-1024x999.png 1024w, https:\/\/www.berlinger.cz\/blog\/wp-content\/uploads\/2020\/11\/Screenshot-2020-11-11-at-21.50.52-300x293.png 300w, https:\/\/www.berlinger.cz\/blog\/wp-content\/uploads\/2020\/11\/Screenshot-2020-11-11-at-21.50.52-768x749.png 768w, https:\/\/www.berlinger.cz\/blog\/wp-content\/uploads\/2020\/11\/Screenshot-2020-11-11-at-21.50.52-1536x1498.png 1536w, https:\/\/www.berlinger.cz\/blog\/wp-content\/uploads\/2020\/11\/Screenshot-2020-11-11-at-21.50.52-277x270.png 277w, https:\/\/www.berlinger.cz\/blog\/wp-content\/uploads\/2020\/11\/Screenshot-2020-11-11-at-21.50.52-850x829.png 850w, https:\/\/www.berlinger.cz\/blog\/wp-content\/uploads\/2020\/11\/Screenshot-2020-11-11-at-21.50.52.png 1798w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption>Takhle nap\u0159\u00edklad vypad\u00e1 m\u016fj aktu\u00e1ln\u00ed hlavn\u00ed dashboard zobrazuj\u00edc\u00ed uplynul\u00fd t\u00fdden.<\/figcaption><\/figure>\n\n\n\n<p>V Grafan\u011b si nastav\u00edte zdroj dat, m\u016f\u017eete tak data br\u00e1t z Home Assistant senzor\u016f a nebo nap\u0159\u00edmo z InfluxDB. O drobn\u00e9m ale z\u00e1sadn\u00edm rozd\u00edlu si pov\u00edme a\u017e budu ps\u00e1t o elektrom\u011brech.<\/p>\n\n\n\n<p>Nastaven\u00ed zobrazen\u00ed je mnoho, je to o tom nad t\u00edm chv\u00edli posed\u011bt a vyhr\u00e1t si s tim. Docela se mi osv\u011bd\u010dilo si vytvo\u0159it jednu glob\u00e1ln\u00ed prom\u011bnnou, kterou se d\u00e1 nastavit hustota grafu (pot\u0159eba tu prom\u011bnnou prom\u00edtnout do v\u0161ech dotaz\u016f v grafech). Grafana v\u00e1m standardn\u011b umo\u017e\u0148uje nastavovat \u010dasov\u00e9 rozp\u011bt\u00ed na zobrazen\u00e9m grafu. Zda data chcete agregovat po hodin\u00e1ch, minut\u00e1ch nebo dnech si mus\u00edte ale nastavit sami a na to se pr\u00e1v\u011b hod\u00ed ta glob\u00e1ln\u00ed prom\u011bnn\u00e1.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"748\" src=\"https:\/\/www.berlinger.cz\/wp-content\/uploads\/2020\/11\/Screenshot-2020-11-11-at-21.57.29-1024x748.png\" alt=\"\" class=\"wp-image-110\" srcset=\"https:\/\/www.berlinger.cz\/blog\/wp-content\/uploads\/2020\/11\/Screenshot-2020-11-11-at-21.57.29-1024x748.png 1024w, https:\/\/www.berlinger.cz\/blog\/wp-content\/uploads\/2020\/11\/Screenshot-2020-11-11-at-21.57.29-300x219.png 300w, https:\/\/www.berlinger.cz\/blog\/wp-content\/uploads\/2020\/11\/Screenshot-2020-11-11-at-21.57.29-768x561.png 768w, https:\/\/www.berlinger.cz\/blog\/wp-content\/uploads\/2020\/11\/Screenshot-2020-11-11-at-21.57.29-370x270.png 370w, https:\/\/www.berlinger.cz\/blog\/wp-content\/uploads\/2020\/11\/Screenshot-2020-11-11-at-21.57.29-850x621.png 850w, https:\/\/www.berlinger.cz\/blog\/wp-content\/uploads\/2020\/11\/Screenshot-2020-11-11-at-21.57.29.png 1282w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption>Rychl\u00fd v\u00fdb\u011br zobrazen\u00ed posledn\u00edch hodin, dn\u016f, t\u00fddn\u016f atp.<\/figcaption><\/figure>\n\n\n\n<p>Pro posledn\u00ed t\u00fdden tak nap\u0159\u00edklad chcete vid\u011bt data po hodin\u00e1ch. Pro posledn\u00ed m\u011bs\u00edc po dnech, pro posledn\u00edch p\u00e1r hodin po minut\u00e1ch.<\/p>\n\n\n\n<figure class=\"is-layout-flex wp-block-gallery-1 wp-block-gallery columns-3 is-cropped\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><a href=\"https:\/\/www.berlinger.cz\/wp-content\/uploads\/2020\/11\/Screenshot-2020-11-11-at-22.03.06-1.png\"><img decoding=\"async\" loading=\"lazy\" width=\"872\" height=\"584\" src=\"https:\/\/www.berlinger.cz\/wp-content\/uploads\/2020\/11\/Screenshot-2020-11-11-at-22.03.06-1.png\" alt=\"\" data-id=\"113\" data-full-url=\"https:\/\/www.berlinger.cz\/wp-content\/uploads\/2020\/11\/Screenshot-2020-11-11-at-22.03.06-1.png\" data-link=\"https:\/\/www.berlinger.cz\/?attachment_id=113\" class=\"wp-image-113\" srcset=\"https:\/\/www.berlinger.cz\/blog\/wp-content\/uploads\/2020\/11\/Screenshot-2020-11-11-at-22.03.06-1.png 872w, https:\/\/www.berlinger.cz\/blog\/wp-content\/uploads\/2020\/11\/Screenshot-2020-11-11-at-22.03.06-1-300x201.png 300w, https:\/\/www.berlinger.cz\/blog\/wp-content\/uploads\/2020\/11\/Screenshot-2020-11-11-at-22.03.06-1-768x514.png 768w, https:\/\/www.berlinger.cz\/blog\/wp-content\/uploads\/2020\/11\/Screenshot-2020-11-11-at-22.03.06-1-403x270.png 403w, https:\/\/www.berlinger.cz\/blog\/wp-content\/uploads\/2020\/11\/Screenshot-2020-11-11-at-22.03.06-1-850x569.png 850w\" sizes=\"(max-width: 872px) 100vw, 872px\" \/><\/a><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><a href=\"https:\/\/www.berlinger.cz\/wp-content\/uploads\/2020\/11\/Screenshot-2020-11-11-at-22.02.33-1.png\"><img decoding=\"async\" loading=\"lazy\" width=\"872\" height=\"588\" src=\"https:\/\/www.berlinger.cz\/wp-content\/uploads\/2020\/11\/Screenshot-2020-11-11-at-22.02.33-1.png\" alt=\"\" data-id=\"114\" data-full-url=\"https:\/\/www.berlinger.cz\/wp-content\/uploads\/2020\/11\/Screenshot-2020-11-11-at-22.02.33-1.png\" data-link=\"https:\/\/www.berlinger.cz\/?attachment_id=114\" class=\"wp-image-114\" srcset=\"https:\/\/www.berlinger.cz\/blog\/wp-content\/uploads\/2020\/11\/Screenshot-2020-11-11-at-22.02.33-1.png 872w, https:\/\/www.berlinger.cz\/blog\/wp-content\/uploads\/2020\/11\/Screenshot-2020-11-11-at-22.02.33-1-300x202.png 300w, https:\/\/www.berlinger.cz\/blog\/wp-content\/uploads\/2020\/11\/Screenshot-2020-11-11-at-22.02.33-1-768x518.png 768w, https:\/\/www.berlinger.cz\/blog\/wp-content\/uploads\/2020\/11\/Screenshot-2020-11-11-at-22.02.33-1-400x270.png 400w, https:\/\/www.berlinger.cz\/blog\/wp-content\/uploads\/2020\/11\/Screenshot-2020-11-11-at-22.02.33-1-850x573.png 850w\" sizes=\"(max-width: 872px) 100vw, 872px\" \/><\/a><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><a href=\"https:\/\/www.berlinger.cz\/wp-content\/uploads\/2020\/11\/Screenshot-2020-11-11-at-22.03.26.png\"><img decoding=\"async\" loading=\"lazy\" width=\"870\" height=\"588\" src=\"https:\/\/www.berlinger.cz\/wp-content\/uploads\/2020\/11\/Screenshot-2020-11-11-at-22.03.26.png\" alt=\"\" data-id=\"115\" data-full-url=\"https:\/\/www.berlinger.cz\/wp-content\/uploads\/2020\/11\/Screenshot-2020-11-11-at-22.03.26.png\" data-link=\"https:\/\/www.berlinger.cz\/?attachment_id=115\" class=\"wp-image-115\" srcset=\"https:\/\/www.berlinger.cz\/blog\/wp-content\/uploads\/2020\/11\/Screenshot-2020-11-11-at-22.03.26.png 870w, https:\/\/www.berlinger.cz\/blog\/wp-content\/uploads\/2020\/11\/Screenshot-2020-11-11-at-22.03.26-300x203.png 300w, https:\/\/www.berlinger.cz\/blog\/wp-content\/uploads\/2020\/11\/Screenshot-2020-11-11-at-22.03.26-768x519.png 768w, https:\/\/www.berlinger.cz\/blog\/wp-content\/uploads\/2020\/11\/Screenshot-2020-11-11-at-22.03.26-399x270.png 399w, https:\/\/www.berlinger.cz\/blog\/wp-content\/uploads\/2020\/11\/Screenshot-2020-11-11-at-22.03.26-850x574.png 850w\" sizes=\"(max-width: 870px) 100vw, 870px\" \/><\/a><\/figure><\/li><\/ul><figcaption class=\"blocks-gallery-caption\">Rozd\u00edln\u00e9 zobrazen\u00ed \u010dasu a hustoty. Zleva: M\u011bs\u00edc po dnech, t\u00fdden po hodin\u00e1ch, 6 hodin po minut\u00e1ch<\/figcaption><\/figure>\n\n\n\n<h2>Z\u00e1v\u011br<\/h2>\n\n\n\n<p>To by bylo pro dne\u0161ek v\u0161e. Snad jste z toho z\u00edskali p\u0159edstavu jak m\u016f\u017ee takov\u00fd server vypadat a fungovat. A v p\u0159\u00ed\u0161t\u00edm \u010dl\u00e1nku bych se u\u017e pustil do detailn\u00edho popisu jak vypad\u00e1 m\u011b\u0159en\u00ed spot\u0159eby elekt\u0159iny v praxi.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>V minul\u00e9m \u010dl\u00e1nku jsme si dali takov\u00fd r\u00e1mcov\u00fd \u00favod. Dneska se pod\u00edv\u00e1me na server, kter\u00fd bude slou\u017eit ke zpracov\u00e1n\u00ed dat. Um\u011bt data p\u0159e\u010d\u00edst je jedna v\u011bc, ale je pot\u0159eba, aby se v\u00e1m data n\u011bkde sb\u00edrala, abyste je mohli vizualizovat a tak d\u00e1le. Teoreticky na to m\u016f\u017eete pou\u017e\u00edt st\u00e1vaj\u00edc\u00ed po\u010d\u00edta\u010d nebo n\u011bjakou cloudovou slu\u017ebu. Ale nakonec mi p\u0159ijde nejjednodu\u0161\u0161\u00ed rozb\u011bhnout si vlastn\u00ed server pomoc\u00ed mal\u00e9ho po\u010d\u00edta\u010de Raspberry Pi, kter\u00fd m\u016f\u017ee b\u011b\u017eet 24\/7 na lok\u00e1ln\u00ed s\u00edti, je to pom\u011brn\u011b levn\u00e9 a bez\u00fadr\u017ebov\u00e9 \u0159e\u0161en\u00ed, odb\u011br m\u00e1 do 5W. Uk\u00e1\u017eu v\u00e1m p\u00e1r tip\u016f a software, kter\u00fd pou\u017e\u00edv\u00e1m.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0},"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/www.berlinger.cz\/blog\/wp-json\/wp\/v2\/posts\/99"}],"collection":[{"href":"https:\/\/www.berlinger.cz\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.berlinger.cz\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.berlinger.cz\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.berlinger.cz\/blog\/wp-json\/wp\/v2\/comments?post=99"}],"version-history":[{"count":7,"href":"https:\/\/www.berlinger.cz\/blog\/wp-json\/wp\/v2\/posts\/99\/revisions"}],"predecessor-version":[{"id":119,"href":"https:\/\/www.berlinger.cz\/blog\/wp-json\/wp\/v2\/posts\/99\/revisions\/119"}],"wp:attachment":[{"href":"https:\/\/www.berlinger.cz\/blog\/wp-json\/wp\/v2\/media?parent=99"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.berlinger.cz\/blog\/wp-json\/wp\/v2\/categories?post=99"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.berlinger.cz\/blog\/wp-json\/wp\/v2\/tags?post=99"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}