Road to perfection

Road to perfection

Náš letošní vánoční stromek je jiný. Zatímco ještě loni to byl spíše skromný plastový gadget stromek ovládaný Arduinem, letos je tomu jinak.

Jako vánoční dárek jsem pro I. koupil hromadu ozdob, nové hloupé žluto-bílé lampičky, živý stromek a stojan na něj. K tomu jsem přispěl dobrou radou, že letos uděláme prckům (spíš tomu jednomu, zatím) pořádný, obrovský, světýlkama i ozdobama nacpaný, obrovský americký vánoční stromek :).

Musím teda říct, že komplet výbava od držáku na stromek, přes živou 2.7m jedli až po lampičky a ozdoby není vůbec levná záležitost. Ale dárek je dárek a tak byl budget velmi a vlastně skoro neomezený :).

Nákupem a instalací pořízeného hardware (rozuměj ten kmen a ty větve kolem) pomalu končila hlavní moje role v tohle procesu. Zbývalo už jen trochu seříznout vršek téhle potvory, osadit lampičky a otestovat špičku.

Takhle nějak jsem stromek předával do rukou své milované ženy, která na něm pak dále pracovala už z pozice designu a estetična.

Musím říct, že původně se mi nahrubo nainstalované lampičky docela líbily. Ale to, co s nimi I. pak provedla, dost dehonestovalo celou mou původní instalaci :).

Takto nějak vypadala první verze učesaných lampiček v době, kdy si pan Stromek zrovna zkoušel mašle, aby zjistil, která mu sedí. Jak si můžete všimnout, tady se už na stromku začíná odrážet estetično a jemnost ženské ruky. A taky um našeho prvorozeného nacpat na jednu větev co nejvíc ozdob.

O pár hodin později, když jsem opět zavítal do obyváku, měl už pan Strom oblečenou velkou červenou mašli a k tomu čtyři organzové mašle. Pokud jakožto mužská část čtenářstva nevíte, co to je organza, tak si z toho nic nedělejte, naše drahé polovičky zas nevědí, co je to relé nebo stykač :)).

Co je ovšem o dost důležitější, v tomto momentě strojení stromečku přichází můj vrcholný okamžik. Pokud se totiž na stromek podíváte pořádně, existuje na něm v té době několik vyčnívajících větví, které výrazně kazí symetrii celého zážitku. A toho nejen, že si I. nevšimla, ale navíc původně lobovala za zachování onoho vzhledu.

Ale já se nedal. S kleštěmi v ruce jsem se domáhal svého práva skoncovat s touto asymetrií. Pod neustávajícím nátlakem nakonec povolila a já se mohl pustit do masakru motorovou… ehm, kleštěmi.

Postupně jsem začal ostříhávat vše, co jen trochu vyčnívalo z jinak téměř ideálního kuželovitého tvaru stromečku. Nejvíc to jde vidět na větvi dole vlevo u skříněk a vpravo dole u žirafy.

Na další fotce jde vidět zase o něco dokonalejší stav, avšak stále to není stav finální. Zaprvé, stále jsem při cestách kolem stromku narážel na další a další drzé větvičky, které poťouchle vykukovaly a které bylo nutné kosit jednu za druhou.

Navíc, krom větviček bylo na stromku stále mnoho práce. Jak si můžete všimnout, lampičky se opět ještě více srovnaly. Sice stále nedosahují ideální horizontální polohy ve všech patrech, ale je to zase o dost lepší. Ale, to hlavní mělo stále přijít. Následující den se totiž I. pustila do finalizací.

Na závěr totiž pan Stromek (ačkoli tady už začínám trošku váhat, jestli to není spíš paní Stromečková) dostal ještě několik menších mašlí, ale hlavně, a to bylo kruciálně důležité, byly předělány horizontální organzové mašle. Ty totiž nepůsobily dostatečně pěkným stočeným a nadýchaným tvarem, takže byly za pomoci donucovacími prostředky (háky, háčky a tak) motivovány k poslušnosti.

No a tady ho máme, fešáka. Po dvou dnech snažení I. a několika mých stěžejních zásazích máme náš letošní stromek hotov. Sice bez Arduina a jiných chytrých vymožeností, ale na to přijde zas řada příští rok :).

A na závěr ještě foto za použití filtru z foťáku. Nějak se mi fotkou nedaří zachytit celkovou atmosféru stromečku. Naživo je prostě ještě o dost víc cool :).

Pozor na podvodné emaily ohledně DHL či jiných dopravců

Pozor na podvodné emaily ohledně DHL či jiných dopravců

