Benutzer:Sezginruhi/deneme

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
open Home Automation Bus (openHAB)
Basisdaten

Aktuelle Version 1.4
Betriebssystem Linux, Windows, Mac OS X, Unix
Programmiersprache Java
Kategorie Gebäudeautomatisierung
Lizenz Eclipse Public License
http://www.openhab.org

openHAB ist eine in Java entwickelte Softwarelösung, welche Komponenten zur Gebäudeautomatisierung hersteller- und protokollneutral in einer Plattform miteinander verbindet. Dadurch läuft openHAB 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.

OpenHAB hat den Duke’s Choice Award 2013 gewonnen.[1]

Architektur[Bearbeiten | Quelltext bearbeiten]

Datei:Architecture openhab.png
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.

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, welche das Hinzufügen oder Entfernen von Funktionen während der Laufzeit ermöglicht.

Kommunikation[Bearbeiten | Quelltext bearbeiten]

openHAB hat zwei interne Kommunikationskanäle:

  • einen asynchronen Event Bus
  • ein Item Repository
Datei:Events openhab.png
openHAB Events

Event Bus[Bearbeiten | Quelltext bearbeiten]

Der Event Bus ist der Basisservice von openHAB. Alle Bundles die nicht statusbezogen sind, informieren darüber andere Bundles über den Status von Events. Alle Protokoll Bindings (welche 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, welches 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, z.B. 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, welche die verschiedenen Seiten und den Inhalt des UI definieren. Widgets können Items sein, welche den aktuellen Status darstellen oder auch Schalter oder Grafiken. Es können unterschiedliche Sitemaps definiert werden, z.B. 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 das Erscheinungsbild 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.

Unterstützte Technologien[Bearbeiten | Quelltext bearbeiten]

Bindings[Bearbeiten | Quelltext bearbeiten]

Die OSGi Platform erlaubt aufgrund der modularen Architektur eine flexible Erweiterungen um Technologien. Somit kann die Funktionalität durch Einbinden von Bindings einfach angepasst werden. Folgende Bindings stehen derzeit zur Verfügung:

Asterisk, Bluetooth, Comfo Air, CUPS, digitalSTROM, DMX512, EnOcean, Epson Projector, Exec (Execute Command), Fritz!Box, Fritz AHA, HDAnywhere, Heatmiser, Homematic, HTTP, IHC / ELKO, INSTEON Hub, KNX, Koubachi, MAX!Cube, MiLight, Modbus TCP, 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, Plugwise, PLCBus, PulseAudio, RFXCOM, Samsung TV, Serial, SNMP, Squeezebox, System Info, Somfy URTSI II, Sonos, TCP/UDP, Swegon ventilation, TinkerForge, Tivo, VDR, Wake-on-LAN, Z-Wave

Es gibt weitere Features, welche nicht als Binding, sondern z.T. konfiguriert 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 die Status wiederhergestellt werden. Aktuell werden folgende Services angeboten:

  • 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 Platform
  • 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
  • GreenT UI
  • CometVisu

OSGi Konsole[Bearbeiten | Quelltext bearbeiten]

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

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.

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

Weblinks[Bearbeiten | Quelltext bearbeiten]

Siehe auch[Bearbeiten | Quelltext bearbeiten]

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. 2013 Duke's Choice Awards