Bosch IoT Device Management

Differences when using Bosch IoT Rollouts standalone and within Bosch IoT Device Management

Bosch IoT Rollouts serves as the software update layer of Bosch IoT Device Management. Currently, there are some slight differences in the feature set between Bosch IoT Rollouts when used as part of Bosch IoT Device Management and when used as a standalone service.

Here is a list of the differences:

Authentication

  • Bosch IoT Device Management works with service to service communication via OAuth2 clients and authentication tokens. Therefore, when using Bosch IoT Rollouts as part of Bosch IoT Device Management, you should configure all necessary authentication context via the client and organization scopes as part of your OAuth2 client creation. Although Basic user authentication is still supported for Bosch IoT Rollouts as part of Bosch IoT Device Management, it should not be used in such scenarios, as there is no OAuth2 context present with it.
    Read more about the topic in the respective pages: Create a Suite Auth client, Set up OAuth2 client for third-party applications and the Authentication and authorization section.

  • When using Bosch IoT Rollouts as a standalone service, you can use also basic credentials or the ones from your Bosch Account for using Rollouts. Assigning the desired permissions can happen directly in the User management view and its table, part of the Rollouts UI.
    For more information see Authentication and User management view.

Time Forced assignment

  • Every time when you assign a distribution set to a target, you have the option to choose between different action types i.e. Forced, Soft, Download Only and Time Forced.

    images/confluence/download/attachments/2353449582/RO_assignmentOptions.png


    Currently, the Time Forced option is not supported by Bosch IoT Device Management, although it is visible in the UI. Setting a specific timestamp is not part of the install command and since the mass management rule is created via a push mechanism, the install command is fixed and cannot be altered later in time. This means that the timestamp would not be communicated to the device.

  • The Time Forced option is fully supported by Bosch IoT Rollouts as a standalone service, where the device is polling every time it gets online and the payload can be adapted at a later stage.
    For more information see Deployment view - Deployment: Action Types.

Assignments using a maintenance window

  • Bosch IoT Device Management currently does not support the maintenance window scheduler assignment. The maintenance window is not part of the install command and is therefore not communicated to the device.

  • If you prefer using the Rollouts UI to assign a distribution with a maintenance window - this works as expected when Bosch IoT Rollouts is used as a standalone service.
    For more information see Deployment view - Deployment: Maintenance window.

Statistics view

  • For users of Bosch IoT Device Management, the Rollouts UI still offers the Statistics view, where you can see valid action statistics but the full data is not reliable and there may be some inconsistencies. An example would be the target statistics, which are an estimation coming from Bosch IoT Rollouts rather than the real-time data stored in Bosch IoT Things.

For proper monitoring of the software update process and statistics within Bosch IoT Device Management, check the execution of the software update-related rule as described at Monitor rules.

  • For users of Bosch IoT Rollouts as a standalone service, the Statistics view offers complete features, such as viewing all the present targets, full device statistics and how many actions have been created, etc.
    For the complete features of the Statistics view and how to work with them see Statistics view.

Auto assignment target filters

  • Activating an auto assignment performs a count operation of the devices that will be affected by the update.
    Currently, due to performance issues, when using the software update layer of Bosch IoT Device Management, the displayed number shows the overall count of devices filtered by the query, including those that have already received the update in a previous assignment. Despite that, the auto assignment will not be performed again on one and the same device.

  • When using Bosch IoT Rollouts as a standalone service the count operation works correct and provides the exact number of affected devices.
    For more information see Target filters view - Auto assignment.

Custom target filter queries

Custom target filters allow you to filter targets by a defined custom query. Currently, not all queries work identically in Bosch IoT Rollouts as a standalone service and as part of Bosch IoT Device Management.

The table below outlines the similarities, the differences in the way how to use filter queries, and also the query properties that are not supported:

Bosch IoT Rollouts

Bosch IoT Device Management

Description

name==*

name==*

Gives all targets.

updatestatus==error

features/*/properties/status/lastOperation/status == FINISHED_ERROR

Gives all targets in ‘error’ state.

updatestatus==success

features/*/properties/status/lastOperation/status == FINISHED_SUCCESS

Gives all targets in ‘success’ state.

controllerId!=192.168.2.42

controllerId!=example.dm:device-01

Gives all targets that don’t have the controllerId '192.168.2.42' or 'example.dm:device-01'.

name==*CCU*

name==*CCU*

Gives all targets which contain the term ‘CCU’ in their name.

description==*CCU*

Not supported.

Gives all targets that have the term ‘CCU’ in their description.

lastControllerRequestAt=le=${OVERDUE_TS}

Not supported.

Gives all targets that are overdue.

lastControllerRequestAt=ge=${OVERDUE_TS}

Not supported.

Gives all targets which are not overdue (i.e. were online recently).

installedds.name==MyDS and installedds.version==1.0.0

Not supported.
Can be filtered using the attributes property as shown below.

Gives all targets which have distribution set ‘MyDS’ with version ‘1.0.0’ installed.

attribute.displayName==device-01

attributes/info/displayName==device-01

Gives all targets which have a controller attribute ‘displayName’ with the value ‘device-01’.

Not supported.

features/*/properties/status/agentName==DemoUpdate

Gives all targets which have a feature with key 'agentName' and value 'DemoUpdate'.

Keep in mind that you can only filter fields that have been already indexed. Each namespace has an individual search index. The search index contains the fields that should be indexed for your things of this namespace. Thus, search queries can be filtered only by these fields.

Read more about the topic here.

tag=in=(test,qa)

tag=in=(test,qa)

Gives all targets which are tagged with ‘test’ or ‘qa’.

tag=out=test

tag=out=test

Gives all targets which are not tagged with ‘test’.

metadata.mode==debug

metadata.mode==debug

Gives all targets which have the metadata parameter with key ‘mode’ and value ‘debug’.

metadata.hw.rev==1.0

metadata.hw.rev==1.0

Gives all targets which have the metadata parameter with key ‘hw.rev’ and value ‘1.0’.

Please note that everything after ‘metadata.’ is treated as the name of the metadata key. Therefore a ‘*’ or ‘.’ right after ‘metadata.’ would search for a metadata key with name ‘*’ or ‘.’ and especially ‘*’ is not treated as wildcard in key names but as part of the name instead.

For more information see Target filters view.

Target state machine

A target has a current state which reflects the provisioning status of the device at this point in time. There is a slight difference in the initial state when provisioning from Bosch IoT Device Management and Rollouts.

  • In Bosch IoT Device Management, an UNKNOWN state means that the device is present in Bosch IoT Things, but was never connected to Bosch IoT Device Management.

  • In Bosch IoT Rollouts as a standalone service, an UNKNOWN state is set by default for a pre-commissioned target in Bosch IoT Rollouts until the first status update is received from the actual device.
    See Target state machine for more information on Defined target states.

APIs

The following APIs, part of the standalone Bosch IoT Rollouts, are not available as part of Bosch IoT Device Management:

  • Direct Device Integration (DDI) API

  • Device Management Federation (DMF) API

  • Service Integration Event (SIE) API