Možná i v souvislosti s akcí 11.11. se opět vyrojily podvodné emaily ohledně balíčků z ciziny. Tak chci raději ty méně IT zdatné raději takto varovat.

 

Email je psaný slušnou češtinou a tváří se jako oficiální email od DHL (ale už jsem viděl i od české pošty). Dejte si na to pozor a určitě nic neplaťte ani neklikejte na zobrazený link. Ačkoli se link tváří jako “www.dhl.cz”, tak reálná adresa kam link vede je jiná.

Pokud si nejste jisti, stačí zkopírovat (pouze označte a dejte CTRL+C, žádné klikání na link) přepravní kód a otevřít si oficiální stránku s trackováním zásilek daného dopravce (do googlu zadejte například “DHL tracking” a on vám stránku najde). Pro DHL je to https://www.dhl.com/cz-en/home/tracking.html

Stačí tam zadat zmiňovaný kód a hned zjistíte, že žádná taková zásilka neexistuje. Pak můžete email s klidným svědomím označit jako spam a smazat ho.

PS: Ohledně akce 11.11., zatím mi žádný balíček nedorazil a včera to bylo 10 dnů. Ale už jsem obdržel spoustu notifikací, že jsou balíčky v ČR. Takže je možné, že to teď behěm týdne ČP zvládne doručit a zvládne tak alespoň 10 pracovních dnů. Což by pořád byla pecka.

Třetí zazimování bazénu

Třetí zazimování bazénu

Proč třetí? Protože Mountfield bazén. Protože s tímhle bazénem je prostě všechno problém, nic nejde jednoduše a všechno se musí vždy pokazit.

První zazimování jsem udělal tak, jak jsem viděl na promo fotkách tohodle satanistického výrobku. Tzn. natažená vypnutá plachta, obvodové lanko utažené na krev kolem bazénu. Jenže, první zádrhel je skimmer. Ten tam proste překáží, takže se to absolutně vypnout nedá. Druhý zádrhel je, že i když jsem skimmer obložil dřevem tak, abych ho lankem nezničil a i když sem plachtu vypl tak, že mi málem praskly svaly na prstech, tak stejně když začlo mohutně pršet, celá plachta se propla, lanko se vytáhlo nahoru po okraj a uvnitř bazénu vznikl nový bazén. Co mne zaujalo na této promo-fotce nahoře, tak to vypadá, že plachta leží na vode napuštěného bazénu. JENŽE, dle návodu se má voda vypustit až po spodní trysku. Já mám vypuštěno jen pod skimmer a stejně je to dost daleko od hrany bazénu.

Dobře, počkal jsem až přestalo pršet, bazén uvnitř bazénu jsem postupně zlikvidoval a plachtu celou rozebral. Další plán byl velký gymnastický balón. Slyšel jsem o to, že to funguje, dávalo mi to smysl. Vzal jsem tedy svůj balón velkého rozměru, nafoukl a zkusil opět bazén zaplachtovat.

Jako nevím, možná jsou na tom ostatní bazény jinak a ten náš je z kopce, ale balón uprostřed prostě nedrží. Pod tlakem vypnuté plachty si jezdí po bazénu a jako na potvoru vždy skončí v rohu, kde je naprosto k prdu, protože na většině bazénu se vytvoří stejně propadlina, u které už tuším, co by se dělo při dalším dešti. Takže balón ne (a ani dva balóny kdybyste chtěli vědět, i to jsme zkusili 🙂 ). Další nápad byla obrovská matračka srolovaná tak, aby tvořila jakousi bublinu nad bazénem. Ale to jsme nakonec ani nerealizovali, protože by to stejně nejspíš nefungovalo.

Takže další nápad (ještě stále během druhéhu cyklu zazimování) byly schůdky uprostřed bazénu, které by tvořily stojnu stanu a tím pádem by plachta byla vypnutá a voda stékala. Brilantní nápad!

Po prvním slejváku bylo jasné, že na tomhle bazénu nefunguje nic, natož nějaký stan. Plachta se opět vesele propnula podél celého bazénu, zatímco uprostřed se rýsovaly schůdky. Takže nám vznikl další bazén uprostřed bazénu, navíc s mohylou míru uprostřed.

A tím se dostáváme k dnešku. Opět jsem vodu vylil, plachtu sundal a začal vymýšlet, co s tím teda udělám (protože na internetu jsem hledal a mám z toho pocit, že u všech ostatních se voda bazénu vyhýbá a všechna ta voda pak jde do našeho bazénu, nebo nevím).  V boudě jsem měl ještě pár latí ze stavby truhlíků, tak jsem si je nanosil k bazénu a začal vymýšlet, co s tím.

