Hi, I have a requirement to scan for thousands of ibeacons using the LTE beacon. My first question is
Is it possible to scan thousands of ibeacons using LTE beacon. If so are there any drawbacks
Every beacon acts as a visitor. I need to know how long the visitor is at particular LTE beacon(there will be more than a thousand vistiors i.e more than 1000 ibeacons) So can I achieve it by just monitoring or do I need to do both ranging and monitoring?
Will the LTE beacon continuously scan the beacons for days
With a very larger number of beacons in a single place, at the same time, you might start running into radio congestion/collision issues. This isn’t really an LTE-Beacon-specific problem, you’ll have it no matter how you want to detect the beacons. But if you set the advertising intervals high enough (1-2 seconds? somebody would need to do some collision-math to better estimate this), it should work.
There’s no ranging/monitoring in the LTE Beacon, ranging/monitoring are terms specific to the Core Location API on iOS to detect iBeacons. In the LTE Beacon, you just scan for Bluetooth data (any Bluetooth data, can be iBeacon, can be anything else), and you get scan results. I guess it’s somewhat similar to ranging in principle. You can read more on Bluetooth scanning and advertising with LTE Beacon - Estimote Developer
Will the LTE beacon continuously scan the beacons for days
Sure, there are no limits (; You might need to plug the LTE Beacon in to external power via USB-C, because I’m not sure the battery will survive a few days of continuous Bluetooth scanning, although I think it might.
cloud.enqueue will throw and error if message is too big, so you need to limit it size before passing it to function. It is all depends on your data structure and sending strategy.
You can use several techniques to deal with it:
Limit data in event to contain only most important information
Restructure event data structure to be more compact:
a. Remove redundant, repeated fields
b. Use byte arrays/arrays to store identifiers instead of strings
c. Use arrays instead of objects to avoid sending keys