Zigbee hrátky – seriál na pokračování
Dnešní článek bude pravděpodobně první z více článků o zprovozňování Zigbee v našem domě. Konečně mám zase trošku času a hlavně mi po měsíci dorazil nový Zigbee stick CC2652, který zdá se být o dost lepší než jeho předchůdce.
Věřím, že se díky tomu konečně dostanu se Zigbee do stavu, kdy ho plnohodnotně zaintegruji do našeho domu. A o tom bude tato série článků.
Psal jsem o tom párkrát na fóru, že jsem objednal nový USB stick CC2652 na Zigbee. Vzal jsem ho z Tindie, kde jednak měl dorazit relativně rychle, a pak je už naflashovaný přímo na potřeby Zigbee2Mqtt.
Píšu měl, protože byl nějaký problém s německou poštou, která prodejci vrátila mraky zásilek poškozených a on musel vše testovat a posílat znovu. Díky tomu se vše protáhlo na měsíc a něco. Naštěstí jsem na to stejně neměl čas, ani pomyšlení, takže mě to zas tak netrápilo. Za normálních okolností má dorazit do týdne.
Výhod téhle CC2652 oproti původní CC2531, na kterou jsem psal recenzi a návod na flashování, je hned několik (původní návod a recenze zde). Zaprvé, není potřeba kupovat flashovací HW a složitě stick flashovat, protože prodejce má už vše připraveno. Zadruhé, je plně kompatabilní se Zigbee 3.0, zvládne až 100 zařízení, má externí anténu a celkově lepší dosah. A zatřetí, což pro mne bylo nejdůležitější, USB stick splňuje pravděpodobně vše, co takový USB stick má splňovat a je kompatabilní nejen s RaspPI, ale také s ESXI systémem pro virtualizaci serverů.
Všechny tyto výhody pro mě znamenají, že nebudu muset provozovat RaspPI, ale stick mi poběží virtualizovaný na serveru, kde provozuji i ostatní Docker instance na správu domu. To ovšem neznamená, že by neběžel v NAS či RaspPI. Tam samozřejmě funguje také.
Tento návod se proto bude zmiňovat i o ESXI, který by mohl být i pro někoho dalšího zajímavý. Pokud byste potřebovali návod na RaspPI, postupujte dle původního návodu, jen vynecháte flashovaní a začnete sekcí “Instalace na Raspberry”. Návod zde: https://www.vodnici.net/2018/12/vlastni-zigbee-brana-pomoci-raspbery-pi/.
Zároveň se od dob prvního návodu změnilo/rozšířilo pár komponent na Zigbee správu, takže i o těch budu postupně psát, k tomu přihodím pár Docker a Docker-compose konfigurací, které budu aktuálně pro Zigbee síť používat. A na závěr pak přijde samotná implementace do Loxone, kde to bude opět vyžadovat NodeRED a nějaký ideálně univerzálnější kód, který bude překládat Zigbee na Loxone. Uvidíme.
ESXI
Začneme u ESXI virtuálního stroje. ESXI samotný zde moc popisovat nebudu, ve zkratce jde o “trochu” robustnější VM Ware virtuální stroje běžící na vyhrazeném hardware. Pro potřeby testování jsem si udělal nový Docker VM, kde budou veškeré testy probíhat a kam pak postupně zmigruji i ostatní docker kontejnery s chytrou domácností.
Zigbee stick do virtuálního stroje přidáme jako klasický USB device, s tím že se v pořádku i pro ESXI hlásí jako “cc2652rb stick”:
Po přidání uložíme a nahodíme stroj. S původním USB stickem CC2531 toto nebylo možné. Stick ihned po zasunutí do serveru způsobil kompletní vytuhnutí celého ESXI OS a tím i všech virtuálních strojů. Takže fungoval spíš jako takovy USB killer :).
Zigbee stick
Další rozdíl oproti původnímu sticku je, že se hlásí jako /dev/ttyUSB0 a ne /dev/ttyACM0. Toto je dost zásadní změna, protože je potřeba ručně upravit konfiguraci v Zigbee2Mqtt data/configuration.yaml aby ho Z2M našel.
Docker
Pro základní testování sticku si přes docker-compose rozbíhám následující docker containery:
- MQTT server https://hub.docker.com/_/eclipse-mosquitto
- NodeRED server https://hub.docker.com/r/nodered/node-red-docker
- Zigbe2MQTT https://hub.docker.com/r/koenkk/zigbee2mqtt
V případě MQTT používám defaultní kontajner, do NodeRED jsem si postupně přidal pár dalších knihoven a Zigbee2MQTT opět v defaultním nastavení, jen s vlastním konfigem.
DockerFile pro NodeRED mi aktuálně vypadá nějak takto. Přidávám komponenty pro dashboard a Zigbee2Mqtt podporu a pár dalších, které jsou potřebné pro M2T Admin rozhraní na lepší správu Zigbee sítě.
FROM nodered/node-red-docker RUN npm install bufferutil RUN npm install utf-8-validate RUN npm audit fix 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
Samotný DockerCompose na provázání těchto tří kontejnerů pak může vypadat třeba takto:
dum-mosquitto: build: mosquitto container_name: dum-mosquitto restart: always ports: - "1883:1883" - "9001:9001" network_mode: bridge dum-nodered: build: nodeRed container_name: dum-nodered restart: always ports: - "1880:1880" - "60000-61000:60000-61000/udp" network_mode: bridge links: - dum-mosquitto - dum-zigbee dum-zigbee: container_name: dum-zigbee image: koenkk/zigbee2mqtt volumes: - ./zigbee/data:/app/data - /run/udev:/run/udev:ro devices: - /dev/ttyUSB0:/dev/ttyACM0 restart: always network_mode: bridge privileged: true links: - dum-mosquitto
Více Docker jako takový rozbírat nebudu, psal jsem o něm opět ve dřívějších článcích a zbytečně by to prodlužovalo tuhle sérii. Navíc článků na základy dockeru je na internetu všude spousta 🙂
Zprovoznění
Po dokonfigurování dockeru a ESXI přichází na řadu oživení celého systému. Tady musím říct, že až na zádrhel se správným názvem zařízení ttyUSB0 vs ttyACM0 fungovalo vše hned napoprvé.
Pro testování jsem použil už dříve nakoupené a zmiňované Xiaomi teploměry, kostku a žárovku a dále Zigbee OnOff Controller. Napárování proběhlo hned napoprvé a to i přesto, že všechny zařízení byly původně spárované s původním USB stickem.
Bohužel, jako jediné vstupní zařízení mám momentálně Xiaomi kostku a ta mi prostě zlobí. Problém není v signálu, ale v kostce samotné. Občas pohyb/změnu detekuje a občas ne. Musím proto sehnat nějaké Zigbee tlačítka, která budem po domě na různé dočasné funkce používat (nyní konkrétně tlačítko vedle kojícího křesla na rozsvícení/zhasnutí lampičky 🙂 ).
Pro NodeRED jsem našel nové administrační rozhraní sloužící k lepší správě Zigbee2MQTT sítě včetně možnosti vykresit pěkný graf zigbee sítě:
A taky nové prvky pro NodeRED na snazší bagrování dat z Zigbee2MQTT. Dříve bylo pořeba zpracovávat přímo MQTT parametry, nyní už existují připravené prvky, kdy si člověk může spoustu věcí vyklikat a lezou z toho jen konkrétní zigbee data:
O tomhle už ale zase příště, protože je toho spoustu, co to umí, a chtěl bych se tomu věnovat víc detailně. Zároveň je to momentláně vše, co mám u sebe rozchozeno. Až seženu tlačítka (zkusím něco z CZ i z Ali, kde to bude na dýl), tak chci zkusit už reálné rozmístění po domě, vyzkoušet dosahy a hlavně udělat už nějaký dlouhodobý systém jak v NodeRED, tak v Loxone, jak Zigbee integrovat. A o tom všem v dalších článcích 🙂
PS: Pokud by měl někdo zájem o předchozí USB stick CC2531 (v RaspPI funguje bez problému) včetně Downloader Cable a CC DEbugger Zigbee emulatoru, tak ho rád prodám. Je plně funkční. Původní cena 26USD, nechám za 400kč vše, pošlu kdyžtak zásilkovnou.
PS2: Tak jsem objednal pár dalších zigbee zařízení na testování. Konkrétně:
- Aqara Smart Multi-Functional Intelligent Wireless (220kč/tlačítko)
- Xiaomi Mi Smart Plug ZigBee (450kč/zásuvka)
- Sonoff ZigBee Tlačítko – SNZB-01 (300kč/tlačítko)
Ahoj, díky za článek. Shodou okolností jsem také objednal ten stejný Zigbee stick.
Objednával jsem ho 24.8. odeslaný měl být 5.9. přes DHL a zatím nic nedošlo. Bohužel to je bez sledování zásilky. Tak že vůbec netuším, jak to s tím je a jak dlouho mám čekat, než by to mohlo z Německa dojít. Prodejci jsem psal a zatím bez odpovědi.
Také jsem se těšil, že na tom postavím světla v domě. Zatím jedu bohužel jen na tom z Číny a jen horní patro. Víc zařízení zatím nechci pokoušet. A pokud se nepletu, tak po výměně donglu budu muset vše párovat znova? Už teď se mi děje, že pokud z nějakého důvodu přestanu nějaká světla napájet a pak je zapnu, tak z toho celé Zigbee2Mqtt sletí a nepomůže nic, než restartovat Lafrite. Respektive odpojení od napájení (teď si ale nejsem úplně jistý). Prostě dongle to nějak nerozdýchá a dostane se do nějakého divného stavu. Zkoušel jsem i jiný dongle (stejný typ s externí anténou) a stejný efekt.
Zatím na tom mám jen 14 podhledových světel z Ikea. Asi kdybych je zapínal po jednom, tak to ještě nějak projde, ale například v chodbě jsou 4. Ty to ještě občas dá. Pokud ale rozsvítím záchod + koupelnu (společné relé), tak to rozsvítí 10 světel najednou a pak už je Zigbee2Mqtt mrtvé, protože ztratí spojení s donglem a jen se zkouší restartovat pořád dokola a dongle nemůže najít.
jeslti je to od toho stejneho z tindie, tak borec to ma jako melouch po praci, posila to imho tak 1x – 2x tydne.
a co psal k tomu incidentu, tak on to posila nejakou economy DHL, coz znamena, ze to na hranici s CZ daji jakemukoli jinemu dopravci kdo to doveze nejlevneji. nam to privezl PPL.
jj, vse budes muset preparovat. To vypinani svetel vypada u tohoto lepe. Zkousel sem prave vypinat/zapinat zarovku na kterou byl poveseny teplomer a OnOff controller a vzdy to sit pekne predelalo (ten novy NodeRED admin na to ma i pekny graf, kdy jde videt co na co je napojeno).
tech 14 zarizeni bohuzel nemuzu rict, zatim sem to mel vzdy jen na stole s par zarizenima (tak 5max).
Ahoj, moc dekuju za clanek. Chystam se integrovat DANALOCK, nebo neco podobnyho, a protoze jsem ted na loxone kvuliva ostatnim pracem na baraku celkem kaslal, uplne mi utekly tyto komunikacni nadstavby . Trochu na to koukam ted jak zjara, MQTT, NODERED atd… musim se do toho zase trochu ponorit a diky Tvym clankum doufam, ze to bude bezbolestne… Integrace vseho hodlam udelat pres QNAP supliky… Koukal jsem ze se qnam snazi, a primo na svych strankach upozornuje na moznost IoT a dalsich kravin.
Na tindii to ma ted vyprodany.
Škoda že tyhle věci neumí loxone nativně. Jenže to je pro něj příliš velká konkurence, takže zigbee asi nativně nikdy nebude. Pokud s NodeRed a MQTT začínáš, mrkni na předchozí článku. Tam jsem ty základy šel více dopodrobna. Jen to nebylo v Dockery, ale nativně. Ale to už je jen drobnost, navíc díky dockeru je to spíš jednodušší. Kor když NASy mají dnes nativní podporu dockeru (to budou ty šuplíky 😉
Jo, suplikem myslim docker. Objednal jsem si novy qnap, anzto minuly model uz nezvladnul 10 bit HEVC kodek a na nektere filmy z vydavatelstvi uloz.to se uz staly nekoukatelnymi. Pouzivam ho jako prehravac filmu k projektoru a hrani her pro deti k plejstejsnu. Tak na ten stary se mi to ted ani zkouset nechce. Tvoje serialy na toto tema prozatim prostuduji, patri ti dik, ze jsi ochotny se s tim podelit s ostatnimi….
No, nativni podpora zigbee by bylo neco. Osobne take nechapu postoj Loxone managementu prodeje k uzivatelum… Ale mozna to je tim, ze Loxone neni Cesky produkt, ale produkt Rakousky. A tamejsi zakaznici zrejme nemaji potrebu ojebavat ruzne extensions levnejsimi variantami. Kdyby bylo na me 🙂 zvednul bych cenu za miniserver jako zaklad systemu, zavedl bych rocni platbu za updaty a poustel bych extensiony za cinske ceny (vyrobni cenu ext. nema cenu komentovat) a reagoval bych na jakekoliv nove protokoly prislusnymi extensiony… IMHO by ziskali maximum koncovych zakazniku a v klidu a kralovsky by si zili z rocnich pausalu… osobne bych jim za ty SW updaty par tisicovek rocne klidne dal… Takze by zase mohli otevrit oficialni loxone forum a nemuseli by se bat, ze se tam budou rozebirat cinske ojebavky… .. A myslim, ze by take bylo definitivne rozhodnuto dilema novych stavitelů e-houmů, jakyto system zvolit….
Pozri na to z druhej strany – pridanim zigbee by im volali nasrati zakaznici s otazkami typu “Kupil som si v Ikea RGB ziarovku a nefunguje, co mam robit?”.
Ja ich tak trochu aj chapem, pretoze keby sa na mna niekto obratil s touto otazkou a pouzival moj dockercompose suite na zigbee, tiez by som nemal cas s nim hodinu ladit a vysvetlovat a skumat kde je problem.
Zkusil jsem ho objednat taky, dorazil a musím uznat, že s pokratím signálem je to znatelně lepší.
Chtěl jsem také objednat a bohužel nemá ani jeden skladem :/
… a zjavne sa na tom po mesiaci nezmenilo zhola nic 🙁
on to porad nema? tak to sem mel dost kliku, ze sem to od nej sehnal.
Stick jede od nej od nasazeni stabilne, zadny vypadek, zadne problemy. Tak by byla skoda, kdyby s vyrobou skoncil.
Nema. Dal som si remainder ked to bude mat, ale pisal ze obvykle je do 24 hod vypredany. Ja som zrovna zacal zigbee mysliet trochu vaznejsie, ale narazil som na limity toho povodneho sticku (alebo si to len myslim). Dumam ci nekupit nejaku tu dosku od texasu.
ten puvodni stick oproti tomuhle novemu opravdu zlobil, navic mel horsi signal a byl i pomalejsi (ale to mozna bylo dano i tim, ze to bezelo jen na RPi a ted to mam primo v serveru).
skoda, ze toho nenaskladni vic.
Taktez cekam, az naskladni… Ale nejak to drhne. Mozna se podivat po necem jinem, ale krome cinskych cc2531 atd. uz zbyva asi jen conbee.
Asi je o ne diky recenzi na Vodnikach velky zajem ;-))).
je blbe, ze zkouset naslepo dalsi stick znamena fakt metoda pokus-omyl, kdy ten stick taky muze zlobit nebo nebyt kompatabilni. Ten conbee je asi nejlepsi varianta.
Ja prave vaham, byl jsem rozhodnut pro Conbee, ale par lidi psalo, ze to obcas zlobi, vyhazuje sensory ze site atd. Nevim, porad jsem na vazkach. A tento stick se mi zamlouval. Jenze najednou nejde sehnat
aha, tak s vyhazovanim ze site taky problem zadny nemam. nonstop pouzivam od ikey to petitlacitko, to mam v pracovne na zaluzie a svetlo, pouzivam denne nekolikrat a opravdu bez problemu.
pak mam jeste jednu zasuvku, ta taky jede nonostop.
Ostatni zatim jen v testovacim provozu obcas.
Nezkousel si tomu borcovi napsat, kde je problem nebo proc nejsou?
Tak uz jsou skladem, dneska jsem dostal mail a hned objednal 🙂
Diky za info!
Tusi niekto ci sa da sparovat koncove zariadenie priamo s routerom? Mam router z Ikea, zigbee tlacitko v zahradaku. Tlacitko som sparoval s koordinatorom v technickej, odniesol do zahradaku. Ma linku 9z 255, router uplne ignoruje. Pokus o sparovanie pri routeri nikdy nepriniesol vysledok.
nevim jak router z ikey, ale u toho meho usb sticku se ta sit prepocitava uplne dynamicky sama.
kdyz naparuju nove tlacitko, jdu s nim do TM, provedu naparovani. a uz cestou do pracovny se mi ihned samo prepne na chytrou zasuvku v pracovne.
A to uz s tym novym stickom co nejde teraz kupit? Ja som totiz narazil na slovne spojenie “source routing firmware”, coz som pochopil tak, ze to je nejaky firmware do sticku ktory inak routuje (nenechava to uplne na tych koncakoch si vybrat ak som to spravne pochopil). Ja mam ten stary stick co si s nim zacinal a tam sa to chova proste tak ze pokym je coordinator dostupny aspon trochu, tak to zaboha neprepne na iny router. Resp. ani neviem ako/kedy sa mi niektore cidla chytili na router. Mozno to trvalo mesiace, nemam paru, nesledoval som to, len teraz ked som do toho zacal hrabat som si vsimol ze su pripojene do routeru. Po reinstalle, zmene id-cka siete a preparovani router veselo vsetci ignoruju.
jj s tim novym stickem. s tim starym sem to jen chvili testoval, ale protoze to chtelo tu RPi, tak sem se na to vykaslal a hledal alternativu.
nevim, jestli to trasovani nejak nemuze delat i ten zigbee2mqtt firmware, protoze ten taky vidi silu jednotlivych kanalu (a umi ji i vykreslit).
Ale jestli to testujes vuci posledni verzi zigbee2mqtt, takt o bude asi spis tim stickem.
Dá se ten nový USB stick CC2652 připravený pro Zigbee koupit ještě někde jinde? Na Tindie není už dlouho k objednání
tenrkat jinde nebyl. nejsem si jist, ale myslim, ze je to primo jeho vyroba. Asi to neni nic extra svetoborneho, jen nejak poskladane, ale ma to odladene a funkcni. Je skoda, ze nestiha.
Slaes’h už na Tindie neprodává, prodává to přímo od sebe:
https://slae.sh/projects/cc2652/
Nicméně na seznamu podporovaných koordinátorů jsou vždy odkazy kde se dají koupit:
https://www.zigbee2mqtt.io/information/supported_adapters.html
Anebo, pokud by chtěl někdo podpořit místního výrobce, tak tady se jeden klube:
https://www.facebook.com/groups/2232679967058877/permalink/2843937365933131
dik za info. tak snad uz bude mit i vic kusu 😉
Aktualne mam dilu na 48 kusu koordinatoru. Z toho 30 je rozebranych. Pokud bude porad zajem i kdyz se budem blizit ke 40 tak urcite objedam dalsi. Jen asi zacnu primarne podporovat CC2652P, protoze ma nim dilu na stavbu a je to i novejsi cip. Jinak o tom neco pisu tady https://github.com/FixxCZ/Zigbee-Coordinator a budu tam pridavat informace i o tom jak to flashnout atd.