Nejprve jsem zkusil “mřížku”. Nápad dobrý, ale kulatou plachtu bych na to nedal, navíc by určitě vznikla řada menších jezer. Další pak byla varianta hvězda, což bylo ještě více problematické, protože 6 latí na sobě znamenalo, že to drží jen ta jedna spodní lať, která se raději rovnou prohla a ty ostatní nad tím jen levitují. Třetí nápad bylo stáhnout všechny latě do jednoho místa vedle bazénu, tam to podložit a udělat takovou stříšku. Z předešlých nápadů zatím asi nejlepší nápad, ale kruhovou plachtu bych na to nenacpal a nebo by tam foukalo z boku, kde jsou všechny ty latě.

Problém byl, že jsem měl jen 6 latí a jen jeden pokus na řezání :). Nakonec jsem se vydal čtvrtou cestou, nejpracnější, ale snad i nejbytelnější (protože jestli ne, zavezu ten prokletej bazen hlínou a kompostem a budu tam pěstovat žampiony).Doprostřed bazénu jsem opět usadil schůdky, skrz ně jsem prostrčil dvě prkna a o ně jsem postupně zasekl 12 půl-latí tak, aby to vytvořilo kuželovitou střechu.

Zabil jsem tím 3 hodiny z dnešního odpoledne, ale snad to už konečně bude finální řešení. K latím jsem na obou stranách připevnil malý odřezek, aby se lať na bezénu zachytla jak o prostřední prko, tak kraj bazénu a nikam nemohla spadnout.

Největší legrace byla, když jsem potřeboval na ty dvě prkna umístěná na chůdkách přišroubovat ještě boční prkna, o která bych zachytl i zbývající latě. Jako vlézt do bazénu nepřicházelo v úvahu, protože voda tam má teplotu hluboko pod bodem brazu, tipuju tak -300C :).

Po vzoru akčních hrdinů z Hollywoodské produkce jsem vzal žebřík, ten uchytil na silně nestabilní schůdky s latěmi a jal se šplhat do prostřed bazénu. Jediné, co tomu chybělo byla nějaká akční hudba :). Ačkoli jsem si cestu tam a zpět po žebříku několikrát zopakoval, neutopil jsem sebe a dokonce ani aku-vrtačku, o kterou sem se místama fakt bál :). Po zdárném uchycení bočních prken jsem dodělal zbývající latě a dokončil tak rotundu svatého Vodníka.

Pak už jsme s I. jen natáhli plachtu, rozumě ji vypnuli (tentokrát ne na maximum, aby se neprotrhla skrz prkna) a utáhli stahovací lanko, aby se nám do bazénu nedostala žádná havěť.

Nyní nezbývá než počkat na další slejváky, jak si tahle konstrukce povede. Pokud některý z mých dalších článků bude o tom, jak ideálně pěstovat žampióny, bude Vám asi jasné, co se stalo…..

PS: Můžete se prosím ostatní podělit, jak tyhle shit-bazény zazimováváte? 🙂

PS2: Na příští rok mám pak ještě nápad namísto schůdků a složitého prostrkávání latí dát doprostřed nějakou větší KG trubku, do latí vyřezat zářezy, kterými by se latě na trubku nasadily. Ale uvidíme, pokud se osvědčí schůdky, možná to tak udělám i další rok.

 

NodeRED – více instancí

NodeRED – více instancí

Dnešní článek bude jen taková rychlovka na zamyšlení. Díky všem pokusům, co s NodeRED poslední dobou dělam, jsem se rozhodl vytvořit si dvě různé instance NodeRED.

Jedna je produkční, kde bude jen ostrý kód, který běží nonstop. Druhá pak bude developerská, kde budu testovat vše možné a kde bude v záložkách zůstávat i testovací bordel.

Díky docker-compose to není žádný problém. Každá instance používá svoje vlastní úložiště, zbytek mají obě instance naprosto totožné. Pro vývoj nových věcí tak používám developerskou instanci a pak pomocí import-export výsledek přenesu do produkční instance.

Můj aktuální kód pro NodeRED vypadá následovně:

FROM nodered/node-red

RUN npm install bufferutil 
RUN npm install utf-8-validate

RUN npm install node-red-node-smooth
RUN npm install node-red-dashboard
RUN npm install node-red-node-ui-list
RUN npm install node-red-contrib-zigbee2mqtt
RUN npm install node-red-contrib-loxone
RUN npm install node-red-contrib-tgr-jsonata
RUN npm install node-red-contrib-xiaomi-sensors

RUN npm audit fix

