openHAB
open Home Automation Bus (openHAB)
| |
---|---|
![]() | |
Basisdaten
| |
Hauptentwickler | Kai Kreuzer |
Entwickler | openHAB Community |
Aktuelle Version | 3.0.0 (21. Dezember 2020) |
Aktuelle Vorabversion | 3.1.0 Snapshot (20. Dezember 2020) |
Betriebssystem | Linux, Windows, Mac OS X, Unix, Solaris, OpenBSD, FreeBSD |
Programmiersprache | Java |
Kategorie | Gebäudeautomatisierung |
Lizenz | Eclipse Public License |
www.openhab.org |
open Home Automation Bus (openHAB) ist eine in Java entwickelte Softwarelösung, die Komponenten zur Gebäudeautomatisierung von den verschiedensten Anbietern hersteller- und protokollneutral in einer Plattform miteinander verbindet. openHAB wurde von Kai Kreuzer 2010 initiiert und hat viele Mitentwickler. Ende 2013 wurde entschieden, openHAB als offizielles Eclipse-Projekt unter dem Namen Eclipse SmartHome zu betreiben. openHAB und Eclipse SmartHome werden parallel weiterentwickelt. Architektur und Funktionen werden überwiegend im Eclipse-SmartHome-Projekt weiterentwickelt, während für Binding-Entwickler weiterhin die openHAB-Website die erste Adresse ist.[1]
openHAB 2 hat einen Fokus auf den Benutzerkomfort beim Einrichten und Konfigurieren. Dafür wurden zahlreiche Verbesserungen gegenüber Version 1 eingeführt.[2]
Auch bei openHAB 3 wurde noch einmal mehr Wert auf eine erweiterte grafische Benutzeroberfläche gelegt.[3]
openHAB ist betriebssystemunabhängig und ist durch Hinzufügen weiterer Bindings um zusätzliche Technologien/Protokolle erweiterbar. Entwickelt wird openHAB unter der Eclipse Public License und ist Open Source. Als Userinterfaces werden Webbrowser, Android- oder Apple iOS-Systeme unterstützt.
Unterstützung und Verbreitung
Prominente offizielle Unterstützer sind zum Beispiel KNX, Enocean, Insteon, HomeMatic und Z-Wave. Auf der Basis von Eclipse SmartHome sind auch die ersten kommerziellen Produkte für den Massenmarkt herausgekommen wie von der Deutschen Telekom mit QIVICON und die Qbox von COQON[4], welche den Eclipse SmartHome als eine Software-Basis für deren Gateways nutzen.[5]
Architektur

Das openHAB-Projekt ist geteilt in
- openhab-runtime
- dies entspricht dem Serverprozess, der die Aktionen ausführt.
- openhab-designer
- dies stellt eine benutzerfreundliche Konfigurationsoberfläche auf Basis von Eclipse dar.
openHAB Runtime
Die openHAB Runtime ist ein Paket von OSGi Bundles eingebettet in das OSGi Framework (Equinox). Es ist eine reine Java-Lösung und benötigt daher eine JVM. Basierend auf dem OSGi, wird eine modulare Architektur zur Verfügung gestellt, die das Hinzufügen oder Entfernen von Funktionen während der Laufzeit ermöglicht.
Kommunikation

openHAB hat zwei interne Kommunikationskanäle:
- einen asynchronen Event-Bus
- ein Item Repository
Event Bus
Der Event Bus ist der Basisservice von openHAB. Alle nicht statusbezogenen Bundles informieren darüber andere Bundles über den Status von Events. Alle Protokoll Bindings (die einen physischen Link zur realen Hardware herstellen) sollten über diesen Event Bus kommunizieren. Als technische Basis dient der OSGi EventAdmin Service.
Item Repository
Für statusbezogene Funktionen bietet openHAB das Item Repository an, das mit dem Event Bus verbunden ist und die aktuellen Status der Items verfolgt. Somit kann das Item Repository herangezogen werden, um den aktuellen Status eines Items abzufragen, zum Beispiel für die Darstellung in einer Visualisierung, für die Verarbeitung in Logiken oder für den Persistenz-Dienst. Das Item Repository verhindert damit, dass angebundene Dienste die Status selbst speichern müssen und stellt diese in einem zentralen Dienst zur Verfügung.
Sitemap
openHAB hat ein generisch konfigurierbares User Interface (UI), die sogenannte Sitemap. Die Sitemap ist eine Baumstruktur von Widgets, die die verschiedenen Seiten und den Inhalt des UI definieren. Widgets können Items sein, die den aktuellen Status darstellen oder auch Schalter oder Grafiken. Es lassen sich beispielsweise Gruppen, Frames oder Farbwähler einbinden.[6] Es können unterschiedliche Sitemaps definiert werden, beispielsweise für mobile Geräte oder andere Darstellungsvarianten.
Item UI Providers
Item UI Providers bietet eine Möglichkeit, das UI dynamisch zu generieren. In Item- und Gruppendefinitionen können die Erscheinungsbilder von Widgets konfiguriert werden, so dass die Sitemap daraus dynamisch erzeugt werden kann. Ein Anwendungsfall ist, alle Elemente einer Gruppe anzeigen zu lassen, indem im Sitefile nur die Gruppe deklariert wird.
openHAB Designer
Der openHAB Designer ist eine Eclipse-RCP-Anwendung für die Konfiguration der openHAB runtime. Er liefert einen Editor für die nötigen Konfigurationsdateien und inkludiert Syntax-Prüfung, auto completion und kontextspezifische Markierungen. Zum Erstellen von Automatisierungslogiken kommen Regeln zum Einsatz, welchen die Technologien Xtext, xBase, Quartz (Zeitplansteuerung) und Joda Time (Zeit und Datumsberechnungen)[7] zugrunde liegen.
Der openHAB Designer gilt als veraltet und wurde von einer Erweiterung für Visual Studio Code abgelöst.
Unterstützte Technologien
Bindings

