1. TINF15AI-BC / Software Architecture Management / 20. April 2018
OpenHAB Architektur
—
Mai Tran & Paul Bauriegel
Duale Hochschule Baden-Württemberg - Mannheim
20. April 2018
1
2. Die nächsten 20 Minuten …
2TINF15AI-BC / Software Architecture Management / 20. April 2018
1. Was ist OpenHAB?
3. OpenHAB Architektur
2. Einflussfaktoren für OpenHAB
4. Zusammenfassung
Icon made by Freepik from www.flaticon.com
3. TINF15AI-BC / Software Architecture Management / 20. April 2018
Was ist OpenHAB?
Was ist OpenHAB?
3Logo from https://community.openhab.org/t/new-logo-for-openhab/35140
Sticker made by Telegram Team from tlgrm.eu and by alovitsm from pngtree.com
Wen
kümmert's
4. TINF15AI-BC / Software Architecture Management / 20. April 2018
Was ist OpenHAB?
Was ist OpenHAB? – Eclipse Smarthome
“Eclipse SmartHome is not a product itself, but a framework
to build solutions on top”
Eclipse Foundation (2018)
4Source: https://iot.eclipse.org/working-group/ | https://www.eclipse.org/smarthome/
Logos from iot.eclipse.org
… entwickelt Projekte wie …
5. TINF15AI-BC / Software Architecture Management / 20. April 2018
Was ist OpenHAB ?
Bosch IoT Gateway?
5Source: https://www.bosch.com/de/unser-unternehmen/zahlen-und-fakten/
https://assets.bosch.com/media/global/bosch_group/our_figures/pdf/bosch-geschaeftsbericht-2016.pdf (17.04.2018)
Icons made by Freepik, Hadrien from www.flaticon.com
6,2Mio
Sensoren
2016
eingeführt
100
Projekte
Bosch
IoT Suite
6. TINF15AI-BC / Software Architecture Management / 20. April 2018
Was ist OpenHAB ?
QIVICON?
6Source: http://www.openhabfoundation.org/documents/2017-10_Jochen_Hiller_QIVICON.pdf, https://www.qivicon.com/de/unsere-partner/,
https://www.h-brs.de/files/20171214_fbinf_mclab_2016-10-25-ba-jungnickel-qivicon_mk.pdf
https://play.google.com/store/apps/details?id=de.telekom.smarthomeb2c | Icons made by Freepik, Hadrien from www.flaticon.com
100Tsd
Downloads
2011
gegründet
43Firmen
kooperieren
Magenta
Smart Home
7. TINF15AI-BC / Software Architecture Management / 20. April 2018
Was ist OpenHAB ?
Open Home Automation Bus
7
2010
eingeführt
Eclipse
Smarthome
Referenzimplementierung
955
Protokolle
2.2.0
Version
Kai Kreuzer
Entwickler/Maintainer
JavaProgrammiersprache
Source: http://www.kaikreuzer.de/2014/06/16/openhab-20-and-eclipse-smarthome/, https://github.com/openhab/openhab-distro/releases
http://www.openhab.org/downloads.html, https://docs.openhab.org/addons/bindings.html
Icons made by Freepik, Hadrien from www.flaticon.com
8. TINF15AI-BC / Software Architecture Management / 20. April 2018
Was ist OpenHAB?
Was ist OpenHAB?
8Source: https://www.qivicon.com/assets/PDF/Whitepaper-Smart-Home-Telekom-Feb-2016-EN.pdf
Logos from wikipedia.org | Icon made by Ricardo Baddouh from flaticon.com
2011 Gegründet
Funktionalität übertragen
Der open Home Automation Bus ist ein Smart Home
System, welches verschiedene Heimautomatisierungs-
systeme über ein vereinheitlichtes Interface verwaltet.
10. TINF15AI-BC / Software Architecture Management / 20. April 2018
Warum OpenHAB?
… wie soll man da noch durchsehen?
10Source: https://docs.openhab.org/addons/bindings.html | Logos from openhab.com and Sticker made by Telegram Team from trgmr.eu
11. TINF15AI-BC / Software Architecture Management / 20. April 2018
Warum OpenHAB?
Ganz einfach – OpenHAB nutzen!
11Source: https://docs.openhab.org/addons/bindings.html | Icons made by Minh Hoang, Pixel Perfect from
12. TINF15AI-BC / Software Architecture Management / 20. April 2018
Einflussfaktoren für OpenHAB
12http://www.openhab.org/introduction.html, https://www.slideshare.net/xthirtynine/openhab-techtalk-developergarden-Darmstadt,
http://www.kaikreuzer.de/2017/01/23/openhab2/
13. TINF15AI-BC / Software Architecture Management / 20. April 2018 13Source: http://www.openhab.org/introduction.html, https://www.slideshare.net/xthirtynine/openhab-techtalk-developergarden-Darmstadt,
http://www.kaikreuzer.de/2017/01/23/openhab2/
Icons made by mynamepong, Good Ware, Freepik, dDara from www.flaticon.com
Einflussfaktoren für OpenHAB
Organisatorische Einflussfaktoren
O1 - Community
O2 - Open Source
O3 - Kenntnisse in Java und Eclipse
populäre/offene Programmiersprache/Technologien
verwenden
Verwendung von anderer Open Source
Software
Programmiersprache + Präferenz für Eclipse Projekte +
We ♥ Java
Welche
Faktoren sind
interessant?
14. TINF15AI-BC / Software Architecture Management / 20. April 2018 14Source: http://www.openhab.org/introduction.html, https://www.slideshare.net/xthirtynine/openhab-techtalk-developergarden-Darmstadt,
http://www.kaikreuzer.de/2017/01/23/openhab2/ (17.04.18)
Icons made by Those Icons, Freepix, Kiranshastry, Catalin Fertu, Puppets, Epic Coders, Pixelmeetup from www.flaticon.com
Einflussfaktoren für OpenHAB
Produktfaktoren
P1 - Daten beim Nutzer
P2 - Erweiterbarkeit
P3 - IDE für Entwicklung & Debugging
Nutzung vorhandener IDE, die erweiterbar ist
Support von Community Add-Ons,
Erweiterung um neue Protokolle/Oberflächen
Kapselung der Services
Nutzung anderer Open Source/herstellerunabhängig,
aktuelle Technologien – Intranet der Dinge
P5 - verschiedene Hersteller
P6 - Benutzerzentriert
herstellerunabhängige Use Cases,
ansprechende & intuitive Benutzeroberfläche
Abstraktion unterschiedlicher Protokolle,
Diversität für Hardware
Kooperation mit verschiedenen Partnern
P4 - diverse Sensoren/Aktuatoren
15. TINF15AI-BC / Software Architecture Management / 20. April 2018 15
Welche
Faktoren sind
interessant?
Einflussfaktoren für OpenHAB
Technologische Faktoren
T1 - plattformunabhängig
T2 - Stabilität
T3 - verschiedene Protokolle
T4 - Integration in andere Systeme
Ausführung auf Embeded Systems &
allen gängigen Betriebssystemen
Fehlerfreie Funktion bei Integration vieler
IoT-Geräte
Programmiersprache, die bereits viele Protokolle
etc. kann bzw. leicht erweiterbar ist, Abstraktion
Nutzung von "Standards", standardisierte Schnittstelle,
Integration in existierende Systeme, Kapselung
Source: https://www.builderscave.com/openhab-als-smarthome-zentrale, http://www.openhab.org/introduction.html, https://www.slideshare.net/xthirtynine/openhab-
techtalk-developergarden-Darmstadt, http://www.kaikreuzer.de/2017/01/23/openhab2/ (17.04.18)
Icons made by Those Icons, Freepix, Kiranshastry, Catalin Fertu, Puppets, Epic Coders, Pixelmeetup from www.flaticon.com
16. TINF15AI-BC / Software Architecture Management / 20. April 2018
Architektur von OpenHAB
High-Level Sicht des Benutzers
16
Bindings
Things
Items
Rules
DeviceDeviceDeviceDevice
Web UI
REST API
Source: https://www.builderscave.com/openhab-als-smarthome-zentrale (17.04.18) | https://docs.openhab.org/concepts/index.html
Icons made by Those Icons, Freepix, Kiranshastry, Catalin Fertu, Puppets, Epic Coders, Pixelmeetup from www.flaticon.com
17. TINF15AI-BC / Software Architecture Management / 20. April 2018
Architektur von OpenHAB
High-Level Sicht des Benutzers
17
Bindings
Things
Items
Rules
DeviceDeviceDeviceDevice
Source: https://www.builderscave.com/openhab-als-smarthome-zentrale (17.04.18) | https://docs.openhab.org/concepts/index.html
Icons made by Those Icons, Freepix, Kiranshastry, Catalin Fertu, Puppets, Epic Coders, Pixelmeetup from www.flaticon.com
19. Architektur von OpenHAB
High-Level Komponentensicht
19
OSGi
Core Library
HTTP Service
Add-ons
Sicht: Entwurfssicht
O2 – Opensource
O3 – Kenntnisse in Java
und Eclipse
P2 – Erweiterbarkeit
T4 – Integration in andere
Systeme
OSGi = Open Services
Gateway initiative
= Komponenten
Modell Framework
Eclipse Equinox = OSGi
Framework
Apache Karaf = OSGi
Application Server
Pattern: Schichten
TINF15AI-BC / Software Architecture Management / 20. April 2018 Source: https://docs.openhab.org/introduction.html | https://docs.openhab.org/developers/contributing/contributing (17.04.18)
Icon made by Freepik, Chris Veigt from www.flaticon.com
20. Architektur von OpenHAB
High-Level Entwurfssicht
TINF15AI-BC / Software Architecture Management / 20. April 2018 20
Sicht: Entwurfssicht
O2 – Opensource
O3 – Kenntnisse in Java
und Eclipse
P2 – Erweiterbarkeit
T4 – Integration in andere
Systeme
OSGi = Open Services
Gateway initiative
= Komponenten
Modell Framework
Eclipse Equinox = OSGi
Framework
Apache Karaf = OSGi
Application Server
Pattern: Schichten
Source: https://docs.openhab.org/introduction.html | https://docs.openhab.org/developers/contributing/contributing (17.04.18)
Icon made by Freepik, Chris Veigt from www.flaticon.com
21. Architektur von OpenHAB
Eclipse Equinox – Das OSGi Framework
TINF15AI-BC / Software Architecture Management / 20. April 2018 21
“OSGi technology is a set of specifications that
define a dynamic component system for Java”
OSGi™ Alliance (2018)
Source: https://de.wikipedia.org/wiki/OSGi (17.04.18) | https://www.osgi.org/developer/architecture/ | http://homepages.dcc.ufmg.br/~mtov/pub/2008_sen.pdf
https://www.eclipsecon.org/na2014/sites/default/files/slides/EclipseCon%202014%20-%20Equinox.pdf
https://www.eclipse.org/equinox/documents/eclipsist2007/EclipseSummitTurkey2007-OSGiEquinoxExplained.pdf
Pattern: Call-and-Return
P2 – Erweiterbarkeit
T1 – plattformunabhängig
T2 – Stabilität
T4 – Integration in andere Systeme
Drei Schritte von OSGi:
1. Bundle A veröffentlich Schnittstelle
2. Bundles B liest diese Spezifikation
3. Bundles B kann Methoden von A nutzen
Sicht: Physikalische Sicht
22. Architektur von OpenHAB
Eclipse Equinox – Das OSGi Framework
TINF15AI-BC / Software Architecture Management / 20. April 2018 22
“OSGi technology is a set of specifications that
define a dynamic component system for Java”
OSGi™ Alliance (2018)
Source: https://de.wikipedia.org/wiki/OSGi (17.04.18) | https://www.osgi.org/developer/architecture/ | http://homepages.dcc.ufmg.br/~mtov/pub/2008_sen.pdf
https://www.eclipsecon.org/na2014/sites/default/files/slides/EclipseCon%202014%20-%20Equinox.pdf
https://www.eclipse.org/equinox/documents/eclipsist2007/EclipseSummitTurkey2007-OSGiEquinoxExplained.pdf
Pattern: Call-and-Return
P2 – Erweiterbarkeit
T1 – plattformunabhängig
T2 – Stabilität
T4 – Integration in andere Systeme
Drei Schritte von OSGi:
1. Bundle A veröffentlich Schnittstelle
2. Bundles B liest diese Spezifikation
3. Bundles B kann Methoden von A nutzen
Sicht: Physikalische Sicht
23. Architektur von OpenHAB
Detaillierte Komponenten Sicht
TINF15AI-BC / Software Architecture Management / 20. April 2018 23Source: https://github.com/openhab/openhab1-addons/wiki | https://www.slideshare.net/xthirtynine/against-all-odds-ein-wolkenloses-smart-home?from_action=save
http://www.openhabfoundation.org/documents/2017-10_Jochen_Hiller_QIVICON.pdf (17.04.18)
Icon mady by gayatri from https://thenounproject.com/search/?q=eye&i=154947
CLOUD
BINDING
WEB UI
COMP.
RUNTIME
openHAB
SERVICE
SUB-
SYSTEM
BINDING
PRODUCT
BINDING
PROTOKOL
BINDING
DISCOVERY
SERVICE
REST API ONEM2M EMULATION
WEB
Service
THINGS /
BINDINGS API
ECLIPSE SMARTHOME CORE
RULES
ENGINE
PERSIS-
TENCE
VOICE
ENABLING
GUI
openHAB 2 CORE
ESH SUPPORT
GUI
MODEL/
CONFIG
UPNP
MDNS
MQTT
SERIAL
PROTOCOL
SUPPORT
HTTP
SERVER
(JETTY)
MODULES
TEMPLATES
TEXT-TO-SPEECH
SPEECH-TO-TEXT
HUMANLANGUAGE
MEMORY
LOCAL
CLOUD
WIDGETS
ICONSETS
CHARTENGINE
BASICUI
HOMEBUILDER
CONSOLE
HABMIN
CONFIGFILES
Sicht: Komponenten
P4 – diverse Sensoren
(Protokoll Binding)
P5 – verschiedene
Hersteller
(Product Binding)
P6 – herstellerabhängige
Config & WebUI
T3 – verschiedene
Protokolle (UPNP,
MQTT, SERIAL)
T4 – Integration anderer
Systeme (Bindings)
Eclipse SmartHome (ESH)
= Stellt Schnittstellen
für Smart Home
OpenHAB Core
= Implementiert die
Schnittstellen des ESH
Pattern: Schichten
24. Architektur von OpenHAB
Event-View Komponenten Sicht
TINF15AI-BC / Software Architecture Management / 20. April 2018 25Source: https://www.slideshare.net/xthirtynine/against-all-odds-ein-wolkenloses-smart-home?from_action=save (17.04.18) | Icon mady by gayatri from
thenounproject.com
Pattern: Event-Bus
EVENT BUS
HUE
BINDING
SONOS
BINDING
ZWAVE
BINDING
DASH
BUTTON
BINDING
AUTOMATION LOGIC
WEB UI
REST API
PERSITENCESTATES
STATES
STATES
STATE
UPDATE
STATE
UPDATE
ITEM
REGISTY
COMMAND
STATE
UPDATE
COMMAND
TRIGGER
STATE
UPDATE
COMMAND
STATE
UPDATE
COMMAND
STATE
UPDATE
COMMAND
COMMAND
TRIGGER
Sicht: Ablaufsicht
P4 – verschiedene Geräte
über einen Bus
angeschlossen
P5 – Event Bus kann von
verschiedenen
Herstellern genutzt
werden
T3 – Eine UI/ Logik für
verschiedene
Protokolle
T4 – Integration in andere
Hersteller-Systeme
Viele Bindings – 1 Bus
Pattern: Event-Bus
27. Architektur von OpenHAB
OSGi Lifecycle
“OSGi technology is a set of specifications that
define a dynamic component system for Java”
OSGi™ Alliance (2018)
BACKUP