Generate OPC-UA Discovery Reports
See the Reports section of the API documentation.
- opcua-servers
- opcua-nodes
The "opcua-servers" type finds servers known to a Local Discovery Server (LDS) for which the endpoint is defined in the input parameters of the report request.
The "opcua-nodes" type discovers nodes available at an OPC-UA endpoint defined in the input parameters of the report request.
Discovery Type: OPC-UA Servers Known to Local Discovery Server
The following API request is used to request the "opcua-servers" report generation:
POST /reports/discovery/opcua-servers
with request body (fill in the correct values)
{ "opcua-servers": { "input": { "endpoint": "opc.tcp://localhost:4840", "format": "json", "authConfig":{ "auth": "username", "username": "my-user", "password": "my-password" } } } }
The endpoint
is required and needs to be reachable from the OPC-UA
driver.
The format
defaults to JSON if omitted. Available options are
json
and csv
.
The authConfig
section is optional; it can be used to specify
authentication parameters required by the OPC-UA server. The parameters are the same
as the ones described in the Advanced Options section of the "Construct the @type"
part of Create OPC-UA Thing Description.
The API response will include an href
parameter that can be used to
retrieve report details. It is structured as follows:
/reports/discovery/{discovery_type}/{report_id}
The report details returned include the status of the report.
Once the report has been completed details of the uploaded reports (by the OPC-UA driver to the core driver service) can be retrieved using the following API call:
GET /reports/discovery/{discovery_type}/{report_id}/uploads
The returned uploadId
values can be used to retrieve the reports bu
using the following API call:
GET /reports/discovery/{discovery_type}/{report_id}/uploads/{upload_id}
An example response (truncated) is as follows:
{ { "ApplicationURI": "urn:localhost:Node-OPCUA-Server", "ProductURI": "Node-OPCUA-Server", "ApplicationName": "NodeOPCUA", "ApplicationType": "ApplicationTypeServer", "GatewayServerURI": "", "DiscoveryProfileURI": "", "DiscoveryURLs": [ "opc.tcp://localhost:26543" ] },
Discovery Type: OPC-UA Nodes at Endpoint
The following API request is used to request the "opcua-nodes" report generation:
POST /reports/discovery/opcua-nodes
with request body (fill in the correct values)
{ "opcua-nodes": { "input": { "endpoint": "opc.tcp://localhost:26543", "startNodeID": "objects", "browseDepth": 10, "retrieveValue": false, "ignoreErrors": true, "format": "json", "authConfig":{ "auth": "username", "username": "my-user", "password": "my-password" } } } }
The endpoint
is required and needs to be reachable from the OPC-UA
driver.
The startNodeID
can be any valid NodeID on the OPC-UA endpoint and
will default to the objects
keyword if omitted.
The browseDepth
defaults to 10 if omitted.
The retrieveValue
defaults to true if omitted. For larger
browseDepth
values it is recommended to set this to false.
The ignoreErrors
defaults to true if omitted. If set to false the
report generation will fail if the OPC-UA node browsing runs into any error. The
error itself will be uploaded as an error report.
The format
defaults to json
if omitted. Available
options are json
and csv
.
The authConfig
section is optional; it can be used to specify
authentication parameters required by the OPC-UA server. (See explanation at the
"opcua-servers" report section.)
The API response will include an href
parameter that can be used to
retrieve report details. It is structured as follows:
/reports/discovery/{discovery_type}/{report_id}
The report details returned include the status of the report.
Once the report has been completed details of the uploaded reports (by the OPC-UA driver to the core driver service) can be retrieved using the following API call:
GET /reports/discovery/{discovery_type}/{report_id}/uploads
The returned uploadId
values can be used to retrieve the reports bu
using the following API call:
GET /reports/discovery/{discovery_type}/{report_id}/uploads/{upload_id}
An example response (truncated) is as follows:
{ "Objects": { "MyDevices": { "Incrementor0": { "BrowseName": "Incrementor0", "DataType": "float64", "Description": "", "DisplayName": "Incrementor0", "NodeID": "ns=1;s=Incrementor0", "Value": 154412.20000450008, "Writable": false }, "Temperature": { "BrowseName": "Temperature", "DataType": "float64", "Description": "", "DisplayName": "Temperature", "NodeID": "ns=1;s=Temperature", "Value": 34.52512524858854, "Writable": false },