Bosch IoT Device Management - will be discontinued by mid 2024

Command and control - one-way - HTTP

One-way commands are sent from a connected business solution through Bosch IoT Things and Bosch IoT Hub to a connected device. This type of command is neither confirmed nor answered by the device.

Schematic view

images/confluence/download/attachments/2014745071/command-example.png

Prerequisites


Open the HTTP channel with an empty notification

Log in to Bosch IoT Hub - HTTP adapter.

In the Bosch IoT Hub - HTTP Adapter API:

  1. Navigate to the event section and select the POST operation.

  2. Click the Try it out button.

  3. Select application/vnd.eclipse-hono-empty-notification as Request body type.

    This application type is used to send an empty notification to Bosch IoT Hub. This event type can be used to indicate to the server that this client is able to receive command messages.

    This notification type is used for an explicit query for a command on the server side. You may also specify the hono-ttd header on /telemetry and /event calls to receive commands (“piggybacking”).

  4. Enter the value 60 in the hono-ttd header.
    This specifies the number of seconds that the server keeps the HTTP connection to the client open to send a command downstream.

  5. Run the request by clicking the Execute button.


Update the feature of the thing

You can use for example the Bosch IoT Suite UI to set the temperature value for featureZ.

images/confluence/download/attachments/2014745071/set-temp-via-console.png

You have updated the feature of the digital twin.

This emits a twin event "twin modified" with a respective payload which is sent via Bosch IoT Hub as a command message to the device.

Receive the one-way command at Hub

Go back to your browser tab where you submitted the empty notification.

You should see the change printed out on the Response body part (code 200):

{
"topic": "my.demo/device/things/twin/events/modified",
"headers": {
"correlation-id": "xxx",
"sec-fetch-site": "same-site",
"origin": "https://console.bosch-iot-suite.com",
"sec-fetch-mode": "cors",
"accept-language": "de-DE",
"dnt": "1",
"accept": "application/json, text/plain, */*",
"x-forwarded-scheme": "https",
"accept-encoding": "gzip, deflate, br",
"sec-fetch-dest": "empty",
"ditto-originator": "iot-suite:xxx/service-instance.xxx.iot-things@developer-console",
"response-required": false,
"version": 2,
"requested-acks": [],
"content-type": "application/json"
},
"path": "/features/featureZ",
"value": {
"properties": {
"temperature": 21
}
},
"revision": 21,
"timestamp": "2021-11-18T21:26:47.093837949Z"
}


That shows that the device has received the command message.