One Remote Control to Command them All! Building a ... · One Remote Control to Command them All!...

16
One Remote Control to Command them All! Building a Hypermedia API for ESP8266-based Devices Alexey Andreev, Daniil Garayzuev, Maxim Kolchin, Nikita Chursin and Ivan Shilin, ITMO University, Russia

Transcript of One Remote Control to Command them All! Building a ... · One Remote Control to Command them All!...

Page 1: One Remote Control to Command them All! Building a ... · One Remote Control to Command them All! Building a Hypermedia API for ESP8266-based Devices Alexey Andreev, Daniil Garayzuev,

One Remote Control to Command them All!

Building a Hypermedia API for ESP8266-based

Devices

Alexey Andreev, Daniil Garayzuev, Maxim Kolchin, Nikita Chursin and Ivan Shilin,

ITMO University, Russia

Page 2: One Remote Control to Command them All! Building a ... · One Remote Control to Command them All! Building a Hypermedia API for ESP8266-based Devices Alexey Andreev, Daniil Garayzuev,

Abstract

embedded systems (esp8266 wifi module)

self descriptive REST API

CoAP protocol

Hydra Core Vocabulary based approach and guidelines

Page 3: One Remote Control to Command them All! Building a ... · One Remote Control to Command them All! Building a Hypermedia API for ESP8266-based Devices Alexey Andreev, Daniil Garayzuev,

Introduction

Every IoT-devices developer is trying to build full stack

platform to provide access to them

Devices descpriptions, commands and observations could

be shared via stardartized protocols without limiting the

devices new features

Same clients could interact with the new devices if the new

schema is interhited from one used by client

Page 4: One Remote Control to Command them All! Building a ... · One Remote Control to Command them All! Building a Hypermedia API for ESP8266-based Devices Alexey Andreev, Daniil Garayzuev,

Requirements

Device discovery

Model-instance representation

Authentification

Publish/Subsribe pattern

On-demand configuration

Slepping nodes support

Page 5: One Remote Control to Command them All! Building a ... · One Remote Control to Command them All! Building a Hypermedia API for ESP8266-based Devices Alexey Andreev, Daniil Garayzuev,

Related work

SmallHydra

Approaches based on separated custom protocols adapters

Page 6: One Remote Control to Command them All! Building a ... · One Remote Control to Command them All! Building a Hypermedia API for ESP8266-based Devices Alexey Andreev, Daniil Garayzuev,

Device Software Guidelines

Page 7: One Remote Control to Command them All! Building a ... · One Remote Control to Command them All! Building a Hypermedia API for ESP8266-based Devices Alexey Andreev, Daniil Garayzuev,

Device Software Guidelines

Page 8: One Remote Control to Command them All! Building a ... · One Remote Control to Command them All! Building a Hypermedia API for ESP8266-based Devices Alexey Andreev, Daniil Garayzuev,

Device Software Guidelines

Page 9: One Remote Control to Command them All! Building a ... · One Remote Control to Command them All! Building a Hypermedia API for ESP8266-based Devices Alexey Andreev, Daniil Garayzuev,

Device Design Guidelines

Configuration mode for the initialization

For example, two-state hardware button to switch between configuration and

regular mode.

Page 10: One Remote Control to Command them All! Building a ... · One Remote Control to Command them All! Building a Hypermedia API for ESP8266-based Devices Alexey Andreev, Daniil Garayzuev,

Device Public API Guidelines

.well-known/core resource

API Documentation

Device Resource

Value Resource

Action Resource

{

"@context": "http://external/doc#",

"@id": "coap://1.1.1.1/",

"@type": "TemperatureDevice",

"identifier": "e9704",

"label": { "@value": "Temperature Device",

"@language": "en" },

"location": {

"@type": "Place",

"label": "1010"

},

"temperature": "/temperatureValue"

}

Page 11: One Remote Control to Command them All! Building a ... · One Remote Control to Command them All! Building a Hypermedia API for ESP8266-based Devices Alexey Andreev, Daniil Garayzuev,

Mobile Application Client Architecture

● sleeping nodes support

background service

● Devices identification in

configuration and regular mode

● Device discovery

Page 12: One Remote Control to Command them All! Building a ... · One Remote Control to Command them All! Building a Hypermedia API for ESP8266-based Devices Alexey Andreev, Daniil Garayzuev,

Mobile Application Client Architecture

Page 13: One Remote Control to Command them All! Building a ... · One Remote Control to Command them All! Building a Hypermedia API for ESP8266-based Devices Alexey Andreev, Daniil Garayzuev,

Mobile Application Client Architecture

Page 14: One Remote Control to Command them All! Building a ... · One Remote Control to Command them All! Building a Hypermedia API for ESP8266-based Devices Alexey Andreev, Daniil Garayzuev,

Mobile Application Client Architecture

Page 15: One Remote Control to Command them All! Building a ... · One Remote Control to Command them All! Building a Hypermedia API for ESP8266-based Devices Alexey Andreev, Daniil Garayzuev,

Case study

Page 16: One Remote Control to Command them All! Building a ... · One Remote Control to Command them All! Building a Hypermedia API for ESP8266-based Devices Alexey Andreev, Daniil Garayzuev,

Benefits

DIY devices could be easily integrated with the

clients without rebuilding them

Uncompatible brands devices could be

integrated to one system

Embedded devices developing and smart clients

to simplify tasks and reduce the expenses