FHEM Forum

Verschiedenes => Bastelecke => ESP Familie => Thema gestartet von: MBHG am 23 April 2021, 08:55:58

Titel: ESP-12f und Fingerprint
Beitrag von: MBHG am 23 April 2021, 08:55:58
Guten Morgen,

ich bastle schon seit längerer Zeit an einem ESP-12f und einem Fingerprint (r503 operiert auf 3.3v) und bin fast am verzweifeln.

Der Fingerprint ist mit dem ESP wie folgt verbunden:

tx - mosi PIN 13  - rc503 gelb - tx
rx - miso PIN 12  - rc503 grün - rx


rx - mosi PIN 13  - rc503 gelb - tx
tx - miso PIN 12  - rc503 grün - rx

Ich nutze das SoftwareSerial und bekomme einfach keine Verbindung. Die Rückmeldung über MQTT ist, dass kein Fingerprint verbunden ist. Prinzipiell funktioniert der Fingerprint. Hat  jemand einen Tipp für mich?

/***************************************************
  This is an example sketch for our optical Fingerprint sensor

  Designed specifically to work with the Adafruit BMP085 Breakout
  ----> http://www.adafruit.com/products/751

  These displays use TTL Serial to communicate, 2 pins are required to
  interface
  Adafruit invests time and resources providing this open source code,
  please support Adafruit and open-source hardware by purchasing
  products from Adafruit!

  Written by Limor Fried/Ladyada for Adafruit Industries. 
  BSD license, all text above must be included in any redistribution
****************************************************/

#include <Adafruit_Fingerprint.h>
#include <SPI.h>
#include <Wire.h>
#include <WiFiClient.h>
#include <PubSubClient.h> // Aus Wifi Mqtt
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <ESP8266HTTPClient.h>
#include <ArduinoOTA.h>
#include <SoftwareSerial.h>
SoftwareSerial mySerial(13, 12);
//tx - mosi PIN 13  - rc503 gelb - tx
//rx - miso PIN 12  - rc503 grün - rx


Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);

//************************************************************************
/* Set these to your desired credentials. */
const char *ssid = "myssid";  //ENTER YOUR WIFI SETTINGS
const char *password = "mypwd";
const char* mqttServer = "myip"; // Broker PI
const int mqttPort = 1883; // Broker PI Port
const char* mqttUser = "FP"; // Broker PI Name
const char* mqttPassword = "mymqpwd"; // Broker PI Password

WiFiClient espClient;
PubSubClient client(espClient);
char* mqttio = "12345"; // Broker PI Wert
char* confidence = "67890"; // Broker PI Wert

uint8_t id;


//************************************************************************


void setup() 
{
  // Serial.begin(115200);
  // Serial.println("\n\nConnect to Wifi");
  connectToWiFi();

    // mqtt
  client.setServer(mqttServer, mqttPort);
  client.setCallback(callback);
 
  while (!client.connected()) {
  // Serial.println("Connecting to MQTT...");
 
  if (client.connect("ESP8266Client", mqttUser, mqttPassword )) {
 
    // Serial.println("connected"); 
 
  } else {
 
    // Serial.print("failed with state ");
    // Serial.print(client.state());
    // Serial.print("looking for update ");

  ArduinoOTA.onStart([]() {
    String type;
    if (ArduinoOTA.getCommand() == U_FLASH) {
      type = "sketch";
    } else { // U_FS
      type = "filesystem";
    }

    // NOTE: if updating FS this would be the place to unmount FS using FS.end()
    Serial.println("Start updating " + type);
  });
    ArduinoOTA.begin();
    while(1) {
      ArduinoOTA.handle();
      delay(50);
    }
 
  }
  }


 
  // Serial.println("\n\nAdafruit finger detect test");
  // set the data rate for the sensor serial port

  delay(1000);

  mySerial.begin(57600, SWSERIAL_8N1, 13, 12, false, 256, 256);
 
  finger.begin(57600);
 
  if (finger.verifyPassword()) {
    // Serial.println("Found fingerprint sensor!");
    // send command to turn on R503 led
    finger.led_control(1,100,2,1); // code(1-6),speed(1-255),color(1-R/2-B/3_P),time(1-255)

  } else {
    // Serial.println("Did not find fingerprint sensor :(");

   client.subscribe("Error");
   client.publish("Error", "No FP");

   
    delay(60000);
   
    // Serial.print("failed with state ");
    // Serial.print(client.state());
    // Serial.print("looking for update ");

  ArduinoOTA.onStart([]() {
    String type;
    if (ArduinoOTA.getCommand() == U_FLASH) {
      type = "sketch";
    } else { // U_FS
      type = "filesystem";
    }

    // NOTE: if updating FS this would be the place to unmount FS using FS.end()
    Serial.println("Start updating " + type);
  });
    ArduinoOTA.begin();
    while(1) {
      ArduinoOTA.handle();
      delay(50);
    }
   
  }

  finger.getTemplateCount();
  // Serial.print("Sensor contains "); // Serial.print(finger.templateCount); // Serial.println(" templates");
  // Serial.println("Waiting for valid finger...");

 
  client.subscribe("Fingerprint");
  client.publish("Fingerprint", "FP1");
 
}


void callback(char* topic, byte* payload, unsigned int length) {

// Serial.print("Message arrived in topic: ");
// Serial.println(topic);

// Serial.print("Message:");
for (int i = 0; i < length; i++) {
// Serial.print((char)payload[i]);
}

// Serial.println();
// Serial.println("-----------------------");

}


void loop()                     // run over and over again
{
  //check if there's a connection to WiFi or not
  if(WiFi.status() != WL_CONNECTED){
    connectToWiFi();
  }

  if (!client.connected()) {
    client.connect("ESP8266Client", mqttUser, mqttPassword );
  }
   
  if (getFingerprintIDez() == 9)  {
    delay(2000);
    getFingerprintEnroll();
  }
  delay(50);            //don't ned to run this at full speed.
}


// returns -1 if failed, otherwise returns ID #
int getFingerprintIDez() {
  uint8_t p = finger.getImage();
  if (p != FINGERPRINT_OK)  return -1;

  p = finger.image2Tz();
  if (p != FINGERPRINT_OK)  return -1;

  p = finger.fingerFastSearch();
  if (p != FINGERPRINT_OK) {
    // send command to turn on R503 led
    finger.led_control(1,100,1,3); // code(1-6),speed(1-255),color(1-R/2-B/3_P),time(1-255)

    return -1;
  }
 
  // found a match!
  // Serial.print("Found ID #"); // Serial.print(finger.fingerID);
  // Serial.print(" with confidence of "); // Serial.println(finger.confidence);
  // send command to turn on R503 led
  finger.led_control(1,100,2,3); // code(1-6),speed(1-255),color(1-R/2-B/3_P),time(1-255)

  // mqtt

  sprintf(mqttio,"%d",finger.fingerID);
  sprintf(confidence,"%d",finger.confidence);
   
  client.subscribe("Confidence");
  client.publish("Confidence", confidence);
   
  client.subscribe("FingerprintNr");
  client.publish("FingerprintNr", mqttio);

  return finger.fingerID;
}

