Skip to content

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

  1. 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": {}
      }
    }
    
  2. Fill in the document with the actual data for your device and respective firmware version, according to the instructions given on this page.

  3. Provide the document to Industrial Edge Ecosystem team:

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, and availableInMB 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.