Android Problem with Proximity SDK Alpha-5 enter/exit continuously

Proximity beacon Firmware version 4.11.0
Hardware verison F3.3
Android OS 8.0 Pixel phone

PROBLEM: with the beacons sitting for periods in one position i keep getting continuous enter exit notifications without moving my phone or the beacon. here is what I do.

I have 1 beacon

Steps

  1. Place the beacon way far away from my phone
  2. start my app
    NOTE: i created a tag like this {“attachment”:{“far”, “ronfar”, “near”, "ronnear:}} on the cloud.

Small snippet of code for this is (where key =“far” value=“ronfar” and I also register a near

proximityObserver.zoneBuilder()
.forAttachmentKeyAndValue(key, value)
.inFarRange()
.withOnEnterAction(new Function1<ProximityAttachment, Unit>() {

  1. my logs show the tags and the far and near proximity
    12-02 14:10:23.368 4324 4353 V IgnitebleBeaconManager: starting to monitor
    12-02 14:10:23.476 4324 4353 V IgnitebleBeaconManager: zones for beaconId=3c133653d1f2bd6438be05f47989043f

At this point i am listening for my beacons.

Now I walk closer to my phone and stop and place the beacon down when I get a log saying I am in the range

NOTE: these next few logs are with phone and beacon motionless.

12-02 14:12:00.176 4324 4324 V IgnitebleBeaconManager: withOnEnterAction farRangeZone 3c133653d1f2bd6438be05f47989043f
12-02 14:12:00.592 4324 4324 V IgnitebleBeaconManager: withOnChangeAction farRangeZone 1
12-02 14:12:01.720 4324 4324 V IgnitebleBeaconManager: withOnExitAction farRangeZone 3c133653d1f2bd6438be05f47989043f
12-02 14:12:01.768 4324 4324 V IgnitebleBeaconManager: withOnChangeAction farRangeZone 0
12-02 14:12:05.413 4324 4324 V IgnitebleBeaconManager: withOnEnterAction farRangeZone 3c133653d1f2bd6438be05f47989043f
12-02 14:12:05.453 4324 4324 V IgnitebleBeaconManager: withOnChangeAction farRangeZone 1

12-02 14:12:40.263 4324 4324 V IgnitebleBeaconManager: withOnExitAction farRangeZone 3c133653d1f2bd6438be05f47989043f
12-02 14:12:40.298 4324 4324 V IgnitebleBeaconManager: withOnChangeAction farRangeZone 0
12-02 14:12:50.406 4324 4324 V IgnitebleBeaconManager: withOnEnterAction farRangeZone 3c133653d1f2bd6438be05f47989043f
12-02 14:12:50.445 4324 4324 V IgnitebleBeaconManager: withOnChangeAction farRangeZone 1
12-02 14:13:01.764 4324 4324 V IgnitebleBeaconManager: withOnExitAction farRangeZone 3c133653d1f2bd6438be05f47989043f
12-02 14:13:01.790 4324 4324 V IgnitebleBeaconManager: withOnChangeAction farRangeZone 0
12-02 14:13:10.120 4324 4324 V IgnitebleBeaconManager: withOnEnterAction farRangeZone 3c133653d1f2bd6438be05f47989043f
12-02 14:13:10.140 4324 4324 V IgnitebleBeaconManager: withOnChangeAction farRangeZone 1
12-02 14:13:15.316 4324 4324 V IgnitebleBeaconManager: withOnExitAction farRangeZone 3c133653d1f2bd6438be05f47989043f
12-02 14:13:15.356 4324 4324 V IgnitebleBeaconManager: withOnChangeAction farRangeZone 0
12-02 14:13:16.234 4324 4324 V IgnitebleBeaconManager: withOnEnterAction farRangeZone 3c133653d1f2bd6438be05f47989043f
12-02 14:13:16.272 4324 4324 V IgnitebleBeaconManager: withOnChangeAction farRangeZone 1
12-02 14:13:30.715 4324 4324 V IgnitebleBeaconManager: withOnExitAction farRangeZone 3c133653d1f2bd6438be05f47989043f
12-02 14:13:30.753 4324 4324 V IgnitebleBeaconManager: withOnChangeAction farRangeZone 0

I then pickup the beacon and move closer into the near range and place the beacon down.

NOTE: Once again exits the far range zone then cycles back and forth on the enter exit of the near range zone.

12-02 14:13:35.939 4324 4324 V IgnitebleBeaconManager: withOnEnterAction farRangeZone 3c133653d1f2bd6438be05f47989043f
12-02 14:13:35.975 4324 4324 V IgnitebleBeaconManager: withOnChangeAction farRangeZone 1
12-02 14:13:45.757 4324 4324 V IgnitebleBeaconManager: withOnEnterAction nearRangeZone 3c133653d1f2bd6438be05f47989043f
12-02 14:13:45.793 4324 4324 V IgnitebleBeaconManager: withOnChangeAction nearRangeZone 1
12-02 14:13:50.998 4324 4324 V IgnitebleBeaconManager: withOnExitAction nearRangeZone 3c133653d1f2bd6438be05f47989043f
12-02 14:13:51.033 4324 4324 V IgnitebleBeaconManager: withOnChangeAction nearRangeZone 0
12-02 14:14:01.461 4324 4324 V IgnitebleBeaconManager: withOnEnterAction nearRangeZone 3c133653d1f2bd6438be05f47989043f
12-02 14:14:01.494 4324 4324 V IgnitebleBeaconManager: withOnChangeAction nearRangeZone 1
12-02 14:14:06.389 4324 4324 V IgnitebleBeaconManager: withOnExitAction nearRangeZone 3c133653d1f2bd6438be05f47989043f
12-02 14:14:06.423 4324 4324 V IgnitebleBeaconManager: withOnChangeAction nearRangeZone 0
12-02 14:14:10.095 4324 4324 V IgnitebleBeaconManager: withOnEnterAction nearRangeZone 3c133653d1f2bd6438be05f47989043f
12-02 14:14:10.128 4324 4324 V IgnitebleBeaconManager: withOnChangeAction nearRangeZone 1

What might I be doing wrong?
Thanks

Hey @mssdev1

What is your beacon’s advertising interval and tx power of EstimoteLocation packet?

Is that what you need.

Broadcasting Power
Weak (-12dBm)
Advertising Interval
1285 ms
Shake to Connect
Off

No, sir. You gave my the settings of your beacon’s CONNECTIVITY packet. This packet is used for connecting to your beacon. I need your beacon’s Estimote Location protocol packet settings - this one is used by our SDK to do proximity measurements. The example data is outlined with red rectangle in the image below:

I assume your settings should be the same as in the image above - otherwise try setting yours the same.
Also, you can set .withLowLatencyPowerMode on your ProximityObserver to see if the experience is more reliable.
Bear in mind, that this is alpha stage, and we still work on improving the algorithm. Although it won’t be always perfect - the underlying radio waves in 2.4GHz frequency are really prone to interference and physical obstacles.

Regards,
Paweł

Thanks for the reply here is mine

Broadcasting Power
Strong (-4dBm)

~ 40 m / 130 ft
Advertising Interval
200 ms

Ok i can try the .withLowLatencyPowerMode. .
I have one question. I am setting 2 zones

proximityObserver.zoneBuilder()
.forAttachmentKeyAndValue(“farr”, “myfarvalue”)
.inFarRange()

proximityObserver.zoneBuilder()
.forAttachmentKeyAndValue(“near”, “mynearvalue”)
.inNearRange()

that is what I should be doing correct?

I’ll post the results wit the different power mode shortly

the only thing that somewhat solved this problem was to go to a customRange() only
and withLowLatencyPowerMode()

this seemed to solve my problem and i was getting good enter exit commands.

But then i decided to change my attachment and I am getting more peculiar results.

When i did this: i have 3 beacons
{"attachment:{“company”:“mycompany”, “igniteble”, “17ac4b86cedb4640e2f0103f8ba4ab25”}}
and so on for the next 2 beacons.
NOTE: igniteble is the same for all 3 beacons.
the beacon id is different.

I then create a listener using the first key/value pair for each beacon
"ie: company, igniteble
I get one or two enter exits
then a ton of change withOnChangeAction actions

I cannot see what I can do with onChangeAction.

This is the code for the zone which i create 3 zones.
proximityObserver.zoneBuilder()
.forAttachmentKeyAndValue(key,value)
.inCustomRange(distance)
.withOnEnterAction(new Function1<ProximityAttachment, Unit>() {
@Override
public Unit invoke(ProximityAttachment proximityAttachment) {
Log.v(TAG, "withOnEnterAction customRangeZone " + proximityAttachment.getDeviceId());
farRangeZoneHash.put(proximityAttachment.getDeviceId(), DateTime.now());
if (farRangeZoneHash.containsKey(proximityAttachment.getDeviceId())) {
logger.logEnterData(listener,proximityAttachment);
}

                            return null;
                        }
                    })
                    .withOnExitAction(new Function1<ProximityAttachment, Unit>() {
                        @Override
                        public Unit invoke(ProximityAttachment proximityAttachment) {
                            Log.v(TAG, "withOnExitAction customRangeZone " + proximityAttachment.getDeviceId());
                            


                            return null;
                        }
                    })

                    .withOnChangeAction(new Function1<List<? extends ProximityAttachment>, Unit>() {
                        @Override
                        public Unit invoke(List<? extends ProximityAttachment> proximityAttachments) {
                            for(ProximityAttachment attachment: proximityAttachments) {
                                Log.v(TAG, "withOnChangeAction customRangeZone " + attachment.getDeviceId());
                                for(String key : attachment.getKeys()) {
                                    Log.d(TAG, "key=" + key);
                                }


                            }
                            return null;
                        }
                    })
                    .create();

proximityObserver.addProximityZones(zones)
.withBalancedPowerMode()
.withOnErrorAction(new Function1<Throwable, Unit>() {

I have tried all the power zones.
I can’t get anything to reliably give me enter exits.

1: can all 3 beacons have the same key/value pair?
2: what is the change event. What can i do with it.
3") why do you think i am not getting enter exits reliably? cause of alpha? is your team able to get reliable enter exits. If so can you tell me what to try. Thanks

Thanks for your help

12-07 16:25:45.697 15134 15134 V IgnitebleBeaconManager: withOnExitAction customRangeZone 17ac4b86cedb4640e2f0103f8ba4ab25
12-07 16:25:45.740 15134 15134 V IgnitebleBeaconManager: withOnExitAction customRangeZone 17ac4b86cedb4640e2f0103f8ba4ab25
12-07 16:25:45.751 15134 15134 V IgnitebleBeaconManager: withOnExitAction customRangeZone 17ac4b86cedb4640e2f0103f8ba4ab25
12-07 16:26:00.169 15134 15134 V IgnitebleBeaconManager: withOnEnterAction customRangeZone 3c133653d1f2bd6438be05f47989043f
12-07 16:26:00.190 15134 15134 V IgnitebleBeaconManager: withOnChangeAction customRangeZone 3c133653d1f2bd6438be05f47989043f
12-07 16:26:00.190 15134 15134 D IgnitebleBeaconManager: key=company
12-07 16:26:00.190 15134 15134 D IgnitebleBeaconManager: key=beaconid
12-07 16:26:00.205 15134 15134 V IgnitebleBeaconManager: withOnEnterAction customRangeZone 3c133653d1f2bd6438be05f47989043f
12-07 16:26:00.222 15134 15134 V IgnitebleBeaconManager: withOnChangeAction customRangeZone 3c133653d1f2bd6438be05f47989043f
12-07 16:26:00.222 15134 15134 D IgnitebleBeaconManager: key=company
12-07 16:26:00.222 15134 15134 D IgnitebleBeaconManager: key=beaconid
12-07 16:26:00.237 15134 15134 V IgnitebleBeaconManager: withOnEnterAction customRangeZone 3c133653d1f2bd6438be05f47989043f
12-07 16:26:00.251 15134 15134 V IgnitebleBeaconManager: withOnChangeAction customRangeZone 3c133653d1f2bd6438be05f47989043f
12-07 16:26:00.251 15134 15134 D IgnitebleBeaconManager: key=company
12-07 16:26:00.251 15134 15134 D IgnitebleBeaconManager: key=beaconid
12-07 16:26:00.278 15134 15134 V IgnitebleBeaconManager: withOnChangeAction customRangeZone 3c133653d1f2bd6438be05f47989043f
12-07 16:26:00.278 15134 15134 D IgnitebleBeaconManager: key=company
12-07 16:26:00.278 15134 15134 D IgnitebleBeaconManager: key=beaconid
12-07 16:26:00.278 15134 15134 V IgnitebleBeaconManager: withOnChangeAction customRangeZone 17ac4b86cedb4640e2f0103f8ba4ab25
12-07 16:26:00.278 15134 15134 D IgnitebleBeaconManager: key=company
12-07 16:26:00.278 15134 15134 D IgnitebleBeaconManager: key=beaconid
12-07 16:26:00.290 15134 15134 V IgnitebleBeaconManager: withOnChangeAction customRangeZone 3c133653d1f2bd6438be05f47989043f
12-07 16:26:00.290 15134 15134 D IgnitebleBeaconManager: key=company
12-07 16:26:00.290 15134 15134 D IgnitebleBeaconManager: key=beaconid
12-07 16:26:00.290 15134 15134 V IgnitebleBeaconManager: withOnChangeAction customRangeZone 17ac4b86cedb4640e2f0103f8ba4ab25
12-07 16:26:00.290 15134 15134 D IgnitebleBeaconManager: key=company
12-07 16:26:00.290 15134 15134 D IgnitebleBeaconManager: key=beaconid
12-07 16:26:00.304 15134 15134 V IgnitebleBeaconManager: withOnChangeAction customRangeZone 3c133653d1f2bd6438be05f47989043f
12-07 16:26:00.305 15134 15134 D IgnitebleBeaconManager: key=company
12-07 16:26:00.305 15134 15134 D IgnitebleBeaconManager: key=beaconid
12-07 16:26:00.305 15134 15134 V IgnitebleBeaconManager: withOnChangeAction customRangeZone 17ac4b86cedb4640e2f0103f8ba4ab25
12-07 16:26:00.305 15134 15134 D IgnitebleBeaconManager: key=company
12-07 16:26:00.305 15134 15134 D IgnitebleBeaconManager: key=beaconid
12-07 16:26:20.592 15134 15134 V IgnitebleBeaconManager: withOnChangeAction customRangeZone 3c133653d1f2bd6438be05f47989043f
12-07 16:26:20.593 15134 15134 D IgnitebleBeaconManager: key=company
12-07 16:26:20.593 15134 15134 D IgnitebleBeaconManager: key=beaconid
12-07 16:26:20.609 15134 15134 V IgnitebleBeaconManager: withOnChangeAction customRangeZone 3c133653d1f2bd6438be05f47989043f
12-07 16:26:20.609 15134 15134 D IgnitebleBeaconManager: key=company
12-07 16:26:20.609 15134 15134 D IgnitebleBeaconManager: key=beaconid
12-07 16:26:20.621 15134 15134 V IgnitebleBeaconManager: withOnChangeAction customRangeZone 3c133653d1f2bd6438be05f47989043f
12-07 16:26:20.622 15134 15134 D IgnitebleBeaconManager: key=company
12-07 16:26:20.622 15134 15134 D IgnitebleBeaconManager: key=beaconid
12-07 16:26:25.521 15134 15134 V IgnitebleBeaconManager: withOnChangeAction customRangeZone 3c133653d1f2bd6438be05f47989043f
12-07 16:26:25.523 15134 15134 D IgnitebleBeaconManager: key=company
12-07 16:26:25.523 15134 15134 D IgnitebleBeaconManager: key=beaconid
12-07 16:26:25.523 15134 15134 V IgnitebleBeaconManager: withOnChangeAction customRangeZone 17ac4b86cedb4640e2f0103f8ba4ab25
12-07 16:26:25.523 15134 15134 D IgnitebleBeaconManager: key=company
12-07 16:26:25.523 15134 15134 D IgnitebleBeaconManager: key=beaconid
12-07 16:26:25.556 15134 15134 V IgnitebleBeaconManager: withOnChangeAction customRangeZone 3c133653d1f2bd6438be05f47989043f
12-07 16:26:25.557 15134 15134 D IgnitebleBeaconManager: key=company

After extensive testing

the only thing that works reliably for getting exit enters is the following

custom range

and only using the 2nd key/value pairs.

ie: {“attachment”:{“key1”:“value1”, “key2”:“value2”}}
only using key2/value2 with custom range works.

ie: if you use the first one you do not get enter exits reliably with custom range.

if you use key1/value1 with near and far range
you get continual exit enters. but you must put it on lowLatencyPowerMode.

I can repeat this above problem over and over so I am pretty confident in my comments.
I wonder why 2nd key value pairs work and first key value pairs do not

NOTE: the 2nd key value pairs are unique ids; ie I put the beaconid in them
the first pairs are same for all 3 beacons.

Hi mssdev1,

I too have this issue. Too many continuous entry and exit calls. I am using 0.1.0-alpha.6.
I tried your solution: (1) using custom range (2) having 2 key value pairs (3) lowLatencyPowerMode.

But, i still have the same issues, too many entry and exit calls. I am only trying it with one beacon.

My Question:
(1) What is the custom range value in your case?

My custom range was 5.0 but it is hit and miss. I initially just thought i got enter/exits properly but all of a sudden i get like 10 enter /exits. It has been happening since beta 5. It is much better with a custom range. in the far an near listeners I got hundreds over and over. Sorry to burst the bubble. Maybe beta 7?