void connectToWiFi(){
    WiFi.mode(WIFI_OFF);        //Prevents reconnection issue (taking too long to connect)
    delay(1000);
    WiFi.mode(WIFI_STA);
    // Serial.print("Connecting to ");
    // Serial.println(ssid);
    WiFi.begin(ssid, password);

    while (WiFi.status() != WL_CONNECTED) {
      delay(500);
      // Serial.print(".");
    }
    // Serial.println("");
    // Serial.println("Connected");
   
   
    // Serial.print("IP address: ");
    // Serial.println(WiFi.localIP());  //IP address assigned to your ESP
}







uint8_t getFingerprintEnroll() {

  // send command to turn on R503 led
  finger.led_control(1,100,3,3); // code(1-6),speed(1-255),color(1-R/2-B/3_P),time(1-255)

  id = min(finger.templateCount + 1, 127);
  int p = -1;
  // Serial.print("Waiting for valid finger to enroll as #"); // Serial.println(id);
  while (p != FINGERPRINT_OK) {
    p = finger.getImage();
    switch (p) {
    case FINGERPRINT_OK:
      // Serial.println("Image taken");
      break;
    case FINGERPRINT_NOFINGER:
      // Serial.println(".");
      break;
    case FINGERPRINT_PACKETRECIEVEERR:
      // Serial.println("Communication error");
      break;
    case FINGERPRINT_IMAGEFAIL:
      // Serial.println("Imaging error");
      break;
    default:
      // Serial.println("Unknown error");
      break;
    }
  }


 
  // OK success!

  p = finger.image2Tz(1);
  switch (p) {
    case FINGERPRINT_OK:
      // Serial.println("Image converted");
      break;
    case FINGERPRINT_IMAGEMESS:
      // Serial.println("Image too messy");
      return p;
    case FINGERPRINT_PACKETRECIEVEERR:
      // Serial.println("Communication error");
      return p;
    case FINGERPRINT_FEATUREFAIL:
      // Serial.println("Could not find fingerprint features");
      return p;
    case FINGERPRINT_INVALIDIMAGE:
      // Serial.println("Could not find fingerprint features");
      return p;
    default:
      // Serial.println("Unknown error");
      return p;
  }

  // send command to turn on R503 led
  finger.led_control(1,100,3,3); // code(1-6),speed(1-255),color(1-R/2-B/3_P),time(1-255)

 
  // Serial.println("Remove finger");
  delay(2000);
  p = 0;
  while (p != FINGERPRINT_NOFINGER) {
    p = finger.getImage();
  }
  // Serial.print("ID "); // Serial.println(id);
  p = -1;
  // Serial.println("Place same finger again");
  while (p != FINGERPRINT_OK) {
    p = finger.getImage();
    switch (p) {
    case FINGERPRINT_OK:
      // Serial.println("Image taken");
      break;
    case FINGERPRINT_NOFINGER:
      // Serial.print(".");
      break;
    case FINGERPRINT_PACKETRECIEVEERR:
      // Serial.println("Communication error");
      break;
    case FINGERPRINT_IMAGEFAIL:
      // Serial.println("Imaging error");
      break;
    default:
      // Serial.println("Unknown error");
      break;
    }
  }

  // OK success!

  // send command to turn on R503 led
  finger.led_control(1,100,3,3); // code(1-6),speed(1-255),color(1-R/2-B/3_P),time(1-255)

  p = finger.image2Tz(2);
  switch (p) {
    case FINGERPRINT_OK:
      // Serial.println("Image converted");
      break;
    case FINGERPRINT_IMAGEMESS:
      // Serial.println("Image too messy");
      return p;
    case FINGERPRINT_PACKETRECIEVEERR:
      // Serial.println("Communication error");
      return p;
    case FINGERPRINT_FEATUREFAIL:
      // Serial.println("Could not find fingerprint features");
      return p;
    case FINGERPRINT_INVALIDIMAGE:
      // Serial.println("Could not find fingerprint features");
      return p;
    default:
      // Serial.println("Unknown error");
      return p;
  }
 
  // OK converted!
  // Serial.print("Creating model for #");  // Serial.println(id);
 
  p = finger.createModel();
  if (p == FINGERPRINT_OK) {
    // Serial.println("Prints matched!");
  } else if (p == FINGERPRINT_PACKETRECIEVEERR) {
    // Serial.println("Communication error");
    return p;
  } else if (p == FINGERPRINT_ENROLLMISMATCH) {
    // Serial.println("Fingerprints did not match");
    return p;
  } else {
    // Serial.println("Unknown error");
    return p;
  }   
 
  // Serial.print("ID "); // Serial.println(id);
  p = finger.storeModel(id);
  if (p == FINGERPRINT_OK) {
    // Serial.println("Stored!");
  } else if (p == FINGERPRINT_PACKETRECIEVEERR) {
    // Serial.println("Communication error");
    return p;
  } else if (p == FINGERPRINT_BADLOCATION) {
    // Serial.println("Could not store in that location");
    return p;
  } else if (p == FINGERPRINT_FLASHERR) {
    // Serial.println("Error writing to flash");
    return p;
  } else {
    // Serial.println("Unknown error");
    return p;
  }   
}







Titel: Antw:ESP-12f und Fingerprint
Beitrag von: frank am 23 April 2021, 09:01:55
normaler weise werden doch rx/tx gekreuzt.
also, was der eine bei tx labert, soll der andere bei rx hören.
Titel: Antw:ESP-12f und Fingerprint
Beitrag von: MBHG am 23 April 2021, 09:42:36
Hi Frank,

im Code ist es richtig, in meinem Kommentar falsch. Sorry, ich korrigiere es.

Gruss Marc
Titel: Antw:ESP-12f und Fingerprint
Beitrag von: Papa Romeo am 23 April 2021, 09:44:09
Hallo MBHG,

ich denke du nutzt den Hardware SPI, da ich jetzt in deinem Programm auf Anhieb für SPI keine andere Zuweisung sehen kann ...

...leg mal Gelb vom Fingerprint auf GPIO14 und ändere SoftwareSerial auf mySerial(14, 12) ab und nutze Software SPI.

hier auch nochmal ein Beispielprogramm https://smarthome.family.blog/2020/09/18/fingerprint-r503-esp-mqtt-fhem/

LG
Papa Romeo
Titel: Antw:ESP-12f und Fingerprint
Beitrag von: MBHG am 23 April 2021, 10:10:06
Hi Papa Romeo,

ich nutze das Softserial. Das HardwareSerial habe ich auch schon angetestet, aber hatte kein Erfolg.

Zitat von: Papa Romeo am 23 April 2021, 09:44:09
hier auch nochmal ein Beispielprogramm https://smarthome.family.blog/2020/09/18/fingerprint-r503-esp-mqtt-fhem/

Lustig, ist Deine Referenz auf meinen Blog - es gibt also Leute die es lesen ;D. In der Tat hatte ich es letztes Jahr einmal zum Laufen bekommen, aber es mit dem Setup in dem Link tut  es nicht mehr. Dann bin ich auf die Pins 12 und 13 umgestiegen oder auch das Hardwareserial. Aber das tut leider auch nicht.

Lieben Gruss Marc

Titel: Antw:ESP-12f und Fingerprint
Beitrag von: Papa Romeo am 23 April 2021, 10:45:29
Zitat von: MBHG am 23 April 2021, 10:10:06
ich nutze das Softserial. Das HardwareSerial habe ich auch schon angetestet, aber hatte kein Erfolg.

Hallo Marc,

... zu was hast du dann #include <SPI.h> in deinem Programm.

Der Hardware SPI belegt doch auch die GPIO´s 12, 13 und 14, wie dein mySerial ...

LG
Papa Romeo
Titel: Antw:ESP-12f und Fingerprint
Beitrag von: MBHG am 23 April 2021, 12:11:01
Hallo Papa Romeo,

super Punkt. Wenn ich es raus nehme, klappt es leider immer noch nicht  :(

Gruss Marc
Titel: Antw:ESP-12f und Fingerprint
Beitrag von: Papa Romeo am 23 April 2021, 14:31:04
Hallo Marc,

ich weiß jetzt nicht wie´s beim ESP8266 ist, aber bei manchen MCU´s gibt´s da Limitationen, dass nicht alle GPIO´s, z.B. auch 13, als RX verwendet werden können.

https://www.arduino.cc/en/Reference/SoftwareSerial

Ich würd einfach mal 12 und 13 tauschen und testen.

LG
Papa Romeo
Titel: Antw:ESP-12f und Fingerprint
Beitrag von: MBHG am 25 April 2021, 17:48:30
Hallo Papa Romeo,

ich hab mich erkundigt, PIN 12 und 13 müssten klappen, genauso wie PIN 12 und 14. Habe schon x-fach getauscht. Muss also anerkennen, dass es wohl an etwas anderem liegt. Mal sehen.

Gruss Marc
Titel: Antw:ESP-12f und Fingerprint
Beitrag von: habeIchVergessen am 25 April 2021, 20:12:09
ESP-SDK Version seit dem letzten Test geändert?
Titel: Antw:ESP-12f und Fingerprint
Beitrag von: MBHG am 27 April 2021, 11:59:19
Zitat von: habeIchVergessen am 25 April 2021, 20:12:09
ESP-SDK Version seit dem letzten Test geändert?

Eigentlich nicht. Vielleicht ist der ESP hinüber. Ich hab mal nen neuen bestellt. Der Fingerprint tut mit einem Pro Mini.
Titel: Antw:ESP-12f und Fingerprint
Beitrag von: MBHG am 27 April 2021, 19:04:51
Ich hab ne Vermutung. Im Testaufbau wo er funktionierte hatte ich ihn direkt am fetten Netzteil. Danach am Spannungsregler. Vermutlich fehlt der 100uF. Der esp zwingt beim Einschalten / WLAN den r503 in die Knie...
Gruss
Titel: Antw:ESP-12f und Fingerprint
Beitrag von: Papa Romeo am 27 April 2021, 20:49:42
Zitat von: MBHG am 27 April 2021, 19:04:51
Der esp zwingt beim Einschalten / WLAN den r503 in die Knie...

Kann ich mir eigentlich nicht vorstellen. Wenn der ESP die 3.3 Volt in die Knie zwingen würde, dürfte er selber auch nicht booten bzw. in einer Bootschleife hängen.

Wieviel bringt deine jetzige Spannungsversorgung ?

Hast du mal versucht unter  - void setup() - die Initialisierung des Fingerprint vor ... connectToWiFi();  zu legen ?

LG
Papa Romeo
Titel: Antw:ESP-12f und Fingerprint
Beitrag von: MBHG am 28 April 2021, 06:33:26
Hi Papa Romeo,

ja, das mit dem WiFi habe ich abgeändert. Schalte es erst hinterher ein. Allerdings habe ich Mal einen debug gestartet. Da sehe ich WiFi Aktivitäten vor dem Connecttowifi.

Mein alter Script tut auch nicht mehr. Ich vermute inzwischen ein Hardware Issue. Softwaretechnisch habe ich so viel probiert.

Der fp tut an einem Pro Mini. Hier wird ähnliches berichtet. https://forum.iobroker.net/topic/23398/fingerprint-an-einem-esp8266/20 (https://forum.iobroker.net/topic/23398/fingerprint-an-einem-esp8266/20)



Titel: Antw:ESP-12f und Fingerprint
Beitrag von: Papa Romeo am 28 April 2021, 09:34:50
Zitat von: MBHG am 28 April 2021, 06:33:26
Der fp tut an einem Pro Mini... 

...vielleicht ist das ja der "Knackpunkt" und doch ein Spannungsproblem. Der Pro Mini arbeitet mit 5 Volt. Der ESP mit nur 3.3 Volt.

Ist es eventuell möglich dass der Fingerprint, entgegen seinen Spezifikationen, an 3.3 Volt nicht so optimal funktioniert und doch 5 Volt benötigt ?

... bin mal auf die Suche gegangen und habe dazu das hier gefunden...

ZitatThe above circuit diagram shows how an Fingerprint Sensor is interfaced with NodeMCU ESP8266 12E Board. The fingerprint sensor is connected to UART pins D5 & D6. The fingerprint sensor Tx and Rx wires color may vary. In my case, the color is yellow and blue where yellow is Tx and Blue is Rx. So connect it by finding appropriate color wires else the module won't be detected by NodeMCU.

The R305 fingerprint sensor is supplied with 5V through Vin pins of NodeMCU. In my case, the sensor didn't work at 3.3V.

LG
Papa Romeo

Titel: Antw:ESP-12f und Fingerprint
Beitrag von: MBHG am 28 April 2021, 17:37:45
Hi Papa Romeo,

ich habe einen r503 im Gegensatz zu einem r305  ;) ;) . Ungeschickte Bezeichnung. http://download.mikroe.com/documents/datasheets/R503_datasheet.pdf (http://download.mikroe.com/documents/datasheets/R503_datasheet.pdf)

Teilerfolg: Der r503 arbeitet tatsächlich mit 3.3V und ist nicht 5V tolerant. Mein Pro Mini werkelt auch auch 3.3V. Aber dem Thema Spannung bin ich auch mal auf den Grund gegangen. Mein DC-DC Step down lieferte 3.5V und ich habe es auf exakt 3.3V gestellt. Und plötzlich: auf dem Breadboard klappte die Kommunikation. Mit oder ohne Kondensator, ganz egal. Vermutlich waren die Signale nicht hoch genug um erkannt zu werden. Einen Softwarefehler können wir also ausschließen.

