Skip to content

Conversation

Tiggu
Copy link
Contributor

@Tiggu Tiggu commented Dec 22, 2018

Hello,

while using this library on a raspberry pi with 2 sample beacons, I encountered a problem, where after a short while only iBeacons got detected although eddystone beacons were present.

After a short inspection of the code i noticed that in the parser.js the check for iBeacons comes before the check for eddystone beacons. I also noticed that the check for those two kinds of beacons is different. While an eddystone beacon is detected by a unique ServiceUUID, the detection of iBeacons relies on manufacturer data.

After some checks, I realised, that some of the beacons matching the criteria for eddystone (ServiceUUID == "feaa") were classified as iBeacons, because those criteria was also matched.

By rearranging the order of matching (first eddystone then iBeacon), I think I solved the problem. Because my raspberry pi now detects iBeacons and eddystone beacons in roughly the same proprtion.

I encountered a problem, where after a short time, only iBeacons got detected. I digged into the code and saw, that while the rule for detecting iBeacons was valid, the rule for detecting eddystone beacons was also valid. This means, that it could have been both, ibeacon and eddystone. But as far as the eddystone identification uses a UUID, which should be unique, i think, beacons having this uuid should not be misidentified as ibeacons. I simply changed the order, that whenever the uuid is valid, it is a eddystone beacon. Otherwise it can also be an iBeacon.
@futomi futomi merged commit 370f692 into futomi:master Dec 27, 2018
@futomi
Copy link
Owner

futomi commented Dec 27, 2018

Thank you so much.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants