Aliexpress monster list (Listopad 2021)
Tak po roce zase aktualizace seznamu našich nákupů z AliExpressu s věcmi, které se nám osvědčily. Od zítra je na AliExpressu akce 11.11. kdy mají pravděpdobně největší slevy z celého roku.
Tak po roce zase aktualizace seznamu našich nákupů z AliExpressu s věcmi, které se nám osvědčily. Od zítra je na AliExpressu akce 11.11. kdy mají pravděpdobně největší slevy z celého roku.
Dnešní článek bude o notifikacích. O takových, které můžete použít z jakéhokoli systému domácí automatizace, ale také z jakýchkoli svých hobby projektů, ze serveru, z emailu, prostě odkudkoli.
Aplikace se jmenuje Pushover. Pokud nevíte, proč je tu teď zrovna tento obrázek, nevadí. Ti co vědí, věřím, že ho ocení :). Každopádně, aplikace, o které dnes bude řeč vypadá takto:
Klientská část aplikace, tzn. to, co Vám zobrazuje notifikace, je dostupná pro Android i iOs a dále pak pro desktop jako browser extension pro Chrome, Firefox i Safari.
Posílat notifikace pak můžete buď skrz REST API, nebo zasláním emailu na speciální emailovou adresu, nebo pomocí jednoho z mraky pluginů, které pushover nabízí (například IFTTT, Zapier, Domoticz, Home Assistant a další).
Co se týká poplatků za používání a zasílání notifikací, myslím, že to mají nastaveno hodně rozumně. Neplatí se žádné měsíční poplatky (což fakt nesnáším), ale platí se jednorázový poplatek za každé zařízení, kde chcete notifikace dostávat.
Poplatek je přátelských $5USD za zařízení a platí pro neomezený počet příchozích zpráv od neomezeného počtu aplikací. Na vyzkoušení máte 7 dnů zdarma na každém zařízení.
To “Aplikací” je zde důležité. Při zasílání zpráv totiž můžete v administraci vytvořit několik různých typů aplikací, které mají svou ikonku, složku a nastavení a z ní pak posílat. Díky tomu si můžete notifikace v aplikaci pěkně kategorizovat.
Co se týká počtu odeslaných zpráv, tak každá aplikace může odeslat měsíčně 7500 zpráv zdarma. Pokud je potřeba více, je pak potřeba přejít z osobního účtu na “Team” účet a nabít si kredit. Pro vlastní potřeby jsou ale limity zdarma naprosto dostačující.
Teď už k samotné aplikaci a jak ji použít. Začněte registrací zde https://pushover.net/login, kde pak získáte přístup jak pro klientskou část (tzn. příjem notifikací), tak pro server-aplikaci k odesílání notifikací.
Na vyzkoušení funkčnosti je dobré začít emailem. Přidáme proto testovací emailový alias “Test email”, pro který dostaneme novou testovací emailovou schránku. V mém případě je to [email protected] (nechávám ji zatím zapnutou, můžete mi psát vzkazy 🙂 ).
Pokud nyní zašlete jakýkoli email na tuto adresu, dorazí Vám to jako notifikace na všechny zaregistrované zařízení (připadně ta zařízení, které si v nastavení emailu zvolíte).
A na mobil či desktop Vám přijde zpráva takto:
Pomocí emailového propojení můžete zprovoznit notifikace v zařízeních, kde není možné REST API volání, případně si notifikovat emaily z Vaší emailové schránky. To hlavní je ale právě REST API.
Začněte tím, že si vytvoříte “Application token”. Ten se pak používá při odesílání zpráv skrz API. Zároveň, každá takto vytvořená aplikace má stránku se statistikama, kde vidíte, kolik jste toho poslali.
V mém případě jsem dostal API token ajz8xt2fmbsnpigyyjw67xeoxuhjbx, který budu používat v dalších ukázkách. Opět, token nechávám zatím zapnutý, takže mi můžete posílat zprávy. Když toho bude moc, tak ho pak zakážu :).
curl --form-string "token=ajz8xt2fmbsnpigyyjw67xeoxuhjbx" --form-string "user=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" --form-string "title=Test from curl" --form-string "message=Its working" https://api.pushover.net/1/messages.json
Poznámka: V závislosti na Vašem OS musí být buď celý na jenom řádku, nebo musí být nové řádky adekvátně esacapovány pomocí ^ či \.
Toto je curl příkaz, kterým pošlete notifikaci z příkazové řádky. Na zaslání používám aplikaci “curl“, která slouží k zasílání (nejen) webových požadavků, případně pak PostMan.
V samotném dotazu pak položka “token” je Vaše zaregistrovaná aplikace, položka “user” pak uživatelský klíč (User key) z hlavní obrazovky Vašeho pushover účtu. Title a message jsou nadpis a tělo samotné zprávy.
Kromě těchto základních položek je možné do notifikace předat pár dalších nastavení. Všechny jsou popsány v této dokumentaci. Můžete ke zprávě přiložit obrázek, můžete nastavit, na které konkrétní zařízení má zpráva jít. Dále pak můžete zprávě nastavit nějaký jiný zvuk či její prioritu (ty určují, jak budou zprávy na mobilu zobrazeny a zda se v době klidu má zahrát zvuk).
curl --form-string "token=ajz8xt2fmbsnpigyyjw67xeoxuhjbx" --form-string "user=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" --form-string "title=Test from curl" --form-string "message=Its working" --form-string "priority=1" --form-string "sound=magic" https://api.pushover.net/1/messages.json
Takto třeba vypadá příkaz na zaslání prioritní zprávy s konkrétním zvukem. Na desktopu se pak zpráva ukáže takto:
Nyní se pojďme podívat, jak tyto notifikace poslat z aplikací, které umí provést REST API volání. Tzn. například Loxone nebo NodeRED.
Výše uvedený formát curlu je nám totiž zatím k ničemu, protože takto to do Loxone nedostaneme. Naštěstí umí Pushover i XML, JSON formát nebo “UrlEncoded” formát, o kterém se ale na první pohled v dokumentaci nedočtete.
Pojdmě si tyto formáty ukázat tentokrát v Postmanu. Jako první tento “UrlEncoded” formát. Použijeme “RAW” styl odeslání, abychom si museli sami vyplnit i HTTP hlavičky a tím si ověřili, že umíme vše vyplnit správně kvůli Loxone.
Do “Headers” je nutné vyplnit správně “Content-Type”. Toto zmiňuji proto, že Pushover tuto hlavičku striktně kontroluje a pokud hlavička nesedí s obsahem zprávy, tak zprávu ignoruje. Na tomto jsem se minule zasekl na několik hodin. Problém Loxonu totiž je, že i když ve virtuální výstupu posíláte XML či JSON, on to posílá jako “application/text” a Pushover to pak ignoruje.
Ačkoli formát “x-www-form-urlencoded” umožňuje zadat dotaz v relativně krátkém řetězci, není z mého pohledu ideální. Problém totiž je, že musíte ručně nahradit všechny speciální znaky jejich “encoded” variantama. Tzn. místo mezery musíte psát %20 a podobně.
Proto, na poslání dat z Loxonu se více hodí JSON formát, kde se o tyto věci nemusíte starat, ale zase je trochu delší samotný text k odeslání.
Namísto:
token=ajz8xt2fmbsnpigyyjw67xeoxuhjbx&user=xxxxxxxxxxxxx&message=HelloWorld
budeme posílat tento JSON.
{"message":"HelloWorld","token":"ajz8xt2fmbsnpigyyjw67xeoxuhjbx","user":"xxxxxxxxxxxxx"}
A spolu s tím musíme poslat i správnou hlavičku “Content-Type: application/json”
V Postmanu to pak bude vypadat takto
Tímto máme vytvořený a vyzkoušený požadavek na notifikaci. Toto opravdu vřele doporučuju všem, než se pustíte do samotného zadávání do Loxone. Protože jedna věc je rozchodit to v Postmanu, ale druhá věc pak rozchodit to v Loxone.
I když Vám to v Postmanu bude chodit, stále nemáte vyhráno. Spoustu věcí v Loxone nefunguje a hlavně, nemáte žádnou chybovou odezvu. Prostě se nic nestane.
Pojdmě na to. V Loxone vytvořte “virtuální výstup”, pojmenujte si ho třeba “Pushover Vystup”.
Hned tady číhá velké nebezpečí! Do virtuálního výstupu musíte zadat jeho adresu. POZOR, adresa nesmí obsahovat koncové lomítko, nebo celou URL adresu. Smí obsahovat pouze protokol + název serveru.
Tzn. správně je “http://api.pushover.net“, ale nikoli “http://api.pushover.net/” nebo “http://api.pushover.net/1/messages.json”. Právě jsem Vám ušetřil dvě hodiny trápení. Zamálo :).
Další krok je pak konfigurace samotného příkazu. Ukážeme si, jak odeslat data v obou formátech (url-encoded a json).
Tady těch nebezpečí číhá hned asi tak milión, tak pojdmě na to.
Nebezpečí číslo jedna. Instrukce při zapnutí MUSÍ začínat lomítkem. Pokud si myslíte, že Loxone umí toto lomítko doplnit (nebo použít v případě, že ho dáte do adresy v minulém kroku), jste na omylu. Tzn., instrukce musí být ve formátu “/1/messages.json“, nikoli “1/messages.json” či “http://api.pushover.net/1/messages.json”. Další dvě hodiny trápení. You’re welcome!
Další lahůdka je “HTTP rozšíření při zapnutí”. Už jsem to psal minule, pod tímto názvem se skrývá odeslání HTTP hlaviček. Jak jsem psal, Loxone neumí rozeznat ani základní odesílané typy a proto je nutné Content-type odeslat ručně, jinak se s Vámi Pushover bavit nebude.
Tzn., do HTTP rozšíření při zapnutí vyplňtě “Content-Type: application/x-www-form-urlencoded“.
Dejte si pozor na to, že opravdu zkopírujete přesně jak to zde píšu. Pokud totiž zadáte “Content-Type:application/x-www-form-urlencoded” – tzn. bez mezery, jste opět v háji. Loxone totiž takto zadaný Content-Type ignoruje. Další dvě hodiny trápení ušetřeny.
Samotný HTTP Post příkaz pro zapnutí už naštěstí v případě Loxone další překvapení neskrývá. Zde už zadáte řetězec tak, jak jste si ho vyzkoušeli v Postmanu. Tzn. “token=ajz8xt2fmbsnpigyyjw67xeoxuhjbx&user=xxxxxxxxxxxxxxxxxxxxx&message=HelloWorld”
A do HTTP při zapnutí pak dejte POST.
Tím je hotovo. Pro JSON pak postupujte podobně:
Instrukce: /1/messages.json
Rozšíření: Content-Type: application/json
Příkaz: {"message":"helloworld","token":"adpddeny9puzybmr1de6vn11yyfc2w","user":"xxxxxxxxxxxxxxxxxx"}
HTTP při zapnutí/vypnutí: POST
Tím máte nakonfigurovaný virtuální výstup na zaslání zprávy při zapnutí/vypnutí. Bohužel, budete pravděpodobně potřebovat spoustu virtuální výstupů pro každý řetězec, který chcete z Loxone notifikovat. Není zde totiž příliš mnoho možností, jak takový JSON předpřipravit z dostupných parametrů a ten pak až odeslat.
Částečně se to dá suplovat pomocí prvku Stav, který umožnuje 4 vstupy a z nich vytvořit jeden textový výstup. Pomocí binárního multiplexoru/demultiplexoru jste schopni ze 4 vstupů udělat 16. Bohužel, v podání Loxone sice máme “Binární kódování”, ale už tak nějak neexistuje “Binární dekódování”.
V NodeRED je situace s Pusoverem o dost jednodušší a vlastně to bude popis jen na pár řádků. Detekce Content-Type funguje automaticky, stejně tak se snadno zadává i URL dotazu.
Tady je request pro vložení do NodeRED, stačí jen vložit Váš user-key a token do vstupního JSON:
[{"id":"15258bfd.f63314","type":"inject","z":"2d78ae47.c1a9a2","name":"make request","topic":"","payload":"{\"message\":\"HelloWorld\",\"token\":\"ajz8xt2fmbsnpigyyjw67xeoxuhjbx\",\"user\":\"xxxxxxx\"}","payloadType":"json","repeat":"","crontab":"","once":false,"onceDelay":"","x":510,"y":580,"wires":[["e690ef61.8b0f9"]]},{"id":"e690ef61.8b0f9","type":"http request","z":"2d78ae47.c1a9a2","name":"","method":"POST","ret":"txt","paytoqs":false,"url":"http://api.pushover.net/1/messages.json","tls":"","proxy":"","x":710,"y":580,"wires":[["5b512352.6d2b2c"]]},{"id":"5b512352.6d2b2c","type":"debug","z":"2d78ae47.c1a9a2","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":930,"y":580,"wires":[]}]
JSON požadavek pro Pushover vložíme rovnou ze vstupního node jako Payload.JSON:
kde můžeme pěkně JSON rovnou i editovat:
Prostřední node – http request – pak nastavíme tak, aby se dotazoval na cílovou URL adresu Pushoveru (komplet adresa, server + URI):
A třetí node je pak už jen debug výstup, abychom viděli, co nám Pushover vrací jako odpověď.
A to je vše. Máme notifikace zprovozněné i z NodeRED a bolelo to o dost méně než v případě Loxone :).
A to je pro dnes vše. Věřím, že pro Notifikace najdete spoustu využití. Nemusí to být jen o notifikacích z domu samotného. Lze to použít i například pro notifikace z Arduin, které v domě a kolem něj dělají hromadu jiné práce, nebo třeba pro pracovní a hobby projekty, když se někde na serveru něco děje.
Navíc, díky možnosti vytvářet neomezené množství “aplikací” je snadné mít v notifikacích pořádek a využívat je i zpětně pro logování stavu domu.
Pokud si nastavíte, že notifikace nemá pípat (a tuším, že jde nastavit, že se ani na mobilu přímo neukáže v notifikacích), lze to použít i na logování třeba spínání kotle či topení rekuperace a pak se jen zpetně podívat, kdy se to dělo.
V minulém článku jsem popsal kompletní postup sestrojení automatické závlahy z Arduina, nyní tu zrekapituluju tu programovací část.
Začneme od NodeRED, takže vlastně trochu z prostředka. Dost se mi osvědčilo mít Wemosy co nejhloupější, stejně tak po Loxonu toho raději moc nechtít. Takže hlavní logiku mám v NodeRED, kde se dobře upravuje i testuje. Diagram ovládání jde vidět na obrázku nahoře. Defakto jen překlad Http volání do MQTT topiců a k tomu troška logiky.
Pro každý ventil mám v NodeRED jednu Http URL adresu, pomocí které ho ovládám. Takže například zapnutí vody z vodovodního řadu vypadá takto: http://nodered.dum/irrigation/input/water?state=on. Pokud zadám tuhle adresu, chytne ho tento node. Veškeré parametry za otazníkem převede do Json objektu a předá dál. Takže z Http nodu vylézá objekt typu { “state” : “on” }.
Funkce Payload from state je zase vcelku jednoduchá. Jediné, co udělá, je, že ze vstupního objektu vyčte hodnotu “state” a tu pošle dál. Je to proto, že tato hodnota pak vstupuje do MQTT nodu, přes který se hodnota odešlě na MQTT server. Pokud bychom to propojili napřímo, vložil by se celý objekt.
Takže, jak jsem psal, z { “state”:”on” } se stává “on” a to se posílá do MQTT. Konkrétně jako topic “zavlaha/relay/0”. Pro každé relé mám udělaný samostatný topic, který pak wemosy naslouchají a podle toho relé nastavují. O tom dále.
Poslední, co by asi stálo za zmínění v NodeREDu, je hlídač na automatické vypnutí. Jakmile přijde jakýkoli příkaz na závlahu, automaticky se spouští counter, který automaticky vše po 60ti minutách vypne. Je to proto, že z Loxonu povel například nemusí dorazit a tak by se zalévalo donekonečna. Takto, dokud přicházejí povely, coutner se resetuje. A když nic nedorazí, pro jistotu se ještě vše vypne (PS: Je potřeba použít prvek trigger, nikoli delay. Delay se totiž dalším impulzem neresetuje, ale notifikuje pak všechny).
Od NodeREDu se teď posuňme k Loxonu. Opět, v Loxonu žádná magie. Jen hromada virtuálních výstupů, které volají definované HTTP endpointy. A k tomu pár časovačů, které pak dělají samotnou automatizaci.
Výstupy mám pak napojené na tlačítka, abych mohl v případě potřeby ovládat závlahu i ručně. A tlačítka jsou pak automatizované pomocí časovačů.
A to je celé kouzlo v Loxonu. Jen tupý program, co ukáže tlačítka a v daný čas ho spustí. To by snad Loxone neměl pokazit :)))). Výhledově pak ještě musím dodělat detekci deště a zautomatizovat napojení retenčky. Tam mne čeká ještě čidlo úrovně hladiny vodz. Takže se pak LoxConfig ještě trošku zkomplikuje.
A teď k Arduinu a programu pro Wemos. S ním ještě nejsem úplně spokojený a jestli si najdu čas, chtěl bych celou logiku ještě více zobecnit a zjednodušit. Logika pro relátka vychází z programu, co jsem měl pro ovládání vánočního stromečku. Ono je totiž téměř jedno, co člověk spíná.
Teda, skoro jedno. Původní program totiž fungoval tak, že poslouchal MQTT topic /christmastree/relaystate. Když přišel řetězec typu 0100100 tak podle toho věděl, že má vypnout první relé, zapnout druhé relé, vypnout třetí a čtvrté, zapnout páté,….. To je fajn, když ovládáte světýlka stromečku, ale naprd, když chcete v danou chvíli ovládat jen některá relé.
A tak jsem firmware upravil tak, že krom kompletního stavu umí ještě naslouchat na více různích topicách pro jednotlivá relé, konkrétně /rele-identifikator/rele/0-n. Takže pak jde například zapnout relé 5 tak, že do topicu /rele-identifikator/rele/5 zapíšeme buď 1, nebo “on”.
A podle toho, co za topic dorazí, se pak buď parsuje celý řetězec, nebo jen konkrétní relé. Krom úpravy na různé topicy ale bylo potřeba ještě vyřešit komplikace se dvěma Wemosama. Z pohledu MQTT jsem nechtěl topicy nijak odlišovat, takže bylo potřeba jednotlivé Wemosy naučit, od jakého indexu relátka obsluhují.
Takže, pro každý modul je samostatný ifdef, kde je definovan jeho mqtt client name (protože ten musí být pro každé zařízení unikátní), od kterého indexu relé tento modul obsluhuje, a které digitální výstupy jsou v jakém pořadí použity.
Jenže, to je přesně to,co se mi vůbec nelíbí. Toto bych chtěl předělat do nějaké online konfigurace, aby po prvním najetí šlo přes HTTP tuhle konfiguraci zadat a nemuselo se při flashování nahrávat vše napevno. Něco podobného už má vyřešený Martin Doubek pro svůj Swifitch. Takže mu na to budu muset mrknout a okopčit :))
Cílem je, abych měl jednotný firmware, který budu moct nahrát do jakéhokoli Wemosu a jen mu pak dynamicky nastavil, které výstupy ovládají která relátka, které topicy má poslouchat, atd. Dalším vylepšením pak ještě chci udělat, aby po sepnutí relé zapsal do nějakého dalšího topicu stav po sepnutí. Tzn aby bylo vidět, že akci opravdu provedl. Jestli se k tomu někdy dostanu, tak bych z toho pak udělal nějaký veřejný firmware, co by si každý mohl stáhnout a nahrát do Wemosu, aniž by musel bojovat s programováním.
To je děs, jak ten čas frčí. Koukám, že poslední článek je už zase měsíc starý. Ale bylo toho teď zas nějak moc. Pořádal jsem rozlučku, pak jsem dělal o týden později svědka a o další týden později jsme byli na týden u móóře. Konkretétně v Chorvatsku, kde se všichni asi už úplně zbláznili, protože zdražili na dvojnásobek a kvalitu služeb ještě zhoršili. No nic…
Ale k dnešnímu tématu. Už nějakou dobu mám hotovou závlahu po technologické stránce. Jen nějak furt nebyl čas a materiál na automatizaci. A tak jsem pořád chodil kroutit ventilama ručně :). 
Něco málo z elektroniky jsem stihl ještě před dovolenou, ale první nasazení se nakonec uskutečnilo až dnes. Není to sice stále úplně hotové, ale už to umí zalévat a já to nebudu muset dělat ručně. Závlahu jsem postavil nad WemosD1 a relé boardem. Hlavice se mají ovládat pomocí 24V, ale stačí jim i 12V.
Bohužel, trochu jsem to nedomyslel s počtem okruhů. Ačkoli jich mám jen sedm, tak mám ještě dva vstupy (retenčka a vodovodní řad), což dělá celkem devět hlavic a tím pádem devět relé. No, takže 8-relé board byl málo. Takže 8+2 relátek. No a druhý problém byl s Wemosem. Devět výstupů se mi nepovedlo rozchodit. Výstup D4 je využívaný stavovou diodou a D8 mi stávkoval.
Takže bylo nutné nasadit wemosy dva :). Ale zase kdo to má, žejo, blbá závlaha řízená dvěma procesorama :).
O napájení se stará zdroj 12V/5A z Aliny (co jsem měřil, vypadá na tyhle účely dostatečně), k tomu pak DC-DC měnič na 12V-5V pro Wemosy a 12V přes relé na jednotlivé hlavice.
Vše pokusně pospojovat, ověřit funkčnost a otestovat, že se to do té krabičky nějak vejde :). Tou dobou jsem sice ještě nevěděl, jak to nakonec udělám, ale to mne nějak moc netrápilo a tak jsem pokračoval dál :).
Nakonec jsem koupil na relátka a Wemosy ještě o trochu vyšší krabičku a samostatné prostupky. Tou dobou jsem už tušil, jak asi komponenty v krabici rozmístím a tak jsem začal vrtat a skládat.
Abych nemusel všechno kompletovat v kuse až venku, připravil jsem si spoustu věcí pomocí různých spojek a konektorů. Takže jsem toho mohl většinu dodělat ještě u sebe v technické místnosti na stole a venku jsem pak už řešil “jen” konektory.
Tady jde vidět finální test komponent před kompletací krabičky. Nakonec jsem to vymyslel tak, že 8-relé board je přišroubovaný ke dnu krabice, zatímco 2-relé, 2x Wemos a DCDC měnič jsou přilepeny pomocí tavné pistole na bocích krabice.
Trochu jsem se bál, jak to bude držet a vypadat, ale je to naprosto supr. Pistole za pár dolarů z Aliny a kolik parády to udělalo.
Myslím, že by to mohlo držet navěky. Že dřív budu potřebovat něco vyměnit, než že by to pustilo. Oba Wemosy jsem si dal schválně USBčkem nahoru, protože ještě předpokládám update firmwaru (a updatu na dálku zas tak nevěřím).
Druhá krabička je pak o dost méně zajímavá. V ní je jen samotný zdroj, přívod 230V a odchozích 12V. Zatím mám zdroj připojený na klasickou 230V zásuvku, protože mne ještě čeká natahání elektriky ven přes chráničky, dozapojení v rozvaděči, atd. Takže zatím to mám napojené přes prodlužku (trošku na prasáka, no…).
A tady už jsou pak další fotky z dneška, kdy jsem se pustil do instalace venkovní části. Postupně jsem si ven zvládl vynosit tak polovinu dílny, jelikož mi furt něco chybělo.
Nejdřív jsem udělal konektory na ventily v levém boxu. To ještě šlo, protože délka kabelů od ventilů byla dostatečná. Takže akorát propojit s konektorem a trochu zpacifikovat jednotlivé kabely, aby v tom byl pořádek.
Horší to bylo v pravém boxu. Tam už kabely nedosáhly, takže jsem to musel prodlužovat a ještě pak napojovat na konektory. To byl fakt opruz.
A takhle pak vypadalo pozapojování ventilů k relátkům.
A tady už první testování. Kupodivu všechno fungovalo hned napoprvé.
Jediný zádrhel je, že když se krabičky zavřely a daly nalevo od ventilů, došel wifi signál. Takže musí být momentálně krabička s Wemosama těsně pod víkem šachty, aby byla online. To ale výhledově vyřeším tak, že dám na půdu ještě jeden Unify AP a nasměruju ho na zahradu. Tím bych měl pokrýt vše i pro další čidla/ovládání, které plánuju.
A takhle vypadá výsledek. Ten červený kabel vlevo je ta zmiňovaná prodlužka. Ta teď bude dočasně vše napájet, než udělám finální venkovní elektriku. Pro jistou je to ještě zabalené v igelitu a zatažené stříbrnou izolepou. A to je pro teď vše. Pak už následovalo ladění SW a propojení s Loxonem. O tom v dalším článku.
Darovanému koni prý na zuby nekoukej. Nevím, jak je to ale s koňem vyhraným a s doplatkem. Snad se o takových koních nějaká ta kritika dá napsat.
Začnu popořadě. Vyhrál jsem 5000kč kreditu na BigClown IoT věci. Měl jsem radost.
Když jsem si pak začal procházet BigClown eshop, trochu mne radost přešla. Zvyklý na ceny Wemosu, Arduina a dalšího HW z AliExpressu se mi ceny na eshopu BigClownu zdály… jak to říct. Přemrštěné.
Jasně, dělají to kluci všechno v CZ (prý), dělají to s láskou, mají k tomu spoustu SW, dokumentaci, podporu. Navíc, s kýmkoli jsem u nich mluvil, byl vždy milý, ochotný, nápomocný. Takže stále převažoval pozitivní pocit.
A tak jsem začal zjišťovat, jak bych kredit využil. Zrovna jsem řešil CO2 dekektory do ložnice a k prckovi. Koukám, že CO2 detektor mají. Tak si říkám, koupím CO2 + core modul, pošlu to přes wifi, víc nepotřebuju.
Bohužel, chyba. Big clown nepodporuje wifi, ale mají vlastní síť postavenou na 868/915Mhz síti. Což je fajn. Jenže, potřebujete Core modul s rádiem (725kč) a k tomu USB dongle za 600kč, který pak ale někde ještě musí běžet.
To znamená další zařízení, o které se budu muset starat. Řešení jsou buď nějaké Raspbery PI, Docker instance v NASu a nebo Turris Omnia. Říkám si ok, tak i toto má řešení, pojdmě do toho.
Zkonzultoval jsem s člověkem z BigClowna můj nápad a on mi dal dohromady nákupní seznam věcí, co potřebuju k realizaci. Trochu se to rozrostlo. Ale ok. Zároveň ale musím vyzdvihnout ochotu BigClown lidí, ta je prostě super. Jde vidět, že mají rádi to, co dělají.
A poslal mi seznam (ceny jsou o něco vyšší než mají teď na eshopu, protože zlevňovali):
USB Dongle 890 Kč Core Module 790 Kč Battery Module 390 Kč Power Module 490 Kč CO2 Module 2.490 Kč Humidity Tag 249 Kč
Komponenty jsem chtěl na 2 stanice, takže celková cena se vyšplhala na 8728kč, ale dostal jsem slevu, takže nakonec jen 7000kč. Uff. Ale dobrá, je to doplatek jen 2000kč nad to, co jsem vyhrál, dám jim vydělat a aspoň si to vyzkouším.
Tady trochu přeskočím v čase a dodám, že záhy následovala druhá objednávka, kde jsem ještě doobjednal tyto komponenty:
2x Temperature Tag 125kč
2x Barometer Tag 225kč
2x Cover module 100kč
Takže dalších 900kč. Důvodem bylo, že jsem chtěl dát dohromady přesně stejný CO2 senzor, jako je ten referenční. Důvod objasním později, každopádně cena jednoho CO2 modulu se vyšplhala na cca 4000kč.
Pořád jsem ale věřil tomu, že když už to stojí takové peníze, jen to dám dohromady, rozchodím a bude to. Jenže, tak jednoduché to nebylo.
První, co na BigClownu člověk uvidí a ocení je jednoduchost, s jakou se vše složí. Jenže, vlastně toho moc jiného zas udělat nejde. Existuje několik modulů, ty se do sebe zacvaknou a tím člověk s HW skončil.
Na to, že se BigClown platforma prezentuje jako punková, jako geekovská, tak jde spíš o BFU věc. Za 4000kč si koupíte skládačku, co dáte za 5minut dohromady, pak ji strčíte do krabičky a tváříte se, jaký jste IoT mág.
Samozřejmě, jde to rozšířit. Má to piny, má to vstupy, má to výstupy. Jenže, to má arduino za pár $$ taky. Z tohohle pohledu jsem úplně nepochopil cílovku. Pokud jsem nováček, radši spálím při pokusech deset Wemosů D1 a stále si jich budu moct 200 koupit, než si koupit jeden kit BigClowna a bát se, co mu udělám.
Na prototypování je to fajn, ale zase. Existují na to lepší zařízení, například nějaké Arduino Mega za pár peněz. Ale nic, neklesal jsem na mysli a tešil se na vymazlené IDE, odkud budu věci uploadovat do Core modulu. Těšil jsem se, jak to mají vymazlené, jak se zase naučím něco nového a jak z toho pak něco použiju třeba i na Wemos…..
A zase zklamání. Když jsem začal zjišťovat, jak to je s BigClown ekosystémem, narazil jsem hned na dva zádrhele. Tím prvním je ještě nehotová dokumentace, kde je všude TODO. Ano, lidé od nich na tom pracují, a opět při dotazu přes mail jsou hodně ochotní. Ale. Za 8000kč HW a dokumentace má spoustu TODO sekcí (stav ke dni 17.12.2017).
Ať jsem dělal co jsem dělal, nenašel jsem nic v dokumentaci žádný článek o nějakém IDE. Podezřelé. Ale nic, třeba se to vyjasní časem, budeme číst od začátku a postupovat postupně.
Pro BigClowna potřebujete dva balíky. Toolchain Setup a Playground Setup. První jsou různé drivery, to druhé pak prostředí, pomocí kterého si můžete BigClowna otestovat. Hurá, tešil jsem se.
Instalace Toolchainu proběhla ok. Zkusme tedy Playground, ať už vidím nějaké kód, něco vyzkouším. Aha. Nevyzkouším.
Instalátor Playgroundu je zabugovaný. Nefunguje. Navíc, pokud na Vašem počítači používáte vlastní instalaci Pythonu nebo Node.JS, oboje Vám bude nejprve odinstalováno a pak přeinstalováno BigClowní verzí. WTF.
Kromě toho bude během instalace playgroundu nainstalována další hromada balastu (NPM, NodeRED, Mosquitto,….), kterážto ale skončí chybou, takže nic nefunguje, ale přitom je na disku vše uloženo.
Proč? Chtěl jsem jen nějaké IDE, napsat si HelloWorld program, poslat ho do BigClownu, nechat ho zablikat diodou! Proč potřebuju na první seznámení tohle všechno? Navíc, já už svůj NodeRED i mosquitto mám. A teď mi to straší i na notebooku a ještě nefunkční. A kde je nějaké to IDE?
No, nebudu to maskovat, to už mne to fakt sralo. Nic nefungovalo. V dokumentaci TODO, Instalátor ERROR. Nebudu tu dlouze popisovat jak, ale nakonec jsem si to sám vyřešil a opravil (to bude součástí druhého článku na téma “Jak zprovoznit BigClown”).
Vzdal jsem IDE, vzdal jsem vlastní Hello World. Já už vlastně ani nechtěl programovat. Měl jsem jen jeden cí. Zprovoznit CO2 senzory a vydolovat data. Prosím, ať aspoň to funguje. A co myslíte? Ani prd.
Invalid DFU suffix signature A valid DFU suffix will be required in a future dfu-util release!!! Cannot open DFU device 0483:df11 No DFU capable USB device available
Zkusil jsem nahrát hotový SW na CO2 monitor do Core modulu dle návodu na stránkách BigClown. Jenže, chybová hláška viz výš. Takže, ani to nepůjde po dobrém.
Nakonec jsem našel návod, jak chybu odstranit.
Pomocí utility Zadig je potřeba odstranit špatné DFU ovladače ve vašem počítači, které jsem ale 5 minut před tím nainstaloval pomocí oficiálního BigClown instalátoru. Proč se proboha nenainstalovaly správně? Proč to musím hledat někde v dokumentaci? A to jsem to testoval na úplně čisté instalaci windows. Nedokážu si to představit testovat to na svém pracovním kompu.
Ok, drivery jsem opravil. Už to půjde? Už to bude bez problémů? Ale kdeže….
bcf flash --dfu bigclownlabs/bcf-kit-wireless-co2-monitor:latest
Zajímavé. Udělal jsem vše podle návodu a stejně to vrací chyby. Ale kupodivu tyhle chybové hlášky neznamenají, že se SW nenahrál. Nahrál. A vše je vlastně OK. Asi chtějí jen případné Punkové nováčky udržet v pozoru.
Někde v téhle fázi boje jsem si uvědomil, že moje jediná šance na zachování zdravého rozumu je použít kompletně referenční projekt, nic neupravovat a neměnit. A proto jsem doobjednal zbývající komponenty. Aby vše fungovalo (hehe, já naivka).
Doobjednal jsem proto teplotní, tlakové a vlhkostní čidla (tagy) i krytky, aby vše fungovalo a vypadalo jako u nich. A pak počkal na dodávku. Když vše dorazilo, pokračoval jsem.
Když komponenty dorazily, krabičky jsem zkompletoval a pustil se do rozchození přenosu mezi Core modulem a USB donglem. A co byste řekli? Vše při starém, hromada dalších problémů.
Stále jsem se snažil pochopit, jak spárovat zařízení. Kde je něco, čím párování udělám? Jak komunikace funguje… Jenže, to v dokumentaci taky moc popsáno není. Jediné co se dozvíte je, že na spárování USB donglu a zařízení potřebujete NodeRED, MQTT a další programy. Proboha….
A to je podle mne další obrovská zvláštnost u BigClownu. Namísto jednoduchých příkazu je potřeba strašně moc balastu. Všechno je obaleno deseti vrstvama. Namísto konfiguračního souboru a nějakých příkazů potřebujete funkční BigClown toolchain + Mosquitto server + NodeRED na to, abyste přidali nové zařízení.
Já si teda punk představuju jinak. Opět nechápu, na koho je tohle cíleno. To si jako ten teenager koupí zařízení za 4000kč, za 5 min si ho složí, pak si nainstaluje hromadu SW (kde vlastně ani instalátor nefunguje), do něj vloží CTRL+C a CTRL+V bloky, klikne na tlačítko “spárovat” a cítí se punkově? A vypráví pak ve škole, jakej je IoT mág?
No ty bláho. Ale dobře. Takže cíl byl rozchodit tohle všechno ručně, protože instalátor moc nepomohl. Psal jsem tedy znovu na podporu i s dotazem, jeslti třeba není nějaká ta command line utilita.
A ona je. Jmenuje se BCG (BigClownGateway) a je to driver, který převádí data z Usb donglu to MQTT. To je bohužel to nejníž, kam se člověk dostane. Pod tím je už zřejmě jen BigClown protokol, co přenáší šifrovaná data ze zařízení do Donglu. Ten pak vezme ID zařízení, název a hodnotu dat a pošle to jako MQTT zprávu.
c:\Program Files (x86)\Python36-32\Scripts\bcg -H dockerserver.dum -P 1883 --debug
Ok, výborně. Už vím jak pustit samotný přenos ze zařízení do USB Donglu a z něj pak převést data do mého MQTT serveru. To už bude hračka. Bude?
c:\Program Files (x86)\Python36-32\Scripts>bcg -H dockerserver.dum -P 1883 --debug 2017-12-15 11:07:47,373 INFO: Start 2017-12-15 11:07:47,391 INFO: Connected to MQTT broker with code 0 2017-12-15 11:07:47,391 DEBUG: subscribe gateway/all/info/get 2017-12-15 11:07:47,392 DEBUG: subscribe gateway/ping
No jasně že ne. Nebyla a nebude. Ačkoli podle výstupu to vypadalo, že vše jede. Že je BCG připojeno k MQTT, že jsou zaregistrovány MQTT topicy, že je vše ready, nic se nestalo. Nic to nedělalo.
Tak jsem zase zkoušel vše možné i nemožné a další hodina byla háji. Ověřil jsem jiný MQTT server, zkusil simulovat MQTT příkazy. Vše fungovalo až na BCG utilitu.
Tak mne napadnlo, jestli třeba není nějaký konflikt s COM porty. Byl a nebyl. Utilita v základu používá linuxový port /dev/ttyUSB0 a je jí jedno, jestli je na Linuxu nebo Windows. Je jí i jedno, že se to nedaří. Nijak se neobtěžuje informovat o tom, že se třeba bude zkoušet připojet k danému portu, nebo že se to ani po 10ti minutách nepovedlo.
Chjo. Tak jsem chování opět nahlásil zpět do BigClownu ochotné podpoře, ta mi domněnku potvrdila a já testoval dál.
bcg -H dockerserver.dum -P 1883 --device COM4 --debug
2017-12-15 11:26:37,713 INFO: Start
2017-12-15 11:26:37,728 INFO: Connected to MQTT broker with code 0
2017-12-15 11:26:37,728 DEBUG: subscribe gateway/ping
2017-12-15 11:26:37,729 DEBUG: subscribe gateway/all/info/get
2017-12-15 11:26:37,733 INFO: Opened serial port: COM4
2017-12-15 11:26:37,733 DEBUG: write b'["/info/get", null]\n'
2017-12-15 11:26:37,760 DEBUG: read b'["/info", {"id": "836d19836e74", "firmware": "bcf-usb-dongle-v1.5.5"}]\n'
2017-12-15 11:26:37,761 DEBUG: subscribe gateway/bcf-usb-dongle-v1.5.5/+/+
2017-12-15 11:26:37,764 DEBUG: write b'["$eeprom/alias/list", 0]\n'
Výborně. Po zadání portu se už správně otevřel COM4, který je napojený na USB Dongle. Zdá se, že to z USB donglu i data čte. Tak žeby? Žeby, prosím, žeby už to fungovalo?
Stisknu tlačítko “List all gateways” a co nevidím, V debug výpise se mi vrací správně identifkace USB Donglu. Tím získávám nezlomitelnou sebedůvěru, že už bude vše dobré. Že jsem vyhrál.
Mačkám tedy druhé tlačítko “Start node pairing”, restartuju CoreModul abych vynutil párování a NIC….. zase NIC. Moje ego i důvěra ve vlastní schopnosti klesá na nulu. Jak proboha nemůžu být schopný rozchodit něco, co je stvořeno pro Lamy, stojí to víc než kdejaký chytrý telefon a má to být Punk?
Jak to, že jsem Wemose a Arduino rozchodil za hodinu a nic jsem o tom tenkrát nevěděl a tohle, se všema těma zkušenostma, nedokážu rozchodit? Je chyba ve mně? Jsem lama? Je to věkem? Je to osobní?
No tak zase píšu na podporu. Posílám screenshot, popisuju chování a potupně žádám o další radu. Odpověď přichází záhy. Chce to aktualizovat dongle, 1.5.5 pouzival slova jako enrollment.
NOJÓ. Že mne to nenapadlo rovn… CO? Proč proboha nemá USB Dongle nemá rovnou správnou verzi firmware, než to těm nebohým lamám pošlou? Proč to nezjistil už installátor? Proč to nenapíše nějakou hlášku v tom NodeREDU? Proč to není někde viditelně v dokumentaci? PROČ?
A jak to mám vlastně zaktualizovat? Nikde jsme o tom nic nečetl (minimálně né v základních kapitolách Big clown for dummies). A tak posílám další email s žádostí o link. Odpověď opět téměř ihned. Jsem vysvobozen!
Opět nutno zmínit, že podpora je fakt ochotná. Bez nich bych to nerozchodil. Asi bych to vzal, zahrabal, zapálil, pohřbil a dělal, že se to nikdy nestalo. Pan Blavka z BigClownu prý na starosti dokumentaci, na které momentálně intenzivně pracuje. Všechno, na co jsem narazil jsem mu rovnou i posílal, takže to snad pro další Punkery už bude jednodušší.
bcf flash --device /dev/ttyUSB0 bigclownlabs/bcf-gateway-usb-dongle:latest --devices COM4
Tak jo, zkusme aktualizovat Usb stick. Snad to už bude poslední aktualizace, poslední zádrhel.
Ohóoo. Po updatu USB donglu začalo fungovat i napárování a posílání dat. Zase jsem se cítil jako král.
Po cca deseti hodinách laborování jsem zvládl rozchodit BigClowna s posíláním dat do NodeREDu. Z toho co jsem zažil se nabízí otázka, jestli ten Punk není náhodou v tom rozchození všech nástrojů a ve vyřešení nástrah nekompatabilních driverů, firmwarů a softwarů.
Když fungovaly data, bylo pak na čase to spojit s Loxonem. A protože je tenhle článek už tak pekelně dlouhý, nechám si to na příště a pojmu to trochu obecně. Půjde totiž o přenost dat mezi MQTT a Loxone, takže to může být použito pro jakékoli jakékoli zařízení, včetně mých oblíbených Wemosů.
Zároveň mám pak ještě rozepsaný jeden čánek, kde popíšu přesně celý postup rozchození BigClowna, kdyby s tím třeba někdo někdy taky bojoval (a nebo kdybych to za čas musel kvůli nějakému updatu absolvovat znova já).
Co se týká BigClowna obecně, celému konceptu prostě nerozumím. Maskuje to jak hardware, firmware i programování pomocí strašně moc high-level konceptů. Namísto přímého přístupu k HW je tam spousta balastu. Do toho HW, které je opravdu dost drahé a na první pokusy bastlení, kdy člověk logicky něco spálí, dost nevhodné. K tomu pak všechny výše popsané komplikace, které by člověk čekal u HW z Aliexpressu, ale ne u namíru prodávaného HW.
Nevím, možná je nějaká cílovka, kterou nevidím. Možná to jsou firmy, ale pak nechápu punkový styl. Možná to jsou bohaté děcka, co chtějí machrovat. Možná je to někdo úplně jiný.
Buď jak buď, chce to dodělat dokumentaci, vychytat celý proces tak, aby stejně jako trvá 5 minut zapojení HW, trvalo 5 minut i rozchození SW. A určitě to chce nějaké IDE, ukázky jak si napsat něco vlastního a celkově ten HW trochu víc přiblížit uživateli. Já měl takto pocit, že se ho celou dobu BigClown snaží předemnou schovat.
Po nějaké době jsem se zase dostal k sumarizaci našich nákupl na Aliexpressu:)). Tentokrát přibylo 70 nových věcí, tak bude určitě zase z čeho výbírat.
| Přidáno | Co | Proč/K čemu | Za kolik | Obrázek |
|---|---|---|---|---|
|
19.4.2017 |
KM8 Pro Smart TV Box Android 6.0 TV Box | $55.98 |
![]() |
|
|
19.4.2017 |
1M 100cm Male to male USB3.0 Cable line 1.0M | $2.16 |
![]() |
|
|
19.4.2017 |
16.5cm Cable + 3 Port Aluminum USB 3.0 Hub With MS SD M2 TF | $8.18 |
![]() |
|
|
19.4.2017 |
100% Original SanDisk 48MB/s | $5.99 |
![]() |
|
|
19.4.2017 |
ES Stock Original Kingston Micro SD | $5.99 |
![]() |
|
|
19.4.2017 |
Banana Pi M3 Power Adapter | $3.48 |
![]() |
|
|
19.04.2017 |
Portable Mini i8 i8+ Backlit Bluetooth Wireless Keyboard 2.4G | $9.99 |
![]() |
|
|
19.04.2017 |
FM4 2.4GHz Wireless Remote Controle for TV | $4.74 |
![]() |
|
|
19.04.2017 |
Orange Pi PC2 SET2 Orange Pi PC2+ | $23.99 |
![]() |
|
|
19.04.2017 |
Professional Wired Gaming Mouse 7 Button 5500 DPI LED | $4.56 |
![]() |
|
| 11.11.2016 | SanDisk 32GB USB 3.0 flashka | Když už jsem byl v tom nakupování, tak sem si vzal i USB3 flashku, protože ty moje jsou děsně pomalé 😉 | $11.52 |
![]() |
| 11.11.2016 | Gigabitová spojka na ethernet | $0.63 |
![]() |
|
| 5.10.2016 | 50x RJ45 konektor pro CAT6 shielded | Pro vnitřní rozvody sítě po domě, 50ks | $11.82 |
![]() |
| 5.10.2016 | 50x RJ45 konektor pro CAT6 shielded | Rovněž pro LAN. Bral jsem raději 2 typy, levnější a dražší, kdyby jeden nefungoval. Ale jsou dobré oba, jen modrý je víc cool | $4.89 |
![]() |
| Přidáno | Co | Proč/K čemu | Za kolik | Obrázek |
|---|---|---|---|---|
| 11.11.2016 | FastCharge nabíječky na GalaxyS7 | $4.89 |
![]() |
|
| 11.11.2016 | Držák na mobil (do kočárku jako chůvička 🙂 ) | $4.72 |
![]() |
|
| 5.10.2016 | Baterie na Samsung Galaxy S3 | aby fungoval | $4.49 |
![]() |
| 5.10.2016 | Ochranné sklo na Galaxy S7 | $0.90 |
![]() |
|
| 5.10.2016 | Originální bezdrátová nabíječka pro Galaxy S7 | $16.19 |
![]() |
| Přidáno | Co | Proč/K čemu | Za kolik | Obrázek |
|---|---|---|---|---|
|
19.4.2017 |
4 pcs/lot (4 pcs=2 pcs waist+2 pcs socks), Baby Rattle Toys Sozzy Wrist Rattle and Foot Socks | $3.53 |
![]() |
|
|
19.04.2017 |
Fun Bear Head Jingle Rattles | $1.59 |
![]() |
|
|
19.04.2017 |
Soft Baby Kid Toy | $2.49 |
![]() |
|
|
19.04.2017 |
Baby Toy Fun Little Loud Bell | $3.86 |
![]() |
|
|
19.04.2017 |
Einstein Bendy Ball Plastic | $1.99 |
![]() |
|
|
19.04.2017 |
4 Different Packing 24pc/bag Elastic Hair | $2.50 |
![]() |
|
|
19.04.2017 |
Baby care Pacifier Clip | $0.66 |
![]() |
|
|
19.04.2017 |
Baby Pacifier Clip | $0.97 |
![]() |
|
| 19.1.2017 | 5 Pcs/Set 2015 Multifunctional Bolsa Maternidade | $22.00 |
![]() |
|
| 19.1.2017 | Baby Toys Feeding Bottle Cover Bag Termica | $7.68 |
![]() |
|
| 19.1.2017 | Diaper Nappy Organizer | $1.83 |
![]() |
|
| 19.1.2017 | Strollers Baby Safe Care night remind lOutdoights Security | $0.77 |
![]() |
|
| 5.10.2016 | Reflexní obrázky | Aby měl Š. tunerský kočárek | $0.42 |
![]() |
| 5.10.2016 | Reflexní pásky | Protože je Š. zodpovědný řidič kočárku | $0.52 |
![]() |
| 5.10.2016 | Reflexní nálepky | Aby měl Š. na kočárku blinkry | $1.28 |
![]() |
| 5.10.2016 | Blikací světla | Aby měl Š. čím svítit do očí ostatním kočárkům, až je bude předjíždět | $1.91 |
![]() |
| 5.10.2016 | Přední světlo | Protože bez Xenonů to není závoďák | $0.71 |
![]() |
| 5.10.2016 | Plysaci na zaveseni | I když tomu sám nerozumím, najdou se řidiči, co chtějí mít na zrcátku pověšenou nějakou tu plyšovou potvoru | $3.44 |
![]() |
| Přidáno | Co | Proč/K čemu | Za kolik | Obrázek |
|---|---|---|---|---|
|
19.4.2017 |
Fashion Heaven 45mm*45mm 1000pcs Burgundy Silk Rose Artificial Petals | $1.45 |
![]() |
|
|
19.04.2017 |
1pc Hot Selling Fashion Bridal Wedding Flower Crystal | $1.74 |
![]() |
|
|
19.04.2017 |
Leaf Flower Butterfly Designs Wedding Tiara Diamante | $3.19 |
![]() |
|
|
19.04.2017 |
2016 New Design Fashion Wedding Bridal Crystal Rhinestone | $3.99 |
![]() |
|
|
19.04.2017 |
50pcs Mixed wood carving Anchor ship rudder wooden Scrapbooking | $1.32 |
![]() |
|
|
19.04.2017 |
20pcs/lot Bridal Wedding Hair Pins Blue Rose Flower | $2.21 |
![]() |
|
|
19.04.2017 |
50pcs Ice White Wedding Sea Horse | $3.02 |
![]() |
|
|
19.04.2017 |
New 50 pcs Mini Navy Boat rudder Spear Pendant | $1.37 |
![]() |
|
|
19.04.2017 |
6pcs/lot Cheap Mini Silk Rose Artificial Silk Flowers | $0.52 |
![]() |
|
|
19.04.2017 |
Free Shipping! 500pcs/lot Aqua Blue 8mm 2 Carat Acrylic Crystal | $4.50 |
![]() |
|
|
19.04.2017 |
New 2014 Fashion Austrian Crystal pendant Necklace/Earring/Bracelet | $1.22 |
![]() |
|
|
19.04.2017 |
Hot Blue Silk Flower Branch Artificial Hydrangea | $0.97 |
![]() |
| Přidáno | Co | Proč/K čemu | Za kolik | Obrázek |
|---|---|---|---|---|
|
19.4.2017 |
Super Quality 2pcs Black Side Car Sun Shades Rear Window | $2.22 |
![]() |
|
|
19.04.2017 |
Brand Designer Polarized Men Sunglasses Driving Goggle | $5.41 |
![]() |
|
|
19.04.2017 |
2016 VEITHDIA Aluminum Magnesium Sunglasses | $6.75 |
![]() |
|
|
19.04.2017 |
VEITHDIA Retro Aluminum mirror Polarized Sunglasses | $9.99 |
![]() |
Poslední update Aliexpress listu jsem dělal 11.11.2016 a tak je čas zase na aktualizaci. Tentokrát je to se spoustou nových a zajímavých přírůstků, protože jak jsem se do Arduina pustil, tak jsem každý večer objednával co mi zrovna chybělo nebo co mi přišlo užitečný 😉
Když takhle ten list vidím, tak jsem toho stihl nakoupit docela dost. Takže mi od nového roku chodí každý den alespoň tak 3-4 balíčky a stále mám ještě 40 obědnávek ve frontě :-).
Opět jsou červeně zvýrazněné novinky, rozházeno do kategorií. Jen na popisky už jsem teda sílu neměl, ale zase jsou tam celé názvy z Aliny, takže by to mělo být pochopitelné.
| Přidáno | Co | Proč/K čemu | Za kolik | Obrázek |
|---|---|---|---|---|
|
19.1.2017 |
5(32)A 230V 50HZ Single phase Din rail KWH Watt hour din-rail energy meter LCD | $11.13 |
![]() |
|
| 11.11.2016 | DMX Triak na ovládání světel | $35.84 |
![]() |
|
| 5.10.2016 | Krone svorky | Super na práci s CAT kabelama | $22.15 |
![]() |
| 5.10.2016 | 100 ks LED diod pěti barev | Na signalizaci stavů v domě | $1.20 |
![]() |
| 5.10.2016 | 20x 24V modrá dioda | Pro podsvětlení tlačítek Unica | $4.76 |
![]() |
| 5.10.2016 | 10x 1-wire teplotní čidlo v pouzdře | Stejné čidlo, jako nabízí Loxone za ~350Kč, akorát takto vyjde na 30Kč | $13.97 |
![]() |
| Přidáno | Co | Proč/K čemu | Za kolik | Obrázek |
|---|---|---|---|---|
| 11.11.2016 | SanDisk 32GB USB 3.0 flashka | Když už jsem byl v tom nakupování, tak sem si vzal i USB3 flashku, protože ty moje jsou děsně pomalé 😉 | $11.52 |
![]() |
| 11.11.2016 | Gigabitová spojka na ethernet | $0.63 |
![]() |
|
| 5.10.2016 | 50x RJ45 konektor pro CAT6 shielded | Pro vnitřní rozvody sítě po domě, 50ks | $11.82 |
![]() |
| 5.10.2016 | 50x RJ45 konektor pro CAT6 shielded | Rovněž pro LAN. Bral jsem raději 2 typy, levnější a dražší, kdyby jeden nefungoval. Ale jsou dobré oba, jen modrý je víc cool | $4.89 |
![]() |
| Přidáno | Co | Proč/K čemu | Za kolik | Obrázek |
|---|---|---|---|---|
|
19.1.2017 |
Adjustable 24 Grids Detachable Electronic Components Storage Assortment Plastic Storage Case | Krabicek neni nikdy dost | $3.02 |
![]() |
|
19.1.2017 |
Adjustable 24 Value Clear Electronic Components Storage Assortment Box Plastic Case | Krabicek neni nikdy dost | $2.98 |
![]() |
|
19.1.2017 |
EU Plug Dormancy function welding tool Digital LCD Adjustable electric soldering iron 220V 90W +14/pcs 900M solder tip | $34.99 |
![]() |
|
|
19.1.2017 |
Professional Mechanic Solder Soldering Paste RMA-223 Grease | $0.58 |
![]() |
|
|
19.1.2017 |
5Pcs Plastic Electronic Project Box Enclosure Instrument Case | $4.58 |
![]() |
|
|
19.1.2017 |
Precision 45 In 1 Electron Torx MIni Magnetic Screwdriver Tool Set | $19.99 |
![]() |
|
|
19.1.2017 |
10pcs Strong Round Ring Magnet 12mm x 5mm Hole 4mm Rare Earth Neodymium Magnets | $1.95 |
![]() |
|
|
19.1.2017 |
U-511 5”Japanese Style tools Diagonal Cutting Pliers Diagonal Side Cutting Pliers Cable Wire Cutter Repair Pry Open multitool | $2.90 |
![]() |
|
|
19.1.2017 |
Solder Sucker Desoldering Pump Tool Removal Vacuum | $1.39 |
![]() |
|
|
19.1.2017 |
IMC Hot Solid Solder 0.3mm Flux Core 63% Tin 37% | $1.05 |
![]() |
|
|
19.1.2017 |
105 Degrees Angle Extension 1/4inch 6mm Hex Drill Bit Screwdriver Socket Holder Tool | $3.14 |
![]() |
|
| 11.11.2016 | Hrotová pájka | Protože tu co mám to je děs | $34.99 |
![]() |
| 11.11.2016 | Digitální lupa | $1.99 |
![]() |
|
| 11.11.2016 | Cín | $1.48 |
![]() |
|
| 11.11.2016 | Klasická optická lupa | $0.69 |
![]() |
|
| 11.11.2016 | Malé ostré štípačky | $4.21 |
![]() |
|
| 11.11.2016 | Kalafuna | $0.58 |
![]() |
|
| 11.11.2016 | Parádní sada malých šroubováčků | $15.47 |
![]() |
|
| 11.11.2016 | Zvýrazňovače/fixky | $2.19 |
![]() |
|
| 11.11.2016 | Odsávačka cínu | $1.39 |
![]() |
|
| 11.11.2016 | Bezdrátový laserový teploměr | $8.29 |
![]() |
|
| 11.11.2016 | Kompaktní zastříhávač kabelů | $0.48 |
![]() |
|
| 11.11.2016 | Xiaomi tester kvality vody | $9.12 |
![]() |
|
| 11.11.2016 | 100ks nylonových stahovacích pásků | $1.93 |
![]() |
|
| 5.10.2016 | 2340 kusů dutinek | Ideální na spojování kabelů nebo na ukončování roztřepených kabelů, co se pak zapojují do svorkovnice | $13.18 |
![]() |
| 5.10.2016 | 5m teplem stahovací bužírky | Ideální na zaizolování dutinkových spojů. Existují různé šířky, ideálně vzít 1mm až 5mm a pak nějakou jednu velkou | $0.99 |
![]() |
| 5.10.2016 | Set 127ks stahovacích bužírek | Ideální na vyzkoušení, jaké šířky dutinek Vám budou vyhovovat. Pak už objednávat po metrech | $1.96 |
![]() |
| 5.10.2016 | Krone kleště | Super na zacvakávání kabelů do Krone svorek, nebo na připojování síťových kabelů do Patch panelů | $2.35 |
![]() |
| 5.10.2016 | Dutinkovací (lisovací) kleště | Kleště na lisování dutinek. Šestihranné, takže dělají téměř kulatý spoj (super pro napojování do svorkovnic) | $8.98 |
![]() |
| 5.10.2016 | Digitální šuplera v ochranném pouzdře | $14.61 |
![]() |
|
| 5.10.2016 | Tester na RJ45 konektory | Protože testovat kabely notebookem není praktické | $3.24 |
![]() |
| 5.10.2016 | Samonivelační křížový laser (5 čar) | Na přenášení vágrysu, na kontrolu rovnosti a spoustu dalšího | $56.20 |
![]() |
| 5.10.2016 | Stativ k laseru | Stativ není úplně robustní, ale svou práci odvede | $18.13 |
![]() |
| Přidáno | Co | Proč/K čemu | Za kolik | Obrázek |
|---|---|---|---|---|
| 11.11.2016 | FastCharge nabíječky na GalaxyS7 | $4.89 |
![]() |
|
| 11.11.2016 | Držák na mobil (do kočárku jako chůvička 🙂 ) | $4.72 |
![]() |
|
| 5.10.2016 | Baterie na Samsung Galaxy S3 | aby fungoval | $4.49 |
![]() |
| 5.10.2016 | Ochranné sklo na Galaxy S7 | $0.90 |
![]() |
|
| 5.10.2016 | Originální bezdrátová nabíječka pro Galaxy S7 | $16.19 |
![]() |
| Přidáno | Co | Proč/K čemu | Za kolik | Obrázek |
|---|---|---|---|---|
|
19.1.2017 |
5 Pcs/Set 2015 Multifunctional Bolsa Maternidade | $22.00 |
![]() |
|
|
19.1.2017 |
Baby Toys Feeding Bottle Cover Bag Termica | $7.68 |
![]() |
|
|
19.1.2017 |
Diaper Nappy Organizer | $1.83 |
![]() |
|
|
19.1.2017 |
Strollers Baby Safe Care night remind lOutdoights Security | $0.77 |
![]() |
|
| 5.10.2016 | Reflexní obrázky | Aby měl Š. tunerský kočárek | $0.42 |
![]() |
| 5.10.2016 | Reflexní pásky | Protože je Š. zodpovědný řidič kočárku | $0.52 |
![]() |
| 5.10.2016 | Reflexní nálepky | Aby měl Š. na kočárku blinkry | $1.28 |
![]() |
| 5.10.2016 | Blikací světla | Aby měl Š. čím svítit do očí ostatním kočárkům, až je bude předjíždět | $1.91 |
![]() |
| 5.10.2016 | Přední světlo | Protože bez Xenonů to není závoďák | $0.71 |
![]() |
| 5.10.2016 | Plysaci na zaveseni | I když tomu sám nerozumím, najdou se řidiči, co chtějí mít na zrcátku pověšenou nějakou tu plyšovou potvoru | $3.44 |
![]() |
Začnu trochu od konce. Dělal jsem toho za svůj život už hodně, ale dneska poprvé jsem seděl pod vánočním stromečkem, do notebooku připojený USB kabel, co od něj vede, a debugoval a upgradoval jeho firmware ;-)).
Ale od začátku. Dostali jsme vánoční světýlka na stromeček. Bohužel, měly drobnou vadu. Po zapnutí elektriky se samy nerozsvítily. Bylo ještě potřeba na zdroji zmáčknout tlačítko. A to pokaždé, když se elektrika znovu zapnula.

