„OpenHAB" – Versionsunterschied
Version vom 23. Januar 2017, 19:00 Uhr
open Home Automation Bus (openHAB) | |
---|---|
Basisdaten | |
Hauptentwickler | Kai Kreuzer |
Entwickler | openHAB Community |
Aktuelle Version | 2.0.0 (22. Januar 2017) |
Aktuelle Vorabversion | 2.1.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
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 Yetu, welche beide den Eclipse SmartHome als eine Software-Basis für deren Gateways nutzen.[3]
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 hochmodulare 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 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) zugrunde liegen.
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:
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:
- Dropbox Support
- Google Calendar und CalDAV Support
- Text to speech-Implementierung (TTS)
- HABDroid kann per Sprachsteuerung Aktionen ausführen
Communities[4] [5] 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
Schnittstellen
User Interfaces
- 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)
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. 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.
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).
REST-API
Das RESTful Interface stellt eine offene Schnittstelle zu openHAB her, um mit anderen Systemen zu kommunizieren.
my.openHAB
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
Mittels MQTT-Binding können Item-Status zwischen MQTT-Brokern und openHAB ausgetauscht werden.
Auszeichnungen
openHAB gewann die IoT Challenge 2013[6] und den Duke’s Choice Award 2013 bei JavaOne.[7] Es wurde nominiert für den JAX Innovation Award 2014[8] und wurde der People's Choice Winner beim Postscapes IoT Awards 2014/15.[9] 2014 wurde openHAB eine der bestbekannten Open Source Hausautomatisierungslösungen[10] mit einer der größten Open Source Entwicklerteams der Welt.[11]
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).
- ↑ http://kaikreuzer.blogspot.de/2014/11/openhab-16-and-20-alpha-release.html
- ↑ http://www.mysensors.org/
- ↑ http://souliss.net
- ↑ IoT Challenge 2013. Abgerufen im 1. Januar 1
- ↑ 2013 Duke's Choice Awards. Abgerufen im 1. Januar 1
- ↑ JAX Innovation Award Nomination. Abgerufen im 1. Januar 1
- ↑ Postscapes IoT Awards 2014/15. Abgerufen im 1. Januar 1
- ↑ Fast Company Labs. Abgerufen im 1. Januar 1
- ↑ Blackduck's OpenHub Analysis. Abgerufen im 1. Januar 1