A to je pro dnešek vše. Přišlo mi to jako dobrý nápad a třeba to inspiruje i někoho dalšího. Příště pak mám v plánu pár ukázek napárování zigbee na Loxone, konkrétně Ikea pětitlačítko, které se mi zatím hodně líbí. Mám na něm v pracovně světla, žaluzie i plachtu pergoly. Dál pak Sonoff tlačítka a chytré zásuvky.

ZIGBEE – NodeRED a Loxone

ZIGBEE – NodeRED a Loxone

Tak jsem tu zas s dalším Zigbee článkem. Opět navazuje na mé předchozí trable s NodeRED. Dneska to bude o něco méně problémů, ale přeci jen tam jedna drobnost je :).

Dnešním pluginem, který bych chtěl představit, je node-red-contrib-loxone. Ten umožnuje napojení se na Loxone skrz Websocket přímo z NodeRED, takže není potřeba vytvářet žádné virtuální vstupy, složitě posílat UDP a nějak to na straně Loxone parsovat.

Plugin je postaven nad komponentou node-lox-ws-api od Alladdina, který se občas vyskytuje i tady u nás na fóru.

Co se týká funčnosti, komponenty fungují parádně. Umí ovládat v Loxone cokoli, co má svůj viditelný Uuid směrem do vizualizace (webové rozhraní či app). Pokud tedy chci cokoli ovládat, připravím si na to třeba tlačítko a na to se pak napojím z NodeRED.

Plugin opět umožnuje pomocí comboboxů snadný výběr prvků z Loxone, takže není potřeba někde lovit Uuidy prvků, ale jednoduše si člověk pomocí výběru místnost-kategorie-prvek může zvolit přesně co potřebuje.

Drobná nevýhoda je, že do prvku pak člověk musí poslat přesně data, která Loxone očekává. Není zde žádná mezivrstva, která by to udělala za Vás. To je ale pochopitelné, protože těch typů prvků je hromada a musel by zde Alladdin či Zigbee2Mqtt udržovat obrovský seznam všech příkazů. Je proto o dost snazší podívat se do dokumentace pro Websocket API a poslat správný příkaz přes msg.payload.

Jediné, co mi zlobí, tak jakmile je nakonfigurován Loxone miniserver pomocí tohoto pluginu, tak deploy projektu občas trvá i pár sekund. Netuším, jestli je chyba někde na straně Alladdina nebo tvůrce NodeRED pluginu, ale do logu to háže chybu “Close time out”. Jako kdyby se to při deploy nejprve snažilo ukončit spojení s Loxone, což se ale nepodaří do daného časového limitu.

Řešení zatím neznám, ale není to nic, co by bránilo používání. Jen holt občas deploy trvá cca 3-5sekund namísto pár milisekund.

ZIGBEE – NodeRED a Zigbee2MQTT podruhé

ZIGBEE – NodeRED a Zigbee2MQTT podruhé

Tak jsem tu s dalším článkem z mé Zigbee minisérie (i když jestli to půjde jako do teď, tak to bude větší série 🙂 ). V minulém článku jsem popisoval problém se Zigbee2MQTT díky staré verzi NodeREDu, dnes se podíváme na další komplikaci v Zigbee2MQTT.

Zigbee2MQTT podruhé

U Zigbee2MQTT ještě zůstaneme. Tentokrát ale (nakonec) ne u pluginu, ale u SW brány samotné. Dalším problémem, který se mi děl a který byl hodně špatný, bylo chybné opakování poslední zprávy při deploy projektu.

V praxi se to chovalo tak, že jsem stiskl zigbee tlačítko, to poslalo MQTT zprávu a provedlo například “toggle” příkaz na světle. Tzn. přehodilo stav ze zaplého do vyplého či naopak.

Problém ale nastal, když jsem udělal změnu v projektu a dal deploy. Po naběhnutí celého projektu se tento “toggle” (a i všechny ostatní) provedly znovu. To znamenalo, že se mi náhodně zapínaly a vypínaly světla či chytré zásuvky. Nic moc.

Původně jsem podezříval opět plugin Zigbee2Mqtt, jenže stejná chyba se děla i při použití základního MQTT prvku. Problém byl tudíž někde v MQTT samotném, případně v Zigbee2MQTT.

MQTT jako takové má vlastnost, že u každé zprávy lze zadat “retain” příznak. Zpráva s tímto příznakem se nejen pošle všem příjemcům v době zaslání, ale zároveň se její stav uchová a pošle se i všem novým posluchačům.

Vše tudíž vypadalo, že by to mohlo být ono. Ale proč se to děje. Podle dokumentace Zigbee2MQTT mají zprávy “retain” defaultně vypnutý (link zde) a v NodeREDu tento příznak taky nikde nenastavuji. Takže, WTF :).

