0
votes

I have a question about iBeacons in monitoring mode. I want to have an interaction with a notification being sent to a user if the device is in 1-2m vicinity to the beacon.

There used to be a function called:

 var radius: CLLocationDistance { get }

It's now deprecated so there's no way to set range of the beacon region. So the different states inside, outside, unknown can't be configured. Most long range beacons have a region of more then 60m which makes the region to big for any interaction in your home.

What I had to do was to lower the power of the BLE chip I used via AT commands to -4hz. Now the span is around 3-4m, which is better bit still not what I want. I've tried tin jars to try to lower the signal even more but it doesn't make a big difference. Even tin foil around the BLE chip.

Have anybody found a way to specify a Beacon region? The proximity needed to have inside region to be triggered with this function:

   func locationManager(_ manager: CLLocationManager, didDetermineState state: CLRegionState, for beaconRegion: CLRegion){}

Ranging mode doesn't seem to work in conjunction with monitoring so I can't use proximity which otherwise would be a solution.

   func update(distance: CLProximity) {}
1
"As opposed to common understanding of regions, a beacon region is not defined by any geographic properties, like GPS data or latitude and longitude. Instead, it’s characterized by the same three values as beacons: UUID, Major and Minor (read more about them here). Therefore, the physical representation of a region is the range of all beacons in this region." (community.estimote.com/hc/en-us/articles/…)user1094081

1 Answers

0
votes

A few points:

  1. You are correct that you cannot set the range for beacon monitoring.

  2. The radius field was never designed for beacon monitoring, but rather for geofences, so that never worked to do what you want.

  3. Reducing the transmitter power is generally not reliable because as you have seen, you cannot control the trigger distance well enough, and it results in a large variance in the distance where the trigger happens.

  4. Ranging does work in conjunction with monitoring, with some limitations, so this is the best technique to accomplish what you want.

I have described the technique in more detail in my answer to this related question.