You can implement your own additional customized frame processing through the plugins framework.
A plugin adds the support of features or formats that are specifics to a manufacturer. It is of one of the following three kinds.
The plugin is fully in charge of the frame analysis.
Its role is similar to the built-in iBeacon and Eddystone processors, but for the support of a private or manufacturer specific frame format.
For that reason, a listener instance is expected by the constructor of the abstract default implementation
in order to dispatch the device lifecycle events: onDiscovered
, onUpdated
, and onLost
.
BlueUpProcessorPlugin
, MinewProcessorPlugin
, MokoProcessorPlugin
and InvirtusProcessorPlugin
are built-in plugins of this category.
Some manufacturers implement only the Advertising data frame, not a Scan Response data frame that can be the support to publish extra information, such as the battery level, in the same transaction. Still, these extra information may be published, but in an additional Advertising data frame. This kind of plugin is in charge to spot these frames, to track the extra information, and to deliver these extra fields when requested by the engine to enrich the main beacon processing.
The plugin is able to link the auxiliary information frame with the main frame by the matching of the MAC addresses.
BlueUpExplorerPlugin
, MinewExplorerPlugin
, KkmExplorerPlugin
and MokoExplorerPlugin
are built-in plugins of this category.
In an advertisement data payload, which can be up to 31 bytes, the iBeacon protocol specifies the use of 30 bytes for its data structures, so it leaves one byte unallocated. Some manufacturers may use this available space to transport a custom bit of information, like a battery level. Of course, this behaviour is out of any standardization. Some other manufacturers make use of the Manufacturer Specific Data structure to provide any piece of information of their own, and so encoded in their specific format. It is the work of the plugin to parse the payload submitted by the engine and to return these extra fields if found.
AccSysParserPlugin
, ElaParserPlugin
, MeeblueParserPlugin
and TeltonikaParserPlugin
are built-in plugins of this category.
Tags from BlueUp having a sensor can broadcast a custom frame,
named Sensors Packet
. The deprecated format Sensor-Legacy
is not worth to be implemented by the plugin,
only the recent Sensor-Advanced
format is supported.
See also the BlueUp Explorer Plugin for details in common.
Some models of the manufacturer:
The plugin parses the frame and feeds the interesting and matching properties of a Device object, according to this table:
Property | Sensor Capability | |||
---|---|---|---|---|
Temperature & Humidity | Pressure | CO2 Concentration | Accelerometer | |
temperature | X | |||
humidity | X | |||
pressure | X | |||
co2 | X | |||
x | X | |||
y | X | |||
z | X |
Whatever the kind of sensor, these properties are also available:
model
: the model number. Values are: 1=Mini, 2=Maxi, 3=USB, 4=Forte, 5=Tag, 6=Board, etc.serial
: the serial number of the beacon (up to 6 digits).batteryVoltage
: the battery voltage in mV.Examples of logcat traces:
Temperature (in °C) & Humidity (in %RH), Pressure (in kPa), CO2 (in ppm)
11:41:40.518 2534-2534 DaemonConfig D onDiscovered: BlueUp [ad=FF:EE:DD:A1:B2:C3, rs=-86, m=1, s=123456, bv=3110, t=21.51, h=39.51, p=102.69, c=350] 11:41:44.536 2534-2534 DaemonConfig D onUpdated: BlueUp [ad=FF:EE:DD:A1:B2:C3, rs=-85, m=1, s=123456, bv=3110, t=21.51, h=39.51, p=102.69, c=350] 11:42:36.588 2534-2534 DaemonConfig D onLost: BlueUp [ad=FF:EE:DD:A1:B2:C3, rs=-103, m=1, s=123456, bv=3110, t=21.51, h=39.51, p=102.69, c=350]
Temperature (in °C) & Humidity (in %RH), 3-Axis Accelerometer (in g)
11:56:12.919 3663-3663 DaemonConfig D onDiscovered: BlueUp [ad=FF:EE:DD:A1:B2:C3, rs=-82, m=1, s=123456, bv=3110, t=21.51, h=39.51, x=0.0195, y=-0.0078, z=0.9883] 11:56:16.899 3663-3663 DaemonConfig D onUpdated: BlueUp [ad=FF:EE:DD:A1:B2:C3, rs=-79, m=1, s=123456, bv=3110, t=21.51, h=39.51, x=0.0195, y=-0.0078, z=0.9883] 11:56:53.587 3663-3663 DaemonConfig D onLost: BlueUp [ad=FF:EE:DD:A1:B2:C3, rs=-105, m=1, s=123456, bv=3110, t=21.51, h=39.51, x=0.0195, y=-0.0078, z=0.9883]
Tags from Feasycom having a sensor can broadcast a custom frame,
named Sensor Data Frame
.
See also the Feasycom Explorer Plugin for details in common.
Some models of the manufacturer:
The plugin parses the frame and feeds the interesting and matching properties of a Device object, according to this table:
Property | Sensor Capability |
---|---|
Temperature & Humidity | |
temperature | X |
humidity | X |
Examples of logcat traces:
Temperature (in °C) & Humidity (in %RH)
14:28:27.476 9857-9857 DaemonConfig D onDiscovered: Feasycom [ad=FF:EE:DD:A1:B2:C3, rs=-89, t=21.96, h=39.96] 14:28:28.467 9857-9857 DaemonConfig D onUpdated: Feasycom [ad=FF:EE:DD:A1:B2:C3, rs=-80, t=21.96, h=39.96] 14:28:56.579 9857-9857 DaemonConfig D onLost: Feasycom [ad=FF:EE:DD:A1:B2:C3, rs=-80, t=21.96, h=39.96]
Tags from Ingics Technology having a sensor can broadcast a custom frame, related to the kind of measurement, to advertise measured values. See also the Ingics Parser Plugin for details in common.
Some models of the manufacturer:
The plugin parses the frame and feeds the matching properties of a Device object, according to this table:
Property | Sensor Capability | ||||||
---|---|---|---|---|---|---|---|
Temperature | Humidity | Accelerometer | Distance | CO2 Concentration | Photo Sensitive | Analog Input |
|
temperature temperatureProbe (option)temperatureObject (option) |
X | ||||||
humidity | X | ||||||
x1,y1,z1 only or with:x2,y2,z2,x3,y3,z3 |
X | ||||||
range | X | ||||||
co2 | X | ||||||
illuminance | X | ||||||
voltage or amperage | X |
Whatever the kind of sensor, these properties are also available:
model
: the model name. For example: iBS02M2, iBS03F, iBS06.batteryVoltage
: the battery voltage in mV.If applicable to the model, these values are also available:
counter
: the count of event detections (infrared, digital input, presence).user
: the user configurable content.If applicable to the model, these true/false properties are also available:
hasPressed
: the button is pressed.hasMotion
: the beacon is moving.hasMagnet
: the hall sensor is detecting the presence of a magnet.hasFall
: a fall pattern is detected.hasPIR
: the passive infrared sensor is detecting a presence.hasIR
: the infrared sensor is detecting a space occupation.hasDigitalInput
: a high/low or open/close contact state.hasFlood
: a flood or leak detection, for iBS03F only.hasLiquid
: a liquid level detection, for iBS03Q and iBS03QY only.hasDigitalInput2
: an auxiliary digital input, for iBS03QY only.hasDetect
: a human presence detection, for iBS08 and iBS09PS only.Examples of logcat traces:
Temperature (in °C) & Humidity (in %RH), with button
18:49:46.069 20674-20674 DaemonConfig D onDiscovered: Ingics [ad=FF:EE:DD:A1:B2:C3, rs=-75, m=iBS01T, bv=2970, t=21.75, h=85, b=1, u=258] 18:49:47.067 20674-20674 DaemonConfig D onUpdated: Ingics [ad=FF:EE:DD:A1:B2:C3, rs=-73, m=iBS01T, bv=2970, t=21.75, h=85, b=1, u=258] 18:50:15.927 20674-20674 DaemonConfig D onLost: Ingics [ad=FF:EE:DD:A1:B2:C3, rs=-73, m=iBS01T, bv=2970, t=21.75, h=85, b=1, u=258] 12:18:24.977 8112-8112 DaemonConfig D onDiscovered: Ingics [ad=FF:EE:DD:A1:B2:C3, rs=-80, m=iBS03T_RH, bv=2970, t=21.75, h=85, b=1, u=258] 12:18:25.992 8112-8112 DaemonConfig D onUpdated: Ingics [ad=FF:EE:DD:A1:B2:C3, rs=-71, m=iBS03T_RH, bv=2970, t=21.75, h=85, b=1, u=258] 12:18:54.578 8112-8112 DaemonConfig D onLost: Ingics [ad=FF:EE:DD:A1:B2:C3, rs=-71, m=iBS03T_RH, bv=2970, t=21.75, h=85, b=1, u=258]
3-Axis Accelerometer (in 0.004 g), with button and motion
20:50:08.444 25254-25254 DaemonConfig D onDiscovered: Ingics [ad=FF:EE:DD:A1:B2:C3, rs=-77, m=iBS01RG, bv=2970, x1=1, y1=2, z1=-2, b=1, m=1] 20:50:09.406 25254-25254 DaemonConfig D onUpdated: Ingics [ad=FF:EE:DD:A1:B2:C3, rs=-76, m=iBS01RG, bv=2970, x1=1, y1=2, z1=-2, b=1, m=1] 20:50:37.927 25254-25254 DaemonConfig D onLost: Ingics [ad=FF:EE:DD:A1:B2:C3, rs=-76, m=iBS01RG, bv=2970, x1=1, y1=2, z1=-2, b=1, m=1] 11:54:02.757 6795-6795 DaemonConfig D onDiscovered: Ingics [ad=FF:EE:DD:A1:B2:C3, rs=-75, m=iBS03RG, bv=2970, x1=1, y1=2, z1=-2, b=1, m=1] 11:54:03.686 6795-6795 DaemonConfig D onUpdated: Ingics [ad=FF:EE:DD:A1:B2:C3, rs=-74, m=iBS03RG, bv=2970, x1=1, y1=2, z1=-2, b=1, m=1] 11:54:32.577 6795-6795 DaemonConfig D onLost: Ingics [ad=FF:EE:DD:A1:B2:C3, rs=-74, m=iBS03RG, bv=2970, x1=1, y1=2, z1=-2, b=1, m=1] 14:36:32.331 16309-16309 DaemonConfig D onDiscovered: Ingics [ad=FF:EE:DD:A1:B2:C3, rs=-73, m=iBS05RG, bv=2970, x1=1, y1=2, z1=-2, b=1, m=1] 14:36:33.291 16309-16309 DaemonConfig D onUpdated: Ingics [ad=FF:EE:DD:A1:B2:C3, rs=-69, m=iBS05RG, bv=2970, x1=1, y1=2, z1=-2, b=1, m=1] 14:37:01.578 16309-16309 DaemonConfig D onLost: Ingics [ad=FF:EE:DD:A1:B2:C3, rs=-69, m=iBS05RG, bv=2970, x1=1, y1=2, z1=-2, b=1, m=1]
Infrared Detection (boolean and counter)
12:05:58.567 7552-7552 DaemonConfig D onDiscovered: Ingics [ad=FF:EE:DD:A1:B2:C3, rs=-82, m=iBS02IR2, bv=2970, c=75, ir=1, u=258] 12:05:59.526 7552-7552 DaemonConfig D onUpdated: Ingics [ad=FF:EE:DD:A1:B2:C3, rs=-72, m=iBS02IR2, bv=2970, c=75, ir=1, u=258] 12:06:27.577 7552-7552 DaemonConfig D onLost: Ingics [ad=FF:EE:DD:A1:B2:C3, rs=-72, m=iBS02IR2, bv=2970, c=75, ir=1, u=258]
Digital Input (boolean and counter)
12:36:38.826 8842-8842 DaemonConfig D onDiscovered: Ingics [ad=FF:EE:DD:A1:B2:C3, rs=-79, m=iBS03AD-D, bv=2970, c=75, d=1, u=258] 12:36:39.846 8842-8842 DaemonConfig D onUpdated: Ingics [ad=FF:EE:DD:A1:B2:C3, rs=-76, m=iBS03AD-D, bv=2970, c=75, d=1, u=258] 12:37:08.580 8842-8842 DaemonConfig D onLost: Ingics [ad=FF:EE:DD:A1:B2:C3, rs=-76, m=iBS03AD-D, bv=2970, c=75, d=1, u=258]
Alarm Button
12:42:50.753 9377-9377 DaemonConfig D onDiscovered: Ingics [ad=FF:EE:DD:A1:B2:C3, rs=-78, m=iBS04, bv=2970, b=1, u=258] 12:42:51.771 9377-9377 DaemonConfig D onUpdated: Ingics [ad=FF:EE:DD:A1:B2:C3, rs=-76, m=iBS04, bv=2970, b=1, u=258] 12:43:20.577 9377-9377 DaemonConfig D onLost: Ingics [ad=FF:EE:DD:A1:B2:C3, rs=-76, m=iBS04, bv=2970, b=1, u=258]
CO2 (in ppm), with button
14:42:26.718 17147-17147 DaemonConfig D onDiscovered: Ingics [ad=FF:EE:DD:A1:B2:C3, rs=-82, m=iBS05CO2, bv=2970, co=64, b=1, u=258] 14:42:27.711 17147-17147 DaemonConfig D onUpdated: Ingics [ad=FF:EE:DD:A1:B2:C3, rs=-69, m=iBS05CO2, bv=2970, co=64, b=1, u=258] 14:42:56.579 17147-17147 DaemonConfig D onLost: Ingics [ad=FF:EE:DD:A1:B2:C3, rs=-69, m=iBS05CO2, bv=2970, co=64, b=1, u=258]
Temperature (in °C), Humidity (in %RH), Illuminance (in Lux), 3-Axis Accelerometer (in 0.004 g), with button
14:52:32.065 17660-17660 DaemonConfig D onDiscovered: Ingics [ad=FF:EE:DD:A1:B2:C3, rs=-76, m=iBS07, bv=2970, x1=1, y1=2, z1=-2, t=21.75, h=85.0, i=515, b=1] 14:52:33.044 17660-17660 DaemonConfig D onUpdated: Ingics [ad=FF:EE:DD:A1:B2:C3, rs=-70, m=iBS07, bv=2970, x1=1, y1=2, z1=-2, t=21.75, h=85.0, i=515, b=1] 14:53:01.578 17660-17660 DaemonConfig D onLost: Ingics [ad=FF:EE:DD:A1:B2:C3, rs=-70, m=iBS07, bv=2970, x1=1, y1=2, z1=-2, t=21.75, h=85.0, i=515, b=1]
Temperature (in °C), Humidity (in %RH), Illuminance (in Lux), with button
15:33:19.020 19234-19234 DaemonConfig D onDiscovered: Ingics [ad=FF:EE:DD:A1:B2:C3, rs=-76, m=iBS08TL, bv=2970, t=21.75, h=8.5, i=515, b=1] 15:33:20.032 19234-19234 DaemonConfig D onUpdated: Ingics [ad=FF:EE:DD:A1:B2:C3, rs=-69, m=iBS08TL, bv=2970, t=21.75, h=8.5, i=515, b=1] 15:33:48.578 19234-19234 DaemonConfig D onLost: Ingics [ad=FF:EE:DD:A1:B2:C3, rs=-69, m=iBS08TL, bv=2970, t=21.75, h=8.5, i=515, b=1]
Human Presence Detection (boolean and counter)
15:42:10.877 20142-20142 DaemonConfig D onDiscovered: Ingics [ad=FF:EE:DD:A1:B2:C3, rs=-78, m=iBS09PS, bv=2970, c=75, d=1] 15:42:11.865 20142-20142 DaemonConfig D onUpdated: Ingics [ad=FF:EE:DD:A1:B2:C3, rs=-69, m=iBS09PS, bv=2970, c=75, d=1] 15:42:40.580 20142-20142 DaemonConfig D onLost: Ingics [ad=FF:EE:DD:A1:B2:C3, rs=-69, m=iBS09PS, bv=2970, c=75, d=1]
Tags from Minew Technologies Co. having a sensor can broadcast custom frames, related to the kind of measurement. See also the Minew Explorer Plugin for details in common.
Some models of the manufacturer:
The plugin parses the frame and feeds the matching properties of a Device object, according to this table:
Property | Sensor Capability | |||||||
---|---|---|---|---|---|---|---|---|
Temperature & Humidity | Acceler. | Photo Sensitive | Light | Passive InfraRed | Vibration | Anti- Tamper | Water- Leak | |
X | ||||||||
humidity | X | |||||||
x | X | |||||||
y | X | |||||||
z | X | |||||||
illuminance | X | |||||||
hasLight | X | |||||||
hasMotion | X | X | ||||||
hasBreakage | X | |||||||
hasLeakage | X | |||||||
batteryPercentage | X | X | X | X | X | X | X | X |
Examples of logcat traces:
Temperature (in °C) & Humidity (in %RH)
19:18:42.001 21228-21228 DaemonConfig D onDiscovered: MinewTH [ad=AC:23:3F:A1:B2:C3, rs=-67, t=22.86, h=39.99, %=100] 19:18:46.946 21228-21228 DaemonConfig D onUpdated: MinewTH [ad=AC:23:3F:A1:B2:C3, rs=-65, t=22.86, h=39.99, %=100] 19:19:14.852 21228-21228 DaemonConfig D onLost: MinewTH [ad=AC:23:3F:A1:B2:C3, rs=-69, t=22.86, h=39.99, %=100]
3-Axis Accelerometer (in g)
19:13:56.930 20403-20403 DaemonConfig D onDiscovered: MinewAcc [ad=AC:23:3F:A1:B2:C3, rs=-70, x=-0.3984, y=-0.207, z=-0.8477, %=100] 19:14:01.933 20403-20403 DaemonConfig D onUpdated: MinewAcc [ad=AC:23:3F:A1:B2:C3, rs=-81, x=-0.3086, y=-0.957, z=0.1289, %=100] 19:14:06.930 20403-20403 DaemonConfig D onUpdated: MinewAcc [ad=AC:23:3F:A1:B2:C3, rs=-84, x=-0.1172, y=-0.7578, z=-0.8789, %=100] 19:14:16.931 20403-20403 DaemonConfig D onUpdated: MinewAcc [ad=AC:23:3F:A1:B2:C3, rs=-81, x=0.5273, y=-0.3672, z=-1.6992, %=100] 19:14:21.912 20403-20403 DaemonConfig D onUpdated: MinewAcc [ad=AC:23:3F:A1:B2:C3, rs=-100, x=-0.5781, y=-0.8672, z=-0.1563, %=100] 19:14:26.921 20403-20403 DaemonConfig D onUpdated: MinewAcc [ad=AC:23:3F:A1:B2:C3, rs=-66, x=-0.7383, y=0.0, z=-0.6172, %=100]
PhotoSensitive (in lux)
21:02:57.639 26504-26504 DaemonConfig D onDiscovered: MinewPs [ad=AC:23:3F:A1:B2:C3, rs=-76, i=257, %=100] 21:03:02.645 26504-26504 DaemonConfig D onUpdated: MinewPs [ad=AC:23:3F:A1:B2:C3, rs=-75, i=257, %=100] 21:03:07.655 26504-26504 DaemonConfig D onUpdated: MinewPs [ad=AC:23:3F:A1:B2:C3, rs=-80, i=257, %=100]
Light Detection (boolean)
19:27:21.999 21980-21980 DaemonConfig D onDiscovered: MinewLight [ad=AC:23:3F:A1:B2:C3, rs=-67, l=true, %=100] 19:27:27.017 21980-21980 DaemonConfig D onUpdated: MinewLight [ad=AC:23:3F:A1:B2:C3, rs=-66, l=true, %=100] 19:27:32.036 21980-21980 DaemonConfig D onUpdated: MinewLight [ad=AC:23:3F:A1:B2:C3, rs=-67, l=true, %=100]
Motion Detection, by Infrared (boolean)
20:40:42.513 24961-24961 DaemonConfig D onDiscovered: MinewPir [ad=AC:23:3F:A1:B2:C3, rs=-83, m=true, %=100] 20:40:47.497 24961-24961 DaemonConfig D onUpdated: MinewPir [ad=AC:23:3F:A1:B2:C3, rs=-79, m=true, %=100] 20:40:52.503 24961-24961 DaemonConfig D onUpdated: MinewPir [ad=AC:23:3F:A1:B2:C3, rs=-77, m=true, %=100] 20:40:57.492 24961-24961 DaemonConfig D onUpdated: MinewPir [ad=AC:23:3F:A1:B2:C3, rs=-77, m=true, %=100]
Motion Detection, by Vibration (boolean)
22:05:58.077 28534-28534 DaemonConfig D onDiscovered: MinewVibr [ad=AC:23:3F:A1:B2:C3, rs=-77, m=true, %=100] 22:06:03.073 28534-28534 DaemonConfig D onUpdated: MinewVibr [ad=AC:23:3F:A1:B2:C3, rs=-82, m=true, %=100] 22:06:08.055 28534-28534 DaemonConfig D onUpdated: MinewVibr [ad=AC:23:3F:A1:B2:C3, rs=-79, m=true, %=100]
Anti-Tamper Detection / Breakage (boolean)
23:34:53.643 31912-31912 DaemonConfig D onDiscovered: MinewBrk [ad=AC:23:3F:A1:B2:C3, rs=-78, b=true, %=100] 23:34:58.654 31912-31912 DaemonConfig D onUpdated: MinewBrk [ad=AC:23:3F:A1:B2:C3, rs=-76, b=true, %=100]
Water-Leak Detection (boolean)
23:37:13.691 32190-32190 DaemonConfig D onDiscovered: MinewLeak [ad=AC:23:3F:A1:B2:C3, rs=-76, l=true, %=100] 23:37:18.674 32190-32190 DaemonConfig D onUpdated: MinewLeak [ad=AC:23:3F:A1:B2:C3, rs=-81, l=true, %=100] 23:37:23.668 32190-32190 DaemonConfig D onUpdated: MinewLeak [ad=AC:23:3F:A1:B2:C3, rs=-78, l=true, %=100]
Tags from Moko Smart having a sensor can broadcast custom frames, related to the kind of measurement, to advertise measured values and configuration settings. See also the Moko Explorer Plugin for details in common.
Some models of the manufacturer:
The broadcasted fields are:
in T&H Frame
in Accelerometer Frame
The plugin parses the frame and feeds the interesting and matching properties of a Device object, according to this table:
Property | Sensor Capability | |
---|---|---|
Temperature & Humidity | Accelerometer | |
temperature | X | |
humidity | X | |
x | X | |
y | X | |
z | X | |
batteryVoltage | X | X |
Examples of logcat traces:
Temperature (in °C) & Humidity (in %RH)
15:18:49.127 16242-16242 DaemonConfig D onDiscovered: MokoTH [ad=FF:EE:DD:A1:B2:C3, rs=-77, t=20.0, h=31.1, bv=3115] 15:18:53.100 16242-16242 DaemonConfig D onUpdated: MokoTH [ad=FF:EE:DD:A1:B2:C3, rs=-73, t=20.0, h=31.1, bv=3115] 15:19:57.589 16242-16242 DaemonConfig D onLost: MokoTH [ad=FF:EE:DD:A1:B2:C3, rs=-70, t=20.0, h=31.1, bv=3115]
3-Axis Accelerometer (in mg)
20:15:20.728 26611-26611 DaemonConfig D onDiscovered: MokoAcc [ad=FF:EE:DD:A1:B2:C3, rs=-80, x=-20, y=-20, z=-964, bv=3115] 20:15:24.684 26611-26611 DaemonConfig D onUpdated: MokoAcc [ad=FF:EE:DD:A1:B2:C3, rs=-78, x=-20, y=-20, z=-964, bv=3115] 20:15:57.594 26611-26611 DaemonConfig D onLost: MokoAcc [ad=FF:EE:DD:A1:B2:C3, rs=-74, x=-20, y=-20, z=-964, bv=3115]
InVirtus Technologies is a French company providing products and services for geolocation.
The ivBeacon Lite tag is a beacon emitting a custom frame containing:
The only way to distinguish the beacons from each other is based on the MAC address. The first two fields are considered by the plugin.
Example of a logcat trace:
19:35:20.866 8890-8890 DaemonConfig D onDiscovered: Invirtus [ad=F2:18:FF:A1:B2:C3, rs=-86, fw=21, %=89]
Tags from BlueUp can broadcast a custom frame type, named Advertising Packet
,
to advertise some information about the device:
The plugin looks for these fields and makes them available in the extras
property of a Device object,
under these keys:
bp
, as battery percentage, in %.n
, as name.The BlueBeacon Manager App Android app gives access to the configuration of the beacon.
Some models of the manufacturer: Keyfob Tag, Card, Badge-Holder, Slim Tag, TagX, Forte+, Brick, Mini, Maxi, Ultra Zero
Example of a logcat trace:
12:14:25.705 22163-22163 DaemonConfig D onDiscovered: iBeacon [ad=FF:EE:DD:A1:B2:C3, rs=-74, 1m=-59, d=5, Mm=12.13, n=null], region: {MyApp, 01020304-0506-0708-090a-0b0c0d0e0f10, ANY_MAJOR, ANY_MINOR} 12:14:26.571 22163-22213 SDK-AExplorerPlugin V Discovered: BlueUp [ad=FF:EE:DD:A1:B2:C3, rs=-78, %=100, n=BlueUp-01-123456] 12:14:28.707 22163-22163 DaemonConfig D onUpdated: [iBeacon [ad=FF:EE:DD:A1:B2:C3, rs=-73, 1m=-59, d=5, Mm=12.13, n=null, ex={bp=100, n=BlueUp-01-123456}]], region: {MyApp, 01020304-0506-0708-090a-0b0c0d0e0f10, ANY_MAJOR, ANY_MINOR} 12:15:00.589 22163-22163 DaemonConfig D onLost: iBeacon [ad=FF:EE:DD:A1:B2:C3, rs=-76, 1m=-59, d=5, Mm=12.13, n=null, ex={bp=100, n=BlueUp-01-123456}], region: {MyApp, 01020304-0506-0708-090a-0b0c0d0e0f10, ANY_MAJOR, ANY_MINOR}
Tags from Feasycom can broadcast a custom frame type, named General Advertising Frame
,
to advertise some information about the device:
The plugin looks for these fields and makes them available in the extras
property of a Device object,
under these keys:
bp
, as battery percentage, in %.m
, as model, for the model name: "BPnnnx" (or, if unrecognized, the model code). For example: BP108B.The FeasyBeacon Android app gives access to the configuration of the beacon.
Some models of the manufacturer: BP103B, BP104D, BP105N, BP106, BP108N
Example of a logcat trace:
14:47:11.618 11015-11055 SDK-AExplorerPlugin V Discovered: Feasycom [ad=FF:EE:DD:A1:B2:C3, rs=-89, fw=2.5, m=BP103, %=100] 14:47:12.127 11015-11015 DaemonConfig D onDiscovered: iBeacon [ad=FF:EE:DD:A1:B2:C3, rs=-85, 1m=-59, d=15, Mm=12.13, n=FSC-BP103-A1B2C3, ex={bp=100, m=BP103}], region: {MyApp, 01020304-0506-0708-090a-0b0c0d0e0f10, ANY_MAJOR, ANY_MINOR} 14:47:18.144 11015-11015 DaemonConfig D onUpdated: [iBeacon [ad=FF:EE:DD:A1:B2:C3, rs=-74, 1m=-59, d=9, Mm=12.13, n=FSC-BP103-A1B2C3, ex={bp=100, m=BP103}]], region: {MyApp, 01020304-0506-0708-090a-0b0c0d0e0f10, ANY_MAJOR, ANY_MINOR} 14:47:46.581 11015-11015 DaemonConfig D onLost: iBeacon [ad=FF:EE:DD:A1:B2:C3, rs=-74, 1m=-59, d=9, Mm=12.13, n=FSC-BP103-A1B2C3, ex={bp=100, m=BP103}], region: {MyApp, 01020304-0506-0708-090a-0b0c0d0e0f10, ANY_MAJOR, ANY_MINOR}
Tags of Minew Technologies Co.,
have many slots of transmission, so that they can simultaneously broadcast multiples frames with different formats.
In addition to the iBeacon format and three Eddystone formats, there is a format named DeviceInfo
dedicated to
emit a frame containing some information fields, of which one is of interest: a battery percentage.
The other fields are ignored: the MAC address (already available from the BluetoothDevice object) and
an immutable factory-set name ("Plus").
In that case, the battery percentage is made available in the extras
property of a Device object.
The key of the entry is bp
(as battery percentage).
The BeaconSET+ Android app gives access to the configuration of the beacon.
Some models of the manufacturer: E8 Asset Tracking Tag
Example of a logcat trace:
19:35:19.485 8890-8912 SDK-AExplorerPlugin V Discovered: Minew [ad=AC:23:3F:A1:B2:C3, rs=-87, %=89] 19:35:20.866 8890-8890 DaemonConfig D onDiscovered: iBeacon [ad=AC:23:3F:A1:B2:C3, rs=-86, 1m=-58, d=19, Mm=12.13, n=null, ex={bp=89}], region: {Minew, e2c56db5-dffb-48d2-b060-d0f5a71096e0, ANY_MAJOR, ANY_MINOR}
Tags from KKM can broadcast these frame formats:
The custom frame format, named System
, contains some information fields: model reference, battery percentage,
firmware version.
If found, the battery percentage is made available in the extras
property of a Device object.
The key of the entry is bp
(as battery percentage).
The KBeaconPro Android app gives access to the configuration of the beacon.
Some models from the original manufacturer: K5 Asset Tracking Beacon, K4 Waterproof Beacon, K11 Keychain Portable, B2 SOS/Panic Button, K6 Sensor Beacon, U1 USB Beacon
References from resellers or distributors:
Example of a logcat trace:
11:05:38.465 8109-8216 SDK-AExplorerPlugin V Discovered: Kkm [ad=DD:88:11:A1:B2:C3, rs=-75, fw=6.49, %=89] 11:05:41.830 8109-8109 DaemonConfig D onDiscovered: iBeacon [ad=DD:88:11:A1:B2:C3, rs=-74, 1m=-59, d=5, Mm=12.13, n=KBPro_123456, ex={bp=89}], region: {MyApp, 01020304-0506-0708-090a-0b0c0d0e0f10, ANY_MAJOR, ANY_MINOR}
Tags from Moko Smart can broadcast a custom frame type, named Device Info
, to advertise
state information about the device:
The plugin looks for some fields and, if present, makes them available in the extras
property of a Device object,
under these keys:
bv
, as battery voltage, in mV.n
, as name.The BeaconX Pro APP Android app gives access to the configuration of the beacon.
Some models of the manufacturer: M1 Coin Beacon, M2 Asset Tracking Beacon, H2 Indoor Navigation Beacon, M3 Industrial Beacon, L03 Navigation Anchor
Example of a logcat trace:
12:57:35.280 10784-11143 SDK-AExplorerPlugin V Discovered: Moko [ad=FF:EE:DD:A1:B2:C3, rs=-72, bv=3149, n=MOKO] 12:57:42.743 10784-10784 DaemonConfig D onDiscovered: iBeacon [ad=FF:EE:DD:A1:B2:C3, rs=-78, 1m=-59, d=6, Mm=12.13, n=null, ex={bv=3149, n=MOKO}], region: {MyApp, 01020304-0506-0708-090a-0b0c0d0e0f10, ANY_MAJOR, ANY_MINOR}
Tags from Accent Systems
use the free byte available at the end of the frame, unused by the iBeacon protocol, to provide a battery level indicator.
The plugin parses this piece of information and makes it available in the extras
property of a Device object.
The key of the entry is bp
(as battery percentage).
The iBKS Config Tool Android app gives access to the configuration of the beacon.
Models from the original manufacturer: iBKS Plus, iBKS 105, iBKS USB
References from resellers or distributors:
Example of a logcat trace:
19:35:20.866 8890-8890 DaemonConfig D onDiscovered: iBeacon [ad=FF:EE:DD:A1:B2:C3, rs=-86, 1m=-58, d=19, Mm=12.13, n=iBKSPlus, ex={bp=89}], region: {MyApp, 01020304-0506-0708-090a-0b0c0d0e0f10, ANY_MAJOR, ANY_MINOR}
Tags from the French company ELA Innovation use a Manufacturer Specific Data field in a Scan Response frame to publish custom data associated with the Bluetooth Advertising packet. This information is related to the battery and can be one of two forms, depending on the configuration of the beacon: either a percentage of the remaining capacity, published only when it falls below 15%, either a voltage, published without condition.
The plugin only focuses on the percentage variant.
It parses the field, if present, and makes it available in the extras
property of a Device object.
The key of the entry is bp
(as battery percentage).
Models of the manufacturer: Blue LITE, Blue SLIM, Blue PUCK, Blue COIN, Blue WATCH
Example of a logcat trace:
19:35:20.866 8890-8890 DaemonConfig D onDiscovered: iBeacon [ad=FF:EE:DD:A1:B2:C3, rs=-86, 1m=-58, d=19, Mm=12.13, n=L ID 003D4F, ex={bp=14}], region: {MyApp, 01020304-0506-0708-090a-0b0c0d0e0f10, ANY_MAJOR, ANY_MINOR}
Some tags from Ingics Technology, publishing the iBeacon frame, may also broadcast additional information at the same time.
The plugin looks for the various optional fields and, if present, makes them available in the extras
property of a Device object,
under these keys:
bv
, as battery voltage, in mV.b
, as button. Values are "1" or "0", meaning respectively that the button, if present, is pressed or not.m
, as model, for the model name: "iBS0ni" with n=4,5,6 (or, if unrecognized, the model code).u
, as user configurable content, as a 16-bit signed number.The iBS01 Tag Utility Android app gives access to the configuration of the beacon.
Models of the manufacturer: iBS04i, iBS05i, iBS06i
Example of a logcat trace:
15:43:29.048 13537-13537 DaemonConfig D onDiscovered: iBeacon [ad=FF:EE:DD:A1:B2:C3, rs=-80, 1m=-53, d=22, Mm=12.13, n=iBS04_123456, ex={u=258, b=1, m=iBS04i, bv=2970}], region: {Ingics, 01020304-0506-0708-090a-0b0c0d0e0f10, ANY_MAJOR, ANY_MINOR}
Tags from Meeblue (also distributed under the Ankhmaway brand) are able to publish additional custom data associated with the Bluetooth Advertising packet. An usual interesting piece of metadata to report is the battery health, to anticipate a need for replacement.
The first step is the activation of the option: the beacon must be configured with the Low Power Broadcast
property set to Disabled
.
It allows, without condition, the publishing of the TX Power Level (non essential) and the Local Name.
The second step is the setting of the Advertise Battery
property.
It has to be either ID+Batt
, either Only Batt
. The last option is highly advised because:
1. The ID is the MAC address of the device, that is already available to processors from the BluetoothDevice object.
2. The space left to the Local Name field is up to 16 positions, which is better than 10 positions if the ID is present.
The plugin supports the two variants.
It looks for the field and, if present, makes it available in the extras
property of a Device object.
The key of the entry is bv
(as battery voltage).
The CheckBlue Android app gives access to the configuration of the beacon.
Models from the original manufacturer: M52-SA, M52-PA, M52-PIR, Ultra-Thin Beacon U1, Ultra-Thin Beacon Light Sensor UL1, Mini USB Beacon S1
References from resellers or distributors:
Example of a logcat trace:
19:35:20.866 8890-8890 DaemonConfig D onDiscovered: iBeacon [ad=FF:EE:DD:A1:B2:C3, rs=-93, 1m=-53, d=29, Mm=45.50, n=MblueUltraThinU1, ex={bv=3025}], region: {Meeblue, d35b76e2-e01c-9fac-ba8d-7ce20bdba0c6, ANY_MAJOR, ANY_MINOR}
Tags from Teltonika Telematics
can publish an EYE Sensors
packet in addition to the iBeacon/Eddystone Advertising packet,
if in the Basic settings
tab of the app, the Packet settings
choice is set to
one of the options mentioning: ...and EYE Sensors
.
It will broadcast information about the battery (for all models) and, for EYE SENSOR models, measures of the sensors.
The plugin looks for the various optional fields and, if present, makes them available in the extras
property of a Device object,
under these keys:
bl
, as battery low indicator. If present (the only value is "1"), it means that the level is lower than 15%.bv
, as battery voltage, in mV.tc
, as temperature in degrees Celsius.hp
, as humidity percentage.gs
, as magnetic - state. Values are "1" or "0", meaning respectively that a magnetic field is detected or not.ms
, as movement - state. Values are "1" or "0", meaning respectively that the device is moving or not.mc
, as movement - count.ap
, as angle pitch, in degrees.ar
, as angle roll, in degrees.The EYE App Android app gives access to the configuration of the beacon.
Models of the manufacturer: EYE BEACON, EYE SENSOR
Example of a logcat trace:
19:35:20.866 8890-8890 DaemonConfig D onDiscovered: iBeacon [ad=FF:EE:DD:A1:B2:C3, rs=-73, 1m=-53, d=12, Mm=12.13, n=MP1_1234567, ex={bl=1, ap=11, tc=22.28, ar=-57, mc=3275, ms=0, bv=2510, gs=0, hp=18}], region: {Eye, 01020304-0506-0708-090a-0b0c0d0e0f10, ANY_MAJOR, ANY_MINOR}