Verified Telemetry (VT) is a state-of-the-art solution to determine the health of the sensor, i.e., working or faulty, which is consequently used to determine the quality of the sensed data. This is achieved by devising an intelligent “sensor fingerprint”, a set of unique electrical characteristics that differs between working and faulty sensors. The fingerprints can detect faults for a wide variety of off-the-shelf sensors and can be easily implemented with lightweight software code running on the IoT device. VT code is split into three repositories as described below:
Repository | Description |
---|---|
Verified Telemetry SDK | The SDK which builds on the Azure RTOS middleware and integrates VT into existing device code. |
Verified Telemetry Device Sample | These Getting Started guides shows device developers how to combine Verified Telemetry with Azure IoT and Azure RTOS. |
Verified Telemetry Custom Solution Sample | Uses InfluxDB, Grafana and the Azure IoT Node.js SDK to communicate with Azure IoT Hub and showcase how the Verified Telemetry features can be utilized in real world scenarios. |
The device samples shows device developers how to include Verified Telemetry with Azure IoT and Azure RTOS. Please find the following board specific guides:
MXCHIP
STMicroelectronics
To understand how to interact and consume Verified Telemetry information, refer to one of the following guides:
- Interact with Verified Telemetry using Azure IoT Explorer Sample
- Interact with Verified Telemetry using the custom Solution Sample Template
Note
Verified Telemetry status is supported only to analog sensors. We are currently working on extending the SDK to support digital sensors.
A few key concepts of VT are introduced and discussed below:
-
Sensor Fingerprint
- Sensor Fingerprint is an electrical characteristic that is measured by the IoT device for a particular sensor
- The Sensor fingerprint of a working sensor differs from that of a sensor with fault
-
Sensor Fingerprint Template
- Sensor fingerprint template is a fingerprint of a working sensor
- The fingerprint template is collected by the IoT device, ideally when the sensor is provisioned first and stored locally and in the Device Twin
-
Sensor Fingerprint Collection
- Sensor Fingerprint Collection is a process where the IoT device measures the fingerprint of a sensor
- In the device samples, sensor fingerprint is collected at the same frequency at which telemetry is sent by the IoT device
-
Sensor Fingerprint Evaluation
- A sensor fingerprint that is collected is then compared with the stored sensor fingerprint template
- If the collected fingerprint matches with the sensor fingerprint template, the sensor is classified as WORKING, otherwise FAULTY
-
Telemetry Status
- The telemetry status of the telemetry that is generated by the sensor is tagged "true" if the sensor is working and "false" if the sensor has a fault
- The telemetry status for each telemetry that supports Verified Telemetry feature exists as a non-writable property in the Device Twin
-
Fingerprint Template Synchronization at Boot
- If the sensor fingerprint template exists in the Device Twin, it is fetched and updated on the device when the device boots/resets. This ensures fingerprint template is collected only once when device is provisioned.
- If the sensor fingerprint template does not exist in the Device Twin, the template on device remains empty after boot and subsequent sensor fingerprint evaluation cannot be performed
-
Verified Telemetry Interface
The PnP interface of Verified Telemetry is defined in Verified Telemetry Information
Type Name Description Properties (read-only) telemetryStatus
Status of the telemetry, i.e. Working/Faulty to which the component of this interface is asscoiated. Properties (read-only) fingerprintType
Type of the fingerprint (String). e.g., FallCurve or CurrentSense or Custom. Properties (read-only) fingerprintTemplate
Template Fingerprint information in a Map Properties (read-only) fingerprintTemplateConfidenceMetric
Stores information on the Fingerprint Template confidence, i.e., high, meidum or low Commands setResetFingerprintTemplate
This command will set or reset the template fingerprint Commands retrainFingerprintTemplate
This command will append a new fingerprint to the existing template fingerprint
-
The device samples showcase how to setup a device using the sample code which supports Verified Telemetry
-
The sample implements the Verified Telemetry Getting Started Guide PnP Interface
-
The samples include a device component of the following interface:
Tab Type Name Description Interface Interface Sample Device
Example standard Device Model for getting started with Verified Telemetry/Dependable IoT Guide Properties (read-only) Property ledState
The current state of the LED Commands Command setLedState
Enable or disable the LED Telemetry Telemetry soilMoistureExternal1
,soilMoistureExternal2
,temperature
,pressure
,humidityPercentage
,acceleration
,magnetic
Telemetries originating from various onboard and external sensors -
The following telemetries support Verified Telemetry:
- soilMoistureExternal1
- soilMoistureExternal2
-
For each of these telemetries there exists a component which implements the Verified Telemetry Information Interface:
Telemetry Component Name soilMoistureExternal1 vTsoilMoistureExternal1 soilMoistureExternal2 vTsoilMoistureExternal2 -
The 'telemetryStatus' property present inside each of these components represents whether the respective telemetry is verified or has a fault.
-
The 'vTDevice' component implements the Verified Telemetry Device Information Interface:
Type Name Description Properties (writable) enableVerifiedTelemetry
Controls whether Fingerprint Collection and Evaluation is implemented or not. When this property is set to 'false', Telemetry Verification cannot be performed. Properties (read-only) deviceStatus
Device status is set to false if any sensor supported by VT has a fault.
The Azure Verified Telemetry Getting Started guides are licensed under the MIT license.