Zum Inhalt springen

openHAB

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 13. Juni 2021 um 15:24 Uhr durch SchneckenBlitzer (Diskussion | Beiträge) (Beispiele für Elemente in der Sitemap hinzugefügt.). Sie kann sich erheblich von der aktuellen Version unterscheiden.
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
Programmier­sprache 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

openHAB-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-Events

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

Screenshot HABdroid

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

Jabber 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

Einzelnachweise

  1. c't Developer: Heimautomatisierung mit openHAB: neue Bindings und Ausblick in die Zukunft vom 25. November 2014 (abgerufen am 21. April 2015)
  2. openHAB 2 has arrived! - Kai Kreuzer. Abgerufen am 23. Januar 2017 (englisch).
  3. openHAB 3.0 Release. Abgerufen am 16. Januar 2021 (amerikanisches Englisch).
  4. Eine App für alles? Smarthome-Steuerung Coqon im Test. In: computerbild.de. (computerbild.de [abgerufen am 10. Mai 2017]).
  5. http://kaikreuzer.blogspot.de/2014/11/openhab-16-and-20-alpha-release.html
  6. Sitemaps in openHAB erstellen. In: Bloggingwelt. 11. März 2019, abgerufen am 13. Juni 2021 (deutsch).
  7. Joda Time, auf joda-time.sourceforge.net, abgerufen am 8. Oktober 2018
  8. http://www.mysensors.org/
  9. http://souliss.net
  10. OSGi Overview, auf openhab.org, abgerufen am 8. Oktober 2018
  11. Official Google Assistant Integration for openHAB Ankündigung der Freigabe durch Google im openHAB Forum
  12. Welcome to myopenHAB, auf myopenhab.org, abgerufen am 8. Oktober 2018
  13. MQTT in openHAB einrichten. In: Bloggingwelt. 7. November 2020, abgerufen am 16. Januar 2021 (deutsch).
  14. IoT Challenge 2013.
  15. 2013 Duke's Choice Awards. Archiviert vom Original 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.@1@2Vorlage:Webachiv/IABot/www.java.net
  16. JAX Innovation Award Nomination.
  17. Postscapes IoT Awards 2014/15. Archiviert vom Original 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.@1@2Vorlage:Webachiv/IABot/postscapes.com
  18. Blackduck's OpenHub Analysis.