Device Builder Capabilities¶
This page provides instructions on how to complete the capability statement for Device Builders. The Capability Statement, formatted in JSON, lists the capabilities of a device and its specific version. These details are used to determine the specified version of the device’s compatibility with application expectations.
For each new firmware version of a device, the Device Builder must complete and submit this file to Industrial Edge. This process ensures the device and its firmware version are added to the Compatibility Checker's list of available devices. Only then can the device and its firmware version be processed within the scope of the Industrial Edge Compatibility Checker.
Providing the data¶
-
Copy the following
Capability Statement for Devices
JSON document:Capability Statement for Devices
{ "deviceTypeId": "", "displayName": "", "firmwareVersion": "", "capability": { "ie.device.service.securestorage": { "version": "" }, "ie.device.system.docker": { "version": "" }, "ie.device.system.hostnet": {}, "ie.device.kernel": { "version": "", "arch": "" }, "ie.device.system.shutdown": { "version": "" }, "ie.device.system.iedk": { "version": "" }, "ie.device.hardware.cpu_allocation": { "core": "" }, "ie.device.hardware.gpu_allocation": {}, "ie.device.hardware.gpio": {}, "ie.device.hardware.nic_allocation": { "nicCount": "" }, "ie.device.hardware.memory": { "availableInMB": "" }, "ie.device.system.shared_memory": {} } }
-
Fill in the document with the actual data for your device and respective firmware version, according to the instructions given on this page.
-
Provide the document to Industrial Edge Ecosystem team:
- For external partners - Send it via industrialedgeecosystem.industry@siemens.com.
- For internal partners - Create a new ticket in: https://code.siemens.com/industrial-edge/infrastructure/devicebuilder-request-management/-/issues/ and select the template "capabilities_for_compatibility_checker"
NOTICE
You can also provide this document while publishing your firmware. Refer to the instructions: Device publishing
How to fill the document?¶
This section provides detailed instructions on how to complete each section of the document.
Meta Data¶
Parameter | Description |
---|---|
deviceTypeId | Unique identifier for the device type. This is obtained while registering your device type. |
displayName | Display name of the device. This will only affect how your device is being shown in the Compatibility Checker Checker |
firmwareVersion | The firmware release version applicable for this statement. Example simatic-ipc-ied-os-2.1.0-23-x86-64 . |
Capabilities¶
ie.device.service.securestorage¶
The Secure Storage Service allows an app to store and retrieve confidential and integrity-protected data via a REST-based API. Access to the API is authenticated by determining the container from which the request comes by Linux means. The storage is encrypted and can be bound to the TPM of the host system (if existent). Each application has a separate "area" to store key-value pairs in. The content of the Secure Storage Area will be backed up with the app backup in the future.
Which version of Secure Storage does your device support?
If this capability is not supported by your device, this item should be excluded from the device capability statement JSON file. Fill this item if your device supports Secure Storage feature.
Refer following documentation for more details:
Property | Description |
---|---|
version | The version of the secure storage API supported by your device. Value should be as per Semantic Versioning 2.0.0 (https://semver.org/). Example 2.0.0 . |
NOTICE
If your IEDK version is older version than 1.9.0, it does not provide support for secure storage.
Secure Storage Version | IEDK Version |
---|---|
Secure storage is not available | < 1.9.0 |
1.0.0 | 1.9.0 <= X < 1.19.0 |
2.0.0 | >= 1.19.0 |
ie.device.system.docker¶
What is the Docker engine version supported by your device?
This capability item is mandatory to be filled in the device capability statement JSON file.
Property | Description |
---|---|
version | The version of Docker engine supported by your device. Example 20.0.0 , 23.0.3 |
NOTICE
We take exactly 3 digits(MAJOR.MINOR.PATCH) of version number for comparison.
ie.device.system.hostnet¶
In the context of containerization and Linux networking, the term "host network namespace" refers to the network namespace of the host operating system. In Docker context, this property specifies whether a container should use the host's network namespace.
If this capability is not supported by your device, this item should be excluded from the device capability statement JSON file. Fill this item if your device supports Host Network usage for applications.
ie.device.kernel¶
What is the Linux kernel version installed on your device?
This capability item is mandatory to be filled in the device capability statement JSON file.
Property | Description |
---|---|
version | The Linux kernel version provided on the device. Example 6.5.0-15-generic . |
arch | The specific architecture provided by your device. Supported values are only x86_64 or arm64 . |
NOTICE
We take exactly 3 digits(MAJOR.MINOR.PATCH) of version number for comparison.
ie.device.system.shutdown¶
If this capability is not supported by your device, this item should be excluded from the device capability statement JSON file. Include this item only if your device supports Shutdown operation.
Refer following document for more details
Property | Description |
---|---|
version | The version of shutdown API supported by your device. Value should be as per Semantic Versioning 2.0.0 (https://semver.org/). Example, 2.0.0 . |
ie.device.system.iedk¶
What is the version of IEDK installed on your device?
This capability item is mandatory to be filled in the device capability statement JSON file.
Property | Description |
---|---|
version | The supported IEDK version by your device, should be decided based on the availability of supported APIs and services from IEDK. Value should be as per Semantic Versioning 2.0.0 (https://semver.org/). Example, 1.21.0 . Please refer to the List of Release Notes section of the Industrial Edge documentation to find out which features have been released in which IEDK version. |
ie.device.hardware.cpu_allocation¶
Does your device require CPU allocation?
Provide how many cores has been configured as "isolatable" for your device.
If this capability is not supported by your device, this item should be excluded from the device capability statement JSON file. Include this item only if your device supports CPU cores, which are configured as "isolatable".
Refer to Resource Manager documentation for details.
Property | Description |
---|---|
core | The number of CPU cores configured as isolatable. Value should be integer, such as 2 . |
ie.device.hardware.gpu_allocation¶
Does your device support GPU allocation?
If this capability is not supported by your device, this item should be excluded from the device capability statement JSON file. Include this item only if your device supports GPU allocation.
Refer to Resource Manager documentation for details.
ie.device.hardware.gpio¶
Does your device support GPIO allocation?
If this capability is not supported by your device, this item should be excluded from the device capability statement JSON file. Include this item only if your device supports General Purpose I/O (GPIO) chip allocation.
Refer to Resource Manager documentation for details.
ie.device.hardware.nic_allocation¶
Does your device support NIC allocation?
A network interface is a hardware component that connects a device to a network. This capability manages the NIC and its other properties.
If this capability is not supported by your device, this item should be excluded from the device capability statement JSON file. Include this item only if your device supports network interfaces, which are configured as "isolatable".
Refer to Resource Manager documentation for details.
Property | Description |
---|---|
nicCount | The number of network interface configured as isolatable. Value should be integer, such as 2 . |
ie.device.hardware.memory¶
This capability item is mandatory to be filled in the device capability statement JSON file.
Property | Description |
---|---|
availableInMB | Maximum memory in megabytes (MB) supported by your device which is reserved specifically for the Industrial Edge applications. Example, If the total memory (in MB) provided by the device is 8192 and if the memory reserved for Industrial Edge System ( OS, platform ) is 5120, then the memory reserved for Industrial Edge applications will be 8192 - 5120 = 3072 For more refer to the "maxMemoryUsageInGB" value in (https://docs.eu1.edge.siemens.cloud/build_a_device/device_building/development/configuration/limits.html) Or (https://docs.eu1-alpha.edge.siemens.cloud/build_a_device/device_building/references/api_reference/system.html#limits). If your device offers multiple customizable memory configurations for end customers, provide the maximum possible memory capacity. Value should be an integer. |
ie.device.system.shared_memory¶
Shared memory is memory that may be simultaneously accessed by multiple programs with an intent to provide communication among them or avoid redundant copies.
If this capability is not supported by your device, this item should be excluded in the device capability statement JSON file. Fill this item if your device supports Shared memory.
Refer to Resource Manager documentation for details.
NOTICE
- The values for
deviceTypeId
,displayName
,firmwareVersion
,version
,arch
,core
, andavailableInMB
are currently empty (or default value) in the JSON file. Make sure to update them with the appropriate values as per your device requirements. - Ensure not to add any extra capabilities or properties to the provided JSON.