Přeskočit na hlavní obsah

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.

Tasmota logo

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.

Pokročilé téma

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.

zigbeewifi
Ewelink ZB-GW03 EU Zigbee 3 Ethernet Bridge

Ewelink ZB-GW03 EU Zigbee 3 Ethernet Bridge

ESP32 s Ethernetem a Zigbee
zigbeewifi
Sonoff Zigbee Bridge-Pro

Sonoff Zigbee Bridge-Pro

ESP32 s WiFi a Zigbee

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:

Tasmota Buy Choice

Tasmota flashing

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:

usb
CP2102 USB 2.0 to TTL UART Module

CP2102 USB 2.0 to TTL UART Module

USB to UART TTL sériový konvertor pro nahrání firmware přes USB
Dupont kabely 10cm / 20cm / 30cm - male / female

Dupont kabely 10cm / 20cm / 30cm - male / female

Propojovací kabely

Př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

Tasmota flashing

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

Tasmota flashing

Nejdůležitější údaj - jak zapojit UART do Sonoff Bridge

ZbBridgeAdapter
ETXRX
ERXTX
IO0 (GPIO00)GND
GNDGND
3v33V3/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.

Pouze pro ZBBridge (ne 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.

Tasmota flashing Zigbee

Tasmota flashed

Firmware pro Zigbee u Pro verze

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:

  1. 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 ignorovat

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

  2. 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ě:

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

    Tasmota flashed

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

  1. Přidáme Integraci ZHA: - V menu Nastavení -> Zařízení a služby přidáme Integraci ZHA

    Nebo klikneme na:

    Open your Home Assistant instance and start setting up a new integration.
  2. Volba zadání manuálně: v dalším kroku při výběru portu vybereme volbu zadání manuálně (Enter Manually)

    Tasmota flashed

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

    Tasmota flashed

  4. Zadáme IP adresu ZBBridge běžícího na Tasmotě s portem 8888 a vše ostatní necháme ve výchozím nastavení.

    Tasmota flashed

  5. A máme hotovo!

    Tasmota flashed

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.

  1. Instalace doplňku Zigbee2MQTT: na detailní návod se podívejte sem

  2. 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'
  3. 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"}'
  4. Hotovo a můžeme používat Zigbee2MQTT pro párování nových Zigbee zařízení.

Zkušenost s Zigbee2MQTT

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