Estimate SDK with stickers: DidEnter and DidExit events aren't stable enough

I have recently purchased a pack of 10 nearable stickers. The reason a bought them was to solve a very easy problem.
Detect whether the user is close or away from his car. I have setup them in an iOS app using the instructions provided on an iPhone 5 running 9.3.2.
The app is running in the background and I have added the NSLocationAlwaysUsageDescription in the info.plist as suggested.
However the didExit and DidEnter events are not being triggered correctly. I have the following two problems:

  1. The didExit event sometimes is not being triggered at all.
  2. When I am in the car while driving the didExit and DidEnter events are consequently being triggered many times.

I have also tuned the parameter settings of the stickers i.e. increase the advertising interval with no luck.

I am very disappointed as although estimote stickers offer lots of capabilities they can not handle accurate enough these two very basic events.
Please let me know if I am doing something wrong and if there is a possible solution.

What version of the SDK are you on? Can you share some code snippets that show how you start and handle monitoring events?

Hi,

I am using EstimoteSDK (4.3.0) using pod install.

Here are the snippets:

self.nearableManager = [ESTNearableManager new];
self.nearableManager.delegate = self;

[self.nearableManager startMonitoringForIdentifier:STICKER_ID];

- (void)nearableManager:(ESTNearableManager *)manager didEnterIdentifierRegion:(NSString *)identifier
{
  [self.stickerStatus setText:@"Close to Car"];
  NSLog(@"Entered Car !!");
  if ([UIApplication sharedApplication].applicationState != UIApplicationStateActive) {
      UILocalNotification *notification = [UILocalNotification new];
      notification.soundName = UILocalNotificationDefaultSoundName;
      notification.alertBody = [NSString stringWithFormat:@"It looks like you're close to your car."];
      [[UIApplication sharedApplication] presentLocalNotificationNow:notification];
  }
}

- (void)nearableManager:(ESTNearableManager *)manager didExitIdentifierRegion:(NSString *)identifier
{
  [self.stickerStatus setText:@"Away from Car"];
  NSLog(@"Away from Car !!");
  if ([UIApplication sharedApplication].applicationState != UIApplicationStateActive) {
      UILocalNotification *notification = [UILocalNotification new];
      notification.soundName = UILocalNotificationDefaultSoundName;
      notification.alertBody = [NSString stringWithFormat:@"It looks like you're away from your car."];
      [[UIApplication sharedApplication] presentLocalNotificationNow:notification];
  }
}

Thanks in advance!

Hello,

Code snippet looks fine. We will verify this on our end and get back to you early next week. Sorry for inconvenience!

1 Like

Hi, do you have any news about it ?

Thanks

I have this same problem. I have updated to the latest Pod version as well. I’m not making a car app, but how the problem manifests in my app is, I’ll wake up in the morning and there will be about 20 alert notifications on my phone saying “You’ve entered a region,” meaning, all night long, every few minutes until it maxes, the program enters then exits then enters then exits…

I had hoped that the new Pod version would help. The problem is precisely what Estimote does not want—and what their docs say won’t happen: the beaconManager forgets it is within the beacon fence and then discovers that it is within the fence, and this happens over and over, sometimes every three minutes, until, I assume, it hits some limit for the amount of alerts on my phone.

Let’s all figure this out.

A kinda hackish fix for this is to set a timer. Take 10 seconds (or whatever works) after exit to check if it’s a false-exit. If no enter (on the same sticker) occurs in that time, treat it as a real exit.
Should make it pretty “okay” for most applications.

Ok I understand this solution but is a hackish fix as you said. You need to fine tune an extra parameter which is the number of seconds which is not stable in my case. As I have already mentioned these are the two very basic events that must must absolutely accurate. At the end of the day I don’t think that is so difficult to detect them deterministically. So I am waiting an answer from estimate’s developers as they promised.

Thanks

It’s important to note that the enter/exit events for iBeacon are handled by iOS and not Estimote SDK, so there’s not much we can do to fix them. Here’s a workaround somebody came up with, similar to what @Kjell suggested:

Stickers however use our own Nearable packet, so if enter/exit events are misbehaving, that’s something our developers can look into and fix.

In my case I am using stickers. So I will wait for an update when you fix this issue.

Thanks