Exchange ase.exchange.telemetry

Setup

User: telemetry-user

Permissions: the telemetry user is only allowed to publish data to the ase.exchange.telemetry exchange. No configure or read permissions.

Note: The ase.exchange.telemetry exchange is a headers exchange and each export service (or analytics service, like a rules engine) binds its own queues to the exchange using the publishTag and thingID headers. A message published to the exchange (no routing key needed) will end up at all the services that have a queue bound to the exchange for the appropriate publishTag and thingID.

Outgoing Messages

The message format and headers to be published to this exchange are as follows:

(follows the WoT websockets API)

Exchange Headers Body
ase.exchange.telemetry

messageType=propertyStatus

publishTag=raw

thingID=<thingID>

{"messageType":"propertyStatus","thingId":<thingID>,"timestamp":<timestamp>,"data":{"<propertykey1>":<propertyValue1>,"<propertykeyN>":<propertyValueN>}}
ase.exchange.telemetry

messageType=actionStatus

publishTag=raw

thingID=<thingID>

{"messageType":"actionStatus","thingId":<thingID>,"timestamp":<timestamp>,"data":{"<actionKey>":{"href":<action href>"input":<action input>,"timeRequested":<time requested>,"timeCompleted":<time completed>,"status":<action status>}}}
ase.exchange.telemetry

messageType=event

publishTag=raw

thingID=<thingID>

{"messageType":"event","thingId":<thingID>,"data":{"<eventKey>":{"data":<event data>}}}
Notes:
  • The messageType can be sent either as a header or in the message body. The one in the message body takes precedence.
  • The timestamp is expected to be in microseconds but seconds is allowed too.
  • The data section will be different for each messageType. For propertyStatus it is usually a list of key-value pairs.
  • For more details on the messageType=actionStatus messages see Action Message Processing.
  • The examples above show single objects in the message body. Multiple objects can be passed in a single message by putting them in an array.

Raw telemetry data is required to be sent with the publishTag=raw and thingID=<thingID> headers.

(Replace <thingID> with the real thing-id of the device.)

For telemetry publishing examples see Action Message Processing and Property Message Processing.