Ich tippe auf ein Wiring Issue beim realen Einbau. Fast da.

Gruss Marc
Titel: Antw:ESP-12f und Fingerprint
Beitrag von: Papa Romeo am 11 Mai 2021, 18:14:24
Zitat von: MBHG am 28 April 2021, 17:37:45
Ich tippe auf ein Wiring Issue beim realen Einbau. Fast da.

Hallo Marc,

hatte heute etwas Zeit und habe mal meinen Fingerprint, den ich schon ne Weile in der Schublade liege hatte rausgekramt und an einen Wemos gehängt.
Funktioniert mit dem Sketch von deiner Seite so weit ... d.h.

... also der R503 wird erkannt
... es lassen sich Templates abspeichern
... die einzelnen Finger werden so "einigermaßen" erkannt
... aber die Templates lassen sich nicht löschen.

Ich vermute es wird an der abgeänderten Lib liegen, denn mit der originalen Lib und den beigefügten Beispielprogrammen funktioniert die Erkennung tadellos
und die Templates lassen sich auch wieder löschen.
Was hast du an der Lib geändert. Vielleicht kann ich mir das mal anschauen, denn das mit dem farbigen LED-Ring wäre schon ne tolle Sache.

LG
Papa Romeo
Titel: Antw:ESP-12f und Fingerprint
Beitrag von: Papa Romeo am 20 Mai 2021, 20:02:16
Hab mich nochmal ein bisschen mit dem Fingerprint-Sensor (R503) beschäftigt und muß meine Aussage vom vorherigen Post in dem Punkt mit dem "nicht Löschen" revidieren.

Die Database oder auch einzelne Templates lassen sich ohne Probleme löschen.

Das Problem liegt wo anders.

Nehme ich Sketche, bei denen die LED-Ausgabe nicht implementiert ist, wird genau das ausgeben was ausgegeben werden soll. Ist die Database leer wird "0 Templates" angezeigt. Sind Finger registriert wird die die richtige Anzahl der Registrierungen ausgegeben.

Nehme ich nun wieder die aktuelle Lib aus GitHub oder die Modifierte von Marc, werden immer "10 Templates" ausgegeben. Egal ob die Database leer ist oder irgend eine Anzahl von Fingern registriert ist. Daher meine anfängliche Annahme, dass die Database nicht gelöscht wird, da ich zum ordentlichen Testen natürlich alle meine zehn Finger registriert hatte.

  if (finger.verifyPassword()) {
    Serial.println("Fingerprint Sensor gefunden !");
    Serial.println();
    Serial.println(master_id);
    //   -->   if (led == 1) finger.led_control(1, 100, 2, 1); // code(1-6),speed(1-255),color(1-R/2-B/3_P),time(1-255)
    Tone = 3000;
    Duration = 200;
    tone(BUZZER, Tone, Duration);
  } else {
    Serial.println("Keinen Fingerprint Sensor gefunden :(");
    while (1) {
      delay(1);
    }
  }


Nehme ich jetzt allerdings die modifizierte Lib von Marc und kommentiere im Sketch(s.oben -->) die Zeile für die erstmalige Ansteuerung des LED-Rings aus, wird jetzt auch hier die korrekte Anzahl der registrierten Finger ausgegeben.
Im weiteren Verlauf wird noch zwei oder drei Mal die korrekte Finger-ID mit entsprechender Farbringanzeige wiedergegeben und dann war´s das ... es hilft nur noch ein Reset.
Schalte ich alle LED-Ausgaben aus (--> int led = 0;) läuft die Erkennung sehr flüssig mit den zugeordneten Finger-ID´s durch.

Anscheinend hat der Sensor ein Kommunikationsproblem, sobald er Befehle erhält, die LED-Ringe anzusteuern. Ob das nun nur bei meinem Sensor so ist oder ein
allgemeines Verhalten kann ich erst in ein paar Tagen sagen, da ein weiterer Sensor noch auf dem Weg zu mir ist

LG
Papa Romeo
Titel: Antw:ESP-12f und Fingerprint
Beitrag von: Papa Romeo am 27 Mai 2021, 16:20:13
Zwischenzeitlich hab ich mir einen Sketch geschrieben der einige kombinierte Funktionen umfasst

u.a.   - Datenbank und Masterfinger löschen
         - Masterfinger registrieren
         - Fingerprints registrieren
         - Fingerprints erkennen und auswerten

der Rest mit z.B. Senden/Empfangen über nRF zum/vom ArduiTouch usw. ist erst mal nebensächlich.

Ich hab herausgefunden wie man die LED-Funktion nutzen kann und der Sensor trotzdem sehr schnell reagiert.
U.a ist gestern auch der zweite FP-Sensor gekommen, den ich dann gleich mal angeschlossen habe.
Wie ich allerdings nicht anders erwartet habe, zeigte er das Gleiche Verhalten wie der ersten Sensor.

Im Anhang ein paar Bilder und ein kleines Video zur Dokumentation:

Bild: Ohne LED-Ausgabe.jpg                        ---> Parameter werden richtig ausgelesen und alles funktioniert ohne Probleme wie gewollt ...

Bild: Mit LED-Ausgabe.jpg                            ---> es werden wilde Parameter ausgelesen und beim Scannen wird jeder Finger, ob registriert oder
                                                                              auch nicht registriert mit der ID10 und einer Vertraulichkeit von 0 ausgegeben ...

Bild: Mit LED-Ausgabe und finger.begin.jpg ---> wird nach jeder LED-Aktion auf die ein anderer serieller Zugriff auf den Sensor erfolgt, der Ausdruck im roten Kreis
                                                                              gesetzt, werden die Parameter wieder richtig ausgelesen und auch im weiteren Verlauf verhält sich dann der Sketch
                                                                              wie im ersten Bild bei dem keine LED-Ausgabe implementiert ist.

Ich werde versuchen den Sketch auch mal auf die andere Fingerprint-Lib umzuschreiben, da mir bei dieser die LED-Implementierung komfortabler zu sein scheint.

LG
Papa Romeo



Titel: Antw:ESP-12f und Fingerprint
Beitrag von: nicx am 15 November 2021, 08:05:26
Zitat von: Papa Romeo am 27 Mai 2021, 16:20:13
Ich werde versuchen den Sketch auch mal auf die andere Fingerprint-Lib umzuschreiben, da mir bei dieser die LED-Implementierung komfortabler zu sein scheint.

@Papa Romeo hattest du inzwischen Erfolg? Ich bin mit dem Sensor R503 auf das gleiche Problem gestossen, allerdings in Verbindung mit der Verwendung von ESPHome. Ohne Ansteuerung des LED-Rings funktioniert der Sensor wunderbar, mit Ansteuerung ist die Erkennung nur beim ersten Fingerprint korrekt, danach nicht mehr, d.h. nahezu jeder Finger wird einfach als autorisiert erkannt.

