Devices and their digital twins

The central concept in the Device Inventory terminology is the device, which includes both edge devices and gateways, i.e. a gateway is treated as a device with edge devices connected to it. All devices in Bosch IoT Manager are represented by their digital twins, available as things in the Bosch IoT Things service. In other words, in order to be manageable by Bosch IoT Manager, a device has to be available as a thing in the Bosch IoT Things service and its configuration, state and capabilities have to be reflected as features of the particular thing.

Features and their Vorto models

The digital twin representation of a device, kept by the Bosch IoT Things service (in the form of things with features) is in fact just a raw data structure - without any associated semantics behind it, and without information regarding the commands that are supported by these devices. This is where the Vorto Information Model comes to help by providing additional metadata that describes the capabilities of a specific thing. In order to take full advantage of Bosch IoT Manager's capabilities, it is strongly recommended that all manageable devices have defined Vorto models.

Each feature of a thing has zero, one or several associated Vorto models . These Vorto models are kept in the central Vorto GitHub repository from where the Device Inventory retrieves them.

The Bosch IoT Manager uses Vorto models for two main purposes:

  • to represent devices in a user friendly way in the IoT Manager Console.

  • to obtain information about the management actions supported by the devices (represented as thing features), so they can be invoked - either via the IoT Manager Console, the Bosch IoT Manager API or via the scripting language of the Mass Management Engine.

If a certain feature does not have a Vorto model or its model is not available in the repository, it is represented in a generic way by the Device Inventory. In this case its properties can be viewed as raw data but no operations can be appointed to them directly through the Device Inventory.

Device information

The information which the Device Inventory provides to any user is limited only to the devices he or she is authorized to see. It consists of the device attributes and features with their respective properties and values, obtained from the device. The Device Inventory supports assigning of additional custom properties to the devices, besides the ones that are retrieved from and reported by the device. Such custom properties can be also used for filtering of devices.

In Bosch IoT Manager, we adhere to the terminology of Bosch IoT Things, where devices have attributes and features. Features in turn, have properties and operations.

Attributes are rather static in the sense that they are not expected to change frequently or not at all. Features on the other hand can be used for remote device configuration and management through the supported operations.

Some specific attributes:

  • Info - devices and directory groups are automatically assigned an Info attribute. It contains the following nested attributes:

    • groupPath - this attribute is added automatically to directory groups and devices added to directory groups. For details and the proper format of this attribute, check Grouping devices.

    • tags - this attribute is added automatically to devices added to tag groups and includes all tags associated with the device.

    • gateway - this attribute will show whether the device is provisioned as a gateway or not. If it is not provisioned as a gateway, it could be provisioned as a standalone edge device or as an edge device provisioned through a gateway.

    • gatewayId - for devices provisioned through a gateway, the gateway attribute will be followed by another attribute - gatewayId - stating the ID of the respective gateway.

    • displayName - this attribute is assigned automatically to devices provisioned via the Bosch IoT Manager APIs, and is used by Bosch IoT Rollouts in their device search criteria. If the device is provisioned via the provisioning API of Bosch IoT Hub and Bosch IoT Things, this attribute is optional and not added automatically.

The following example illustrates the format of the Info attribute:

"Info": {
"groupPath": "/Group1/com.bosch.iot.dm.ac.ext:documentation-001",
"displayName": "demoDevice"
"gateway": true,
"tags": {
"tag1": true,
"tag2": true
}
}

Listing devices

The Device Inventory allows you to list all devices regardless of their type, or to list gateways only. It is also possible to list edge devices through the particular gateway they are connected to.