W3C WoT Face-to-Face Meeting. Bundang, Korea, July 2018

Similar documents
Defragmenting the IoT with the Web of Things

W3C WoT call CONTEXT INFORMATION MANAGEMENT - NGSI-LD API AS BRIDGE TO SEMANTIC WEB Contact: Lindsay Frost at

WoT IG and WG Next Steps. WoT IG/WG F2F Meeting Santa Clara, February, 2017

W3C Web of Things. W3C Auto WG F2F Meeting April 2016

Universal Explorer for the Web of Things

High Level Interoperability Testing

Web of Things: W3C Vision & Roadmap on IoT Standardizations

onem2m AND SMART M2M INTRODUCTION, RELEASE 2/3

The Web of Things. Breakout session on service descriptions. Dave Raggett, W3C 1/27

Web of Things Architecture and Use Cases. Soumya Kanti Datta, Christian Bonnet Mobile Communications Department

T2TRG: Thing-to-Thing Research Group

SEPA SPARQL Event Processing Architecture

W3C Web of Things Interest Group

T2TRG: Thing-to-Thing Research Group

SCRIPTING APIS FOR THE WEB OF THINGS

Salesforce IoT REST API Getting Started Guide

IoT Standards Ecosystem, What s new?

Semantic Interoperability Requires Self-describing Interaction Models

The Web of Things and Semantic Interoperability. Michael McCool, Principal Engineer, Intel IETF100, November 14, 2017

Project Zygote. Rapid prototyping for the Internet of Things

Example Sequences of interaction patterns (for discussion in Prague) 2018/3/27 Panasonic Toru Kawaguchi (with Kazuo Kajimoto)

W3C Web of Things. Mohammed Dadas - Orange

Resource Discovery in IoT: Current Trends, Gap Analysis and Future Standardization Aspects

IP Based Architecture for the Internet of Things. IPV6 and Related Standards for IoT Interoperability November 20, 2014

Understanding RESTful APIs and documenting them with Swagger. Presented by: Tanya Perelmuter Date: 06/18/2018

High Level Architecture (HLA)

The Three Software Stacks Required for IoT. Benjamin Cabé Eclipse

Industrial Internet Connectivity Framework (IICF)

A Guided Tour of Eclipse IoT: 3 Software Stacks for IoT. Benjamin Cabé, Eclipse

OCF Specification Overview Core Technology Specification. OCF 2.0 Release June 2018

IOT STANDARDS ECOSYSTEM WHAT S NEW? IOT WEEK GENEVA 2017

OCF Core Specification Extension

Implementation work on open source web of things servers and gateways. Dave Raggett, W3C

Build Mobile Cloud Apps Effectively Using Oracle Mobile Cloud Services (MCS)

startsession( WoT Devices )

Working Group Charter: Web Services Basic Profile

ARCHITECTURING AND SECURING IOT PLATFORMS JANKO ISIDOROVIC MAINFLUX

Embedded Web Services

Eclipse IoT State of the Union. Benjamin Cabé, Eclipse

Implementation work on open source web of things servers and gateways. Dave Raggett, W3C

OCF 2.0 Semantic Tagging ATG CR1970. Legal Disclaimer

What's New in RDF 1.1

Kepware Whitepaper. IIoT Protocols to Watch. Aron Semle, R&D Lead. Introduction

ETSI GS MEC 016 V1.1.1 ( )

W3C Workshop on the Web of Things

Advance Mobile& Web Application development using Angular and Native Script

Lifecycle Manager Governance API

Semantic Web Fundamentals

XML Metadata Standards and Topic Maps

OnRISC. IoT Manual. Vision Systems GmbH. Edition: October 2017

Testbed-12 CITE User Guide - Profiles

Exploitable Results by Third Parties

HOW WOT MAY BENEFIT FROM A GENERIC DISCOVERY/COMMUNICATION API IN LINE WITH PRESENTATION API MODEL W3C THING API PROPOSAL

OCF Fundamentals. Ravi Subramaniam Principal Engineer, Intel Corporation

Working Group Charter: Basic Profile 1.2 and 2.0

Full Stack boot camp

NGSI-LD API STATUS (W3C TPAC 2018)

Alteryx Technical Overview

Arm Mbed Edge. Shiv Ramamurthi Arm. Arm Tech Symposia Arm Limited

Developing with VMware vcenter Orchestrator. vrealize Orchestrator 5.5.1

