Lost in Abstraction
Sebastian Janzen
Lost in Abstraction Sebastian Janzen Sebastian @sebbe128 innoQ - - PowerPoint PPT Presentation
Lost in Abstraction Sebastian Janzen Sebastian @sebbe128 innoQ https://www.innoq.com What is a Smart Home ? Smart Home is NOT a connected device is NOT a cloud service is NOT a single product A dwelling incorporating a
Sebastian Janzen
https://www.innoq.com
2003 UK Department of Trade and Industry - http:/ /goo.gl/7PW8Gv
Interaction I n t e r a c t i
A c c e s s
U U+ U++
U U+ U++ UI Device
U U+ U++
UI Device
U U+ U++
UI UI UI
Eclipse SmartHome
Device Device Device Service UI
> An open source Internet of Things framework > Java OSGi based Project > Eclipse Public License > Since 2014 > Base of openHAB > Requirements: Java >= 6 > Base of successful commercial Projects
> Structure to handle IoT devices > Web-Interfaces, Apps, Examples > More than 100 already supported things > Documentation > Commercial support available > Large and active community
OS JVM
OSGi Container Eclipse SmartHome (ESH)
Solution X Solution Y
Representation Binding Thing Channel Channel Channel Bridge Thing Item
Link
UI
Representation Binding Thing Channel Channel Channel Bridge Thing Item
Link
Hue Lamp Color Temp. Brightness Color Hue Bridge ColorItem Status: ONLINE State: #FF0000
Representation Binding Thing Channel Channel Channel Bridge Thing Item
Link
UI Item GroupItem
Link
Binding Thing Channel Channel Channel Bridge Thing Thing
Id, Name, Description, Bridge, Confjguration, Channels
Binding Thing Channel Channel Channel Bridge Thing Id, Description, … Confjguration Channel
Thing Channel Channel Channel Bridge Thing Representation Item Type, Name, Label, Icon, Tags, … Item
Representation Binding Thing Channel Channel Channel Bridge Thing Item
Link
Bundle
Thing
Channel Channel Channel
Bridge Thing
Eclipse SmartHome Bundle
Thing
Channel Channel Channel
Bridge Thing
Bundle
Thing
Channel Channel Channel
Bridge Thing
Bundle
Thing
Channel Channel Channel
Bridge Thing
Bundle
Thing
Channel Channel Channel
Bridge Thing
Bundle
Thing
Channel Channel Channel
Bridge Thing
Bundle
Thing
Channel Channel Channel
Bridge Thing
Eclipse SmartHome Bundle
Thing
Channel Channel Channel
Bridge Thing
Bundle
Thing
Channel Channel Channel
Bridge Thing
Bundle
Thing
Channel Channel Channel
Bridge Thing
Bundle
Thing
Channel Channel Channel
Bridge Thing
Bundle
Thing
Channel Channel Channel
Bridge Thing
Bundle
Thing
Channel Channel Channel
Bridge Thing
UI UI
Eclipse SmartHome Binding Binding Binding Binding UI UI Persistence Rules REST Discovery … UIs
Eclipse SmartHome Core Items Bindings Eclipse SmartHome Event Bus
PubSub PubSub
Rules
PubSub
Persistence
PubSub
Logging
PubSub
Bridge Thing
/ESH-INF/thing/bridge.xml
Thing
/ESH-INF/thing/LCT001.xml
Channel
/ESH-INF/thing/channels.xml
> Color > Contact > DateTime > Dimmer > Group > Location > Number > Player > Rollershutter > String > Switch
Hardware UI State Washing Program Extra Parameters Power Water Amount Temperature Spin Extra H2O Door contact Time running Washing Machine Convenient ✓
Hardware UI State Washing Program Extra Parameters P
e r W a Washing Machine Power Water Amount Temperature Spin Extra H2O Door contact Time running Gateway Loss
Hardware UI State Washing Program Extra Parameters P
e r W a Washing Machine API Power Water Amount Temperature Spin Extra H2O Door contact Time running Power Water Amount Temperature Spin Extra H2O Door contact Time running
Power Water Amount Temperature Spin Extra H2O Door contact Time running My Washing Machine
Loss
Power Water Amount Temperature Spin Extra H2O Door contact Time running Thing Model SwitchItem NumberItem NumberItem NumberItem SwitchItem ContactItem NumberItem Items
X Y Setup Power Plug: Consumption NumberItem Use Cases
timer = startTimer({ wmPower.state = ON }, now + 16h) end
if timer then timer.cancel() end
> Good framework to implement IoT device lifecycle > Easy to understand > Parallel development: UI + Binding > UI Testing without devices > Ofgline, “Intranet of Things”