Wir haben das bereits bekannte RFID-Skript nochmals erweitert. Was für Funktionen dazu gekommen sind, erfahrt Ihr jetzt hier.
Es kam wieder viel Feedback nach dem letzten Update bei uns an, weshalb wir das Skript noch einmal um 4 weitere Funktionen erweitert haben.
- Das Skript unterstützt jetzt auch die ArmDelay-Time von Sensoren. (Es müssen aber alle Sensoren auf den gleichen Wert eingestellt sein) Die ArmDelay-Time wird dabei automatisch ermittelt, es muss dafür nichts eingerichtet werden.
- Es gibt die Möglichkeit RFID-Tags vom Schärfen der Alarmanlage auszuschließen, so dass nur noch mit einem PIN-Code der Alarm aktiviert werden kann.
- Wir haben 3 Functions hinzugefügt, mit denen Ihr eigene Aktion vor der ArmDelay-Time, nach der erfolgreichen Aktivierung des Alarms und nach erfolgreichen Deaktivierung ausführen lassen könnt.
- Mit globalen Variablen könnt Ihr einzelne RFIDs deaktivieren. So lässt sich ein zeitlich beschränkter Zugriff realisieren
- Skript wurde auf 4 RFID-Tags erweitert
ACHTUNG:
Solltet Ihr die Fibaro-Firmware 4.058 Beta oder höher UND eine Delay-Time nutzen, dann müsst Ihr die Anzahl der Instanzen einer Szene auf einen Wert größer 1 setzen. Ansonsten habt Ihr das Problem, dass Ihr während der Delay-Time eines Sensors nicht mehr entschärfen könnt, da das Skript an einer erneuten Ausführung verhindert wird.
Die Einrichtung des Skriptes hat sich im Vergleich zur letzten Version nicht geändert. Wie Ihr das Skript einrichtet, findet Ihr hier.
Neue Optionen
Aktivierung der Alarmanlage nur mit PIN-Code (Zeile 21-24)
1 2 3 4 |
local rfid_use1 = 0 -- Wenn Ihr mit dem RFID-Tag1 nur entschärfen wollt, bitte auf 1 setzen local rfid_use2 = 0 -- Wenn Ihr mit dem RFID-Tag2 nur entschärfen wollt, bitte auf 1 setzen local rfid_use3 = 0 -- Wenn Ihr mit dem RFID-Tag3 nur entschärfen wollt, bitte auf 1 setzen local rfid_use4 = 0 -- Wenn Ihr mit dem RFID-Tag4 nur entschärfen wollt, bitte auf 1 setzen |
Mit dieser Option habt Ihr die Möglichkeit einzelne RFID-Tags vom Schärfen der Sensoren auszuschließen. Wenn Ihr also nur mit einem Code die Alarmanlage aktivieren wollt, dann müsste Ihr alle verwendeten RFID-Tags auf 1 setzen.
RFID-Tags zeitweilig deaktivieren (Zeile 13-18)
1 2 3 4 5 6 |
-- OPTIONEN -- Prüfung einer globalen Variable für Chip 3/4, ob diese gültig ist. -- Bei nicht Nutzung dieser Funktion müsst Ihr nichts weiter einrichten. -- Solltet Ihr diese nutzen wollen, dann müsst Ihr für jeden Chip eine Variable anlegen (z.B rfid_active1) local rfid_active3 = fibaro:getGlobalValue('rfid_active3') -- Variable zum Prüfen ob RFID-Chip1 gültig ist oder nicht (active = gültig/inactive = ungültig) local rfid_active4 = fibaro:getGlobalValue('rfid_active4') -- Variable zum Prüfen ob RFID-Chip2 gültig ist oder nicht (active = gültig/inactive = ungültig) |
Hier können die RFID-Tags gegen eine globale Variable geprüft werden. So lässt sich zum Beispiel ein zeitbasierter Zugang einrichten. Als Beispiel: Wenn die Putzfrau um 17 Uhr kommt, kann die Variable in dem Zeitraum von 16:50 und 17:10 Uhr auf "active" gesetzt und danach wieder auf "inactive" zurückgesetzt werden. So besteht nur ein Zutritt in der oben genannten Zeit. Anderes Beispiel: In eurem Urlaub gebt Ihr eurem Nachbarn ein RFID-Tag, damit sich dieser um die Pflanzen kümmern kann. Ihr könntet dann nur während eurer Urlaubszeit die Variable auf "active" setzen.
Solltet Ihr diese Funktion nicht nutzen wollen, dann braucht Ihr die Variablen auch nicht einrichten. Das Skript prüft automatisch ab, ob die Variablen eingerichtet sind und setzt die benötigten Werte dementsprechend. Wenn Ihr sie aber nutzen möchtet, dann benötigt Ihr für die temporären RFID-Tags (Im Skript sind das RFID 3 & 4) jeweils die Variable "rfid_active3", bzw. "rfid_active4". Diese müssen dann den Wert "active" oder "inactive" beinhalten.
Eigenen LUA-Code ausführen (Zeile 27, bzw. 38-54)
1 |
local own_action = 1 -- Bitte auf 1 setzen, wenn Ihr eigene Aktionen ausführen wollt. |
Hier habt Ihr die Möglichkeit eigenen LUA-Code auszuführen. Mit der oben genannten Zeile könnt Ihr diese Option aktivieren (1) oder deaktivieren (0).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
-- FUNKTIONEN FÜR AKTIONEN (z.B. TTS, LICHT AUS) ------------------------------------------------ -- Aktionen nach dem Schärfen mit Delay, bvor die Sensoren geschäft sind function actionsbeforeArmed() fibaro:debug('Führe eigene Funktionen vor Schärfen aus') end -- Aktionen nach dem endgültigen Schärfen function actionsafterArmed() fibaro:debug('Führe eigene Funktionen nach dem Schärfen aus') end -- Aktionen nach dem Entschärfen function actionsafterDisarmed() fibaro:debug('Führe eigene Funktionen nach dem Entschärfen aus') end ------------------------------------------------- |
Wenn die Option oben aktiviert wurde, dann kann zu 3 verschiedenen Zeitpunkten eigener LUA-Code ausgeführt werden. Diese 3 Zeitpunkte sind:
- Nach der Aktivierung des Alarms; der Alarm aber noch nicht aktiv ist, da eine Delay-Time vorhanden ist (actionsbeforeArmed)
- Nachdem der Alarm aktiv ist (actionsafterArmed)
- Nachdem der Alarm entschärft wurde (actionsafterDisarmed)
Ihr könnt beliebigen LUA-Code eintragen.
Download
Diesmal stellen wir euch das Skript als Download zur Verfügung. Ihr könnt es hier downloaden. Das Skript liegt in Form einer Zip-Datei vor. Ihr könnt diese entpacken, woraufhin Ihr eine LUA-Datei vorfindet. Diese könnt Ihr mit dem Editor öffnen und in euer HC2 kopieren. Habt bitte Verständnis dafür, dass wir diesmal diesen Weg gehen. Aber wir sind bereits bei über 300 Zeilen Code und eine Darstellung in einer Code-Ansicht wäre ein wenig unübersichtlich.
Vielen Dank nochmal an alle, die uns bei der Umsetzung unterstüzt haben. Wir haben noch 1,2 Updates in der Pipe, welche wir noch umsetzen wollen, denken aber, dass das Skript vom Funktionsumfang her schon recht gut umgesetzt ist. Sollte euch noch etwas einfallen, dann hinterlasst uns doch bitte einen Kommentar. :)