Wie ist eure Langzeiterfahrung mit diesen Fingerprintmodulen im Außenbereich? Hatte zuerst die nicht wetterfeste Variante und musste sie erwartungsgemäß nach einigen Monaten tauschen (unterm Vordach aber dennoch). Habe dann die wetterfeste genommen, aber leider scheint diese auch nach einigen Monaten kaputt gegangen zu sein
Läuft hier seit über 2 Jahren ohne Vordach, ist aber Wetterfest vergossen.
Problem sind nur nasse und dreckige Finger, die muss man sauber machen.
Ich komme damit klar.
Hallo zusammen, bin auf diesen tollen Thread gestoßen und habe mir auch einen R503 und einen ESP32 bestellt.
ESP32 habe ich schon und bin die Firmware am vorbereiten. Jetzt lese ich aber, dass wohl mit der normalen Tasmota Firmware die LEDs nicht funktionieren? Ich hätte es gerne so wie oben beschrieben von @tomgr damit ich bei unbekanntem Finger ne ID 254 und rote LED bekomme.
Fragen:
Könnte mir einer eine aktuelle Tasmota Firmware für ESP32 bauen, wo die LEDs so wie oben im Thread funktionieren?
Wie kann ich bei der Tasmota Firmware den Sensor mit den einzelnen Fingerabrücken anlernen?
Brauche ich auch den IO5 GPIO mit dem Wakeup Signal über I2C SDA? Hat man dadurch irgendwelche Vor- oder Nachteile?
Mal ein kurzes Update fairnesshalber, der wasserfeste Sensor scheint doch besser zu funktionieren als ich dachte. Ich glaube, es war eher das Netzteil kaputt. Seit es getauscht wurde funktioniert das ganze System wieder zuverlässig.
Hallo zusammen und erstmal vielen Dank für den tollen Austausch hier. Ich habe auch so einen R503 Sensor hier samt ESP32 und dank eurer Hilfe das ganze aus Tasmota geflashed.
Ich habe ein Modul mit grauem Kabel, wie ich es oben schon mal in manchen Bildern gesehen habe, das ist wohl das günstiger R503S Modell mit „nur“ 150 Speicherplätzen. Mir reichen auch 10, aber anscheinend hat das Ding entweder nen Hau weg oder man benätigt für die R503S Version etwas anderes, da ich auch beim Tasmota das Problem habe, dass er andauernd lila blinkt und in der Konsole wird als dieser Eintrag wiederholt:
13:05:05.507 RSL: RESULT = {„FPrint“:{„Id“:10,„Confidence“:0}}
13:05:06.508 RSL: RESULT = {„FPrint“:{„Id“:10,„Confidence“:0}}
Beim Start findet er den Sensor auch und zeigt teilweise an, ob Finger drauf sind, aber löschen kann ich auch nichts.
00:00:00.038 UFS: FlashFS mounted with 304 kB free
00:00:00.061 CFG: Loaded from File, Anzahl 26
00:00:00.071 QPC: Count 1
00:00:00.159 BRY: Berry initialized, RAM used=4438 bytes
00:00:00.176 TFS: File ‚.drvset003‘ not found
00:00:00.183 Projekt tasmota - Tasmota Version 13.1.0.1(tasmota32)-2_0_11(2023.08.24 21:41:47)
00:00:02.133 AS6: Detected with 1 fingerprint(s) stored
Jetzt die Frage an euch, Sensor mist oder habt ihr Erfahrung damit und könnt mir eventuell helfen?
Ich bin ebenfalls über das R503 + ESP32 Projekt Fingerdoorbell gestolpert.
Da die kommerziellen Lösungen alle viel zu teuer sind. Die günstigen kommerziellen durchwegs schlecht sind, möchte ich das hiermit umsetzen.
Nun aber meine Frage zur Funktion.
Wenn ich R503 + ESP32 / ESP8266 kombiniere, wo sind die Finger gespeichert, wo werden sie später abgerufen? Muss für einen eingelesenen Finger, zum öffnen IP-Symcon laufen (Mqtt / Tasmota…), mal abgesehen, davon wie man den Türöffner dann ansteuert. Oder ist letzteres immer der Knackpunkt - also z.B. IP-Symcon wird der gelesene FInger mitgeteilt, IPS schaltet einen Shelly der den Kontakt zum Motorschloss öffnet/schließt?
Oder hat jemand eine Idee, wie man direkt über einen ESP32/8266 einen Kontakt fürs Motorschloss schalten könnte?
Was ist der Vorteil, dass hier die Tasmota Variante gewählt wird statt der Datenübertragung direkt an MQTT Server (IP-Symcon).
Ich hab gesehen, dass es auch eine “Offline” variante gibt, die direkt einen Kontakt schalten kann. Wäre dann zwar nicht so smart, aber dafür unabhängig von WLAN, IP-Symcon, .etc)…
Ich habe es mit Tasmota gemacht, damit ich die ID’s in Symcon sehe, und dort auswähle was man machen will.
Am ESP32/8266 habe ich auch ein Relais, welches dann über symcon geschaltet wird.
Um das ganze unabhänig von Symcon zu schalten, müsste der Tasmota Code umgebaut werden.
Ev gibt es da auch was fertige, hab jetzt lange nichts mehr mit Tasmota gemacht, da hier einfach alles läuft.
Ich bin da noch am grübeln, was ich mache.
Mal schauen, muss mir die Doku des Motorschlosses mal genauer anschauen, und wie das im Zählerschrank verkabelt ist. Wenns direkt zu der Steuerplatin K202 passt, werde ich vermutlich das umsetzen. Die Komponenten kaufe ich dann doppelt, und hab so hoffentlich lange Ersatz.
Parallel lade ich mir mal den ESP Sketch runter und schau, ob man das auch einfach auf einen Kontakt legen könnte.
Also das Beste aus beiden Welten sozusagen. (offline Nutzung + smarte Möglichkeiten)
Man kann laut Recherche in Tasmota wohl -im Nachgang- eine Regel einsetzen
oder man baut z.b. in der main.cpp von FingerprintDoorbell folgendes ein:
Hier wird ein Kontakt (z.B: 23) definiert der für 5 Sekunden auf HIGH. Und daran dann ein “Relais” das zum Motorschloss führt… Ich glaube das wird mein Urlaubsprojekt
Damit beide welten - offline nutzung - + smarte Rückinfo in IP-Symcon.
Was mir aber noch unklar ist - ist der eingelesene Finger im Fingerprintsensor selbst gespeichert?
const int relayPin = 23; // GPIO Pin für Relais-Ausgang definieren
void setup()
{
// … bestehender Setup-Code …
pinMode(relayPin, OUTPUT);
digitalWrite(relayPin, LOW); // sicherheitshalber Relaisausgang auf LOW initialisieren
// … Rest Setup …
}
void doScan()
{
Match match = fingerManager.scanFingerprint();
String mqttRootTopic = settingsManager.getAppSettings().mqttRootTopic;
switch(match.scanResult)
{
case ScanResult::noFinger:
// … (bestehender Code) …
break;
case ScanResult::matchFound:
notifyClients( String("Match Found: ") + match.matchId + " - " + match.matchName + " with confidence of " + match.matchConfidence );
if (match.scanResult != lastMatch.scanResult) {
if (checkPairingValid()) {
mqttClient.publish((String(mqttRootTopic) + „/ring“).c_str(), „off“);
mqttClient.publish((String(mqttRootTopic) + „/matchId“).c_str(), String(match.matchId).c_str());
mqttClient.publish((String(mqttRootTopic) + „/matchName“).c_str(), match.matchName.c_str());
mqttClient.publish((String(mqttRootTopic) + „/matchConfidence“).c_str(), String(match.matchConfidence).c_str());
Serial.println(„MQTT message sent: Open the door!“);
// Relais für 5 Sekunden einschalten
digitalWrite(relayPin, HIGH);
delay(5000);
digitalWrite(relayPin, LOW);
} else {
notifyClients("Security issue! Match was not sent by MQTT because of invalid sensor pairing! This could potentially be an attack! If the sensor is new or has been replaced by you do a (re)pairing in settings page.");
}
}
delay(3000); // warte vor nächstem Scan
break;
case ScanResult::noMatchFound:
// ... (bestehender Code) ...
break;
case ScanResult::error:
// ... (bestehender Code) ...
break;