43
Open IoT Made Easy OGC SensorThings API Steve Liang, Ph.D. Founder/CEO, SensorUp Associate Professor, University of Calgary @steveliang

Open IoT Made Easy - Introduction to OGC SensorThings API

Embed Size (px)

Citation preview

Open IoT Made Easy OGC SensorThings API

Steve Liang, Ph.D. Founder/CEO, SensorUp

Associate Professor, University of Calgary @steveliang

About Dr. Steve Liang๏Associate Professor, Geomatics Engineering, Uni. Calgary

๏AITF-Microsoft Industry Research Chair on Open Sensor Web

๏Chair OGC SensorThings API Standard Working Group

๏Rapporteur, ITU-T SG12/11 on Internet of Things Test Specifications

๏ Founder and CEO, SensorUp Inc

๏ Father of Noah Liang

About SensorUp๏We develop Sensor Web and IoT Platforms

๏ the first implementation of the OGC SensorThings API

๏We are leading several international IoT standard development efforts (OGC and ITU-T)

๏We are a member of Eclipse and Open Geospatial Consortium

Think about some Thing

Your Shirt

Your Drink

Your Parking

Your Baby

Your Pacifier

Your Cat Poop

Sensor and

Actuator

Smart Things

Network Operator

Device-Cloud API

Data and Analytics

APP-Cloud API

System Integrator/Applicatio

1 2 3 4 5 6 7

IoT Value Chain

Kura

OGC SensorThings

Paho Mosquitto

Californium

WhiskersWhiskers Whiskers

Why Locations matter?

System of Systems๏The real potential of the Internet of Things

Network Effect: The value of a network is proportional to the square of the number of users of the system (n²).

Today’s IoT Silos

Network A

Application A

Thing A

Network B

Application B

Thing B

Network C

Application C

Thing C

Network D

Application D

Thing D

“77% of surveyed IoT experts claimed that Interoperability is the biggest challenge currently facing

the Internet of Things”

Which hardware will Google choose to intentionally brick next?“

“the guardian

What is IoT Interoperability?๏ (IEEE) Interoperability is the ability of two or more (IoT)

systems or components to exchange information and to use the information that has been exchanged.

๏ (Brodie, 1993) Two components X and Y can interoperate (are interoperable) if X can send requests R for services to Y, based on a mutual understanding of R by X and Y, and if Y can similarly return mutually understandable responses S to X.

Is Open Source the Solution for IoT Interoperability?

Open Source can build silos too.

Open Standard + Open Source

Ask your IoT solution provider๏ Is your solution Open Standards

Compliance Certified?

๏Open Standards means standards from recognized Standard Development Organizations (SDOs).

OGC SensorThings API

“OGC specifications are outdated and difficult to use…”

“Someone at FOSS4G N.A.

Eclipse Whiskers

Whiskers: an open source implementation for OGC SensorThings API

SensorThings Entities UML

SensorThings Entities - 2

There is where it starts

http://URL/v1.0/

No Capabilities XMLHypermedia Driven Crawler/Search Engine Friendly

SensorThings URL Pattern

http://URL/v1.0/Datastreams(id)

http://URL/v1.0/Datastreams

http://URL/v1.0/Datastreams(id)/Observations

http://URL/v1.0/Observations(id)/Datastream

Not Hierarchical!! The URL pattern itself is a powerful query language. Same URL pattern applies to SensorThings MQTT extension.

Quiz - 1

http://URL/v1.0/FeaturesOfInterest(id)/Observations

Show me all Observations of this building

21.4 Celcius 35% RH 212 Occupants 3 employees needing coffee

Quiz - 2

http://URL/v1.0/Locations(id)/Things

Show me all Things located in this building

Thermostat Water tank Coffee Maker LED Lights

Quiz - 3

http://URL/v1.0/ObservedProperties(id)/Datastreams

Give me all Temperature Datastreams

Datastreams(1) Datastreams(2) ….

SensorThings $expand

http://URL/v1.0/Datastreams?$expand=Observations

Give me all Datastreams AND their Observations

Give me all Datastreams AND their latest Observations

http://URL/v1.0/Datastreams?$expand=Observations($top=1)

SensorThings $select

http://URL/v1.0/Datastreams?$select=unitOfMeasurement

Give me all Datastreams’ Unit of Measurement ONLY

SensorThings dataArray

http://URL/v1.0/Datastreams(id)/Observations?$resultFormat=dataArray

My bandwidth costs me! Give me the readings in compact form!!!

SensorThings Pagination

http://URL/v1.0/Observations? $top=100&$skip=100

http://URL/v1.0/Observations? $top=100&$skip=100&orderby=result desc

SensorThings Query Options

http://URL/v1.0/Observations? $filter=result gt 10.9

http://URL/v1.0/Datastreams? $filter=substringof('temp',description)

SensorThings Geospatial Filter

Locations?$filter=st_within(location, geography'POLYGON ((-117.850341796875 53.93021986394, -117.850341796875 54.44449176335762, -116.75170898437501 54.44449176335762, -116.75170898437501 53.93021986394, -117.850341796875 53.93021986394))')&$orderby=id desc

DEMO

Connected First Responders

https://www.youtube.com/watch?v=Xn7FTUs2qOE

Event Filtering and Notifications

https://www.youtube.com/watch?v=980CfUFTdgM&index=4&list=PLUSJC5mjKZ9RZJyzsLpFS0_Ziz8zGtYs9

SensorThings Playground

http://pg.sensorup.com

SensorThings Tutorials/Webinar

SensorUp