Hier habe ich für ESPHome mal einen Issue in Github angelegt: https://github.com/esphome/issues/issues/2542
Aber wenn ich dich richtig interpretiere liegt es eher an einem Hardware-Problem, also dem Sensor selbst? Gibt es denn irgendwo funktionierende R503 inkl. LED Ansteuerung oder ist dies bei allen R503 so?

EDIT: AH Jetzt ist der Groschen gefallen... deine Lösung hast du ja bereits gepostet. Habe diese eben in meinem Sketch mit Arduino IDE statt ESPHome probiert: Und es funktioniert! Die Lösung ist also wirklich nach *jeder* LED-Ansteuerung wieder die Funktion "finger.begin(57600)" einzubauen. Klasse, danke für dieses Finding :) Ich werde die mal im Github Issue vermerken, ggf. kann dies auch in die ESPHome Library mit eingebaut werden.

Nochmals Danke @Papa Romeo

VG
nicx...
Titel: Antw:ESP-12f und Fingerprint
Beitrag von: Papa Romeo am 15 November 2021, 09:03:39
Zitat von: nicx am 15 November 2021, 08:05:26
... Gibt es denn irgendwo funktionierende R503 inkl. LED Ansteuerung oder ist dies bei allen R503 so?

Hallo nicx,

Wie oben schon geschrieben, habe ich mir einen Zweiten besorgt. Er zeigte das gleiche Verhalten. Daher denke ich, dass das bei allen dieser Bauart das Problem besteht.

Mit den "begin" Zeilen läuft mein Sketch inzwischen aber mit den "LED-Ausgaben" ganz passabel.

LG
Papa Romeo
Titel: Antw:ESP-12f und Fingerprint
Beitrag von: Papa Romeo am 15 November 2021, 09:05:38
...uups ...sehe gerade dass du deinen Beitrag editiert hast.

Freut mich dass es bei dir jetzt auch geht.

LG
Papa Romeo
Titel: Aw: ESP-12f und Fingerprint
Beitrag von: psycho160 am 20 April 2023, 13:23:57
Hi, ich habe mich die letzten Tage mit dem r503 (RGB Version) beschäftigt und eine Firmware für einen ESP (ESP32 oder 8266) auf Basis von ESPHome zusammengestellt.
Der Reader kann über MQTT von FHEM auch kontrolliert werden. Man kann Finger anlernen, löschen und den RGB Ring am Reader mit 7 Farben und 5 Effekten ansteuern.

Verwende ihn als Zutritt, Türglocke und wenn ich die Wohnung verlasse als Hauptschalter für mein Licht.

Hab dazu ein GIT Repo erstellt: https://git.wolfmajer.at/Public/ESP32-Fingerprint (https://git.wolfmajer.at/Public/ESP32-Fingerprint)

RAW-Def für Fhem:
defmod myFingerprintReader MQTT2_DEVICE fingerprintdoor
attr myFingerprintReader comment ToDo neuer Finger:\
- enroll neue ID\
- ID in userreading speichern\
attr myFingerprintReader event-on-change-reading .*
attr myFingerprintReader event-on-update-reading msg
attr myFingerprintReader setList GREEN:ALWAYS_ON,ALWAYS_OFF,BREATHING,FLASHING,GRADUAL_ON,GRADUAL_OFF fingerprintdoor/led/command {"color":"$EVTPART0","effect":"$EVTPART1","speed":150, "count":0}\
BLUE:ALWAYS_ON,ALWAYS_OFF,BREATHING,FLASHING,GRADUAL_ON,GRADUAL_OFF fingerprintdoor/led/command {"color":"$EVTPART0","effect":"$EVTPART1","speed":150, "count":0}\
RED:ALWAYS_ON,ALWAYS_OFF,BREATHING,FLASHING,GRADUAL_ON,GRADUAL_OFF fingerprintdoor/led/command {"color":"$EVTPART0","effect":"$EVTPART1","speed":150, "count":0}\
PURPLE:ALWAYS_ON,ALWAYS_OFF,BREATHING,FLASHING,GRADUAL_ON,GRADUAL_OFF fingerprintdoor/led/command {"color":"$EVTPART0","effect":"$EVTPART1","speed":150, "count":0}\
WHITE:ALWAYS_ON,ALWAYS_OFF,BREATHING,FLASHING,GRADUAL_ON,GRADUAL_OFF fingerprintdoor/led/command {"color":"$EVTPART0","effect":"$EVTPART1","speed":150, "count":0}\
CYAN:ALWAYS_ON,ALWAYS_OFF,BREATHING,FLASHING,GRADUAL_ON,GRADUAL_OFF fingerprintdoor/led/command {"color":"$EVTPART0","effect":"$EVTPART1","speed":150, "count":0}\
YELLOW:ALWAYS_ON,ALWAYS_OFF,BREATHING,FLASHING,GRADUAL_ON,GRADUAL_OFF fingerprintdoor/led/command {"color":"$EVTPART0","effect":"$EVTPART1","speed":150, "count":0}\
purple_breath fingerprintdoor/led/command {"color":"purple","effect":"breathing","speed":90, "count":0}\
light_master:noArg fingerprintdoor/led/command {"color":"BLUE","effect":"BREATHING","speed":165, "count":0}\
light_master_off:noArg fingerprintdoor/led/command {"color":"BLUE","effect":"GRADUAL_OFF","speed":165, "count":0}\
ready4finger:noArg fingerprintdoor/led/command {"color":"PURPLE","effect":"BREATHING","speed":165, "count":0}\
ready4finger_off:noArg fingerprintdoor/led/command {"color":"PURPLE","effect":"ALWAYS_OFF","speed":165, "count":0}\
custom fingerprintdoor/led/command {"color":"$EVTPART1","effect":"$EVTPART2","speed":$EVTPART3, "count":$EVTPART4}\
off:noArg fingerprintdoor/led/command {"color":"RED","effect":"ALWAYS_OFF","speed":20, "count":0}\
cancel:noArg fingerprintdoor/cancel_enroll\
enroll fingerprintdoor/enroll $EVTPART1\
delete fingerprintdoor/delete $EVTPART1\
\

attr myFingerprintReader userReadings ID1 {"Admin: Person 1"},\
ID2    {"Bewohner: Person 2"},\
ID3    {"Gast: Person 3"}


Vielleicht kann der eine oder andere ja damit was anfangen, ich bin sehr zufrieden mit dem r503.
Titel: Aw: ESP-12f und Fingerprint
Beitrag von: Jamspoon am 25 Mai 2023, 10:42:47
Hallo psycho160,

eine kurze Frage, wie ist dann die GPIO Belegung an einem ESP8266 D1 Mini?

Ich habe im Internet nur folgende Belegung mit dem R503 gefunden aber
irgendwie passt das nicht mit den belegten GPIO's vom ESP32 zusammen.

