Recording the permanence of users in different zones

I’m working on a project that involves recording the permanence of users in different zones of a defined layout.

The approach we try to do is the simplest:
a.- It is a beacon by zone
b.- Try to adjust the beacon’s range the closest to the zone (always higher)
c.- Then we define a radius of the zone by iBeacon (always less than the range), this because we can not be precisely adjust the range of iBeacon
d.- We define a delta error which is a +/- for helps variations proximity of iBeacon data, ie, if we have a radius of 5 meters and a delta of 0.5 meter, the enter event is triggered in 4.5m and exit event is in 5.5m.
e.- We apply a small buffer where they are taken 5 packs of distance data and then the mean of these 5 packages is calculated, and so then the other 5 packs which helps us to reduce the frequency hopping.
f.- Finally we activate the monitoring when user enter the range iBeacon, and then activate the ranging to validate if it enters the iBeacon radio (radius - delta) and then if it goes (radius + delta)

Doubts:
1.- Can you adjust more precisely the range of a iBeacon?
2.- The problem we see is that we do Ranging at all times that the user is within the zone
3.- Can I adjust the accuracy of the iBeacons? or better try the Location iBeacon?

Do you think this is the best way?
We appreciate very much your help, comments and recommendations
Thank you so much and sorry my bad english

@fabrizio, thanks for sharing us your thoughts about distance estimation.

Referring to your idea, it would be quite challenging to define proximity zones so accurately. Based on your example, you assumed general accuracy with ±10% error margin which could not provide you appropriate behavior for further distances i.e. 5 meters. It’s much safier to assume that values on ± 30% margin level.

Calculating mean based on distance data could improve your distance estimation, however it will not increase accuracy rapidly.

The best way to solve it is to implement it with proximity zones approach. As it was mentioned before, define that kind of zones with ~±30% margins - that would be much more reliable in terms of the assumptions.

@arek, thank you very much for your advice, i will take a ±30% delta.

However, I still have some doubts:

  • How reliable it’s a closest beacon when phone is inside of two different ranges ibeacons ?:
    Because in this case there is no exit’s event in any iBeacon (still would be in the range of two or more beacons), then can i trust that gives me the first list onBeaconsDiscovered closest to consider it? or should I wait to come over x times in each cycle of method call?.

I appreciate your recommendation again

Many thanks!

Reliability is strictly depended on a few factors. Estimations is based on the strength of signal broadcasted by the beacon.As Bluetooth waves is handled, we can notice some signal fluctuation that causes less precise values. Assuming that you are in the range and more less in the same distance for 2 different beacons, it would be a challenge to achieve the correct answer what beacon is the closest to the device. Apart from that situation, ranging should reliable enough to figure it out.

According to Estimote SDK, onBeaconsDiscovered() method returns a list of beacons sorted by accuracy. However, it might be a good idea to wait for a few seconds/cycles as some beacons might not be visible at once if you have bigger amount of devices.