The new release of Bosch IoT Things, the digital twin layer of Bosch IoT Device Management, comes with the following improvements:
Search in arrays
With the latest release Bosch IoT Things supports you to search in arrays.
The previous search implementation was based on an attribute pattern, and the thing structure was flattened into arrays on database level.
The new search implementation follows an alternative index strategy, based on a wildcard index (see MongoDB wildcard indexes), which is now supporting queries against unknown or arbitrary fields in a more efficient way.
The Search fields supported for the queries in your solution have not changed in fact. However, if your thing happens to have for examples an array of values for a feature property, the previous search was not able to index it respectively.
Example for red lamps
Given your traffic light things hold the state value as an array of values, e.g. ["red"]
, ["red","yellow"]
, ["yellow","green"]
or ["green"]
instead of using the JSON notation (which is still recommended and still performs better).
To search for all red traffic lights:
filter=eq(features/trafficlight/properties/state,"red")
Example for features with multiple definitions
The feature definition field is an array, and thus can hold a comma separated list of multiple definitions.
Given you need to query all things with a lamp feature definition, regardless of the version.
filter=like(features/*/definition,"your-model-namespace:lamp:*")
Given you need to query all things with a lamp feature definition of a version 1.x or 2.x.
filter=or(like(features/*/definition,"your-model-namespace:lamp:1.*"),like(features/*/definition,"your-model-namespace:lamp:2.*"))
MQTT connections enhancement
MQTT connections have been enhanced by applying a throttling mechanism to all in-flight messages – no matter what their QoS is set to – given of course, that your MQTT broker also supports it.
At the same time, we have paved the way for supporting MQTT 5 in the Bosch IoT Suite soon.
Stay tuned.
Outlook on Eclipse Ditto version 3.0.0
Bosch IoT Things is based on and powered by the open source project Eclipse Ditto. Its upcoming version will also support the new pattern.
Find more in the new blog post Reactive MQTT Connectivity.
Connected devices reporting
Bosch users of various GBs can access a central dashboard that visualizes the number of devices which are already connected to IoT infrastructures. With the new release, we fully support the Bosch IO strategy for KPI by reporting the new and deleted digital twins continuously, per customer.
The results will be visible as “registered devices” on the Power BI board.
At this occasion, various minor bugs have also been fixed.