Devices is a technique for identifying devices based on event data. Once identified, Devices provides many features for working with the data.


DeviceMdns

Configuration for devices which are discovered via MDNS requests

Referenced By:
DeviceType  

Fields

NameTypeDescriptionRequired
requestMacbooleanWhen RequestMac is true, an attempt will be made to discover the mac address of the device found via an ARP request
If retrieval of the mac fails, no event will be generated
No
servicesarrayServices is the list of MDNS services which are broadcast by the deviceYes

DeviceMonitoring

DeviceMonitoring controls reporting of devices to Edge Direct
If enabled, all devices of known types are reported to Edge Direct.

Referenced By:
Devices  

Fields

NameTypeDescriptionRequired
debugbooleanEnable debug loggingNo
debugInputobjectEnable logging a custom map built from the input map; will override the default event logging
Define the map as key pairs (see inject), supports dot-notation, templating
Example: { "importantValue": "{{.nested.important.value}}"}
No
debugOutputobjectEnable logging a custom map built from the output map; will override the default event logging
Define the map as key pairs (see inject), supports dot-notation, templating
Example: { "importantValue": "{{.nested.important.value}}"}
No
enabledbooleanSet ot true to enable device monitoringNo
eventInterval?The interval to send batches of device events to Edge DirectNo
snapshotInterval?The interval to send full device snapshots to Edge DirectNo
verbosebooleanEnable verbose loggingNo

DeviceProp

DeviceProp describes a property that is settable/gettable on a device.
See the propSet filter and {{ Device.Props }} template function.

Referenced By:
DeviceType  

Fields

NameTypeDescriptionRequired
persistentbooleanNo

DeviceType

Definition for a particular type of Device that Edge Connect will interact with.
DeviceTypes can be used to add properties to a device and can be used to define a device group.
A DeviceType minimally has an ID and a way to identify the devices from advertisements using matchers.

Referenced By:
Devices  

Fields

NameTypeDescriptionRequired
allowUnknownPropsbooleanTrue if devices of this type allow undefined properties to be set on themNo
deviceIdTemplatestringThe template used to generate the deviceId for devices of this type
Example: "mydevice_{{ .mac | ToUpper }}"
No
ephemeralbooleanTrue if this device type represents an ephemeral device that should not be tracked long term.
An example of an ephemeral device is one that is only around for a little bit, or has an unstable mac/id.
This essentially tells the device registry to identify this device but not track it.
Example: false
No
idstringUnique ID of the DeviceType
Example: "rs40"
Yes
keysmap of string to KeyDefinitiondevice specific keysNo
match?Keys to match (all keys) for an inline definition (see MatcherDefinition), or a Template to evaluate and match to a true value.No
matchAnybooleanShould we match any of the provided matchers (true)? Or all of the matchers (false)No
matchersarrayThe list of top-level matcher IDs to apply to the input map
Example: [ "is-nearby", "is-my-device-type"]
No
mdnsDeviceMdnsNo
propsmap of string to DevicePropProperties that can be set/get on devices of this type. See the propSet filter and the Device.Props template function.No

Devices

Configuration of Devices and Device Templates

Referenced By:
EdgeConnectConfig   RecipeDefinition  

Fields

NameTypeDescriptionRequired
maxDevicesintegerThe maximum number of devices to track in the device registry LRU cache. If this number is exceeded, devices are
pushed out of this cache and also removed from their device group tracking. Maximum value 50000.
No
monitoringDeviceMonitoringNo
typesarray of DeviceTypeAn ordered list of DeviceTypes to try to apply to any incoming events from devices, in order to identify them.No