diff --git a/events/2024.11.Munich/TDs/Flask-manual/ScrollPhat-TUM.td.jsonld b/events/2024.11.Munich/TDs/Flask-manual/ScrollPhat-TUM.td.jsonld new file mode 100644 index 00000000..61cade9f --- /dev/null +++ b/events/2024.11.Munich/TDs/Flask-manual/ScrollPhat-TUM.td.jsonld @@ -0,0 +1,358 @@ +{ + "@context": [ + "https://www.w3.org/2019/wot/td/v1", + { + "@language": "en" + } + ], + "actions": { + "clear": { + "description": "clears all pixels.", + "forms": [ + { + "contentType": "application/json", + "href": "https://remotelab.esi.cit.tum.de:8081/ScrollPHAT/actions/clear", + "op": "invokeaction" + } + ], + "idempotent": true, + "safe": false, + "title": "Clear the entire screen." + }, + "clearRect": { + "description": "Clear a specified rectangular area of the screen.", + "forms": [ + { + "contentType": "application/json", + "href": "https://remotelab.esi.cit.tum.de:8081/ScrollPHAT/actions/clearRect", + "op": "invokeaction" + } + ], + "idempotent": true, + "input": { + "properties": { + "height": { + "default": 7, + "description": "Height of the area. 7 by default", + "maximum": 7, + "minimum": 0, + "type": "integer" + }, + "width": { + "default": 17, + "description": "Width of the area. 17 by default", + "maximum": 17, + "minimum": 0, + "type": "integer" + }, + "x": { + "default": 0, + "description": "Offset x - distance of the area from the left of the screen. 0 by default", + "maximum": 17, + "minimum": 0, + "type": "integer" + }, + "y": { + "default": 0, + "description": "Offset y - distance of the area from the left of the screen. 0 by default", + "maximum": 7, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "x", + "y" + ], + "type": "object" + }, + "safe": false, + "title": "Clear Screen Area" + }, + "clock": { + "description": "shows current time on screen for 10 seconds", + "forms": [ + { + "contentType": "application/json", + "href": "https://remotelab.esi.cit.tum.de:8081/ScrollPHAT/actions/clock", + "op": "invokeaction" + } + ], + "title": "Show Time" + }, + "fill": { + "description": "Fill an area of the display.", + "forms": [ + { + "contentType": "application/json", + "href": "https://remotelab.esi.cit.tum.de:8081/ScrollPHAT/actions/fill", + "op": "invokeaction" + } + ], + "idempotent": true, + "input": { + "properties": { + "brightness": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "height": { + "default": 7, + "description": "Height of the area. 7 by default", + "maximum": 7, + "minimum": 0, + "type": "integer" + }, + "width": { + "default": 17, + "description": "Width of the area. 17 by default", + "maximum": 17, + "minimum": 0, + "type": "integer" + }, + "x": { + "default": 0, + "description": "Offset x - distance of the area from the left of the screen. 0 by default", + "maximum": 17, + "minimum": 0, + "type": "integer" + }, + "y": { + "default": 0, + "description": "Offset y - distance of the area from the left of the screen. 0 by default", + "maximum": 7, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "brightness" + ], + "type": "object" + }, + "safe": false, + "title": "Fill the Screen" + }, + "scroll": { + "description": "Scroll pHAT HD displays an 17x7 pixel window into the bufer, which starts at the left offset and wraps around. The x and y values are added to the internal scroll offset.", + "forms": [ + { + "contentType": "application/json", + "href": "https://remotelab.esi.cit.tum.de:8081/ScrollPHAT/actions/scroll", + "op": "invokeaction" + } + ], + "input": { + "properties": { + "x": { + "default": 1, + "description": "Amount to scroll on x-axis. (default 1)", + "type": "integer" + }, + "y": { + "default": 0, + "description": "Amount to scroll on y-axis. (default 0)", + "type": "integer" + } + }, + "type": "object" + }, + "title": "Shift Image" + }, + "sendImage": { + "description": "Takes a bmp image with size 17-7 pixels with bpp value of 8 as input, and displays it on the screen.", + "forms": [ + { + "contentType": "image/bmp", + "description": "The payload is multipart/form-data which should be indicated in curl command with '--form' flag as in: curl --location --request POST 'http://:8080/actions/sendImage' --form 'example.bmp=@'/example.bmp''. form entry name and filename should match", + "href": "https://remotelab.esi.cit.tum.de:8081/ScrollPHAT/actions/sendImage", + "op": "invokeaction" + } + ], + "idempotent": true, + "input": {}, + "safe": false, + "title": "Upload Image" + }, + "setPixel": { + "description": "Light a specific single pixel with a given brightness. x and y are 5 by default.", + "forms": [ + { + "contentType": "application/json", + "href": "https://remotelab.esi.cit.tum.de:8081/ScrollPHAT/actions/setPixel", + "op": "invokeaction" + } + ], + "idempotent": true, + "input": { + "properties": { + "brightness": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "x": { + "default": 5, + "maximum": 16, + "minimum": 0, + "type": "integer" + }, + "y": { + "default": 5, + "maximum": 6, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "brightness" + ], + "type": "object" + }, + "safe": false, + "title": "Turn on Pixel" + }, + "showPulse": { + "description": "shows a pulse graph on screen for 10 seconds", + "forms": [ + { + "contentType": "application/json", + "href": "https://remotelab.esi.cit.tum.de:8081/ScrollPHAT/actions/showPulse", + "op": "invokeaction" + } + ], + "title": "Display Pulse" + }, + "writeChar": { + "description": "Write a single char to the screen. Returns the x and y coordinates of the bottom left-most corner of the drawn character.Shows the char for 5 secs", + "forms": [ + { + "contentType": "application/json", + "href": "https://remotelab.esi.cit.tum.de:8081/ScrollPHAT/actions/writeChar", + "op": "invokeaction" + } + ], + "idempotent": true, + "input": { + "properties": { + "brightness": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "char": { + "description": "Char to display- either an integer ordinal or a single letter", + "maxLength": 1, + "minLength": 1, + "type": "string" + }, + "o_x": { + "default": 5, + "description": "Offset x - distance of the string from the left of the screen. By default its value is 5", + "maximum": 17, + "minimum": 0, + "type": "integer" + }, + "o_y": { + "default": 0, + "description": "Offset x - distance of the string from the left of the screen. By default its value is 0", + "maximum": 7, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "char", + "brightness" + ], + "type": "object" + }, + "safe": false, + "title": "Display Character" + }, + "writeString": { + "description": "Write a string to the screen. Calls draw_char for each character.", + "forms": [ + { + "contentType": "application/json", + "href": "https://remotelab.esi.cit.tum.de:8081/ScrollPHAT/actions/writeString", + "op": "invokeaction" + } + ], + "idempotent": true, + "input": { + "properties": { + "brightness": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "string": { + "description": "The string to display.", + "maxLength": 50, + "type": "string" + }, + "time": { + "default": 5, + "description": "duration the string keep scrolling, it is 5 seconds by default. Adjust the duration according to the lenght of your string.", + "maximum": 30, + "minimum": 3, + "type": "integer" + }, + "x": { + "description": "Offset x - distance of the string from the left of the screen", + "maximum": 17, + "minimum": 0, + "type": "integer" + }, + "y": { + "description": "Offset x - distance of the string from the left of the screen", + "maximum": 7, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "string", + "x", + "y", + "brightness" + ], + "type": "object" + }, + "safe": false, + "title": "Display String" + } + }, + "description": "A scroll-phat-hd that can be remotely controlled.", + "id": "de:tum:ei:esi:phat", + "properties": { + "displaySize": { + "description": "Get the size/shape of the display. Returns a tuple containing the width and height of the display", + "forms": [ + { + "contentType": "application/json", + "href": "https://remotelab.esi.cit.tum.de:8081/ScrollPHAT/properties/displaySize", + "op": [ + "readproperty" + ] + } + ], + "items": { + "type": "integer" + }, + "readOnly": true, + "title": "The Display Size", + "type": "array" + } + }, + "security": "basic_sc", + "securityDefinitions": { + "basic_sc": { + "in": "header", + "scheme": "basic" + } + }, + "title": "ScrollPhat HD" +} \ No newline at end of file diff --git a/events/2024.11.Munich/TDs/Flask-manual/Uarm-TUM.td.json b/events/2024.11.Munich/TDs/Flask-manual/Uarm-TUM.td.jsonld similarity index 100% rename from events/2024.11.Munich/TDs/Flask-manual/Uarm-TUM.td.json rename to events/2024.11.Munich/TDs/Flask-manual/Uarm-TUM.td.jsonld diff --git a/events/2024.11.Munich/TDs/Flask-manual/ur10-TUM.td.json b/events/2024.11.Munich/TDs/Flask-manual/ur10-TUM.td.jsonld similarity index 100% rename from events/2024.11.Munich/TDs/Flask-manual/ur10-TUM.td.json rename to events/2024.11.Munich/TDs/Flask-manual/ur10-TUM.td.jsonld diff --git a/events/2024.11.Munich/TDs/Philips-Hue/Lamp-TUM.td.json b/events/2024.11.Munich/TDs/Philips-Hue/Color-Lamp-onsite-TUM.td.jsonld similarity index 100% rename from events/2024.11.Munich/TDs/Philips-Hue/Lamp-TUM.td.json rename to events/2024.11.Munich/TDs/Philips-Hue/Color-Lamp-onsite-TUM.td.jsonld diff --git a/events/2024.11.Munich/TDs/Philips-Hue/Color-Lamp-remote-TUM.td.jsonld b/events/2024.11.Munich/TDs/Philips-Hue/Color-Lamp-remote-TUM.td.jsonld new file mode 100644 index 00000000..3d1125e1 --- /dev/null +++ b/events/2024.11.Munich/TDs/Philips-Hue/Color-Lamp-remote-TUM.td.jsonld @@ -0,0 +1,382 @@ +{ + "title": "Hue Color Lamp 1", + "id": "urn:dev:ops:32473-HueLight-1", + "description": "This is a Philips Hue Color Light Bulb that can be controlled remotely. This is on the left of the desk 1", + "@context": [ + "https://www.w3.org/2019/wot/td/v1", + { + "@language": "en" + } + ], + "securityDefinitions": { + "basic_sc": { + "scheme": "basic", + "in": "header" + } + }, + "security": [ + "basic_sc" + ], + "base": "https://remotelab.esi.cit.tum.de:8081/LabLocal/api/17AvYQeLM2T8Z3r0e3BiEvb9Qdwt36yU2BudTxrn/lights/1/", + "properties": { + "lightInformation": { + "title": "State and Attributes Of Light", + "description": "Gets the attributes and state of a given light. There are more attributes that are not listed here and are not of importance.", + "type": "object", + "properties": { + "state": { + "title": "Light State", + "description": "Details the state of the light, see the state table below for more details.", + "readOnly": true, + "type": "object", + "properties": { + "on": { + "description": "On/Off state of the light. On=true, Off=false", + "type": "boolean" + }, + "alert": { + "description": "The alert effect, which is a temporary change to the bulb’s state.'l' of lselect stands for loop.", + "type": "string", + "enum": [ + "none", + "select", + "lselect" + ] + }, + "hue": { + "description": "The hue value to set light to.The hue value is a wrapping value between 0 and 65535. Both 0 and 65535 are red, 25500 is green and 46920 is blue.", + "type": "integer", + "minimum": 0, + "maximum": 65535 + }, + "bri": { + "description": "brightness level", + "type": "integer", + "minimum": 0, + "maximum": 254 + }, + "sat": { + "description": "Saturation of the light. 254 is the most saturated (colored) and 0 is the least saturated (white).", + "type": "integer", + "minimum": 0, + "maximum": 254 + }, + "xy": { + "type": "array", + "description": "The x and y coordinates of a color in CIE color space.The first entry is the x coordinate and the second entry is the y coordinate. Both x and y must be between 0 and 1. If the specified coordinates are not in the CIE color space, the closest color to the coordinates will be chosen.", + "items": { + "type": "number", + "minimum": -1, + "maximum": 1 + }, + "maxItems": 2, + "minItems": 2 + }, + "ct": { + "description": "The Mired color temperature of the light. 2012 connected lights are capable of 153 (6500K) to 500 (2000K).", + "type": "integer", + "minimum": 153, + "maximum": 500 + }, + "effect": { + "description": "The dynamic effect of the light. Currently “none” and “colorloop” are supported. Other values will generate an error of type 7.Setting the effect to colorloop will cycle through all hues using the current brightness and saturation settings.", + "type": "string", + "enum": [ + "none", + "colorloop" + ] + }, + "colormode": { + "type": "string", + "enum": [ + "xy", + "ct" + ] + }, + "reachable": { + "description": "Indicates if a light can be reached by the bridge", + "type": "boolean" + } + } + }, + "type": { + "description": "A fixed name describing the type of light", + "type": "string" + }, + "name": { + "description": "A unique, editable name given to the light", + "type": "string" + }, + "modelid": { + "description": "The hardware model of the light.", + "type": "string" + }, + "swversion": { + "description": "An identifier for the software version running on the light", + "type": "string" + } + }, + "forms": [ + { + "href": "", + "htv:methodName": "GET", + "contentType": "application/json", + "op": "readproperty" + } + ] + } + }, + "actions": { + "setState": { + "title": "Set State", + "description": "Allows the user to turn the light on and off, modify the hue and effects", + "input": { + "type": "object", + "properties": { + "on": { + "description": "On/Off state of the light. On=true, Off=false", + "type": "boolean" + }, + "bri": { + "description": "Brightness level. Values higher than 254 are taken as 254", + "type": "integer", + "minimum": 0, + "maximum": 254 + }, + "alert": { + "description": "The alert effect, which is a temporary change to the bulb’s state.'l' of lselect stands for loop. Presence of lselect ignores transitiontime", + "type": "string", + "enum": [ + "lselect", + "none", + "select" + ] + }, + "transisiontime": { + "description": "The duration of the transition from the light’s current state to the new state.", + "type": "integer", + "unit": "100ms", + "minimum": 0, + "maximum": 65535 + }, + "bri_inc": { + "description": "Increments or decrements the value of the brightness. bri_inc is ignored if the bri attribute is provided.", + "type": "integer", + "minimum": -254, + "maximum": 254 + }, + "hue": { + "description": "The hue value to set light to.The hue value is a wrapping value between 0 and 65535. Both 0 and 65535 are red, 25500 is green and 46920 is blue.", + "type": "integer", + "minimum": 0, + "maximum": 65535 + }, + "sat": { + "description": "Saturation of the light. 254 is the most saturated (colored) and 0 is the least saturated (white).", + "type": "integer", + "minimum": 0, + "maximum": 254 + }, + "xy": { + "type": "array", + "description": "The x and y coordinates of a color in CIE color space.The first entry is the x coordinate and the second entry is the y coordinate. Both x and y must be between 0 and 1. If the specified coordinates are not in the CIE color space, the closest color to the coordinates will be chosen.", + "items": { + "type": "number", + "minimum": -1, + "maximum": 1 + }, + "maxItems": 2, + "minItems": 2 + }, + "ct": { + "description": "The Mired color temperature of the light. 2012 connected lights are capable of 153 (6500K) to 500 (2000K).", + "type": "integer", + "minimum": 153, + "maximum": 500 + }, + "effect": { + "description": "The dynamic effect of the light. Currently “none” and “colorloop” are supported. Other values will generate an error of type 7.Setting the effect to colorloop will cycle through all hues using the current brightness and saturation settings.", + "type": "string", + "enum": [ + "none", + "colorloop" + ] + }, + "sat_inc": { + "description": "Increments or decrements the value of the sat. sat_inc is ignored if the sat attribute is provided. Any ongoing sat transition is stopped. Setting a value of 0 also stops any ongoing transition. The bridge will return the sat value after the increment is performed.", + "type": "integer", + "minimum": -254, + "maximum": 254 + }, + "hue_inc": { + "description": "Increments or decrements the value of the hue. hue_inc is ignored if the hue attribute is provided. Any ongoing color transition is stopped. Setting a value of 0 also stops any ongoing transition. The bridge will return the hue value after the increment is performed.Note if the resulting values are < 0 or > 65535 the result is wrapped. ", + "type": "integer", + "minimum": -65534, + "maximum": 65534 + }, + "ct_inc": { + "description": "Increments or decrements the value of the ct. ct_inc is ignored if the ct attribute is provided. Any ongoing color transition is stopped. Setting a value of 0 also stops any ongoing transition. The bridge will return the ct value after the increment is performed.", + "type": "integer", + "minimum": -65534, + "maximum": 65534 + }, + "xy_inc": { + "type": "array", + "description": "TIncrements or decrements the value of the xy. xy_inc is ignored if the xy attribute is provided. Any ongoing color transition is stopped. Setting a value of 0 also stops any ongoing transition. Will stop at it’s gamut boundaries. The bridge will return the xy value after the increment is performed. Max value [0.5, 0.5].", + "items": { + "type": "number", + "minimum": -0.5, + "maximum": 0.5 + }, + "maxItems": 2, + "minItems": 2 + } + } + }, + "output": { + "type": "array", + "items": { + "type": "object", + "properties": { + "success": { + "oneOf": [ + { + "type": "object", + "properties": { + "/lights/1/state/on": { + "description": "Current state of the light after operation", + "type": "boolean" + } + } + }, + { + "type": "object", + "properties": { + "/lights/1/state/bri": { + "description": "Current brightness level", + "type": "integer", + "minimum": 0, + "maximum": 254 + } + } + }, + { + "type": "object", + "properties": { + "/lights/1/state/alert": { + "description": "Already provided alert value", + "type": "string", + "enum": [ + "lselect", + "none", + "select" + ] + } + } + }, + { + "type": "object", + "properties": { + "/lights/1/state/transisiontime": { + "description": "Already provided transitiontime", + "type": "integer", + "minimum": 0, + "maximum": 65535 + } + } + }, + { + "type": "object", + "properties": { + "/lights/1/state/hue": { + "description": "Current hue of the light after the operation", + "type": "integer", + "minimum": 0, + "maximum": 65535 + } + } + }, + { + "type": "object", + "properties": { + "/lights/1/state/sat": { + "description": "Current saturation of the light after the operation", + "type": "integer", + "minimum": 0, + "maximum": 254 + } + } + }, + { + "type": "object", + "properties": { + "/lights/1/state/xy": { + "description": "Current xy color of the light after the operation", + "type": "array", + "items": { + "type": "number", + "minimum": -1, + "maximum": 1 + }, + "maxItems": 2, + "minItems": 2 + } + } + }, + { + "type": "object", + "properties": { + "/lights/1/state/ct": { + "description": "Current ct color of the light after the operation", + "type": "integer", + "minimum": 153, + "maximum": 500 + } + } + }, + { + "type": "object", + "properties": { + "/lights/1/state/effect": { + "description": "Current running effect on the light after the operation", + "type": "string", + "enum": [ + "none", + "colorloop" + ] + } + } + }, + { + "type": "object", + "properties": { + "/lights/1/state/ct": { + "description": "Current running effect on the light after the operation", + "type": "string", + "enum": [ + "none", + "colorloop" + ] + } + } + } + ] + } + } + } + }, + "forms": [ + { + "href": "state", + "contentType": "application/json", + "htv:methodName": "PUT", + "op": [ + "invokeaction" + ] + } + ], + "idempotent": false, + "safe": false + } + } +} \ No newline at end of file diff --git a/events/2024.11.Munich/TDs/Philips-Hue/Dimmer-Switch-TUM.td.jsonld b/events/2024.11.Munich/TDs/Philips-Hue/Dimmer-Switch-TUM.td.jsonld new file mode 100644 index 00000000..1988f59e --- /dev/null +++ b/events/2024.11.Munich/TDs/Philips-Hue/Dimmer-Switch-TUM.td.jsonld @@ -0,0 +1,98 @@ +{ + "title": "Hue Dimmer Switch", + "description": "A controller to switch off and on the lights or to dim them", + "id": "urn:dev:ops:32473-HueSwitch-1234", + "@context": [ + "https://www.w3.org/2019/wot/td/v1", + { + "@language": "en" + } + ], + "security": [ + "basic_sc" + ], + "securityDefinitions": { + "basic_sc": { + "scheme": "basic", + "in": "header" + } + }, + "base": "https://remotelab.esi.cit.tum.de:8081/LabLocal/api/17AvYQeLM2T8Z3r0e3BiEvb9Qdwt36yU2BudTxrn/", + "properties": { + "switchInformation": { + "description": "Switch information", + "type": "object", + "properties": { + "state": { + "type": "object", + "description": "When the switch last pressed and what button was pressed and how it was pressed", + "properties": { + "buttonevent": { + "description": "*2 means short release, *3 means long release. 1* is the turn on button, 2* is the brighten button, 3* is the dim button, 4* is the turn off button", + "type": "integer", + "enum": [ + 1002, + 1003, + 2002, + 2003, + 3002, + 3003, + 4002, + 4003 + ] + }, + "lastupdated": { + "type": "string", + "format": "date-time" + } + } + }, + "config": { + "type": "object", + "properties": { + "on": { + "type": "boolean" + }, + "battery": { + "type": "integer", + "maximum": 100 + }, + "reachable": { + "type": "boolean" + } + } + }, + "name": { + "type": "string" + }, + "type": { + "type": "string", + "const": "ZLLSwitch" + }, + "modelid": { + "type": "string", + "const": "RWL021" + }, + "manufacturername": { + "type": "string" + }, + "swversion": { + "type": "string" + }, + "uniqueid": { + "type": "string" + } + }, + "forms": [ + { + "href": "sensors/7", + "contentType": "application/json", + "htv:methodName": "GET", + "op": [ + "readproperty" + ] + } + ] + } + } +} \ No newline at end of file diff --git a/events/2024.11.Munich/TDs/thingweb-nodewot/ConveyorBelt1-TUM.td.json b/events/2024.11.Munich/TDs/thingweb-nodewot/ConveyorBelt1-TUM.td.jsonld similarity index 100% rename from events/2024.11.Munich/TDs/thingweb-nodewot/ConveyorBelt1-TUM.td.json rename to events/2024.11.Munich/TDs/thingweb-nodewot/ConveyorBelt1-TUM.td.jsonld diff --git a/events/2024.11.Munich/TDs/thingweb-nodewot/PanTilt-TUM.td.jsonld b/events/2024.11.Munich/TDs/thingweb-nodewot/PanTilt-TUM.td.jsonld new file mode 100644 index 00000000..8e69b69e --- /dev/null +++ b/events/2024.11.Munich/TDs/thingweb-nodewot/PanTilt-TUM.td.jsonld @@ -0,0 +1,291 @@ +{ + "@context": [ + "https://www.w3.org/2019/wot/td/v1", + { + "@language": "en" + } + ], + "@type": "Thing", + "actions": { + "goHome": { + "description": "Returns the pan and tilt to their home position which is at 0 and 0 degrees", + "forms": [ + { + "contentType": "application/json", + "href": "https://remotelab.esi.cit.tum.de:8081/PanTilt1/actions/goHome", + "htv:methodName": "POST", + "op": [ + "invokeaction" + ] + } + ], + "idempotent": false, + "safe": false, + "title": "Go Home" + }, + "moveContinuously": { + "description": "Moves the tilt and pan platform with the speeds given in input until a stop action is invoked or limits are reached", + "forms": [ + { + "contentType": "application/json", + "href": "https://remotelab.esi.cit.tum.de:8081/PanTilt1/actions/moveContinuously", + "htv:methodName": "POST", + "op": [ + "invokeaction" + ] + } + ], + "idempotent": false, + "input": { + "properties": { + "panSpeed": { + "description": "The speed at which the platform moves. Negative values for right and positive values for left", + "maximum": 15, + "minimum": -15, + "type": "number", + "unit": "angle per sec" + }, + "tiltSpeed": { + "description": "The speed at which the tilt platform moves. Negative values for moving up and positive values for moving down", + "maximum": 15, + "minimum": -15, + "type": "number", + "unit": "angle per sec" + } + }, + "required": [ + "panSpeed", + "tiltSpeed" + ], + "type": "object" + }, + "safe": false, + "title": "Move Continuously" + }, + "moveTo": { + "description": "Moves the tilt and pan platform to the angles given in input", + "forms": [ + { + "contentType": "application/json", + "href": "https://remotelab.esi.cit.tum.de:8081/PanTilt1/actions/moveTo", + "htv:methodName": "POST", + "op": [ + "invokeaction" + ] + } + ], + "idempotent": false, + "input": { + "properties": { + "panAngle": { + "maximum": 90, + "minimum": -90, + "title": "Pan To", + "type": "number", + "unit": "degrees" + }, + "tiltAngle": { + "maximum": 80, + "minimum": -80, + "title": "Tilt To", + "type": "number", + "unit": "degrees" + } + }, + "required": [ + "panAngle", + "tiltAngle" + ], + "type": "object" + }, + "safe": false, + "title": "Move To" + }, + "panContinuously": { + "description": "Moves the pan platform with speed given in input until a stop action is invoked or limits are reached", + "forms": [ + { + "contentType": "application/json", + "href": "https://remotelab.esi.cit.tum.de:8081/PanTilt1/actions/panContinuously", + "htv:methodName": "POST", + "op": [ + "invokeaction" + ] + } + ], + "idempotent": false, + "input": { + "description": "The speed at which the platform moves. Negative values for right and positive values for left", + "maximum": 15, + "minimum": -15, + "type": "number", + "unit": "angle per sec" + }, + "safe": false, + "title": "Pan Continuously" + }, + "panTo": { + "description": "Moves the pan platform to the angle specific in the input", + "forms": [ + { + "contentType": "application/json", + "href": "https://remotelab.esi.cit.tum.de:8081/PanTilt1/actions/panTo", + "htv:methodName": "POST", + "op": [ + "invokeaction" + ] + } + ], + "idempotent": false, + "input": { + "maximum": 90, + "minimum": -90, + "type": "number", + "unit": "degrees" + }, + "safe": false, + "title": "Pan To" + }, + "scan": { + "description": "Scans left and right once, starting from the leftmost point. Tilt stays the same", + "forms": [ + { + "contentType": "application/json", + "href": "https://remotelab.esi.cit.tum.de:8081/PanTilt1/actions/scan", + "htv:methodName": "POST", + "op": [ + "invokeaction" + ] + } + ], + "idempotent": false, + "safe": false, + "title": "Scan" + }, + "stopMovement": { + "description": "Stops any movement that was created with continuous movement calls", + "forms": [ + { + "contentType": "application/json", + "href": "https://remotelab.esi.cit.tum.de:8081/PanTilt1/actions/stopMovement", + "htv:methodName": "POST", + "op": [ + "invokeaction" + ] + } + ], + "idempotent": false, + "safe": false, + "title": "Stop Movement" + }, + "tiltContinuously": { + "description": "Moves the tilt platform with speed given in input until a stop action is invoked or limits are reached", + "forms": [ + { + "contentType": "application/json", + "href": "https://remotelab.esi.cit.tum.de:8081/PanTilt1/actions/tiltContinuously", + "htv:methodName": "POST", + "op": [ + "invokeaction" + ] + } + ], + "idempotent": false, + "input": { + "description": "The speed at which the platform moves. Negative values for moving up and positive values for moving down", + "maximum": 15, + "minimum": -15, + "type": "number", + "unit": "angle per sec" + }, + "safe": false, + "title": "Tilt Continuously" + }, + "tiltTo": { + "description": "Moves the tilt platform to the angle specific in the input", + "forms": [ + { + "contentType": "application/json", + "href": "https://remotelab.esi.cit.tum.de:8081/PanTilt1/actions/tiltTo", + "htv:methodName": "POST", + "op": [ + "invokeaction" + ] + } + ], + "idempotent": false, + "input": { + "maximum": 80, + "minimum": -80, + "type": "number", + "unit": "degrees" + }, + "safe": false, + "title": "Tilt To" + } + }, + "description": "A Pan and Tilt platform on top of a Raspberry", + "forms": [ + { + "contentType": "application/json", + "href": "https://remotelab.esi.cit.tum.de:8081/PanTilt1/all/properties", + "op": [ + "readallproperties", + "readmultipleproperties" + ] + } + ], + "id": "esi:pantilt:1", + "properties": { + "panPosition": { + "description": "The current position of the pan platform in degrees", + "forms": [ + { + "contentType": "application/json", + "href": "https://remotelab.esi.cit.tum.de:8081/PanTilt1/properties/panPosition", + "htv:methodName": "GET", + "op": [ + "readproperty" + ] + } + ], + "maximum": 90, + "minimum": -90, + "observable": false, + "readOnly": true, + "title": "Pan Position", + "type": "number", + "unit": "degrees", + "writeOnly": false + }, + "tiltPosition": { + "description": "The current position of the tilt platform in degrees", + "forms": [ + { + "contentType": "application/json", + "href": "https://remotelab.esi.cit.tum.de:8081/PanTilt1/properties/tiltPosition", + "htv:methodName": "GET", + "op": [ + "readproperty" + ] + } + ], + "maximum": 80, + "minimum": -80, + "observable": false, + "readOnly": true, + "title": "Tilt Position", + "type": "number", + "unit": "degrees", + "writeOnly": false + } + }, + "security": "basic_sc", + "securityDefinitions": { + "basic_sc": { + "in": "header", + "scheme": "basic" + } + }, + "title": "PanTilt1" +} \ No newline at end of file diff --git a/events/2024.11.Munich/TDs/thingweb-nodewot/RainbowHAT-TUM.td.jsonld b/events/2024.11.Munich/TDs/thingweb-nodewot/RainbowHAT-TUM.td.jsonld new file mode 100644 index 00000000..1462e92f --- /dev/null +++ b/events/2024.11.Munich/TDs/thingweb-nodewot/RainbowHAT-TUM.td.jsonld @@ -0,0 +1,257 @@ +{ + "@context": [ + "https://www.w3.org/2019/wot/td/v1", + { + "@language": "en" + } + ], + "@type": "", + "actions": { + "clearDisplay": { + "description": "Clears the seven segment displays", + "forms": [ + { + "contentType": "application/json", + "href": "https://remotelab.esi.cit.tum.de:8081/RainbowHAT1/actions/clearDisplay", + "htv:methodName": "POST", + "op": [ + "invokeaction" + ] + } + ], + "idempotent": false, + "safe": false + }, + "clearLEDs": { + "description": "Turns off the 7 LEDs", + "forms": [ + { + "contentType": "application/json", + "href": "https://remotelab.esi.cit.tum.de:8081/RainbowHAT1/actions/clearLEDs", + "htv:methodName": "POST", + "op": [ + "invokeaction" + ] + } + ], + "idempotent": false, + "safe": false + }, + "makeRainbow": { + "description": "Changes the colors of the LEDs to the official Rainbow colors!", + "forms": [ + { + "contentType": "application/json", + "href": "https://remotelab.esi.cit.tum.de:8081/RainbowHAT1/actions/makeRainbow", + "htv:methodName": "POST", + "op": [ + "invokeaction" + ] + } + ], + "idempotent": false, + "safe": false + }, + "writeDisplay": { + "forms": [ + { + "contentType": "application/json", + "href": "https://remotelab.esi.cit.tum.de:8081/RainbowHAT1/actions/writeDisplay", + "htv:methodName": "POST", + "op": [ + "invokeaction" + ] + } + ], + "idempotent": false, + "input": { + "description": "A string from left to right on the seven segment display. Capitals look better", + "maxLength": 4, + "type": "string" + }, + "safe": false + } + }, + "description": "HAT with seven segment displays, temperature and pressure sensors, touch buttons and LEDs", + "events": { + "buttonA": { + "data": { + "type": "boolean" + }, + "description": "Press (true) or release(false) of a button. An LED also lights up on the HAT", + "forms": [ + { + "contentType": "application/json", + "href": "https://remotelab.esi.cit.tum.de:8081/RainbowHAT1/events/buttonA", + "op": [ + "subscribeevent" + ], + "subprotocol": "longpoll" + } + ] + }, + "buttonB": { + "data": { + "type": "boolean" + }, + "description": "Press (true) or release(false) of a button. An LED also lights up on the HAT", + "forms": [ + { + "contentType": "application/json", + "href": "https://remotelab.esi.cit.tum.de:8081/RainbowHAT1/events/buttonB", + "op": [ + "subscribeevent" + ], + "subprotocol": "longpoll" + } + ] + }, + "buttonC": { + "data": { + "type": "boolean" + }, + "description": "Press (true) or release(false) of a button. An LED also lights up on the HAT", + "forms": [ + { + "contentType": "application/json", + "href": "https://remotelab.esi.cit.tum.de:8081/RainbowHAT1/events/buttonC", + "op": [ + "subscribeevent" + ], + "subprotocol": "longpoll" + } + ] + } + }, + "forms": [ + { + "contentType": "application/json", + "href": "https://remotelab.esi.cit.tum.de:8081/RainbowHAT1/all/properties", + "op": [ + "readallproperties", + "readmultipleproperties", + "writeallproperties", + "writemultipleproperties" + ] + } + ], + "id": "urn:dev:ops:32473-rainbowhat-001", + "properties": { + "leds": { + "additionalProperties": { + "properties": { + "brightness": { + "maximum": 15, + "minimum": 0, + "type": "integer" + }, + "colour": { + "items": { + "maximum": 255, + "minimum": 0, + "type": "integer" + }, + "maxItems": 3, + "minItems": 3, + "type": "array" + } + }, + "required": [ + "brightness", + "colour" + ], + "type": "object" + }, + "description": "7 LEDs with their RGB colors. 0 corresponds to the rightmost LED. They can be individually set", + "forms": [ + { + "contentType": "application/json", + "href": "https://remotelab.esi.cit.tum.de:8081/RainbowHAT1/properties/leds", + "op": [ + "readproperty", + "writeproperty" + ] + } + ], + "observable": false, + "propertyNames": { + "enum": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6" + ], + "type": "string" + }, + "readOnly": false, + "title": "LEDs", + "type": "object", + "writeOnly": false + }, + "pressure": { + "description": "Pressure in hPa", + "forms": [ + { + "contentType": "application/json", + "href": "https://remotelab.esi.cit.tum.de:8081/RainbowHAT1/properties/pressure", + "htv:methodName": "GET", + "op": [ + "readproperty" + ] + }, + { + "contentType": "application/json", + "href": "https://remotelab.esi.cit.tum.de:8081/RainbowHAT1/properties/pressure/observable", + "op": [ + "observeproperty" + ], + "subprotocol": "longpoll" + } + ], + "observable": true, + "readOnly": true, + "title": "pressure", + "type": "number", + "unit": "hPa", + "writeOnly": false + }, + "temperature": { + "description": "Temperature in Celcius", + "forms": [ + { + "contentType": "application/json", + "href": "https://remotelab.esi.cit.tum.de:8081/RainbowHAT1/properties/temperature", + "htv:methodName": "GET", + "op": [ + "readproperty" + ] + }, + { + "contentType": "application/json", + "href": "https://remotelab.esi.cit.tum.de:8081/RainbowHAT1/properties/temperature/observable", + "op": [ + "observeproperty" + ], + "subprotocol": "longpoll" + } + ], + "observable": true, + "readOnly": true, + "title": "temperature", + "type": "number", + "unit": "C", + "writeOnly": false + } + }, + "security": "basic_sc", + "securityDefinitions": { + "basic_sc": { + "in": "header", + "scheme": "basic" + } + }, + "title": "RainbowHAT1" +} \ No newline at end of file diff --git a/events/2024.11.Munich/TDs/thingweb-nodewot/SenseHat1-TUM.json b/events/2024.11.Munich/TDs/thingweb-nodewot/SenseHat-TUM.td.jsonld similarity index 100% rename from events/2024.11.Munich/TDs/thingweb-nodewot/SenseHat1-TUM.json rename to events/2024.11.Munich/TDs/thingweb-nodewot/SenseHat-TUM.td.jsonld