How-to: NFC-Tags mit dem iPhone, Home Assistant & Node-Red für Automatisierungen nutzen
Das triggern von Automationen, Routinen und Szenen durch das Scannen von NFC Tags spart Zeit und ist bequem. Das Entsperren des Handys sowie das Öffnen der App und das „Klicken“ entfällt – es reicht das Smartphone einfach in die Nähe des Tags zu halten.
Wie immer gibt es mehrere Wege zum Ziel. Einer davon ist das direkte einlesen von NFC Tags mit der Home Assistant (HA) App und der Verknüpfung von Automatisierungen oder Szenen. Da mir aber keine der im Internet auffindbaren Lösungen gefallen hat, bzw. für mein Setup passend war, habe ich die nachfolgende Lösung selbst „erforscht“… 🙂
Der Fokus der Umsetzung liegt darauf, dass die Home Assistant App nicht zur Ausführung bzw. zur Bestätigung geöffnet und bedient werden muss.
Nach etwas Recherche habe ich mich aufgrund der Rezessionen für diese NFC-Tags entschieden (kein Ref-Link). Alle bisher verwendeten Tags funktionierten bei mir auch auf Anhieb.
In meinem Smart Home Setup habe ich verschiedene Automatisierungen und Aktionen in „Szenen“ gruppiert. Diese Szenen werden per Klick in der Home Assistant Smartphone Web, per Browser oder eben per NFC-Tag aktiviert.
Die in diesem Beispiel verwendete Szene „Aufstehen“ tirggert folgede Aktionen:
- Alle Rollläden im Haus fahren hoch
- Sofern es nach Sonnenuntergang und vor Sonnenaufgang ist, werden diverse Lichter aktiviert (z.B. das Licht im Bad, im Ankleidezimmer, etc.)
- Alle Sonos Speaker spielen Radio auf einer angenehmen Morgen-Muffel-Lautstärke
- Der „Nachtmodus“ von Home Assistant wird beendet
- Ist es draußen <= 0 Grad ° Celsius, wird eine Telegram Nachricht verschickt
Für jede Szene und jeden NFC Tag wurde eine Input Boolean Variable angelegt. Diese können sich entweder direkt im Home Assistant Config File (config.yaml) befinden oder können beispielsweise auch in einer separaten Datei ausgelagert und dann in der Main-Config eingebunden werden.
Wird der NFC Tag dann mit dem iPhone gescannt, wird zunächst durch die Home Assistant App ein Event ausgelöst. Eine Automatisierung in Home Assistant (NICHT in Node Red) erkennt das ausgelöste Event und aktiviert eine Input Boolean Variable, das NFC-Tag xyz gescannt wurde. Der Wechsel dieser Variable wird dann in NodeRed abgefangen und die Ausführung der Aktionen beginnt.
Grundsätzlich bevorzuge (und empfehle) ich die Erstellung von Automatisierungen in Node-Red, da diese dort deutlich besser, flexibler, ausbaufähiger und wiederverwendbaren sind als in Home Assistant selbst.
Auf dem iPhone werden die Automatisierungen mit Hilfe der App „Kurzbefehle“ ausgelöst. Diese ist über den App-Store abrufbar, falls die App nicht mehr auffindbar ist oder gar versehentlich gelöscht wurde.
Anschließend wird im Menüpunkt „Automation“ eine „persönliche Automation“ mit „NFC“ erstellt. Nach einem Klick auf „Scannen“ muss das iPhone in die Nähe des gewünschten NFC-Tags gehalten werden, um diesen auszulesen.
Wurde dieser erfolgreich gescannt, wird zunächst ein Name für den Tag vergeben und unter „Aktion hinzufügen“ muss im Suchfeld „Home Assistant“ eingegeben und anschließend „Event auslösen“ ausgewählt werden.
In meinem Fall habe ich alle NFC-Tags mit Nummern „versehen“. Analog zu diesen Nummern werden auch die Events benannt, die ausgelöst werden sollen. Wenn gewünscht, muss das Scannen des Tags manuell auf dem iPhone bestätigt werden, was sinnvoll sein kann um versehentliche Scans zu verhindern – ob dies gewünscht ist, muss letztendlich der Anwender entscheiden.
In meinem Fall habe ich alle manuellen Bestätigungen sowie alle Benachrichtigungen bei erfolgreicher Ausfühung der Automatsierung auf dem iPhone deaktiviert.
Damit die Automatisierung „zurückgesetzt“ wird bzw. nonchmals von Hand getriggert werden kann, wird die Input Bool Variable „NFC-Tag-gescannt“ nach wenigen Sekunden wieder auf „off“ geschalten.
Abschließend nochmal der gesamte Ablauf vom Scannen des NFC-Tags bis hin zur Ausführung der einzlenen Aktionen in und durch Node-Red: