„OpenHAB" – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
Versionsgeschichte interaktiv durchsuchen
[ungesichtete Version] [gesichtete Version]
← Zum vorherigen Versionsunterschied Zum nächsten Versionsunterschied →
Inhalt gelöscht Inhalt hinzugefügt
Zeile 20: Zeile 20:
'''open Home Automation Bus''' ('''openHAB''') ist eine in [[Java (Programmiersprache)|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 Foundation|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.<ref>c't Developer: [http://heise.de/-2462924 ''Heimautomatisierung mit openHAB: neue Bindings und Ausblick in die Zukunft''] vom 25. November 2014 (abgerufen am 21. April 2015)</ref>
'''open Home Automation Bus''' ('''openHAB''') ist eine in [[Java (Programmiersprache)|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 Foundation|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.<ref>c't Developer: [http://heise.de/-2462924 ''Heimautomatisierung mit openHAB: neue Bindings und Ausblick in die Zukunft''] vom 25. November 2014 (abgerufen am 21. April 2015)</ref>


openHAB 2 hat einen Fokus auf den Benutzerkomfort beim Einrichten und Konfigurieren. Dafür wurden zahlreiche Verbesserungen gegenüber Version 1 eingeführt.
openHAB 2 hat einen Fokus auf den Benutzerkomfort beim Einrichten und Konfigurieren. Dafür wurden zahlreiche Verbesserungen gegenüber Version 1 eingeführt(追記) <ref>{{Internetquelle|url=http://www.kaikreuzer.de/2017/01/23/openhab2/|titel=openHAB 2 has arrived! - Kai Kreuzer|sprache=en|zugriff=2017年01月23日}}</ref> (追記ここまで).


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 (Betriebssystem)|Android]]- oder [[Apple iOS]]-Systeme unterstützt.
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 (Betriebssystem)|Android]]- oder [[Apple iOS]]-Systeme unterstützt.

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

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 hochmodulare 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 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

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[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

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

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]

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. http://kaikreuzer.blogspot.de/2014/11/openhab-16-and-20-alpha-release.html
  4. http://www.mysensors.org/
  5. http://souliss.net
  6. IoT Challenge 2013. Abgerufen im 1. Januar 1 
  7. 2013 Duke's Choice Awards. Abgerufen im 1. Januar 1 
  8. JAX Innovation Award Nomination. Abgerufen im 1. Januar 1 
  9. Postscapes IoT Awards 2014/15. Abgerufen im 1. Januar 1 
  10. Fast Company Labs. Abgerufen im 1. Januar 1 
  11. Blackduck's OpenHub Analysis. Abgerufen im 1. Januar 1 
Abgerufen von „https://de.wikipedia.org/w/index.php?title=OpenHAB&oldid=161926452"