You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -68,7 +68,7 @@ We see three approaches to achieve this:
68
68
69
69
* BaSyx AAS SM server *pulls* the current state from Eclipse Ditto via a *wrapper* around Eclipse Ditto.
70
70
This approach requires the creation of a custom AAS infrastructure around Eclipse Ditto without the chance of reusing existing components of the Eclipse Basyx project.
71
-
The Eclipse Ditto project followed a comparable approach to support [Web of Things](https://eclipse.dev/ditto/2022-03-03-wot-integration.html) (WoT) definitions, which is another specification to integrate IoT devices from different contexts and align their utilized data model.
71
+
The Eclipse Ditto project followed a comparable approach to support [Web of Things](2022-03-03-wot-integration.html) (WoT) definitions, which is another specification to integrate IoT devices from different contexts and align their utilized data model.
72
72
Ditto now allows the generation of new Things based on a WoT Thing Description.
73
73
* BaSyx AAS SM server *pulls* the current state from Eclipse Ditto via a *bridge* component, which Eclipse Basyx already provides.
74
74
To integrate the bridge, the BaSyx SM-server component has a delegation feature, where the user can configure an SME with an endpoint to which the server delegates incoming requests.
@@ -95,8 +95,8 @@ Eclipse Ditto and Eclipse Basyx work with different data structures and conceptu
95
95
96
96
*Table 1: Concept mapping from Eclipse Ditto to the AAS*
97
97
98
-
We map a Ditto [`Namespace`](https://eclipse.dev/ditto/basic-namespaces-and-names.html#namespace) to a single AAS. An AAS holds multiple SMs, and not all of these SMs necessarily have counterparts in Ditto. We thus treat a `Thing` as an opaque concept and do not define an explicit mapping for a `Thing` but map each [`feature`](https://eclipse.dev/ditto/basic-feature.html) to one SM.
99
-
[`property`](https://eclipse.dev/ditto/basic-feature.html#feature-properties) and [`Attribute`](https://eclipse.dev/ditto/basic-thing.html#attributes) are mapped to SMEs.
98
+
We map a Ditto [`Namespace`](basic-namespaces-and-names.html#namespace) to a single AAS. An AAS holds multiple SMs, and not all of these SMs necessarily have counterparts in Ditto. We thus treat a `Thing` as an opaque concept and do not define an explicit mapping for a `Thing` but map each [`feature`](basic-feature.html) to one SM.
99
+
[`property`](basic-feature.html#feature-properties) and [`Attribute`](basic-thing.html#attributes) are mapped to SMEs.
100
100
101
101
By that, it is possible to have more than one Thing organized in one AAS.
102
102
This can especially be useful if an AAS organizes complex equipment with different sensors and actuators, which belong together but are organized in multiple Things.
@@ -123,7 +123,7 @@ Please note that the Ditto demo instance, does not work for the described setup
123
123
### Payload Mappers from Ditto to BaSyx
124
124
125
125
Let us assume a device with a sensor named `machine:sensor` that is capable of measuring temperature values.
126
-
This device may send sensor data to an Eclipse Ditto instance as a Ditto Protocol message [Ditto Protocol message](https://eclipse.dev/ditto/1.3/protocol-overview.html):
126
+
This device may send sensor data to an Eclipse Ditto instance as a Ditto Protocol message [Ditto Protocol message](protocol-overview.html):
127
127
128
128
```json
129
129
{
@@ -136,10 +136,10 @@ This device may send sensor data to an Eclipse Ditto instance as a Ditto Protoco
136
136
137
137
*Listing 1: Ditto Protocol message for the Thing `machine:senor`*
138
138
139
-
If the device uses another message format, you can find more details on [how to map it](https://eclipse.dev/ditto/connectivity-mapping.html) to a Ditto Protocol message.
139
+
If the device uses another message format, you can find more details on [how to map it](connectivity-mapping.html) to a Ditto Protocol message.
140
140
141
141
After an update to a Thing, we want Ditto to map the information to an AAS-conforming representation and forward this via an outbound connection to an AAS server.
142
-
The task in Eclipse Ditto is to define [payload mappers](https://eclipse.dev/ditto/connectivity-mapping.html) for these transformations in accordance with the mapping from [Mapping of Data Models](#mapping-of-data-models). Ditto allows the usage of JavaScript to create the mappers. We thus configure connections in Ditto to the BaSyx components, where we filter for the relevant changes to a Thing and then trigger the respective mapper.
142
+
The task in Eclipse Ditto is to define [payload mappers](connectivity-mapping.html) for these transformations in accordance with the mapping from [Mapping of Data Models](#mapping-of-data-models). Ditto allows the usage of JavaScript to create the mappers. We thus configure connections in Ditto to the BaSyx components, where we filter for the relevant changes to a Thing and then trigger the respective mapper.
143
143
144
144
We need to implement the following mappers:
145
145
@@ -380,15 +380,15 @@ With our approach, we preserve the existing properties and only modify the updat
380
380
381
381
#### Create a Connection to the BaSyx AAS Server
382
382
383
-
To apply the introduced mappers, we configure a new [Ditto connection](https://eclipse.dev/ditto/basic-connections.html) to a BaSyx AAS server.
383
+
To apply the introduced mappers, we configure a new [Ditto connection](basic-connections.html) to a BaSyx AAS server.
384
384
The listings below show the respective HTTP calls using curl to configure this connection.
385
385
386
386
The JavaScript mappers from above are part of `piggybackCommand.connection.mappingDefinitions` in `mappingforShell`, `mappingforSubmodel` and `mappingforSubmodelElement`.
387
387
388
388
In the example, we use the placeholder `<ditto-instance-url>` for the used Ditto instance. You need to adjust to the valid URL of your environment.
389
-
We assume you have access rights to the Ditto [Devops Commands](https://eclipse.dev/ditto/installation-operating.html#devops-commands) credentials in the used instance (username: `devops`, password: `foobar is the default).
389
+
We assume you have access rights to the Ditto [Devops Commands](installation-operating.html#devops-commands) credentials in the used instance (username: `devops`, password: `foobar is the default).
390
390
391
-
You can change the password by setting the environment variable *DEVOPS_PASSWORD* in the [gateway service](https://eclipse.dev/ditto/architecture-services-gateway.html).
391
+
You can change the password by setting the environment variable *DEVOPS_PASSWORD* in the [gateway service](architecture-services-gateway.html).
392
392
393
393
Alternatively, an already existing password can be obtained and stored as an environment variable using the following command:
When Ditto established the connection and our payload mappings work, it returns a successful HTTP response and otherwise an error message.
490
490
491
491
Without any further means, the payload mappings defined in `piggybackCommand.mappingDefinition` and set in `piggybackCommand.targets` would get executed for all changes to a Thing.
492
-
To prevent this, we use [filtering](https://eclipse.dev/ditto/basic-changenotifications.html#filtering) with [RQL expressions](https://eclipse.dev/ditto/basic-rql.html) to make sure that our payload mappings are only executed for the correct messages.
492
+
To prevent this, we use [filtering](basic-changenotifications.html#filtering) with [RQL expressions](basic-rql.html) to make sure that our payload mappings are only executed for the correct messages.
0 commit comments