OpenHAB

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
open Home Automation Bus (openHAB)
Maintainer Kai Kreuzer
Entwickler openHAB Community
Aktuelle Version 2.1.0
(28.06.2017)
Aktuelle Vorabversion 2.2.0-SNAPSHOT
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 erfunden und hat viele Mitentwickler. Ende 2013 wurde entschieden openHAB als offizielles Eclipse-Projekt zu betreiben unter dem Namen Eclipse SmartHome. 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].

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[Bearbeiten | Quelltext bearbeiten]

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, Yetu und die Qbox von COQON[3], welche den Eclipse SmartHome als eine Software-Basis für deren Gateways nutzen.[4]

Architektur[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

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 hochmodulare Architektur zur Verfügung gestellt, die das Hinzufügen oder Entfernen von Funktionen während der Laufzeit ermöglicht.

Kommunikation[Bearbeiten | Quelltext bearbeiten]

openHAB-Events

openHAB hat zwei interne Kommunikationskanäle:

  • einen asynchronen Event-Bus
  • ein Item Repository

Event Bus[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

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 können unterschiedliche Sitemaps definiert werden, beispielsweise für mobile Geräte oder andere Darstellungsvarianten.

Item UI Providers[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

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) zugrunde liegen.

Unterstützte Technologien[Bearbeiten | Quelltext bearbeiten]

Bindings[Bearbeiten | Quelltext bearbeiten]

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:

Asterisk, Astro (Sonnenstandsberechnungen), Bluetooth, Comfo Air, CUPS, digitalSTROM, Daikin, DMX512, EnOcean, eKey, Epson Projector, Exec (Execute Command), Fritz!Box, Fritz AHA, GPIO, HDAnywhere, Heatmiser, HomeMatic, HTTP, IHC / ELKO, INSTEON Hub, IRTrans, KNX, Koubachi, MAX!Cube, MiLight, LCN Gebäudeleittechnik, Leviton/HAI Omnilink, Modbus TCP und RTU, MPD, MQTT, 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, Plex, Plugwise, PLCBus, PulseAudio, Pushover, Prowl, Pulseaudio Server, RFXCOM, Samsung TV, Serial, SNMP, Squeezebox, System Info, Somfy URTSI II, Sonos, Souliss, TCP/UDP, Tellstick, Swegon ventilation, TinkerForge, Tivo, VDR, Twitter, Wake-on-LAN, XBMC, Xively, xPL, Z-Wave

Es gibt weitere Features, die nicht als Binding, sondern zum Teil konfiguriert werden können:

Communities[5][6] 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[Bearbeiten | Quelltext bearbeiten]

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

Schnittstellen[Bearbeiten | Quelltext bearbeiten]

User Interfaces[Bearbeiten | Quelltext bearbeiten]

  • Classic UI – klassisches Webinterface
  • Apple iOS Client
  • Android Client – HABDroid ist ein Open Source Android User Interface für openHAB
  • Windows 10 Client
  • CometVisu

NFC (Near Field Communication)[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

Jabber Konsole

openHAB kann über die OSGi-Konsole bedient werden. 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[Bearbeiten | Quelltext bearbeiten]

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 derzeit per HUE-Emulation, wird künftig aber auch per Alexa Skill angeboten werden.

XMPP Instant Messaging Konsole[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

Eine weitere Möglichkeit, openHAB-Kommandos abzusetzen, geht zeitgesteuert über einen entsprechenden Eintrag im Google Kalender oder per CalDav-Kalender (z.B. ownCloud).

REST-API[Bearbeiten | Quelltext bearbeiten]

Das RESTful Interface stellt eine offene Schnittstelle zu openHAB her, um mit anderen Systemen zu kommunizieren.

my.openHAB[Bearbeiten | Quelltext bearbeiten]

Der Cloud-Service my.openHAB ermöglicht ohne Portfreischaltungen oder DynDNS-Einträge Remote-Zugriffe sowie direkte Push-Notifications in die Android-App (HABDroid). Der Service IFTTT ist in my.openHAB integriert.

MQTT[Bearbeiten | Quelltext bearbeiten]

Mittels MQTT-Binding können Item-Status zwischen MQTT-Brokern und openHAB ausgetauscht werden.

Auszeichnungen[Bearbeiten | Quelltext bearbeiten]

openHAB gewann die IoT Challenge 2013[7] und den Duke’s Choice Award 2013 bei JavaOne.[8] Es wurde nominiert für den JAX Innovation Award 2014[9] und wurde der People's Choice Winner beim Postscapes IoT Awards 2014/15.[10] 2014 wurde openHAB eine der bestbekannten Open Source Hausautomatisierungslösungen[11] mit einem der größten Open Source Entwicklerteams der Welt.[12]

Weblinks[Bearbeiten | Quelltext bearbeiten]

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  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. Eine App für alles? Smarthome-Steuerung Coqon im Test. In: computerbild.de. (computerbild.de [abgerufen am 10. Mai 2017]).
  4. http://kaikreuzer.blogspot.de/2014/11/openhab-16-and-20-alpha-release.html
  5. http://www.mysensors.org/
  6. http://souliss.net
  7. IoT Challenge 2013.
  8. 2013 Duke's Choice Awards.
  9. JAX Innovation Award Nomination.
  10. Postscapes IoT Awards 2014/15.
  11. Fast Company Labs.
  12. Blackduck's OpenHub Analysis.