X
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.

Pomohl Vám náš blog? Chcete nás podpořit? I málo udělá radost 😉
Become a patron at Patreon!
0 0 votes
Hodnocení články
Subscribe
Notify of
guest

10 Komentáře
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
dalibor
3 years ago

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 🙂

_Petr_
3 years ago

Mohl bys pro inspiraci doplnit kód pro NodeRed pro to tlačítko? Tedy pokud nepředbíhám pokračování.

_Petr_
3 years ago

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.

_Petr_
3 years ago
Reply to  L

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é.

_Petr_
3 years ago
Reply to  L

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.

10
0
Would love your thoughts, please comment.x
()
x