Someone pointed out that Shelly devices an act as Bluetooth proxies. I have a bunch of Gen 3 Mini PMs so went about turning on Bluetooth and configuring one of them for active scanning. However nothing gets picked up. I can see a script has been loaded on the device and I can see lots of BLE scan messages in the diagnostics.
All the docs only talk about gen 2 devices and I haven’t really seen anything definitive as to whether gen 3 devices work or not.
I know the gen 2 (and therefore presumably gen3) devices won’t create active connections but I am just wondering whether I can pick up an Inkbird BBQ temperature device (IBT-4XS) which I thought worked through passive advertisements. I know it will worked when I had an ESPHome Bluetooth Proxy.
If it won’t work is that because it is gen 3 or because it only picks up advertisements? (I can’t quite get my head around BLE)
I have the exact same problem, just with a IBS-TH2 from Inkbird.
Based on what I can find so far, they do not seem to get relayed to HA via Shelly Bluetooth Proxies, for whatever reason … I can see in the Shelly log that it is picking up the advertisement, but it doesn’t seem to do anything with it.
What is really odd is that I started playing around with Bermuda for Bluetooth trilateration and some time after setting it up I got a notification that HA had detected the Inkbird device and set it up.
It isn’t updating very quickly but I am struggling to comprehend what has happened so that it is suddenly being processed. The Shelly which is about 2m away was setup for about 2 days without picking it up
With the Gen 2, from memory there were 3 steps involved. Turn on BT on the Shelly, turn on the Shelly acting as a proxy (they use the term ‘gateway’ I believe) and then turn BT Proxy on in HA for the device under configure.
I’m hitting the same brick wall on this - did you make any progress? I can see the BT announcements in the Shelly log via the web interface, but it doesnt seem to do anything.
I manually added the mac addresses and it’s now waiting on detecting sensors, but had been doing that for two days without anything. The Shelly is next to the Bluetooth thermometer.
I now got it working again with ESPHome. When I move it in range of a Shelly I do see the advertisements in HA, but the sensors aren’t being updated. I’m a bit lost on why, but I suppose shelly doesn’t forward everything.
Shelly is set to Active mode for bluetooth in HA, at least that is a requirement that took me a bit to find out.
I think the issue here is what is defined as a Bluetooth Proxy. Shelly have their Blu range of products. The Gen 3 with BT devices can act as gateways/proxies for Shelly Blu devices. They do not act as Bluetooth Proxies like ESPHome can configure. They can provide Active and Passive scanning for the Shelly Blu range of devices and expose these to home assistant, but they cannot, unless I am missing something, act as generic bluetooth proxies. The Shelly products do not support GATT as proxies as far as I know.
If I am wrong and find out anything different, I’ll come back here and post an update.
I have a Shelly Pro 3EM and Shelly Pro 2 PM both with Bluetooth enabled and they work fine with Shelly Blu products and expose them to Home Assistant. They just don’t act as generic BT proxies.
Just as an edit, I am using the Shelly firmware, not hacked or changed on my devices.
I have a couple of Shelly PlugS Gen3. I expect both to act as proxies as they are, as far as I know, configured identically. I see however, thanks to new visualisation tool (/config/bluetooth/visualization) that one plug is picking all the connections and the other one is not, even when closer to the potential client.
Luck of draw I guess. Physical closeness and best signal can be two different things.
I am not sure how devices choose where to connect. Only the writer of the firmware may know
I got my Gen3 Shelly devices to work (PM and PM mini). After activating the Active BT on the home assistant shelly device, log onto it and modify the script slightly. You need to change
// Skip starting if scanner is active
if (!BLE.Scanner.isRunning()) {
BLE.Scanner.Start({
duration_ms: -1,
active: true,
});
}
to
// Skip starting if scanner is active
if (!BLE.Scanner.isRunning()) {
BLE.Scanner.Start({
duration_ms: BLE.Scanner.INFINITE_SCAN
});
}
otherwise the Bermuda integration reports the device as Unknown from time to time and location tracking will fail.