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","thingId":<thingID>,"timestamp":<timestamp>,"data":{"<propertykey1>":<propertyValue1>,"<propertykeyN>":<propertyValueN>}} |
ase.exchange.telemetry |
|
{"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","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
. ForpropertyStatus
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.