No a to je naprd. Přece v chytrém domě nebudu ručně rozsvěcet vánoční stromeček, žejo. Takže začlo zkoušení a vymýšlení, jak problém vyřešit.
Problémů k vyřešení bylo hned několik. Jak ledky napájet, jak je spínat, čím spínat relátka a jak to propojit do Loxonu.
Napájení se nakonec vyřešilo elegantně. Od původního plánu napájet to 24V zdrojem s napěťovým děličem jsem se přes svůj laboratorní zdroj a měření spotřeby dostal až k USB 2A nabíječce, která krásně splinila zadání.
Další problém byly relátka. Z číny dorazil 8-modulový relé modul, jenže na spínání je potřeba 5V a to můj Wemos čip neměl. Tak jsem wemos vyměnil za Arduino UNO a zkusil to zapojit na něm. A relé se poprvé seplo, to bylo radosti.
Jenže jen do chvíle, kdy jsem si uvědomil, že UNO nemá ani ethernet, ani wifi. Takže pro dálkové spínání naprd. Takže zpět k Wemosu a jeho wifi.
Další cesta tak vedla přes samostatné napájení relé modulu 5V a pokusu, jestli náhodou relé pak nejde sepnout pomocí 3V z Wemosu. A abych to netestoval rovnou na Wemosu, využil jsem opět laboratorní zdroj (fakt ho miluju) a na napájení opět využil USB nabíječku.
A hle, prošlo to. Takže tudy by to mohlo jít. Takže jsem zkusil popropojovat Wemos a relátko, wemos napájet z USBčka, relé přes uřízlý USB kabel taky z USB nabíječky, a k tomu LEDky také z USB nabjíčeky.
To máme spoustu USB nabíječek ;-). Naštěstí relé modul a wemos utáhne jedna, a druhá na LEDky. To už jde. A časem koupím 5V 4A zdroj a bude to.
A protože s jedním relé není žádá sranda, tak sem to rozšířil na dub-step čtyř relátek 😉
Když byl hotový proof-of-concept, začal jsem to celé propojovat. Tady byla největší brzda nedostatek materiálu (tím jsem trpěl už i zkoušení, ale tady to byl extrém). Nejvíc mi chyběly kabílky na propojování PINů. Zatím jich dorazilo jen pár a tak jsem si zbytek povyráběl, z čeho šlo (hlavně pak z těch černých male-female patic, které lze stříhat štípačkama a dělat multi-konektory, viz ty žlutě zalepené konektory).
Po propojení a ověření, že vše bliká a cvaká, jak má, byla další mise nacpat to do nějaké krabičky, aby to vypadalo alespoň trochu civilizovaně a mohlo se to válet v obyváku. To se našetěstí povedlo také docela rychle a tak bylo řešení téměř hotové.
Nakonec pak už jen řetězy rozmotat, přenést do obyváku, znovu otestovat, a… vyhodit elektriku v celém baráku. Samozřejmě v deset večer, takže tma jak v řiti. A samozřejmě vyhozeno až venku na ulici.
I I. se přišla podivat, co jsem to zas udělal ;-). Kupodivu ale na vině nebylo moje udělátko, ale očividně dosloužilý zdroj k notebooku, co jsem si potřeboval zapojit. Po nahození se tím pádem mohlo pokračovat dál ;-).
Dneska jsem přesunul do obyváku stromek a ověsil ho lampičkama. Na řadu tak přišla softwareová část. Samoblikání je sice pěkné, ale chtělo to hlavně to zapínání a vypínání přes Loxone.
Plán byl využít už připravené MQTT komponenty z minula a jen to použít na něco konkrétního. Založil jsem další topic christmas-tree/relay a začal propojovat. Část v arduinu byla snadná. Vzít data ve formátu 101011 a podle toho postupně pozapínat/povypínat relátka. Easy.
Pak upravit Node-Red tak, aby se daly MQTT data posílat a testovat přes něj. Opět easy. Trochu složitější pak bylo parsování dat dle typu, tzn. když přijde z Loxonu “christmas-tree/relay/xxxx”, tak aby to poslal na správný kanál se správnýma datama. Ale stačilo zjistit, jak fungují v MQTT funkce, že je to Javascript a zjistit, jak se v JS pracuje se stringama. Easy.
EDIT: Večer jsem měl ještě chvilku čas, tak jsem si pohrál s Node-RED nastavením. Nutno říct, že je to naprosto impozantní a lze tam udělal naprosto cokoli (hlavně díky možnosti scriptovat pomocí JS). Takže nyní má stromeček ještě pět režimů blikání 🙂
Pak ale přišel kámen úrazu. To, co jsem očekával, že bude to nejjednodušší, tak nefungovalo. V Loxonu se mi nedařilo rozběhnout virtuální výstupy HTTP. Ať jsem dělal, co jsem dělal, tak z Loxonu data prostě nelezly. Nejen do Node-Red, ale ani na testovací app, ani do aplikace Hercules, co Loxon doporučuje, a ani nebyly vidět přes Ethereal či Wireshark.
A tak jsem zkoušel a zkoušel, nastavoval, ptal se na fóru a to, co všem funguje, mně nejelo. Nakonec jsem to všechno natvrdo zrestartoval a pakety začaly chodit. Bohužel, HTTP výstupy u mne mají cca 15sekund prodlevu. Pokud pošlu 10 signálů, místo aby přišly hned, dorazí vždy jeden, 15s pauza, další, zase pauza, …
Co naštěstí funguje bleskově jsou přímé TCP spojení. A protože HTTP nepotřebuju a TCP je přes NodeRED mnohem rychlejší/jednodušší, zůstal jsem u něj a HTTP dál neřešil.
A to byla poslední část potřebná k tomu, aby se z mobilu dal poslat příkaz do Loxonu, který pošle příkaz do NodeRED, který pošle MQTT zprávu na Ubuntu server, kde je pak zpráva poslána do Wemosu, který přes digitální výstupy pošle impulzy do relátek, které rozsvítí vánoční stromeček.
Jako jo, šlo by to asi o něco jednodušeji, ale takhle je to prostě cooool 😉
PĚKNÉ VÁNOCE VÁM VŠEM!
Jak jsem psal v předchozím článku, MQTT i NodeRed instaluji na Ubuntu linuxu. Jde ale rozběhat třeba i na Raspberry Pi nebo Turrisu (OpenWRT).
Instalace NodeRED je relativně jednoduchá. Do ubuntu jsem musel nejprve doinstalovat aplikaci npm (což jsem zjistil, že je balíčkovací služba pro javascript) a následně pak pomocí npm aplikace nainstalovat NodeRED.
sudo apt-get install npm sudo npm install -g --unsafe-perm node-red
Po samo-doinstalování obrovského množství dalších navazujícíh balíků měl začít fungovat příkaz `node-red`. Ale prdlajs. Takže další postup pak byl:
sudo apt-get install nodejs-legacy node -v ##v4.2.6 sudo apt-get install npm npm -v ##3.5.2 sudo npm install -g --unsafe-perm node-red node-red-admin
Dál bylo potřeba otevřít firewall port 1880, který node-red používá pro komunikaci
sudo ufw allow 1880 ##Rules updated ##Rules updated (v6)
A pak už node-red konečně naběhl.
node-red Welcome to Node-RED =================== 9 Dec 15:41:14 - [info] Node-RED version: v0.15.2 9 Dec 15:41:14 - [info] Node.js version: v4.2.6 9 Dec 15:41:14 - [info] Linux 4.4.0-53-generic x64 LE 9 Dec 15:41:14 - [info] Loading palette nodes 9 Dec 15:41:14 - [warn] ------------------------------------------------------ 9 Dec 15:41:14 - [warn] [rpi-gpio] Info : Ignoring Raspberry Pi specific node 9 Dec 15:41:14 - [warn] ------------------------------------------------------ 9 Dec 15:41:14 - [info] Settings file : /home/dev/.node-red/settings.js 9 Dec 15:41:14 - [info] User directory : /home/dev/.node-red 9 Dec 15:41:14 - [info] Flows file : /home/dev/.node-red/flows_home-server.json 9 Dec 15:41:14 - [info] Creating new flow file 9 Dec 15:41:14 - [info] Server now running at http://127.0.0.1:1880/ 9 Dec 15:41:14 - [info] Starting flows 9 Dec 15:41:14 - [info] Started flows
Další krok je nastavení, aby se NodeRED spouštěl sám po startu. To už nebudu popisovat, protože bych jen kopíroval návod, podle kterého jsem postupoval. Ten jde najít v tomto super článku (bod 3 a dál).
Tak jo, nainstalované to je, co teď s tím dál ;-). Vraťme se k naší ukázce z minulého článku o MQTT. V levym okně máme příkaz na poslání zprávy přes kanál(topic) hello/world. V pravém okně nahoře je pak příjemce této zprávy, abychom viděli, že vše funguje.
V pravo dole pak nasloucháme nové zprávě “bye/world”. Jak jde vidět z následujících screenshotů, při poslání zprávy na “hello/world” se tato zpráva ukáže i na “bye/world”. Jak to?
Protože NodeRED ;-). Jako první jsem pro otestování funkčnosti NodeRED a jeho napojení na MQTT udělal jednoduché přeposlání přijaté zprávy z jednoho kanálu na druhý.
A takhle to vypadá v NodeRED. Vlevo je MQTT consumer, nastavený tak, aby naslouchal topic hello/world
V pravo pak MQTT publisher, který přijatou zprávu pošle po kanálu (topicu) bye/world.
Dole pak mám ještě debug výstup, který zobrazuje přijaté zprávy.
No jasně! ;-). Pro testování jsem použil zatím jen REST Api loxone, ale NodeRED podporuje i websockets, navíc jsou pro Loxone už naprogramované přímo rozšíření pro NodeRED (viz dále).
Nyní nám ale pro jednoduchý test stačí RestAPI. Upravíme diagram tak, aby po přijetí jakékoli zprávy v topicu hello/world se nám rozsvítilo (nebo zhaslo) světlo v pracovně. To je cool ne? 😉
Samotné nastavení HTTP požadavku vypadá nějak takto. Nic složitého, jen se zavolá HTTP GET na adrese /dev/sps/io/WebApiTest/PulseDown.
Co se týká URL adresy, tak Loxone dokumentace stojí za starou bačkoru. Podle návodu by měla být adresa /prikaz/control/hodnota, coz ale /dev/sps/io/INPUT/PRIKAZ rozhodne není.
Touto url říkáme, že chceme na virtuální vstup “WebApiTest” poslat Impuls Down-Up. V Loxonu tak musíme tento virtuální vstup vytvořit a propojit se světlem.
A to je všechno. Nyní, kdykoli se objeví zpráva, světlo se přepne. Naprostá paráda. Nevím jak vy ostatní, ale já jsem nadšen. Těch možností, k čemu se to využít, je totiž neomezeně. Díky kombinaci NodeRED+Loxone tak jde do Loxonu dostat spoustu nových dat, od Arduino senzorů, dat z externích databází až po informace z Twitteru, Email nebo cokoli jiného vás jen napadne.
NodeRED má obrovskou komunitu a kromě základních bloků (Nodes) má parádní knihovn dalších rozšíření – http://flows.nodered.org/. Jsou tam například i bloky na komunikaci s Modbus, KNX nebo Loxone.
Nyní to chce pořádně vyzkoušet a pohrát si s tím víc. V základu mám ověřeno, že vše funguje. Nyní zkusím zprovoznit nad Arduinem nějaký ten senzor a přes MQTT-NodeRed ho posílat do Loxonu. A uvidíme, jak to bude šlapat. Co jsem zatím testoval, tak problémy žádné, ale běží mi to jen chvilku.
Pokud ale vše pojede opravdu jak má a bude to 100% stabilní, vidím v tom obrovský potenciál. Navíc v případě, že by Loxone pokračoval se svými gestapáckými manýry a ještě více uzavíral jeho systém, tak se takto dá udělat kompletní rozšíření a defakto z architektury “Loxone je ten hlavní” udělat “NodeRED je ten hlavní” a Loxone mít jen jako podružný systém.