ZigBee přes Tasmotu 1: Hardware

ZigBee přes Tasmotu 1: Hardware

How Can We Help?

Categories

ZigBee přes Tasmotu 1: Hardware

You are here:
< Zpět

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:

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

  1. 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. Soubor tasmota/user_config_override.h NAHRAĎTE tímto kódem. Pak už stačí v příkazovém řádku zadat příkaz platformio run -e tasmota32-EWELINK a po cca 2 minutách máte hotový firmware v adresáři build_output/firmware/tasmota32-EWELINK.bin
  2. 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-06-30.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.

https://downloads.vodnici.net/uploads/wpforo/attachments/214/4858-IMG20211212113806260.jpg

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.

Pomohl Vám náš blog? Chcete nás podpořit? I málo udělá radost 😉
Table of Contents

Leave a Reply

Your email address will not be published.