Bosch IoT Rollouts

Messages sent to Bosch IoT Rollouts

Note: The DMF protocol uses the term “thing” for a device or in Bosch IoT Rollouts speech “provisioning target”. The terms can be considered as synonyms.

Messages sent to Rollouts (Client -> Rollouts)

All messages have to be sent to the exchange dmf.exchange.

THING_CREATED

Message to register and update a provisioning target.

Header

Description

Type

Mandatory

type

Type of the message

Fixed string “THING_CREATED”

true

thingId

The ID of the registered provisioning target

String

true

sender

Name of the message sender

String

false

tenant

The tenant this provisioning target belongs to

String

false

Message Properties

Description

Type

Mandatory

content_type

The content type of the payload

String

true

reply_to

Exchange to reply to. The default is sp.direct.exchange which is bound to the sp_direct_queue

String

false

Example headers and payload:

Header

MessageProperties

type=THING_CREATED
tenant=tenant123
thingId=abc
sender=device

content_type=application/json
reply_to (optional) =sp.connector.replyTo

Payload Template (optional):

{
"name": "String"
}

The “name” property specifies the name of the thing, which by default is the thing ID. This property is optional.

THING_REMOVED

Message to request the deletion of a provisioning target.

Header

Description

Type

Mandatory

type

Type of the message

Fixed string “THING_REMOVED”

true

thingId

The ID of the registered provisioning target

String

true

tenant

The tenant this provisioning target belongs to

String

false

Message Properties

Description

Type

Mandatory

content_type

The content type of the payload

String

true

Example headers

Header

MessageProperties

type=THING_REMOVED
tenant=tenant123
thingId=abc

content_type=application/json

UPDATE_ATTRIBUTES

Message to update target attributes. This message can be send in response to a REQUEST_ATTRIBUTES_UPDATE event, sent by Bosch IoT Rollouts.
See Messages sent by Bosch IoT Rollouts > REQUEST_ATTRIBUTES_UPDATE

Header

Description

Type

Mandatory

type

Type of the message

Fixed string “EVENT”

true

topic

Topic name identifying the event

Fixed string “UPDATE_ATTRIBUTES”

true

thingId

The ID of the registered thing

String

true

tenant

The tenant this thing belongs to

String

false

Message Properties

Description

Type

Mandatory

content_type

The content type of the payload

String

true

Example headers and payload:

Header

MessageProperties

type=EVENT
tenant=tenant123
thingId=abc
topic=UPDATE_ATTRIBUTES

content_type=application/json

Payload Template:

{
"attributes": {
"exampleKey1" : "exampleValue1",
"exampleKey2" : "exampleValue2"
},
"mode": "String"
}

The “mode” property specifies the update mode that should be applied. This property is optional. Possible mode values:

Value

Description

MERGE

The target attributes specified in the payload are merged into the existing attributes. This is the default mode that is applied if no “mode” property is specified in the payload.

REPLACE

The existing attributes are replaced with the target attributes specified in the payload.

REMOVE

The target attributes specified in the payload are removed from the existing attributes.

UPDATE_ACTION_STATUS

Message to send an action status event to Bosch IoT Rollouts.

Header

Description

Type

Mandatory

type

Type of the message

Fixed string “EVENT”

true

topic

Topic name identifying the event

Fixed string “UPDATE_ACTION_STATUS”

true

tenant

The tenant this thing belongs to

String

false

Message Properties

Description

Type

Mandatory

content_type

The content type of the payload

String

true

Payload Template (the Java representation is ActionUpdateStatus):

{
"actionId": long,
"softwareModuleId": long,
"actionStatus":"String",
"message":["String"]
}

Possible actionStatus values:

Value

Description

DOWNLOAD

Device is downloading

DOWNLOADED

Device completed download

RETRIEVED

Device has retrieved the artifact

RUNNING

Update is running

FINISHED

Update process finished successfully

ERROR

Error during update process

WARNING

Warning during update process

CANCELED

Cancel update process successfully

CANCEL_REJECTED

Cancel update process has been rejected

Example header and payload:

Header

MessageProperties

type=EVENT
tenant=tenant123
topic=UPDATE_ACTION_STATUS

content_type=application/json

{
"actionId":137,
"softwareModuleId":17,
"actionStatus":"DOWNLOAD",
"message":["The download has started"]
}

PING

Bosch IoT Rollouts allows DMF clients to check the availability of the DMF service. For this scenario DMF specifies a PING message that can be sent by the client:

Header

Description

Type

Mandatory

type

Type of the message

Fixed string “PING”

true

tenant

The tenant the PING belongs to

String

false

Message Properties

Description

Type

Mandatory

correlationId

CorrelationId that allows the client to map a PING request to PING_RESPONSE

String

true