===== Howto integrate a 2nd Open-Thread Border-Router and 2nd Zigbee2Mqtt on a 2nd RaspberryPi into Homeassistant ===== {{tag>homeassistant otbr zigbee2mqtt raspi docker}} - Install RaspiOS Lite - Install Docker or similarghcr.io/koenkk/zigbee2mqtt - create persistent /srv storage dir - use docker-compose (see below) to install these two containers * ''ghcr.io/koenkk/zigbee2mqtt'' * ''denniswitt/homeassistant-otbr:latest'' (recommend you don't use the original OTBR docker container.) - configure Zigbee2MQTT using it's onboard screen. * Enable HomeAssistant AutoDiscovery. * Choose ''/dev/ttyUSBzb'' as radio-device * Make sure to use a differnt mqtt-prefix than the other zigbee2mqtt instances - make sure you can see the OTBR multicast DNS broadcasts \\ homeassistant should autodiscover it in the [[http://homeassistant.realraum.at/config/thread|Settings/Threads]] panel - regardless, it's necessary to add the 2nd OTBR's API endpoint to homeassistant. In the menu of that panel, choose ''Add an OpenThreadBorderRouter''. Enter the IP and Port of the 2nd Raspi - Finally, on the menu of the new router, choose "Add to main thread network" - Refresh webpage if it does not update automatically - It should look like this: {{:roomauto:homeassistant_otbr_works_2026-02-27_18-52-05.png?nolink&400|}} ==== docker compose.yaml ==== services: zigbee2mqtt: container_name: zigbee2mqtt image: ghcr.io/koenkk/zigbee2mqtt restart: unless-stopped volumes: - /srv/zigbee2mqtt/data/:/app/data - /run/udev:/run/udev:ro ports: # Frontend port - 8485:8080 environment: - TZ=Europe/Berlin devices: - /dev/serial/by-id/usb-SONOFF_-port0:/dev/ttyUSBzb otbr: image: denniswitt/homeassistant-otbr:latest container_name: openthread-border-router restart: unless-stopped privileged: true network_mode: host environment: - DEVICE=/dev/ttyUSBth - BACKBONE_IF=eth0 - BAUDRATE=460800 - FLOW_CONTROL=0 - BETA=0 - AUTOFLASH_FIRMWARE=0 devices: - /dev/serial/by-id/usb-SONOFF_-port0:/dev/ttyUSBth cap_add: - NET_ADMIN - NET_RAW