Na pomoc jsem si tedy vzal MQTT Explorer, který je super věc na debugování podobných problémů. Lze realtime sledovat veškeré zprávy i jejich poslední stav. A v případě, kdy má zpráva příznak “Retain”, je tam zobrazen následovně:

No, a co byste řekli. Měl ho tam :). Takže někdo nějak posílal RETAINED zprávy, které zůstávaly viset v MQTT frontě a při restartu NodeRED programu se pak vždy vyhodnotily znovu.

Podobné chování se hodí například u okenních senzorů, či jiných prvků, kdy i po restartu potřebujete v NodeREDu nastavit poslední známý stav. Je to ale dost na h*** u tlačítek, kdy Vám to probliká celým domem :).

Nakonec se ukázalo, že chyba je v samotné Zigbee2MQTT konfiguraci. Z nějakého mně zatím nepochopitelného důvodu se všem nově napárovaným zařízením automaticky nastavuje i retain:true, příznak, ačkoli o tom dokumentace mlčí (NodeRED UI administrace toto nejde nastavit ani se nijak neukazuje). To bohužel pak zůsobuje výše popsané problémy, které mohou být pro spoustu uživatelů asi dost deprimující 🙂

Řešením tudíž je odmazat retain:true příznak z konfiguračního souboru configuration.yaml pro všechna zařízení, kde toto chování nedává smysl (defakto všude krom teploměrů a čidel).

Po odmazání je potřeba restartnout Zigbee2MQTT kontejner či službu, aby se nastavení znovu načetlo. Tím je problém vyřešen a už žádné samozapínání při restartu.

Ikea TRÅDFRI+ Zigbee + Loxone

Ikea TRÅDFRI+ Zigbee + Loxone

Dnes trochu atypicky jeden krátký (nakonec se mi to celkem protáhlo :)) post na přání z publika :). Byla tu prosba o návod na propojení Ikea tlačítka TRÅDFRI z Ikea do Loxone pomocí Zigbee2Mqtt.

A protože další připravené články se zabývají trochu jinými tématy, rozhodl jsem se návod sepsat teď narychlo ve formě nového článku.

Celé schéma aktuálně vypadá takto. Ten horní pravý control-out je příprava na ovládání výsuvné pergoly, ale protože pořád prší, ještě jsem to raději nezapojoval a netestoval :).

V levé části grafu je Zigbee2Mqtt IN prvek pojmenovaný IkeaRoundButton01 dle názvu zařízení v konfiguraci Zigbee2Mqtt.

Jeho nastavení je Server (Zigbee2MQTT server), device(což je toto tlačítko) a jako výstup si z prvku bereme kompletní payload, tzn celý JSON objekt s daty ze zigbee.

Druhý z leva je prvek SWITCH. V něm lze zadat jeden až n podmínek, které když jsou pravdivé, tak vyšle na odpovídající výstup daného znovu celý svůj vstup.

Tzn prvek nikterak neupravuje vstup, jen ho přepošle na jeden z výstupu dle toho, která podmínka je platná.

Poslední parametr určuje, zda se vyhodnocuje do prvního platného pravidla, nebo vždy všechny. Tzn pokud se nastaví “všechny”, může se aktivovat více než jeden výstup. V mém případě je to jedno, je platná vždy jen jedna podmínka.

K rozhodování, která akce byla na tlačítku provedena testuji JSON atribut msg.payload.action (nastaveno v “property” prvku switch). Pro získání těchto hodnot je nejjednodušší si na začátku napojit DEBUG prvek (ten zelný) přímo na Zigbee2MQTT IN prvek a sledovat co z něj chodí.

Jak jde vidět v debug výstupu, z Zigbee2MQTT IN prvku leze JSON, ve kterém je properta action, battery a linkquality. Nás pro toto rozhodování zajíma jen ta akce, proto msg.payload.action.

 

Třetím prvkem z leva je prvek EXCHANGE. Ten je trochu nešikovně pojmenovaný, protože je to defakto přiřazení do proměnné (připadně změna, smazání či prohození).

 

Lze opět nastavit jeden či více kroků, ale pro naše účely nyní stačí jen jeden. Do přijatého msg.payload (ve kterém se ve chvíli vstupu nachází ještě JSON objekt ze Z2M) přiřadíme úplně jiná data (konkrétně textový řetezec). A to konkrétně taková, kterým bude pro změnu rozumět node-red-contrib-Loxone (dokumentace k Loxone WS třeba zde).

Na screenshotu je příkaz “up”, který posílám do bloku žaluzií. Tím říkám Loxone, aby začal vytahovat žaluzie. Dále pak na základě tlačítka posílám také UpOff, kterým se vytahování vypíná (při uvolnění tlačítka), a down a DownOff na spuštění dolů.

