Files
HomeAssistantVS/zbt2-migration-checklist.md

3.7 KiB

ZBT-2 OTBR Migration Checklist

Date: 2026-08-25 Goal: Replace Google TV Streamer as Thread Border Router with Home Assistant Connect ZBT-2 running OpenThread Border Router add-on.

Why

Google TV Streamer silently re-forms the Thread mesh with fresh credentials after any disruption, stranding nodes. Google never exports the dataset, so there's no way to join its network. HA must host its own Thread network instead.

Before you start

  • Backup already taken (2db4735e — "Before ZBT-2 OTBR Migration")
  • Locate Matter pairing labels on all 7 devices (flashlight — IKEA labels are tiny)

Devices to migrate (all Thread-over-Matter)

# Device Manufacturer Model Network Notes
1 Bedroom Switch IKEA BILRESA scroll wheel Google-75B7 Bottom/back label
2 Bedroom Lamp IKEA KAJPLATS E12 WS Google-75B7 Bottom of lamp base
3 Office Button IKEA BILRESA dual button Google-75B7 Back/bottom
4 Office Scroll Wheel IKEA BILRESA scroll wheel Google-75B7 Assigned to Office area
5 Office Lamp IKEA KAJPLATS E12 CWS Google-75B7 Bottom of lamp base
6 Basement Switch IKEA BILRESA dual button Google-75B7 Back/bottom
7 Night Light ThirdReality Smart Night Light-W "st" (separate) Different network — good test case first

Step 1 — Hardware setup

  1. Plug ZBT-2 into physical host machine
  2. USB passthrough to HAOS VM in hypervisor (Proxmox/etc)
  3. Confirm it appears: Settings -> System -> Hardware -> USB
  4. Install OpenThread Border Router add-on (Settings -> Add-ons -> Add-on Store -> "OpenThread Border Router")
  5. Configure device path: use /dev/serial/by-id/... (not /dev/ttyUSB0)
  6. Start the add-on. Wait for logs to show otbr-agent running

Step 2 — Verify new Thread network

  1. Settings -> Devices & Services -> Thread — confirm border router is listed
  2. Confirm a new network exists (name will be auto-generated, NOT "Google-75B7")
  3. Verify enp1s0 IPv6 is still set to Auto (never static-no-gateway)

Step 3 — Set preferred network

  1. Thread integration -> configure -> set HA's new network as preferred

Step 4 — Migration (one device at a time)

CRITICAL: Keep Google TV Streamer powered on throughout migration.

Recommended order: Night Light first (different network, good test), then IKEA devices.

For each device: 11. [ ] Settings -> Devices & Services -> Matter -> Add Device 12. [ ] Scan the device's QR / pairing label 13. [ ] HA detects it's already on the fabric -> choose Move to HA's Thread Network 14. [ ] Wait for device to come back available 15. [ ] Verify: sensor.xxx_thread_network_name = HA's new network (not "Google-75B7") 16. [ ] Move to next device

Repeat for all 7 devices.

Step 5 — Disable Google TV Streamer

  1. All 7 devices showing HA's network name
  2. Google Home app -> Settings -> Google TV Streamer -> disable Thread/Hub radio
  3. Cold-boot the TV Streamer (unplug -> replug) — stops it advertising as border router

Step 6 — Verify

  1. Thread integration shows ZBT-2 as border router with 7 nodes
  2. All 7 devices available and responsive
  3. Restart Home Assistant — devices should stay available (the whole point)
  4. Check entity IDs unchanged: light.bedroom_lamp, light.office_lamp, sensor.bedroom_switch_battery, etc.

Fallback (if a device refuses the move)

  • Factory reset the specific device (consult manual — usually hold button 10+ seconds)
  • Re-commission from scratch via Add Device + scan label
  • Entity IDs don't change, so automations/scripts/scenes still work