Siehe angefügtes Bild.

Danke vorab.

Gruß André

 
Titel: Aw: ESP-12f und Fingerprint
Beitrag von: psycho160 am 25 Mai 2023, 10:56:52
Hi, an deinem Bild kann man nicht viel erkennen aber es müsste tx und rx sein am D1 (Serielle Kommunikation)
Der Sensor Pin ist optional wenn du wissen möchtest ob jemand den Reader gerade berührt.
Titel: Aw: ESP-12f und Fingerprint
Beitrag von: Jamspoon am 28 Mai 2023, 19:49:40
Hallo psycho160,

erst einmal vielen Dank fürs melden und Antworten.
Ich habe den Sensor samt D1 Mini soweit am laufen und in FHEM eingebunden.
Das lustige an der Sache, ich bekomme alle LED-Farben eingeschalten und auch wieder aus.
Was nicht funktioniert ist das enroll.

Internals:
  CID        fingersensor
  DEF        fingersensor
  FUUID      64712c06-f33f-3de4-3346-3e7e232a520350cd
  IODev      mqtt2s
  LASTInputDev mqtt2s
  MSGCNT    1426
  NAME      FINGERPRINT
  NR        784
  STATE      18412
  TYPE      MQTT2_DEVICE
  eventCount 1322
  mqtt2s_CONN mqtt2s_192.168.90.205_55418
  mqtt2s_MSGCNT 1426
  mqtt2s_TIME 2023-05-28 19:25:31
  READINGS:
    2023-05-28 19:25:31  ID1            ANDRE
    2023-05-28 19:25:31  ID2            PETER
    2023-05-28 01:10:52  ID3            BESUCHER: maguggn
    2023-05-28 13:35:16  IODev          mqtt2s
    2023-05-28 14:22:46  color          off
    2023-05-28 19:25:31  debug          ␛[0;36m[D][sensor:093]: 'Uptime Sensor': Sending state 18412.46289 s with 0 decimals of accuracy␛[0m
    2023-05-28 14:18:58  door            ON
    2023-05-28 14:22:46  led_state      off
    2023-05-28 19:24:28  rssi            -61
    2023-05-28 19:25:31  state          18412
    2023-05-28 14:18:58  status          online
    2023-05-28 13:36:14  subscriptions  fingersensor/button/esp_restart/command fingersensor/cancel_enroll fingersensor/delete fingersensor/deleteall fingersensor/enroll fingersensor/led/command
    2023-05-28 14:18:58  touch          ON
Attributes:
  comment    ToDo neuer Finger:\
- enroll neue ID\
- ID in userreading speichern\
- ID in Hashtable im notify eintragen (Admin oder Standard User)
  event-on-change-reading .*
  event-on-update-reading msg
  readingList fingersensor:fingersensor/debug:.* debug
fingersensor:fingersensor/sensor/uptime_sensor/state:.* state
fingersensor:fingersensor/touch:.* touch
fingersensor:fingersensor/door:.* door
fingersensor:fingersensor/rssi:.* rssi
fingersensor:fingersensor/status:.* status
fingersensor:fingersensor/sensor/led_color/state:.* state
fingersensor:fingersensor/sensor/led_state/state:.* state
fingersensor:fingersensor/led/:.* { json2nameValue($EVENT) }
fingersensor:fingersensor/sensor/mqtt_sub_fingerprint_enroll/state:.* state
fingersensor:fingersensor/sensor/fingerprint_log/state:.* state
fingersensor:fingersensor/sensor/mqtt_sub_fingerprint_delete/state:.* state
fingersensor:fingersensor/sensor/mqtt_sub_fingerprint_cancel/state:.* state
fingersensor:fingersensor/led/:.* { json2nameValue($EVENT) }
fingersensor:fingersensor/sensor/mqtt_sub_fingerprint_enroll/state:.* state
  room      0_WICHTIG,AM HAUS,MQTT2_DEVICE
  setList    GREEN:ALWAYS_ON,ALWAYS_OFF,BREATHING,FLASHING,GRADUAL_ON,GRADUAL_OFF fingersensor/led/command {"color":"$EVTPART0","effect":"$EVTPART1","speed":150, "count":0},
BLUE:ALWAYS_ON,ALWAYS_OFF,BREATHING,FLASHING,GRADUAL_ON,GRADUAL_OFF fingersensor/led/command {"color":"$EVTPART0","effect":"$EVTPART1","speed":150, "count":0},
RED:ALWAYS_ON,ALWAYS_OFF,BREATHING,FLASHING,GRADUAL_ON,GRADUAL_OFF fingersensor/led/command {"color":"$EVTPART0","effect":"$EVTPART1","speed":150, "count":0},
PURPLE:ALWAYS_ON,ALWAYS_OFF,BREATHING,FLASHING,GRADUAL_ON,GRADUAL_OFF fingersensor/led/command {"color":"$EVTPART0","effect":"$EVTPART1","speed":150, "count":0}, WHITE:ALWAYS_ON,ALWAYS_OFF,BREATHING,FLASHING,GRADUAL_ON,GRADUAL_OFF fingersensor/led/command {"color":"$EVTPART0","effect":"$EVTPART1","speed":150, "count":0},
CYAN:ALWAYS_ON,ALWAYS_OFF,BREATHING,FLASHING,GRADUAL_ON,GRADUAL_OFF fingersensor/led/command {"color":"$EVTPART0","effect":"$EVTPART1","speed":150, "count":0},
YELLOW:ALWAYS_ON,ALWAYS_OFF,BREATHING,FLASHING,GRADUAL_ON,GRADUAL_OFF fingersensor/led/command {"color":"$EVTPART0","effect":"$EVTPART1","speed":150, "count":0},
purple_breath fingersensor/led/command {"color":"purple","effect":"breathing","speed":90, "count":0},
light_master:noArg fingersensor/led/command {"color":"BLUE","effect":"BREATHING","speed":165, "count":0},
light_master_off:noArg fingersensor/led/command {"color":"BLUE","effect":"GRADUAL_OFF","speed":165, "count":0},
ready4finger:noArg fingersensor/led/command {"color":"PURPLE","effect":"BREATHING","speed":165, "count":0},
ready4finger_off:noArg fingersensor/led/command {"color":"PURPLE","effect":"ALWAYS_OFF","speed":165, "count":0},
custom fingersensor/led/command {"color":"$EVTPART1","effect":"$EVTPART2","speed":$EVTPART3, "count":$EVTPART4},
off:noArg fingersensor/led/command {"color":"RED","effect":"ALWAYS_OFF","speed":20,"count":0},
cancel:noArg fingersensor/cancel_enroll
enroll fingersensor/enroll $EVTPART1
delete fingersensor/delete $EVTPART1
  userReadings ID1 {"ANDRE"},
ID2 {"PETER"}

Meines erachtens scheint nur das zu funktionieren was zum Sensor gesendet wird aber eben nichts
in die Gegenrichtung.

Also entweder ich bin mal wieder derjenige der ein Montagsmodell erwischt hat oder
ich stelle mich an irgendeiner Stelle noch etwas brasselig an. :-)

Hier ein Link zum Pinout des D1 Mini.

https://cdn.shopify.com/s/files/1/1509/1638/files/D1_Mini_Pinout_Diagram.pdf?5603303439559815202 (https://cdn.shopify.com/s/files/1/1509/1638/files/D1_Mini_Pinout_Diagram.pdf?5603303439559815202)

Angeschlossen habe ich so:

Sensor gelb - TX  = GPIO 1
Sensor grün - RX  = GPIO 3
Sensor blau - D8  = GPIO 15
Sensor rot - 3V3 
Sensor sw - GND

nach einem set FINGERPRINT enroll sehe ich auch auf der Weboberfläche des ESP ein "Place a finger on the reader"
aber mehr passiert dann nicht.
Es erscheint in den Readings auch keine "finger_id" und auch kein Reading "msg" wie auf deiner Git-Seite in den
Bildern zu sehen ist.

Vielleicht hast Du ja noch eine Idee und kannst mich an die richtige Stelle schubsen.

Danke vorab.

Gruß André


Titel: Aw: ESP-12f und Fingerprint
Beitrag von: Papa Romeo am 28 Mai 2023, 23:41:23
Zitat von: Jamspoon am 28 Mai 2023, 19:49:40Angeschlossen habe ich so:

Sensor gelb - TX  = GPIO 1
Sensor grün - RX  = GPIO 3
Sensor blau - D8  = GPIO 15
Sensor rot - 3V3 
Sensor sw - GND

Du verbindest TX mit GPIO1(Tx) und RX mit GPIO3(Rx).
Die Verbindung sollte aber über Kreuz sein.

Kann sein, dass du mit dem Mini Probleme bekommst, wenn du für den GPIO1 und 3 keine anderen GPIO´s wählst, da diese
auch noch am USB-Seriell-Wandler hängen.

LG
Papa Romeo
Titel: Aw: ESP-12f und Fingerprint
Beitrag von: psycho160 am 29 Mai 2023, 01:37:15
Zitat von: Papa Romeo am 28 Mai 2023, 23:41:23Du verbindest TX mit GPIO1(Tx) und RX mit GPIO3(Rx).
Die Verbindung sollte aber über Kreuz sein.

Kann sein, dass du mit dem Mini Probleme bekommst, wenn du für den GPIO1 und 3 keine anderen GPIO´s wählst, da diese
auch noch am USB-Seriell-Wandler hängen.

LG
Papa Romeo

Genau so ist es, RX vom Sensor sollte an TX vom D1 und TX vom Sensor an RX vom D1.
Und was mir noch aufgefallen ist, mein Sensor benötigt 5V statt 3,3V aber da gibt es anscheinend unterschiedliche Modelle...
 

Ich habe diesen:

https://www.amazon.de/dp/B0BFPK6QBK?psc=1&ref=ppx_yo2ov_dt_b_product_details (https://www.amazon.de/dp/B0BFPK6QBK?psc=1&ref=ppx_yo2ov_dt_b_product_details)

r503.png
Titel: Aw: ESP-12f und Fingerprint
Beitrag von: Jamspoon am 29 Mai 2023, 10:58:38
... wieder danke für die Infos Ihr beiden :-)

