Tasmota
Tasmota je obecně open-source firmware pro zařízení postavené na čipech ESP8266 a ESP32. Díky tomu, že některé Zigbee brány běží právě na těchto čipech je možné do nich za určitých okolností nahrát vlastní firmware a mít tak bránu plně pod svou kontrolou.
Předpokládám, že jste se již seznámili se základy Zigbee a tak byste měli začít výběrem brány vhodné pro Tasmotu.
Narozdíl od použité ZHA, Zigbee2MQTT nebo deCONZu prostřednictvím USB koordinátoru je použití Zigbee2Tasmota mnohem složitější a vyžaduje i fyzický zásah do zařízení prostřednictvím vlastního firmware a to je potřeba rozebrat.
Výběr brány - doporučený hardware
Víceméně můžeme výběr zúžit jen na dva produkty. Jeden od firmy Sonoff používající kombinaci Zigbee + WiFi a produkt obsahující ESP32 i s Ethernetem prodávaný hned pod několika značkami.
Ewelink ZB-GW03 EU Zigbee 3 Ethernet Bridge
ESP32 s Ethernetem a ZigbeeSonoff Zigbee Bridge-Pro
ESP32 s WiFi a ZigbeeEwelink ZB-GW03
V případě Ewelinku ZB-GW03 (a jeho podobných odnoží) bývá často přímo při objednávání možnost vybrat si verzi, která už bude mít Tasmotu předinstalovanou, což vás zbaví nejnáročnější části a následující kapitolu tak můžete přeskočit.
Příklad výběru firmware u Ewelinku ZB-GW03 na AliExpressu:
Variantu s předinstalovanou Tasmotou mám vyzkoušenou a ušetří opravdu hromadu práce.
Stačí krabičku zapojit na Ethernetový kabel, pomocí DHCP by měla získat IP adresu a měla být připravena rovnou k použití.
Jen drobné upozornění - Ethernetová zásuvka na dnešní dobu poněkud dost překvapivě nemá žádnou diodu o aktivitě, což mě překvapilo a nejprve jsem myslel, že zásuvka nefunguje.
Sonoff Zigbee Bridge-Pro
U Sonoffu a jeho Sonoff Zigbee ZBBridge-Pro tomu tak není a buď zůstanete s původním firmware, který však 100% podporuje jen produkty Sonoffu a nebo se pokusíte firmware přehrát Tasmotou.
Pro nahrání firmware budete potřebovat minimálně tyto dva produkty:
CP2102 USB 2.0 to TTL UART Module
USB to UART TTL sériový konvertor pro nahrání firmware přes USBDupont kabely 10cm / 20cm / 30cm - male / female
Propojovací kabelyPřehrání firmware - nahrání Tasmota
Na detailnější postup nahrání firmware Tasmota do čipů ESP8266 / ESP32 se můžete podívat do článku k Tasmotě a zde si uvedeme jen speciality pro Sonoff Zigbee ZBBridge-Pro.
Rozebrání - jak se dostat dovnitř ZBBridge
Já mám ještě variantu bez "Pro", která se víceméně liší jen čipem - namísto ESP8266 obsahuje ESP32, ale postup by měl být totožný.
Pro to abychom se dostali k desce je potřeba ze spodní strany nejprve odloupnout gumové nožičky a pod nimi se skrývají celkem 4 šroubky.
Po jejich vyndání jde krabička jednoduše odklopit a desku můžeme vyndat z plastového obalu zařízení.
Zapojení pinů - jak propojit UART s deskou
Nejdůležitější údaj - jak zapojit UART do Sonoff Bridge
ZbBridge | Adapter |
---|---|
ETX | RX |
ERX | TX |
IO0 (GPIO00) | GND |
GND | GND |
3v3 | 3V3/VCC |
Nahrání z počítače - jak nahradit originální firmware Tasmotou
Jakmile máme desku propojenou s UART sériovým konektorem můžeme si stáhnout speciální verzi Tasmoty pro ZBBrige s názvem tasmota-zbbridge pro verzi bez Pro a tasmota-zbbrdgpro pro novější Pro verzi.
K nahrání firmware Tasmota do ESP2866 je třeba přidat i aktualizaci firmware pro Zigbee čip. Tento krok lze provést přes menu Firmware Upgrade v Tasmotě. Zde vyberte Upgrade by file Upload a následně soubor ncp-uart-sw_6.7.8_115200.ota, který je třeba nejdříve stáhnout na váš disk.
Bohužel návod pro ZBBridgePro je poněkud složitější a nechci ho sem úplně dávat dokud ho nevyzkouším. Pokud tak máte toto verzi zkuste se podívat na tento postup v angličtině.
Použití firmware Tasmota
Od tohoto místa dále již vše platí pro oba HW - tj. jak od Sonoffu tak alternativního ZB-GW03.
Firmware Tasmota můžeme použít dvěma způsoby:
-
Jako přímý Zigbee koordinátor postavený na Zigbee2Tasmota - Zigbee zařízení jsou párovány přímo do Tasmoty, ale funkcionalita je velmi limitovaná.
V případě že máme HomeAssistant můžeme ignorovatNebudu se dále tomuto způsobu více věnovat, jelikož v našem případě kdy provozujeme Home Assistant bychom se zbytečně ochuzovali.
-
Jako vzdálený Zigbee koordinátor připojený do ZHA nebo Zigbee2MQTT - prostřednictvím technologie Ser2Net (serial to network), která nám umožní sériový port přes Ethernet / WiFi. Díky tomu tak máme plnou funkcionalitu ZHA nebo Zigbee2MQTT prostřednictvím koordinátoru, který je fyzicky umístěný kdekoliv v Ethernet / WiFi síti.
Tasmota jako vzdálený Zigbee koordinátor
Pro použití s ZHA nebo Zigbee2MQTT budeme potřebovat přepnout Tasmotu s přímého Zigbee koordinátoru do vzdáleného módu.
To uděláme následovně:
-
Připojíme se na webové rozhraní Tasmota a v Configuration -> Configure Other nastavíme v sekci Other parameter -> Template na hodnotu:
-
pro ZBBridge:
{"NAME":"ZBBridge","GPIO":[56,208,0,209,59,58,0,0,0,0,0,0,17],"FLAG":0,"BASE":18}
-
pro ZBBridgePro:
{"NAME":"ZBBridge Pro","GPIO":[0,0,576,0,480,0,0,0,0,1,1,5792,0,0,0,5472,0,320,5793,5504,0,640,608,32,0,0,0,0,0,1,0,0,0,0,0,0],"FLAG":0,"BASE":1}
-
pro ZB-GW03 už není potřeba měnit, ale pro jistotu uvádím:
{"NAME":"ZB-GW03","GPIO":[0,0,3552,0,3584,0,0,0,5793,5792,320,544,5536,0,5600,0,0,0,0,5568,0,0,0,0,0,0,0,0,608,640,32,0,0,0,0,0],"FLAG":0,"BASE":1}
a nezapomeneme zatrhnout Activate a uložíme.
-
-
Přidáme do Tasmoty přes konzoli nové pravidlo, které nastartuje sdílení koordinátoru přes TCP. V konzoli spustíme tento příkaz:
Rule1 ON System#Boot do TCPStart 8888 endon
a měli bychom vidět přibližně následující odpověď o přidání pravidla a nastartování TCP služby na portu
8888
.13:52:19.563 CMD: Rule1 1
13:52:19.567 RSL: RESULT = {"Rule1":{"State":"ON","Once":"OFF","StopOnError":"OFF","Length":37,"Free":474,"Rules":"ON System#Boot do TCPStart 8888 endon"}}
13:52:19.770 RUL: SYSTEM#BOOT performs "TCPStart 8888"
13:52:19.772 TCP: Starting TCP server on port 8888
13:52:19.774 RSL: RESULT = {"TCPStart":"Done"}
Tím máme hotovou přípravu na straně ZBBridge a zbytek nastavení je jiný v závislosti zda si zvolíme v ZHA nebo Zigbee2MQTT.
Tasmota s ZHA
Pokud se rozhodneme pro ZHA pak můžeme celé další nastavení udělat přes Home Assistenta.
-
Přidáme Integraci ZHA: - V menu Nastavení -> Zařízení a služby přidáme Integraci ZHA
Nebo klikneme na:
-
Volba zadání manuálně: v dalším kroku při výběru portu vybereme volbu zadání manuálně (Enter Manually)
-
Typ rádia:
- pro ZBBridge a ZB-GW03 - ponecháme EZSP, což odpovídá firmwaru, které jsme manuálně nahráli do ZBBridge a nebo jsme obdrželi společně s ZB-GW03.
- pro ZBBridgePro - změníme na ZNP.
-
Zadáme IP adresu ZBBridge běžícího na Tasmotě s portem 8888 a vše ostatní necháme ve výchozím nastavení.
-
A máme hotovo!
Párování nových Zigbee zařízeních a jakékoliv další nastavení Zigbee sítě se pak už provádí stejně jako bychom měli lokální koordinátor.
Tasmota s Zigbee2MQTT
Nastavení Zigbee2MQTT je o chlup složitější, jelikož není narozdíl od ZHA standardní součástí Home Assistanta.
-
Instalace doplňku Zigbee2MQTT: na detailní návod se podívejte sem
-
Konfigurace koordinátoru přes TCP: v nastavení MQTT doplňku zadáme konfiguraci koordinátoru:
- pro ZBBridge:
serial:
port: 'tcp://[zbbridge_ip]:8888'
adapter: ezsp - pro ZBBridgePro:
serial:
port: 'tcp://[zbbridgePro_ip]:8888'
- pro ZBBridge:
-
Nastartujeme doplněk a podíváme se do logu, kde by bychom měli vidět použití vzdáleného koordinátoru:
[14:29:37] INFO: Preparing to start...
[14:29:38] INFO: Socat not enabled
[14:29:38] INFO: Starting Zigbee2MQTT...
Zigbee2MQTT:info 2024-01-28 14:29:43: Starting Zigbee2MQTT version 1.35.1 (commit #unknown)
Zigbee2MQTT:info 2024-01-28 14:29:43: Starting zigbee-herdsman (0.30.0)
Zigbee2MQTT:debug 2024-01-28 14:29:43: Using zigbee-herdsman with settings: '{"adapter":{"concurrent":null,"delay":null,"disableLED":false},"backupPath":"/config/zigbee2mqtt/coordinator_backup.json","databaseBackupPath":"/config/zigbee2mqtt/database.db.backup","databasePath":"/config/zigbee2mqtt/database.db","network":{"channelList":[11],"extendedPanID":[208,179,129,254,180,173,38,130],"networkKey":"HIDDEN","panID":29024},"serialPort":{"adapter":"ezsp","path":"tcp://10.2.1.202:8888"}}'
Zigbee2MQTT:info 2024-01-28 14:29:48: zigbee-herdsman started (resumed)
Zigbee2MQTT:info 2024-01-28 14:29:48: Coordinator firmware version: '{"meta":{"maintrel":"8 ","majorrel":"6","minorrel":"7","product":8,"revision":"6.7.8.0 build 373"},"type":"EZSP v8"}' -
Hotovo a můžeme používat Zigbee2MQTT pro párování nových Zigbee zařízení.
Z nějakého důvodu v mém případě koordinátor přes ZBBridge a Zigbee2MQTT fungoval poměrně mizerně. Už při párování nového zigbee zařízení psal Timeouty a nakonec ani neodpovídal na požadavky v limitu.
U ZHA takový problém nebyl a zatím netuším čím byl to mohlo být.
Zigbee2MQTT:error 2024-01-28 14:39:14: Failed to configure '0x60a423fffed2ead1', attempt 1 (Error: Bind 0x60a423fffed2ead1/1 genOnOff from '0x60a423fffe425611/1' failed ({"address":7074,"clusterId":32801,"sequence":7} after 10000ms)
at Timeout._onTimeout (/app/node_modules/zigbee-herdsman/src/utils/waitress.ts:64:35)
at listOnTimeout (node:internal/timers:569:17)
at processTimers (node:internal/timers:512:7))
Komentáře