From 6da52a390e63b478549e59498980a9efd6366725 Mon Sep 17 00:00:00 2001 From: reluc Date: Fri, 22 Nov 2024 17:18:12 +0100 Subject: [PATCH] feat: Archeion contribution --- .../Scenarios/EquimentAsAService/README.md | 41 +++ events/2024.11.Munich/Scenarios/README.md | 1 + .../LightIntensitySensor-Archeion.json | 163 +++++++++++ .../MotionSensor-Archeion.json | 225 +++++++++++++++ .../ShockSwitch-Archeion.json | 225 +++++++++++++++ .../thingweb-nodewot/TapSwitch-Archeion.json | 225 +++++++++++++++ ...TemperatureAndHumiditySensor-Archeion.json | 270 ++++++++++++++++++ .../TemperatureSensor-Archeion.json | 163 +++++++++++ .../thingweb-nodewot/TiltSwitch-Archeion.json | 225 +++++++++++++++ 9 files changed, 1538 insertions(+) create mode 100644 events/2024.11.Munich/Scenarios/EquimentAsAService/README.md create mode 100644 events/2024.11.Munich/TDs/thingweb-nodewot/LightIntensitySensor-Archeion.json create mode 100644 events/2024.11.Munich/TDs/thingweb-nodewot/MotionSensor-Archeion.json create mode 100644 events/2024.11.Munich/TDs/thingweb-nodewot/ShockSwitch-Archeion.json create mode 100644 events/2024.11.Munich/TDs/thingweb-nodewot/TapSwitch-Archeion.json create mode 100644 events/2024.11.Munich/TDs/thingweb-nodewot/TemperatureAndHumiditySensor-Archeion.json create mode 100644 events/2024.11.Munich/TDs/thingweb-nodewot/TemperatureSensor-Archeion.json create mode 100644 events/2024.11.Munich/TDs/thingweb-nodewot/TiltSwitch-Archeion.json diff --git a/events/2024.11.Munich/Scenarios/EquimentAsAService/README.md b/events/2024.11.Munich/Scenarios/EquimentAsAService/README.md new file mode 100644 index 00000000..4ba0c777 --- /dev/null +++ b/events/2024.11.Munich/Scenarios/EquimentAsAService/README.md @@ -0,0 +1,41 @@ +# IoT Live Data for Digital Product Passport and EaaS + +## Involved Devices and Applications + +- Siemens TargetV device with temperature, humidity and CO2 sensor (MQTT) +- KNX IoT Device with Thermostat +- Philips Hue simulating the status of a thermostat +- sayWoT! Gateway +- Siemens Sentron PAC (Modbus) +- Siemens S7 (OPC UA) +- Industrial Information Hub (IIH) running on Industrial Edge +- etc. Possible all concrete devices that can report real world data and Equipments + +### Mashup Explanation + +In today’s interconnected business environment, organizations face complex challenges in managing supply chains and ensuring transparency. The EU’s circular economy roadmap and regulatory directives, such as the Digital Product Passport (DPP), emphasize standardized data access and traceability, particularly in sectors like batteries, textiles, and construction. By 2030, these requirements will expand across industries. + +At the 2024 Plugfest, Archeion will showcase a full-stack IoT solution for monitoring assets and tracking critical events on the blockchain, through three distinct scenarios: + +1. **Food Supply Chain**: Real-time tracking of temperature, humidity, and CO₂ levels in storage and transport to ensure food safety and compliance. +2. **Equipment as a Service (EaaS)**: Transparent monitoring of equipment usage and performance, enabling data-driven leasing models and sustainability reporting. +3. **Pharmaceutical Supply Chain**: Precise environmental monitoring and traceability for sensitive pharmaceutical products to meet stringent quality standards. + +Key features demonstrated: +- Integration of IoT sensors, edge computing, and Archeion’s hybrid cloud (Web3/Web2) platform. +- Event generation based on IoT sensor data, selectively stored on a shared blockchain for secure, auditable records. +- Web of Things for interoperability and scalability across diverse industries. + +This mashup highlights how Archeion’s solution bridges IoT and blockchain to address real-world challenges in transparency, traceability, and sustainability. + +## Results + +### Worked + +List of devices that can be communicated with: + +- Device 1 (TBD) + +### Not Worked + +TBC diff --git a/events/2024.11.Munich/Scenarios/README.md b/events/2024.11.Munich/Scenarios/README.md index a6a318ce..a1c2e814 100644 --- a/events/2024.11.Munich/Scenarios/README.md +++ b/events/2024.11.Munich/Scenarios/README.md @@ -40,3 +40,4 @@ Some ideas: * Hitachi: Testing the discovery implementation * Thingweb dart_wot: Identifying shortcomings and testing in real life with others * McCool: AI Service integration + * Archeion: Verify data collection for different Web Things (interoperability) diff --git a/events/2024.11.Munich/TDs/thingweb-nodewot/LightIntensitySensor-Archeion.json b/events/2024.11.Munich/TDs/thingweb-nodewot/LightIntensitySensor-Archeion.json new file mode 100644 index 00000000..7809371a --- /dev/null +++ b/events/2024.11.Munich/TDs/thingweb-nodewot/LightIntensitySensor-Archeion.json @@ -0,0 +1,163 @@ +{ + "@context": [ + "https://www.w3.org/2019/wot/td/v1", + "https://www.w3.org/2022/wot/td/v1.1", + { + "iot": "http://example.org/iot" + }, + { + "@language": "en" + } + ], + "@type": "Thing", + "title": "Light Intensity Sensor", + "securityDefinitions": { + "nosec": { + "scheme": "nosec" + } + }, + "security": [ + "nosec" + ], + "properties": { + "lightIntensity": { + "title": "Light Intensity", + "titles": { + "en": "Light Intensity", + "de": "Lichtintensit", + "it": "Intensit luminosa" + }, + "type": "number", + "description": "Current light intensity", + "descriptions": { + "en": "Current light intensity", + "de": "Aktuelle Lichtintensit", + "it": "Valore attuale dell'intensitá luminosa" + }, + "observable": true, + "readOnly": true, + "unit": "%", + "forms": [ + { + "href": "http://192.168.1.53:9004/light-intensity-sensor/properties/lightIntensity", + "contentType": "application/json", + "op": [ + "readproperty" + ], + "htv:methodName": "GET" + }, + { + "href": "http://192.168.1.53:9004/light-intensity-sensor/properties/lightIntensity/observable", + "contentType": "application/json", + "op": [ + "observeproperty", + "unobserveproperty" + ], + "subprotocol": "longpoll" + }, + { + "href": "http://192.168.1.53:9004/light-intensity-sensor/properties/lightIntensity", + "contentType": "application/cbor", + "op": [ + "readproperty" + ], + "htv:methodName": "GET" + }, + { + "href": "http://192.168.1.53:9004/light-intensity-sensor/properties/lightIntensity/observable", + "contentType": "application/cbor", + "op": [ + "observeproperty", + "unobserveproperty" + ], + "subprotocol": "longpoll" + }, + { + "href": "mqtt://localhost:1886/Light%20Intensity%20Sensor/properties/lightIntensity", + "contentType": "application/json", + "op": [ + "readproperty", + "observeproperty", + "unobserveproperty" + ] + } + ], + "writeOnly": false + } + }, + "events": { + "lightIntensityPeak": { + "title": "Light Intensity peak", + "titles": { + "en": "Light Intensity peak", + "de": "Lichtintensit spitze", + "it": "Picco di intensit luminosa" + }, + "description": "Light Intensity peak event", + "descriptions": { + "en": "Light Intensity peak event", + "de": "Lichtintensit spitzeereignis", + "it": "Evento di picco di intensit luminosa" + }, + "forms": [ + { + "href": "http://192.168.1.53:9004/light-intensity-sensor/events/lightIntensityPeak", + "contentType": "application/json", + "subprotocol": "longpoll", + "op": [ + "subscribeevent", + "unsubscribeevent" + ] + }, + { + "href": "http://192.168.1.53:9004/light-intensity-sensor/events/lightIntensityPeak", + "contentType": "application/cbor", + "subprotocol": "longpoll", + "op": [ + "subscribeevent", + "unsubscribeevent" + ] + }, + { + "href": "mqtt://localhost:1886/Light%20Intensity%20Sensor/events/lightIntensityPeak", + "contentType": "application/json", + "mqv:qos": "2", + "op": [ + "subscribeevent", + "unsubscribeevent" + ] + } + ] + } + }, + "id": "urn:uuid:4f7a21d9-37ac-4c5a-acb2-d41c28ac3169", + "titles": { + "en": "Light Intensity Sensor", + "de": "Lichtintensit tsensor", + "it": "Sensore di intensitá luminosa" + }, + "description": "Light Intensity Thing", + "descriptions": { + "en": "Light Intensity Thing", + "de": "Lichtintensit sensor Thing", + "it": "Sensore di intensitá luminosa" + }, + "forms": [ + { + "href": "http://192.168.1.53:9004/light-intensity-sensor/properties", + "contentType": "application/json", + "op": [ + "readallproperties", + "readmultipleproperties" + ] + }, + { + "href": "http://192.168.1.53:9004/light-intensity-sensor/properties", + "contentType": "application/cbor", + "op": [ + "readallproperties", + "readmultipleproperties" + ] + } + ] +} \ No newline at end of file diff --git a/events/2024.11.Munich/TDs/thingweb-nodewot/MotionSensor-Archeion.json b/events/2024.11.Munich/TDs/thingweb-nodewot/MotionSensor-Archeion.json new file mode 100644 index 00000000..ee035fd7 --- /dev/null +++ b/events/2024.11.Munich/TDs/thingweb-nodewot/MotionSensor-Archeion.json @@ -0,0 +1,225 @@ +{ + "@context": [ + "https://www.w3.org/2019/wot/td/v1", + "https://www.w3.org/2022/wot/td/v1.1", + { + "iot": "http://example.org/iot" + }, + { + "@language": "en" + } + ], + "@type": "Thing", + "title": "Motion Sensor", + "securityDefinitions": { + "nosec": { + "scheme": "nosec" + } + }, + "security": [ + "nosec" + ], + "properties": { + "count": { + "title": "count", + "titles": { + "en": "Count", + "de": "Zaehler", + "it": "Contatore" + }, + "type": "integer", + "description": "Motions counter", + "descriptions": { + "en": "Motions counter", + "de": "Motions zaehler", + "it": "Contatore dei movimenti" + }, + "observable": true, + "readOnly": true, + "forms": [ + { + "href": "http://localhost:9000/motion-sensor/properties/count", + "contentType": "application/json", + "op": [ + "readproperty" + ], + "htv:methodName": "GET" + }, + { + "href": "http://localhost:9000/motion-sensor/properties/count/observable", + "contentType": "application/json", + "op": [ + "observeproperty", + "unobserveproperty" + ], + "subprotocol": "longpoll" + }, + { + "href": "http://localhost:9000/motion-sensor/properties/count", + "contentType": "application/cbor", + "op": [ + "readproperty" + ], + "htv:methodName": "GET" + }, + { + "href": "http://localhost:9000/motion-sensor/properties/count/observable", + "contentType": "application/cbor", + "op": [ + "observeproperty", + "unobserveproperty" + ], + "subprotocol": "longpoll" + }, + { + "href": "mqtt://localhost:1883/Motion%20Sensor/properties/count", + "contentType": "application/json", + "op": [ + "readproperty", + "observeproperty", + "unobserveproperty" + ] + } + ], + "writeOnly": false + }, + "timestamps": { + "title": "timestamps", + "titles": { + "en": "Motion events timestamps", + "de": "Motion Ereignis Zeitstempel", + "it": "Timestamp degli eventi di movimento" + }, + "type": "array", + "description": "Array containing the timestamps of motion events", + "descriptions": { + "en": "Array containing the timestamps of motion events", + "de": "Array mit den Zeitstempeln der Bewegungsereignisse", + "it": "Array contenente i timestamp degli eventi di movimento" + }, + "observable": true, + "readOnly": true, + "forms": [ + { + "href": "http://localhost:9000/motion-sensor/properties/timestamps", + "contentType": "application/json", + "op": [ + "readproperty" + ], + "htv:methodName": "GET" + }, + { + "href": "http://localhost:9000/motion-sensor/properties/timestamps/observable", + "contentType": "application/json", + "op": [ + "observeproperty", + "unobserveproperty" + ], + "subprotocol": "longpoll" + }, + { + "href": "http://localhost:9000/motion-sensor/properties/timestamps", + "contentType": "application/cbor", + "op": [ + "readproperty" + ], + "htv:methodName": "GET" + }, + { + "href": "http://localhost:9000/motion-sensor/properties/timestamps/observable", + "contentType": "application/cbor", + "op": [ + "observeproperty", + "unobserveproperty" + ], + "subprotocol": "longpoll" + }, + { + "href": "mqtt://localhost:1883/Motion%20Sensor/properties/timestamps", + "contentType": "application/json", + "op": [ + "readproperty", + "observeproperty", + "unobserveproperty" + ] + } + ], + "writeOnly": false + } + }, + "events": { + "motionDetected": { + "title": "Motion Detected", + "titles": { + "en": "Motion Detected", + "de": "Motion registriert", + "it": "Registrato movimento" + }, + "description": "Motion event", + "descriptions": { + "en": "An event emitted when a motion is detected by the sensor.", + "de": "Ein Ereignis, das ausgelocht wird, wenn der Sensor eine Bewegung erkennt", + "it": "Evento emesso quando un movimento viene rilevata dal sensore." + }, + "forms": [ + { + "href": "http://localhost:9000/motion-sensor/events/motionDetected", + "contentType": "application/json", + "subprotocol": "longpoll", + "op": [ + "subscribeevent", + "unsubscribeevent" + ] + }, + { + "href": "http://localhost:9000/motion-sensor/events/motionDetected", + "contentType": "application/cbor", + "subprotocol": "longpoll", + "op": [ + "subscribeevent", + "unsubscribeevent" + ] + }, + { + "href": "mqtt://localhost:1883/Motion%20Sensor/events/motionDetected", + "contentType": "application/json", + "mqv:qos": "2", + "op": [ + "subscribeevent", + "unsubscribeevent" + ] + } + ] + } + }, + "id": "urn:uuid:664049d0-5fd0-44bd-9012-9eab0fc01797", + "titles": { + "en": "Motion Sensor", + "de": "Motion Sensor", + "it": "Sensore di movimento" + }, + "description": "Motion Sensor Thing", + "descriptions": { + "en": "Motion Sensor Thing", + "de": "Motion Sensor Thing", + "it": "Thing Sensore di movimento" + }, + "forms": [ + { + "href": "http://localhost:9000/motion-sensor/properties", + "contentType": "application/json", + "op": [ + "readallproperties", + "readmultipleproperties" + ] + }, + { + "href": "http://localhost:9000/motion-sensor/properties", + "contentType": "application/cbor", + "op": [ + "readallproperties", + "readmultipleproperties" + ] + } + ] +} \ No newline at end of file diff --git a/events/2024.11.Munich/TDs/thingweb-nodewot/ShockSwitch-Archeion.json b/events/2024.11.Munich/TDs/thingweb-nodewot/ShockSwitch-Archeion.json new file mode 100644 index 00000000..c1fba481 --- /dev/null +++ b/events/2024.11.Munich/TDs/thingweb-nodewot/ShockSwitch-Archeion.json @@ -0,0 +1,225 @@ +{ + "@context": [ + "https://www.w3.org/2019/wot/td/v1", + "https://www.w3.org/2022/wot/td/v1.1", + { + "iot": "http://example.org/iot" + }, + { + "@language": "en" + } + ], + "@type": "Thing", + "title": "Shock Switch", + "securityDefinitions": { + "nosec": { + "scheme": "nosec" + } + }, + "security": [ + "nosec" + ], + "properties": { + "count": { + "title": "count", + "titles": { + "en": "Count", + "de": "Zaehler", + "it": "Contatore" + }, + "type": "integer", + "description": "Shocks counter", + "descriptions": { + "en": "Shocks counter", + "de": "Schockszaehler", + "it": "Contatore di urti" + }, + "observable": true, + "readOnly": true, + "forms": [ + { + "href": "http://192.168.1.53:9000/shock-switch/properties/count", + "contentType": "application/json", + "op": [ + "readproperty" + ], + "htv:methodName": "GET" + }, + { + "href": "http://192.168.1.53:9000/shock-switch/properties/count/observable", + "contentType": "application/json", + "op": [ + "observeproperty", + "unobserveproperty" + ], + "subprotocol": "longpoll" + }, + { + "href": "http://192.168.1.53:9000/shock-switch/properties/count", + "contentType": "application/cbor", + "op": [ + "readproperty" + ], + "htv:methodName": "GET" + }, + { + "href": "http://192.168.1.53:9000/shock-switch/properties/count/observable", + "contentType": "application/cbor", + "op": [ + "observeproperty", + "unobserveproperty" + ], + "subprotocol": "longpoll" + }, + { + "href": "mqtt://192.168.1.53:1883/Shock%20Switch/properties/count", + "contentType": "application/json", + "op": [ + "readproperty", + "observeproperty", + "unobserveproperty" + ] + } + ], + "writeOnly": false + }, + "timestamps": { + "title": "timestamps", + "titles": { + "en": "Shock events timestamps", + "de": "Schocks Ereignis Zeitstempel", + "it": "Timestamp degli eventi di urto" + }, + "type": "array", + "description": "Array containing the timestamps of shock events", + "descriptions": { + "en": "Array containing the timestamps of shock events", + "de": "Array mit den Zeitstempeln der Schockereignisse", + "it": "Array contenente i timestamp degli eventi di urto" + }, + "observable": true, + "readOnly": true, + "forms": [ + { + "href": "http://192.168.1.53:9000/shock-switch/properties/timestamps", + "contentType": "application/json", + "op": [ + "readproperty" + ], + "htv:methodName": "GET" + }, + { + "href": "http://192.168.1.53:9000/shock-switch/properties/timestamps/observable", + "contentType": "application/json", + "op": [ + "observeproperty", + "unobserveproperty" + ], + "subprotocol": "longpoll" + }, + { + "href": "http://192.168.1.53:9000/shock-switch/properties/timestamps", + "contentType": "application/cbor", + "op": [ + "readproperty" + ], + "htv:methodName": "GET" + }, + { + "href": "http://192.168.1.53:9000/shock-switch/properties/timestamps/observable", + "contentType": "application/cbor", + "op": [ + "observeproperty", + "unobserveproperty" + ], + "subprotocol": "longpoll" + }, + { + "href": "mqtt://192.168.1.53:1883/Shock%20Switch/properties/timestamps", + "contentType": "application/json", + "op": [ + "readproperty", + "observeproperty", + "unobserveproperty" + ] + } + ], + "writeOnly": false + } + }, + "events": { + "shockDetected": { + "title": "Shock Detected", + "titles": { + "en": "Shock Detected", + "de": "Schock registriert", + "it": "Registrato urto" + }, + "description": "Shock event", + "descriptions": { + "en": "An event emitted when a shock is detected by the sensor.", + "de": "Ein Ereignis, das ausgelöst wird, wenn der Sensor eine Erschütterung erkennt", + "it": "Evento emesso quando un urto viene rilevato dal sensore." + }, + "forms": [ + { + "href": "http://192.168.1.53:9000/shock-switch/events/shockDetected", + "contentType": "application/json", + "subprotocol": "longpoll", + "op": [ + "subscribeevent", + "unsubscribeevent" + ] + }, + { + "href": "http://192.168.1.53:9000/shock-switch/events/shockDetected", + "contentType": "application/cbor", + "subprotocol": "longpoll", + "op": [ + "subscribeevent", + "unsubscribeevent" + ] + }, + { + "href": "mqtt://192.168.1.53:1883/Shock%20Switch/events/shockDetected", + "contentType": "application/json", + "mqv:qos": "2", + "op": [ + "subscribeevent", + "unsubscribeevent" + ] + } + ] + } + }, + "id": "urn:uuid:a83ee921-c6a5-4ac2-8796-96c1d0ea2d69", + "titles": { + "en": "Shock Switch", + "de": "Schockschalter", + "it": "Shock Switch" + }, + "description": "Shock Switch Thing", + "descriptions": { + "en": "Shock Switch Thing", + "de": "Schockschalterthing", + "it": "Thing Shock Switch" + }, + "forms": [ + { + "href": "http://192.168.1.53:9000/shock-switch/properties", + "contentType": "application/json", + "op": [ + "readallproperties", + "readmultipleproperties" + ] + }, + { + "href": "http://192.168.1.53:9000/shock-switch/properties", + "contentType": "application/cbor", + "op": [ + "readallproperties", + "readmultipleproperties" + ] + } + ] +} \ No newline at end of file diff --git a/events/2024.11.Munich/TDs/thingweb-nodewot/TapSwitch-Archeion.json b/events/2024.11.Munich/TDs/thingweb-nodewot/TapSwitch-Archeion.json new file mode 100644 index 00000000..a7fa02d0 --- /dev/null +++ b/events/2024.11.Munich/TDs/thingweb-nodewot/TapSwitch-Archeion.json @@ -0,0 +1,225 @@ +{ + "@context": [ + "https://www.w3.org/2019/wot/td/v1", + "https://www.w3.org/2022/wot/td/v1.1", + { + "iot": "http://example.org/iot" + }, + { + "@language": "en" + } + ], + "@type": "Thing", + "title": "Tap Switch", + "securityDefinitions": { + "nosec": { + "scheme": "nosec" + } + }, + "security": [ + "nosec" + ], + "properties": { + "count": { + "title": "count", + "titles": { + "en": "Count", + "de": "Zaehler", + "it": "Contatore" + }, + "type": "integer", + "description": "Taps counter", + "descriptions": { + "en": "Taps counter", + "de": "Tapp zaehler", + "it": "Contatore di tocchi" + }, + "observable": true, + "readOnly": true, + "forms": [ + { + "href": "http://localhost:9000/tap-switch/properties/count", + "contentType": "application/json", + "op": [ + "readproperty" + ], + "htv:methodName": "GET" + }, + { + "href": "http://localhost:9000/tap-switch/properties/count/observable", + "contentType": "application/json", + "op": [ + "observeproperty", + "unobserveproperty" + ], + "subprotocol": "longpoll" + }, + { + "href": "http://localhost:9000/tap-switch/properties/count", + "contentType": "application/cbor", + "op": [ + "readproperty" + ], + "htv:methodName": "GET" + }, + { + "href": "http://localhost:9000/tap-switch/properties/count/observable", + "contentType": "application/cbor", + "op": [ + "observeproperty", + "unobserveproperty" + ], + "subprotocol": "longpoll" + }, + { + "href": "mqtt://localhost:1883/Tap%20Switch/properties/count", + "contentType": "application/json", + "op": [ + "readproperty", + "observeproperty", + "unobserveproperty" + ] + } + ], + "writeOnly": false + }, + "timestamps": { + "title": "timestamps", + "titles": { + "en": "Tap events timestamps", + "de": "Tap Ereignis Zeitstempel", + "it": "Timestamp degli eventi di tocco" + }, + "type": "array", + "description": "Array containing the timestamps of tap events", + "descriptions": { + "en": "Array containing the timestamps of tap events", + "de": "Array mit den Zeitstempeln der Tapp-Ereignisse", + "it": "Array contenente i timestamp degli eventi di tocco" + }, + "observable": true, + "readOnly": true, + "forms": [ + { + "href": "http://localhost:9000/tap-switch/properties/timestamps", + "contentType": "application/json", + "op": [ + "readproperty" + ], + "htv:methodName": "GET" + }, + { + "href": "http://localhost:9000/tap-switch/properties/timestamps/observable", + "contentType": "application/json", + "op": [ + "observeproperty", + "unobserveproperty" + ], + "subprotocol": "longpoll" + }, + { + "href": "http://localhost:9000/tap-switch/properties/timestamps", + "contentType": "application/cbor", + "op": [ + "readproperty" + ], + "htv:methodName": "GET" + }, + { + "href": "http://localhost:9000/tap-switch/properties/timestamps/observable", + "contentType": "application/cbor", + "op": [ + "observeproperty", + "unobserveproperty" + ], + "subprotocol": "longpoll" + }, + { + "href": "mqtt://localhost:1883/Tap%20Switch/properties/timestamps", + "contentType": "application/json", + "op": [ + "readproperty", + "observeproperty", + "unobserveproperty" + ] + } + ], + "writeOnly": false + } + }, + "events": { + "tapDetected": { + "title": "Tap Detected", + "titles": { + "en": "Tap Detected", + "de": "Tapp registriert", + "it": "Tocco rilevato" + }, + "description": "Tap event", + "descriptions": { + "en": "An event emitted when a tap is detected by the sensor.", + "de": "Ein Ereignis, das ausgelöst wird, wenn der Sensor eine Erschütterung erkennt", + "it": "Evento emesso quando un tocco viene rilevato dal sensore." + }, + "forms": [ + { + "href": "http://localhost:9000/tap-switch/events/tapDetected", + "contentType": "application/json", + "subprotocol": "longpoll", + "op": [ + "subscribeevent", + "unsubscribeevent" + ] + }, + { + "href": "http://localhost:9000/tap-switch/events/tapDetected", + "contentType": "application/cbor", + "subprotocol": "longpoll", + "op": [ + "subscribeevent", + "unsubscribeevent" + ] + }, + { + "href": "mqtt://localhost:1883/Tap%20Switch/events/tapDetected", + "contentType": "application/json", + "mqv:qos": "2", + "op": [ + "subscribeevent", + "unsubscribeevent" + ] + } + ] + } + }, + "id": "urn:uuid:fd983f0b-a769-47e6-8290-af9799c7be9e", + "titles": { + "en": "Tap Switch", + "de": "Tapp schalter", + "it": "Tap Switch" + }, + "description": "Tap Switch Thing", + "descriptions": { + "en": "Tap Switch Thing", + "de": "Tapp schalter Thing", + "it": "Thing Tap Switch" + }, + "forms": [ + { + "href": "http://localhost:9000/tap-switch/properties", + "contentType": "application/json", + "op": [ + "readallproperties", + "readmultipleproperties" + ] + }, + { + "href": "http://localhost:9000/tap-switch/properties", + "contentType": "application/cbor", + "op": [ + "readallproperties", + "readmultipleproperties" + ] + } + ] +} \ No newline at end of file diff --git a/events/2024.11.Munich/TDs/thingweb-nodewot/TemperatureAndHumiditySensor-Archeion.json b/events/2024.11.Munich/TDs/thingweb-nodewot/TemperatureAndHumiditySensor-Archeion.json new file mode 100644 index 00000000..c8eb1a5f --- /dev/null +++ b/events/2024.11.Munich/TDs/thingweb-nodewot/TemperatureAndHumiditySensor-Archeion.json @@ -0,0 +1,270 @@ +{ + "@context": [ + "https://www.w3.org/2019/wot/td/v1", + "https://www.w3.org/2022/wot/td/v1.1", + { + "iot": "http://example.org/iot" + }, + { + "@language": "en" + } + ], + "@type": "Thing", + "title": "Temperature and Humidity Sensor", + "securityDefinitions": { + "nosec": { + "scheme": "nosec" + } + }, + "security": [ + "nosec" + ], + "properties": { + "temperature": { + "title": "Temperature", + "titles": { + "en": "Temperature", + "de": "Temperatur", + "it": "Temperatura" + }, + "type": "number", + "description": "Current temperature value", + "descriptions": { + "en": "Current temperature value", + "de": "Aktuelle Temperatur", + "it": "Valore attuale della temperatura" + }, + "observable": true, + "readOnly": true, + "unit": "°C", + "forms": [ + { + "href": "http://192.168.1.53:9002/temperature-and-humidity-sensor/properties/temperature", + "contentType": "application/json", + "op": [ + "readproperty" + ], + "htv:methodName": "GET" + }, + { + "href": "http://192.168.1.53:9002/temperature-and-humidity-sensor/properties/temperature/observable", + "contentType": "application/json", + "op": [ + "observeproperty", + "unobserveproperty" + ], + "subprotocol": "longpoll" + }, + { + "href": "http://192.168.1.53:9002/temperature-and-humidity-sensor/properties/temperature", + "contentType": "application/cbor", + "op": [ + "readproperty" + ], + "htv:methodName": "GET" + }, + { + "href": "http://192.168.1.53:9002/temperature-and-humidity-sensor/properties/temperature/observable", + "contentType": "application/cbor", + "op": [ + "observeproperty", + "unobserveproperty" + ], + "subprotocol": "longpoll" + }, + { + "href": "mqtt://localhost:1884/Temperature%20and%20Humidity%20Sensor/properties/temperature", + "contentType": "application/json", + "op": [ + "readproperty", + "observeproperty", + "unobserveproperty" + ] + } + ], + "writeOnly": false + }, + "humidity": { + "title": "Humidity", + "titles": { + "en": "Humidity", + "de": "Feuchtigkeit", + "it": "Umidità" + }, + "type": "number", + "description": "Current humidity value", + "descriptions": { + "en": "Current humidity value", + "de": "Aktuelle Feuchtigkeitswert", + "it": "Valore attuale dell'umidità" + }, + "observable": true, + "readOnly": true, + "unit": "%", + "forms": [ + { + "href": "http://192.168.1.53:9002/temperature-and-humidity-sensor/properties/humidity", + "contentType": "application/json", + "op": [ + "readproperty" + ], + "htv:methodName": "GET" + }, + { + "href": "http://192.168.1.53:9002/temperature-and-humidity-sensor/properties/humidity/observable", + "contentType": "application/json", + "op": [ + "observeproperty", + "unobserveproperty" + ], + "subprotocol": "longpoll" + }, + { + "href": "http://192.168.1.53:9002/temperature-and-humidity-sensor/properties/humidity", + "contentType": "application/cbor", + "op": [ + "readproperty" + ], + "htv:methodName": "GET" + }, + { + "href": "http://192.168.1.53:9002/temperature-and-humidity-sensor/properties/humidity/observable", + "contentType": "application/cbor", + "op": [ + "observeproperty", + "unobserveproperty" + ], + "subprotocol": "longpoll" + }, + { + "href": "mqtt://localhost:1884/Temperature%20and%20Humidity%20Sensor/properties/humidity", + "contentType": "application/json", + "op": [ + "readproperty", + "observeproperty", + "unobserveproperty" + ] + } + ], + "writeOnly": false + } + }, + "events": { + "temperaturePeak": { + "title": "Temperature peak", + "titles": { + "en": "Temperature peak", + "de": "Temperaturspitze", + "it": "Picco di temperatura" + }, + "description": "Temperature peak event", + "descriptions": { + "en": "Temperature peak event", + "de": "Temperaturspitzeereignis", + "it": "Evento di picco di temperatura" + }, + "forms": [ + { + "href": "http://192.168.1.53:9002/temperature-and-humidity-sensor/events/temperaturePeak", + "contentType": "application/json", + "subprotocol": "longpoll", + "op": [ + "subscribeevent", + "unsubscribeevent" + ] + }, + { + "href": "http://192.168.1.53:9002/temperature-and-humidity-sensor/events/temperaturePeak", + "contentType": "application/cbor", + "subprotocol": "longpoll", + "op": [ + "subscribeevent", + "unsubscribeevent" + ] + }, + { + "href": "mqtt://localhost:1884/Temperature%20and%20Humidity%20Sensor/events/temperaturePeak", + "contentType": "application/json", + "mqv:qos": "2", + "op": [ + "subscribeevent", + "unsubscribeevent" + ] + } + ] + }, + "humidityPeak": { + "title": "Humidity peak", + "titles": { + "en": "Humidity peak", + "de": "Feuchtigkeitsspitze", + "it": "Picco di umidità" + }, + "description": "Humidity peak event", + "descriptions": { + "en": "Humidity peak event", + "de": "Feuchtigkeitsspitzeereignis", + "it": "Evento di picco di umidità" + }, + "forms": [ + { + "href": "http://192.168.1.53:9002/temperature-and-humidity-sensor/events/humidityPeak", + "contentType": "application/json", + "subprotocol": "longpoll", + "op": [ + "subscribeevent", + "unsubscribeevent" + ] + }, + { + "href": "http://192.168.1.53:9002/temperature-and-humidity-sensor/events/humidityPeak", + "contentType": "application/cbor", + "subprotocol": "longpoll", + "op": [ + "subscribeevent", + "unsubscribeevent" + ] + }, + { + "href": "mqtt://localhost:1884/Temperature%20and%20Humidity%20Sensor/events/humidityPeak", + "contentType": "application/json", + "mqv:qos": "2", + "op": [ + "subscribeevent", + "unsubscribeevent" + ] + } + ] + } + }, + "id": "urn:uuid:adb58b78-6378-4bd0-9d5f-557548f1bc63", + "titles": { + "en": "Temperature and Humidity Sensor", + "de": "Temperatur- und Feuchtigkeitssensor", + "it": "Sensore di temperatura e umidità" + }, + "description": "Temperature and Humidity Thing", + "descriptions": { + "en": "Temperature and Humidity Thing", + "de": "Temperatur- und Feuchtigkeitsthing", + "it": "Sensore di temperatura e umidità" + }, + "forms": [ + { + "href": "http://192.168.1.53:9002/temperature-and-humidity-sensor/properties", + "contentType": "application/json", + "op": [ + "readallproperties", + "readmultipleproperties" + ] + }, + { + "href": "http://192.168.1.53:9002/temperature-and-humidity-sensor/properties", + "contentType": "application/cbor", + "op": [ + "readallproperties", + "readmultipleproperties" + ] + } + ] +} \ No newline at end of file diff --git a/events/2024.11.Munich/TDs/thingweb-nodewot/TemperatureSensor-Archeion.json b/events/2024.11.Munich/TDs/thingweb-nodewot/TemperatureSensor-Archeion.json new file mode 100644 index 00000000..b20f0f02 --- /dev/null +++ b/events/2024.11.Munich/TDs/thingweb-nodewot/TemperatureSensor-Archeion.json @@ -0,0 +1,163 @@ +{ + "@context": [ + "https://www.w3.org/2019/wot/td/v1", + "https://www.w3.org/2022/wot/td/v1.1", + { + "iot": "http://example.org/iot" + }, + { + "@language": "en" + } + ], + "@type": "Thing", + "title": "Temperature Sensor", + "securityDefinitions": { + "nosec": { + "scheme": "nosec" + } + }, + "security": [ + "nosec" + ], + "properties": { + "temperature": { + "title": "Temperature", + "titles": { + "en": "Temperature", + "de": "Temperatur", + "it": "Temperatura" + }, + "type": "number", + "description": "Current temperature value", + "descriptions": { + "en": "Current temperature value", + "de": "Aktuelle Temperatur", + "it": "Valore attuale della temperatura" + }, + "observable": true, + "readOnly": true, + "unit": "°C", + "forms": [ + { + "href": "http://192.168.1.53:9003/temperature-sensor/properties/temperature", + "contentType": "application/json", + "op": [ + "readproperty" + ], + "htv:methodName": "GET" + }, + { + "href": "http://192.168.1.53:9003/temperature-sensor/properties/temperature/observable", + "contentType": "application/json", + "op": [ + "observeproperty", + "unobserveproperty" + ], + "subprotocol": "longpoll" + }, + { + "href": "http://192.168.1.53:9003/temperature-sensor/properties/temperature", + "contentType": "application/cbor", + "op": [ + "readproperty" + ], + "htv:methodName": "GET" + }, + { + "href": "http://192.168.1.53:9003/temperature-sensor/properties/temperature/observable", + "contentType": "application/cbor", + "op": [ + "observeproperty", + "unobserveproperty" + ], + "subprotocol": "longpoll" + }, + { + "href": "mqtt://localhost:1885/Temperature%20Sensor/properties/temperature", + "contentType": "application/json", + "op": [ + "readproperty", + "observeproperty", + "unobserveproperty" + ] + } + ], + "writeOnly": false + } + }, + "events": { + "temperaturePeak": { + "title": "Temperature peak", + "titles": { + "en": "Temperature peak", + "de": "Temperaturspitze", + "it": "Picco di temperatura" + }, + "description": "Temperature peak event", + "descriptions": { + "en": "Temperature peak event", + "de": "Temperaturspitzeereignis", + "it": "Evento di picco di temperatura" + }, + "forms": [ + { + "href": "http://192.168.1.53:9003/temperature-sensor/events/temperaturePeak", + "contentType": "application/json", + "subprotocol": "longpoll", + "op": [ + "subscribeevent", + "unsubscribeevent" + ] + }, + { + "href": "http://192.168.1.53:9003/temperature-sensor/events/temperaturePeak", + "contentType": "application/cbor", + "subprotocol": "longpoll", + "op": [ + "subscribeevent", + "unsubscribeevent" + ] + }, + { + "href": "mqtt://localhost:1885/Temperature%20Sensor/events/temperaturePeak", + "contentType": "application/json", + "mqv:qos": "2", + "op": [ + "subscribeevent", + "unsubscribeevent" + ] + } + ] + } + }, + "id": "urn:uuid:96d761bc-f644-4ce6-a8c7-e94f7d5b611d", + "titles": { + "en": "Temperature Sensor", + "de": "Temperatur Sensor", + "it": "Sensore di temperatura" + }, + "description": "Temperature Thing", + "descriptions": { + "en": "Temperature Thing", + "de": "Temperatur Thing", + "it": "Sensore di temperatura" + }, + "forms": [ + { + "href": "http://192.168.1.53:9003/temperature-sensor/properties", + "contentType": "application/json", + "op": [ + "readallproperties", + "readmultipleproperties" + ] + }, + { + "href": "http://192.168.1.53:9003/temperature-sensor/properties", + "contentType": "application/cbor", + "op": [ + "readallproperties", + "readmultipleproperties" + ] + } + ] +} \ No newline at end of file diff --git a/events/2024.11.Munich/TDs/thingweb-nodewot/TiltSwitch-Archeion.json b/events/2024.11.Munich/TDs/thingweb-nodewot/TiltSwitch-Archeion.json new file mode 100644 index 00000000..299e8d84 --- /dev/null +++ b/events/2024.11.Munich/TDs/thingweb-nodewot/TiltSwitch-Archeion.json @@ -0,0 +1,225 @@ +{ + "@context": [ + "https://www.w3.org/2019/wot/td/v1", + "https://www.w3.org/2022/wot/td/v1.1", + { + "iot": "http://example.org/iot" + }, + { + "@language": "en" + } + ], + "@type": "Thing", + "title": "Tilt Switch", + "securityDefinitions": { + "nosec": { + "scheme": "nosec" + } + }, + "security": [ + "nosec" + ], + "properties": { + "count": { + "title": "count", + "titles": { + "en": "Count", + "de": "Zaehler", + "it": "Contatore" + }, + "type": "integer", + "description": "Tilts counter", + "descriptions": { + "en": "Tilts counter", + "de": "Tilts zaehler", + "it": "Contatore di urti" + }, + "observable": true, + "readOnly": true, + "forms": [ + { + "href": "http://192.168.1.53:9000/tilt-switch/properties/count", + "contentType": "application/json", + "op": [ + "readproperty" + ], + "htv:methodName": "GET" + }, + { + "href": "http://192.168.1.53:9000/tilt-switch/properties/count/observable", + "contentType": "application/json", + "op": [ + "observeproperty", + "unobserveproperty" + ], + "subprotocol": "longpoll" + }, + { + "href": "http://192.168.1.53:9000/tilt-switch/properties/count", + "contentType": "application/cbor", + "op": [ + "readproperty" + ], + "htv:methodName": "GET" + }, + { + "href": "http://192.168.1.53:9000/tilt-switch/properties/count/observable", + "contentType": "application/cbor", + "op": [ + "observeproperty", + "unobserveproperty" + ], + "subprotocol": "longpoll" + }, + { + "href": "mqtt://192.168.1.53:1883/Tilt%20Switch/properties/count", + "contentType": "application/json", + "op": [ + "readproperty", + "observeproperty", + "unobserveproperty" + ] + } + ], + "writeOnly": false + }, + "timestamps": { + "title": "timestamps", + "titles": { + "en": "Tilt events timestamps", + "de": "Tilt Ereignis Zeitstempel", + "it": "Timestamp degli eventi di inclinazione" + }, + "type": "array", + "description": "Array containing the timestamps of tilt events", + "descriptions": { + "en": "Array containing the timestamps of tilt events", + "de": "Array mit den Zeitstempeln der Neigungsereignisse", + "it": "Array contenente i timestamp degli eventi di inclinazione" + }, + "observable": true, + "readOnly": true, + "forms": [ + { + "href": "http://192.168.1.53:9000/tilt-switch/properties/timestamps", + "contentType": "application/json", + "op": [ + "readproperty" + ], + "htv:methodName": "GET" + }, + { + "href": "http://192.168.1.53:9000/tilt-switch/properties/timestamps/observable", + "contentType": "application/json", + "op": [ + "observeproperty", + "unobserveproperty" + ], + "subprotocol": "longpoll" + }, + { + "href": "http://192.168.1.53:9000/tilt-switch/properties/timestamps", + "contentType": "application/cbor", + "op": [ + "readproperty" + ], + "htv:methodName": "GET" + }, + { + "href": "http://192.168.1.53:9000/tilt-switch/properties/timestamps/observable", + "contentType": "application/cbor", + "op": [ + "observeproperty", + "unobserveproperty" + ], + "subprotocol": "longpoll" + }, + { + "href": "mqtt://192.168.1.53:1883/Tilt%20Switch/properties/timestamps", + "contentType": "application/json", + "op": [ + "readproperty", + "observeproperty", + "unobserveproperty" + ] + } + ], + "writeOnly": false + } + }, + "events": { + "tiltDetected": { + "title": "Tilt Detected", + "titles": { + "en": "Tilt Detected", + "de": "Tilt registriert", + "it": "Registrata inclinazione" + }, + "description": "Tilt event", + "descriptions": { + "en": "An event emitted when a tilt is detected by the sensor.", + "de": "Ein Ereignis, das ausgelöst wird, wenn der Sensor eine Erschütterung erkennt", + "it": "Evento emesso quando un'inclinazione viene rilevata dal sensore." + }, + "forms": [ + { + "href": "http://192.168.1.53:9000/tilt-switch/events/tiltDetected", + "contentType": "application/json", + "subprotocol": "longpoll", + "op": [ + "subscribeevent", + "unsubscribeevent" + ] + }, + { + "href": "http://192.168.1.53:9000/tilt-switch/events/tiltDetected", + "contentType": "application/cbor", + "subprotocol": "longpoll", + "op": [ + "subscribeevent", + "unsubscribeevent" + ] + }, + { + "href": "mqtt://192.168.1.53:1883/Tilt%20Switch/events/tiltDetected", + "contentType": "application/json", + "mqv:qos": "2", + "op": [ + "subscribeevent", + "unsubscribeevent" + ] + } + ] + } + }, + "id": "urn:uuid:c870d53a-9f2a-48b8-958a-94f7abddbe9d", + "titles": { + "en": "Tilt Switch", + "de": "Tilt schalter", + "it": "Tilt Switch" + }, + "description": "Tilt Switch Thing", + "descriptions": { + "en": "Tilt Switch Thing", + "de": "Tilt schalter Thing", + "it": "Thing Tilt Switch" + }, + "forms": [ + { + "href": "http://192.168.1.53:9000/tilt-switch/properties", + "contentType": "application/json", + "op": [ + "readallproperties", + "readmultipleproperties" + ] + }, + { + "href": "http://192.168.1.53:9000/tilt-switch/properties", + "contentType": "application/cbor", + "op": [ + "readallproperties", + "readmultipleproperties" + ] + } + ] +} \ No newline at end of file