Writing REST APIs with OpenAPI and Swagger Ada

The onem2m standard Horizontal Service Layer

Ninox API. Ninox API Page 1 of 15. Ninox Version Document version 1.0.0

OCF Core Specifiation

Developing ASP.NET MVC Web Applications (486)

Migrating traditional Java EE applications to mobile

Session 12. RESTful Services. Lecture Objectives

The Now Platform Reference Guide

Internet Standards for the Web: Part II

Semantic Web Fundamentals

C# 6.0 in a nutshell / Joseph Albahari & Ben Albahari. 6th ed. Beijin [etc.], cop Spis treści

Tokalabs LaunchStation. Software Defined Solution for Inventory Management, Topology Creation, Test Automation, & Resource Utilization

Connect and Transform Your Digital Business with IBM

OCF 2.0 Constrained Device Support OIC 1.1 Core Technology WG CR Legal Disclaimer

Consents Service - SMBC NextGenPSD2

Semantic Discovery in the Web of Things

M.SARAVANA KARTHIKEYAN

RESTful API Design APIs your consumers will love

Libelium Cloud Hive. Technical Guide

Linked Data and RDF. COMP60421 Sean Bechhofer

Collaborating to Maximize Interoperability in an Open Source Software Project. Ian Skerrett Eclipse Foundation

Schedule. HTML Media Extensions WG. Meeting. Meeting. W3C Web & TV IG TPAC 2016

ONEM2M INDUSTRY DAY ALAN SOLOWAY, QUALCOMM. 12 July 2017

stve: Sychronized TV Ecosystem

Anjay LwM2M SDK. Enabling lightweight device management in the Internet of Things ecosystems

PROCESSING NON-XML SOURCES AS XML. XML Amsterdam Alain Couthures - agencexml 06/11/2015

extensible Access Method (XAM) - a new fixed content API Mark A Carlson, SNIA Technical Council, Sun Microsystems, Inc.

temp heat I/O A/C flow valve pump

Etanova Enterprise Solutions

IoTivity: The Open Connectivity Foundation and the IoT Challenge

1 scons --debug=explain VERBOSE=true RELEASE=false TARGET_TRANSPORT=IP DRAFT

Active Endpoints. ActiveVOS Platform Architecture Active Endpoints

Introduction to HTML5

Hubs. A White Paper from Rebooting the Web of Trust III Design Workshop. by Daniel Buchner, Wayne Vaughan, and Ryan Shea

The course also includes an overview of some of the most popular frameworks that you will most likely encounter in your real work environments.

STARCOUNTER. Technical Overview

Introducing Microsoft s commitment to interoperability (Office, Windows, and SQL)

REST Easy with Infrared360

Deliverable 4.1.a: Design of Marketplace First Release

Hypermedia Web API for enhanced Heterogeneous Missions Accessibility

Transcription:

W3C WoT Face-to-Face Meeting Bundang, Korea, July 2018

W3C Web of Things Summary Counter fragmentation in the IoT By Describing and Complementing Web of Things (WoT) vs Internet of Things (IoT) is similar to World Wide Web vs Internet Take patterns from the World Wide Web and adapt and apply them to the IoT JSON, Schema, and Linked Data URIs and Media Types JavaScript runtime Not competing with existing IoT standards, as not prescribing a full-stack solution W3C WoT offers building blocks to pick that enable semantic interoperability WoT Thing Description (TD) WoT Binding Templates WoT Scripting API

W3C Web of Things Activity WoT Workshop, Berlin, 2014 Identify stakeholders for W3C activity Siemens took a leading role chairing the activity W3C WoT Interest Group (IG) Started spring 2015 ~200 participants Exploration and liaisons (e.g., OPC, onem2m, OCF) Continues to exists parallel to Working Group W3C WoT Working Group (WG) Started end of 2016 ~100 participants Normative work on deliverables

W3C WoT Approach Building Blocks JSON-LD representation format to describe Thing instances with metadata. Uses formal interaction model and domain-specific vocabularies to uniformly describe how to use Things, which enables semantic interoperability. Properties Events WoT Thing Description (TD) The index.html for Things Actions Any IoT Device Runtime System Application JavaScript SDK Information Data Model Model Protocol HTTP CoAP MQTT UA Binary Modbus BACnet WoT Scripting API Standardized JavaScript object API for an IoT runtime system similar to the Web browser. Provides an interface between applications and Things to simplify IoT application development and enable portable apps across vendors, devices, edge, and cloud. WoT Binding Templates Capture how the formal Interaction Model is mapped to concrete protocol operations (e.g., CoAP) and platform features (e.g., OCF). These templates are re-used by concrete TDs.

