Device discovery
Industrial Asset Hub discovers the indirectly managed devices connected through the Asset Gateway. The user can trigger asset discovery on the selected Asset Gateway.
Asset Gateway
The Asset Gateway offers a gRPC (google protocol-buffer) interface to connect Asset links to it. This can be done distributed over box boundaries (indirectly managed) or fully integrate with the native managed device.
Asset Gateway polls for gateway specific discovery jobs. Asset links has to implement the Device discovery API in order to discover the connected indirectly managed devices in the network. Asset Gateway delegates the discovery request to the right Asset link through Device discovery API.
The agents are provided as docker containers.
API Description
DeviceDiscoverApi
GetFilterTypes
rpc GetFilterTypes(.siemens.common.filters.v1.FilterTypesRequest) .siemens.common.filters.v1.FilterTypesResponse
Get the list of supported Filter Types
GetFilterOptions
rpc GetFilterOptions(.siemens.common.filters.v1.FilterOptionsRequest) .siemens.common.filters.v1.FilterOptionsResponse
Get the list of supported Filter Options
DiscoverDevices
rpc DiscoverDevices(DiscoverRequest) DiscoverResponse
Start a device discovery with given filters and options. Returns the discovered devices.
Messages
DiscoverError {#discovererror}
Field | Type | Description |
---|---|---|
result_code | int32 | The error code, which should be an enum value of siemens.common.code.v1 |
description | string | Developer-facing human-readable message in English |
oneof source.target | siemens.common.address.v1.Destination | none |
oneof source.device | siemens.common.address.v1.Destination | none |
DiscoverRequest {#discoverrequest}
Field | Type | Description |
---|---|---|
filters | repeated siemens.common.filters.v1.ActiveFilter | optional: Filters which are used to filter the discover result, e.g. a special device type values of identical keys are logically "OR" combined values of different keys are logically "AND" combined |
options | repeated siemens.common.filters.v1.ActiveOption | optional: Options which are used to perform the discover, e.g. timeout, hircharchie level, ... values of identical keys are logically "OR" combined values of different keys are logically "AND" combined |
target | repeated siemens.common.address.v1.Destination | optional: Specify the target where the discovery should be performed A target can be a physical device, which is acting as a gateway or a underlying subdriver If it's not specified, the whole system is scanned |
DiscoverResponse {#discoverresponse}
Field | Type | Description |
---|---|---|
devices | repeated DiscoveredDevice | Holds information on one or more discovered devices |
errors | repeated DiscoverError | Holds information on one or more discovered devices |
DiscoveredDevice {#discovereddevice}
Field | Type | Description |
---|---|---|
identifiers | repeated siemens.common.identifiers.v1.DeviceIdentifier | List of default device identifiers of a device supported by the protocol |
connection_parameter_set | siemens.common.address.v1.ConnectionParameterSet | The whole connection parameters, to establish the communciation with the discovered device, including the schema and subdriver configuration |
timestamp | fixed64 | Timestamp when device was last seen 64 bit unsigned integer which represents the number of 100 nano-second [0.1 microsec] intervals since January 1, 1601 (UTC). |