Die OSGi-Plattform erlaubt aufgrund der modularen Architektur eine flexible Erweiterung um Technologien. Somit kann die Funktionalität durch Einbinden von Bindings einfach angepasst werden. Folgende Bindings stehen unter anderem zur Verfügung, der Umfang wird stetig erweitert:
Amazon Alexa, Asterisk, Astro (Sonnenstandsberechnungen), Bluetooth, Comfo Air, CUPS, Daikin, digitalSTROM, DMX512, eKey, Enocean, Epson Projector, Exec (Execute Command), Fritz!Box, Fritz AHA, GPIO, HDAnywhere, Heatmiser, HomeMatic, HTTP, IHC / ELKO, Innogy, INSTEON Hub, IRTrans, KNX, Koubachi, LCN Gebäudeleittechnik, Leviton/HAI Omnilink, Loxone, MAX!Cube, MiLight, Modbus TCP und RTU, MPD, MQTT, Nest, Netatmo, Network Health, Nibe Heatpump, Nikobus, Novelan/Luxtronic Heatpump, NTP, One-Wire, Onkyo AV Receiver, Open energy monitor, OpenPaths, OpenSprinkler, OSGi Configuration Admin, Philips Hue, Piface, Pioneer AV receiver, PLC-BUS, Plex, Plugwise, Prowl, PulseAudio, Pulseaudio Server, Pushover, RFXCOM, Samsung TV, Serial, SNMP, Somfy URTSI II, Sonos, Souliss, Squeezebox, Swegon ventilation, System Info, TCP/UDP, Tellstick, TinkerForge, Tivo, Twitter, VDR, Wake-on-LAN, XBMC, Xively, xPL, Z-Wave, ZigBee
Es gibt weitere Features, die nicht als Binding, sondern zum Teil konfiguriert werden können:
- Dropbox Support
- Google Calendar und CalDAV Support
- Text to speech-Implementierung (TTS)
- HABDroid kann per Sprachsteuerung Aktionen ausführen, ebenso wie Amazon Alexa
Communitys[8][9] aus dem IoT-Umfeld stellen Arduino-basierte Plattformen zur Verfügung, die via serial-, MQTT- oder Souliss-Binding an openHAB angebunden werden können.
Persistence
Der Persistence Service ermöglicht das Speichern von Status der einzelnen Items. Somit können Verläufe visualisiert, historische Daten abgefragt oder bei einem Systemneustart der Status wiederhergestellt werden. Folgende Services stehen unter anderem zur Verfügung, der Umfang wird stetig erweitert:
- db4o – eine Java-Objekt-Datenbank
- rrd4j – eine Java-Version der round-robin-Datenbank RRDtool.
- MySQL – eine Schnittstelle zu einer MySQL-Datenbank.
- Open.Sen.Se – eine Internet-of-Things-Plattform
- logging using Logback – schreibt Item Status in ein Logfile mit flexibler Syntax-Definition
- influxdb – eine "time series" Datenbank
Schnittstellen
User Interfaces
- Paper UI – Setup und Konfigurations Webinterface
- Basic UI – Webinterface
- Apple iOS Client
- Android Client – HABDroid ist ein Open Source Android User Interface für openHAB
- Windows 10 Client
- HABPanel – Dashboards
- CometVisu
- Amazon Alexa
- Google Assistant
NFC (Near Field Communication)
Der Android-Client HABDroid ist in der Lage, NFC-Tags zu beschreiben und zu lesen. Somit kann durch Scannen eines entsprechend beschriebenen NFC-Tags eine Aktion ausgeführt werden.
OSGi Konsole