Zároveň zasílám up/down také po kliku na tlačítka. Zatím testuju co je pohodlnější a rozhodně je to jen kliknout a dalším klikem případně vypnout. Takže dlouhé podržení bude pravděpodobně vysunutí pergoly, které nechci, aby se spustilo jen náhodným/omylným kliknutím.

Po kliknutí na prostřední tlačítko pak posílám příkaz “plus”, kterým se přepínají scény v prvku ovládání osvětlení. Kdyby to bylo klasické tlačítko, příkaz by byl “toggle”. Bohužel se mi nepodařilo u bloky ovládání osvětlení vynutit zapnutí/vypnutí konkrétního světla, funguje mi jen přepínání scén.

Posledním prvkem v pravo je pak samotné napojení na WebSocket Loxone. V tomto prvku se nastavuje cílový miniserver, místnost/kategorie a prvek, do kterého se příkaz má poslat.

Do tohoto prvku musíte poslat příkaz, který splňuje podmínky Loxone WS. Ten jsme si připravili v předchozím kroku v prvku Exchange. Vstup vypadá například takto: msg.payload = “plus”. (Jde o obyčejný string zaslaný na cílový prvek).

A to je vše. Pokud jste postupovali podle tohoto návodu, právě jste přijali kliknutí Ikea TRÅDFRI tlačkítka přes Zigbee síť transportovanou přes MQTT protokol do NodeRED, který pak data zkonvertoval do WebSocket příkazu poslaného do Loxone. Snadné, ne? :)).

Pro případné zájemce, zde je NodeRED projekt na celou tuto logiku (stačí dát import a přes clipboard vložit):

