Hello, I have ESP32 with ESPresense in every room of my house and one in the garden but I cannot manage to let them always report accurately.
I tried playing with max distance and absorbion but I only make it worse (or just not better). I tried to set lower absorbtion when ESPresense is in an area with no obstacles and higher when it is hidden by objects, I tried to make the max distance somehow matching with the rooms sizes.
I also placed my BT transmitters in some rooms and play randomly with the settings to see if I can have those reported rock solid in the right room.
Polly, my cat, is in the purple room (cameretta - kids bedroom)
Xiaomi Smartband is in the red room (bagno - bathroom)
The two tiles are both in the purple room
Those are the presense reported with original settings on all ESP32 (Absorbtion 3,5 and max distance 16):
Seems like whatever I do this is not improving a lot.
I also noticed that depending on the device, the consistency of how it is reported. For example the 2 tiles are sometimes reported to be even in my underground floor and in the garage!
All my ESpresense sensors have this configuration:
I made some good progresses, it require some time for an accurate calibration.
Place the beacon somewhere in a room, measure the distance from the room transmitter, from the ESPresense sensor observe the attribute distance. If the distance doesn’t make sense with the real distance adjust the absorbtion till the distance is correct.
You have to do this for every room.
Finally when all are reporting the right distance we can adjust the max distance to report but also “Start counting devices less than distance (in meters)” and “Stop counting devices greater than distance (in meters)”.
“Start counting devices less than distance (in meters)” I calibrated it checking what is the distance reported when I am in the room and made it a little bit higher
“Stop counting devices greater than distance (in meters)” I set to one meter more than the max distance reported in the room
“Max Distance to report” I set it the same as above
Only after all transmitters are calibrated the results are much more accurate and also the jumping from one room to another is almost gone now.
Forgot to mention that MQTT Explorer is great, because you can observe in one time the distance reported for a beacon by all transmitters, this allow to go quicker in adjusting the transmitter that report offset values.
This is the situation now, the 2 smartwatch are rock solid shown in the right room:
The cat is in the garden at an equal distance from the garden transmitter and the blue room, I noticed that when I open the window of the blue room he is reported sometimes in the room and sometimes in the garden.
One thing I also noticed is that not all ESP32 transmitters work well the same, the one in the garden and in the kitchen are from a different brand than the others I have and apparently those 2 are the weakest, I will replace them.
Excellent advice! I get lots of questions from people about how to “tune” the ESPresense. I think most people don’t bother to even do it, or if they do, they do it too quickly without being careful.
In the future, I am just going to send them a link to your post!
I just finished setting up 3 base stations around the house , of course i want to to the right thing and calibrate the accurately , however i have 3 devices registered an Iphone an Apple watch and a pixel 7 phone .
Here are my findings:
Iphone : most accurate within .15m variation
Apple watch : Reports as being 5m away from the base station
Pxel 7 : Reports as being 9m away from the base station
What gives , how can i calibrate my stations with so much variation in distance with the devices???
I cannot make ESPresense consistent enough to make it useful with multiple devices. My Samsung Galaxy Watch and my girlfriend’s Apple Watch have very different opinions about distances…
I can make both devices relatively correct on short distances (1-2 meters), but when I move further away, the distances does not match anymore.