das mit dem über Kreuz der RX/TX hatte ich versucht, da funktioniert gar nix mehr am Sensor, sozusagen nicht einmal
das einschalten des LED-Ringes. Habe jetzt auch versucht die GPIO 13 und 15 zu nutzen, aber mit genau dem gleichen
verhalten wie auch auf GPIO 1 und 3.

Bei 5V schaltet der Sensor bei mir ab und reagiert gar nicht mehr.
In weiser Voraussicht :-) hatte ich mir den Sensor (+ESP32) schon vorgestern bestellt, da hatte nämlich ein Philipp ne Bewertung
abgegeben das dieser mit einem ESP32 per MQTT an FHEM angebunden ist und auch noch per Türklingel verwendet werden kann ;-)

Leider hatte ich den erst vorgestern gefunden.
Was mich bei meinem Fingerabdrucksensor verwundert ist, das in allen Foren über den Sensor von gelb/grün bei den Kabeln
gesprochen wird, mein Sensor hat anstelle des grünen Drahtes ein violettes, dieses sollte dann anstelle dessen trotzdem,
wie von Papa Romeo beschrieben, TX sein aber wer weis was mit dem Teil dann noch alles nicht hin haut.

Meine bestellten ESP32 sind diese:

https://www.amazon.de/dp/B074RGW2VQ?psc=1&ref=ppx_yo2ov_dt_b_product_details (https://www.amazon.de/dp/B074RGW2VQ?psc=1&ref=ppx_yo2ov_dt_b_product_details)

Und der Sensor den ich hier liegen habe und wahrscheinlich nicht funktioniert ist der:

https://www.amazon.de/dp/B0BJ1NFJDX?psc=1&ref=ppx_yo2ov_dt_b_product_details (https://www.amazon.de/dp/B0BJ1NFJDX?psc=1&ref=ppx_yo2ov_dt_b_product_details)

Auf den Fotos sind zwar die Kabelfarben wie sie sein sollten aber leider ist dem aber nicht so.

Ich werde das mit den neu bestellten Teilen dann erst einmal zusammenbasteln und dann schätze ich
wird das ganze mit der erstellten .yaml von psycho160 prima funktionieren.

@psycho160 - nutzt Du für den Sensor für die 5V den PIN am ESP32 oder direkt vom Netzteil?

... und wieder einmal vielen Dank vorab und
wünsche einen entspannten und sonnigen Pfingstmontag.

Gruß André


Titel: Aw: ESP-12f und Fingerprint
Beitrag von: psycho160 am 30 Mai 2023, 06:23:53
Zitat von: Jamspoon am 29 Mai 2023, 10:58:38@psycho160 - nutzt Du für den Sensor für die 5V den PIN am ESP32 oder direkt vom Netzteil?

Ja genau so ist es, versorge nur meinen ESP32 mit Strom, Reader ist direkt auf den Pin´s


Zitat von: Jamspoon am 29 Mai 2023, 10:58:38Auf den Fotos sind zwar die Kabelfarben wie sie sein sollten aber leider ist dem aber nicht so.

Sieh dir mein Foto vom vorherigen Post an, da steht bei der Reader-Beschreibung sogar dabei, dass die Farben unterschiedlich sein können, darauf darf man sich nicht verlassen..


Du könntest dann deinen "alten" Reader nochmal am ESP32 versuchen, dann wissen wir wenigstens, dass es am D1 gelegen ist.