W3C WoT Approach Batteries Included JSON-LD representation format to describe Thing instances with metadata. Uses formal interaction model and domain-specific vocabularies to uniformly describe how to use Things, which enables semantic interoperability. Properties Events WoT Thing Description (TD) The index.html for Things Actions JavaScript Any Runtime IoT Device System WoT Security Application and Privacy metadata SDK and guidelines for Interaction existing Data Model security Model (e.g., IETF ACE) Bindings HTTP CoAP MQTT UA Binary Modbus BACnet WoT Scripting API Standardized JavaScript object API for an IoT runtime system similar to the Web browser. Provides an interface between applications and Things to simplify IoT application development and enable portable apps across vendors, devices, edge, and cloud. WoT Binding Templates Capture how the formal Interaction Model is mapped to concrete protocol operations (e.g., CoAP) and platform features (e.g., OCF). These templates are re-used by concrete TDs.

Deployment Scenarios Full-stack Devices WoT Client Servient Hosting Scripted Things Client Script Thing Script Security Metadata WoT Scripting API WoT Scripting API WoT Runtime Consumed Thing Generate Exposed Thing WoT Runtime Protocol Bindings Protocol Bindings System API HTTP(S) MQTT CoAP(S) HTTP(S) CoAP(S) MQTT Local Hardware

Deployment Scenarios Constrained Devices WoT Client Device as Thing Client Script WoT Scripting API Exposed Thing Device Firmware WoT Runtime C Host Protocol Bindings Protocol Driver API HTTP(S) MQTT CoAP(S) CoAP(S) Local Hardware

Deployment Scenarios Retrofitting Devices WoT Client Existing Device Client Script WoT Scripting API Device Firmware WoT Runtime C Host Protocol Bindings Protocol Driver API HTTP(S) MQTT CoAP(S) Modbus Modbus Local Hardware

Deployment Scenarios Web Integration Servient in Browser Servient on Cloud Servient on Gateway Application Script Proxy Script(s) Security Metadata Integration Scripts Security Metadata WoT Scripting API WoT Scripting API WoT Scripting API Browser + Polyfill C E EE WoT Runtime C CC Exposed Thing WoT Runtime Consumed Thing Protocol Bindings Protocol Bindings Protocol Bindings System API HTTP(S) (S)RTP FTP HTTP(S) MQTT CoAP(S) HTTP(S) MQTT CoAP(S) Local Hardware Proprietary Communication Servient Thing Legacy Device

Deployment Scenarios Web Integration Servient in Browser Servient on Cloud Servient on Gateway Application Script WoT Scripting API C Browser + Polyfill Cloud-native Implementation Integration Scripts Exposed Thing WoT Scripting API WoT Runtime Security Metadata Consumed Thing Protocol Bindings Protocol Bindings Protocol Bindings System API HTTP(S) (S)RTP FTP HTTP(S) MQTT CoAP(S) HTTP(S) MQTT CoAP(S) Local Hardware Proprietary Communication Servient Thing Legacy Device

W3C WoT Integration Patterns Things AND Cloud Cloud Servient Digital Twiin Orchestr. Client Edge Servient Digital Twiin Scripting API Interaction Model Bindings Remote Access and Synchronization Virtual Thing Orchestr. Client Proxy Thing Scripting API Interaction Model Bindings Web Browser App Script Scripting API Interaction Model Bindings Web Integration Thing Application Logic Scripting API Direct Thing-to-Thing Interaction Constr. Thing Classic Firmware Integrate and Orchestrate Devices Existing Device + Interaction Model Bindings Interaction Model Protocol Complement Existing Devices Thing

Editors Draft: https://w3c.github.io/wot-thing-description/ WOT THING DESCRIPTION

WoT WG Changed to Simplified TD in March 2018 JSON-LD 1.1 processing Objects instead of arrays Default values (e.g., "writable": false) Framing to serialize and preprocess Semantic annotations optional TDs can be treated as simple JSON format No JSON-LD keywords or processing required properties, actions, events on top level No LD convention of terms being singular New Media Type application/td+json Context and terms known implicitly JSON Schema compatible Data schema syntax now also identical Payloads can be validated directly with JSON Schema implementations New terms id label description support collecting more

