NEWS
ESPHome mit Fingerprint R503, MQTT cmnd senden???
-
Hallo zusammen,
ich bastel gerade seit ein paar Tagen mit dem Sensor Grow r503 rum.
https://de.aliexpress.com/i/33053783539.htmlDen hatte ich soweit am laufen mit Tasmota, aber da ist die Adafruit Library veraltet. Es fehlen ein paar Farben usw.. Ich hatte es mal angepasst mit VSC und neu drübergeflasht. Aber der Sensor reagiert zu träge.
Dann hatte ich mal das Projekt von frickelzeug getestet.
https://github.com/frickelzeugs/FingerprintDoorbell
eigentlich recht cool, aber der Sensor schickt auch mal ein "nicht erkannt" zwischendurch beim Auflegen. Auch ein wenig blöd, weil ich damit eigentlich die Klingel betätigen wollte. Halt ein Button für alles.So, dann mal ESPHome getestet. Das Dashboard hatte ich mal in einem Container installiert, mein eigenlticher Plan war, dass ich alle Daten per MQTT an den iobroker schicke, damit ich auch darüber z.B. ein neues anlernen starten kann.
Der Adapter selber kann wohl nur lesen, ok, ist auch nicht weiter schlimm, aber ich müsste auch mal was schicken können.Tja, mit YAML tu ich mich echt schwer, daher der Post hier. Gibt es eine Möglichkeit die Config so umzuschreiben, dass ich die Daten irgendwie per MQTT an den iobroker bekomme und auch zurück?
Anbei mal meine config, irgendwo im Netz gefunden.
esphome: name: fingerprint friendly_name: Fingerprint esp32: board: esp32dev framework: type: arduino # Enable logging logger: # Enable Home Assistant API #api: # encryption: # key: "Mq3Q7u+xX8pRYBkQs0TTU8b0RD7SQEEd4SDVr3WQNrI=" ota: password: "326492c953635ab2bb62d47982575794" wifi: ssid: !secret wifi_ssid password: !secret wifi_password # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "Fingerprint Fallback Hotspot" password: "ihxyQ14HN2SV" captive_portal: # Example configuration entry web_server: port: 80 auth: username: admin password: test1234 uart: tx_pin: GPIO17 # Or GPIO17 for ESP32 rx_pin: GPIO16 # Or GPIO16 for ESP32 baud_rate: 57600 fingerprint_grow: sensing_pin: GPIO05 # Or GPIO05 for ESP32 on_finger_scan_matched: #- switch.turn_on: trigger_relay - fingerprint_grow.aura_led_control: state: BREATHING speed: 200 color: GREEN count: 1 - text_sensor.template.publish: id: fingerprint_state state: "Authorized finger" on_finger_scan_unmatched: - fingerprint_grow.aura_led_control: state: FLASHING speed: 25 color: RED count: 2 - text_sensor.template.publish: id: fingerprint_state state: "Unauthorized finger" on_enrollment_scan: - fingerprint_grow.aura_led_control: state: FLASHING speed: 25 color: BLUE count: 2 - fingerprint_grow.aura_led_control: state: ALWAYS_ON speed: 0 color: PURPLE count: 0 - text_sensor.template.publish: id: fingerprint_state state: "Finger scanned" on_enrollment_done: - fingerprint_grow.aura_led_control: state: BREATHING speed: 100 color: BLUE count: 2 - text_sensor.template.publish: id: fingerprint_state state: "Enrolled fingerprint" on_enrollment_failed: - fingerprint_grow.aura_led_control: state: FLASHING speed: 25 color: RED count: 4 - text_sensor.template.publish: id: fingerprint_state state: "Failed to enroll fingerprint" text_sensor: - platform: template id: fingerprint_state name: "Garage Fingerprint State" sensor: - platform: fingerprint_grow fingerprint_count: name: "Garage Fingerprint Count" id: fingerprint_count last_finger_id: name: "Garage Fingerprint Last Finger ID" last_confidence: name: "Garage Fingerprint Last Confidence" status: name: "Garage Fingerprint Status" capacity: name: "Garage Fingerprint Capacity" security_level: name: "Garage Fingerprint Security Level" api: password: !secret api_password services: - service: enroll variables: finger_id: int num_scans: int then: - fingerprint_grow.enroll: finger_id: !lambda 'return finger_id;' num_scans: !lambda 'return num_scans;' - service: enroll_next # Idea by Ralf Klüber (thanks!) variables: num_scans: int then: - fingerprint_grow.enroll: finger_id: !lambda 'return id(fingerprint_count).state;' num_scans: !lambda 'return num_scans;' - service: cancel_enroll then: - fingerprint_grow.cancel_enroll: - service: delete variables: finger_id: int then: - fingerprint_grow.delete: finger_id: !lambda 'return finger_id;' - service: delete_all then: - fingerprint_grow.delete_all:
-
@ple ich bin auch am suchen wie ich es in iobroker hinbekomme hast du was erreicht kannst du mir ein tip geben wie ich r503 im iobroker zu laufen bekomme???
-
@exitus
Moin, esphome hatte ich ausprobiert, hatte mir diesen Code umschreiben lassen auf MQTT von Chat GPT.
https://esphome.io/components/fingerprint_grow.html
Aber da kommt ab und zu ein wenig Müll rüber.
Bin dann wieder zurück zu einem Fork von Frickelzeugs. Da kannst die Farben und MQTT Port einstellen.
Ich müsste den Code noch ein wenig umschreiben, dass man auch Finger anlernen kann per MQTT, aber soweit bin ich noch nicht.
https://github.com/TheMaskedDeveloper/FingerprintDoorbell
Das funktioniert ganz gut in den ersten Tests. Einzig blöde ist, dass meine Tochter (4Jahre) wohl zu kleine Finger hat, da klappt das anlernen nicht mit den Zeigefinger.Nächste Woche wollte ich mal die ersten Tests an der Gartentür machen. Falls das nicht klappen sollten mit dem ESP, dann hab ich noch ein paar von den Dinger hier, ist zwar oldschool aber das wäre erst mal egal.
https://de.aliexpress.com/item/1005002872564570.html?spm=a2g0o.order_list.order_list_main.23.21ef5c5fmO7RP6&gatewayAdapt=glo2deuKannst ja mal berichten wie weit du gekommen bist.
Gruß
-
@ple die von Aliexpress habe ich seit Jahren im Einsatz , habe die mit dem mehreren relais dran sind.
Die Relais sind bei mir esp an verschiedenen gpios verbunden und kann an einem Fingerprint die Haustür und Garage öffnen klappt so weit gut.
Ist nur nicht komfortabel wegen anlernen und löschen der einzelnen Finger id s sonst klappt es gut , ich bekomme auch die schaltbefehle über dies gpios über tasmota in Iobroker.
Soweit habe ich FingerprintDorbell am laufen an einem esp 32 ,anlernen klappt gut nur das wieder erkennen nicht, hast du dafür eine Lösung?? -
@ple hallo wo kann mann die farben ändern ??
auf weböberfläche finde ich nichts meinst du mein kompelieren im Script???
kannst du mir dein firmware geben wo alles schon eigestellt ist.
bei mir leuchtet es nicht rot wenn kein finger erkannt wird sondern immer lila -
Die Farben kann man bei diesem Fork ändern. Auch den IDLE Mode, das wollte ich auch haben, damit der Sensor weiß durchgehend leuchtet.
Hier mal der Link.
https://github.com/TheMaskedDeveloper/FingerprintDoorbellIch Code im Abschnitt fürs anlernen hab ich die Schleife von 5 auf 6 geändert. Die aktuellen Sensoren können wohl 6 Scans verarbeiten, das erhöht die Trefferquote.
https://github.com/TheMaskedDeveloper/FingerprintDoorbell/blob/master/src/FingerprintManager.cpp
Zeile 254Mehr habe ich noch nicht getestet, mir fehlt die gerade ein wenig die Zeit um den mal an der Gartentür anzuklemmen. Muss mir dafür noch ne Gehäuse drucken für die ersten Tests.
-
@ple kannst du mir evtl dein firmware bin datei geben ??
-
@exitus
würd ich ja gerne, aber das geht anscheinend nicht so einfach wie bei tasmota
Eigentlich kannst es aber auch selber, nach Methode 2 vorgehen, aber nicht direkt das Projekt von Frickelzeug, sondern ein Fork, der es überarbeitet hat.
https://github.com/TheMaskedDeveloper/FingerprintDoorbell -
@ple habe ich aber bei compelieren kommt immer gelbe Schrift . Upload geht auch aber irgendwie habe ich das Gefühl das es nicht klappt , es bootet mit alten Einstellungen
-
@exitus
du musst 2 mal ne upload machen, einmal unter generall und dann unter platform, wo das Filesystem übertragen wird.
ein erase flash kann auch nicht schaden. Sonst mal im Browser den cache löschen, nicht das da noch was hängt. -
Hat es von euch jemand am laufen?
Funktioniert eigentlich Perfekt bis auf den LED Leuchtring sobald ein Finger erkannt wurde behält er die Farbe was eingestellt ist!
Hat jemand eine Idee wie man das ändern kann?
Was mir noch aufgefallen ist ich bekomme alle 2sec eine Meldung: No Match Found (Code 2)
Ist das absichtlich so gemacht?
Danke im Voraus!