BlueCharm Beacons stopped reporting/not_home

Hi all,

I’ve had ESPresense working well with several Apple devices for many months. Recently bought a couple BlueCharm beacons to expand my presence tracking. One connected and was reliably tracking for about a day, then just stopped. I can still connect to it with the KBeacon app on my phone, but it will no longer show up in Home Assistant or MQTT Explorer. I tried changing the UUID in the app and updated the sensor in the config file, still nothing. I do a full reboot of Home Assistant after each change.

A second beacon (different type of BlueCharm) shows up in MQTT Explorer, and reports state changes if I move it to a different room, but continuously shows as “not_home” in Home Assistant. Can also connect via KBeacon app.

Running HAOS 2024.6.2


Screenshot 2024-07-26 at 7.44.03 AM

Delete the sensor from HA then restart, not quick reload but a restart.

Add the sensor back and restart again.

@BlueCharmBeacons
Hey Thomas! Sorry for tagging you, but would you mind taking a short look? Thank you very much! :slight_smile:

@rstremke
The usual first, anything in the logs? :slight_smile: Second, sorry, but just to be sure, the beacons do have new batteries?

As you use ESPresense, are the nodes running and do they show something in the logs?

If nothing is shown in MQTT Explorer, the beacon doesn’t seem to be sending any signals. That means, either the beacon is not transmitting, or the nodes don’t receive anything. What I want to say, I wouldn’t (at least not yet) start with the debugging in HA, but way before. :slight_smile:

Yep, brand new - both still report 100% battery via the KBeacon app. Deleting both sensors, perforimg a full reboot of HA, adding the sensors back to the configuration yaml, then another full reboot didn’t produce any change. Both indicate not_home. I even renamed one of the sensors just to see if that made a difference.

A search of the logs doesn’t find either of the sensor names, “mqtt” or “espresense”. Are there other keywords I should try?

As I said, I don’t think debugging it from HA side is the best way. :slight_smile:

If nothing shows up in MQTT Explorer (in the topic), there’s nothing, HA can work with. So restarting and deleting/adding the sensors will likely not solve it, unfortunately! :slight_smile:

Please start debugging on the nodes, where the signal should be received. These logs would be interesting. What nodes do you use for this?

The way your signal should go, is beacon -> node -> via MQTT -> HA. So I would work that way with your debugging. :wink:

As Patrick suggested, checking the beacon is step 1. You already mentioned that you can still connect successfully to each beacon with KBeacon. That’s a good sign but doesn’t necessarily prove the beacon is broadcasting anything.

Try using KBeacon but don’t connect. Just look for the beacons on the scan screen of the app. Do you see them there? If so, as you move the beacon close to then far away from the phone, is the signal strength number on the app screen changing? It should get weaker/lower when you move the beacon farther away.

If that all checks out, then the beacons are working and broadcasting.

Just as a double check, you can try doing the same test with an free app called LightBlue. Don’t connect; just check if you can see the beacons on the scan screen of the app. Make sure the signal strength is changing appropriately as you move the beacon close and far.

1 Like

Thanks for all the help. I’ve made some progress. After pulling the battery on the BC021 it started responding to the ESP32 devices again.

I’ve noticed the beacon needs to be within maybe 1-2 feet of the ESP32 in order for it to register as “in the room”. This despite setting the beacon broadcast strength to 0 dBm. Is that expected behavior? All my indoor ESP32 devices are set to somewhere in the 2-4 meter range for reception strength.

*yes, both beacons broadcast to the app and the signal strength gets lower when I move away.

To clarify, the beacon is not responding to the ESP. The beacon is broadcasting, and the ESP is “seeing” that broadcast.

Taking out the battery and reinstalling very likely did nothing. The only difference would be if you had set the beacon to “always broadcast” (which deactivates the button) and also “unconnectable”. Under those circumstances, the beacon would not be able to be connected by the KBeacon app. The only way to connect to it with KBeacon under those circumstances would be to take out the battery then reinstall the battery then connect to the beacon within 30 seconds. But that’s not the case for your beacon since you said you had no trouble connecting to the beacon with our KBeacon app in the first place.

Ok, back to the issue of the ESP seeing the broadcast: so you have confirmed the beacon is working using the scan screen of KBeacon app. You’ve also noted that the signal strength gets stronger and weaker as you’ve moved to Beacon closer and farther away from the phone. So everything seems fine with the broadcasting function.

In regards to the ESP, any normal ESP should be able to scan and see a beacon that is running at 0dbm TX level from 50 feet away or more. I would assume that your ESP can in fact see the beacon broadcast from quite far away. So the question is why is the ESP determining the beacon to be “at home” only when it is extremely close to the ESP question? My guess is this is related to the coding and settings of ESpresence that is running on the ESP. There should be some way to adjust this to make the range farther away.

Another question would be what code/settings is determining the “at home” status? Is it the ESPresence coding determining that or is it the HA determining that? I’m not quite sure how the two work together. Maybe some of the HA/ESPresence experts can chime in here.

Not really an expert with these, but I’m sure, together we’ll get there! :slight_smile:

I just wanted to make sure, the beacon is broadcasting, so we can take a look at the next possible culprit. :slight_smile: Thanks for stepping in! :slight_smile:

So, @rstremke, after we have checked the beacon, we now need to take a look at ESPresense. :slight_smile:

Have you done the calibration for ESPresense? You need to calibrate each ESPresense node to be working correctly. This is normally done by setting the beacon to broadcast at 0dBm and put it exactly one meter away. This is needed to measure the correct distance.

If yoo have done this already, we might need to see your other settings. Could you make a screenshot like in the linked documentation?

Thanks everyone, I will take some time this weekend to calibrate against the beacons and report back. I did adjust the reception strength on the ESP32s when I first installed them to work with my iOS devices. i.e., pick up the device at the border of the room but not beyond it.

Let us know how you get along! :slight_smile:

And please report back, if you got it solved! Thanks! :slight_smile:

Just a quick update. Been spending the last ~2 weeks tweaking absorption and detection range on my esps, and adding/repositioning units. I’m getting much closer to where I’d like to be for detection of the BLE beacon units. I really appreciate everyone’s quick and helpful responses!