Wir hatten ja bereits einen Artikel über die Einbindung des RFID Tagreaders verfasst. Jetzt geht es mit neuen Funktionen weiter:
[alert variation="alert-info" dismiss="dismiss"]Wir haben das Script weiterentwickelt, es gibt ein Update. Den Artikel dazu findest du hier: Alarm schalten mit Zipato RFID Tagreader im Fibaro HC2 – UPDATE 2 [/alert]Nach dem letzten Artikel zu der Einbindung eines RFID Tagreaders (Findet Ihr hier) kamen von der Community ja einige Ideen, wie das Skript noch weiter verbessert werden könnte, beziehungsweise welche zusätzlichen Funktionen Ihr euch wünscht. Resultierend daraus, haben wir ein komplett neues Skript programmiert.
Neue Funktionen des RFID Skriptes:
- Kein virtuelles device mehr benötigt
- Alarm schärfen UND entschärfen über einen (oder mehrere) RFID Tag(s)
- Alarm schärfen über PIN-Code
- Automatische Prüfung offener Fenster/Türen
- Differenzierte Push-Mitteilungen (Push zeigt device und Raum nicht sicherer devices an; Unterscheidung zwischen RFID/PIN-Code)
- Anzeige der RFID IDs beim manuellen Ausführen der Szene
Das Skript findet Ihr am Ende des Artikels, wir möchten euch aber noch kurz erklären, welche Änderungen Ihr in dem Skript vornehmen müsst, damit dies auch bei euch läuft.
Zeile 3-10 im vollständigen Skript:
1 2 3 4 5 6 7 8 9 |
96 userCodes %% globals --]] -- HIER DIE ARRAYS ANPASSEN (neue IDs können einfach hinzugefügt werden) local tagReader = 96 -- ID des RFID-Leser (bitte auch in dem Header ändern) local doorID = {16, 18, 20, 55} -- IDs der Sensoren local phoneID = {68, 113} -- IDs der Handys, an die eine Push geschickt werden soll |
Als erstes müsst Ihr oben in dem Header die ID der userCodes (Zeile 3) ändern. Die userCodes sind eine Tabelle in der Konfiguration eures Tagreaders, in der die Informationen zu euren RFID Tags gespeichert werden. So wird die Szene bei einer Änderung der userCodes-Tabelle, wenn Ihr zum Beispiel einen PIN-Code eingebt, ausgeführt. Die ID, die Ihr dort eintragen müsst, findet Ihr, wenn Ihr euch die Config-Seite des RFID Tagreaders aufruft.
Dann müsst Ihr unter "HIER DIE ARRAYS EINRICHTEN" die einzelnen lokalen Variablen anpassen. Die Variable "tagReader" ist wieder die oben genannte ID des Tagreaders. In das Array "doorID" müssen alle zu schärfende/entschärfende Sensoren, mit einem Komma getrennt, eingetragen werden. Diese könnt Ihr über den oben erläuterten Weg ermitteln. In dem Skript wird bei Ausführung eine Schleife durchlaufen, welche alle devices, welche dort eingetragen sind, nacheinander auf den Status Armed, also geschärft setzt.
Danach folgt dann das Array "phoneID". Hier müssen alle IDs eurer Handys eingetragen sein, welche per Push über den Status der Alarmanlage informiert werden sollen. Um diese IDs ausfindig zu machen (sofern Ihr diese noch nicht kennt), könnt Ihr die device-API des Fibaro HomeCenter 2 nutzen. Ruft dazu in eurem Browser die URL "http://IP-HC2/api/devices" (IP-HC2 ersetzt Ihr durch die lokale IP-Adresse, unter der euer HomeCenter2 im Netzwerk erreichbar ist) auf. Ihr solltet dann eine JSON-Übersicht aller verbundenen devices erhalten. Hier könnt Ihr jetzt die Suchfunktion eures Browser nutzen. Also zum Beispiel nach dem Namen "iPhone 6" (In diesem Fall hat das iPhone die ID 68) suchen:
Zeile 14-16 im vollständigen Skript:
1 2 3 |
local rfid1 = {143, 80, 84, 84, 42, 0, 1, 4, 0, 0} local rfid2 = {143, 174, 97, 84, 42, 0, 1, 4, 0, 0} local code = {52, 49, 52, 50, 0, 0, 0, 0, 0, 0} |
Als nächstes sind die Arrays an der Reihe, in denen die Informationen zu euren RFID Tags und eurem PIN-Code gespeichert werden. Beim manuellen Ausführen der Szene haben wir für euch programmiert, dass die derzeit gespeicherten Informationen im debug angezeigt werden. Um diese Information zu hinterlegen, drückt Ihr auf dem RFID Tagreader die "Home" oder "Away"-Taste, wartet eine Sekunde, bis die LED leuchtet und haltet dann das RFID-Tag davor. Es muss einmal kurz piepsen, dann war der Vorgang erfolgreich. Jetzt könnt Ihr mit einem "Klick" auf Start die Szene auslösen. Es erscheint dann folgender debug in der Szene:
Die Zahlenkette (unter RFID-INFO) in den geschweiften Klammern könnt Ihr nun kopieren und in das Array rfid1 oder rfid2 einfügen. Ihr könnt nun mit diesem RFID Tag den Alarm aktivieren oder deaktivieren. Solltet Ihr auch den PIN-Code zum aktivieren des Alarms festlegen wollen, dann müsst Ihr euch das Array "code" näher anschauen. Hier gelten folgende Zuordnungen:
- 49
- 50
- 51
- 52
Solltet Ihr euch also den Code "3412" setzen wollen, dann muss die Zahlenkette so aussehen:
{51, 52, 49, 50, 0, 0, 0, 0, 0, 0}
Variable "rfid_alarm"
Solltet Ihr euch im Zuge der Einrichtung des alten Artikels die Variable "rfid_alarm" noch nicht eingerichtet haben, dann müsst Ihr dies noch nachholen. Geht dazu über "Panels" und "Variables Panel" und erstellt euch da über den Button "Add" eine neue Variabel. Das war's dann auch schon mit den Anpassungen im Skript.
Die Push-Mitteilungen in einer kleinen Übersicht:
Hier haben wir für euch noch 4 Push-Mitteilungen, die das Skript an Handy schickt, zusammengestellt. Wie bereits am Anfang des Artikels erwähnt, werden die Push-Mitteilungen automatisch generiert. Das Skript holt sich die erforderlichen Informationen (wie z.B. Raumname) automatisch.
Das vollständige RFID Skript
Legt euch jetzt über "Scenes, Add Scene, Add Scene in LUA" eine neue Szene an und kopiert den Code in das entsprechende Feld. Passt dann anhand der oben beschriebenen Anleitung das Skript an. Fertig :)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 |
--[[ %% properties 96 userCodes %% globals --]] -- HIER DIE ARRAYS ANPASSEN (neue IDs können einfach hinzugefügt werden) local tagReader = 96 -- ID des RFID-Leser (bitte auch in dem Header ändern) local doorID = {16, 18, 20, 55} -- IDs der Sensoren local phoneID = {68, 113} -- IDs der Handys, an die eine Push geschickt werden soll local countID = 200 -- Anzahl eurer devices (Muss nicht zwangsläufig geändert werden) -- 10-stellige Byte-Array's local rfid1 = {145, 80, 84, 84, 42, 0, 1, 4, 0, 0} local rfid2 = {148, 174, 97, 84, 42, 0, 1, 4, 0, 0} local code = {51, 49, 52, 50, 0, 0, 0, 0, 0, 0} local readerCode = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0} -- leeres Byte-Array, in dem die nachher der gelesene Code steht (RFID-Tag oder Zahlencode) fibaro:debug('RFID-Scene Version 1.0 gestartet'); -- FUNKTIONEN (bitte nicht ändern) function compareCodes(array1, array2) if (#array1 ~= 10 or #array2 ~= 10) then fibaro:debug('Grösse der Arrays ungültig...') return false end for i = 1, #array1 do if (array1[i] ~= array2[i]) then return false end end return true end function armedcheckSensorID(array) for j=1, countID do if doorID[j] ~= nil then if (tonumber(fibaro:getValue(doorID[j], 'armed')) == 0) then return false end end end return true end -- ENDE local startSource = fibaro:getSourceTrigger() if (startSource['deviceID'] == tagReader) then -- RFID auslesen local userCodes = fibaro:get(tagReader, 'userCodes') jsontbl = json.decode(userCodes) -- nach dem Code mit der ID 0 suchen for i = 1, #jsontbl do if (jsontbl[i].id == 0) then -- die 10 Zeichen lesen und in das leere Byte-Array abfüllen for b = 1, string.len(jsontbl[i].code) do readerCode[b] = string.byte(jsontbl[i].code,b) end if (compareCodes(rfid1, readerCode) or compareCodes(rfid2, readerCode)) then if (fibaro:getGlobal('rfid_alarm') == '0') then fibaro:debug('RFID-Tag akzeptiert - Haus wurde verlassen') fibaro:setGlobal('rfid_alarm', '1') for j=1, countID do if doorID[j] ~= nil then if (tonumber(fibaro:getValue(doorID[j], 'value')) == 0) then fibaro:call(doorID[j], 'setArmed', '1') else local sensorname = fibaro:getName(doorID[j]) local sensorroom = fibaro:getRoomNameByDeviceID(doorID[j]) fibaro:debug('ACHTUNG: ' .. sensorname .. ' im Raum: ' .. sensorroom .. ' nicht sicher. Sende Push.') for k=1, countID do if phoneID[k] ~= nil then fibaro:call(phoneID[k], 'sendPush', 'ACHTUNG: ' .. sensorname .. ' im Raum: ' .. sensorroom .. ' nicht sicher.') end end end end end if (armedcheckSensorID(doorID)) then fibaro:debug('Alle Sensoren scharf. Sende Push'); for l=1, countID do if phoneID[l] ~= nil then fibaro:call(phoneID[l], 'sendPush', 'RFID: Alarmanlage SCHARF') end end else fibaro:debug('Es konnten nicht alle Sensoren scharf geschaltet werden'); end elseif (fibaro:getGlobal('rfid_alarm') == '1') then fibaro:debug('RFID-Tag akzeptiert - Welcome@Home') fibaro:setGlobal('rfid_alarm', '0') for m=1, countID do if doorID[m] ~= nil then fibaro:call(doorID[m], 'setArmed', '0') end end if (armedcheckSensorID(doorID)) then fibaro:debug('Es konnten nicht alle Sensoren entschäft werden'); for t=1, countID do if doorID[t] ~= nil then if (tonumber(fibaro:getValue(doorID[t], 'armed')) == 1) then local sensorname = fibaro:getName(doorID[t]) local sensorroom = fibaro:getRoomNameByDeviceID(doorID[t]) fibaro:debug('ACHTUNG: ' .. sensorname .. ' im Raum: ' .. sensorroom .. ' konnte nicht entschärft werden. Sende Push.') for o=1, countID do if phoneID[o] ~= nil then fibaro:call(phoneID[o], 'sendPush', 'ACHTUNG: ' .. sensorname .. ' im Raum: ' .. sensorroom .. ' nicht entschärft.') end end end end end else fibaro:debug('Alle Sensoren entschärft. Sende Push'); for l=1, countID do if phoneID[l] ~= nil then fibaro:call(phoneID[l], 'sendPush', 'RFID: Alarmanlage entschärft') end end end else fibaro:debug('RFID-Tag akzeptiert - Variablen nicht korrekt gesetzt') end elseif (compareCodes(code, readerCode)) then fibaro:setGlobal('rfid_alarm', '1') for z=1, countID do if doorID[z] ~= nil then if (tonumber(fibaro:getValue(doorID[z], 'value')) == 0) then fibaro:call(doorID[z], 'setArmed', '1') else local sensorname = fibaro:getName(doorID[z]) local sensorroom = fibaro:getRoomNameByDeviceID(doorID[z]) fibaro:debug('ACHTUNG: ' .. sensorname .. ' im Raum: ' .. sensorroom .. ' nicht sicher. Sende Push.') for y=1, countID do if phoneID[y] ~= nil then fibaro:call(phoneID[y], 'sendPush', 'ACHTUNG: ' .. sensorname .. ' im Raum: ' .. sensorroom .. ' nicht sicher.') end end end end end if (armedcheckSensorID(doorID)) then fibaro:debug('PIN-Code erkannt. Alle Sensoren werden scharf geschaltet. Sende Push'); for l=1, countID do if phoneID[l] ~= nil then fibaro:call(phoneID[l], 'sendPush', 'PIN-Code: Alarmanlage SCHARF') end end fibaro:debug('Alle Sensoren scharf. Sende Push'); else fibaro:debug('Es konnten nicht alle Sensoren scharf geschaltet werden'); end else fibaro:debug('RFID-Tag/Code wurde abgelehnt. Manipulation? Push versendet') for r=1, countID do if phoneID[r] ~= nil then fibaro:call(phoneID[r], 'sendPush', 'ACHTUNG: Code falsch eingegeben') end end end end end else fibaro:debug('Szene manuell gestartet. Auslesen der RFID-Infos') local userCodes = fibaro:get(tagReader, 'userCodes') jsontbl = json.decode(userCodes) -- nach dem Code mit der ID 0 suchen for i = 1, #jsontbl do if (jsontbl[i].id == 0) then -- die 10 Zeichen lesen und in das leere Byte-Array abfüllen for b = 1, string.len(jsontbl[i].code) do readerCode[b] = string.byte(jsontbl[i].code,b) end fibaro:debug('RFID-INFO: {' .. readerCode[1] .. ', ' .. readerCode[2] .. ', ' .. readerCode[3] .. ', ' .. readerCode[4] .. ', ' .. readerCode[5] .. ', ' .. readerCode[6] .. ', ' .. readerCode[7] .. ', ' .. readerCode[8] .. ', ' .. readerCode[9] .. ', ' .. readerCode[10] .. '}') end end fibaro:debug('Diese Info in die lokalen Arrays rfid1,rfid2,code eintragen') end |
Ein passendes Icon für die Szene haben wir euch auch erstellt :)
Bei weiteren Funktionswünsche/Anregungen/Lob lasst doch gerne einen Kommentar da. Wir würden uns freuen, wenn wir das Skript noch erweitern könnten und Ihr berichtet, ob es funktioniert. Danke :)
Hallo. Super Sache vielen Dank !!!
Kann mir noch jemand sagen wie ich folgende Sache einfüge.
1. Wenn die "Alarmanlage" scharf ist und der Türsensor ausgelöst wird, dann möchte ich die Sirene (Aeon LAbs) für 5 Minuten einschalten. Danach 1 Minute Pause. Dann wieder 5 Minuten.
2. Wenn die "Alarmanlage" durch mich entschärft wird möchte ich dass die Szene "Licht an" ausgelöst wird.
Vielleicht kann mir jemand helfen, da ich mich mit Lua nicht sonderlich auskenne! Merci!
Hi, danke :)
Zu 1: Das kannst du über das Alarmpanel umsetzen. Schau mal hier http://siio.de/sicherheitalarm/so-nutzt-du-das-fibaro-alarmpanel-des-homecenters/
Zu 2: Das kannst du mit fibaro:startScene(sceneID). Das fügst du einfach nach der Zeile 123 ein. :)
Gruß
Super Skript!
Genial wäre jetzt noch die Einbindung von Sonos:
Entweder per TTS oder MP3 ausgeben:
"Alarmsystem aktiviert" , "Alarmsystem deaktiviert" , "Fenster geöffnet" etc.
Hi, und nochmal danke :)
Hast du das Sonos über ein VD integriert? Dort kannst du ja unterschiedliche Buttons mit TTS belegen und diese aus der Szene drücken
Gruß
Hallo,
danke für die prompte Rüclmeldung.
Ich warte gerade noch auf mein HC2, um es bei uns im Neubau in Betrieb zu nehmen, daher kann ich das mit Sonos leider noch nicht selbst testen.
Mein Plan ist der folgende:
- Alarm aktivieren mit Druck auf Away-Taste
- 10 Sekunden Zeit das Haus zu verlassen
- Sonos Ausgabe: "Alarmsystem aktiviert. Bitte Haus verlassen."
- Während der 10 Sekunden blinkt ein an der Garderobe angebrachter RGBW-Stripe in roter Farbe
- Beim Öffnen der Tür von außen flasht wieder der RGBW-Stripe und man hat 20 Sekunden Zeit, via RFID-Tag den Alarm zu deaktivieren.
- War dies erfolgreich, leuchtet der RGBW-Stripe für 5 Sekunden permanent grün
- Sonos Ausgabe: "Alarmsystem deaktiviert."
So lautet der Plan, dein Skript wird mir hierbei sicher hilfreich sein! Vielen Dank schon mal dafür!
Hi,
kein Problem. Dafür sind wir da.
Zu deinen Punkten kurz eine Anmerkung:
- Home/Away-Tasten werden von Fibaro noch nicht unterstützt. Ist also egal welche Taste du drückst.
- Delay-Time wird derzeit noch nicht unterstütz. Bin aber am Coden. (siehe restliche Kommentare)
- Der Rest sollte funktionieren. Dafür brauchst du aber noch ein wenig Code ;)
Viel Spass beim Umsetzen :)
Gruß
Danke, habe schon die Kommentare dazu gelesen.
Ich lande außer bei Siio immer wieder hier:
http://www.controlliving.com/fibaro-soft-alarm/
Da wurde die Alarmfunktion auch schon umfassend thematisiert.
Jetzt kann ichs kaum noch erwarten loszulegen!
Viel Spass :)
Bei mir scheitert es leider daran, dass ich die RFID Tags nicht auslesen kann. Der Reader als als Modul einen Master und einen Slave. Ich habe die ID das Slaves im Script eingetragen, wie aus der Anleitung erkenntlich. Im Debug-Fenster wird die Zeile mit der Ausgabe "RFID-INFO ... " nicht ausgebene, lediglich die drei Zeilen 'Gestartet', 'Manuell gestartet' sowie 'Diese Info... '
Was mache ich falsch? Ich war so froh, dass dieses seit Wochen in der Ecke herumliegendes Keypad endlich Verwendung findet :)
Danke vorab,
David
Hi,
hast du auch den Part hier gemacht?
...Um diese Information zu hinterlegen, drückt Ihr auf dem RFID Tagreader die “Home” oder “Away”-Taste, wartet eine Sekunde, bis die LED leuchtet und haltet dann das RFID-Tag davor. Es muss einmal kurz piepsen, dann war der Vorgang erfolgreich...
Wenn ja, dann gib mal bitte ein Code ein: Home/Away-Taste drücken und innerhalb einer Sekunde anfangen einen Code einzutippen. Nach Eingabe Enter-Taste drücken und dann nochmal versuchen die Szene zu starten. :)
Ansonsten: Piept, leuchtet das Pad?
Gruß
Hi, der David hat hier nicht geantwortet. Ich hab aber das gleiche Problem. Ich kann die ID des Tags ganz oben in dem aktivitätsprotokoll sehen, wenn man auf home/away drückt und dann den RFID-Chip davor hält. Wenn ich das Script aber manuell starte, dann sagt er es mir nicht an.
Ich habe daher die ID selber eingetragen, das skript wird aber nicht ausgelöst...was mach ich falsch?
Das Skript funktioniert seit circa einem Jahr nicht mehr. Update findest du hier:
https://www.siio.de/so-aktivierst-du-deinen-alarm-mit-dem-rfid-tagreader/
Richtig klasse!!!!
Ich würde gerne insgesamt 5 Chip nutzen. Reicht es die weiteren 3 Chips oben einzutragen und das Skript in Zeile 65 um rfid3 - 5 zu ergänzen?
Gruß
Hi,
genau so wird es gemacht :)
Gruß
Danke! :)
... und noch eine kurze Anregung. Ich habe eine Verzögerung von 300 Sekunden bei Scharfschalten in den Türsensoren eingegeben.
Dadurch läuft die Szene beim Scharfschalten immer in das else = 'Es konnten nicht alle Sensoren scharf geschaltet werden', ein Push kommt natürlich auch nicht. Gibt es da eine Lösung?
Danke
Du könntest in die Funktion armedcheckSensorID einen Timeout von 300 Sekunden hinzufügen. Dann würde er die Prüfung erst nach dieser Zeit durchführen. Dann bräuchtest du aber noch eine weitere Funktion, die dann bei der Entschärfung dies auch sofort bestätigt. Kannst du das allein realisieren, oder benötigst du Hilfe? :)
Puh, ich glaube da bräuchte ich Hilfe. :)
Ich kann mir vorstellen, das es nicht nur mich betrifft. Es haben bestimmt einige den Reader im Haus hängen und müssen noch raus bevor der Alarm losgeht.
Ok. Frage: Wie machst du das mit dem reingehen, wenn der Alarm aktiv ist?!
Ich habe die Sensoren mit 300 Sekunden Verzögerung beim rausgehen und 30 Sekunden Verzögerung beim Alarmauslösen geschaltet.
Jetzt wird es aber Tricky, dann muss ich ja beide Funktionen anpassen ;) Dafür musst du aber Versprechen, dass du weiterhin unser Leser bleibst... :D und du musst den Beta-Test machen... ;)
Großes Ehrenwort! Beides! ;)
:)
Bin am coden... Änderungen sind aber doch größer als ich dachte, da ich es als Version für alle veröffentlichen wollte. Du also einstellen kannst, wie viel delay du nutzt. :)
Dauert also noch ein wenig. Schick es dir dann per Mail zum Testen.
Super. Mach dir keinen Stress, grundsätzlich funktioniert ja auch so.
ohne drängeln zu wollen, bist Du da schon weiter gekommen? Wäre toll, wenn Du das Script mit dem Delay coden könntest. Danke
Hi,
den Delay-Part im Code hab ich fertig. Gibt aber noch ein anderes Problem, was ich lösen muss. Denke heute oder morgen kann ich es veröffentlichen :)
Gruss
Mit diesem Script ist es grundsätzlich egal, ob ich die Home- oder Away-Taste drücke - oder?
Hi,
ja. Das kann man derzeit aber auch anders nicht umsetzen, da dies noch nicht von Fibaro implementiert ist.
Gruß
Hallo.
Hat schon jemand einen Weg gefunden mit Hilfe der HCL eine Variable zu setzen wennder RFIC Chip davor gehalten wird?
Nein, das wird auch in naher Zukunft nicht gehen. Dazu müsste Fibaro das device vollständig integrieren.
Gibt es irgendwie eine andere "einfache" Möglichkeit mit der HCL meine Alarmanlage scharf zu schalten? Irgendein Numpad oder sowas?
Hi,
mir ist nichts bekannt... zumindest nicht im z-Wave-Bereich.
Gruß
Ich hätte noch eine grundsätzliche Frage zum Thema.
Der Zipato Reader ist verständlicherweise für viele momentan die erste Wahl.
Meine Frage ist nun, ob es denn nicht möglich wäre auch irgendeinen "normalen" RFID Reader mit zum Beispiel dem Fibaro Universal Binary Sensor zu verbinden und die Zutrittssteuerung so zu lösen?
Ich habe folgendes Problem:Bei mir ist es leider egal welche Taste (Home oder Away) ich drücke und anschliessend den Chip ranhalte. Es wird lediglich der Zustand geändert. Das bedeutet: ist die Alarmanlage bereits entschärft (weil ich beim Verlassen des Hauses vergessen habe die Alarmanlage zu schärfen) und ich beim Heimkommen auf Home drücke und anschliessend den Chip ranhalte, wird die Alarmanlage geschärft und nicht wie gewünscht entschärft. Es ist egal welche der beiden Tasten man drückt (Home oder Away). Es wird immer nur der Zustand gewechselt. Von scharf auf unscharf bzw. von unscharf auf scharf. Oft weiss man aber den aktuellen Zustand nicht. Dazu müsste man immer das iPhone dabei haben und in der fibaro-app nachsehen. Aber dann benötigt man den rfid-sender gar nicht. Kann mir jemand helfen dies zu lösen? Also wenn die Hone Taste gedrückt wird ENTSCHÄRFEN und wenn die Away-Taste gedrückt wird SCHARF-SCHALTEN. Vielen Dank !!!
Hi,
sorry, dass ist leider technisch nicht möglich, da es von Fibaro noch nicht umgesetzt wurde. Da könntest du es nur so machen, dass du mit dem RFID-Tag nur entschärfst und nur mit einem PIN-Code schärfst.
Gruß
Danke für die Antwort. Was muss ich im Lua-Skript anpassen, dass ich mit dem Pin nur scharf mache (funktioniert auch, d.h. wenn ich mehrmals nacheinander den PIN eingebe wird immer scharf geschalten) und mit dem Rfid-Chip nur entschärfe (funktioniert nicht, denn wenn ich mehrmals nacheinander den Chip ranhalte wird immer nur der Zustand von scharf auf unscharf und umgekehrt gewechselt. Es soll aber mit dem Chip nur entschärfen möglich sein.
Ausserdem würde ich gerne haben, dass bei ausgelöstem Alarm meine Aeon Sirene losgeht. Was brauche ich hier für ein Skript das ich im Alarmpanel einfüge. Ich habe mir folgendes gebastelt:
--[[
%% properties
%% globals
rfid_alarm
--]]
local startSource = fibaro:getSourceTrigger();
if (
( tonumber(fibaro:getGlobalValue("rfid_alarm")) == tonumber("1") )
or
startSource["type"] == "other"
)
then
fibaro:call(265, "turnOn");
end
Aber es besteht folgendes Problem: wenn der Alarm scharf geschaltet wird (z.B. durch Rfid) ertönt die Sirene, obwohl kein Alarm ausgelöst wurde (Haustüre unverändert geschlossen).
Vielen Dank für Euere Hilfe !!!!!!!!!!!!!!!!!!
Hi,
schau dir bitte diesen Artikel an: http://siio.de/sicherheitalarm/so-nutzt-du-das-fibaro-alarmpanel-des-homecenters/
Da werden deine Fragen zur Sirene beantwortet. Dein Skript hat den völlig falschen Ansatz, so kannst du das nicht gebrauchen.
Für deine andere Frage: Schau dir mal den Artikel an, da kannst du das so umsetzen: http://siio.de/sicherheitalarm/alarm-schalten-mit-zipato-rfid-tagreader-im-fibaro-hc2/
Alles schon erklärt :)
Gruß
Hallo, erstmal danke für das super Skript :D
Ich habe noch eine kleine Erweiterung, mit der die Geräte, die scharfgeschalten werden sollen, automatisch vom Skript ermittelt werden: Alle Geräte mit Alarmfunktion haben nämlich die Eigenschaft AlarmExclude, die bestimmt ob das Gerät im Alarmpanel auftaucht oder nicht. So kann man die scharfzuschaltenden Geräte relativ einfach herausfinden und zusätzlich sind nur die Geräte dabei, die auch im Fibaro Alarmpanel aktiviert sind. Hier ist der Code:
--[[
%% properties
%% globals
--]]
fibaro:debug('Sensoren des Alarmsystems:')
local devices = {}
local counter = 1
for i = 0, 100 do
if fibaro:getValue(i, "alarmExclude") == '0' then
devices[counter] = i
counter = counter + 1
fibaro:debug(fibaro:getRoomNameByDeviceID(i) .. ': ' .. fibaro:getName(i) .. '(' .. i .. ')')
end
end
Das Skript zeigt nur die ermittelten Geräte an, aber man könnte es relativ einfach in euer Skript integrieren, weil ich die IDs der Geräte auch in ein Array(devices) abgespeichert habe.
Achso ich hab noch was vergessen: Die Überprüfung dauert ne Weile, darum wäre es auch möglich, die Prozedur in eine eigene Szene auszulagern und die ermittelten Geräte-IDs JSON-encodiert in einer globalen Variable zu speichern, sodass die IDs ganz einfach im Haupt-Skript wieder eingelesen werden können:
Abspeichern: fibaro:setGlobal('alarmDevices', json.encode(devices))
Einlesen: sensorsToArm = json.decode(fibaro:getGlobalValue('alarmDevices'))
Die Eingelesenen IDs werden als Array eingelesen, sodass man z.B. "sensorsToArm[5]" schreiben kann.
Hi,
Danke für den Hinweis. Werde es in einer neuen Version berücksichtigen :)
Gruß
Also, das habe ich mal versucht, aber ich bekomme keine rfid zugefugt.
Egal was ich mache es gibt abgelehnt.
Auch 3412 funkt nicht. Das scrip lauft. Wie kann mann da die rfid auslesen zum 10 byte? Ich bekomme nur: {\"code\":\"\",\"id\":255,\"status\":\"available\"},{\"code\":\"\\u008F\\u0.......
Hi,
wenn du die Szene manuell startest, wird dir doch der Inhalt angezeigt. Wie gibst du den Code ein und was hast du im Pin-Array stehen?
Gruß
oops, lesen. Die scene manuel gestarted gibt die code.
Dann ist aber die meldung: [DEBUG] 14:14:51: RFID-Tag akzeptiert - Variablen nicht korrekt gesetzt
Habe tur swensoren und 1 handy eingestellt. Gerate zuruck nach 35
sollte da noch mehr eingestellt werden?
Hi,
steht auch im Text ;) Musst noch eine Variable erstellen:
Variable “rfid_alarm”
Solltet Ihr euch im Zuge der Einrichtung des alten Artikels die Variable “rfid_alarm” noch nicht eingerichtet haben, dann müsst Ihr dies noch nachholen. Geht dazu über “Panels” und “Variables Panel” und erstellt euch da über den Button “Add” eine neue Variabel. Das war’s dann auch schon mit den Anpassungen im Skript.
Gruß
Hallo liebes Forum,
ich habe das Skript soeben eingebaut und soweit funktioniert dieses auch. Nur ist mir aufgefallen, dass es egal ist welche Taste (home oder Away) ich bei dem Zipate zum aktivieren oder deaktivieren betätige. D.h. wenn ich "away" zum scharf schalten betätige kann ich auch wieder mit "away" entschärfen, gleiches gilt für den home Button. Kann mir bitte jemand mitteilen, was ich falsch mache oder noch einstellen muss?
Ich habe über das Skript der Lichtsteuerung die Variable "PresentState" mit "away, home, holiday" hinterlegt, wie kann ich diese ansteuern über das Skript?
Weiterhin habe ich die Frage, wie ich nach erfolgreicher scharf Schaltung eine Nachricht auf mein Handy erhalte? Ich erhalte nur eine Nachricht bei offenem Fenster udn bei deaktivierung.
Vielen Dank für das tolle skript
Hi,
die Tasten können nicht unterschieden werden, da muss Fibaro erst das Gerät vollständig unterstützen.
Mit dem nächsten Update stelle ich auf die PresentState Variable um, kommt nächste Woche :)
Die Nachricht sollte kommen, funktioniert bei mir. Scheint, als ob ein Modul nicht scharf gestellt werden kann.
Gruß :)
Hi,
wieder einmal Danke für die schnelle Antwort. Der Hinweis, dass ein Modul nicht scharf schaltet, hat die Erleuchtung aber keine Lösung gebracht. Ich habe ein Sensor mit einer Verzögerung von 30sec bei scharf und entschärfen eingestellt, wir benötigen noch Zeit um die Tür zu schließen und bei Betreten des Hauses die Alarmanlage zu deaktivieren. Wie kann ich trotz der Verzögerung eine Nachricht der Aktivierung erhalten?
In dem Artikel steht der Link zu einem weiteren Update, der unterstützt Delay-Time:
https://www.siio.de/sicherheitalarm/alarm-schalten-mit-zipato-rfid-tagreader-im-fibaro-hc2-update-2/
ich sage nur wer lesen kann.. :) Vielen Dank es ist schon wahnsin was damit alles möglich ist
Hallo nochmals zusammen!
Ich habe das zweite RFID-Panel zum Laufen gebracht! :-) hatte die falsche ID (...ich Depp)
Ich bekomme aber den dritten Chip nicht angemeldet.....
-- 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)
Was ich an den Zeilen oben nicht verstehe ist,....local rfid_active3 steht doch für einen eventuellen dritten Chip richtig? Warum steht dann: "Variable zum Prüfen ob RFID-Chip1 gültig ist...." Das bezieht sich doch wieder auf den Chip Nr. 1, richtig?
Wie trage ich jetzt also den dritten Chip ein? Die Arrays habe ich für den dritten Chip eingetragen,....und ausgelesen wie im Beitrag beschrieben. "Home" - "Piiiiiep" - Szene manuell gestartet.....
Aber irgendwie schreibt der Debug:
[DEBUG] 18:47:33: RFID-Scene Version 1.1.3 gestartet
[DEBUG] 18:47:33: RFID-Tag wurde abgelehnt. Manipulation oder Karte inaktiv? Push versendet
Viele Grüße
Christian
Hi,
hast du eine Variable dafür gesetzt? Wenn ja, dann lösch sie wieder, dann geht es. Änder den Text im neuen Update :)
Gruß
Hallo Daniel!
Du meinst für RFID 3 und vier?
Was anderes: meine Frau hat gestern das erste Mal die Anlage benutzt und ganz normal scharf geschaltet (über Code),...hat funktioniert.
Jetzt kam sie heim und wollte über den Code wieder unscharf schalten. Das hat leider nicht funktioniert. Ich musste aus der Ferne, da ihr Akku leer war, über das Handy den Alarm deaktivieren....
Meine Frage: Geht das nicht? Ich meine: Home/Away - Code - Enter. Dann müßte sich doch, wenn die Anlage scharf war, sie sich entschärfen oder?
Und.....kannst Du schon ein Zeitfenster für das nächste Update sagen *sichdiehändereib* ? Ich habe nämlich zwei Dana die auf dem Weg hierher sind *grinssssss* ;-))))
Viele Grüße
Christian
Ja, für 3 und 4. RFID 1 & 2 unterstützen die Funktion nicht. Nein, über Code zu entschärfen geht nicht. Habe ich aus Sicherheitsgründen rausgelassen, da bei einer Anzahl von 4 Ziffern, die Möglichkeiten nicht allzu viele sind.
Artikel kommt spätestens morgen Abend.
Gruß
Wollte auch gerade das RFID Pad inkludieren. Verbunden ist es, sehe ich unter Module. Nach drücken der Taste home oder away inkl Chip erscheint auch ein Code. Diesen habe ich dem oben genannten Script auch eingefügt, sowohl vom Chip als auch vom Tastenpanel. Kann die Szene manuell starten aber es wir mir immer folgendes angezeigt:
[DEBUG] 02:57:43: RFID-Scene Version 1.0 gestartet
[DEBUG] 02:57:43: Szene manuell gestartet. Auslesen der RFID-Infos
[DEBUG] 02:57:43: line 185: bad argument #1 to 'len' (string expected, got nil)
Hab jetzt auch eine Variable angelegt mit rfid_alarm mit true/false aber immer noch diese Fehlermeldung
und noch etwas ratlos darüber ..
Kann jemand evlt. helfen?
Danke
Guten Morgen.
Wenn du eine Version größer 4.091 auf dem Home Center verwendest, dann funktioniert dieses Script nicht mehr.
Aber es gibt bereits eine Lösung, hier: https://www.siio.de/sicherheitalarm/so-aktivierst-du-deinen-alarm-mit-dem-rfid-tagreader/
Hallo,
ich versuche nun schon ewig, das Zipato Mini Keypad am HC2 einzurichten. Habe alles nach den (super ausführlichen) Anleitungen gemacht, aber ...
Ich habe das Problem, dass das Keypad ständig einschläft. Man muss dann die Batterie rausnehmen, einlegn, den Tamper kurz drücken und das Teil auf den Tamper legen. Dann blinkt die LED und ich kann Home oder Away drücken und mit dem Tag bestätigen. Dann schaltet es auch im HC und Übertragung ok kommt. Will ich danach wieder das gleiche ausführen, passiert an keiner Taste etwas. Ich habe nach Anleitung 5 Tags eingelesen und kann das mit denen auch machen. Aber immer wie oben beschrieben. Was kann das nur sein?
Das zweite Problem ist das Script. Ich habe alles angepasst, aber es kommt eine Fehlermeldung beim manuellen ausführen: line 184: bad argument #1 to `len´ (string expected, got nil) Wo habe ich da einen Fehler? Habe nur zur Probe einen Fensterkontakt mit der ID drin und bei der Phone ID habe ich einfach 113 gelassen, da ich noch kein Handy angemeldet habe.
Ich kriege echt die Krise!!! Bitte um Hilfe!!