ich habe nun auch die ersten Schritte mit der Modulerstellung probiert … Dank auch an Nallchan … ist ein tolles Werkzeug :).
Wie der Titel schon sagt, wird der Fingerabdruckleser GT511C3 über das Modul in IPS eingebunden. Getestet nur auf Raspberry PI - sollte aber auch an anderen IPS-SerialPorts funktionieren.
Hi,
kannst du uns bitte etwas genauere Infos zum Sensor geben?! (bevor ich 50€ ausgebe :D)
Ich sehe gerade 2 Probleme:
-ich muss also etwa jede Sekunde abfragen, ob ein Finger aufgelegt wurde? Das erzeugt 'ne Menge Overhead. Schöner wäre es, wenn aktiv übermittelt wird, dass gerade jemand vor der Tür steht
-ich erhalte vom Modul also nur die boolsche Info, ob ein registrierter Finger aufgelegt wurde?! Eine Unterscheidung in unterschiedliche Personen ist also nicht möglich?! Ferner dürfte das sehr einfach zu manipulieren sein, wenn der Sensor draußen hängt.
Das Problem mit dem Datentraffic sehe ich nicht, trotzdem werde ich bei mir - über vorhandene Bewegungsmelder - die LED erst einschalten wenn auch jemand in der Nähe ist und dann auch entsprechend pollen ob „FingerPress=true“ ist. Nach x Minuten - oder erfolgter Öffnung (Identifikation) - werde ich die LED wieder ausschalten und logischerweise aufhören zu pollen. Meines Erachtens mehr eine optische als eine datentechnische Frage.
Das ist nicht richtig, es kommt auch der Speicherplatz des erkannten Fingerprints mit, allerdings schreibe ich ihn derzeit nur ins Log und nicht in eine separate Variable.
Hinsichtlich Manipulation kann man natürlich - bei Zugang zu den seriellen Verbindungsdrähten - die Host (IPS) - Client Kommunikation auf diverse Arten hacken. Eine wäre men in the middle, eine andere man simuliert einen anderen Host und bringt den Fingerprintreader zum einlesen (neues Enrollment).
Theoretisch geht dies, von den 1000 Varianten in ein Haus zu kommen - sind dies für mich mit die umständlichsten.
Da sind alle Funk-Türöffner wesentlich anfälliger, da kein wirklicher physikalischer Zugang zu der Hardware (zu den Drähten) nötig ist.
Hinsichtlich Außenanbringung noch eine Warnung: Ich werde das Modul im „überdachten“ Außenbereich anbringen, sonst ist das Thema Wasserschutz sicher zu beachten!
LED - 1
Warning: open: Zugriff verweigert in D:\IP-Symcon\Modules\HFmodule\FPgt511\module.php on line 533
Warning: Port ist nicht offen in D:\IP-Symcon\Modules\HFmodule\FPgt511\module.php on line 525
Warning: open: Zugriff verweigert in D:\IP-Symcon\Modules\HFmodule\FPgt511\module.php on line 533
Warning: Port ist nicht offen in D:\IP-Symcon\Modules\HFmodule\FPgt511\module.php on line 525
Finger -
Du hast die Zeile auskommentiert und dann funktioniert es unter Windows?
Wenn das so ist, verhält sich ja IPS unter Windows anders als unter RaspberryPI - interessant. Leider kann ich das Modul unter Windows nicht testen, vielleicht kann mir jemand von den SerialPort-Freaks (NallChan???) mal einen Tipp geben.
Grundsätzlich hat SPRT_SendText in einem Modul nix zu suchen.
Dafür gibt es SendDataToParent.
Die Fehlermeldung ist ja auch eindeutig, die IO-Instanz ist nicht geöffnet.
Michael
Du musst da schon etwas mehr machen, dazu gibt es einmal das Thema Datenaustausch in der Doku und die Beispiele von dem SymconTest Repositorie auf GitHub.
Michael
ich habe nun also in der Testing auf SendDataToParent umgestellt.
Weiterhin habe ich die DELAYS von 1100ms auf 1500ms erhöht.
Das Problem (bzw. vor allem die Lösung) unter Windows verstehe ich aber nach wie vor nicht. Die von Wibu unter Windows auskommentierte Zeile:
in Modul Script Zeile 533 IPS_ApplyChanges($COM_ID); deaktiviert
wird nur im SerialPort-Fehlerfall erreicht und speziell da möchte ich ja die serielle SS erneut öffnen und IPS_ApplyChanges durchführen. Gerade dies funktioniert beim Raspberry super. Warum dies unter Windows nicht gehen soll erschließt sich mir nicht.
Die Zeile533 ist jetzt in Zeile 536, ich habe auch zusätzlich noch ein Delay hinzugefügt.
IPS_SetProperty($COM_ID,"Open",true); //serielle Schnittstelle verschluckt sich - IPS-Problem?
IPS_Sleep($delay);
//Nachfolgende Zeile Probleme unter Windows ???
IPS_ApplyChanges($COM_ID);
@Wibu: Es wäre schön wenn Due die Testing nochmal ausprobieren könntest. @Nallchan: Muss ich zum Öffnen der SS unter Windows etwas anderes tun?