Upgrade Zigbee
Tak jsem si po delší době doma zase trochu zabastlil, dokonce i pájku oprášil, a tak bude dneska i článek :).
Přinucen okolnostmi jsem se musel rozhodnout, zda dát dohromady rozbitý zigbee2mqtt, nebo se dokopat a využít skvělého návodu od Budulínka a přemigrovat celé Zigbee na Tasmotu (donucen proto, že po dvou výpadcích proudu v noci a nouzovém vypnutí serveru se mi rozbil databázový soubor zigbee2mqtt a celá síť se rozpadla).
Bohužel, včera nebyl zřejmě můj den a tak do čehokoli jsem se z toho pustil, tak ani se skvělým návodem mi prostě nefungovalo vlastně nic 🙂
Začal jsem flashováním pomocí Tasmotou doporučeným adaptérem. No, tak ten ani zaboha. Nejprve jsem myslel, že jsem si blbě napájel piny na připojení kablíků, nebo že jsem někde zapojil něco špatně. Ale proste nic. Neustále chyba “Unexpected error: ESP Chip Auto-Detection failed: Failed to connect to Espressif device: No serial data received.”. Když ani několikáté přeměření a překontrolování nepomohlo, zkusil jsem druhý adaptér. Naštěstí jsem totiž tenkrát objednal dle návodu od Budulínka oba dva.
A světe div se, fungoval napoprvé. Takže ponaučení číslo jedna, nespoléhat na oficiálně doporučené adaptéry a brát radši oba 🙂
Připojení do sítě pomocí ethernetu prošlo napoprvé a tak jsem pokračoval v nahrávání firmwaru do už flashnutého zařízení. I to proběhlo dobře a už jsem začínal mít pocit, že už bude jen dobře….
Nebylo :). Po restartu zařízení zahlásilo “zigbee not available” a nazdar. Skvělý. Takže jsem rozbil něco cestou při flashování?
Takže znova flash zpátky původního firmware, znova pokus na nový firmware, stažení i beta firmware…. a nic. Furt to stejné.
Tak jsem šel do logů. V nich nic neříkající hláška “ZGB: timeout, goto 99”. Ok, takže se zigbee zařízení nestihne ohlásit včas? A tak zas půl hodiny googlení.
Trvalo to, inženýři z Tasmoty se to snažili velmi úspěšně maskovat a schovat, ale našel jsem to. Problém není v Zigbee zařízení :).
Problém je (a ukáže se v logu, když dáte maximální detaily logování), že Tasmota se nedokáže připojit k NTP time serverům a synchronizovat čas, a proto zakáže Zigbee… ok.
Takže pokračovalo kolečko, proč se vlastně nedokáže připojit. Ukázalo se, že nefunguje DNS překlad NTP adresy. Ale proč..
No, odpověď pak už byla vcelku snadná. Protože mi výpadek elektriky sestřelil nejen Zigbee2mqtt VM, ale také PiHole DNS server. Takže ten přestal fungovat a zatímco ostatní zařízení umějí pracovat i se sekundárním DNS, které mám nastaveno, tak Tasmota ne.
Takže jsem cestou ještě obnovil zálohy PiHole VM, opravil DNS resolver a pak už tasmota najela včetně Zigbee adaptéru. Párování a nastavení Tasmoty pak šlo už naštěstí jako po másle, takže jsem jen následoval zmiňované návody.
A to až do fáze, kdy jsem začal propojovat Tasmotu s Loxone. Nakonec jsem se rozhodl nepoužít přímé propojení pomoci UDP parsování v Loxone, jelikož když jsem viděl, kolik dat se do Loxone hrne a že každý virtuální vstup musí data znovu a znovu parsovat. Proto jsem se nakonec rozhodl využít NodeRED a data předzpracovat. Přeci jen mám jen původní miniserver a takto jsem ho spamovat úplně nechtěl. Ale o tom v dalším článku.
Závěrem už jen poděkování Budulínkovi za jeho návody, ušetřilo mi to určitě hromadu dalšího času a nervů, a hlavně, celý systém mi teď přijde o dost stabilnější než původní Zigbee2Mqtt.
Seznam odkazů na návody na Tasmotu:
- https://www.vodnici.net/wiki/zigbee-pres-tasmotu-1-hardware/
- https://www.vodnici.net/wiki/zigbee-pres-tasmotu-2-napojeni-zigbee-senzoru-a-aktoru-na-loxone/
- https://www.vodnici.net/wiki/zigbee-pres-tasmotu-3-nezname-zigbee-zarizeni/
- https://www.vodnici.net/wiki/zigbee-pres-tasmotu-4-automaticke-posilani-dat-senzorem/
“po dvou výpadcích proudu v noci a nouzovém vypnutí serveru se mi rozbil databázový soubor”
… a to je dovod, preco v mojom navode na rpi je sekcia ‘upgrade to btrfs’. Plus robit si zalohy. Ja o tom mojom zigbee bridge v podstate ani neviem, tym ze to aktivne nepouzivam (nie je cas) vlastne ani neviem, ci je este v obyvacke za telkou, alebo v rozvadzaci v technickej, kam som ho chcel presunut 🙂
Ja to mam v dockeru na serveru ;-). Cely server a vse zalohovany, vcetne nastaveni zigbe2mqtt, jenze sem si nevsiml, ze on krom toho cfg zapisuje jeste do toho database.db, kde jsou stavy zarizeni nebo co to bylo (a mam pocit, ze ten novy uz to nema, ale nezkoumal sem to).
No a pri druhym vypadku sem uz musel urychlene vypinat cely server, protoze dochazela stava v baterkach, a k tomu sem omylem misto “shut down” dal “force shit down”, takze se to s tim neparalo a vyplo to.
Takze fakt totalne debilni kombinace, na kterou nebyl ani muj recovery plan pripravenej ;-).
To je souhra okolnosti jak pri vybuchu Cernobylu 🙂
Pekny clanek! Ja sel cestou Conbee II + Node-red (navod od elpaso) a je to take super. A to uz mi parkrat elektrina vypadla. Node-red mam na Rpi4, ktere bootuje z SSD.
S tim Pihole je to zajimave. Ja ho chtel nasadit, ale bud to spatne chapu, nebo bych ho musel mit 2x, protoze kdyz prvni vypadne a zarizeni by se pripojily na sekundarni, ktery by byl od ISP, tak uz se samy neprepoji na primarni, kdyz bude Pihole opet k dispozici. Alespon jsem se to docetl.
Já tedy tasmotu pouzivam napřímo. Zase tolik dat tam imho neteče a loxone je sice parsuje, ale co – chleba to nežere.
S tím NTP mám taky problém po výpadku elektriky. Než se nahodí internet, switch, tak tasmota se přestane snazit a udělá to známé zigbee not started.
chtěl jsem z miniserveru tedy poslat po startu restart 1 command do tasmoty. Nicmene jsem zjistil ze tasmota obvykle nenaběhne a já nemám tucha proč.
Pomuze pak jen power off a power on.
Vedel by nekdo jak udelat configuraci v user_config_override.h aby zkusil synch NTP az po nejake delsi dobe?