Thanks for the clear description, the weird difference between matter and homekit thread provisioning was the missing piece. bluetooth must be on the HA device. No cellphone/app is needed. I went with the ESP Bluetooth proxy route as it seemed to be the cheapest and easiest method.
I will try to write out what i did exactly for anyone else that drops by. This was performed 9/11/2024. A lot of little things have become easier/more automatic since the original documents were written and i expect things to continue to evolve. Below reflects my experience at this time.
(I had to disable some of the links due to the 2-link max for new users.)
Here are all the devices you need:
- home assist green with zbt-1
- an ESP32dev device. I used an AITRIP ESP-WROOM-32 (-https-://www.amazon.com/dp/B0CR5Y2JVD)
- onvis “Switch HS2” ( -https-://www.amazon.com/dp/B0C7BLSMMW)
- a computer with a web browser and usb port. I used windows 11.
NO android/ios device will be used…
The full title of the esp32 board in case the amazon link goes stale:
AITRIP 3PCS Type c 30pins CP2102 ESP-WROOM-32 ESP32 ESP-32S Development Board 2.4GHz Dual-Mode WiFi + Bluetooth Dual Cores Microcontroller Processor Integrated with Antenna RF AMP Filter AP STA
Step 1: configuring ZBT-1 for thread.
- Plug in ZBT-1 device
- Home Assist will detect the device.
- Click the notification and click configure.
- Choose thread firmware
- Wait… HA will automatically install the Open Thread Border Proxy and the Thread device.
- Under the Thread device (not to be confused with the Open Thread Border Proxy Device) click configure.
- You should see the local openthread border router in list. Click it and it will be set to the preferred network. if you don’t see it wait a bit (maybe refresh page). The router seems to take longer to get booted than the thread install UI would indicate.
Original instructions: Home Assistant Connect ZBT-1
Step 2: Create/Configure ESP32 Bluetooth proxy
- Go here in chrome or edge browser: -https-://esphome.io/projects/
- Select Bluetooth Proxy
- Select Generic ESP32
- Click connect. If you do not see Connect there should be a message approximately where the button should be explaining why (ex: not using chrome or edge).
- Click Install Bluetooth Proxy. Wait for it to finish.
- Click Set up WiFi. Configure it with a 2.4gz network credentials.
At this point, the ESP32 should be ready to go. You may disconnect from computer and power some other way if desired.
-
Install ESPHome Add-on. Select Watchdog and Show in Sidebar. Note: it takes a bit to startup so the UI might not work for a minute or so.
-
Once everything is Running (ESP32 device and the addon) you should see the device on the main ESPHome UI. Click Adopt, Give it a new name (if desired), Select update over wifi, and wait… it will do a full compile of the ESP firmware. The HA green cpu isn’t that beefy so it will take 10-15 min.
-
Once updated and device restarts you will see a notification to add the proxy device. Do so…
Step 3: Add HS2 via Bluetooth.
This one is easy. Put the battery in and you should immediately see a notification in HA to add it. Do so and wait (took longer than normal for me). It will add the proper Homekit device, etc.
Step 3b (optional) test device in bluetooth mode.
- Open device page via the HomeKit Device Integration or master device list.
- Note the button status and log. Note how incredibly slow and flaky it is to update the button status as you push things.
Step 4: Transition device to thread
This was also easy. Click configure thread on device and your done.
Note how quickly it now responds to input.
Once transferred, bluetooth is no longer needed and you can unplug the proxy and stick it in a drawer until the next time, loan it to friends, etc.
Original instructions: HomeKit Device - Home Assistant
Step 5: INTEGRATE!
Now you have the button in HA, you have to figure out what use it for. Click “add integration” on the button device and set up as you desire. My plans involve controlling lights and creating a one-click-clean for my shark vac if the integration can be fixed (Shark recently killed the API it was using ).
TL;DR: You need bluetooth on the HA green device one way or the other. ESP32 bluetooth proxy was the cheapest and easiest option for me. After that the rest falls into place.