diff --git a/.github/workflows/validation.yaml b/.github/workflows/validation.yaml index cc8c7efa..c2d557b4 100644 --- a/.github/workflows/validation.yaml +++ b/.github/workflows/validation.yaml @@ -10,29 +10,22 @@ jobs: steps: - name: Checkout wot-testing - uses: actions/checkout@v2 - - - name: Checkout thingweb-playground - uses: actions/checkout@v2 - with: - repository: thingweb/thingweb-playground - path: thingweb-playground + uses: actions/checkout@v4 - name: Setup Node.js - uses: actions/setup-node@v1 + uses: actions/setup-node@v4.1.0 with: - node-version: '15' - - - name: Use lerna - run: npm install -g lerna@6.6.2 - - - name: Bootstrap - working-directory: thingweb-playground - run: lerna bootstrap --no-ci + node-version: '20' + - name: Create empty folder + run: npm init -y + + - name: Install Playground CLI + run: npm i @thing-description-playground/cli + - name: Run validation script on all new matching files env: - VALIDATION_SCRIPT: thingweb-playground/packages/cli/index.js + VALIDATION_SCRIPT: node_modules/@thing-description-playground/cli/index.js PATTERN: "*.td.jsonld" run: | # Get the list of changed files diff --git a/data/input_2022/Architecture/Impls/hitachi-espidf.html b/data/input_2022/Architecture/Impls/hitachi-espidf.html index 9b84bc16..1acacc98 100644 --- a/data/input_2022/Architecture/Impls/hitachi-espidf.html +++ b/data/input_2022/Architecture/Impls/hitachi-espidf.html @@ -1,8 +1,8 @@
This is an example of a Thing implemented on a microcontroller. It can exporting the Thing's sensor reading via HTTP REST API, and advertise its own Thing Description using DNS-SD/mDNS.
-Node generator is command line tool to generate diff --git a/data/input_2022/Architecture/Impls/hitachi-nodered.html b/data/input_2022/Architecture/Impls/hitachi-nodered.html index 70d443a8..1da247de 100644 --- a/data/input_2022/Architecture/Impls/hitachi-nodered.html +++ b/data/input_2022/Architecture/Impls/hitachi-nodered.html @@ -1,5 +1,5 @@
This is an example of a Thing implemented in Node-RED. It can turn on and off a LED connected to Raspberry Pi's GPIOs diff --git a/data/input_2022/Architecture/Impls/hitachi-nrwotdisc.html b/data/input_2022/Architecture/Impls/hitachi-nrwotdisc.html index 35b65b98..488c332a 100644 --- a/data/input_2022/Architecture/Impls/hitachi-nrwotdisc.html +++ b/data/input_2022/Architecture/Impls/hitachi-nrwotdisc.html @@ -1,5 +1,5 @@
This plugin uses wot-discovery functionality and make it easy to import Things into Node-RED flow editor. diff --git a/data/input_2022/Architecture/Impls/intel-nodejs.html b/data/input_2022/Architecture/Impls/intel-nodejs.html index 349a9959..656d6d49 100644 --- a/data/input_2022/Architecture/Impls/intel-nodejs.html +++ b/data/input_2022/Architecture/Impls/intel-nodejs.html @@ -2,6 +2,7 @@
Two services based on a shared NodeJS codebase (not using node-wot): +
Usage: Exposer
+Contributing Member Organizations: Intel
Usage: Intermediary
+Contributing Member Organizations: Intel
Usage: Directory and Exposer
+Contributing Member Organizations: Intel
+ A hosted cloud service which creates a digital twin of a building to model + how it's being used and identify potential optimisations. +
++ Implements the Directory Service API from WoT Discovery and consumes web + things conforming to WoT Thing Description 1.1 and the HTTP Basic Profile + and HTTP SSE Profile from WoT Profiles. +
++ Usage: Cloud service +
++ Website: https://krellian.com/services/cloud/ +
++ Contributing Member Organizations: Invited Experts +
+This implementation leverages the already developed Philips Hue devices. The TDs for them are written by hand and show the use of WoT for brownfield devices. Philips Hue uses API Key in the URI, which is one of the features of the TD 1.1. diff --git a/data/input_2022/Architecture/Impls/python-flask-custom.html b/data/input_2022/Architecture/Impls/python-flask-custom.html index 02fa5bf3..33bcab69 100644 --- a/data/input_2022/Architecture/Impls/python-flask-custom.html +++ b/data/input_2022/Architecture/Impls/python-flask-custom.html @@ -1,5 +1,5 @@
Custom implementation pattern using the Flask library for creating an HTTP server that exposes a TD. This pattern is used in many devices that have been developed. diff --git a/data/input_2022/Architecture/Impls/tinyiot.html b/data/input_2022/Architecture/Impls/tinyiot.html index 58b888ee..19394103 100644 --- a/data/input_2022/Architecture/Impls/tinyiot.html +++ b/data/input_2022/Architecture/Impls/tinyiot.html @@ -1,5 +1,5 @@
This is an implementation of the W3C Web of Things (WoT) Thing Description Directory (TDD). This directory is designed to be lightweight and portable, enabling deployment on the edge. diff --git a/data/input_2022/Architecture/Impls/webthings-gateway.html b/data/input_2022/Architecture/Impls/webthings-gateway.html new file mode 100644 index 00000000..99566c2c --- /dev/null +++ b/data/input_2022/Architecture/Impls/webthings-gateway.html @@ -0,0 +1,24 @@ +
+ An open source Web of Things gateway for smart buildings, which bridges a + wide range of IoT protocols to the Web of Things. +
+Exposes a directory of Thing Descriptions conformant with TD 1.1 and a + REST API conformant with the HTTP Basic Profile and HTTP SSE Profile from + WoT Profiles. +
++ Usage: A web application which can be built from source, installed + as a docker image or flashed onto a Raspberry Pi single board computer. +
++ Public Repository: https://github.com/WebThingsIO/gateway/ +
++ Website: https://webthings.io/gateway/ +
++ Contributing Member Organizations: Invited Experts +
+WoT Hive is an implementation of a W3C Web of Things directory. This implementation is compliant with the standard specification but aims at providing enriched features thanks to the usage of other W3C standards related to Semantic Web technologies.
-Usage: Directoryt
+Usage: Directory
Public Repository: https://github.com/oeg-upm/wot-hive
Website: https://github.com/oeg-upm/wot-hive diff --git a/events/2024.11.Munich/Readme.md b/events/2024.11.Munich/Readme.md index d3ce1267..be5f5a7a 100644 --- a/events/2024.11.Munich/Readme.md +++ b/events/2024.11.Munich/Readme.md @@ -1,4 +1,4 @@ -# WoT Week at Munich (DRAFT) +# WoT Week at Munich The logistics can be found at https://www.w3.org/WoT/IG/wiki/Wiki_for_WoT_Week_2024_planning. In this folder, technical information is found, such as test plans for features. @@ -7,55 +7,81 @@ The main goal of this plugfest is to test the feasibility of existing and new fe As a secondary goal, these tests will be put into user scenarios that are understandable by visitors. Stakeholders from related SDOs are welcome to contribute. +## Provided Infrastructure + +Hardware: + +* 3 times 8-Port Switches +* 2 times 24-Port Switches +* Router and WiFi Access Point +* 2 times 20m Ethernet Cables + +Network: + +* If you are **not** in the Plugfest network, you need to join Siemens Guest network by asking for a Siemens employee to be your contact person. Please give the email of Siemens employee you know in the login page. If you need to make a video conference with someone, please use this option to not strain the plugfest network. +* All devices that join the Plugfest network can connect to the public internet as a client. +* All devices in the Plugfest network can act as a server in the local network. +* Use the VPN instructions provided at https://lists.w3.org/Archives/Group/group-wot-plugfest/ to become part of the VPN. +* To be configured: All devices that join the Plugfest network will be part of the VPN setup. + +## What you should bring with you + +* Extension cable and multiple socket outlet +* If needed, power travel adapter +* Ethernet cable +* If possible, WiFi extender or small WLAN router with WiFi to LAN option + + ## List of Things that will be available for the PlugFest -| Organization | Things/Devices/System/Tools | Physical | Remote | Virtual | Protocol Supported | Infrastructure requirements, e.g., open ports, power sockets, Wifi | Comments |Contact| -|--------------|-----------------------------------------------|----------|--------|---------|--------------------|--------------------------------------------------------------------|--------------------------------------------------------------|-------| -| Siemens | Sentron PAC (energy meter) | x | | | Modbus | LAN | Table 1 | tbc | -| Siemens | Industrial Edge | x | | | OPC UA, HTTP | LAN, connection to the Internet | Table 1 | tbc | -| Siemens | Microscope (Openflexure) | x | | | HTTP | LAN | Table 1 | @egekorkan | -| Siemens | Thread Border Router | x | | | KNX IoT | | Table 1 | @mkovatsc | -| Siemens | Temperature, Humidity and CO2 Sensor | x | | | KNX IoT | | Table 1 | @mkovatsc | -| Siemens | Radiator Valve Actuator | x | | | KNX IoT | | Table 1 | @mkovatsc | -| Siemens | Room Controller Unit | x | | | KNX IoT | | Table 1 | @mkovatsc | -| Siemens | Temperature, Humidity and CO2 Sensor (Dev. version) | x | | | HTTP | WiFi | Table NEED | Haoyu Ren, Darko Anicic, @mahdanoura| -| TU Munich | Robot arm | x | | | HTTP | 2m high, 4m width; LAN/Wifi (no Internet); should be protected | has own table | @FadySalama | -| TU Munich | Philips Hue Lamp and Switch | x | | | HTTP | LAN | Table 2 |@FadySalama | -| TU Munich | Diff. rem. devices (raspberry pi,etc) | | x | | HTTPS | Internet | Table 2 |@FadySalama | -| TU Munich | Simulated devices (robot arms) | | | x | HTTP but flexible | LAN/Wifi | Table 2 |@FadySalama | -| Luminem | Simulated devices (TBC) | x | | x | HTTP | Laptop to run them locally | | @lu-zero | -| Intel | Services (AI, Speech Recog.) | x | x | x | HTTP(s) | | Table 3; Some services can be run locally by someone else | @mmccool | -| ArmorSafe | Cache System 7000 | x | | | HTTP | | Table 3; Each time someone deposits cash, it emits an event | Michael Robins and Denis Ioan | -| Ignite Retail| IP Camera | x | | | | | Table 3 | Josh Thomas | -| Uni St. Gallen | YggDrasil | | | x | HTTP | LAN | Table 4; Working on participant's laptop | https://github.com/jeremylemee | -| CALA Munich | Oscilloscope (Picoscope brand) | x | | | HTTP | LAN | Table 5 | @VigneshVSV | -| CALA Munich | Ethernet Camera (IDS GmbH brand) | x | | | HTTP | LAN | Table 5 | @VigneshVSV | -| CALA Munich | Linear Stage (something like a stick can be mounted) | x | | | HTTP | LAN | Table 5 | @VigneshVSV | -| Hitachi | Small sensor device | x | | | HTTP, ZeroMQ | LAN | Table 6 | | -| Archeion | Some RPis with Sensors | x | | | HTTP | LAN | NEED Table | | -| Christian Paul | Small devices like e-paper display, sensors | x | | | HTTP | LAN | NEED Table | | -| Christian Paul | Godot (game engine) Things | | | x | WS, HTTP | LAN | NEED Table | @Jaller94 | -| ... | ... | | | | | ... | ... | tbc | +| Organization | Things/Devices/System/Tools | Physical | Remote | Virtual | Protocol Supported | Infrastructure requirements, e.g., open ports, power sockets, Wifi | Comments | Contact | TD Link | +|--------------|-----------------------------------------------|----------|--------|---------|--------------------|--------------------------------------------------------------------|--------------------------------------------------------------|-------|--| +| Siemens | Sentron PAC (energy meter) | x | | | Modbus | LAN | Table 1 | tbc | | +| Siemens | Industrial Edge | x | | | OPC UA, HTTP | LAN, connection to the Internet | Table 1 | Christian Glomb | | +| Siemens | Microscope (Openflexure) | x | | | HTTP | LAN | Table 1 | @egekorkan | https://github.com/w3c/wot-testing/blob/main/events/2024.11.Munich/TDs/openflexure/microscope.td.jsonld | +| Siemens | Thread Border Router | x | | | KNX IoT | | Table 1 | @mkovatsc | | +| Siemens | Temperature, Humidity and CO2 Sensor | x | | | KNX IoT | | Table 1 | @mkovatsc | | +| Siemens | Radiator Valve Actuator | x | | | KNX IoT | | Table 1 | @mkovatsc | | +| Siemens | Room Controller Unit | x | | | KNX IoT | | Table 1 | @mkovatsc | | +| Siemens | S7-1500 connected with conveyor belt and lamp | x | | | OPC UA | LAN | Table 1 | @sebastiankb | | +| Siemens | Temperature, Humidity and CO2 Sensor (Dev. version) | x | | | HTTP | WiFi | Table NEED | Haoyu Ren, Darko Anicic, @mahdanoura| | +| TU Munich | Robot arm | x | | | HTTP | 2m high, 4m width; LAN/Wifi (no Internet); should be protected | has own table | @FadySalama | | +| TU Munich | Philips Hue Lamp and Switch | x | | | HTTP | LAN | Table 2 | @FadySalama | | +| TU Munich | Diff. rem. devices (raspberry pi,etc) | | x | | HTTPS | Internet | Table 2 | @FadySalama | | +| TU Munich | Simulated devices (robot arms) | | | x | HTTP but flexible | LAN/Wifi | Table 2 | @FadySalama | | +| Luminem | Simulated devices (TBC) | x | | x | HTTP | Laptop to run them locally | No Table needed | @lu-zero | | +| Luminem | esp32c3 [demo thermometer](https://github.com/wot-rust/wot-esp-demo) | x | | x | HTTP | a [rust esp32c3 board](https://github.com/esp-rs/esp-rust-board) or compatible, Wifi | No Table needed | @lu-zero | | +| Intel | Services (AI, Speech Recog.) | x | x | x | HTTP(s) | | Table 3; Some services can be run locally by someone else | @mmccool | | +| ArmorSafe | Cache System 7000 | x | | | HTTP | | Table 3; Each time someone deposits cash, it emits an event | Michael Robins and Denis Ioan | | +| Ignite Retail| IP Camera | x | | | | | Table 3 | Josh Thomas | | +| Uni St. Gallen | YggDrasil | | | x | HTTP | LAN | Table 4; Working on participant's laptop | https://github.com/jeremylemee | | +| CALA Munich | Oscilloscope (Picoscope brand) | x | | | HTTP | LAN | Table 5 | @VigneshVSV | | +| CALA Munich | Ethernet Camera (IDS GmbH brand) | x | | | HTTP | LAN | Table 5 | @VigneshVSV | | +| CALA Munich | Linear Stage (something like a stick can be mounted) | x | | | HTTP | LAN | Table 5 | @VigneshVSV | | +| Hitachi | Small sensor device | x | | | HTTP, ZeroMQ | LAN | Table 6 | Kunihiko Toumura | | +| Archeion | Some RPis with Sensors | x | | | HTTP | LAN | Table 8 | Cristiano Aguzzi | | +| Christian Paul | Small devices like e-paper display, sensors | x | | | HTTP | LAN | Table 8 | @Jaller94 | | +| Christian Paul | Godot (game engine) Things | | | x | WS, HTTP | LAN | Table 8 | @Jaller94 | +| ... | ... | | | | | ... | ... | tbc | | ## List of Consumers that will be available for the PlugFest | Organization | Application | Physical | Remote | Virtual | Protocol Supported | Infrastructure requirements, e.g., open ports, power sockets, Wifi | Comments |Contact| |------------------|-----------------------------------------------|----------|--------|---------|--------------------|-------------------------------------------------------------------|---------------------------------------------------------------|-------| | IgniteRetail | Command Center | x | x | | | | Table 3; Can be deployed locally or cloud | Josh Thomas | -| TU Munich | Hololens | x | | | HTTP | Wifi | Table 2; no sec should be used; QR code to TD is needed | tbc | +| TU Munich | Hololens | x | | | HTTP | Wifi | Table 2; no sec should be used; QR code to TD is needed | Fady Salama | | UC Dublin | ASTRA/MAMS Platform | X | | | | | Table 4; Multi agent system platform (only software) | https://github.com/RemCollier | | Uni St. Gallen | YggDrasil | | | X | HTTP | ... | Table 5; | https://github.com/jeremylemee | -| Hitachi | tbc | x | | | tbc | | Table 6 | | +| Hitachi | Discoverer Application | x | | | tbc | | Table 6 | Kunihiko Toumura | | Eclipse Thingweb | Cross-platform app (using `dart_wot`) | x | | X | HTTP, CoAP, MQTT | WiFi | Table 4 | @JKRhb | -| Microsoft | OPC Publisher | x | | X | OPC UA | LAN or Wifi | Table 7 | @barnstee | -| OPC Foundation | UA Edge Translator | x | | X | OPC UA | LAN or Wifi | Table 7 | @barnstee | -| Erich Barnstedt | UA Cloud Publisher | x | | X | OPC UA | LAN or Wifi | Table 7 | @barnstee | -| CALA Munich | WoT GUI Application (using node-wot) | x | | | HTTP (possibly add others) | LAN | Table 5 | @VigneshVSV | -| Archeion | Asset Tracking Platform(using node-wot) | x | | | HTTP (possibly add others) | LAN | NEED Table | @relu91 | -| Christian Paul | WoT Wrench | x | | | HTTP (experimental WS and SSE) | LAN | Table 5 | @Jaller94 | -| Siemens | sayWoT! Gateway on a Siemens IoT2020 | x | | | HTTP north, many southbound | LAN | NEED Table | @Jaller94 | -| ... | ... | | | | | ... | ... | tbc | - +| Microsoft | OPC Publisher | x | | X | OPC UA | LAN or Wifi | Table 7 | @barnstee | +| OPC Foundation | UA Edge Translator | x | | X | OPC UA | LAN or Wifi | Table 7 | @barnstee | +| Erich Barnstedt | UA Cloud Publisher | x | | X | OPC UA | LAN or Wifi | Table 7 | @barnstee | +| CALA Munich | WoT GUI Application (using node-wot) | x | | | HTTP (possibly add others) | LAN | Table 5 | @VigneshVSV | +| Archeion | Asset Tracking Platform(using node-wot) | x | | | HTTP (possibly add others) | LAN | Table 8 | @relu91 | +| Christian Paul | WoT Wrench | x | | | HTTP (experimental WS and SSE) | LAN | Table 5 | @Jaller94 | +| Siemens | sayWoT! Gateway on a Siemens IoT2020 | x | | | HTTP north, many southbound | LAN | NEED Table | Mahda Noura | +| ... | ... | | | | | ... | ... | tbc | Notes: @@ -70,10 +96,12 @@ Notes: Different tests we do can be placed into context, e.g., smart cities. This way, they can relate better once we present WoT to the visitors. +Note: Please create PRs with your own folder at https://github.com/w3c/wot-testing/tree/main/events/2024.11.Munich/Scenarios + Some ideas: * Smart City - * maybe a topic that can be discussed with the NGSI-LD cooperation + * * WoT for Cloud Systems * maybe Azure IoT from Microsoft and Oracle Cloud (TBC) * Plug & Play in Industrial Scenarios @@ -85,6 +113,25 @@ Some ideas: * People counting with different sensors or cameras (Ignite Retail as Consumer, Thing?) * Energy Consumption Monitoring (Siemens Energy Meter, Siemens? Gateway, Ignite Retail Consumer) * Smart Home (McCool) + * Voice control of different devices like Hue and sayWoT! bridged devices (KNX IoT devices) + +* Technical Purposes + * Siemens KNX IoT Devices: Testing interoperability and good understanding of their TDs from Consumers. + * Hitachi Sensor: Testing ZeroMQ Binding + * OpenFlexure Microscope: Long running actions + * Siemens S7: OPC UA Binding demonstrations + * Siemens Sentron PAC: Modbus Binding + * Siemens TargetV device: MQTT Binding + * Siemens sayWoT! Servient: Testing binding interoperability (MQTT, Modbus, OPC UA, S7, CoAP and more) + * TUM Big Robot Arm: Showing it working with Hololens and digital twin inside the hololens + * TUM Hue Devices: Showing rules/mashups with other devices + * TUM Hololens: Checking visual interactions with devices (that use HTTP). Maybe there will be the option to build mashups and check them working. + * TUM Small Robot Arm and Conveyor Belt: Test different mashup scenarios + * Armorsafe: Checking interoperability with IgniteRetail Control center + * Luminem Devices: Checking if the software stack works on more constrained devices (ESP32, banana pi) + * Hitachi: Testing the discovery implementation + * Thingweb dart_wot: Identifying shortcomings and testing in real life with others + * McCool: AI Service integration ## WIP - TD Topics diff --git a/events/2024.11.Munich/Scenarios/README.md b/events/2024.11.Munich/Scenarios/README.md new file mode 100644 index 00000000..027774ce --- /dev/null +++ b/events/2024.11.Munich/Scenarios/README.md @@ -0,0 +1,4 @@ +# WoT Plugfest Scenarios + +In this folder, we collect the detailed description of scenarios to be tested in plugfest. They typically involve multiple devices from different manufacturers. +Please create one markdown document per scenario you are working on. diff --git a/events/2024.11.Munich/Scenarios/VoiceControl/Readme.md b/events/2024.11.Munich/Scenarios/VoiceControl/Readme.md new file mode 100644 index 00000000..a36956f9 --- /dev/null +++ b/events/2024.11.Munich/Scenarios/VoiceControl/Readme.md @@ -0,0 +1,25 @@ +# Voice Control Scenario + +## Involved Devices and Applications + +- Philips Hue +- KNX IoT Devices +- sayWoT! Gateway +- McCool 9000 (Consumer application that will talk to the other ones) + +## Mashup Explanation + +McCool 9000 gets voice input and understands the TDs, so that a mashup can be run that talks to all devices. +sayWoT! gateway will be needed to proxy KNX IoT to HTTP since the McCool 9000 can only use HTTP devices. + +## Results + +### Worked + +List of devices that can be communicated with: + +- Device 1 (TBD) + +### Not Worked + +TBC diff --git a/events/2024.11.Munich/TDs/openflexure/microscope.td.jsonld b/events/2024.11.Munich/TDs/openflexure/microscope.td.jsonld index 730df857..9f5c2f6f 100644 --- a/events/2024.11.Munich/TDs/openflexure/microscope.td.jsonld +++ b/events/2024.11.Munich/TDs/openflexure/microscope.td.jsonld @@ -1,14 +1,13 @@ { "@context": [ - "https://www.w3.org/2019/wot/td/v1", - "https://iot.mozilla.org/schemas/" + "https://www.w3.org/2019/wot/td/v1" ], "@type": [ "org.openflexure.microscope" ], "id": "OpenFlexureMicroscopeopenflexure:microscope:9cd38bce-9d27-4f00-8a2a-52d48b96a9fc:96da96db-bf8c-4d98-8fc0-34120158c7e3", "title": "OpenFlexure Microscope openflexure:microscope:9cd38bce-9d27-4f00-8a2a-52d48b96a9fc", - "description": "Test LabThing-based API for OpenFlexure Microscope", + "description": "LabThing-based API for OpenFlexure Microscope", "properties": { "org.openflexure.zipbuilder/get": { "title": "ZipListAPIView",