In einem der letzten Artikel haben wir euch gezeigt, wie Ihr den RFID Tagreader mit der Firmware-Version 4.091 Beta ans Laufen bekommt und die einzelnen Tags richtig einrichtet. Nun präsentieren wir euch eine fertige Szene mit der Ihr den Alarm steuern könnt.
Wie bereits in dem anderen Artikel, welchen Ihr hier finden könnt, erwähnt wurde, können nicht alle Funktionen 1:1 aus dem alten RFID-Skript übernommen werden.
Folgende Funktionen sind (bisher) in dem neuen Skript schon vorhanden:
- Schärfen/Entschärfen des Alarm und Benachrichtung per Push
- Prüfung offener/ausgelöster Sensoren und Benachrichtung per Push
- Öffnen eines vorhandenen Doorlocks (z.B. danalock)
- Funktion zum Setzen eigener Befehl nach Statusänderung
- Variable "PresentState" wird unterstützt
- Arm-Delay wird unterstützt (wird automatisch ermittelt, alle Sensoren müssen gleich eingestellt sein)
- Firmware-Bug (fibaro:call(sensorID[j], 'setArmed', '0') funktioniert nicht) wird umgangen
Die notwendigen IDs
In diesem Teil des Codes werden die notwendigen IDs der Module festgelegt. Die Angaben zu den IDs der Sensoren sind zwingend einzutragen, die Erklärungen zu den einzelnen Punkten findet Ihr in den Kommentaren zu den jeweiligen Punkten und sind eigentlich selbsterklärend. Die Variable countID, welche häufig bei for-Schleifen genutzt wurde, wird nicht mehr benötigt.
1 2 3 |
local sensorID = {70,110,112,154,327} -- IDs der Sensoren local phoneID = {62,232} -- IDs der Handys, an die eine Push geschickt werden soll local doorlockID = {12} -- ID des Doorlocks |
Weitere Angaben werden an dieser Stelle nicht benötigt. Das Skript prüft den Inhalt des Arrays und entscheidet dann, ob Ihr diese Funktion nutzen wollt. Solltet Ihr keine doorlock-Integration wünschen, dann müsst Ihr einfach das Array leeren. Dies würde dann so aussehen:
1 |
local doorlockID = {} |
Die weiteren Optionen
Diese sind im Vergleich zum etwas älteren Skript ein wenig kürzer gefasst. Eigentlich gibt es nur zwei zusätzliche Optionen. Dies ist zum einen die Aktivierung von eigenen Aktionen, welche nach dem Aktivieren/Deaktivieren des Alarm ausgeführt werden. Hierfür muss die lokale Variable "own_action" auf true (Aktionen werden ausgeführt) oder auf false (Aktionen werden nicht ausgeführt) gesetzt werden.
1 |
local own_action = true |
Sofern die Variable auf true gesetzt ist, werden die folgenden Funktionen ausgeführt:
1 2 3 4 5 6 7 |
function actionsafterArmed() fibaro:debug('Führe eigene Funktionen nach dem Schärfen aus') end function actionsafterDisarmed() fibaro:debug('Führe eigene Funktionen nach dem Entschärfen aus') end |
Hier können jetzt beliebige Aktionen (Auschalten von Wallplugs, usw.) eingesetzt werden. Die Funktion actionsafterArmed() wird nach der Aktivierung des Alarm ausgeführt und die Funktion actionsafterDisarmed() nach der Deaktivierung.
Zum anderen gibt es In der aktuellen Beta 4.091 einen Bug, welcher verhindert, dass der Alarm mit der normalen LUA-Funktion fibaro:call(sensorID[j], 'setArmed', '0') deaktiviert werden kann. Mit diesem Skript haben wir dieses Problem umgangen und Ihr könnt dies mit der lokalen Variablen "disarmed_bug" umgehen. Diese muss dann im Skript auf true gesetzt werden. Sollte Fibaro das Problem in einer der nächsten Firmwares (hoffentlich der nächsten) fixen, kann der Wert dann einfach auf false gesetzt werden.
1 |
local disarmed_bug = true -- Firmware Bug umgehen |
Alarm-Schaltung mit dem neuen Skript
Positiv an der offiziellen Integration des RFID Tagreades seitens Fibaro: Es ist im Vergleich zum alten Skript schnell. Das Auslesen der API wird hier mit Sicherheit viel Zeit gekostet haben. Allerdings gibt es auch ein paar negative Aspekte zu beklagen. Viele Funktionen des alten Skriptes lassen sich so nicht mehr umsetzen. Vielleicht wird Fibaro aber auch noch weitere Updates nachschieben, so dass das Skript an der Stelle wieder erweitert werden könnte.
Das neue RFID-Skript könnt Ihr euch HIER downloaden.
Am Ende liegt die Entscheidung bei euch, ob wir weiterhin auf der Firmware-Version 4.070 bleibt und alle Funktionen des alten Skriptes nutzt, oder ob Ihr die neue, schnellere Version einsetzen wollt und dafür auf die alten Funktionen verzichtet. Überlegt es euch gut, da ein Recovery auf eine ältere Version nicht möglich ist.
Es wird natürlich auch hier wieder stetige Updates des Skriptes geben und es stehen bereits auch schon zukünftige Funktionen auf der To-Do-Liste:
- Unterstützung mehrerer RFID Tagreader
- E-Mail-Support (anstatt Push)
- Widget-Support
Solltet Ihr euch noch weitere Funktionen wünschen, dann würden wir uns freuen, wenn Ihr uns einen Kommentar hinterlasst :)