šŸš˜ Garage Fingerprint Sensor

Well itā€™s worth a try, if itā€™s the same sensor, the wires are probably in the same order

Thanks for this project!
I did it exactly as described and it works perfectly!

1 Like

@parrel
Thanks for the great project !!!
I wanted to do the same using a R307ā€¦ I ordred it on Ali, but not the R307, a FPM10A which is not usable with ESPHome :frowning: even it uses the same chip (AS608).
ESPHome sees something but it is not possible to send commands or at least record anything when sending the command (enroll for ex).
All sensors are marked as unknown.
So, be sure to order the good GROW sensor and not another copy.
I must add that both the fingerprint sensor and ESP8266 board are OK because I was able to setup the MQTT sensor using Arduino programm.

1 Like

hello,

i want to use a HA automation instead of a relay, but which entity should i use for trigger my automation?

You can use the fingerprint state, but you have to add a delay to the actions and reset it every time.

2 Likes

that worked well, but how much delay must i set?
is one second too little?

I think a second will work, there is hardly a delay with ESPHome. And if you notice that it does not trigger sometimes, increase it a bit. :slight_smile:

2 Likes

thank you, and thank you for your work i installed mine today and it works very well.

1 Like

Iā€™ve had a fingerprint sensor running for the home security for a couple of years now but Iā€™ve been meaning to sort out the UI for it now Iā€™ve just migrated it over to esphome. Has anyone managed to use something like SAVER or a key/value pair system to link ids to names?

I donā€™t want to do that link in yaml but I do want to select a number, type a name in a textbox and press enroll. I should then be able to see a list of ā€œrecorded fingerprintsā€ showing the key/value pair. It would be nice to see a scan history view aswell of the names that scanned.

I will see if I can make something tomorrow

2 Likes

This is pretty simple in node red. You can listen to finger scanned entity send it to a change node. That would change the number to a name then send that to an entity node.

In HA you would need a template sensor that listens to the finger scanned event. I donā€™t know how to make the change from a number to a friendly name in yaml though.

I managed to get it all up and running in HomeAssistant (no need for NodeRed) with the SAVER component today. I can select learn, delete or rename which will popup a textbox and input number to create the new fingerprint. That then associates an ID with a human readable name without creating anything or changing anything myself.

I was able to loop through the SAVER variables to display a list in the UI of saved IDs and names. Just working on a scan history card now - so I can see the name of the finger scanned and not just the ID.

Can post what Iā€™ve done tomorrow if anyone is interested.

2 Likes

Yes please!

In order to create an Map type data structure where you can dynamically assign ids to names without needing to create loads of helpers or hardcode yaml follow the below steps:

  1. Install and configure the SAVER custom-component (via HACS for me)
  2. Create the below two helpers - pop them on your dashboard however you wish.
input_number.fingerprint_learning_id
input_text.fingerprint_learning_name
  1. Configure your ā€œLearnā€ script to save the fingerprint in the reader (Iā€™m using esphome) and save the id/name to SAVER
  - service: esphome.fingerprint_reader_enroll
    data:
      num_scans: 2
      finger_id: "{{states('input_number.fingerprint_learning_id') | int}}"
  - service: saver.set_variable
    data:
      name: "{{states('input_number.fingerprint_learning_id') | int}}"
      value: "{{states('input_text.fingerprint_learning_name')}}"
  1. Configure your ā€œDeleteā€ script to remove the fingerprint in the reader (Iā€™m using esphome) and delete the id/name from SAVER
  - service: saver.delete_variable
    data:
      name: "{{states('input_number.fingerprint_learning_id') | int}}"
  - service: esphome.fingerprint_reader_delete
    data:
      finger_id: "{{states('input_number.fingerprint_learning_id') | int}}"
  1. You can pop this in a markdown card to display your saved fingerprints on the dashboard
  {% set finger_list=state_attr('saver.saver', 'variables') %}

  {% for key, value in finger_list.items() %}
    <h4>{{key}} : {{ value | title}}</h4>
  {% endfor %}

You should then be able to set the input number + name to your choosing and call the learn script to store it. The ā€œnameā€ has no meaning to the fingerprint reader, itā€™s only there for you to put a name to the number. In automations where you want to check if a finger is authorised you can just use the is_matched action reported by your reader. Iā€™m sure you could look up the name with some combo of the above though.

3 Likes

Thanks for sharing thisā€¦really helpfull.

Howā€™d you setup the dashboard layout. Can you post the YAML code please?

Itā€™s just basic mushroom cards within a vertical stack. Nothing fancy, grids for the actions row and top row with a markup panel in the middle with the above yaml.

Anyone else using Grow R503 on ESP32Devkit V1 ?

Have tested 2 pcs brand new Grow R503 on several EPS 32 Devkit V1 but with no luck.
Tried both uart connections and several GPIO pins for the sensing pin.

No light on the R503 and when I try to call some actions I get:

[21:08:53][D][fingerprint_grow:305]: Setting Aura LED
[21:08:54][E][fingerprint_grow:419]: No response received from reader
[21:08:54][D][text_sensor:067]: 'Garage Fingerprint State': Sending state 'Failed to enroll fingerprint'
[21:08:55][I][fingerprint_grow:087]: Finished enrollment

Right now:
RX/TX connected to GPIO 3 & 1
Sensing to GPIO 4
Red power to 3.3V
Black to GND
White to VIN.

Tried with and without password, currently have: (password from manual)

fingerprint_grow:
  sensing_pin: GPIO4
  password: 0x00000000

Any suggestions?

Things that catch my attention:

  • You should connect the RX pin of the ESP to the TX of the sensor, and TX of the ESP to the RX of the sensor
  • When you use GPIO 3 and 1 for RX and TX you should disable ESPHome logging on these pins (I think it gives you a warning as well)
  • The VIN might be 5V while you maybe only want to supply 3v to the white wire
2 Likes

Thank you, 2 seconds ago I spotted the warning about logger and that solved the issue

2 Likes

Hello burg93,

Iā€™m from Germany and Iā€™m still very new to Home Assistant.
I created your two scripts for learning and deleting, but unfortunately I canā€™t get through the Lovelace UI, how to create the teaching with a name in a card and which card I have to select thereā€¦ I installed the mushroom cards via HACKS . Maybe youā€™d be so kind and give me and many others a few more tips, because I couldnā€™t find much on Google on this topic.

Many many thanks

Jan