Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add support for Estimote telemetry packets #31

Open
thomasleveil opened this issue Dec 24, 2018 · 7 comments
Open

add support for Estimote telemetry packets #31

thomasleveil opened this issue Dec 24, 2018 · 7 comments

Comments

@thomasleveil
Copy link

thomasleveil commented Dec 24, 2018

Hi,

Could you consider adding support for Estimote telemetry packets as described here : https://github.com/Estimote/estimote-specs/blob/master/estimote-telemetry.js ?

I did one Android app about 4 years ago but I'm struggling at implementing this myself. I found this doc which might help https://estimote.github.io/Android-SDK/JavaDocs/com/estimote/sdk/telemetry/EstimoteTelemetry.html

@Bridouille
Copy link
Owner

Hi, I think the Telemetry you're talking about is already supported, it's marked as "TLM" when you detect an Eddystone beacon :)

https://github.com/Bridouille/android-beacon-scanner/blob/master/app/src/main/java/com/bridou_n/beaconscanner/models/BeaconSaved.kt#L113

@thomasleveil
Copy link
Author

The Estimote-TLM packet is not the same as the Eddystone-TLM. Estimote beacons are able to broadcast different kinds of packets:

  • Estimote packets
  • iBeacon packets
  • Eddystone packets (UID and TLM)

I'm already using your nice library for reading Eddystone-TLM packets broadcasted by some of my Estimote beacons, and I know looking for a way to also read the Estimote-TLM packets which convey more data:

  • acceleration on the X axis
  • acceleration on the Y axis
  • acceleration on the Z axis
  • motion state
  • "previous" motion state duration
  • "current" motion state duration
  • GPIO pin0 state
  • GPIO pin1 state
  • GPIO pin2 state
  • GPIO pin3 state
  • firmware error code
  • clock error code
  • atmospheric pressure
  • magnetic field on the X axis
  • magnetic field on the Y axis
  • magnetic field on the Z axis
  • ambient light level
  • beacon uptime
  • ambient temperature
  • battery voltage

@Bridouille
Copy link
Owner

Ohhh, pardon my mistake I confused Eddystone and Estimote.

I can have a look and leave the issue open. My issue is that I don't have a physical Estimote beacon so it would be hard for me to implement it to be honest.

@thomasleveil
Copy link
Author

thomasleveil commented Dec 27, 2018

would a pcap file with captured trames help ?

@Bridouille
Copy link
Owner

That could help, however since I'm using https://github.com/AltBeacon/android-beacon-library to handle the beacon detection, I wouldn't be sure on how they internaly parse the Estimote data in their Beacon object (like which fields contains which data).

@thomasleveil
Copy link
Author

I see. Estimote packets do not conform the the AltBeacon spec, so it seems a custom parser must be implemented using the Altbeacon BeaconParser class.

I found this StackOverflow answer which does some of the work with the BeaconParser class, but I don't know for what kind of estimote packet it work.

This other StackOverflow answer is closer to what would be needed, but parse Estimote-nearable packets.

The Estimote-telemetry packets are described here. I'm now will try to get frame samples so we can work on the correct setBeaconLayout paramter.

@thomasleveil
Copy link
Author

thomasleveil commented Dec 28, 2018

Well, the WTF protocol award goes to Estimote I guess :/ Here are my findings.

image

image

image

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

No branches or pull requests

2 participants