openHAB :: Steuerung mit NFC-Tags
Die heutigen Smartphones enthalten meist ein NFC-Modul mitsamt intern verbauter Antenne. Mit dieser „Near-Field-Communication“-Technologie ist es möglich, kontaktlos Daten zu übertragen. Interessant dabei ist, dass der Sender über keine eigene Stromquelle verfügen muss sondern vom Empfänger induktiv versorgt wird. Daher können sogenannte NFC-Tags zu Cent-Preisen erworben werden. Warum sollte man diese Technik nicht für die Hausautomatisierung mit openHAB verwenden?
Verfügbare Artikel zu openHAB
Einleitung
NFC-Tags gibt es in unterschiedlichen Bauformen. Die günstigsten kommen als Aufkleber daher, erhältlich sind diese aber beispielsweise auch als Schlüsselanhänger. Zu beachten ist beim Kauf jedoch der NFC-Typ. Verbreitet sind beispielsweise die Typen NTAG 213, Topaz 512, NTAG 216, Mifare oder DESFire. Bitte daher vor dem Kauf auf die Kompatibilität mit den eigenen NFC-Geräten achten! In dieser Anleitung wird Schritt für Schritt gezeigt, wie ein solcher NFC-Tag beschrieben wird und wie mit einem solchen Geräte geschaltet werden können.
Möglichkeit 1 – Mit dem Tag HABDroid öffnen
[appbox googleplay org.openhab.habdroid]
Im einfachsten Fall reicht es uns, die Android-App HABDroid durch den NFC-Tag öffnen zu lassen. Dazu installieren und öffnen wir die App, richten die App auf unsere eigene openHAB-Instanz ein und wählen im Menü den Punkt „NFC-Tag schreiben„. Nach der Aufforderung halten wir unseren NFC-Tag hinter unser Smartphone und der Tag wird beschrieben. Zukünftig brauchen wir HABDroid nicht mehr im Appdrawer suchen sondern nur noch das Smartphone auf den NFC-Tag halten / legen.
[Update] Möglichkeit 2 – Mit HABDroid Aktionen auf NFC-Tags schreiben
Sebastian teilte mir eine weitere Möglichkeit mit, mit NFC-Tags und openHAB Geräte zu schalten. Dazu bedienen wir uns einer Funktion in HABDroid, die ich bisher nicht kannte. Wir navigieren in HABDroid zu dem Item, dass wir per NFC schalten wollen. Wenn wir das Item länger gedrückt halten, erscheint ein Kontextmenü.
Aus diesem wählen wir aus, ob unser neuer NFC-Tag das Item ein- oder ausschalten soll. Anschließend erscheint das bereits bekannte Bild, dass wir nun unseren NFC-Tag zum beschreiben an das Smartphone halten sollen.
Wurde der Tag erfolgreich beschrieben, können wir HABDroid verlassen und ihn direkt testen. An unserem Smartphone sehen wir lediglich eine kurze Meldung, dass HABDroid sich mit unserem openHAB verbindet und unser Wohnzimmerlicht wird ein- bzw. ausgeschaltet.
Möglichkeit 3 – Geräte mit Trigger schalten
[appbox googleplay com.jwsoft.nfcactionlauncher]
Die openHAB REST-API erlaubt es uns, via URL Geräte direkt ein- oder auszuschalten. Die entsprechende URL setzt sich wie folgt zusammen:
http://IP_VON_OPENHAB/CMD?ITEM=ON
Mit dieser URL können wir Items ein- (ON), aus- (OFF) oder umschalten (TOGGLE).
Damit das Smartphone diese URL direkt und im Hintergrund aufruft, nutzen wir die App „Trigger“, die bereits oben verlinkt ist. Nach dem Herunterladen und Installieren der App öffnen wir diese und begeben uns zum Menüpunkt „Meine Aufgaben„. Da noch keine Aufgaben konfiguriert wurden, erscheint folgendes Bild:
Wir wählen den Menüpunkt „Eine Aufgabe erstellen„. Im folgenden Bild müssen wir ein Event wählen, wann unsere Aufgabe ausgeführt werden soll. Für diese Anleitung drücken wir auf den Button „+“ und wählen natürlich „NFC„.
Den folgenden Hinweis, dass der NFC-Tag nach Erstellung der Aufgabe beschrieben werden kann, bestätigen wir mit „Weiter„.
Nach persönlichen Belieben kann die Ausführung dieser Aufgabe noch beschränkt werden, beispielsweise nur, wenn man sich im heimischen WLAN befindet. Ansonsten überspringen wir diesen Schritt mit „Fertig„.
Im folgenden Bild sehen wir nun, dass als Trigger bzw. Event bzw. Aufgaben-auszulösendes-Ereignis nun NFC hinzugefügt wurde. Wir setzen die Konfiguration fort mit „Weiter„.
Nun werden wir aufgefordert, Aktionen zu definieren, welche bei Erkennung des NFC-Tags ausgeführt werden sollen. Dazu drücken wir auf den „+„-Button rechts oben.
Hier kann man seiner Kreativität nun freien Lauf lassen. Für unser Beispiel wählen wir aus dem Menüpunkt „Anwendungen und Shortcuts“ die beiden Aktionen „URL öffnen“ und „Text sprechen„.
Im Feld „URL“ tragen wir nun die URL der openHAB-REST-API ein, die unser Item schalten lässt. Beispielsweise:
http://IP_VON_OPENHAB/CMD?TISCHLAMPE_WZ=ON
Da wir die angegebene URL nicht persönlich in einem Browser betrachten wollen, aktivieren wir zudem den Punkt „Im Hintergrund öffnen„. Im Feld „Text sprechen“ wählen wir passenderweise „Tischlampe Wohnzimmer eingeschaltet„.
Wir sichern unsere Aktionen mit der Schaltfläche „Zu Aufgabe hinzufügen“ und sehen auf dem folgenden Bild unser Resultat:
Nun gehen wir „Weiter“ und können auf der folgenden Seite eine sogenannte „Switch-Aufgabe“ einrichten. Das heißt, dass weitere Aktionen hinterlegt werden können, die ausgeführt werden, wenn der Tag ein zweites Mal gelesen wird. Diese Aktionen „switchen“ bei jedem Einlesen des Tags hin- und her. In unserem Fall verzichten wir auf diese Option, denn wir möchten einen zweiten Tag verwenden, um das Wohnzimmerlicht wieder auszuschalten.
Der Konfigurationsvorgang ist abgeschlossen und wir werden aufgefordert, einen kompatiblen NFC-Tag an unser Smartphone zu halten, damit die Konfiguration auf diesen geschrieben werden kann.
Wurde der Tag erfolgreich beschrieben, erscheint sogleich eine dementsprechende Erfolgsmeldung.
Wenn wir nun auf den Haken links oben drücken, kehren wir zum Aufgabenmenü zurück und sehen unsere erstellten Aufgaben. Die gleichen Schritte führen wir erneut durch und konfigurieren das Ausschalten der Wohnzimmerlampe auf einen zweiten Tag. Im Anschluss sieht unser Aufgabenmenü dann in etwa so aus:
Nun empfiehlt es sich, den openHAB-Logstream zu öffnen und die Tags auszuprobieren. Im Erfolgsfall erscheinen die entsprechenden Schaltvorgänge im Logstream.
Daniel Wenzel
13.11.2015 @ 11:23
Hallo Sebastian,
1. Zur Zeit setzte ich noch kein NFC ein, kann mir aber vorstellen, sich bei Ankunft zuhause beim „Haus“ anzumelden und andersrum. Ich werde demnächst mit einem NFC-Empfänger tüfteln, der direkt an Raspberry angeschlossen wird. Dann kann man sich direkt mit dem Schlüsselanhänger an diesem Empfänger anmelden.
2. Ja. Diese Anleitung beruht darauf, dass man den NFC-Empfänger nutzt, der im Smartphone verbaut ist. Irgendwann gibt es einen Beitrag, der den Punkt 1 beschreibt ;)
Deinen Hinweis mit HABDroid kannte ich bisher gar nicht, vielen Dank dafür. Ich habe es soeben getestet und es funktioniert genau so, wie du es beschrieben hast. Ich werde die Anleitung dementsprechend erweitern.
Sebastian
13.11.2015 @ 11:17
Servus,
super Beschreibung. Danke dafür! Zwei Fragen sind mir beim lesen gekommen:
1) Welche Use-Cases deckst du damit zu Hause ab? Handy an nen Tag halten um das Licht anzuschalten? Präsenz Erkennung mit den Schlüsselanhängern?
2) Mit welcher Hardware liest du die Schlüsselanhänger Tokens aus? Muss man die ans Handy halten?
Ich hatte beim Internet stöbern in Bezug auf NFC und Habdroid verstanden, dass man Items direkt auf einen NFC Tag schreiben kann. Wenn man in Habdriod lange auf ein Item drückt, soll ein Submenü aufgehen, in dem man genau das eine Item in einen Tag schreiben kann. Hattest du das mal ausprobiert?
Quelle hier: https://github.com/openhab/openhab/wiki/HABDroid
Gruß und weiter so mit den Tutorials. Lese ich sehr gerne.
Sebastian