Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
5976.book Seite 26 Donnerstag, 30. August 2018 2:58 14
27
1Kapitel 1
Ihr Smart Home mit openHAB 2
Finden Sie den Einstieg in die Thematik mit der Beantwortung grund-
legender Fragestellungen: Was ist openHAB 2, wozu eignet es sich –
und wozu eignet es sich eventuell eher weniger?
Heimautomation ist ein Thema, das rasant an Bedeutung gewinnt. Längst interes-
sieren sich nicht mehr nur die ohnehin technikaffinen Nerds für die Thematik, son-
dern auch durchaus »normale Leute«, die ein gesteigertes Interesse an Kostensen-
kung, Effizienz und einer gewissen Bequemlichkeit in ihrem Zuhause zeigen. Doch
sie alle sehen sich vor dem gleichen Problem: Der Markt ist extrem unübersichtlich.
Nahezu täglich erscheinen neue Produkte, bislang unbekannte Hersteller versuchen
sich zu etablieren, die unterschiedlichsten Herangehensweisen existieren für die
immer gleichen Probleme.
Die zumindest gedanklich einfachste Herangehensweise ist sicherlich die, jegliche
Kommunikation des smarten Zuhauses über eine eigene Bus-Leitung zu leiten – wie
es zum Beispiel bei der Nutzung von KNX gemacht wird. Das nachträgliche Verlegen
der Bus-Leitungen erweist sich jedoch üblicherweise als nicht wirtschaftlich, und in
Mietwohnungen kommt es grundsätzlich nicht infrage. An dieser Stelle kommt die
Funkvernetzung ins Spiel, die sich meist sehr simpel nachrüsten und auch in Miet-
wohnungen gut einbringen (und bei Auszug auch wieder ausbauen) lässt, die dafür
jedoch tiefgehende Sicherheitsfragen aufwirft.
Es fällt schwer, sich auf einen Hersteller, eine Technologie, eine Vorgehensweise fest-
zulegen, denn selten führt ein Hersteller all jenes in seinem Sortiment, was Sie zur
Umsetzung all Ihrer Visionen benötigen – das führt dazu, dass Sie teils schmerzhafte
Kompromisse eingehen müssten. Und bei Verwendung verschiedener Produkte un-
terschiedlicher Hersteller entsteht schnell ein unübersichtlicher Wildwuchs an Ap-
plikationen auf Smartphone und Tablet, und sie alle wollen gewartet werden, wäh-
rend das einzelne Gerät kaum über den Tellerrand seines eigenen Funktionsumfangs
hinausschauen kann. Häufig erzwingt die Nutzung einer Komplettlösung eines Her-
stellers die Abhängigkeit von dessen Cloud-Services. Wenn Sie wie ich eher zu den
Datenparanoikern gehören, ist das zum einen keine angenehme Vorstellung, zum
anderen auch eine Gefahr, denn immer wieder hört man von Herstellern, die ihr Ge-
5976.book Seite 27 Donnerstag, 30. August 2018 2:58 14
1 Ihr Smart Home mit openHAB 2
28
schäft aufgeben, ihre Cloud-Services einstellen – und die einst teuer eingekauften
smarten Lösungen sind nicht mehr als Elektroschrott. Eine Vorausplanung auf Jahre
ist in einem solchen Setup nicht möglich.
Das ist genau die Lücke, die openHAB schließt.
1.1 Was ist openHAB 2?
openHAB2 verbindet einzelne Produkte hersteller- und protokollneutral innerhalb
einer einzigen Plattform miteinander und macht sich so selbst zur zentralen Anlauf-
stelle. So wird es möglich, dass ein Gerät von Hersteller A auf eine Statusänderung
eines Geräts von Hersteller B zu reagieren vermag – anstatt dass beide lediglich ko-
existieren. Das reduziert die Komplexität in der Bedienung, und die Anlaufstelle für
Sie als Endanwender ist dann sehr klar definiert: Sie müssen nicht überlegen, welche
App Sie zur Steuerung Ihrer Lampe heranziehen müssen und welche für die Heizung,
Sie steuern beide über openHAB, und zwar auf genau die Weise und in der genau der
Darstellung, die Sie bevorzugen.
Ein weiterer großer Vorteil von openHAB ist, dass Ihre Daten Ihr System grundsätz-
lich nicht verlassen müssen: Sie implementieren sozusagen ein »Intranet of Things«
und müssen Ihre Daten und Profile keinem Drittanbieter anvertrauen, wenn Sie das
nicht möchten.
Der Name openHAB ist die offizielle Kurzversion von open Home Automation Bus. Es
handelt sich hierbei um eine in der Programmiersprache Java entwickelte Software,
ein Projekt, das 2010 von Kai Kreuzer ins Leben gerufen wurde. openHAB wird als
Open-Source-Projekt unter der Eclipse Public License gehandelt – und ist mithin kos-
tenlos für Sie. Zahlreiche engagierte Mitstreiter investieren ihre Kenntnisse und ihre
Freizeit, um die Anbindung neuer Hersteller und ihrer Systeme zu ermöglichen, die
grundsätzliche Weiterentwicklung zu betreiben und Fehler zu beheben.
Mit dem Ansatz, den openHAB verfolgt, schaffte sich das Projekt ein Alleinstellungs-
merkmal und gewann Anhänger, Unterstützer und Preise:
� IoT Challenge 2013 (https://iotevent.eu/application-2/announcement-the-winner-
of-the-iot-challenge-2013)
� Duke’s Choice Award 2013 (https://blogs.oracle.com/java/dukes-choice-award-
winners-2013)
� nominiert für den JAX Innovation Award 2014 (https://jaxenter.com/
jax-innovation-awards-2014-spotlight-openhab-107776.html)
� Runner-Up-Gewinner bei den Postscapes IoT Awards 2014/15
(https://www.postscapes.com/internet-of-things-awards/winners)
5976.book Seite 28 Donnerstag, 30. August 2018 2:58 14
1.2 Was ist openHAB 2 nicht?
29
1openHAB 2 ist hierbei, wie leicht zu vermuten, eine Weiterentwicklung der Software:
Während sich openHAB 1 in erster Linie an Entwickler und äußerst technikaffine Mit-
streiter richtete, soll openHAB 2 jedem Interessierten den Einstieg in die Welt der
Heimautomation ebnen.
1.2 Was ist openHAB 2 nicht?
Ich habe bereits zu beleuchten versucht, was openHAB 2 ist:
� Es ist ein individuell erweiterbares System.
� Es fungiert als eine Art »Dach« über allen sich im Einsatz befindlichen Technolo-
gien, wie beispielsweise KNX, HomeMatic, Philips Hue und vielen anderen mehr.
� Es vereint diese Technologien innerhalb einer Plattform miteinander, sodass sie
wechselseitig auf Statusänderungen reagieren und Aktionen auslösen können.
� So etabliert es sich als erste Anlaufstelle, auch für die Bedienung der Geräte; die
zahlreichen einzelnen Apps der jeweiligen Hersteller werden, zumindest im Hin-
blick auf die Bedienung, überflüssig.
Daraus ergibt sich quasi zwangsläufig, was openHAB 2 eben nicht ist: Es ist keine
schlüsselfertige Lösung, die Sie innerhalb eines Wochenendes an den Start bringen
und die sofort all das tut, was Sie von ihr erwarten. Das wird auch sonst keine Smart-
Home-Lösung leisten können, die Sie mit Hardware käuflich erwerben. Keine wird
alle Funktionalitäten abdecken, die Sie sich gemeinhin wünschen. Interessanterwei-
se erwartet die breite Masse der Anwender meist auch gar nicht, dass die Hersteller
hier nachziehen und diese Funktionalitäten bereitstellen. Bei Open-Source-Software
wird das aber häufig – und völlig zu Unrecht – so nebenbei erwartet.
Sie dürfen jedoch nicht davon ausgehen, dass für jedes Ihrer Probleme bereits eine
Lösung existiert. Sie haben auch keinen Anspruch darauf, dass andere Ihre Probleme
lösen. openHAB 2 erfordert eine intensive Auseinandersetzung mit der Materie, die
Bereitschaft, sich in die Thematik und auch in technische Feinheiten einzuarbeiten,
und eine gewisse Flexibilität in Bezug auf sich ändernde Begebenheiten. Die ernst-
hafte Umsetzung eines Smart Homes mit openHAB 2 ist mehr als eine fixe Idee. Sie
ist vielmehr ein fortlaufender Task, der Sie kontinuierlich begleiten wird.
Sehen Sie das als Chance! Sie werden Wissen erlangen auf vielen verschiedenen Ge-
bieten – openHAB 2 selbst, Linux-Systemadministration, aber auch zum Lauf der
Sonne, zu Leitungswerten und vielen anderen Themen. Dieses Buch soll Ihnen hier-
bei als Quelle erster Ideen wie als Nachschlagwerk dienen. Konkrete Problemstellun-
gen diskutieren Sie am besten in der openHAB-Community (siehe Kapitel 27), die
sich als Treffpunkt für Enthusiasten aus aller Welt etabliert hat. Lassen Sie sich inspi-
rieren – und inspirieren Sie andere!
5976.book Seite 29 Donnerstag, 30. August 2018 2:58 14
1 Ihr Smart Home mit openHAB 2
30
1.3 Modernes Wohnen in alten Gemäuern
Ich habe es bereits angesprochen: Die einfachste Art, auf die die einzelnen Geräte
einer Heimautomation miteinander kommunizieren können, ist die, sie alle über
einen dedizierten Bus miteinander kommunizieren zu lassen, wie es beispielsweise
bei KNX der Fall ist. Doch diese Herangehensweise ist nicht immer umsetzbar:
� In Altbauten beispielsweise ist es extrem aufwendig, die benötigten Leitungen
nachträglich zu verlegen. Der Aufwand, die Mauern aufzustemmen und wieder
sachgemäß instandzusetzen, steht üblicherweise in keiner Relation zum Nutzen,
den man dadurch erzielt.
� Im Neubau ist weniger die Verlegung der Leitungen ein Problem als vielmehr die
Kosten, die dadurch entstehen. Hier muss jeder für sich abwägen, was gleicherma-
ßen gewünscht wie bezahlbar ist.
� Auch wenn Sie zur Miete wohnen, sind Bus-Systeme wie KNX üblicherweise keine
Option. Kaum ein Vermieter wird es gerne sehen, wenn Sie seine Wände aufstem-
men.
Mir war es darüber hinaus durchaus wichtig, dass sich die Komponenten auch op-
tisch in ein Gesamtbild einfügen. In einem um die Jahrhundertwende erbauten und
liebevoll sanierten Stadthaus mochte ich mir so manches Gerät schlicht und ergrei-
fend nicht in meinem unmittelbaren Sichtfeld vorstellen. Hier bewegen wir uns ein-
deutig im Bereich der persönlichen Befindlichkeiten und Vorlieben – jeder muss für
sich entscheiden, was das Passende ist.
Ich begann im Jahr 2013 mit dem Aufbau meines Smart Homes und entschied mich
damals für den Einsatz der HomeMatic-Funkaktoren von EQ3; diese deckten ein wei-
tes Spektrum dessen ab, was ich umsetzen wollte, und ich kann sie überwiegend so
anbringen, dass sie mich optisch nicht stören, im Sicherungskasten beispielsweise
oder in Unterputzdosen. Ein platzsparender batteriebetriebener Schaltaktor erlaubt
es mir, die alte Haustürklingel weiterzuverwenden, ihr jedoch Funktionen zu geben,
die deutlich über das simple Klingelsignal hinausgehen. Auch die Weiterverwendung
einiger sehr alter Lichtschalter war problemlos möglich – niemand würde »smarte«
Geräte dahinter vermuten, und doch sind sie es.
1.4 Heimautomation – besser nicht grenzenlos
Vernachlässigen Sie bei all Ihrer Liebe zur Technik nicht, dass Sie es bei den Nutzern
mit Menschen zu tun haben und dass Menschen Gewohnheitstiere sind: Wir erwar-
ten beim Betreten eines dunklen Raumes einen Lichtschalter auf den gegenüberlie-
genden Seite des Türanschlags in etwa 1,20 m Höhe. Aus technischer Sicht stellt es
5976.book Seite 30 Donnerstag, 30. August 2018 2:58 14
1.4 Heimautomation – besser nicht grenzenlos
31
1kaum eine Hürde dar, dass Sie jegliche Wandschalter aus Ihrem Setup schlicht strei-
chen und alle Lichter zukünftig ausschließlich über Regelwerke und Apps steuern,
doch von Besuchern würde es tendenziell als Zumutung empfunden werden, etwas
so Grundsätzliches wie Lampen nicht selbst schalten zu können.
Die Möglichkeiten der Heimautomation sind nahezu unbegrenzt – und hat man erst
einmal damit begonnen, möchte man gar nicht mehr aufhören. Ich möchte jedoch
an Sie appellieren, jede Funktion, die Sie neu in Ihr Setup einbringen, eingehend zu
überdenken:
� Lösen Sie auf diese Art ein konkretes Problem? Oder erschaffen Sie lediglich zehn
weitere?
� Ist es sicherheitsrelevant? Muss diese Funktion ständig verfügbar sein – auch bei
Stromausfall, kaputtem openHAB-2-Host, Störung des Internetanschlusses, sons-
tigen Problemen?
� Ist Ihre Lösung zukunftssicher, beispielsweise im Hinblick auf Erweiterung, Ersatz-
teile, Unterstützung seitens der Hersteller?
� Wie fühlen sich die übrigen Bewohner des Hauses mit Ihrer Lösung? Wie fühlen
sich ältere Menschen, Besucher und weniger technikaffine Menschen?
Vor allem der letztgenannte Punkt verdient gesonderte Beachtung: So sollte eine
Heimautomatisierung niemals in die Persönlichkeitsrechte eingreifen, und meiner
Meinung nach sollte sie – auch wenn sich das Thema zunehmender Beliebtheit er-
freut – auch keine erzieherischen Aufgaben übernehmen, beispielsweise indem sich
Lichter und Fernseher automatisch nach einer gewissen Zeit abschalten.
Ähnlich lästig wie nicht vorhandene oder an unmöglichen Orten montierte Wand-
schalter sind alltägliche Dinge, die sich in unregelmäßigen Abständen zumeist ohne
Vorwarnung einfach ändern: Gestern noch schaltete man über einen bestimmten
Taster die Deckenbeleuchtung im Badezimmer ein, heute jedoch geht beim Betä-
tigen der Lüfter an. Wenn erst die konkrete Nachfrage beim Verwalter, also bei Ihnen,
für Ihre Mitbewohner ergibt: »Stimmt, ich hab da was geändert«, dann können Sie
sicher sein, dass Ihr System keinerlei Akzeptanz erfahren wird. Nehmen Sie jederzeit
Rücksicht auf Ihre Mitmenschen und deren Bedürfnisse.
Die Sache mit dem Woman/Spouse Acceptance Factor (WAF)
Es existiert in diesem Zusammenhang der viel zitierte Begriff des WAF, des Woman
Acceptance Factor. Er soll eine Einschätzung der Zustimmung oder Ablehnung der
Ehefrau oder Partnerin darstellen bezüglich (üblicherweise technischer und vor
allem teurer) Neuanschaffungen durch den Partner. Und auch wenn der Acceptance
Factor bereits im Jahr 2000 von »Woman« auf »Spouse«, also »Lebensgefährte«, er-
weitert wurde, mag ich diesen Begriff trotzdem überhaupt nicht.
5976.book Seite 31 Donnerstag, 30. August 2018 2:58 14
1 Ihr Smart Home mit openHAB 2
32
Die Annahme, dass sich weniger technikbegeisterte Mitbewohner immer und ge-
nerell gegen Technik sperren, ist grundsätzlich falsch. Denn Sie sperren sich nur
gegen teure Technik, die ihnen den Alltag erschwert, die sie verärgert, sie vor stän-
dig wechselnde, beliebig absurde Probleme stellt und die sie somit als völlig unnö-
tig empfinden.
An dieser Stelle sind Sie als Verwalter des Systems doppelt gefragt: Beziehen Sie Ihre
Mitbewohner in die Vorgänge mit ein, erfragen Sie, was ihnen das Leben erleichtern
würde. Und vor allem: Modifizieren Sie etablierte Abläufe nie ohne Rücksprache. Ma-
chen Sie sich bewusst, dass ein Smart Home (zumindest in einer Wohnumgebung
mit mehr als einem Bewohner) keine ausschließlich technische, sondern durchaus
auch eine soziale Herausforderung ist. Stellen Sie sich immer wieder einmal einige
grundsätzliche Fragen: Wo hört Bequemlichkeit auf, wo fängt Überwachung an? Wie
viel ist gut, was sollte besser nicht automatisiert werden?
In eigener Sache: Das mit dem Gendern
Ich habe Sie gerade als den Verwalter des Systems bezeichnet, an anderer Stelle als
Leser oder Mitbewohner. Ich tue das im Sinne der Lesbarkeit eines 500 Seiten umfas-
senden technischen und ohnehin schon recht abstrakten Textes, dem ich die zusätz-
liche Komplexität des Genderns nicht aufbürden werde. Grundsätzlich ermuntere
ich jedes technikaffine Subjekt, egal welchen Geschlechts, ausdrücklich zur Mitwir-
kung.
Lassen Sie uns nun konkret werden: Ich heiße Sie recht herzlich willkommen im
Demohaus!
1.5 Das Demohaus
Das Buch wird sich am »Demohaus« orientieren. Es steht exemplarisch für eine
Wohnumgebung, die nach und nach in ein Smart Home verwandelt wird.
Der detaillierte Aufbau des Demohauses – seine Aufteilung in Räume, die Einord-
nung der Aktoren in Räume und Gruppen – und seine konkrete Umsetzung erfolgen
nach und nach über den Verlauf des Buches hinweg. Doch schon vorher werden
Ihnen Geschosse, Räume und Geräte in Form von Beispielen begegnen. Natürlich
kommt solch ein Buch auch nicht ohne openHAB-spezifisches Vokabular aus, doch
seien Sie unbesorgt. Zu gegebenem Zeitpunkt findet jeder Begriff seine Erklärung.
Tatsächlich empfehle ich Ihnen, die für das Nähen von Kleidung am Anfang jedes
Schnittmusters vermerkte Warnung zu beherzigen: »Erst lesen, dann schneiden!«
Oder um im openHAB-2-Kontext zu bleiben: Verschaffen Sie sich anhand des Buches
zuerst einen zumindest groben Überblick, ehe Sie die praktische Umsetzung ange-
5976.book Seite 32 Donnerstag, 30. August 2018 2:58 14
1.5 Das Demohaus
33
1hen, damit erleichtern Sie sich den Einstieg deutlich.
Erste praktische Beispiele kommen ohne konkrete Hardwareanbindung aus. Diese
können Sie unmittelbar umsetzen und ausprobieren, ohne zusätzliche Anschaffun-
gen tätigen zu müssen. Im weiteren Verlauf werden Sie Rollläden abhängig von Son-
nenauf- und -untergangszeiten zu steuern lernen, Ihre persönliche Wettervorhersa-
ge implementieren und Ihre persönliche Anwesenheitserkennung umsetzen.
Die im Buch verwendeten Bezeichner orientieren sich an den Begebenheiten des De-
mohauses. Sie werden die Vorteile und Schwachstellen dieser Herangehensweise für
sich kennenlernen, was es Ihnen erleichtert, ein Namenskonzept für Ihren konkreten
Anwendungsfall zu erarbeiten. Sehen Sie das Demohaus als eine Idee – als eine Mög-
lichkeit von vielen, ein Heimautomatisierungskonzept umzusetzen, und als Einstieg
in ein weites Feld.
Finden Sie nun also den praktischen Einstieg in die Thematik, wenden wir uns den
Hard- und Softwarevoraussetzungen sowie der Installation von openHAB 2 zu.
5976.book Seite 33 Donnerstag, 30. August 2018 2:58 14
5976.book Seite 148 Donnerstag, 30. August 2018 2:58 14
149
8
Kapitel 8
Integration Ihrer FRITZ!Box
Die Einbindung Ihrer FRITZ!Box bietet Ihnen eine Fülle technischer
Möglichkeiten.
Mit der Integration Ihrer FRITZ!Box geben Sie Ihrem System die Möglichkeit, auf ein-
gehende Anrufe zu reagieren, und versetzen sich in die Lage, eine simple Art der An-
wesenheitserkennung umzusetzen. Später können darauf umfangreichere Regelwer-
ke aufsetzen, wie beispielsweise »Wenn das Telefon klingelt, stoppe den Film«.
8.1 Die Inbetriebnahme
Die FRITZ!Box-Geräte von AVM sind sehr verbreitet in deutschen Haushalten, um die
DSL-Verbindung herzustellen. Doch inzwischen können die Boxen so viel mehr: das
Handling ein- und ausgehender Anrufe, die Verwaltung von Telefonbüchern, um nur
wenige Beispiele zu nennen. Es liegt also nahe, das bereits vorhandene Gerät zu inte-
grieren, was hier am Beispiel der weitverbreiteten FRITZ!Box 7490 gezeigt wird. Die
Webseite des Bindings gibt Aufschluss bezüglich der unterstützten Boxen: https://
www.openhab.org/addons/bindings/avmfritz/#supported-things
8.1.1 Die Box vorbereiten
Um die FRITZ!Box erfolgreich in Ihr openHAB-2-Setup integrieren zu können, sind ei-
nige Vorarbeiten notwendig.
Zugriff für Anwendungen zulassen
In der Standardkonfiguration ist der Zugriff für Anwendungen ohnehin aktiviert, für
die Zusammenarbeit mit dem Binding wird er auch zwingend gebraucht. Öffnen Sie
also das Webinterface der FRITZ!Box im Browser, indem Sie die Adresse http://
fritz.box aufrufen. Navigieren Sie über Heimnetz • Heimnetzübersicht hin zu den
Netzwerkeinstellungen, und setzen Sie ein Häkchen bei der Option Zugriff für
Anwendungen zulassen.
Sie können leicht überprüfen, ob diese Einstellung erfolgreich war: Rufen Sie hierzu
die Adresse https://fritz.box:49443/tr64desc.xml in Ihrem Browser auf. Wenn Sie als
5976.book Seite 149 Donnerstag, 30. August 2018 2:58 14
8 Integration Ihrer FRITZ!Box
150
Antwort eine mehr oder weniger kryptische XML-Ausgabe erhalten – keine Sorge, das
ist genau das, was an dieser Stelle richtig und gewünscht ist!
<root xmlns="urn:dslforum-org:device-1-0"><specVersion><major>1</major><minor>0</minor></specVersion><device><deviceType>urn:dslforum-org:device:InternetGatewayDevice:1</deviceType><friendlyName>FRITZ!Box 7490</friendlyName><manufacturer>AVM</manufacturer><manufacturerURL>www.avm.de</manufacturerURL><modelDescription>FRITZ!Box 7490</modelDescription><modelName>FRITZ!Box 7490</modelName>...
Listing 8.1 Erfolgreicher Aufruf
Anmeldung mit FRITZ!Box-Benutzernamen und Kennwort
Die Werkseinstellung der FRITZ!Box gibt vor, dass man sich lediglich durch Angabe
eines Passwortes an der Box anmeldet, jedoch keinen Nutzernamen benötigt. Da
diese Voreinstellung nicht zu unserem Anforderungsprofil passt, müssen Sie sie nun
ändern:
� Legen Sie einen Benutzer an, beispielsweise den Benutzer openhab und einen Ad-
min, und zwar den Admin zuerst, damit Sie sich im weiteren Verlauf nicht etwa
versehentlich aus der Box aussperren (bedenken Sie bei solcherlei Hinweisen
immer, dass sie niemals ohne Vorgeschichte daherkommen …). Das Passwort des
Benutzers openhab werden Sie gleich benötigen, um es in der Konfiguration des
Bindings zu hinterlegen.
� Ändern Sie abschließend die Konfiguration der Box dahingehend, dass zukünftig
auch der Nutzername abgeprüft wird. Navigieren Sie hierzu über System •
FRITZ!Box Benutzer zu Anmeldung im Heimnetz, und aktivieren Sie die Op-
tion Anmeldung mit FRITZ!Box-Benutzernamen und Kennwort.
Callmonitor aktivieren
In der Werkseinstellung ist der Callmonitor der FRITZ!Box nicht aktiviert. Um dieses
Feature in Betrieb zu nehmen, wählen Sie über ein an der FRITZ!Box angeschlossenes
Telefon die folgende Kombination: #96*5*. Möchten Sie das Feature nicht mehr nut-
zen, können Sie es über Wahl der Kombination #96*4* wieder ausschalten – für das
5976.book Seite 150 Donnerstag, 30. August 2018 2:58 14
8.1 Die Inbetriebnahme
151
8
Zusammenspiel mit openHAB 2 und insbesondere dem TR064-Binding werden Sie
es jedoch zwingend benötigen.
8.1.2 Installation und Konfiguration des Bindings
Navigieren Sie in Paper UI zu Add-Ons • Bindings • FritzboxTR064 Binding, und
starten Sie die Installation mit einem Klick auf Install. Konfigurieren Sie das soeben
installierte Binding, indem Sie zu Paper UI • Configuration • Bindings • Fritz-
boxTR064 Binding • Configure navigieren, das Stiftsymbol anklicken und die Ein-
gabemaske ausfüllen. Ihre Angaben werden in der Datei /etc/openhab2/services/fritz-
boxtr064.cfg dauerhaft hinterlegt. Beobachten Sie in den Logmeldungen, wie das
Binding seinen Dienst aufnimmt.
- Callmonitor Thread [8043] attempting connection to FritzBoxon 192.168.2.1:1012.
- Connected to FritzBox on 192.168.2.1:1012
Abbildung 8.1 Konfiguration des Bindings FritzboxTR064
Wenn das Zertifikat Probleme bereitet
Voreingestellt ist die Verbindung zu https://fritz.box:49443. Wenn es Ihnen nicht
möglich ist, diese Adresse zu verwenden, so ist mit hoher Wahrscheinlichkeit das
Zertifikat der FRITZ!Box der Übeltäter! Dieses ist unter anderem auf den Hostnamen
fritz.box ausgestellt. Wenn Sie in Ihrem Setup die Box nicht über fritz.box, son-
dern beispielsweise lediglich über eine alternative IP-Adresse aufrufen können (und
dabei eine Zertifikatswarnung erhalten), müssen Sie ein neues Zertifikat für die Box
erstellen, das genau diesen Umstand abdeckt. Ist eine gesicherte Verbindung nicht
möglich, erscheint keine Fehlermeldung in den Logmeldungen von openHAB 2: Es
funktioniert nur einfach nicht.
Alternativ können Sie die Zertifikatsproblematik umgehen, indem Sie über Port
49000 eine ungesicherte HTTP-Verbindung zur Box erstellen. In der Aufbauphase ist
5976.book Seite 151 Donnerstag, 30. August 2018 2:58 14
8 Integration Ihrer FRITZ!Box
152
das kurzfristig völlig in Ordnung, doch Sie kennen das ja: Nichts hält länger als ein
Provisorium … Die gesicherte Verbindung über HTTPS ist jederzeit vorzuziehen.
8.2 Die FRITZ!Box-Items
Der Einfachheit halber erstellen Sie jetzt /etc/openhab2/items/Fritzbox.items und
legen darin eine Gruppe gFritzbox an, die Sie dem Raum unterordnen, in dem die
FRITZ!Box steht – im Beispiel ist das der Eingangsbereich GF_Hallway. Diese Datei wird
dann Schritt für Schritt erweitert und jedes einzelne Item der Gruppe gFritzbox zuge-
ordnet.
Group gFritzbox"Meine FRITZ!Box"<network>(GF_Hallway)
Listing 8.2 Erstellung einer Gruppe »gFritzbox«, die alle FRITZ!Box-Items enthalten soll
Diese Gruppe ist im Anschluss in Ihrer administrativen Sitemap als Untermenü des
Raumes Eingangsbereich zu finden. Doch natürlich erarbeiten wir auch eine Lösung,
die die Angaben der FRITZ!Box für die produktive Sitemap aufbereitet.
Über die üblichen openHAB-Items hinaus gibt es hier das Item Call, das benutzt wird
für die Dinge, die mit dem Callmonitor in Zusammenhang stehen. Call-Items werden
in der Sitemap immer als Elemente vom Typ Text dargestellt.
8.3 Anwesenheitserkennung anhand von Smartphones
Ich weiß ja nicht, wie es bei Ihnen ist, aber wenn mein Smartphone zu Hause ist, bin
ich es in aller Regel auch. Da ich das Gerät üblicherweise in der Hosentasche mit mir
herumtrage, drängt es sich als Indikator geradezu auf: Ist es im heimischen WLAN
eingebucht, bin ich zu Hause.
Contact meinPhone"iPhone zu Hause [MAP(Presence.map):%s]"<network>(gFritzbox){fritzboxtr064="maconline:47-5C-CD-D9-1A-2B"}
Listing 8.3 Anwesenheitserkennung anhand der MAC-Adresse eines Smartphones
Sie sehen, die Konfiguration stützt sich auf die MAC-Adresse des Smartphones.
5976.book Seite 152 Donnerstag, 30. August 2018 2:58 14
8.3 Anwesenheitserkennung anhand von Smartphones
153
8
Was ist eine MAC-Adresse?
MAC steht für Media Access Control und identifiziert jeden Netzwerkadapter eindeu-
tig. Weitere Bezeichnungen sind physikalische Adresse oder Geräteadresse. Eine MAC-
Adresse hat die Form aa:bb:cc:dd:ee:ff.
Doch wie ermitteln Sie die MAC-Adresse Ihres Smartphones? Während die Wege sich
hierbei auf iOS- und Android-Geräten grundsätzlich unterscheiden, ist die Vorge-
hensweise über die FRITZ!Box immer die gleiche: Navigieren Sie im Webinterface der
FRITZ!Box über Heimnetz zu Heimnetzübersicht, und suchen Sie Ihr Smartphone
in der Liste der bekannten Geräte. Klicken Sie anschließend auf Details, und entneh-
men Sie die MAC-Adresse der Geräteinformation. Wichtig: Ersetzen Sie die Dop-
pelpunkte durch Bindestriche, wenn Sie die MAC-Adresse in Ihre openHAB-2-Konfi-
guration übernehmen.
Das Item vom Typ Contact liefert nun also OPEN zurück, wenn das iPhone im WLAN
eingebucht ist, und CLOSED, wenn dies nicht der Fall ist. Da dieses nicht übermäßig
selbsterklärend ist, erstellen Sie im Ordner /etc/openhab2/transform die Datei Pres-
ence.map mit dem Inhalt aus Listing 8.4.
OPEN=anwesendCLOSED=nicht anwesendNULL=undefiniert-=unbekannt
Listing 8.4 Die Datei »Presence.map«
Navigieren Sie in Ihrer administrativen Sitemap über den Eingangsbereich zum Un-
termenü Ihrer FRITZ!Box. Die erfassten Items können Sie unmittelbar abrufen. Über
wenige Zeilen in Ihrer produktiven Sitemap Demohaus_produktiv.sitemap machen
Sie Ihr Smartphone auch dort verfügbar.
Text label="FRITZ!Box" icon="network" {
Frame label="Anwesenheit" {Text item=meinPhone
label="iPhone zu Hause"icon="network"
} // END FRITZ!Box
Listing 8.5 Eintrag in der Sitemap »Demohaus_produktiv.sitemap«
Dies stellt lediglich eine rudimentäre Art der Anwesenheitserkennung dar, die so man-
chen Einschränkungen unterliegt. In Abschnitt 13.13 widmen wir uns dem Thema
Anwesenheitserkennung ausführlicher und zeigen Alternativen auf.
5976.book Seite 153 Donnerstag, 30. August 2018 2:58 14
8 Integration Ihrer FRITZ!Box
154
Abbildung 8.2 Darstellung der Anwesenheit in der Sitemap
8.4 Den Anrufbeantworter ein- und ausschalten
Wie ärgerlich – im Urlaub angekommen, fällt Ihnen plötzlich ein, dass Sie vergessen
haben, den heimischen Anrufbeantworter der FRITZ!Box zu aktivieren. Was tun?
Nun, mit openHAB 2 ist diese Fragestellung auf sehr einfache Art lösbar: Erstellen Sie
das Switch-Item avmVoicemail, das Ihnen das unkomplizierte Ein- und Ausschalten
Ihrer Voicemail ermöglicht. Und über das Number-Item avmVoicemailNeu können Sie
sogar jederzeit einsehen, wie viele Sprachnachrichten inzwischen eingegangen sind.
Switch fbAnrufbeantworter"Anrufbeantworter"(gFritzbox){fritzboxtr064="tamSwitch:0"}
Number fbNeueNachrichten"Neue Nachrichten [%d]"(gFritzbox){fritzboxtr064="tamNewMessages:0"}
Listing 8.6 Die Items für den Anrufbeantworter
Weitergehende Konfiguration ist auf diesem Weg nicht möglich. Die spezifischen
Einstellungen, etwa nach welchem Zeitintervall die automatische Rufannahme erfol-
gen oder welche Ansage abgespielt werden soll, müssen Sie innerhalb der FRITZ!Box
konfigurieren.
Abbildung 8.3 Darstellung des Anrufbeantworters unter Zuhilfenahme von Mappings
Überarbeiten Sie nun die Sitemap Demohaus_produktiv.sitemap in /etc/openhab2/
sitemaps, um die FRITZ!Box in Ihre produktive Sitemap einzubringen. Soll sie als
5976.book Seite 154 Donnerstag, 30. August 2018 2:58 14
8.5 Stellen Sie Ihre Leitungswerte dar
155
8
Untermenü eines Raumes erscheinen? Möchten Sie einen eigenen, unabhängigen
Frame erstellen? Experimentieren Sie mit Mappings, dem visibility-Tag, Transfor-
mation Services – in Ihrer Sitemap fließen all diese Features zusammen.
Text label="FRITZ!Box" icon="network" {Frame item=fbNeueNachrichten label="Anrufbeantworter [%d neue ¿Nachricht(en)]" {Switch item=fbAnrufbeantworter
label="Anrufbeantworter"icon="network"mappings=[ON="Ein", OFF="Aus"]
Text item=fbNeueNachrichtenlabel="Neue Sprachnachrichten [%d]"icon="chart"visibility=[fbNeueNachrichten > 0]
} // END Frame Anrufbeantworter} // END FRITZ!Box
Listing 8.7 Verbesserte Darstellung des FRITZ!Box-Frames in der Sitemap
8.5 Stellen Sie Ihre Leitungswerte dar
Das Binding bietet Ihnen noch einige andere Channels, die Sie auswerten und nutzen
können. Als Beispiele greifen wir uns an dieser Stelle die Up- und Downstream-Werte
Ihrer DSL-Verbindung heran. Die Dokumentation des Bindings gibt Ihnen Aufschluss
darüber, welche Werte Sie außerdem abrufen können.
Abbildung 8.4 Suchen Sie nicht mehr umständlich nach Ihren Leitungswerten –
integrieren Sie diese einfach in Ihre Sitemap.
5976.book Seite 155 Donnerstag, 30. August 2018 2:58 14
8 Integration Ihrer FRITZ!Box
156
Erweitern Sie also Ihre Fritzbox.items um die nachfolgenden Einträge:
String fbDslStatus"FBox DSL Status [%s]"<line>(gFritzbox){fritzboxtr064="dslStatus"}
String fbExternalIp"FBox WAN IP [%s]"<network>(gFritzbox){fritzboxtr064="wanip"}
Number fbDslUpstream"DSL Upstream [%s mbit/s]"<line>(gFritzbox){fritzboxtr064="dslUpstreamCurrRate"}
Number fbDslDownstream"DSL Downstream [%s mbit/s]"<line>(gFritzbox){fritzboxtr064="dslDownstreamCurrRate"}
Listing 8.8 Einige zusätzliche Items, die Leitungswerte der FRITZ!Box abrufen
Integrieren Sie diese Werte nun in Ihre Sitemap Demohaus_produktiv.sitemap, so
haben Sie Ihre Leitungswerte immer im Blick und müssen sich nie wieder umständ-
lich auf die Suche nach der vom Provider zugewiesenen externen IP-Adresse Ihres
Anschlusses machen.
Text item=fbDslStatus label="FRITZ!Box [%s]" {// FRAME Anwesenheit// FRAME AnrufbeantworterFrame label="Leitungswerte" {Text item=fbExterneIp
label="Externe IP-Adresse [%s]"icon="line"visibility=[fbDslStatus == "Up"]
Text item=fbDslExterneIplabel="Keine DSL-Verbindung [⛔]"icon="error"visibility=[fbDslStatus != "Up"]
5976.book Seite 156 Donnerstag, 30. August 2018 2:58 14
8.5 Stellen Sie Ihre Leitungswerte dar
157
8
Text item=fbDslUpstreamlabel="Upstream [%s mbit/s]"icon="line"visibility=[fbDslStatus == "Up"]
Text item=fbDslUpstreamlabel="Upstream N/A [⛔]"icon="error"visibility=[fbDslStatus != "Up"]
Text item=fbDslDownstreamlabel="Downstream [%s mbit/s]"icon="line"visibility=[fbDslStatus == "Up"]
Text item=fbDslDownstreamlabel="Downstream N/A [⛔]"icon="error"visibility=[fbDslStatus != "Up"]
} // END Frame Leitungswerte} // END FRITZ!Box
Listing 8.9 Ein etwas komplexeres Beispiel für die Einbindung in die Sitemap
Lassen Sie uns hier ein erweitertes Beispiel einer Sitemap anführen: So werden die
Angaben für Upstream, Downstream und IP-Adresse nur dann angeführt, wenn die
DSL-Verbindung auch wirklich steht, sprich wenn das Item fbDslStatus den Wert
Up hat. Ist das nicht der Fall, können Sie entscheiden, die Anzeige komplett auszu-
lassen – oder aber Sie weisen entsprechende Platzhalter aus, die den Fehlerzustand
verdeutlichen.
Erwägen Sie, in diesem Zusammenhang auch mit Persistence Services zu arbeiten.
Indem Sie die gesammelten Werte bezüglich Ihres DSL-Anschlusses dauerhaft spei-
chern, können Sie diese auswerten – im Fall einer DSL-Störung kann Ihnen dies wert-
volle Informationen liefern. Mehr zum Thema Persistence erfahren Sie in Kapitel 19,
mehr zur grafischen Darstellung in Kapitel 24.
Das Binding bietet noch weitere und über die hier aufgezeigten Möglichkeiten hi-
nausgehende Channels. Machen Sie sich mit der Dokumentation vertraut, und ent-
scheiden Sie, welche Angaben in Ihrem Setup sinnvoll erscheinen könnten.
5976.book Seite 157 Donnerstag, 30. August 2018 2:58 14
8 Integration Ihrer FRITZ!Box
158
Abbildung 8.5 Darstellung der gesammelten Leitungswerte in Grafana
5976.book Seite 158 Donnerstag, 30. August 2018 2:58 14
301
15
Kapitel 15
Things – »Alles ist ein Ding«
Widmen wir uns nun ausführlicher der Frage: Was ist ein Thing, was
kann es und wozu ist es gut?
Auf den ersten Blick kann die Architektur von openHAB 2 mit ihren Konzepten ein-
schüchternd wirken. Deshalb wollen wir nun versuchen, einen möglichst unkom-
plizierten Blick auf »die Frage nach dem Ding« zu werfen. Doch was ist denn nun ei-
gentlich ein Thing?
Plump gesagt handelt es sich bei einem Thing um etwas, das Sie Ihrer openHAB-2-In-
stallation hinzufügen können, um deren Funktionsumfang zu erweitern. In erster
Linie kommen Ihnen nun vermutlich Geräte in den Sinn, und damit liegen Sie auch
ganz richtig: Jeder Türsensor, jedes Heizkörperthermostat, jede smarte LED-Lampe,
die Sie in Ihr Setup aufnehmen, wird als jeweils ein Thing geführt.
Abbildung 15.1 Die Darstellung der Things in Paper UI erfolgt in alphabetischer Reihenfolge.
Wichtig ist hierbei, dass nicht nur Geräte als Thing auftreten können, sondern bei-
spielsweise auch Webservices, kurz jede beliebige Informations- bzw. Funktions-
quelle.
Im täglichen Betrieb haben Sie mit den Things tatsächlich eher wenig zu tun. Rele-
vanz haben Things im Grunde genommen nur während der grundsätzlichen Einrich-
tung und Konfiguration.
5976.book Seite 301 Donnerstag, 30. August 2018 2:58 14
15 Things – »Alles ist ein Ding«
302
Abbildung 15.2 Auch die Verwendung von Bindings ohne direkte Hardware-
anbindung stellt üblicherweise konfigurierbare Things bereit.
Diese Konfiguration erfordert meist mehrere und zum Teil verpflichtende Angaben
wie die IP-Adresse eines Gateways, Ihre genauen Standortangaben, einen API-Key,
um nur wenige zu nennen. Nähere Informationen finden Sie immer in der Doku-
mentation des zugrunde liegenden Bindings.
15.1 Channels
Einmal hinzugefügt, präsentiert Ihr Thing Ihnen nun in Form verschiedener Chan-
nels alle Funktionalitäten, die es zu bieten vermag. Am Beispiel eines Philips Hue
Lightstrips wollen wir uns die Channels einmal näher ansehen.
Abbildung 15.3 Der Lightstrip vom Typ 210 bietet zwei verschiedene
Channels: Farbe und Farbtemperatur.
Sie erfahren hier die aktuelle Firmware-Version Ihres Lightstrips und auch, dass er
Ihnen zwei verschiedene Kanäle zur Kommunikation anbietet – seine beiden Chan-
nels. Paper UI unterstützt Sie schon hier bei der Konfiguration, indem es Ihnen an-
zeigt, dass das Item zur Farbe vom Typ Color sein sollte, wohingegen das Item zur
Farbtemperatur dem Typ Dimmer entspricht.
Das Thing ist also lediglich die zugrunde liegende »virtuelle« Quelle, wohingegen die
Channels echte Funktionalität (»Wähle Farbe« im Fall der Lampe) oder Information
(»Wert der Außentemperatur« im Fall eines Thermometers) repräsentieren. Items
wiederum binden sich an diese Channels, und auf Items beruhen, wie Sie noch sehen
werden, Regelwerke und Sitemaps.
5976.book Seite 302 Donnerstag, 30. August 2018 2:58 14
15.3 Thing-Status
303
15
15.2 Bridges
Eine Bridge ist eine besondere Form eines Things. Bridges sind Geräte, die Sie Ihrer
openHAB-2-Installation hinzufügen müssen, um über sie Zugriff und Steuermöglich-
keit auf andere Geräte zu erhalten. Dies ist beispielsweise bei der Verwendung des
Philips-Hue-Systems der Fall: Sie müssen die Hue-Bridge als Thing hinzufügen, und
über dieses Gateway erhalten Sie Zugriff auf die dort angelernten Lampen. Neue Lam-
pen müssen wiederum am Gateway angelernt werden, wodurch sie openHAB 2 un-
mittelbar zur Verfügung gestellt und dort wiederum als Thing eingebracht werden
können.
Ein Betrieb ohne diese Gateways ist in der Regel nicht möglich. So kommuniziert
openHAB 2 auch bei der Verwendung von HomeMatic-Funkaktoren nicht mit jedem
Aktor direkt, sondern indirekt über die HomeMatic CCU2, die wiederum als Thing in
openHAB 2 eingebunden werden muss.
15.3 Thing-Status
Jedes Thing hat einen aktuellen Status, der Ihnen dabei helfen soll, Probleme zu iden-
tifizieren und Fehlfunktionen einzugrenzen. Die verschiedenen Zustände, die ein
Thing annehmen kann, betrachten wir deshalb nun einzeln:
� UNINITIALIZED: Dies entspricht dem initialen Status, wenn Sie das Thing neu hin-
zugefügt oder openHAB 2 neu gestartet haben. Ihr Thing ist auch dann UNINITIA-
LIZED, wenn der Initialisierungsprozess fehlschlug oder das Binding nicht (mehr)
verfügbar ist. Kommandos, die sich auf dieses Thing beziehen, werden nicht aus-
geführt.
� INITIALIZING: Dieser Zustand tritt ein, während das Binding das Thing zu initia-
lisieren versucht. Wie lange das Thing in diesem Zustand verweilt, hängt von den
Timeouts des jeweiligen Bindings ab und davon, wie lange es dauert, alles einzule-
sen. Auch in diesem Fall ist es so, dass Kommandos, die sich auf dieses Thing bezie-
hen, nicht ausgeführt werden.
� UNKNOWN: Der Initialisierungsprozess wurde vollständig durchgeführt. Doch nun
meldet Ihnen das verwendete Binding, dass es nicht möglich ist, zu ermitteln, ob
das Thing nun ONLINE oder OFFLINE ist. Das Senden von Kommandos ist in diesem
Zustand daher erlaubt, denn manche Geräte erscheinen erst dann ONLINE, wenn
ihnen ein Kommando gesendet wurde. In diesem Zustand muss das Ziel darin be-
stehen, das Thing möglichst schnell in einen eindeutigen Zustand zu versetzen.
� ONLINE: ONLINE bezeichnet sozusagen den Idealzustand. Das Binding hat das Gerät
erfolgreich initialisiert, die Kommunikation steht. Das Thing ist vollständig be-
triebsbereit und kann über Kommandos gesteuert werden.
5976.book Seite 303 Donnerstag, 30. August 2018 2:58 14
15 Things – »Alles ist ein Ding«
304
� OFFLINE: Es ist anzunehmen, dass das Gerät nicht erreichbar ist und keine Kom-
mandos verarbeiten wird. Es ist allerdings dennoch möglich, Kommandos zu sen-
den, da manche Geräte nach Erhalt eines Kommandos ihren Zustand zu ONLINE än-
dern.
� REMOVING: Das System wurde angewiesen, das Thing aus der Konfiguration zu ent-
fernen, doch das Binding hat diese Aufgabe noch nicht vollständig abgeschlossen.
Mit hoher Wahrscheinlichkeit funktioniert das Gerät nicht, weshalb Kommandos
nicht ausgeführt werden.
� REMOVED: Dieser nur sehr kurzfristig auftretende Status zeigt an, dass das Thing aus
dem System entfernt wurde, nachdem es auf REMOVING stand.
Abbildung 15.4 Things und ihre Zustandsübergänge
Kommt ein Item neu ins System, ist es UNINITIALIZED. Von hier aus versucht das
Thing, sich zu initialisieren, wodurch sich sein Zustand zu INITIALIZING ändert. Sollte
dieser Vorgang fehlschlagen, so wird es erneut den Zustand UNINITIALIZED anneh-
men.
Ist die Initialisierung hingegen erfolgreich, wird der Status des Things durch das zu-
grunde liegende Binding auf UNKNOWN, ONLINE oder OFFLINE gesetzt – der Handler steht
vollständig zur Verfügung. Von jedem dieser drei Zustände aus kann das Thing zu-
rück auf UNINITIALIZED fallen. Die beiden Zustände REMOVING bzw. REMOVED können je-
derzeit aus jedem Zustand heraus erreicht werden.
15.4 Statusdetails
Über den eigentlichen Zustand hinausgehend stellt openHAB 2 Ihnen weitere Details
bereit, mit deren Hilfe Sie vorliegende Fehlerbilder weiter eingrenzen können.
removal
initializedREMOVING
REMOVED
UNINITIALIZED INITIALIZING
ONLINE OFFLINE
UNKNOWN
5976.book Seite 304 Donnerstag, 30. August 2018 2:58 14
15.4 Statusdetails
305
15
UNINITIALIZED
� HANDLER_MISSING_ERROR: Der erforderliche Handler kann nicht initialisiert werden,
da das erforderliche Binding nicht verfügbar bzw. nicht gestartet ist.
� HANDLER_REGISTERING_ERROR: Die Initialisierung des Handlers schlug während der
Serviceregistrierung fehl.
� HANDLER_CONFIGURATION_PENDING: Der Handler wurde erfolgreich registriert. Seine
Initialisierung schlägt jedoch fehl, da erforderliche Konfigurationsangaben fehlen.
� HANDLER_INITIALIZING_ERROR: Der Handler schlug in der Phase der Initialisierung
fehl.
� BRIDGE_UNINITIALIZED: Die Bridge, über die dieses Thing angesprochen werden
muss, ist nicht initialisiert und daher nicht verfügbar, sodass auch das Thing selbst
nicht angesprochen werden kann.
� NONE: Es liegen keine weiteren Informationen vor.
ONLINE
� CONFIGURATION_PENDING: Es stehen noch Konfigurationen zur Übertragung an.
Nicht jedes Binding möchte sich rückversichern, dass ein Gerät die gesendete Kon-
figuration auch akzeptiert hat, aber einige tun es.
� COMMUNICATION_ERROR: Bei der Kommunikation mit dem Gerät ist ein (womöglich
lediglich temporärer) Fehler aufgetreten.
� CONFIGURATION_ERROR: Etwas bezüglich der Konfiguration ist fehlerhaft. Dies hat
zur Folge, dass mit dem Gerät oder Dienst keine Kommunikation möglich ist. Sie
müssen die Konfiguration des Things überarbeiten.
� NONE: Es liegen keine weiteren Informationen vor.
OFFLINE
� BRIDGE_OFFLINE: Das System muss davon ausgehen, dass das Gerät nicht erreichbar
sein kann, da die zugehörige Bridge als OFFLINE geführt wird.
� FIRMWARE_UPDATING: Das Thing ist gerade mit einem Update seiner Firmware be-
schäftigt.
� DUTY_CYCLE: Das Thing hat innerhalb eines bestimmten Zeitraumes zu viele Sende-
versuche unternommen. Weitere Sendeversuche werden daher bis Ablauf einer
bestimmten Frist ignoriert.
Über die Angabe von Status und Details hinausgehend kann das Binding dafür sor-
gen, dass zusätzlich eine Beschreibung hinterlegt wird. Diese ist für den Endanwen-
der allerdings weniger von Interesse als für den Entwickler.
5976.book Seite 305 Donnerstag, 30. August 2018 2:58 14
5976.book Seite 426 Donnerstag, 30. August 2018 2:58 14
427
23
Kapitel 23
openHAB 2 REST API
Sie möchten noch mehr Möglichkeiten? Noch mehr Interaktion?
Noch mehr Smart Home? Arbeiten Sie mit der REST API!
openHAB 2 aus anderen Services heraus auf unkompliziertem Weg ansprechen zu
können, den Status von Items über Skripte zu ermitteln oder über diese auch zu ver-
ändern – klingt das verlockend für Sie?
Was versteht man unter einer REST API?
REST steht für REpresentational State Transfer, API für Application Programming
Interface, zusammen bezeichnet es ein Programmierparadigma für verteilte Systeme
– und insbesondere für Webservices – zur Maschine-zu-Maschine-Kommunikation.
Diese Form der Schnittstelle bedient sich der gängigen Protokolle und Mechanismen
des Internets, wie beispielsweise HTTP oder HTML.
Über die openHAB 2 REST API können Sie (bzw. Ihre Programme und Skripte) fast
alle Informationen auf einfache Art auslesen: Informationen zu installierten Bin-
dings und deren Konfiguration, zu Things oder Items beispielsweise. Und das be-
inhaltet natürlich auch die Möglichkeit, beschreibbare Werte zu modifizieren oder
Aktionen anzustoßen – beispielsweise das Einschalten einer Lampe.
Übrigens
Auch die User Interfaces wie Basic UI oder Paper UI nutzen die openHAB 2 REST API
für die Darstellung und Bedienung der Items.
Die Kommunikation basiert auf der Nutzung des HTTP-Protokolls. Achten Sie auf
hinreichende Absicherung, sonst kann sich die REST API – beispielsweise dann, wenn
Sie sie über das Internet verfügbar machen – zu einem großen Sicherheitsrisiko ent-
wickeln.
Die Dokumentation
Die REST API gehört den fortgeschrittenen Themen an. Obgleich sie in jeder Neu-
installation enthalten ist (und enthalten sein muss, die User Interfaces sind ja direkt
5976.book Seite 427 Donnerstag, 30. August 2018 2:58 14
23 openHAB 2 REST API
428
davon abhängig), müssen Sie die Dokumentation manuell nachinstallieren, wenn Sie
damit arbeiten möchten. Veranlassen Sie dies in Paper UI, indem Sie über Add-ons •
Misc hin zu REST Documentation navigieren und den Vorgang mit einem Klick auf
Install starten. Sie erreichen die Dokumentation anschließend über:
http://openHABianPi:8080/doc/index.html
Für den Moment können wir dieses Thema an dieser Stelle lediglich streifen, doch
ganz sicher genügt das bereits, Sie final zu entflammen. Welche Aufgaben genau kön-
nen Sie über die REST API bewältigen? Nun – zahlreiche!
� Sie können über externe Programme aktuelle Daten aus Ihrer openHAB-2-Instanz
erhalten.
� Sie können umgekehrt »von außerhalb« Aktionen anstoßen oder Daten an Ihre
openHAB-2-Instanz übergeben, beispielsweise von jenen Aktoren, die sich nicht
über Bindings an openHAB 2 anbinden lassen.
� Sie haben die Möglichkeit, Ihre Items und Things zu untersuchen, sie gezielt zu
überwachen, Fehlersuche zu betreiben und – ein nicht zu vernachlässigender Fak-
tor – externe Systeme zu integrieren.
23.1 Nutzen Sie cURL
Im Folgenden nutzen wir cURL, ein weitverbreitetes Konsolenprogramm, damit Sie
einige erste Erfahrungen im Umgang mit der REST API erhalten. Betrachten Sie das
nachfolgende Beispiel: Schalten Sie zur Abwechslung das Lichtband im Wohnzim-
mer, repräsentiert durch das Switch-Item Lichtband_Schalter, doch einmal über
einen curl-Aufruf statt über das User Interface!
curl -X POST \--header "Content-Type: text/plain" \--header "Accept: application/json" \-d "ON" \"http://openHABianPi:8080/rest/items/Lichtband_Schalter"
Fordern Sie sich doch einmal eine Liste all Ihrer Sitemaps per cURL an – auch das ist
problemlos möglich! Fügen Sie Ihrem Aufruf ein | python -m json.tool hinzu, so er-
halten Sie eine hübschere und lesbarere Ausgabe.
curl -X GET \--header "Accept: application/json" \"http://openHABianPi:8080/rest/sitemaps" \| python -m json.tool
5976.book Seite 428 Donnerstag, 30. August 2018 2:58 14
23.3 Aus Ihren Regelwerken heraus
429
23
23.2 Nutzen Sie das Webinterface
Sie können die verfügbaren Aufrufe sehr bequem über das Webinterface ausprobie-
ren. Navigieren Sie zur Dokumentation der REST API, die Sie unter http://openHAB-
ianPi:8080/doc/index.html finden. Klicken Sie nun beispielsweise auf sitemaps, so
erhalten Sie eine Übersicht der verfügbaren Möglichkeiten – die erste in der Liste
heißt GET • /sitemaps.
Abbildung 23.1 Navigieren Sie durch die Möglichkeiten, die Ihnen die REST API bietet.
Ein Klick auf die Schaltfläche Try it out! liefert Ihnen Folgendes:
� Curl: Zeigt den verwendeten cURL-Aufruf an – denn auch das Webinterface tut
nichts anderes, als cURL-Anfragen zu senden.
� Request URL: Bezeichnet die zugrunde liegende Instanz, zu der die Verbindung
aufgebaut wird (üblicherweise handelt es sich hierbei um http://openHABianPi:
8080/rest/sitemaps).
� Response Body: Bezeichnet die Antwort, die auf die Anfrage hin empfangen wur-
de. Im Beispiel handelt es sich hierbei um alle im System verfügbaren Sitemaps.
� Response Code: Zeigt den HTTP-Status-Code, der auf die Anfrage hin aufgezeich-
net wurde (200 beispielsweise bedeutet »OK«). Die Bedeutung der einzelnen Codes
können Sie hier nachschlagen: https://www.w3.org/Protocols/rfc2616/rfc2616-sec-
10.html
� Response Headers: Enthält Datum, Größe und Typ der Information, die der Ser-
ver an den anfordernden Client zurückgesendet hat.
23.3 Aus Ihren Regelwerken heraus
Da es sich bei den Anfragen an die REST API um simple HTTP-Requests handelt,
spricht nichts dagegen, sich dies auch aus Regelwerken heraus zunutze zu machen.
5976.book Seite 429 Donnerstag, 30. August 2018 2:58 14
23 openHAB 2 REST API
430
rule "REST API Demo"when
Time cron "0 0/1 * * * ? *"then
val alleThings = sendHttpGetRequest("http://openHABianPi:8080/rest/things")logInfo("RestApi", "Output: {}", alleThings)
end
Listing 23.1 Ansprechen der REST API über »sendHttpGetRequest«
Sie können Routinen entwickeln, um über die REST API eine Liste aller Things zu er-
halten und anschließend nacheinander Aktionen auf jedes einzelne Thing auszufüh-
ren – beispielsweise eine Überprüfung, ob sie erreichbar ist oder nicht.
23.4 Nutzen Sie Python mit Icinga 2
Nachfolgend möchte ich Ihnen anhand eines etwas umfangreicheren Beispiels eine
Idee davon geben, in welchem Maße Sie Ihre openHAB-2-Installation unter Nutzung
der REST API integrieren können. Hierbei soll es um die Integration von openHAB 2
und Icinga 2 gehen.
Abbildung 23.2 Der Raspberry Pi ist erreichbar, und openHAB 2 gibt über die
REST API Informationen aus – alles im grünen Bereich!
5976.book Seite 430 Donnerstag, 30. August 2018 2:58 14
23.4 Nutzen Sie Python mit Icinga 2
431
23
Was ist Icinga 2?
Bei Icinga 2 handelt es sich um ein Framework zur Überwachung (Monitoring) von
Systemen und Diensten innerhalb Ihres Netzwerkes. Im Alarmfall können Sie sich
auf verschiedenen Wegen (beispielsweise per E-Mail, Messenger etc.) informieren
lassen. Auch bei Icinga 2 handelt es sich um Open-Source-Software, ihre Nutzung ist
für Sie kostenfrei.
Icinga 2 ist hierbei stellvertretend für eine wie auch immer geartete Form von Moni-
toring-Lösung zu sehen. Die REST API gibt Ihnen die Freiheit, openHAB 2 beliebig zu
integrieren. Lassen Sie uns ein Beispiel betrachten.
Stellen Sie sich vor, Sie nutzen die in Abschnitt 13.11 vorgestellte Schaltung zum Öff-
nen Ihrer Rollläden abhängig vom Sonnenaufgang. Nun erwachen Sie morgens, und
die Rollläden sind nicht geöffnet, obgleich das Regelwerk schon geraume Zeit feh-
lerfrei arbeitete. Die Frage ist also: Was führt dazu, dass die Schaltung nicht funktio-
niert? Leider ist die Antwort auf diese Frage alles andere als trivial, lassen Sie uns also
einen Blick auf mögliche Erklärungen werfen:
1. Das Netzwerk verursacht Probleme, vielleicht durch defekte Kabel, defekte oder
ausgeschaltete Router oder Ähnliches.
2. Der openHAB-2-Host ist aus bzw. nicht erreichbar – vielleicht abgestürzt, vielleicht
ist die SD-Karte kaputtgegangen, oder das Strom- bzw. Netzwerkkabel ist kaputt
bzw. »abgefallen«.
3. Der Host läuft zwar, doch der Dienst openHAB 2 läuft nicht.
4. Der Dienst openHAB 2 läuft, doch eines der benötigten Bindings (zum Beispiel das
Astro-Binding oder das HomeMatic-Binding) macht Probleme, ist nicht aktiv, ist
nicht installiert oder überhaupt nicht bzw. fehlerhaft konfiguriert.
5. Dienst und Bindings sind betriebsbereit, aber das HomeMatic-Gateway, die CCU2,
ist entweder nicht erreichbar (Strom, Netzwerk) oder im Fehlerzustand.
6. Dienst und Gateway sind in Ordnung, doch der Aktor ist im Fehlerzustand, sodass
das Gateway ihn nicht steuern kann – beispielsweise weil seine Batterie leer ist
(sofern er eine hat) oder die Sicherung, an der er hängt, gefallen ist (wenn er keine
Batterie hat), er außerhalb der Reichweite des Gateways ist, er sich zum Spaß »auf-
gehängt« hat und überhaupt nicht mehr reagiert, er für den Moment sein Sende-
limit (Duty cycle, siehe Abschnitt 9.1.1) erreicht hat.
7. Sie haben das Regelwerk eben doch irgendwie verändert, aus Versehen gelöscht
oder deaktiviert – mithin die simpelste (und auch häufigste) Erklärung.
Eine naheliegende Herangehensweise ist, möglichst viele dieser einzelnen Aspekte
kontinuierlich zu überwachen und zeitnah Informationen bezüglich eventueller
Ausfälle und Fehlfunktionen zu erhalten. Nicht bei allen ist das möglich. Die Möglich-
5976.book Seite 431 Donnerstag, 30. August 2018 2:58 14
23 openHAB 2 REST API
432
keiten, die Softwarefunktionalität eines Gateways (wie beispielsweise der Hue-Bridge
oder der HomeMatic CCU2) von außerhalb zu überprüfen, sind sehr eingeschränkt.
Ist das Gateway netzwerktechnisch erreichbar (sprich reagiert es auf einen ping), das
Webinterface jedoch nicht funktional, so ist erfahrungsgemäß davon auszugehen,
dass das Gateway im Gesamten einen »Tritt« (in Form eines Neustarts, versteht sich)
benötigt. Umgekehrt sind Netzwerkverfügbarkeit und Webinterface jedoch keine In-
dikatoren dafür, dass die Kommunikation mit den einzelnen Aktoren fehlerfrei funk-
tioniert.
Alles lässt sich also nicht problemlos abbilden, aber doch einiges davon:
� Mit hostalive-Checks prüfen Sie die Verfügbarkeit von Systemen (wie einzelnen
Rechnern, Routern, Gateways) – Sie wissen dann zumindest, dass sie Strom haben
und dass der Netzwerk-Stack grundsätzlich funktioniert. Beachten Sie jedoch, dass
auch ein Server, der mit Kernel-Panic den Dienst vollständig eingestellt hat, üb-
licherweise auf Pings reagiert – die Verfügbarkeit sagt nichts über die Funktiona-
lität aus.
� Mit tiefer gehenden Checks prüfen Sie die Funktionalität von Systemen – Auslas-
tung von Prozessoren und Arbeitsspeicher, angemeldete Benutzer etc.
� Analog verhält es sich mit Diensten: Nur, weil beispielsweise auf Port 80 etwas
läuft, heißt das nicht, dass es sich hierbei um einen funktionsfähigen Webserver
handelt. Prüfen Sie also nicht nur die Verfügbarkeit von Diensten, sondern auch
wo immer möglich deren Funktionalität.
Auf diese Art können Sie die Punkte 1 und 2 bereits vollständig abdecken. Um Punkt 3
zu prüfen – also ob der Dienst openHAB 2 nicht nur läuft, sondern auch reagiert und
über die REST API Informationen ausgibt –, ist ein kleines Python-Skript wie das fol-
gende denkbar. Stellen Sie vor Ausführung sicher, dass Ihr Raspberry Pi zumindest
über das Paket python verfügt.
#!/usr/bin/env pythonimport requestsfrom requests.exceptions import ConnectionErrordef openHAB_request(url):
try:r = requests.get(url, timeout=10)
except ConnectionError as e:print eprint('ERROR - REST API not responding')
data = r.json()return data
def main():restapi = 'http://openHABianPi:8080/rest'
5976.book Seite 432 Donnerstag, 30. August 2018 2:58 14
23.4 Nutzen Sie Python mit Icinga 2
433
23
itemcount = str(len(openHAB_request(restapi + '/items?recursive=true')))thingcount = str(len(openHAB_request(restapi + '/things')))systemuuid = requests.get(restapi + '/uuid')exit_msg = thingcount + ' things and ' + itemcount + ¿
' items in openHAB 2 system with UUID ' + systemuuid.textprint(exit_msg)
if __name__ == "__main__":main()
Listing 23.2 Ein kleines Python-Skript kommuniziert mit der REST API.
Legen Sie dieses Skript als openHAB2_alive.py in /home/openhabian/bin ab, und ma-
chen Sie es mit chmod +x ausführbar. Anschließend können Sie es bereits ausführen.
./openHAB2_alive.py
20 things and 147 items in openHAB 2 system with UUID 4df94d76-(xxx)-aec9
Sie sehen, mit etwas Mühe ist es gar nicht so kompliziert, über die REST API Informa-
tionen zu erhalten – und Python eignet sich hierzu sogar ganz besonders. Im Sinne
der Überwachung können Sie die Punkte 1 bis 3 und Punkt 5 zumindest in Bezug auf
grundsätzliche Erreichbarkeit in zufriedenstellender Weise abhaken. Im Fehlerfall er-
laubt Ihnen dies, sich ganz zielgerichtet auf die verbliebenen Punkte zu konzentrie-
ren, was Ihre Fehlersuche signifikant beschleunigt.
Für die Integration in Icinga 2 können Sie sich das etwas umfangreichere Skript
check_openhab2.py zunutze machen, das Sie zu Ihrer freien Verfügung auf GitHub
oder auf Icinga Exchange finden:
https://exchange.icinga.com/spillerm/icinga2-plugin-openhab2
Oder erstellen Sie etwas eigenes, denn wie Sie gerade gesehen haben, ist das alles gar
nicht so schwer.
Damit müssen wir die REST API – zumindest im Kontext dieses Buches – verlassen,
doch vergessen sollten Sie sie nicht. Ihr Funktionsumfang ist groß, und sie kann
Ihnen die Arbeit mit dem System durchaus angenehmer gestalten.
5976.book Seite 433 Donnerstag, 30. August 2018 2:58 14
Auf einen Blick
Auf einen Blick
TEIL I Lernen Sie openHAB 2 kennen
1 Ihr Smart Home mit openHAB 2 ....................................................................... 27
2 openHAB 2 zieht ein – die Installation ........................................................... 35
3 Damit alles rundläuft – Administration und Praxistipps ......................... 57
4 Ihre Werkstatt – Management und Administration ................................. 81
5 Alle Informationen auf einen Blick – die Interfaces ................................... 89
6 Konzepte und Zusammenspiel – die ersten Praxisschritte mit openHAB 2 ....................................................................................................... 95
TEIL II openHAB 2 – Einsatz im Demohaus
7 Stimmige Beleuchtung – so integrieren Sie Philips Hue .......................... 137
8 Integration Ihrer FRITZ!Box ................................................................................ 149
9 Sensoren und Aktoren – so integrieren Sie HomeMatic .......................... 159
10 Film ab! Integration von Kodi ............................................................................ 203
11 Denken in Szenen – so binden Sie Apple HomeKit ein ............................. 209
12 Einbringen von Actions ........................................................................................ 221
13 Und Action! Ideen, Projekte und Regelwerke ............................................... 229
TEIL III openHAB 2 – Konzepte und Theorie
14 Bindings .................................................................................................................... 299
15 Things – »Alles ist ein Ding« .............................................................................. 301
16 Items – die virtuelle Sicht auf Ihre Hardware .............................................. 307
17 Sitemaps ................................................................................................................... 333
18 Transformation Services – Ihre persönlichen Übersetzungen ............... 363
19 Persistence Services – speichern Sie Ihre Daten dauerhaft ..................... 371
20 Voice Services – »Ich glaub, ich höre Stimmen« ......................................... 379
21 Actions – Kommunikation des Systems ......................................................... 385
22 Regelwerke oder Rules ......................................................................................... 393
23 openHAB 2 REST API .............................................................................................. 427
24 Die Erstellung von Graphen ............................................................................... 435
25 Das System auf einer externen Platte betreiben ........................................ 453
26 System-Backups mit AMANDA ......................................................................... 459
27 Support und Ihr Mitwirken in der Community ............................................ 469
5976.book Seite 3 Donnerstag, 30. August 2018 2:58 14
Inhalt
5
Inhalt
Materialien zum Buch ....................................................................................................................... 17
Geleitwort von Kai Kreuzer .............................................................................................................. 19
TEIL I Lernen Sie openHAB 2 kennen
1 Ihr Smart Home mit openHAB 2 27
1.1 Was ist openHAB 2? ........................................................................................................... 28
1.2 Was ist openHAB 2 nicht? ............................................................................................... 29
1.3 Modernes Wohnen in alten Gemäuern .................................................................... 30
1.4 Heimautomation – besser nicht grenzenlos ........................................................... 30
1.5 Das Demohaus ...................................................................................................................... 32
2 openHAB 2 zieht ein – die Installation 35
2.1 Systemvoraussetzungen .................................................................................................. 36
2.2 Der Raspberry Pi 3, Modell B/B+, und sein Zubehör ........................................... 38
2.3 Installation von openHABian auf dem Raspberry Pi ........................................... 41
2.3.1 Erster Schritt: Download der benötigten Dateien .................................... 42
2.3.2 Zweiter Schritt: Einrichtung der Speicherkarte ......................................... 42
2.3.3 Dritter Schritt: Erstes Booten ........................................................................... 43
2.3.4 Vierter Schritt: Erstes Anmelden per SSH .................................................... 45
2.3.5 Fünfter Schritt: Passwortänderung ............................................................... 46
2.4 Installation von openHABian auf Debian bzw. Ubuntu .................................... 47
2.5 Manuelle Installation von openHAB 2 ...................................................................... 47
2.5.1 Unter Linux ............................................................................................................. 48
2.5.2 Unter macOS ......................................................................................................... 49
2.5.3 Unter Windows ..................................................................................................... 51
2.5.4 Installation auf einer Synology DiskStation ................................................ 51
2.6 Nachbereitung ...................................................................................................................... 53
2.7 Sprache und Systemzeit ................................................................................................... 55
5976.book Seite 5 Donnerstag, 30. August 2018 2:58 14
Inhalt
6
3 Damit alles rundläuft – Administration und Praxistipps 57
3.1 Starten und Stoppen des Dienstes .............................................................................. 57
3.2 Die Arbeit mit der Karaf-Konsole ................................................................................. 58
3.2.1 Das Verbinden mit der Konsole ....................................................................... 58
3.2.2 Ändern des Konsolenpasswortes ................................................................... 62
3.2.3 Die Konsole an alle Interfaces binden ........................................................... 62
3.3 Logs finden und verstehen .............................................................................................. 62
3.3.1 Logmeldungen in Echtzeit ................................................................................ 63
3.3.2 Logdateien im Dateisystem .............................................................................. 64
3.3.3 Aufruf im Browser ............................................................................................... 65
3.4 Konfigurationen finden und bearbeiten .................................................................. 66
3.4.1 Im Dateisystem ..................................................................................................... 66
3.4.2 Konfiguration auf einem Samba-Share ........................................................ 67
3.5 Backup und Restore ........................................................................................................... 71
3.6 Einige Worte zur Sicherheit ............................................................................................ 72
3.6.1 Ändern Sie alle Default-Passwörter ............................................................... 72
3.6.2 Halten Sie Ihre Systeme aktuell ...................................................................... 73
3.6.3 Ansteuerung von unterwegs ........................................................................... 74
3.6.4 Lassen Sie auch Aktoren verschlüsselt kommunizieren ......................... 77
3.6.5 Absicherung bei einem Stromausfall ............................................................ 78
4 Ihre Werkstatt – Management und Administration 81
4.1 Paper UI ................................................................................................................................... 81
4.2 Microsoft Visual Studio Code ........................................................................................ 82
4.3 HomeBuilder ......................................................................................................................... 86
5 Alle Informationen auf einen Blick – die Interfaces 89
5.1 Basic UI ..................................................................................................................................... 89
5976.book Seite 6 Donnerstag, 30. August 2018 2:58 14
Inhalt
7
5.2 HABPanel ................................................................................................................................ 90
5.3 openHAB-Smartphone-Apps ......................................................................................... 92
6 Konzepte und Zusammenspiel – die ersten Praxisschritte mit openHAB 2 95
6.1 Die Einrichtung des Demohauses ................................................................................ 95
6.1.1 Die Items ................................................................................................................. 96
6.1.2 Die Sitemaps .......................................................................................................... 98
6.2 Die ersten Schritte: Sonnenstand und Mondphasen mit
dem Astro-Binding ............................................................................................................. 104
6.2.1 Latitude und Longitude ermitteln .................................................................. 104
6.2.2 Das Astro-Binding installieren und konfigurieren .................................... 106
6.3 Wetterdaten via YAHOO! Weather ............................................................................. 116
6.3.1 Where on Earth Identifier ................................................................................. 117
6.3.2 Das Binding installieren und konfigurieren ................................................ 117
6.3.3 Die Erfassung der Items ..................................................................................... 118
6.3.4 Die Integration in die Sitemap ........................................................................ 121
6.3.5 Status Summary Items ....................................................................................... 127
6.3.6 Wettervorhersage als Webview-Element einbinden ............................... 131
TEIL II openHAB 2 – Einsatz im Demohaus
7 Stimmige Beleuchtung – so integrieren Sie Philips Hue 137
7.1 Einrichtung der Hardware ............................................................................................... 138
7.2 Das Hue-Binding installieren ......................................................................................... 138
7.3 Beleuchtung.map ................................................................................................................ 139
7.4 Das Lichtband ........................................................................................................................ 140
7.5 Der Lichtwecker ................................................................................................................... 144
5976.book Seite 7 Donnerstag, 30. August 2018 2:58 14
Inhalt
8
8 Integration Ihrer FRITZ!Box 149
8.1 Die Inbetriebnahme ........................................................................................................... 149
8.1.1 Die Box vorbereiten ............................................................................................. 149
8.1.2 Installation und Konfiguration des Bindings .............................................. 151
8.2 Die FRITZ!Box-Items ........................................................................................................... 152
8.3 Anwesenheitserkennung anhand von Smartphones ......................................... 152
8.4 Den Anrufbeantworter ein- und ausschalten ........................................................ 154
8.5 Stellen Sie Ihre Leitungswerte dar ............................................................................... 155
9 Sensoren und Aktoren – so integrieren Sie HomeMatic 159
9.1 Das Binding installieren und die HomeMatic-Zentrale CCU2
integrieren .............................................................................................................................. 161
9.1.1 Duty Cycle ............................................................................................................... 163
9.1.2 Der Channel SIGNAL_STRENGTH .................................................................... 163
9.1.3 Batteriestände ...................................................................................................... 164
9.2 Schaltaktor HM-LC-Sw1-Pl-2 ......................................................................................... 165
9.3 MP3-Funkgong ..................................................................................................................... 167
9.3.1 Licht .......................................................................................................................... 169
9.3.2 Ton ............................................................................................................................ 170
9.4 Tür- bzw. Fenstersensor HM-Sec-SC-2 ....................................................................... 171
9.4.1 An der Haustür ...................................................................................................... 172
9.4.2 Am Notausstieg .................................................................................................... 174
9.5 Leistungsmesser HM-ES-PMSw1-Pl ............................................................................ 176
9.6 Temperaturdifferenzsensor HM-WDS30-OT2-SM ............................................... 180
9.7 Rollladenaktor HM-LC-Bl1PBU-FM .............................................................................. 185
9.8 Die vierfache Tasterschnittstelle HM-PBI-4-FM .................................................... 187
9.9 Bewegungsmelder HM-Sec-MDIR-2 ........................................................................... 189
9.10 Wandthermostat HM-TC-IT-WM-W-EU .................................................................... 190
9.11 Heizkörperthermostat HM-CC-RT-DN ....................................................................... 192
9.12 Schaltaktor HM-LC-Sw4-DR ............................................................................................ 199
5976.book Seite 8 Donnerstag, 30. August 2018 2:58 14
Inhalt
9
10 Film ab! Integration von Kodi 203
10.1 Installation des Plug-ins und Anbindung an Kodi ................................................ 203
10.2 Die Items ................................................................................................................................. 205
10.3 Die Sitemap ............................................................................................................................ 206
11 Denken in Szenen – so binden Sie Apple HomeKit ein 209
11.1 »Hey, Siri!« – das Binding und die Integration in openHAB 2 ........................ 210
11.2 Die Anbindung ...................................................................................................................... 211
11.2.1 Wenn das Pairing Probleme bereitet ............................................................ 211
11.3 Räume, Zonen, Gerätegruppen .................................................................................... 212
11.3.1 Räume ...................................................................................................................... 213
11.3.2 Zonen ....................................................................................................................... 214
11.3.3 Gerätegruppen ...................................................................................................... 214
11.4 Erstellung und Integration von HomeKit-Items .................................................... 215
11.4.1 Am Beispiel CurrentTemperature und CurrentHumidity ....................... 215
11.4.2 Am Beispiel Lighting & Switchable ................................................................ 216
11.5 »Ich möchte baden« – erstellen Sie eigene Szenen ............................................. 217
11.6 Umgang mit Einschränkungen ..................................................................................... 219
12 Einbringen von Actions 221
12.1 Telegram Messenger ......................................................................................................... 221
12.2 Mail Action ............................................................................................................................ 223
12.3 Twitter Action ...................................................................................................................... 224
13 Und Action! Ideen, Projekte und Regelwerke 229
13.1 Notausstieg geöffnet? Alarmieren Sie! ..................................................................... 229
13.2 Eine kleine Nachtlichtschaltung ................................................................................... 231
5976.book Seite 9 Donnerstag, 30. August 2018 2:58 14
Inhalt
10
13.3 Szenenbeleuchtung im Handumdrehen ................................................................... 232
13.3.1 Das Item .................................................................................................................. 233
13.3.2 Die Sitemap ............................................................................................................ 233
13.3.3 Das Regelwerk ....................................................................................................... 234
13.4 Für sanftes Erwachen – Ihr Lichtwecker ................................................................... 235
13.5 Das Heimkino automatisiert beleuchten ................................................................. 237
13.5.1 Licht aus, Film an! ................................................................................................ 238
13.5.2 Wiedergabe beendet, Licht an ......................................................................... 239
13.6 Alternative Signalisierung Ihrer eingehenden Anrufe ....................................... 240
13.7 Pausieren Sie die Heimkinowiedergabe bei Anrufen ......................................... 242
13.8 Ihre individuelle Haustürklingel – so sorgen Sie für Aufmerksamkeit ....... 244
13.9 Die twitternde, blinkende Waschmaschine ............................................................ 246
13.10 Für Durchzug sorgen – automatische Lüftung im Badezimmer .................... 248
13.10.1 Ganz simpel: Licht an schaltet Lüfter ein ..................................................... 249
13.10.2 Etwas besser: Licht an schaltet Lüfter ein, Nachlauf 15 Minuten ....... 249
13.10.3 Profi: Sprunghaft ansteigende Luftfeuchtigkeit schaltet
Lüfter ein ................................................................................................................. 251
13.11 Pflanzenschutz – Jalousiesteuerung je nach Sonnenstand ............................. 253
13.11.1 Die Kernzeit ............................................................................................................ 254
13.11.2 Die Sonne brennt ................................................................................................. 256
13.11.3 Die Rollläden .......................................................................................................... 257
13.11.4 Öffnen, Schließen, Sonnenschutz! ................................................................. 258
13.11.5 Die finale Regel ..................................................................................................... 261
13.11.6 Die Sonnenschutzlogik in der Sitemap ......................................................... 262
13.11.7 Fazit .......................................................................................................................... 263
13.12 Heizroutinen .......................................................................................................................... 264
13.12.1 Die Items ................................................................................................................. 265
13.12.2 Die Sitemap ............................................................................................................ 266
13.12.3 Die Regelwerke ..................................................................................................... 267
13.13 Niemand im Haus? Lichter aus! Ein paar Gedanken zum
Thema Anwesenheitserkennung ................................................................................. 269
13.13.1 Die einfachste Methode – über ein Item/einen Handsensor ............... 270
13.13.2 Anhand eines im WLAN angemeldeten Smartphones ............................ 270
13.13.3 RFID ........................................................................................................................... 271
13.13.4 OwnTracks und MQTT ........................................................................................ 271
13.14 Immer alles im Blick – integrieren Sie eine Kamera ............................................ 282
13.14.1 Anschluss und Inbetriebnahme ...................................................................... 283
5976.book Seite 10 Donnerstag, 30. August 2018 2:58 14
Inhalt
11
13.14.2 Erste Probeaufnahmen ...................................................................................... 284
13.14.3 Livecam mit openHAB 2 ..................................................................................... 286
13.14.4 Kamerabild per E-Mail ........................................................................................ 288
13.14.5 Die Orchidee im Zeitraffer ................................................................................ 289
13.15 Experimentell – Integration eines Viessmann-Brenners .................................. 291
13.16 Ausblick ................................................................................................................................... 294
TEIL III openHAB 2 – Konzepte und Theorie
14 Bindings 299
14.1 Installation und Konfiguration ..................................................................................... 300
14.2 Eigene Bindings und Beta-Versionen ......................................................................... 300
15 Things – »Alles ist ein Ding« 301
15.1 Channels .................................................................................................................................. 302
15.2 Bridges ..................................................................................................................................... 303
15.3 Thing-Status .......................................................................................................................... 303
15.4 Statusdetails .......................................................................................................................... 304
16 Items – die virtuelle Sicht auf Ihre Hardware 307
16.1 Definition und Syntax ....................................................................................................... 308
16.1.1 itemname ............................................................................................................... 309
16.1.2 itemlabel ................................................................................................................. 309
16.1.3 stateformat ............................................................................................................ 309
16.1.4 iconname ................................................................................................................ 313
16.1.5 Gruppenzuordnungen ........................................................................................ 315
16.1.6 Zuweisung von Tags ........................................................................................... 316
16.2 Die verschiedenen Arten von Items in alphabetischer Reihenfolge ............ 317
16.2.1 Color-Item ............................................................................................................... 317
16.2.2 Contact-Item ......................................................................................................... 319
16.2.3 DateTime-Item ...................................................................................................... 320
5976.book Seite 11 Donnerstag, 30. August 2018 2:58 14
Inhalt
12
16.2.4 Dimmer-Item ......................................................................................................... 322
16.2.5 Group-Item ............................................................................................................. 323
16.2.6 Location-Item ........................................................................................................ 327
16.2.7 Number-Item ......................................................................................................... 328
16.2.8 Player-Item ............................................................................................................. 328
16.2.9 Rollershutter-Item ............................................................................................... 329
16.2.10 String-Item ............................................................................................................. 331
16.2.11 Switch-Item ............................................................................................................ 331
17 Sitemaps 333
17.1 Die Definition einer Sitemap ......................................................................................... 334
17.2 Erstellung von Untermenüs ............................................................................................ 336
17.3 Mappings ................................................................................................................................ 337
17.4 Dynamische Sitemaps ....................................................................................................... 340
17.4.1 label .......................................................................................................................... 341
17.4.2 icon ............................................................................................................................ 341
17.4.3 valuecolor, labelcolor .......................................................................................... 341
17.4.4 visibility ................................................................................................................... 343
17.5 Die unterstützten Elementtypen in alphabetischer Reihenfolge ................. 348
17.5.1 Das Element Chart .............................................................................................. 348
17.5.2 Das Element Colorpicker .................................................................................. 350
17.5.3 Das Element Default .......................................................................................... 351
17.5.4 Das Element Frame ............................................................................................ 352
17.5.5 Das Element Group ............................................................................................ 353
17.5.6 Das Element Image ............................................................................................ 354
17.5.7 Das Element Mapview ...................................................................................... 355
17.5.8 Das Element Selection ....................................................................................... 355
17.5.9 Das Element Setpoint ........................................................................................ 356
17.5.10 Das Element Slider .............................................................................................. 357
17.5.11 Das Element Switch ........................................................................................... 358
17.5.12 Das Element Text ................................................................................................ 360
17.5.13 Das Element Video ............................................................................................. 360
17.5.14 Das Element Webview ...................................................................................... 361
5976.book Seite 12 Donnerstag, 30. August 2018 2:58 14
Inhalt
13
18 Transformation Services – Ihre persönlichen Übersetzungen 363
18.1 JSONPath Transformation ............................................................................................... 364
18.2 Map Transformation .......................................................................................................... 365
18.3 Scale Transformation ........................................................................................................ 367
18.4 Unicode Characters ............................................................................................................ 369
19 Persistence Services – speichern Sie Ihre Daten dauerhaft 371
19.1 Was ist Persistence? ........................................................................................................... 371
19.2 Wie binde ich Persistence Services ein? .................................................................... 372
19.3 Default Persistence ............................................................................................................ 374
19.4 Beispiele für die Nutzung historischer Daten in Regelwerken ....................... 375
20 Voice Services – »Ich glaub, ich höre Stimmen« 379
20.1 Wiedergabe über den Kopfhörerausgang ............................................................... 379
20.2 Die Arbeit mit MaryTTS .................................................................................................... 380
21 Actions – Kommunikation des Systems 385
21.1 Core Actions ........................................................................................................................... 385
21.1.1 Event Bus Actions ................................................................................................. 385
21.1.2 Audio-Actions ........................................................................................................ 386
21.1.3 Logging Actions .................................................................................................... 387
21.1.4 HTTP-Actions ......................................................................................................... 388
21.1.5 Timer Actions ........................................................................................................ 388
21.1.6 Thing Status Action ............................................................................................. 390
21.1.7 Cloud Notification Actions ................................................................................ 390
21.2 Installierbare Actions ........................................................................................................ 391
5976.book Seite 13 Donnerstag, 30. August 2018 2:58 14
Inhalt
14
22 Regelwerke oder Rules 393
22.1 Allgemeines ........................................................................................................................... 394
22.2 Die Struktur ........................................................................................................................... 394
22.2.1 Abschnitt 1: Die Importe ................................................................................... 395
22.2.2 Abschnitt 2: Die Variablendeklarationen .................................................... 395
22.2.3 Abschnitt 3: Die Anweisungen ........................................................................ 396
22.3 Das Auslösen von Regelwerken – when ................................................................... 397
22.3.1 Item-basierte Auslöser ....................................................................................... 398
22.3.2 Zeitbasierte Auslöser .......................................................................................... 400
22.3.3 Systembasierte Auslöser ................................................................................... 402
22.3.4 Thing-basierte Auslöser ..................................................................................... 403
22.3.5 Channel-basierte Auslöser ................................................................................ 404
22.4 Das Schreiben der Regeln – then ................................................................................. 404
22.4.1 Logmeldungen aus Ihren Regeln heraus ...................................................... 405
22.4.2 Items und ihre Werte .......................................................................................... 407
22.4.3 Units of Measurement ....................................................................................... 411
22.4.4 Kontrollstrukturen ............................................................................................... 412
22.4.5 Thread::sleep ,Timer, Expire-Binding ............................................................ 416
22.4.6 Early returns ........................................................................................................... 417
22.4.7 Aktionen auf Gruppen ........................................................................................ 417
22.4.8 Wiederverwendbarer Code – Lambda Expressions .................................. 418
22.4.9 Mathematische Funktionen ............................................................................. 422
22.5 System Restart vs. Rules Engine ................................................................................... 423
23 openHAB 2 REST API 427
23.1 Nutzen Sie cURL ................................................................................................................... 428
23.2 Nutzen Sie das Webinterface ........................................................................................ 429
23.3 Aus Ihren Regelwerken heraus ..................................................................................... 429
23.4 Nutzen Sie Python mit Icinga 2 ..................................................................................... 430
5976.book Seite 14 Donnerstag, 30. August 2018 2:58 14
Inhalt
15
24 Die Erstellung von Graphen 435
24.1 Über die interne Chart Engine ....................................................................................... 435
24.2 Mit InfluxDB und Grafana ............................................................................................... 439
24.2.1 InfluxDB und Persistence InfluxDB konfigurieren .................................... 440
24.2.2 Grafana konfigurieren und InfluxDB als Backend hinterlegen ............ 442
24.2.3 Dashboards und Visualisierungen in Grafana erstellen ......................... 444
25 Das System auf einer externen Platte betreiben 453
25.1 Partitionierung ..................................................................................................................... 454
25.2 Dateisystem ........................................................................................................................... 454
25.3 Ins System einbinden ........................................................................................................ 454
25.4 Kopieren der Daten ............................................................................................................ 455
25.5 Anpassen der cmdline.txt ............................................................................................... 455
25.6 Neustart ................................................................................................................................... 456
26 System-Backups mit AMANDA 459
26.1 Den USB-Stick ins System einbringen ........................................................................ 460
26.2 AMANDA installieren und konfigurieren ................................................................. 463
26.3 Das erste Backup erstellen .............................................................................................. 464
26.4 Testen! ..................................................................................................................................... 465
26.5 Fazit ........................................................................................................................................... 467
27 Support und Ihr Mitwirken in der Community 469
27.1 Präsentieren Sie Ihre Lösungen .................................................................................... 470
27.2 Schreiben Sie eine Dokumentation ............................................................................ 470
5976.book Seite 15 Donnerstag, 30. August 2018 2:58 14
Inhalt
16
27.3 Melden Sie Fehler ................................................................................................................ 470
27.4 Testen Sie! .............................................................................................................................. 471
27.5 Und nicht zuletzt: Bleiben Sie freundlich! ............................................................... 471
Anhang: Tabellarische Übersichten .............................................................................................. 473
Index ........................................................................................................................................................ 507
5976.book Seite 16 Donnerstag, 30. August 2018 2:58 14