What room you’re in is mainly decided with the RSSI value. In theory the first clue is the ESP that sends that value, so if your bedroom ESP sends a signal, chances are already high, that you’re in that room. Taking the RSSI value into account, you can more or less safely say, what room you might be in. The idea behind ESPPresence is, to use this RSSI value, to estimate the distance between the beacon and the ESP.
All of this can be done by hand, though I don’t see the specific need to be that precise (varies on the use case). In theory this is a nice gadget, but I wouldn’t rely on it.
Imagine your ESP is sitting in the bedroom, next to the kitchen wall. If you have a big bedroom, chances are high, that the value received by the ESP, when you’re standing next to the wall in the kitchen, is higher than the one you receive from the “doorstep” to your bedroom…
To circumvent this, you need to get very familiar with your current living situation, and test a lot to get that difference. You need to take into account different sensors from different rooms.
I’m taking a different approach, by just using the BLE presence detection for something “general”, home or not_home. The fine tuning with room occupancy is done by other sensors, eg. a motion sensor in combination with the BLE signal.
This is the part, where ESPPresence does “the magic”:
You can do this in ESPHome by doing your own measurement with the BLE-RSSI component:
EDIT: after re-reading this post: this is not meant against ESPPresence in general, hope that didn’t sound like that! It is just my oppinion, that in this specific case, where you want to use something more on that ESP, it might be better to go a different route. For other rooms, where nothing else is needed from that ESP, it might be a good alternative! Keep in mind though, that an ESP32 can do much more than running “only” a presence detection… In Germany we use the phrase “to cast pearls before swines”