46

Alarm schalten mit Zipato RFID Tagreader im Fibaro HC2 – UPDATE 2

YESLY Smart Home
by boomx25. November 2015

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)

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)

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)

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).

Wenn die Option oben aktiviert wurde, dann kann zu 3 verschiedenen Zeitpunkten eigener LUA-Code ausgeführt werden. Diese 3 Zeitpunkte sind:

  1. Nach der Aktivierung des Alarms; der Alarm aber noch nicht aktiv ist, da eine Delay-Time vorhanden ist (actionsbeforeArmed)
  2. Nachdem der Alarm aktiv ist (actionsafterArmed)
  3. 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. :)

siio-App
About The Author
boomx
46 Comments
  • Max
    26. November 2015 at 15:36

    Super Arbeit! Seid echt spitze. Ich habe folgende zwei Fragen:
    1. Ich würde gerne 7 Rfid-Chips verwenden. Ist dies möglich?
    2. Wenn ich die Alarmanlage per Fibaro-App aktiviere, kann ich die Anlage dann auch mit dem Rfid-Chip deaktivieren? Wird die Variable rfid_alarm bei Aktivierung über die Fibaro-App auf 1 gesetzt? Bisher konnte man bei der VD-Variante ja eine per App aktivierte Alarmanlage nur mit dem Rfid-Chip deaktivieren wenn zuvor am Minipad geschärft wurde. Die rfid_alarm – Variable wurde nicht auf 1 gesetzt.

    • 26. November 2015 at 16:02

      Hi, danke für das Lob. :)

      Zu deinen Fragen:

      1.) Ja, ist möglich. Wenn du nur die normale Schärfen/Entschärfen-Version nutzen willst, dann brauchst du dir bloß die Variablen rfid5-7 dazu anlegen und in Zeile 114 die Prüfung erweitern. Also noch or compareCodes(rfid5, readerCode) hinzufügen.

      2.) Über Umwege geht das. Du kannst eine Szene hinzufügen, die durch ein Sensor getriggert wird. Sobald dieser Sensor armed wird & rfid_alarm = 0, dann setzte rfid_alarm = 1. Dann kannst du danach auch per RFID disarmen :)

      Gruß

  • Max
    26. November 2015 at 21:28

    Was habt ihr denn in den updates noch vor?

    • 26. November 2015 at 22:41

      Hi,

      ein User hat zum Beispiel eine automatische Ermittlung der devices im Alarmpanel vorgeschlagen (und uns erfreulicherweise schon Code zur Verfügung gestellt). Mir schwebt auch noch ein verbessertes Debug-Handling vor. Mal 2 Punkte in den Raum geworfen.

      Gruß

  • huebi
    5. Dezember 2015 at 19:55

    Hi,

    danke für den tollen Code. Ich habe das Script jetzt ein paar Tage am laufen und es funktioniert super.

    Viele Grüße und Danke

  • huebi
    6. Dezember 2015 at 20:34

    Hallo,

    noch eine kurze Rückmeldung. Mir ist heute folgendes aufgefallen. Wenn die Haustür zum Zeitpunkt des Scharfschaltens bereits geöffnet ist (z.b. weil mein Kind schon vor mir raus ist), dann bekomme ich ja die Meldung hinsichtlich der geöffneten Tür. Wenn ich dann das Haus verlasse und die Tür schließe, dann wird die Haustür auch nicht mehr gesichert und ich bekomme auch keine Meldung das das Haus gesichert ist.

    Liegt es an der Szene, oder muß ich an den Einstellungen des Sensor etwas ändern?

    Gruß

    • 7. Dezember 2015 at 0:46

      Guten,

      das liegt an der Szene. Es werden erst die Geräte geprüft, dann scharf geschaltet und dann eine Push geschickt. Werde mir für das nächste Update mal Gedanken machen, ob und wie man das umsetzen kann. Manche Konstellationen kann man nicht voraussehen ;) bei mir hängt der RFID-Reader im Hausflur und ich benötige keinen Delay ;)

      Gruß

  • thebrain
    24. Januar 2016 at 21:33

    Hi,

    ist es in dem Skript möglich, die delay Time für die Sensoren unterschiedlich zu setzen oder besser noch die Verzögerung nur für einen einzelnen Sensor (Haustür) zu aktivieren? Sobald ich die Verzögerung aller Sensoren einstellen muss, z.B. auf 30sec, haben die „bösen Menschen“ auch 30sec mehr Zeit bis der Alarm aktiviert wird. Ggf. kann in dieser Zeit der Strom der Fibaro gekuppt werden und das war es denn mit der Alarmfunktion.
    Wenn ich die Verzögerung nur für die Eingangstür einstellen muss, um selber raus und rein zu kommen, minimiere ich das Risiko.
    Danke und ein schönes rest WE

    • 25. Januar 2016 at 8:41

      Hi,

      es wird die Delay-Time von der kleinsten ID im Array überprüft und die Zeit, die von da zurückkommt, die wird im Skript gewartet. Sollte also deine Haustür die kleinste ID besitzen, dann passt es. Ansonsten musst du die Delay-Time manuell setzen.

      Gruß

      • thebrain
        25. Januar 2016 at 12:25

        Hi,

        Eine kurze und vielleicht auch dumme Frage. Was passiert wenn ich die Verzögerung der Haustür auf z.B. 30sec. einstelle die restlichen Sensoren ohne Verzögerung benutze. Hat dieses Auswirkungen auf die Funktion des Skripts? Die einzige Einschränkung welche ich aktuell mitbekommen habe ist, dass ich kein Push für die Aktivierung der Alarmanlage erhalte. Gibt es sonst noch Einschränkungen welche ich nicht erkenne?

  • thebrain
    28. Januar 2016 at 21:39

    Hallo liebes Forum,

    ist es normal das der zipato RFID Reader das Symbol im Home Center 2 nicht ändert von grün auf rot und über die Oberfläche das Schloss nicht gesperrt werden kann? Weiterhin habe ich das Problem, das über die Abfrage der Batterie (LUA-Skript) die Batterie der Zipato mit 0% angezeigt wird, die Oberfläche zeigt 100%.

    Vielen Dank

    • 28. Januar 2016 at 21:48

      Hi,

      bist du auf 4.070? Da scheint es ein allgemeines Problem mit der Batterie zu sein. Bei mir sind 85% auf 0% ;)

      Und ja, das Icon im Webinterface ändert sich nicht.

      Gruß

  • chriss1873
    chriss1873
    29. Januar 2016 at 7:56

    Hallo zusammen! :-)

    Wenn ich einen zweiten RFID-Reader nutzen wollte, reicht es dann, in der Szene die ID2 im Header einzutragen und die ID2 in der Zeile acht einzutragen? Oder sind gravierendere Änderungen zu beachten?

    Viele Grüße

    Christian

  • chriss1873
    chriss1873
    30. Januar 2016 at 14:51

    Moin moin! :-)

    Klappt leider nicht (liegt aber garantiert an mir :-D)! Es soll ja so funktionieren, dass man beide RFID-Reader mit egal welchem „angelernten“ Chip verwenden kann…

    Und da kommt sich, glaube ich, die Szene selber in die Quere……

    Hüüüüülfeeeee! ;-)

    Wäre das vielleicht eine weitere Option für das Update? Cool wäre es auch, wenn man über das Alarm-Panel in der App, den Alarm de- oder auch aktivieren könnte. So hat man verschiedene „Eingabemöglichkeiten“, falls man den Schlüssel mit dem Chip vergisst oder so….

    Viele Grüße

    Christian

    • 30. Januar 2016 at 20:21

      Hi,

      wieso sollten sich die Szenen in die Quere kommen? Mit mehreren Szenen funktioniert das auf jeden Fall. Du brauchst aber für jeden Reader eine eigene Szene. Oder was genau bekommst du nicht hin?

      Teste grad ein neues Skript, mit dem ist es möglich die neue Widget-Funktion zu nutzen.

      Gruß

  • thebrain
    27. Februar 2016 at 13:35

    Hallo liebes Forum,

    kann mir bitte jemand mitteilen, wie ich LUA Szenen trotz aktiver Alarmfunktion ausführen kann?
    Ich habe die Szene Zipato RFID im Einsatz und solange ich die Alarmanlage aktiviert habe werden alle andern Szenen von Fibaro nicht mehr ausgeführt. D.h. bei aktiver Alarmfunktion wird die Szene der Lichtsteuerung und auch die Szene für die Rollladensteuerung nicht mehr ausgeführt.
    Kann mir bitte jemand mitteilen wie trotz aktiver Alarmanlagenszene andere Szenen aktiviert werden/ausgeführt werden können?
    Vielen Dank
    LG Daniel

    • 27. Februar 2016 at 13:41

      Hi,

      Szenen werden genauso getriggert oder laufen bereits wie bei deaktivierter Alarmanlage. Außer diese sind an eine Variable wie „PresentState“ geknüpft. Dann natürlich nicht…

      Anders sieht es bei ausgelöstem Alarm aus. Hier werden alle Szenen gestoppt, bei denen die Option „Szene trotz Alarm ausführen“ aktiviert wurde.

      Gruß

      • thebrain
        28. Februar 2016 at 20:20

        Hi,

        danke für die Antwort. D.h. sobald ich die Szene „Perfekte Lichtsteuerung“ nutze wird durch Aktivierung der Alarmfunktion meine komplette Lichtsteuerung im Haus „lamm“ gelegt? :( Wie kann ich das ändern?
        Kann ich der Szene „Alarm schalten mit Zipato“ irgendwie mitteilen, dass gewisse Szene dennoch normal weiter laufen sollen (Lichtsteuerung und Rollladensteuerung).

        Vielen Dank und eine schönen Sonntag noch.

        • 28. Februar 2016 at 21:12

          Hi,

          klar, musst dann dort den Code ein wenig anpassen :)

          Meinst du im Alarmfall? Hab ich oben geschrieben ;)

          Gruß

          • thebrain
            29. Februar 2016 at 8:15

            Morgen,

            ich meine nicht im Alarmfall sondern wenn die Alarmanlage scharf ist (ohne Auslösung des Alarms). Ich will wenn die Alarmanlage scharf ist, dass meine Rollladensteuerung und meine Lichtsteuerung funktioniert. Aktuell werden z.b. im Urlaub wenn die Alarmanlage scharf ist Rollläden nicht nach oben bzw. nach unten gefahren sondern bleiben permanent unten oder eben oben. Damit wird meine Anwesenheitssimulation nicht mehr realisiert.
            Ich habe jetzt die Idee, die Variable „PresentState“ mit „away, home, holiday“ um „alarm“ zu erweitern und die Szenen welche dennoch laufen sollen mit „alarm“ anstatt „away“ auszustatten? Oder gibt es eine bessere Lösung?

            LG

          • 29. Februar 2016 at 9:20

            Nein, das hat nichts mit der Aktivierung der Alarmanlage zu tun. Zumindest solange nicht, wie du in der Rollladensteuerung nicht die bereits genannte Variable verwendest. Und genau darin sehe ich irgendwie keinen Sinn ;)

            Gruß

  • thebrain
    29. Februar 2016 at 10:12

    Hallo Daniel,

    ich habe mir gerade einmal das Skript für die Rollladensteuerung angesehen. Ich verwende in dem Skript nicht die Variable „PresentState“ dennoch gehen die Rollläden bei aktivierter Alarmanlage nicht hoch/runter. Sobald ich die Alarmanlage nicht aktiviert habe funktioniert alles.

    Ich verwende folgende Skripte:
    Rollladensteuerung: http://www.siio.de/board/thema/rollladen-steuerung-sonnenaufgang-untergang/page/4/
    Zipato: http://www.siio.de/sicherheitalarm/alarm-schalten-mit-zipato-rfid-tagreader-im-fibaro-hc2-update-2/#comment-4914

    MfG

    • 29. Februar 2016 at 10:46

      Hi,

      kann ich nicht bestätigen. Nutze beide Skripte und die Rollläden fahren auch hoch/runter, wenn die Variable auf away steht. Kann mir vorstellen, dass ein Modul automatisch auslöst, so den Alarm auslöst und dadurch die Szene gestoppt wird. Etwas anderes fällt mir dazu sonst nicht ein.

      Gruß

  • thebrain
    29. Februar 2016 at 11:15

    Hi,

    ich werde heute Abend einmal die Variable von Hand setzen und schauen wie sich die Rollladen verhalten. Werden anschließend noch einmal berichten.
    Vielen Dnak schon einmal.

    Gruß

  • 7. März 2016 at 17:29

    Hallo,

    sei dem Update auf 4.080 bekomme ich in der Debugausgabe folgende Fehlermeldung angezeigt:
    `[DEBUG] 17:14:31: RFID-Scene Version 1.0 gestartet
    [DEBUG] 17:14:31: line 62: bad argument #1 to ‚len‘ (string expected, got nil)`

    Das steht bei mir in Zeile 61 bis 64:
    `– 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`

    Die Tür-/Fenstersensoren werden nicht scharfgeschalten. Gibt es dafür eine Lösung?

    Gruß Andreas

  • 7. März 2016 at 18:51

    Funktioniert denn ein Downgrade?

  • 7. März 2016 at 19:05

    Downgrade habe ich gefunden: http://www.siio.de/board/thema/fibaro-home-center-2-v-4-018-beta/#post-6446

    Ist denn eventuell ein workaround in Arbeit ;-)?

    • 7. März 2016 at 19:30

      Downgrade auf 4.070 ist meines Wissens nach nicht mehr möglich. Geht immer nur zur letzten Stable-Version, Betas werden übersprungen.

      Nein, Workaround geht leider nicht… Die Daten vom RFID-Leser sind mit dem HC2 nicht mehr auslesbar, sorry :(

      Hoffe, dass Fibaro da demnächst etwas ändert.

  • 7. März 2016 at 20:05

    Das hoffe ich auch. So ganz erschließt sich mir diese FW-Upgrade-Politik nicht. Ein paar meiner Kollegen spielten mit dem Gedanken, sich dieses System zuzulegen. Derzeit kann man aber nur abraten – denn die Frage kommt schon auf, was oder welches teure Modul beim nächsten Update nicht mehr funktioniert.

  • thebrain
    9. März 2016 at 8:11

    Morgen,

    ich habe gestern Abend das Update der HC2 von der SW Version 4.070 auf die Version 4.080 durchgeführt. Dabei ist leider das Zipato RFID exkludiert worden. Nun wollte ich das Gerät neu einbinden und die ID im LUA Code anpassen. Leider bekomme ich mit der Version 4.080 des HC2 das Bedienfeld der Zipato RFID nicht eingebunden.
    Er findest das Gerät kann es aber beim einbinden nicht konfigurieren und das HC2 warten auf „Wecken des Gerätes“. Laut Anleitung wird das Wecken alle 2h automatisch durchgeführt. Wie kann ich das Bedienfeld Zipato RFID aufwecken?

    Vielen Dank
    LG

  • thebrain
    9. März 2016 at 9:04

    Morgen,

    ich dachte das bezieht sich nur auf die Beta Version? Was habe ich jetzt für eine Möglichkeit meine Alarmanlage zu aktivieren? Funktioniert jetzt nur der RFID Reader nicht mehr oder sind andere Funktionen auch betroffen? Über die Widget Funktion kann ich die Alarmanlage noch aktiviere nur über das nicht mehr funktionsfähige RFID Panel, da nicht erkannt, nicht mehr.

    Gibt es eine Möglichkeit zum Downgrade der HC2 auf die 4.070?

    LG

    • 9. März 2016 at 9:19

      Hi,

      nein nein. Das bezieht sich auf alle Versionen nach 4.070. Bug-Ticket bei Fibaro ist bereits eröffnet, aber es steht natürlich nicht zu 100% fest, dass da nochmal etwas passiert. Es betrifft nur das Auslesen der Codes vom Reader, das funktioniert nicht mehr. Auch wenn es wieder vernünftig inkludiert ist, würde es trotzdem nicht funktionieren, weil Fibaro die API geändert hat. Über das Widget geht es noch.

      Nein, eine Möglichkeit zum Downgrad existiert nicht. Du kannst nur auf die ausgelieferte Version und dann wieder auf 4.080. Sorry.

      Gruß

  • thebrain
    23. März 2016 at 8:11

    Guten Morgen,

    ist es mit der Fibaro Software Version 04.080 möglich über den Zipato RFID die Alarmanlage über einen PIN zu deaktivieren? Oder ist über die geänderte API der komplette Reader außer Betrieb gesetzt worden? Ich stelle mir damit vor, die Alarmanlage über das Telefon zu aktivieren aber über einen PIN Code am Reader zu deaktivieren.
    Wenn das funktionieren sollte, was muss ich am Skript ändern?

    Allen schöne Osterfeiertage
    THX Daniel

    • 23. März 2016 at 8:33

      Hi,

      mit Änderung der API wurde der ganze Reader außer Betrieb gesetzt. Es funktioniert weder der Pin-Code noch die RFID-Chips. Sorry :/

      Auch von uns schöne Ostertage…

      Gruß

  • 9. Januar 2017 at 18:59

    Moin Siio Team!! Kann es sein, dass mit dem 4.110 Update der Tag-Reader wieder am Start ist? Zumindest ging er wieder zu inkludieren. Beste Grüße

  • Peter
    5. Juli 2017 at 22:29

    Hallo, wenn ich die alten Versionen mit der neuesten Vergleiche fehlt mir irgendwie die Variable mit der RFID Code. Ich bin auf 4.13 und sehe in der erweiterten Optionen eine Synchronisationsmöglichkeit (die nie fertig wird) aber keine Möglichkeit die RFID Chips zuzuweisen.

    Da die Variable in der neuen Version fehlt muß man den Tag jetzt wohl über die GUI angeben, richtig?

Leave a Response