ZigBee přes Tasmotu 1: Hardware
How Can We Help?
ZigBee přes Tasmotu 1: Hardware
ZigBee přes Tasmotu 2: Napojení ZigBee senzorů a aktorů na Loxone
ZigBee přes Tasmotu 3: Neznámé ZigBee zařízení (Danalock)
ZigBee přes Tasmotu 4: Automatické posílání dat senzorem
TL;DR
Pokud chcete připojit ZigBee zařízení (senzory nebo aktory) k Loxonu, kupte si ZigBee bránu postavenou na ESP32. Flashněte na něj Tasmotu. Nic víc nepotřebujete – nepotřebujete žádné další zařízení (RPi, Loxberry etc.), na kterém by vám běžel další software (Docker, MQTT broker, Node Red, MQTT Gateway pro Loxberry atd.)
Přehled možných řešení
Nejdřív stručný přehled možných řešení, jak do Loxonu přidat bezdrátové technologie
Air + Loxone
Air zařízení < --(proprietární protokol)-- > Loxone < -- > uživatel
Loxone nepodporuje ZigBee, místo toho má vlastní proprietární bezdrátovou technologii Air. Integrace Air do loxonu je velice snadná, ale Air zařízení jsou oproti ZigBee předražená. Nabídka Air je mnohem užší, protože se jedná o proprietární technologii dostupnou jenom v Loxone shopu.
ZigBee + Apple HomeKit
ZigBee zařízení < --- > ZigBee brána (HomeKit kompatibilní) < --- > Apple Cloud < --- > Apple "Domácnost" < --- > uživatel
Pro úplnost zmíním, že snadným způsobem, jak kombinovat ZigBee s Loxonem je přes Apple HomeKit. Schválně říkám “kombinovat s” a ne “integrovat do”, protože integrátorem (tj. místem, kde se sbíhají všechny senzory a aktory, kde je nadefinovaná automatizační logika a kde se připojuje koncový uživatel) není Loxone app, ale Apple “Domácnost”. Připojíte ZigBee bránu k HomeKit (skoro každá brána včetně těch na Aliexpressu to umí), stejně tak do HomeKit připojíte Loxone. Loxone o ZigBee neví, domácnost automatizujete a ovládáte přes aplikaci Apple “Domácnost”. Jste tedy uživatelem Applu a ne Loxonu. Sbohem a šáteček….
ZigBee + MQTT
ZigBee zařízení < --- > ZigBee brána (Zigbee2MQTT) < --- > MQTT broker (mosquitto) < --- > Node Red < --(udp/websockets)-- > Loxone < --- > uživatel
Dosavadní snahy o integraci ZigBee do Loxonu byly většinou postavené na ZigBee2MQTT. To zamená, že na ZigBee koordinátorovi běží firmware ZigBee2MQTT (https://www.zigbee2mqtt.io/) a jak název napovídá, z koordinátora leze MQTT. Výhodou je obrovská databáze podporovaných zařízení , takže převod na MQTT protokol je (většinou) rychlý a bez problémový.
Nevýhodou je skutečnost, že Loxone neumí číst MQTT a proto potřebujete nějakého “prostředníka”, tedy další stroj (RPi nebo nějakou virtuální mašinu), s vlastním OS (Debian, Raspbian, Loxberry) na které poběží MQTT broker (protože samotný MQTT protokol je centralizovaný a vyžaduje brokera) a potom další software, který musíte nakonfigurovat a který vám (pokud se vše podaří) přeloží MQTT protokol na něco, čemu Loxone rozumí (UDP, websockety).
Jaká řešení můžete na netu (a na vodnících) najít:
- MQTT + Node Red (a to samé ve wiki)
- MQTT + Loxberry plugin
- MQTT + vlastní skript (to vše naservírované v Dockeru)
- Phoscon + Node Red (MQTT se nepoužívá, ale stejně potřebujete Node Red)
ZigBee + Tasmota
ZigBee zařízení < --- > ZigBee brána (Tasmota) < --(http/udp)-- > Loxone < --- > uživatel
Řešení v tomto tutorialu používá jako alternativní firmware pro ZigBee koordinátora (ZigBee bránu) Tasmotu, místo ZigBee2MQTT. Tasmota posílá (a přijímá) data přes obyčejný HTTP nebo UDP, nikoliv přes MQTT. Hlavní výhoda je tedy v tom, že kromě samotné ZigBee brány (na které běží Tasmota) nepotřebujeme na propojení s Loxone žádný další HW ani software.
Nákupní seznam
- ZigBee brána postavená na ESP32, doporučuju bránu s ethernet rozhraním “eWeLink ZB-GW03“, dá se koupit třeba tady. Pokud vám ale stačí wifi, můžete použít i Sonoff bránu, dá se sehnat i v Česku.
- USB – Serial adaptér na flashování, třeba tento (ten červený) nebo tenhle doporučovaný Tasmotou.
- doporučuju rovnou přikoupit nějaké další zařízení, které můžete použít jako ZigBee router a rozšířit si tak dosah sítě, třeba tenhle DC stmívač. Bude se vám k němu hodit DC konektor male 5.5mm x 2.1mm.
- nějaké male-female dupont kabely na flashování
Tasmota
Tasmota je alternativní firmware pro komerční “chytrá” zařízení (zásuvky, reláta, vypínače, senzory, atd.) postavené na ESP32 či ESP8266. Původně byla vymyšlená pro WiFi zásuvky, ale dnes Tasmota zvládá obrovskou škálu senzorů, včetně ZigBee. Tenhle článek popisuje flashování Tasmoty na ZB-GW03 (vycházel jsem z tohoto tutorialu). Pokud jste se místo ZB-GW03 rozhodli použít Sonoff, postupujte podle tohoto tutorialu (až na pár drobností je to stejné).
- Pokud si chcete zkompilovat čerstvou Tasmotu, nejjednodušší je využít k tomu GitPod (ke službě je nutné se přihlásit). V GitPodu stačí zeditovat dva soubory: k souboru
platformio_override.ini
PŘIPOJTE tento kód. Obsah souborutasmota/user_config_override.h
NAHRAĎTE tímto kódem. Pak už stačí v příkazovém řádku zadat příkazplatformio run -e tasmota32-EWELINK
a po cca 2 minutách máte hotový firmware v adresářibuild_output/firmware/tasmota32-EWELINK.bin
- Pokud se vám nechce Tasmotu pro bránu ZB-GW03 kompilovat, můžete si stáhnout mnou zkompilovaný firmware (parametry a nastavení, se kterým jsem kompiloval máte v předchozím bodě): tasmota32-EWELINK-2022-09-25.bin
Rozebereme ZB-GW03 a připojíme k USB-Serial adaptéru. Nejnovější verze desky V1.3 má na důležitých místech díry, takže si můžete na desku snadno připájet piny (jako jsem to udělal já). Ale vzhledem k tomu, že fyzicky budete flashovat firmware jenom jednou (všechny další upgrady firmwaru budete dělat OTA přes webové rozhraní Tasmoty), tak pájet piny nemusíte, stačí do děr dočasně píchnout propojovací kabely.
Nezapomeňte na USB/Serial adaptéru nastavit jumperem napětí 3,3 V !!!!!!
Propojení:
ESP32 <–> USB/Serial adaptér
GND <–> GND
3.3V <–> 3.3V (nebo VCC, ale ověřte si, že tam opravdu máte napětí 3,3 V)
RX <–> TX (!!)
TX <–> RX (!!)
IO0 <–> GND (já jsem to vyřešil jumperem)
Na flashování jsem použil ESP-Flasher.
Flashnuté ZB-GW03 spustíme – pokud vše proběhlo v pořádku, bude trvale svítit červená dioda. Píchneme Tasotu přes ethernet kabel do sítě, ve které máme DHCP server, a Tasmota od něj dostane dynamickou IP adresu (později si můžete nastavit statickou). Přidělenou adresu zjistíme třeba pomocí Advanced Port Scanneru, který nám najde IP adresu Tasmoty a rovnou nám nabídne proklik na HTTP službu (webserver Tasmoty).
Přejdeme do webového rozhraní Tasmoty a zkontrolujeme nastavení. Pokud jste použili můj firmware (nebo moje konfigurační soubory), Tasmota je připravená k použití, zbývá už jenom aktualizovat firmware samotného ZigBee modulu. Z této stránky si stáhněte ncp-uart-sw-6.7.8_115200.ota
. V Tasmotě přejděte na Firmware Updates > Upgrade by file upload a nahrajte firmware pro ZigBee rádio (Tasmota automaticky pozná, že se nejedná o firmware pro ESP32 ale pro ZigBee rádio).
Základní nastavení Tasmoty se dá naklikat, ale vedle toho má Tasmota obrovské množství příkazů, kterými můžete nastavovat samotnou Tasmotu a (jak si ukážeme později) i samotnou ZigBee síť a dokonce i koncová ZigBee zařízení. Příkazy (jejich kompletní seznam je tady) budeme zadávat přes konzoli (přejděte na Consoles > Console), ale ty samé příkazy můžete posílat přes HTTP API, čehož později využijeme na propojení s Loxone. Jako první zkusíme příkaz na nastavení statické IP adresy, třeba:
EthIpAddress 192.168.1.25
Pokud byste se někdy potřebovali vrátit na výchozí nastavení stačí zmáčknout Configuration > Reset Configuration.
Na závěr tohoto tutorialu pár poznámek ke dvěma pojmům, se kterými se v ZigBee světě potkáte: koordinátor a router.
ZigBee koordinátor
ZigBee Coordinator nastavuje fyzické parametry ZigBee sítě. Je to něco jako access point. Koordinátor se zároveň stará o fyzické přemostění mezi ZigBee a jiným rozhraním, které může bý:
- ethernet
- wifi
- usb/serial
Už na začátku jsme zavrhli nejrůznější USB moduly, protože k nim bychom potřebovali další HW (s linuxem). WiFi není ideální, protože latence a potenciálně i interference (ZigBee běží na stejných frekfencích jako WiFi). Kromě toho je tu ještě jeden praktický důvod. Loxone mám z bezpečnostních důvodů v samostatné VLAN (s řadou síťových zařízení vč. Tasmoty Loxone komunikuje přes nezabezpečený HTTP nebo UDP). Tahle VLAN pro Loxone (a na něj napojené věci) je postavená na ethernetu a nechce se mi jenom kvůli ZigBee bráně do téhle VLAN přidávat nějaké dedikované wifi rozhraní…. Pokud ale trváte na tom, že chcete Loxone připojovat k ZigBee bráně přes WiFi (a ne ethernet), můžete si Tasmotu flashnout na Sonoff bránu.
Z mého pohledu je tedy nejlepším řešením lepší koordinátor s ethernet rozhraním, proto jsem bral ZB-GW03. Pořád ale musíme počítat s tím, že samotné ZigBee běží na stejných frekvencích jako Wifi, viz zde. Pokud chcete (orientačně) vědět, který ZigBee kanál je více nebo méně zahlcený, zkuste v Tasmotě příkaz:
ZbScan
Tasmota defaultně používá ZigBee kanál 11, pokud ho chcete změnit, udělejte to raději ještě před párováním samotných ZigBee zařízení:
ZbConfig {"Channel":11}
Sílu a dosah ZigBee rádia v bráně ZB-GW03 jsem neřešil, protože ZigBee je nadesignované tak, abyste dosah koordinátora řešit nemuseli…..
ZigBee router
ZigBee router je zařízení, které vlastně “rozšiřuje” dosah ZigBee sítě, protože umí přeposílat data mezi koncovým zařízením a koordinátorem.
Jakékoliv trvale napájené ZigBee zařízení (ZigBee zásuvka, žárovka, atd.) funguje jako ZigBee router. Já ale chci, aby mi ZigBee síť fungovala i při výpadku elektřiny (protože na ní mám důležité věci vč. Danalock zámku), takže jako router nepoužívám 230V AC zařízení (např. zásuvku), ale DC dimmer, který můžu napájet zálohovaným DC napětím v libovolné hladině 5V, 12V nebo 24V.
Router nijak nenastavuju, prostě ho zapojím na vhodné místo, kde mám dotažené DC napájení (do podhledu, za vypínač…) a víc se o něho nestarám.
To je co se týče HW vše. V dalším díle do ZigBee sítě přidáme nějaké senzory a napojíme je na Loxone.
7 thoughts on “ZigBee přes Tasmotu 1: Hardware”
Zkusil jsem to a dobrý, funguje to podle návodu. Díky. Jen tedy po flashnutí mně červená dioda trvale nesvítila, myslím, že blikala a svítila zelená.
Nova tasmota se da, kdo ma zajem stahnout a flashnout. Ma nejake novinky – scriptovani v berry, coz je hezky. Pak nejake casovace a prece jen je to nova verze, nejsou to jen kosmeticke zmeny. https://github.com/tasmota/install/blob/firmware/firmware/unofficial/tasmota32-zigbeebridge.bin
Upgrade doporučuju. Měl jsem problém, že mi koordinator neabehl spolecne se startem internetu (tomu to chvili trva) a hlasil zigbee not started. Bylo to tim, ze NTP nebyly dostupny a koordinator to vzdal. V teto nove verzi to pocka dost dlouho a v pohode nabehne.
Nevím jaké máte zkušenosti s tím Ewelinkem, mě zrovna dneska z ničeho nic umřel. Nedělal jsem žádný flashování, jen jsem si v nastavení změnil konfiguraci Wifi a nevím přesně v jakém bodě se ten HW odporoučel do věčných lovišť. Měl jsem tam Tasmota 13.1, vlastní kompilaci, ale do té doby plně fukční. HW ve verzi 1.4. Teď přemýšlím, zda pořídit nový kus a nebo jít raději do Sonoff Bridge Pro.
a to nejde flashnout uz ani pres seriovku? Na tom se nema moc co pokazit…
Jo, zapoměl jsem pak napsat. Ano, to šlo.
Tak jsem úspěšně připojil na ZB-GW03 starý LED pásek od Phillips Hue a přes konzoli posílal příkazy a světýlko svítilo, olala. Pak jsem laboroval s nějakým nastavením a bum konec, úplně mrtvo, takže jdu koupit ten flashovací kit a jdu to oživovat.
A důvod proč jsem to udělal, bylo, že jsem chtěl vizuální ovládání RGBW. Držte mi palce.