WG changed from the JSON-LD 1.0 based TD to the Simplified TD DIFF FOR SIMPLIFIED TD

OLD WoT WG Changed to Simplified TD NEW { "@context": "https://./w3c-wot-td-context.jsonld", "name": "Lamp", "@id": "urn:dev:wot:com:example:servient:lamp", "base": "https://servient.example.com/things/lamp/", "interaction": [{ "@type": "Property", "name": "on", "schema": { "type": "boolean" }, "writeable": false, "form": [{ "href": "properties/on", "mediatype": "application/json" }] }, { "@type": "Property", "name": "brightness", "writeable": true, "schema": { "type": " integer", "minimum": 0, "maximum": 100 }, "form": [{ "href": "properties/status", "mediatype": "application/json" }] }, { { "id": "urn:dev:wot:com:example:servient:lamp", "label": "Lamp", "description": "Corner torchiere, "base": "https://servient.example.com/things/lamp/", "properties": { "on": { "type": "boolean", "forms": [{ "href": "properties/on", "mediatype": "application/json" }] }, "brightness": { "type": "integer", "minimum": 0, "maximum": 100 "writeable": true, "forms": [{ "href": "properties/status", "mediatype": "application/json" }] } }, "actions": {

}, { "@type": "Action", "name": "fade", "inputschema": { "type": "object", "fields": [{ "name": "from", "schema": { "type": "integer", "minimum": 0, "maximum": 100 } }, { "name": "to", "schema": { "type": "integer", "minimum": 0, "maximum": 100 } }, { "name": "duration", "schema": { "type": "number" } }] }, "form": [{ "href": "actions/fade" }] }, { "actions": { "fade": { "input": { "type": "object", "properties": { "from": { "type": "integer", "minimum": 0, "maximum": 100 }, "to": { "type": "integer", "minimum": 0, "maximum": 100 }, "duration": { "type": "number" } } }, "forms": [{ "href": "actions/fade", "outputmediatype": "application/json", "inputmediatype": "application/json" }] } }, "events": { OLD WoT WG Changed to Simplified TD NEW

OLD WoT WG Changed to Simplified TD NEW }, { "@type": "Event", "name": "overheated", "schema": { "type": "object", "fields": [{ "name": "temperature", "schema": { "type": "number" } }] }, "form": [{ "href": "events/overheated", "mediatype": "application/json" }] }], "link": [{ "href": "https://servient.example.com/things/pir", "rel": "controlledby", "mediatype": "application/ld+json" }] } "events": { "overheated": { "type": "object", "properties": { "temperature": { "type": "number" } }, "forms": [{ "href": "events/overheated", "subprotocol": "EventSource", "mediatype": "application/json" }] } }, } "links": [{ "href": "https://servient.example.com/things/pir", "rel": "controlledby", "mediatype": "application/td+json" }]

WG changed from the JSON-LD 1.0 based TD to the Simplified TD SIMPLIFIED TD IN DETAIL

WoT Thing Description (TD) Minimal Form { "id": "urn:dev:org:32473:1234567890", "label": "MyLEDThing", "description": "RGB LED torchiere", "security": [{ "scheme": "Bearer", }], "properties": { "brightness": { "type": "integer", "minimum": 0, "maximum": 100, "writable": true, "forms": [... ] } }, "actions": { "fadein": { "input": { "type": "object", "properties": { "target": { "type": "integer", "minimum": 0, "maximum": 100, } No semantic annotations Media Type application/td+json identifies document as TD and TD context and vocabulary apply as default

WoT Thing Description (TD) Annotated Form Explicit context for additional vocabularies Security metadata Protocol Bindings { "@context": [ "https://w3c.github.io/wot/w3c-wot-td-context.jsonld", { "iot": "http://iotschema.org/" } ], "id": "urn:dev:org:32473:1234567890", "label": "MyLEDThing", "description": "RGB LED torchiere", "@type": ["Thing", "iot:lightcontrol"], "security": [{ "scheme": "OAuth2", "token": "PoP", "as": "https://authority-issuing.example.org" }], "properties": { "brightness": { "type": "integer", "minimum": 0, "maximum": 100, "@type": ["iot:currentdimmer"], "iot:unit": "iot:percent", "writable": true, "forms": [... ] } }, "actions": { Domain-specific vocabulary Semantic annotations Domain-specific vocabulary W3C WoT TD vocabulary

WoT Binding Templates Instantiated in TDs Basics to build the request Deviation from defaults... "properties": { "brightness": {... "forms": [ { // Default: GET to read, PUT to write "href": "https://myled.example.com:8080/pwr", "mediatype": "application/json" } ] } }, "actions": { "fadein": {... "forms": [ { "href": "coaps://myled.example.com:5684/pwr", "mediatype": "application/ocf+cbor", } "coap:methodcode": 3, "coap:options": [ { "coap:optionnumber": 2053, "coap:optionvalue": "1.1.0" } ] // PUT instead of POST to invoke // OCF-Content-Format-Version

WoT Thing Description (TD) Model DataValue DataSpecification DataSchema

WoT Thing Description Terms @context @type id name description support base security properties actions events links JSON-LD Context Gives semantic meaning to terms used in JSON document Configures semantic processing (e.g., how to handle object keys) See JSON-LD spec: https://json-ld.org/spec/latest/json-ld/#the-context Optional Default points to TD context file https://w3c.github.io/wot/w3c-wot-td-context.jsonld Will be changed to w3.org namespace once finished Used to include domain-specific vocabularies Example: {"iot": "https://iot.schema.org/"} Note: iotschema.org is the temporary work-in-progress domain Default TD context file always applied last Protects against overrise of terms

WoT Thing Description Terms @context @type id name description support base security properties actions events links RDF Type of the Thing Also see JSON-LD specification https://json-ld.org/spec/latest/json-ld/#typed-values Optional Default is Thing from TD core vocabulary Used for Capabilities Things can offer multiple Capabilities Come from domain-specific vocabularies See iot.schema.org activity for examples Note: iotschema.org is the temporary working domain Strict Thing types are discouraged Forcing Things into strict types does not scale Might be required in well-defined, closed systems Strict type can be seen as a very specific capability

WoT Thing Description Terms @context @type id name description support base security properties actions events links Identifier of the physical/unique Thing Mandatory Must be a URI Maps to the @id of the Linked Data node (Thing) Usually a URN is used, e.g., UUID or IMEI URN https://tools.ietf.org/html/draft-arkko-core-dev-urn Same ID can occur in multiple TDs Describes same physical/unique Thing (or asset ) TD directly from the device TD registered in a Thing Directory Alternative TD serialization, e.g., different language

WoT Thing Description Terms @context @type id name description support base security properties actions events links Human-readable name for the Thing Mandatory Used for displaying text in a UI or documentation Can be language-dependent One value, changed by serializing alternative TD

WoT Thing Description Terms @context @type id name description support base security properties actions events links Human-readable description for the Thing Optional Used for displaying text in a UI or documentation Can be language-dependent One value, changed by serializing alternative TD Discussion: how to deal with language? Serialize language-specific TDs (cf. Accept-Lang)? Have a map with language idendifiers as key? Model must be able to hold multiple languages to serialize language-specific TDs!

WoT Thing Description Terms @context @type id name description support base security properties actions events links Web Link (URI) to TD author or Thing vendor information Optional Used for contact/responsibility information URI for Web page mailto URI Linked Data resource Discussion: make mandatory? Force authors to fill out for better data quality of TDs

WoT Thing Description Terms @context @type id name description support base security properties actions events links Base URI for optimization to enable short relative URIs in forms Optional Used for optimization Usually, all Interactions have the same href prefix Can use relative URIs there, which must be resolved to absolute URIs Only one base Must use absolute URIs for alternate endpoints Must use absolute URIs for alternate URI schemes Origin URI of the TD usually does not work TDs often come from a Thing Directory, which is on different endpoint TDs can be hosted externally

WoT Thing Description Terms @context @type id name description support base security properties actions events links Security metadata to interact with Thing Optional Takes TD security vocabulary scheme, e.g., basic, apikey, oauth2 Scheme-specific fields, e.g., in, pname, flow Discussion: make mandatory? No-security must be an explicit choice Security should be used by default Discussion: vocabulary Currently looked at OpenAPI and a few specific platforms (e.g., OCF) Need more feedback

WoT Thing Description Terms @context @type id name description support base security properties actions events links Entry point for Property Interactions Optional Thing might not have Properties Expose internal state of Things for direct access Always readable (don t use Property, but Action if not) Optionally writable Optionally observable (different from Events as state transfer / eventual consistency) Object structure with handle as key and Property as value With JSON-LD 1.1 processing, keys map to @id of value node Property nodes have JSON Schema terms and syntax https://tools.ietf.org/html/draft-handrews-json-schema-validation Property description can be fed to JSON Schema validator

WoT Thing Description Terms @context @type id name description support base security properties actions events links Property vocabulary label (optional) description (optional) @type (optional) type (mandatory) any const, enum object properties, required, dependencies, additionalproperties, array items, additionalitems, maxitems, minitems, uniqueitems, contains string maxlength, minlength, pattern number minimum, maximum, multipleof, exclusiveminimum/-maximum integer minimum, maximum, multipleof, exclusiveminimum/-maximum boolean writable (optional default false) observable (optional default false) forms (mandatory for Interaction) Any domain-specific vocabulary can be added

WoT Thing Description Terms @context @type id name description support base security properties actions events links Property vocabulary label (optional) Discussion: use term name? Maps to rdfs:label Web Linking has term title (was for documents) Has no identification purpose, so no name, but Corresponds to HTML s name (DOM s getelementsbyname() )

WoT Thing Description Terms @context @type id name description support base security properties actions events links Entry point for Action Interactions Optional Thing might not provide Actions Modify internal state or actuate or process data State that is not exposed directly (no Property) Write only, read multiple, etc. Deal with intended vs actual state Physical processes that take time State that changes over time Data schema for input and output of the Action input/output node can be fed to JSON Schema validator

WoT Thing Description Terms @context @type id name description support base security properties actions events links Action vocabulary label (optional) description (optional) @type (optional) input (optional) data schema in JSON Schema syntax, see Property output (optional) data schema in JSON Schema syntax, see Property forms (mandatory) Any domain-specific vocabulary can be added

WoT Thing Description Terms @context @type id name description support base security properties actions events links Entry point for Event Source Interactions Optional Thing might not emit Events Push messages from Things May be triggered through conditions that are not exposed as state Not state, but state transitions (events) are communicated In practice best effort consistency applies Events directly have data schema in JSON Schema syntax Event source description can be fed to JSON Schema validator

WoT Thing Description Terms @context @type id name description support base security properties actions events links Event vocabulary label (optional) description (optional) @type (optional) type (mandatory, data schema in JSON Schema syntax) forms (mandatory) Discussion: have input and output? Some subscription mechanisms need parameters such as filters events describe event sources, not data instances, hence they are similar to Actions with their data specifications!

WoT Thing Description Terms @context @type id name description support base security properties actions events links Web Links to other Things or additional metadata Optional Resources in links are fetchable Opposed to Linked Data predicates (e.g., domain-specific vocabulary) href field for URI Provide relations to other Things rel gives relation type, e.g., contains, partof, controls mediatype is application/td+json Provide additional metadata Serves as extension point (cf. CSS for HTML)

WG changed from the JSON-LD 1.0 based TD to the Simplified TD NEW SCRIPTING API

OLD WoT WG Changed to Simplified TD NEW let thing = WoT.produce({ name: "counter" // no support for // more metadata }); console.log("created thing " + thing.name); thing.addproperty( { name : "count", schema : '{ "type": "number"}', // no support for // custom metadata observable : true, writeable : true, value : 0 }); thing.addaction({ name: "increment" }); thing.setactionhandler( "increment", () => { return thing.readproperty("count").then(res=>{ thing.writeproperty("count", ++res); }); }); let thing = WoT.produce({ name: "counter", description: "counter example Thing", "@context": { "iot": "http://iotschema.org/" } }); console.log("created thing " + thing.name); thing.addproperty( "count", { type: "integer", description: "current counter value", "iot:custom": "example annotation", observable: true, writeable: true }, 0); thing.addaction("increment"); thing.setactionhandler( "increment", () => { return thing.properties["count"].get().then(res=>{ thing.properties["count"].set(++res); }); });

OLD WoT WG Changed to Simplified TD NEW WoT.fetch("http://localhost:8080/counter").then(td => { let thing = WoT.consume(td); thing.readproperty("count").then(res => { console.info("count value is", res); }).catch(err => { console.error(err); }); thing.invokeaction("increment"); WoT.fetch("http://localhost:8080/counter").then(td => { let thing = WoT.consume(td); thing.properties.count.get().then(res => { console.info("count value is", res); }).catch(err => { console.error(err); }); thing.actions.increment.run();

Contact Dr. Matthias Kovatsch Senior Research Scientist Siemens AG CT RDA IOT EWT-DE matthias.kovatsch@siemens.com