Skip to content

Commit

Permalink
Merge pull request #175 from w3c/ege-meetup19
Browse files Browse the repository at this point in the history
Meetup 19 resources
  • Loading branch information
egekorkan authored Oct 23, 2024
2 parents aa22c01 + 0529eb5 commit dcd77c0
Show file tree
Hide file tree
Showing 4 changed files with 225 additions and 0 deletions.
Binary file not shown.
215 changes: 215 additions & 0 deletions Meetups/19/2024-10-14-minutes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,215 @@
# Meeting Minutes

:date: **Date:** 14 Oct 2024

## Information

:computer: <https://docs.google.com/presentation/d/1E8CsW-45U9YBcEFFEUQ5u-K6n4j4j8nkqNRScQRjuUI/edit?usp=sharing>

### :bust_in_silhouette: Participants

Total: 29 Participants

- Ege Korkan
- Cristiano Aguzzi
- Thomas Jaeckle
- Sebastian Kaebisch
- Roman Binkert
- Christian Winkler
- Christian Glomb
- Matthias Langner
- Michael McCool
- Daniel Peintner
- Alexander Schmidt
- York Schmidtke
- Sergio Sevilieanu
- Hossein Rimaz
- John Caipa
- Kaz Ashimura
- Mikinobu
- Lorenzo Gigli
- Tanil Ergin
- Flavia De Andrade Pereira
- Sibla Wilfried
- Thomas Schwarz
- Christian Paul
- Marques Bruno
- Minyong Li
- Michael Koster
- Kunihiko Toumura
- Alexander Power
- Cai Li
- Matthias Langner

:writing_hand: **Scribe:** Cris

----

## Minutes

### Introduction

Ege: Welcome to the 19th meetup!

### Agenda

Ege: as always some news and later we will start the talk

### News

Ege: we will host three new Meetups! and we have the WoT week during the 25-29. If you want to have a talk please contact us and we can arrange a new event.

### WoT week in Munich

Ege: it will have a Plug Fest event to play with different devices and test interoperability between them. Full week event but the last two days will be only for standardization activities

### Using thing Models

Ege: We have Thomas Jaeckle who is currently working at beyonnex.io previously in Bosh where he also contributed to the WoT standard specifically in the WoT Model space.

Thomas: thanks for the introduction, I will talk about how we use Thing Model in the housing sector.

Thomas: we are from beyonnex.io a new IoT startup (younger than 3 years) we are digitalizing the real estate sector. More than 100 employees spread across Europe.

Thomas: We have a B2B model and our customers are housing companies however residents use our devices as a services. No need to think about battery connectivity or maintenance.

Thomas: the group started from the submetering devices to collect and allocate heat/water consumptions among residents. We also offer backend and application services.

Thomas: the devices are connected with M-Bus for remote reading for water, gas and electricity. Those readings are always uni-directional. The readings are consumed from a Backend. We also support LoRaWan. With LoRa we are able to have a bi-directional communication. However, they have special interaction patterns because the device might be turned off to save battery.

Thomas: We have to control and manage the device environment too. Where the device is installed, which consumer can control them?

Thomas: That's why we have the need to model all these requirements with the concept of the digital twin.

Thomas: we provide APIs for accessing the device data or sending commands. We can also abstract from protocols are connected with. Access control is managed by the digital twin too. Thanks to this model we can have high order digital twins that control and aggregates simple twins.

Thomas: we are using Eclipse Ditto, to provide the backbone for the whole system.

Thomas shows an example of a JSON representation (like a TD) for Eclipse Ditto.

Thomas: you can use a set of APIs to obtain the data presented in the JSON Representation.

Thomas: We use thing model as a why to define common affordances. Upon creation the model is used as a skeleton to create the JSON and for each Thing linked in the model it create the corresponding TD. Ditto will use TM to validate Thing modifications (updates to the structure of the Digital Model).

Thomas shows how TM can help detect erroneous updates of Ditto Things.

Thomas: we are doing this because we want to be sure that the contracts are met which improve reliability. Plus it can provide helpful error messages.

Thomas: we use inheritance and composition in a very OOP way. A thermostat is a device, it is aware of its identity and has-a functionality to read temperature. But thanks to the composition feature a room can also have temperature functionality. We import compatibilities using "tm:ref"

Thomas: we model our world in a object oriented way. We model also other entities not only devices. An example is a room.

Thomas: we create new thing models using IntelliJ, we applied semantic versioning. We use GIT to publish TMs to our development website. Once we create a version and published to QA and prod it is immutable.

Thomas: We built tooling around Thing Models. Writing is hard but Reading TMs it also hard. We create tooling to create OpenAPI definitions from TM and Ditto Endpoints. We integrate this tooling in our CI/CD pipeline

Thomas: We create an Swagger UI automatically, it helps the readability. We have code generation based on the Thing Models to help mapping data to and from the right JSON format during development. We generate Kotlin data classes from TMs. Everything is provided as Maven plugin so that it can be integrated in the build workflow.

Thomas: the DSL that we built for Kotlin is similar to write JSON but it does compile time checks. We also created a migration tooling to help managing updates of already existing TMs.

Thomas: we use mainly WoT TMs for building digital twins, Ditto ensures changes to twin always adhere to the TMs. At our company we continue to inventing tooling around in TMs and Ditto integration. We aim to make the generic tooling around Ditto and TMs Open Source soon.

