Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Lost in Abstraction

Lost in Abstraction

Why should a user buy an expensive IoT-Solution? Because it provides convenience. But to unleash the full potential, the user needs freedom to access all functions of a connected thing to support his special use case. Sadly, this often get lost in abstractions to support only the common features of a device class. In this talk I’ll show some examples of how to model things and how Eclipse SmartHome can help you to get the best experience for developing and using your IoT solution.

Sebastian Janzen

December 03, 2015
Tweet

More Decks by Sebastian Janzen

Other Decks in Programming

Transcript

  1. Smart Home is NOT a connected device is NOT a

    cloud service is NOT a single product
  2. “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
  3. The user’s expectations Flexibility: Cover custom use cases Extensibility: Installation

    extension Sustainability: Long term benefit Avoid vendor lock-in: Should be extensible
  4. U U+ U++ UI Device Cloud + Modifications to final

    product — Privacy — Offline
  5. 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
  6. 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
  7. Representation Binding Thing Channel Channel Channel Bridge Thing Item Link

    Hue Lamp Color Temp. Brightness Color Hue Bridge ColorItem Status: ONLINE State: #FF0000
  8. Binding Thing Channel Channel Channel Bridge Thing Thing Id, Name,

    Description, Bridge, Configuration, Channels
  9. 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
  10. 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
  11. Eclipse SmartHome Core Items Bindings Eclipse SmartHome Event Bus PubSub

    PubSub Rules PubSub Persistence PubSub Logging PubSub
  12. Core ItemTypes > Color > Contact > DateTime > Dimmer

    > Group > Location > Number > Player > Rollershutter > String > Switch
  13. Hardware UI State Washing Program Extra Parameters Power Water Amount

    Temperature Spin Extra H2O Door contact Time running Washing Machine Convenient ✓
  14. Hardware UI State Washing Program Extra Parameters P o w

    e r W a Washing Machine Power Water Amount Temperature Spin Extra H2O Door contact Time running Gateway Loss
  15. Hardware UI State Washing Program Extra Parameters P o w

    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
  16. Power Water Amount Temperature Spin Extra H2O Door contact Time

    running My Washing Machine Own Solution Loss
  17. Power Water Amount Temperature Spin Extra H2O Door contact Time

    running Thing Model SwitchItem NumberItem NumberItem NumberItem SwitchItem ContactItem NumberItem Items Own solutio X Y Setup Power Plug: Consumption NumberItem Use Cases
  18. 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
  19. Eclipse SmartHome Benefits > Good framework to implement IoT device

    lifecycle > Easy to understand > Parallel development: UI + Binding > UI Testing without devices > Offline, “Intranet of Things”