Zitat von: Jamspoon am 29 Mai 2023, 10:58:38In weiser Voraussicht :-) hatte ich mir den Sensor (+ESP32) schon vorgestern bestellt, da hatte nämlich ein Philipp ne Bewertung
abgegeben das dieser mit einem ESP32 per MQTT an FHEM angebunden ist und auch noch per Türklingel verwendet werden kann ;-)

Haha danke, wenigstens hat sich mein Kommentar ausgezahlt :-P

Lg Philipp
Titel: Aw: ESP-12f und Fingerprint
Beitrag von: Jamspoon am 31 Mai 2023, 21:48:49
Hi Philipp,

ja, also, was soll ich sagen, an den Kabeln des Sensors hat es definitiv nicht gelegen.  :)

Ich habe den "alten" Sensor jetzt mit dem ESP32 zusammen gesteckt und man mag es nicht glauben,
das Teil funktioniert doch.  :o

Heißt das jetzt das Deine .yaml noch nicht so ganz mit dem ESP8622 kompatibel ist?

Zum Sensor und FHEM hätte ich da noch zwei Fragen.
Ist es normal das der Sensor ca. 2-3/Sekunde das Reading debug mit der Meldung "No finger" füttert?
Lässt sich das deaktivieren, reduzieren bzw. wie ich es mir vorstelle, nur bei erkannter Bewegung
vor der Haustür aktivieren, "ready4finger_off" bzw. "off" schaffen bei mir da keine Abhilfe?
Der TOUCH lässt sich bei mir über die beiden Funktionen auch nicht deaktivieren.

Danke vorab für Deine Hilfe.

LG André
Titel: Aw: ESP-12f und Fingerprint
Beitrag von: psycho160 am 01 Juni 2023, 08:24:54
Zitat von: Jamspoon am 31 Mai 2023, 21:48:49Ich habe den "alten" Sensor jetzt mit dem ESP32 zusammen gesteckt und man mag es nicht glauben,
das Teil funktioniert doch.  :o

Sehr Gut!

Zitat von: Jamspoon am 31 Mai 2023, 21:48:49Heißt das jetzt das Deine .yaml noch nicht so ganz mit dem ESP8622 kompatibel ist?

Glaube ich nicht, denn das .yaml File ist nur ein Konfigurationsfile für die ESP Home Firmware. Glaube das es eher am D1 liegt wie @Papa Romeo gemeint hat.


Zitat von: Jamspoon am 31 Mai 2023, 21:48:49Ist es normal das der Sensor ca. 2-3/Sekunde das Reading debug mit der Meldung "No finger" füttert?

Ja das ist normal, debug gibt hier sehr viele Nachrichten aus und ist sehr gesprächig... Das kann man aber einfach mit z.B. event-on-change-reading abfangen und damit es mir das Log nich vollschreibt habe ich noch das Log auf die von mir gewünschten Events eingeschränkt.

Definition sieht so aus:

./log/MQTT2_T_W_fingerprint-%Y-%m.log MQTT2_T_W_fingerprint:(color|confidence|finger_id|led_state|touch|status|msg|door).*
Die ganze Logik habe ich dann in einem Notify das auf folgenden "msg" Text triggert. Hab da dann um die 70 Zeilen Code was mir meine Wünsche abbildet, hier nur mal der Anfang: (kann gern per PM alles schicken)

MQTT2_T_W_fingerprint:msg:.* {
if("$EVENT" =~ m/Authorized finger \d{1,3},.*/){
...
...
}


Zitat von: Jamspoon am 31 Mai 2023, 21:48:49Der TOUCH lässt sich bei mir über die beiden Funktionen auch nicht deaktivieren.

Den Touch kann man mit diesem Pin auch NICHT deaktivieren, man kann damit nur "abfragen" ob gerade jemand den Sensor berührt oder nicht. Das Reading "touch" ist normal immer auf "OFF", wenn den Reader jemand berührt (egal ob der Finger gelesen wird oder nicht) geht das Reading auf "ON".

Ich hab das in Kombination mit einem Türkontakt -> Wenn meine Wohnungstüre offen ist und "touch" erkannt wird -> werden alle Lichter ausgeschaltet.
Du kannst "touch" aber auch abfragen um es z.B. als Türglocke zu verwenden.

Titel: Aw: ESP-12f und Fingerprint
Beitrag von: Jamspoon am 01 Juni 2023, 11:27:55
gut, dann bin ich wieder etwas schlauer was den Sensor betrifft :-)

wenn ich deine Log Definition bei mir so eintrage funktioniert nur der erste Eintrag (color)

bei mir reagiert der nur auf alle wenn so eingetragen:

./log/FINGERSENS_TUER-%Y-%m.log FINGERSENS_TUER:color.*|FINGERSENS_TUER:letzteanmeldung.*|FINGERSENS_TUER:confidence.*|FINGERSENS_TUER:door.*|FINGERSENS_TUER:finger_id.*|FINGERSENS_TUER:led_state.*|FINGERSENS_TUER:msg.*|FINGERSENS_TUER:status.*|FINGERSENS_TUER:touch.*
Das notify im kompletten kannst Du mir gern per PM zukommen lassen, würde mich freuen.

das Reading "touch" steht bei mir immer auf "ON" (blaues Kabel vom Sensor an GPIO5)
oder muss das weiße Kabel auf GPIO5 angeklemmt werden?

Das mit der Wohnungstüre ist natürlich eine schicke Idee das als eine Art "Abmeldung" von zu Hause einzubauen.
Als Türglocke wäre auch eine Option, aber das ist bei mir über einen Doorpi geregelt, das ganze mit eingebauter Kamera
und Touchscreen, PIN-Eingabe etc. am Tor vom Grundstück.

Ich wünsche dann einen entspannten Arbeitstag.

Gruß André
 
Titel: Aw: ESP-12f und Fingerprint
Beitrag von: psycho160 am 01 Juni 2023, 11:55:38
Zitat von: Jamspoon am 01 Juni 2023, 11:27:55das Reading "touch" steht bei mir immer auf "ON" (blaues Kabel vom Sensor an GPIO5)
oder muss das weiße Kabel auf GPIO5 angeklemmt werden?

Wie gesagt, das mit den Farben der Kabel ist ein Glücksspiel, aber normal ist immer irgendwo eine Pinbelegung angegeben. Normal geht das Touch Signal bei Berührung auf high, sollte also nicht dauernd auf ON  stehen. Oder geht es bei dir vielleicht bei Berührung auf "OFF"?

PS: PN mit Code kommt demnächst.

lg
Titel: Aw: ESP-12f und Fingerprint
Beitrag von: Jamspoon am 01 Juni 2023, 12:31:01
habe gerade rausgefunden das blau wohl schon einmal das richtige Kabel sein muss.

Allerdings wird das Reading "touch" nur bei Neustart von FHEM einmalig aktualisiert.
Auch wenn ich es zusätzlich noch unter event-on-update-reading mit reinpacke ändert sich daran nichts.

Ich bin mal gespannt wie sich das dann verhält wenn der andere Sensor angekommen ist.