LTE Beacon to Scan thousands of ibeacons

Hi, I have a requirement to scan for thousands of ibeacons using the LTE beacon. My first question is

  1. Is it possible to scan thousands of ibeacons using LTE beacon. If so are there any drawbacks
  2. 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?
  3. 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 https://developer.estimote.com/lte-beacon/using-bluetooth/

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.

FYI, I posted a snippet of code I use in my own projects to “emulate” the monitoring enter/exits:

I haven’t tested it on a large amount of beacons though.

Then how much data can pass from micro app to cloud?

4kB per event (after it is serialised). This value may change in future firmware versions.

can we manage if it exceeds by sending part of a data?

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:

  1. Limit data in event to contain only most important information
  2. 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
  3. Split your event into several smaller events each containing part of the data. Send more, but smaller events.
    Here are some tips how to estimate event size: https://developer.estimote.com/lte-beacon/syncing-with-cloud/#important-consideration-memory