umati / UA-CloudPublisher

umati-fork of OPC UA cloud publisher --- reference implementation leveraging OPC UA PubSub over MQTT. It runs in a Docker container on standard Docker hosts or on Kubernetes and comes with an easy-to-use web user interface.
Other
0 stars 0 forks source link

EPIC: Define a mapping of Addressspace infos to OPC UA PubSub #5

Open DasbachVDMA opened 3 months ago

DasbachVDMA commented 3 months ago

Define the topic structure and the UA JSON structure for the MQTT broker.

Preliminary discussions:

@Kantiran91 Please make a appointment for a workshop

Kantiran91 commented 3 months ago

2024-04-17: Target of the topic structure + encoding: The nodes defined by a type definition (from a Companion Specification) are transmitted in MQTT.

Requirements for the topic structure

Idea: Own dataset for publisher

Kantiran91 commented 3 months ago

todos:

Kantiran91 commented 3 months ago

ideas for mapping the Hierarchy references must be mapped:

ideas for mapping references to KeyValuePair: Key (QualifiedName): Browsename of the ReferenceType Value(NodeId): NodeId of the TargetValue

Kantiran91 commented 2 months ago

Here is a wiki article that contain all infos for this discussion: https://github.com/umati/UA-CloudPublisher/wiki/Recommendations-for-Mapping-OPC-UA-Addessspace-information-in-OPC-UA-Pub-Sub

Kantiran91 commented 3 weeks ago

@mdornaus @wlkrm @GoetzGoerisch @karstenroethig @ccvca I have create an draft for the Pub/Sub Spec of the Dashboard. Can you please review the document?

https://github.com/umati/UA-CloudPublisher/pull/54

ccvca commented 3 weeks ago

grafik

https://reference.opcfoundation.org/Core/Part3/v105/docs/5.2.4

There is also no rule, that BrowseNames must not contain any of the following characters: ./:

Kantiran91 commented 3 weeks ago

grafik

https://reference.opcfoundation.org/Core/Part3/v105/docs/5.2.4

There is also no rule, that BrowseNames must not contain any of the following characters: ./:

Yes that why we use the BrowsPath as name which can be used for intentify.

If you flow the annex of Part 4 the character are not allowed: https://reference.opcfoundation.org/Core/Part4/v105/docs/A

Do you suggest that we give a hint how to solve BrowsePath conflicts? e.g. allowing to add an iteration value?

ccvca commented 3 weeks ago

/ is allowed, ist just needs to be prefixed by a &, which will screw up MQTT as well.

<name>::= (<name-char> | '&' <reserved-char>) [<name>]
<reserved-char>::= '/' | '.' | '<' | '>' | ':' | '#' | '!' | '&' 
<name-char> ::= All valid characters for a String (see [OPC 10000-3](https://reference.opcfoundation.org/Core/Part3/v105/docs/)) excluding reserved-chars.

In the current version, this is solved by an URL-Encoding using an underscore instead of a '%'.