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 communications network that connects the key electrical appliances and services, and allows them to be remotely controlled , monitored or accessed .” 2003 UK Department of Trade and Industry - http:/ /goo.gl/7PW8Gv
It’s a system of things which support the occupants use cases .
Smart Home participants So fu ware n o A i t c c c a e r s e s t n I User Device Interaction
The user’s expectations Flexibility : Cover custom use cases Extensibility : Installation extension Sustainability : Long term bene fj t Avoid vendor lock-in : Should be extensible
U + U ++ U Passive Ambitioned Expert User User
U + U ++ U UI + Best setup — Extensibility — Flexibility Device
U + U ++ U UI + Modi fj cations to fj nal product — Privacy Cloud — O fg line Device
U + U ++ U UI UI UI UI Eclipse SmartHome Service Device Device Device
Eclipse SmartHome (ESH)
Eclipse SmartHome > 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
What you get > Structure to handle IoT devices > Web-Interfaces, Apps, Examples > More than 100 already supported things > Documentation > Commercial support available > Large and active community
What you do not get > Hardware > A Java license
openHAB Solution X Solution Y Eclipse SmartHome (ESH) OSGi Container JVM OS
How to use this?
Binding Representation UI Bridge Thing Thing Item Channel Link Channel Channel
Binding Representation Bridge Thing Hue Bridge Status: ONLINE State: #FF0000 Hue Lamp Thing ColorItem Item Channel Color Link Brightness Channel Color Temp. Channel
Binding Representation UI Bridge Thing GroupItem Thing Item Channel Link Channel Item Channel Link
Binding Bridge Thing Thing Thing Id, Name, Description, Channel Bridge, Con fj guration, Channels Channel Channel
Binding Bridge Thing Thing Channel Channel Id, Description, … Channel Con fj guration Channel
Representation Bridge Thing Thing Item Item Channel Type, Name, Channel Label, Icon, Tags, … Channel
Binding Representation Bridge Thing Thing Item Channel Link Channel Channel
Bundle Bridge Thing Thing Channel Channel Channel
Bundle Bundle Bundle Bridge Thing Bridge Thing Bridge Thing Thing Thing Thing Channel Channel Channel Channel Channel Channel Eclipse Channel Channel Channel SmartHome Bundle Bundle Bundle Bridge Thing Bridge Thing Bridge Thing Thing Thing Thing Channel Channel Channel Channel Channel Channel Channel Channel Channel
Bundle Bundle Bundle Bridge Thing Bridge Thing Bridge Thing UI Thing Thing Thing Channel Channel Channel Channel Channel Channel Eclipse Channel Channel Channel SmartHome Bundle Bundle Bundle Bridge Thing Bridge Thing Bridge Thing UI Thing Thing Thing Channel Channel Channel Channel Channel Channel Channel Channel Channel
UI Binding Binding Binding UI Binding Eclipse Persistence Rules SmartHome Discovery REST … UIs
Eclipse SmartHome Core Items Bindings Rules PubSub PubSub PubSub Eclipse SmartHome Event Bus PubSub PubSub Persistence Logging
How to program this?
/ESH-INF/thing/bridge.xml Bridge Thing
/ESH-INF/thing/LCT001.xml Thing
/ESH-INF/thing/channels.xml Channel
Core ItemTypes > Color > Number > Contact > Player > DateTime > Rollershutter > Dimmer > String > Group > Switch > Location
What does Lost in Abstraction mean?
Use case: Wash again, if washing fj nished and the door has not been opened a fu er 16h.
Convenient ✓ Power Washing Machine Water Amount Hardware UI Temperature State Spin Washing Program Extra H2O Extra Parameters Door contact Time running
Loss Power P Washing Machine Water Amount o Hardware UI Temperature w Gateway State Spin e Washing Program Extra H2O r Extra Parameters Door contact W Time running a
Power Power P Washing Machine Water Amount Water Amount o Hardware UI Temperature Temperature w State Spin Spin e Washing Program Extra H2O Extra H2O r Extra Parameters Door contact Door contact W API Time running Time running a
Own Solution Power Water Amount Temperature Spin My Washing Machine Extra H2O Door contact Time running Loss
Own solution Thing Model Items Power SwitchItem X Water Amount NumberItem Temperature NumberItem Y Spin NumberItem Extra H2O SwitchItem Door contact ContactItem Setup Time running NumberItem Power Plug: NumberItem Use Cases Consumption
Use case: Wash again on wmPower changed to OFF timer = startTimer({ wmPower.state = ON }, now + 16h) end on wmDoor changed to OPEN if timer then timer.cancel() end
Eclipse SmartHome Bene fj ts > Good framework to implement IoT device lifecycle > Easy to understand > Parallel development: UI + Binding > UI Testing without devices > O fg line, “Intranet of Things”
Thank you! Questions?
Recommend
More recommend