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.
@L zatím jsem řešil jen světýlka a podobné podružnosti přes Tasmota a Sonoff WiFi zásuvky což je sranda za 12 USD… takže Zigbee jsem odolával nicméně hodilo by se bezdrát tlačítko se funkcemi 1/2/3 stisku co nejmenší třeba tohle https://www.chytrevypinace.cz/Sonoff-ZigBee-Tlacitko-SNZB-01-d223.htm
protože na Synology NAS 214 není docker dal bych bránu ro RPi3 kde provozuji jen NodeRed…
Otázka zní jaký je dosah mezi bránou a aktory/senzory ? Je to v té databázi Nodred knihovny ? Co mohu očekávat za skryté problémy, když ještě ZigBee nemám a co mne ani nenapadnou? Samozřejmě použití jen na “tralala” funkce 🙂
dosah mi vychazi v ramci patra tak 15m co mam otestovano. dosah muzes prodlouzit ruznymi prvky co jsou nonostop pripojeny. tzn treba chytra zasuvka nebo zarovka.
ty sonoff tlacitka mam, jedna/dva klik umi, triklik nevim jestli udelas. oni si totiz ten dvouklik resi sami.
ad node red a problemy, pockej si na dalsi 3 clanky ;-). krom verze nodered mi pak zlobilo jeste nastaveni mqtt v zigbee2mqtt (bude popsano v dalsim clanku).
jinak jeste k tem zigbee tlacitkum, mrkni do ikea. tam maji ted nove za 150kc.
https://www.ikea.com/cz/cs/cat/ovladani-a-doplnky-36814/
nevim jestli umi dvouklik, ale umi dlouhe podrzeni. dvouklik by asi sel simulovat na loxone
a to jejich kulate petitlacitko, to je hodne prijemne na ovladani.
Mohl bys pro inspiraci doplnit kód pro NodeRed pro to tlačítko? Tedy pokud nepředbíhám pokračování.
Sepsáno na přání 🙂
https://www.vodnici.net/2020/09/ikea-tradfri-zigbee-loxone/
Přišlo mi to jako dobrý nápad z toho udělat rovnou celý návod i pro ostatní, kdo s tím třeba začínají. Takže je to step-by-step komplet. Projekt k importu je na konci.
Chtěl jsem vyzkoušet co dělá v node-red-contrib-zigbee2mqtt bridge a nedopadlo to zrovna slavně. Na výstup jsem zapojil debug, dal deploy a node-red zhavaroval a nedal se spustit.
Tezko pomoct, bez vice infa. Mas zigbee2mqtt? bezi na stejnem stroji nebo jinde? bezi ti signaly do mqtt jako takoveho? co pisou logy mqtt? ….
Zkusil jsem to 2x se stenným výsledkem podruhé i bez debugu. Když bridge přidám, tak si můžu zobrazit mapu a vše vypadá, že funguje. Jakmile dám deploy, tak to už nenaběhne a musel jsem se vrátit k záloze, kterou si NR dělá. Víc jsem zatím nezkoumal. Zigbee2mqtt, MQTT i Node-Red běží na různých strojích. Tím si mě přivedl na myšlenku zkusit nastavit druhou zigbee gw a udělalo to to samé.
je divne, ze to uplne zabije cely nodered. mozna nejaka nekompatabilita pluginu, nebo nakopnuty nodered.
schvalne si zkontroluj, jakou verzi mas. pokud jedes z dockeru, over, ze mas 1.x a ne tu betu 0.x
Měl jse zaktualizované úplně všechno. Hlásí to “TypeError: Cannot read property ‘toString’ of null”, pak to node-red ukončí a znovu se startuje. Tak je to stále dokola.