### Questions

Hossein: Regarding git diff, are you using any canonicalization method? Doesn't it makes the versioning more stable when you have JSON normalization.

Thomas: no basically we use Ditto to have a normalized Thing skeleton and use a Javascript library to get the diff between the two JSON.

John: Is there a repository where all the models are listed? Are they based on any standard or can they be mapped to any data model standard?

Thomas: the models and slides are hosted <https://github.com/thjaeckle/slides/tree/main/wot-meetup-beyonnex-2024-10/example-models>. However, our models are not open because we have IP issues.

Ege: are they based on any standards?

Thomas: no they are not, but we use Ontology of Measurements.

Thomas S: I'm from Bosh security engineering we used to adapt TM with our ditto models. Did you find a nice way to map Thing Models properties and Ditto properties?

Thomas: we create the properties list only for the required properties.

Thomas S: how to model the desired properties from Ditto in the W3C TD?

Thomas: they will look like properties.

Thomas S: We struggle to have this feature in Web of Things, it would be convenient to have an example for that.

Thomas: Currently, there is no way to model it. But we can create a context extension to describe this.

Ege: want to mean for desired properties?

Thomas: Yes basically they describe the user will to have the device in a precise state.

Wilfried: Former colleague, thank you for the presentation. It is usable in a industrial scenario? or it is just for your company?

Thomas: no and yes.

Wilfried: Are the desired properties out of the box available in your platform?

Thomas: not yet.

Wilfried: You presented the evolution of the model but how it would work for second generation of devices?

Thomas: it is alway tricky. We try to avoid big breaking changes. We don't have a proper solution now. We can think about different solution like automatic mapping.

Kaz: from W3C and working for Web of Things as team contact. We have also started a new effort inside the working group for smart cities standardization and your help would be very important. Standardization of classes or schemas is also very important I hope you find time to integrate those concepts in your solution.

Thomas: we want to look into that in the future. Right now we use TMs more as a facilitator of our processes.

Kaz: I hope to see you again to understand which parts can be extracted from the platform to be standardized.

Thomas: too early to tell but it is definitely something to explore.

Flavia: New here, why did you use that approach to model the API and if you thought any issues about scalability or latency issues

Thomas: with this model we avoid having issues with scalability by design. We have a partial modelling approach, which is known to reduce these two parameters.

Flavia: You already mentioned, but do you want to align to well known ontologies?

Thomas: not yet.

Wilfried: Have you tried to use Vorto approach to handle TMs?

Thomas: not really.

Flavia: Which query language are you using to deal with the models.

Thomas: With models we don't search. With DT we can query with RQL.

Ege: When you create the TM, who is doing the changes?

Thomas: They are developers.

Rimaz: Is RQL good enough for your use cases?

Thomas: we didn't find any limitations. The query language is simple and it can also be integrated in the URL query fragment. We use also to do conditional updates.

Ege: you create TDs as future integration but in the end you don't use them, right?

Thomas: correct, our users are using Swagger because it is easier to digest. We don't have the need of Thing Description.

Ege: What are the policies? There are also w3c standards about it

Thomas: You can always go to the Eclipse Ditto documentation to learn more about it.

Cris: are using any of information from Thing Models to create UI elements for the users?

Thomas: not yet, but for LoRa actions we put actions in a queue and when then device will be online but we don't have any way to explain in the user. We would like to improve Ditto UI to handle interaction with devices generated via TMs.

Ege: any wish from the standards?

Thomas: historical API. We defined an action that gets a property name and you get the timeseries data.

## :ballot_box_with_check: Resolutions

None

## :exclamation: Action Items

None

## :envelope_with_arrow: Feedbacks

- Desired state of a device as a *special* property: Asked by two bosch colleagues and Thomas models it in a not standardized way. -> Would be a use case follow up.
- The TD/TM versioning part of the charter, they would probably have input. What is a breaking change for a TD/TM?
- Multiple levels of object nesting is very typical -> Doesn't render in EdiTDor
- Different view of TD depending of user permissions.
Binary file not shown.
10 changes: 10 additions & 0 deletions Meetups/Readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,16 @@ This readme contains the links to minutes, presentation files and the recordings

Note: Presentation files use the pattern `YEAR-MONTH-WoTCG-EVENTNAME-PRESENTERNAME.FILETYPE`.

## Meetup 19

- Name: Using WoT Thing Models as a basis to make to housing sector smart and energy-efficient
- Presenter(s): Thomas Jaeckle - beyonnex.io
- Date: 14 October 2024
- [Presenter Slides](./19/2024-05-WoTCG-Meetup19-TMs_in_Housing_Sector.pdf)
- Intro Slides: [Google Slides](https://docs.google.com/presentation/d/1E8CsW-45U9YBcEFFEUQ5u-K6n4j4j8nkqNRScQRjuUI/edit?usp=sharing) | [PDF](./19/2024-10-WoTCG-Meetup19-AguzziKorkan.pdf)
- [Video](https://youtu.be/dUb_oP2kCBQ)
- [Minutes](./19/2024-10-14-minutes.md)

## Meetup 18

- Name: Digital Twins in Monitoring Applications Using the Web of Things
Expand Down

0 comments on commit dcd77c0

Please sign in to comment.