We initially received 3 units ( WoIOSensorTH ) from SwitchBot to review, these are Bluetooth IP65 Indoor / Outdoor Hygrometer / Thermometers. Our expectation was that these should work of the box with Home Assistant, though this wasn’t the case, so we shared our feedback to the manufacturer. SwitchBot responded quickly, creating the necessary software which they posted on Gitub, ‘Hats Off’ to them for responding to feedback.
Once the Integration was available in Home Assistant, these devices add quickly and easily, reporting temperature, humidity and battery values. These devices are powered by 2 x AAA batteries and claim a 2 year lifespan from one set of batteries, which we think is excellent.

Due to some the materials used in the construction of our house, we had some issues with range of these BlueTooth sensors, they couldn’t penetrate certain walls meaning the sensors were not visible to our Home Assistant system. So how do you increase BlueTooth range, probably the easiest way, is the low cost solution we chose – A BlueTooth proxy for Home Assistant.
As we discovered a few years ago, the Wi-Fi in our house wasn’t the best, again due to the walls. The inner walls of our house are constructed from Cinder Blocks. When we have drilled through these blocks, we found that the resulting dust is magnetic, no wonder the Wi-Fi struggles. To solve the poor Wi-Fi in and around our house we installed a number of Wireless Access Points (WAP).
By converting the BlueTooth to Wi-Fi using a proxies, we solved our issue with poor BlueTooth range.
What we used for each proxy:
- ESP32 – Widely available from eBay and Amazon
- USB Charger and microUSB cable – as above
- Small 3D printed case – eBay
ESPHome, which is a standard component of Home Assistant, the following is the ESP code we use for each proxy, though we specify individual fixed IP addresses for each one:
esphome:
name: bluetooth-proxy-shed
friendly_name: Bluetooth Proxy shed
esp32:
board: esp32dev
framework:
type: esp-idf
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: V****jmq8****KMM****WG31****So6****2WG****
ota:
password: "3****6f31****d8a2****27c*dc6****"
wifi:
ssid: !secret wifi_shed
password: !secret wifi_password
# Optional manual IP
manual_ip:
static_ip: 192.168.0.203
gateway: 192.168.0.1
subnet: 255.255.255.0
# Enable fallback hotspot in case wifi connection fails
ap:
ssid: "Bluetooth-Proxy-Shed"
password: "****F0fo****"
esp32_ble_tracker:
scan_parameters:
interval: 1100ms
window: 1100ms
active: true
bluetooth_proxy:
active: true
At the moment we have 4 BlueTooth proxies, the one above had us head scratching for short while as the SwitchBot device just wouldn’t register with the integration. We remembered how quickly and easily the other 3 SwitchBot devices added previously, then remembered that this was before we introduced the BlueTooth Proxies.
The solution for the stubborn SwitchBot sensor was to disable all of the proxy devices in the ESPHome integration, then force a restart of the Home Assistant system.

The 4th SwitchBot sensor was immediately added to the SwitchBot integration, no having to put the device into discovery mode. All we did then was enable the ESPHome proxies again and perform another restart of Home Assistant, everything working perfectly.
We have a Wireless Access Point in the shed, which is connected to our house via fibre optic cable (OM4), along with ESP32 BlueTooth proxy we can accurately measure temperature in the back garden. This ability allows us to only activate the pond pump when certain parameters are met.