News and noteworthy
Announcements in 2020
2020-08 End-to-end acknowledgements
In some IoT use cases, the processing of requests is important and needs to be guaranteed. The new feature of the Things service supports to control this behaviour from an end-to-end perspective. This includes the processing within the Things service, but also the delivery and processing within other services, which listen to the digital twins managed within Bosch IoT Things.
The guaranteed processing is controlled using acknowledgements.
By default, acknowledgements are used for ensuring the successful persistence of thing updates. They are requested, if messages from devices are delivered with a respective demand for QoS 1 (i.e. at least once) from the Bosch IoT Hub, or if applications trigger updates via API. In case of sending telemetry data, which is not crucial for your IoT application (e.g. because it is sent regularly anyway), you can avoid to use such acknowledgements, whereas events can request an acknowledgement.
Additional acknowledgements can be requested and confirmed for delivering or processing of messages within other services. This way, you can make sure that also this delivery or processing is finished successfully.
On all connections to the Things service for receiving operations/messages, you can define the required acknowledgement. The events emitted by Things will include the information about your required acknowledgement. The emitting of events to the respective connections (like AMQP, MQTT, Apache Kafka, or HTTP) can directly confirm such an acknowledgment, if the target system confirms to have received it.
The following acknowledgements can be used:
- Built-in acknowledgements: twin-persisted
An acknowledgement with this label is issued, when a modifying command has successfully updated the digital twin in the Things service persistence.
- Built-in acknowledgement: live-response
An acknowledgement with this label is issued, when the response to a live command or live message is received.
- Custom acknowledgement labels: you-name-it
In addition to the built-in acknowledgement requests, a received command or message can contain custom acknowledgement labels. A subscriber can detect that an acknowledgement was requested via the “
requested-acks” header. If the subscriber is in charge of handling a requested acknowledgement it issues the acknowledgement.
With this feature, we provide a quality of service guarantee of “at least once” (aka QoS 1) when processing operations/messages in an end-to-end manner for the Bosch IoT Suite. For example, a processed message from the Bosch IoT Hub will be technically acknowledged only after it was successfully applied in the Things service, and potentially also in 3rd-party applications. Without successful processing, the redelivery mechanisms of Bosch IoT Hub will apply, according the QoS level set there.
Find details at Acknowledgements.
2020-02 Enrichment of events and messages
By default, the Bosch IoT Things service will notify all consumers with read permission on a specific thing about all changes applied to the thing entity. This type of signal is also known as ‘change event’.
But what, if your consumer needs additional data related to that thing, in order to get “more meaningful” notifications?
The answer is: using the new possibility to enrich events and messages.
The new approach will help your application to get additional data - like attributes, or feature properties - on each event. Although enriched events are a bit “bigger”, they reduce the traffic, as your consumer does not need a second request-response for the “extra” data.
How to use it?
You can add e.g. attributes or feature properties of your things, which are not included in the original payload, but are helpful for your consumers, by using the new parameter
For persistent connections you can specify the settings at the Target section.
What about filtering?
In case your application prefers to only be notified upon a specific kind of events, you can apply filtering and thus help to reduce traffic load.
The new enrichment query parameter
extraFields and the event
filter can be used together.
Find details at Enrichment of events and messages.
2020-01 New chart view in Things UI
The Things UI includes a new chart view which displays thing property data collected over the time.
This view helps to understand IoT device sensor data during the development of IoT solutions. The shown data is live data updated in thing properties and is only collected during the time when the dashboard view is open. The data series is not stored.
How to use it?
To open the Things tab > click on a specific thing > Chart View.