Teresa Foltová

← Zpátky

Published on Wed Nov 09 2022 14:25:00 GMT+0000 (Coordinated Universal Time) by Teresa

Mnoho moderních zařízení pro chytrou domácnost využívá k připojení protokol Thread, rozhodla jsem se naši chytrou domácnost o tento protokol rozšířit. Jelikož koupit samostatný hub by nebyla taková zábava, rozhodla jsem se jít DIY cestou, jako s celou naší chytrou domácností.

Použitý hardware/software:

Nastavení ESP

Nejsem první, kdo se o toto pokouší, takže se dá na internetu sehnat již zkompilovaný Radio Co-Processor pro ESP. Já se rozhodla pro ten od uživatele parhelion publikovaný v jeho návodu na HA fóru. K nahrání jsem použila ESP Home. Jelikož se zbytek jeho konfigurace liší od té mé (využívá HAOS), nemohla jsem jeho návod použít.

Kontejnery pro Thread a Matter

Co to vlastně je Thread a Matter?

Thread (Síťová infrastruktura) - Jedná se o nízkoenergetický bezdrátový protokol založený na architektuře “mesh”. Podobně jako Wi-Fi nebo starší Zigbee se stará čistě o to, aby zařízení měla stabilní spojení. Matter (Aplikační vrstva) - Standardizovaný komunikační protokol, který běží nad sítěmi (nejčastěji právě nad Threadem, ale lze i po Wi-Fi nebo ethernetu). Řeší historický problém, kdy se zařízení různých výrobců nedokázala domluvit.

Kontejner OpenThread Border Router slouží jako síťový směrovač. Jeho hlavním úkolem je překládat standardní IP provoz z domácí Wi-Fi/LAN sítě do nízkoenergetické bezdrátové sítě 802.15.4 (Thread). ESP32-C6 funguje pouze jako fyzická anténa (Radio Co-Processor), zatímco tento kontejner obstarává veškerou logiku routování. Compose:

otbr:
    image: openthread/border-router:latest
    privileged: true
    container_name: otbr
    restart: always
    cap_add:
      - NET_ADMIN
    environment:
      OT_RCP_DEVICE: "spinel+hdlc+uart:///dev/ttyACM0"
      OT_INFRA_IF: "eth0"
      OT_THREAD_IF: "wpan0"
      OT_REST_LISTEN_ADDR: "0.0.0.0"
      #Port pro komunikaci
      OT_REST_LISTEN_PORT: "8082"
      OT_LOG_LEVEL: 5
      OT_WEB_LISTEN_ADDR: "0.0.0.0"
      # Port webového rozhraní
      OT_WEB_LISTEN_PORT: 8083
    devices:
      - source: /dev/serial/by-id/usb-Espressif_USB_JTAG_serial_debug_unit_14:C1:9F:E4:B7:78-if00
        target: /dev/ttyACM0
      - /dev/net/tun
    volumes:
      - /mnt/dietpi_userdata/otbr/:/data/
    network_mode: host

Dále bylo potřeba zprovoznit server pro již zmíněný Matter. Compose:

matter-server:
    image: ghcr.io/home-assistant-libs/python-matter-server:stable
    container_name: matter-server
    restart: unless-stopped
    network_mode: host
    volumes:
      - /mnt/dietpi_userdata/matter-data:/data/
      - /run/dbus:/run/dbus:ro

Konfigurace HA

Následne jsem obě služby připojila do HA pomocí oficiálních integrací Open Thread Border Router a Matter. HA by měl oboje najít sám, případně se dají přidat ručně pomocí příslušné integrace a IP s portem - IP + port pro komunikaci pro OTBR a defaultního websocketu (ws://localhost:5580/ws) pro Matter.

Následně stačilo jen synchronizovat přihlašovací údaje Thread sítě do companion aplikace HA v telefonu a pomocí QR připojit zařízení. Zde jsem se setkala s menším problémem - Orange Pi nemělo IPv6 adresu (Thread komunikuje pouze pomocí IPv6, bez ní nefunguje), ale to se dalo změnou konfigurace jednoduše spravit.

Thread síť Přidané tlačítko

← Zpátky

Nedávné projekty