[{"id":"c333e3da.bfcd3","type":"zigbee2mqtt-in","z":"4e77380b.b5af18","name":"","server":"4dd4dc36.2cc704","friendly_name":"IkeaButtonRound01","device_id":"0x842e14fffea3ff09","state":"0","outputAtStartup":true,"x":210,"y":240,"wires":[["20102bbc.6f9cb4","9fb1f206.7c05c"]]},{"id":"20102bbc.6f9cb4","type":"switch","z":"4e77380b.b5af18","name":"","property":"payload.action","propertyType":"msg","rules":[{"t":"eq","v":"brightness_up_click","vt":"str"},{"t":"eq","v":"brightness_up_hold","vt":"str"},{"t":"eq","v":"brightness_up_release","vt":"str"},{"t":"eq","v":"brightness_down_click","vt":"str"},{"t":"eq","v":"brightness_down_hold","vt":"str"},{"t":"eq","v":"brightness_down_release","vt":"str"},{"t":"eq","v":"toggle","vt":"str"}],"checkall":"false","repair":false,"outputs":7,"x":450,"y":240,"wires":[["be2577c2.997838"],["be2577c2.997838"],["3373d424.306ccc"],["c3e9d441.d0f198"],["c3e9d441.d0f198"],["9ce742fe.a0b25"],["97d7dcbb.f8e2a","fe05d856.cb7ef8"]],"outputLabels":["","","","","","","toggle"]},{"id":"c3e9d441.d0f198","type":"change","z":"4e77380b.b5af18","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"down","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":700,"y":200,"wires":[["f96c30e8.7c3f2"]]},{"id":"9ce742fe.a0b25","type":"change","z":"4e77380b.b5af18","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"DownOff","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":700,"y":240,"wires":[["f96c30e8.7c3f2"]]},{"id":"be2577c2.997838","type":"change","z":"4e77380b.b5af18","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"up","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":700,"y":120,"wires":[["f96c30e8.7c3f2"]]},{"id":"3373d424.306ccc","type":"change","z":"4e77380b.b5af18","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"UpOff","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":700,"y":160,"wires":[["f96c30e8.7c3f2"]]},{"id":"f96c30e8.7c3f2","type":"loxone-control-out","z":"4e77380b.b5af18","name":"","miniserver":"33d50a38.be2cc6","control":"160f9394-0337-d464-ffff3b22d8e2f329","x":910,"y":180,"wires":[]},{"id":"97d7dcbb.f8e2a","type":"change","z":"4e77380b.b5af18","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"plus","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":700,"y":280,"wires":[["38ab62ac.e8c79e","68c1752.9451b8c"]]},{"id":"38ab62ac.e8c79e","type":"loxone-control-out","z":"4e77380b.b5af18","name":"","miniserver":"33d50a38.be2cc6","control":"0e6f3276-00d7-0359-ffff01c79402a3b1","x":910,"y":280,"wires":[]},{"id":"c8d1c8cf.917108","type":"comment","z":"4e77380b.b5af18","name":"Ikea 5-ovladac pracovna","info":"","x":210,"y":80,"wires":[]},{"id":"d7dee6f.2f79718","type":"loxone-control-out","z":"4e77380b.b5af18","name":"","miniserver":"33d50a38.be2cc6","control":"160f9394-0337-d464-ffff3b22d8e2f329","x":910,"y":80,"wires":[]},{"id":"9fb1f206.7c05c","type":"debug","z":"4e77380b.b5af18","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":460,"y":360,"wires":[]},{"id":"fe05d856.cb7ef8","type":"debug","z":"4e77380b.b5af18","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":720,"y":360,"wires":[]},{"id":"68c1752.9451b8c","type":"debug","z":"4e77380b.b5af18","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":960,"y":360,"wires":[]},{"id":"4dd4dc36.2cc704","type":"zigbee2mqtt-server","z":"","name":"zigbee","host":"host-mosquitto","mqtt_port":"1883","mqtt_username":"","mqtt_password":"","tls":"","usetls":false,"base_topic":"zigbee2mqtt"},{"id":"33d50a38.be2cc6","type":"loxone-miniserver","z":"","host":"x.x.x.x","port":"80","enctype":"2","active":true,"keepalive":"30000"}]

 

Nudíte se ? aneb co když přebývají střešní latě…

Nudíte se ? aneb co když přebývají střešní latě…

Nudíte se?  Kupte si medvídka mývala ! Něco podobného jsem zažíval během babího léta, chodíce kolem hromádky ( 16 ks ) střešních latí a řešením co z nich vyrobit, když už ” všechno máme” . Nebudu se vypisovat o možnostech řešení, takže rozhodnutí bylo vyrobit květináče a to zejména na větší, vyšší “lodyhy” ( např. palma ) tak, aby byly v designu k domečku.

Výroba je “poměrně” jednoduchá , příprava už o trochu horší. Střešní latě jsou standardně řezané na rozměr 40x60mm a květináče měly být vnějškem 40×40 cm a taky 30×30 cm. Technologicky naprosto jednoduše překládáním vrstev do vazby tak, aby zvenku připomínaly čepovaný spoj.

Postup výroby, pokud je výchozím materiálem hrubá střešní lať, je zhoblování na rozměr 30×55 mm. To je hlavní výchozí materiál na vrstvení jednotlivých pater. Dále nařezání na délku ( pokosová pila se hodí ) 37 cm ( pro rozměr venkovní 40×40 cm ) nebo 27 cm pro 30×30 cm květináče. Větší květináč jsem dělal na 5 pater menší na 4 patra. Spodní dno pak ze stavební překližky 12mm rozměru vnějšku kvetňáku.

Výsledek je, že na jeden květináč 30×30 cm potřebujete 18 hranolů 30×55 mm délky 270 mm. Dva jsou určeny dolů jako podstavce. Pro čtyři kusy to pak vypadá materiálově asi takto:

Následuje montáž lepením jednotlivých pater na spodní desku z překližky. Tady se vyplatí si s tím trochu pohrát a hlavně (!) každé patro po nanesení lepidla důkladně a několikrát poklepat gumovou paličkou. Po sestavení je potřeba uplatnit stahovák ( Lidl ) s rohovými pomocnými stojkami ( taky ze střešních latí samozřejmě ), které jednak zajistí polohu a jednak přesahy mezi hranolky, aby nebylo tolik co brousit:

Nezbytně nutné je nechat schnout alespoň 12 raději 24 hodin takto stažené. Pak nastoupí ruční pásová bruska ( opět Lidl za 800,- Kč ale už jen čekám až konečně klekne abych mohl zdůvodnit Makitu 9404 ) kdy nejdříve nahrubo srovnáte všechny čtyři boky . Následuje horní  frézka s konkávní stopkou 12,5 mm na zaoblení vnějších hran a potom broušení na čisto. Stojí za to si s tím trochu vyhrát.

Pak už jen nátěr venkovní lazurou, odstín vám určí bezpochyby manželka či přítelkyně, s tím se nemusíte trápit .

No a aby “to” aspoň chvíli vydrželo, dal jsem dovnitř fólii tak, aby nebyla přímo na stěnách a mohlo to trochu větrat. Do dna vyvrtány čtyři otvory z čehož vždy dva je odvětrání dna pod fólií a dva jsou propojeny 1/4″ PVC trubkou pro odvedení vody z hlíny :

 

Dno stačí natlačit s přesahem tak 2-3 cm a zahnout podél stěny vzhůru, obvodovou fólii pak vložit dovnitř. Ostatně, až tam nasypete hlínu nebude vidět stejně nic…

Výsledek je, že za zhruba 3 hodiny je hotový jeden květináč samozřejmě pokud se jich dělá víc než jeden-dva. Rozměry se dají přizpůsobit v podstatě čemukoliv, není třeba se starat manželky si už řeknu.

Takže pokud se nudíte … nekupujte si medvídka mývala! Museli byste si s ním totiž hrát, krmit, tahat k veterináři atd. atd. atd.

Ideální je nekupovat do baráku nic, z čeho nejdou na zimu vytáhnout baterky, nebo ještě lépe, jen to co baterky nežere !

P.S. k výrobě stačí stavební překližka a hranolky 30×55 nebo podobné. Pokud není protahovačka tak hranoly ohoblované, pilka pokosová ( ani nemusí být elektrická ), pásová bruska ( v nouzi ani ta ). A hlavně pánové! Můžete zalézt do dílničky či jiného prostoru, ženská bude spokojená, že “něco děláte na baráku” a budete mít svatý klid ( na práci samozřejmě ).

(c) Dalibor 2020

ZIGBEE – NodeRED a Zigbee2MQTT

ZIGBEE – NodeRED a Zigbee2MQTT

Jak jsem slíbil v minulém článku, dnes bude další pokračování o mé Zigbee cestě. A musím říct, že nepokračovala úplně vesele. Dost jsem se zasekl na NodeREDu, protože se vše chovalo opravdu značně náhodně.

Následující dva tři články tak budou postupně představení několika super komponent a zároveň i návod, jak řešit případné problémy. Dnes začnu s pluginem Zigbee2MQTT do NodeRED.

Zigbee2MQTT

První věc, která mi v NodeRED udělala opravdu radost, je plugin node-red-contrib-zigbee2mqtt, který je vlastně takový MQTT na steroidech.  Ten velmi usnadňuje integraci zigbee do Loxone. Je to plugin psaný přímo pro potřeby Zigbee2Mqtt bráně, takže rozumí jeho příkazům a umí tak nabídnout spoustu užitečných věcí.

Jednak nabízí pohodlné volby zařízení. Takže namísto odchytávání konkrétní MQTT zprávy si jen v comboboxu vyberete jedno ze svých zařízení (plugin se umí dotazovat Zigbee2Mqtt, takže má přehled o tom, jaké zařízení máte v Zigbee2Mqtt nakonfigurované).

Druhým benefitem je pak automatická konverze přijatých dat do Json objektu a v případě podporovaných zařízení dokonce extrakce konkrétní hodnoty z Json objektu přímo do výstupního msg.payload.

K tomu umí u každého zařízení přímo v NodeREDu ukázat stav baterie, aktuální zpracování zprávy a pár dalších zajímavých stavů. Až potud super. Kdyby vše fungovalo :).

Bohužel, v mém případě se tenhle plugin ze začátku choval tak, že zpracoval každou druhou až třetí zprávu a zbytek ignoroval. Původně jsem podezříval Xiaomi kostku, ale když to samé začly dělat i nově koupené vypínače, bylo jasno.

Zkusil jsem tedy dát vedle sebe jak tenhle Zigbee2Mqtt prvek, tak klasický MQTT. A podezření se potvrdilo. Ve výpisu nahoře jde vidět, že v MQTT je 5x přijatá zpráva a až po šesté je přijata také Zibee2Mqtt komponentou. Zkoušel jsem googlit, psal jsem na github, ale nikde jsem nenašel důvod, proč to zlobí (krom jedné zmínky v githubu, že autor používá nějakou starší mqtt komponentu interně, ale to nevypadalo na zdroj problémů).

Nakonec mě napadlo, že problém bude možná ve verzi NodeRED. Jak jsem zjistil, tak ačkoli používám Docker a oficiální NodeRED image, neměl jsem poslední verzi. Což bylo dost zvláštní.

Bohužel, inženýři z NodeRED se rozhodli pro opravdu vypečený tah. Původně se Docker container s NodeRED jmenoval nodered/node-red-docker, což jim už asi přestalo znít cool, takže repositář nechali ve staré verzi a založili nový, kde jsou další updaty. Ten se nyní jmenuje nodered/node-red. Bezva ne?

Takže pokud někdo používáte Dockerovaný NodeRED, zkontrolujte si repositáře. Dost dobře se totiž může stát, že používáte už obsolete pre-stable verzi 0.20.8 namísto aktuální 1.1.3. Po updatu na aktuální verzi a kompletní rebuild všech kontejnerů a promazání všech cachí začal i Zigbee2Mqtt plugin fungovat jak má. Tím byl vyřešen problém Zigbee2Mqtt.