avatar  

Log out

Recently viewed tickets

Amazon dataserver

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

First time user might benefit from using the Getting started with DCM -> Amazon IOT Hub guide.



The DataServers (array of objects, mandatory) list elements contains the following fields:

  • DatasrvName (string, mandatory). Unique (within this configuration file) name for each dataserver, this Sitemanager delivers data to. Follows the normal rules for names.
  • DatasrvDesription (string, optional) description of this data server.
  • SampleList (array of strings, optional) This 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.
  • IOPin (boolean, optional). If set to true, the Output I/O pins configured to follow DCM dataloss, 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.
  • DatasrvProtocol (string-enum, mandatory). Designates the protocol used to deliver data from the Store'n'Forward database to data servers, aka Cloud Systems. Currently 5 possible values exists: "AWS/MQTT", "AZURE/IOTHUB", "SCI/SPD", "C8Y/REST" or "SEMA/REST".
  • ConnectRetryMin (integer > 0, mandatory) Minimum number of seconds before trying to reestablish a connection to the dataserver for data delivery. An exponential backoff algorithm is used to retry connection establishment, starting after ConnectRetryMin and increasing to ConnectRetryMax .
  • ConnectRetryMax (integer > 0, mandatory) Maxumin number of seconds before trying to reestablish a connection to the dataserver for data delivery.
  • MQTTAWSParams (object, maybe-optional). Contains all the parameters needed to deliver (publish) data to Amazon AWS MQTT cloud service. Mandatory if DatasrvProtocol has the value "AWS/MQTT".
  • AZUREIotHubParams (object, maybe-optional). Contains all the parameters needed to deliver data to a Azure IoTHub client service. Mandatory if DatasrvProtocol has the value "AZURE/IOTHUB".
  • SCISPDParams (object, maybe-optional). Contains all the parameters needed to deliver (publish) data to Secomea cloud service, CSI. Mandatory if DatasrvProtocol has the value "SCI/SPD".
  • C8YParams (object, maybe-optional). Contains all the parameters needed to deliver (publish) data to the Cumulocity Cloud service. Mandatory if DatasrvProtocol has the value "C8Y/REST".
  • SemaParams (object, maybe-optional). Contains all the parameters needed to deliver (publish) data to the Schneider Electric Machine Advisor service. Mandatory if DatasrvProtocol has the value "SEMA/REST".


The MQTTAWSParams object contains the following fields:

  • BrokerAddr (string, mandatory) The DNS name/IP address of the server to deliver data to from the Store'n'Forward database.
  • BrokerPort (integer > 0 and < 65535, optional) The TCP port to use for the connection from the SiteManager to the Amazon MQTT/S server. If not specified, the value 443 (TLS) is used.
  • RootCA (string, optional). The certname of the RootCA to use for the MQTT over TLS connection. If not specified, the first AWS ROOT-CA found in the cert repository will be used.
  • DeviceCert (string, optional). The certname of the Device Certificate to use for the MQTT over SSL TCP connection. If not specified, the first AWS Device Certificate found in the cert repository will be used.
  • DevicePrivKey (string, optional). The certname of the Device Private Key to use for the MQTT over SSL TCP connection. If not specified, the first AWS Device Private Key found in the cert repository will be used.
  • PublishQos (string-enum, optional). The QOS (Quality Of Service) used to publish messages to AWS. Currently "qos0" and "qos1" is supported. If not specified, the value "qos1" is used.
  • PublishInterval (integer >= 0, mandatory). The 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.
  • PayloadFormat (string, optional). This string describes the format of the payload reported over MQTT. The format is printf-like with % formats as follows:
  • 'm' - SiteManager Unique address. (This is NOT the MAC address, but the EdgeID )
  • '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 ] } .

  • BulkElementFormat (string, maybe optional). This string describes the format of the element used by the "%b" format used in the PayloadFormat and is therefore mandatory if PayloadFormat contains a "%b" format. The BulkElementFormat is printf-like with the same specifiers as for PayloadFormat except "%b" is not allowed. If not specified the format is { "ts" : %t, "%jd:%js" : %jv }, .
  • TopicFormat (string, optional). This string describes the format of the topic used over MQTT. The format is printf-like the same formats as PayloadFormat . If not specified, the format is "%m".



Example:

{
"DatasrvName":"aws_iot",
"DatasrvProtocol":"AWS\/MQTT",
"ConnectRetryMin":2,
"ConnectRetryMax":240,
"MQTTAWSParams":{
"BrokerAddr":"a1cn4k05gzdtcl.iot.us-east-2.amazonaws.com",
"BrokerPort":8883,
"RootCA":"awsrootca",
"DeviceCert":"awsdevcert",
"DevicePrivKey":"awsdevpkey",
"PublishQos":"qos1",
"PublishInterval":0,
"TopicFormat":"iotgateway/%d",
"PayloadFormat":"{ \"%js\" : %jv, \"timestamp\" : %t }"
}
}
Creation date: 11/12/2019 14:09 (skr@secomea.com)      Updated: 18/03/2020 08:29 (tvo@secomea.com)