Dataserver Microsoft Azure IoT Hub
  • 20 Sep 2021
  • 3 Minutes to read
  • Contributors
  • Dark
    Light
  • PDF

Dataserver Microsoft Azure IoT Hub

  • Dark
    Light
  • PDF

Article summary

The purpose of this article is as a reference guide for the use of the Azure Dataserver.

First time users might benefit from using the  Getting Started with DCM - Azure guide.


Prerequisite

A Starter package (SiteManager + accounts) 
A cloud subscription (Trial) from Azure IoT Hub
Other sections in DCM:
Getting started
Guides
Examples
Frequently asked questions
Troubleshooting



FunctionTypeImportanceDescription
DatasrvNamestringmandatoryUnique (within this configuration file) name for each dataserver this SiteManager delivers data to. Follows the normal rules for names.
DatasrvDescriptionstringoptionalA description of this data server. For your future reference
SampleListarray of stringsoptionalThis array contains the list of sampleref this dataserver will deliver data for. If it is not present, all sample values in this configuration will be delivered. Since this object is not a Collectors object, the CollectorName part of the sampleref field is mandatory. If the SampleName part of the sampleref is left blank, all samples from that collector are delivered.
IOPinbooleanoptionalIf set to true, the Output I/O pins configured to follow DCM data loss will be controlled by this datasrv. If multiple dataservers are controlling the I/O pins, then the value will be the logical OR of all dataservers data loss state (I.e. If any dataserver is in dataloss, the I/O pins will be in logical high). If not set, the value is false.
DatasrvProtocolstring-enummandatoryDesignates the protocol used to deliver data from the Store'n'Forward database to data servers, aka Cloud Systems. For Cumulocity use "C8Y/REST".
Currently 6 possible values exists: "AWS/MQTT", "AZURE/IOTHUB", "SCI/SPD", "C8Y/REST", "SEMA/REST" or "SIMULATOR/NONE".
ConnectRetryMininteger > 0mandatoryMinimum number of seconds before trying to reestablish a connection to the dataserver for data delivery. An exponential back-off algorithm is used to retry connection establishment, starting after ConnectRetryMin and increasing to ConnectRetryMax.
ConnectRetryMaxinteger > 0mandatoryMaximum number of seconds before trying to reestablish a connection to the dataserver for data delivery.
AZUREIotHubParamsobjectmandatory
for Azure IoT hub
Contains all the parameters needed to deliver (publish) data to the Azure IoT hub. Mandatory if DatasrvProtocol has the value "AZURE/IOTHUB".


FunctionTypeImportanceDescription
PublishIntervalinteger >= 0mandatoryThe interval in seconds between each delivery of new data from the Store'n'Forward database. The value 0 means that data is delivered as fast as possible.
ConnectNamestringoptionalThe certname of the connectstring to use for the Azure connection. If not specified, the first connectstring found in the cert repository will be used.
PayloadFormatstringoptionalThis string describes the format of the payload reported to Azure IotHub. The format is as for the MQTTAWSParams PayloadFormat field.
BulkElementFormatstringoptionalThis string describes the format of the element used by the "%b" format used in the PayloadFormat. The format is the same as for MQTTAWSParams PayloadFormat. If not specified the format is { "ts" : %t, "%jd:%js" : %jv },.
ContentTypestringoptionalThe contenttype of the values being delivered. If not specified it is application/json.
ContentEncodingstringoptionalThe content encoding of the values being delivered. If not specified it is utf-8.


Payload format

  • 'M' - SiteManager Unique MAC address.
  • 'N' - SiteManager Name. (GateManager Appliance Name).
  • 'V' - Configuration version ID.
  • 'd' - Collector name.
  • 's' - Sample name.
  • 'u' - Sample unit. If undefined, an empty string.
  • 'g' - Sample group name. If undefined, the sample name will be used.
  • 't' - Timestamp value as an integer (64bit 100ns resolution).
  • 'T' - Timestamp as ISO-8601 time string (2018-11-12T14:04:46.114).
  • 'e' - Timestamp as an integer (32bit Unix Epoch).
  • 'E' - Timestamp as an integer (64bit Unix Epoch in millisecond resolution).
  • 'v' - Sample value as a string (binary data as hex byte string).
  • 'b' - Multiple values are delivered (in bulk) as an array, described in the BulkElementFormat.
  • '%' - A percent character. The format can be prefixed with 'j', which will perform escape sequence to data according to the RFC 7159 (JSON) standard. If not specified, the format is { "v" : [ %jb ] }.


Example:

{
  "DatasrvName": "azure",
  "DatasrvProtocol": "AZURE/IOTHUB",
  "ConnectRetryMin": 2,
  "ConnectRetryMax": 240,
  "AZUREIotHubParams": {
    "PublishInterval": 6,
    "ConnectName": "azurecs",
    "PayloadFormat": "{ \"v\" : [ %jb ] }",
    "BulkElementFormat": "{ \"ts\" : %t, \"%jd:%js\" : %jv }"
  }
}

Was this article helpful?