Device Groups
Device Groups
Device Groups are a technique for identifying a particular set of Devices/Sensors. A Device Group is used to explicitly filter which Device's advertisements, connections and Device Status events (presence, absence, or battery level) are delivered to a defined Pipeline.
A default
Device Group exists that contains all devices Edge Connect observes.
Defining Device Groups
Device Groups are defined in an Edge Connect Configuration. There is no limit to the number of defined Device Groups.
Two types
of Device Groups are supported: static
and persistent
. Both use include
and exclude
lists of MAC addresses. Persistent
groups store discovered or removed devices on disk, allowing them to persist across reboots. Static groups are ideal for a pre-configured set of devices in the configuration file, while persistent groups are better suited for dynamic provisioning.
References:
Static Device Group Documentation
Persistent Device Group Documentation
Targeting Device Groups in Pipelines
Pipelines have a groups
field. If this parameter is set, the Pipeline will only receive events if at least one of the Device Groups match the Device that generated the event. If the parameter is
left empty, the Pipeline will receive events from the default
from all observed devices.
Device Status Events
Device Status Events are emitted from each Device Group when the presence of a Device changes. To subscribe to these events, create a Pipeline with the eventType
field set to deviceStatus
. Setting the groups
field to a set of Device Groups causes Edge Connect to deliver only device status events for devices which match the group(s).
Device Status events include these fields:
{
"property": "string; the property that is being reported, currently either presence or batteryLevel",
"propertyStatus": "string; either OK, WARN, or FAIL",
"propertyValue": "percentage of batteryLevel, or boolean for presence",
"lastAdvertisement": "ble advertisement (see filter output docs)",
"lastSeenTimestamp": "golang time.Time",
"present": "deprecated: boolean - true if device arrives, false if it is absent",
"timestamp": "golang time.Time, the time of the event",
"deviceGroup": "string - the Device Group ID that generated this event",
"mac":"string"
}
Discovery of Devices
Rather than explicitly setting the include or exclude lists for a device group, devices can be added to, or removed from, a Device Group at runtime using the discoverDevice
or removeDevice
Filters. In this way, a Filter in a Pipeline can be used to discover the devices that should be in a Group by adding any devices that reach the discoverDevice
Filter in the Pipeline. If these devices should persist across reboots, the device group should use the persistent
group type.
Updated 3 months ago