openHAB kann über die OSGi-Konsole bedient werden.[10] Damit können Kommandos an den Eventbus gesendet werden, um Items zu schalten oder Status abzufragen, z. B.
---openHAB commands--- openhab send <item> <command> – sendet einen Befehl an ein Item (z. B. Licht ein) openhab status <item> – zeigt den aktuellen Status eines Items openhab say <sentence to say> – spricht eine Nachricht mittels der TTS Speech-Engine
Sprachsteuerung
Mittels der mobilen Applikation HABDroid ist eine Steuerung per Sprache möglich. Dabei wird die Google Speech Engine verwendet. Außerdem kann der Amazon Sprachdienst (Alexa) mit Amazon Echo oder Amazon Dot an openHAB angebunden werden. Dies geschieht per HUE-Emulation oder per Alexa Skill.
Ebenfalls unterstützt werden Google Home bzw. der Google Assistant[11].
XMPP Instant Messaging Konsole
openHAB unterstützt einen Fernzugriff via XMPP (Jabber). Damit kann über einen persönlichen Jabber-Account mit der Hausautomatisierung „gechattet“ werden. Befehle sind ähnlich denen der OSGi-Konsole.
Google Kalender Konsole
Eine weitere Möglichkeit, openHAB-Kommandos abzusetzen, geht zeitgesteuert über einen entsprechenden Eintrag im Google Kalender oder per CalDav-Kalender (z. B. ownCloud oder Nextcloud).
REST-API
Das RESTful Interface stellt eine offene Schnittstelle zu openHAB her, um mit anderen Systemen zu kommunizieren.
myopenHAB
Der Cloud-Service myopenHAB ermöglicht ohne Portfreischaltungen oder DynDNS-Einträge Remote-Zugriffe sowie direkte Push-Notifications in die Android-App (HABDroid).[12] Der Service IFTTT ist in myopenHAB integriert.
MQTT
Mittels MQTT-Binding können Item-Status zwischen MQTT-Brokern und openHAB ausgetauscht werden.[13]
Auszeichnungen
openHAB gewann die IoT Challenge 2013[14] und den Duke’s Choice Award 2013 bei JavaOne.[15] Es wurde nominiert für den JAX Innovation Award 2014[16] und wurde der People's Choice Winner beim Postscapes IoT Awards 2014/15.[17] openHAB hat eines der größten Open-Source-Entwicklerteams der Welt.[18]
Siehe auch
Weblinks
- openhab.org — Offizielle Webseite von openHAB
- eclipse.org/smarthome — Offizielle Webseite Eclipse SmartHome
- innoq.com/... — Artikel von Kai Kreuzer, dem Erfinder von openHAB über Eclipse SmartHome vom 10. November 2014 (abgerufen 21. April 2015)
- openHAB Dokumentation — Offizielle openHAB 2 Dokumentation
- openHAB Community — Englischsprachiges Supportforum
Einzelnachweise
- ↑ c't Developer: Heimautomatisierung mit openHAB: neue Bindings und Ausblick in die Zukunft vom 25. November 2014 (abgerufen am 21. April 2015)
- ↑ openHAB 2 has arrived! - Kai Kreuzer. Abgerufen am 23. Januar 2017 (englisch).
- ↑ openHAB 3.0 Release. Abgerufen am 16. Januar 2021 (amerikanisches Englisch).
- ↑ Eine App für alles? Smarthome-Steuerung Coqon im Test. In: computerbild.de. (computerbild.de [abgerufen am 10. Mai 2017]).
- ↑ http://kaikreuzer.blogspot.de/2014/11/openhab-16-and-20-alpha-release.html
- ↑ Sitemaps in openHAB erstellen. In: Bloggingwelt. 11. März 2019, abgerufen am 13. Juni 2021 (deutsch).
- ↑ Joda Time, auf joda-time.sourceforge.net, abgerufen am 8. Oktober 2018
- ↑ http://www.mysensors.org/
- ↑ http://souliss.net
- ↑ OSGi Overview, auf openhab.org, abgerufen am 8. Oktober 2018
- ↑ Official Google Assistant Integration for openHAB Ankündigung der Freigabe durch Google im openHAB Forum
- ↑ Welcome to myopenHAB, auf myopenhab.org, abgerufen am 8. Oktober 2018
- ↑ MQTT in openHAB einrichten. In: Bloggingwelt. 7. November 2020, abgerufen am 16. Januar 2021 (deutsch).
- ↑ IoT Challenge 2013.
- ↑ 2013 Duke's Choice Awards. Archiviert vom am 13. Januar 2014; abgerufen am 13. Januar 2014. Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.
- ↑ JAX Innovation Award Nomination.
- ↑ Postscapes IoT Awards 2014/15. Archiviert vom am 9. März 2016; abgerufen am 31. Mai 2016. Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.
- ↑ Blackduck's OpenHub Analysis.