šŸš˜ Garage Fingerprint Sensor

Is there any way to control the led light (aura)? Via service call?

I would like to use the light for indication of different things (opened gates for instance) and the glowing aura or blinking on command would be usefulā€¦

Thanks and have a nice day!

Yes you can. There are two ways.

Expose the entity that you want to use to change the light to ESPHome and create the automation in ESPHome. E.g. Home Assistant Binary Sensor ā€” ESPHome

Or expose the light controls to Home Assistant by creating a service that calls grow_fingerprint.aura_led_control and just pass the parameters from HA to ESPHome.

1 Like

Thank you @parrel for the guidanceā€¦it works but Iā€™m not sure if itā€™s the best way to do it.
I added this into esphome configuration file for fingerprint scanner - fingerprint.yaml:

api:
  - service: set_aura_led
    variables:
      state: int
      speed: int
      color: int
      count: int
    then:
      - fingerprint_grow.aura_led_control:
          state: !lambda 'return state;'
          speed: !lambda 'return speed;'
          color: !lambda 'return color;'
          count: !lambda 'return count;'

than I added this into my scripts.yaml file:

fingerprint_led_control:
  sequence:
    - service: esphome.finger_set_aura_led
      data:
        state: 1 # Replace with 1 for ON, 0 for OFF (adjust based on your desired logic)
        speed: 200 # Replace with your desired speed value
        color: 5 # Replace with your desired color value (e.g., 5 for purple)
        count: 5 # Replace with the number of times the LED should blink (e.g., 1 for once)

next was switch config in configuration.yaml:

  - platform: template
    switches:
      fingerprint_led_on:
        friendly_name: "Fingerprint LED Aura ON"
        turn_on:
          service: script.fingerprint_led_control
          data:
            state: 1 # 1 for ON
            speed: 200 # Replace with your desired speed value (adjust as needed)
            color: 5 # Replace with your desired color value (e.g., 5 for purple)
            count: 1 # Replace with the number of times the LED should blink (e.g., 1 for once)
        turn_off:
          service: script.fingerprint_led_control
          data:
            state: 0 # 0 for OFF
            speed: 0 # Speed is not used when turning off, so set to 0
            color: 0 # Color is not used when turning off, so set to 0
            count: 0 # Count is not used when turning off, so set to 0

and in automations.yaml:

alias: Control Fingerprint LED Aura ON
description: ""
trigger:
  - platform: state
    entity_id: switch.fingerprint_led_on
action:
  - service: script.fingerprint_led_control
    data: {}

If you just want a switch to turn it on and off, the cleanest way would be to create a template switch in ESPHome and do the logic there :slight_smile:

1 Like

Hi everyone, very interesting topic. Iā€™d like to operate my swing gate using the 503 fingerprint reader discussed here. The control box for the gate has 2 potential-free contacts to swing open 1 or both sides of the gate.

Ideally Iā€™d like to assign different fingers to 1 or 2 halves opening and integrate with home assistant but Iā€™m a bit lost when it comes to the parts. Would this board with 2 relays on board be the smart choice to connect both the gate and the fingerprint reader or are there alternative / smarter options?

Thanks for your information and have a great day!

That would probably work, I would go for this one as it has more orders and is cheaper as well.

https://aliexpress.com/item/1005004466280920.html

You can also buy a contact sensor (reed sensor) to read out if the gate is fully closed.

1 Like

Ok i bought a new esp and now it worksā€¦ the old one was broken. Thank you for your help

1 Like

Good to hear you got it working!

Got my R503 today, got it all wired up (using the same PINs as OP here), I seem to be able to communicate with the reader however I cannot enroll any fingerprints, I always get ā€œScans do not matchā€, even if I use 1 one scan:

|21:47:50|[I]|[fingerprint_grow:066]|Starting enrollment in slot 1|
|21:47:54|[D]|[fingerprint_grow:125]|Getting image 1|
|21:47:55|[D]|[fingerprint_grow:146]|Processing image 1|
|21:47:55|[I]|[fingerprint_grow:150]|Processed image 1|
|21:47:55|[D]|[fingerprint_grow:307]|Setting Aura LED|
|21:47:55|[D]|[fingerprint_grow:311]|Aura LED set|
|21:47:56|[D]|[fingerprint_grow:307]|Setting Aura LED|
|21:47:56|[D]|[fingerprint_grow:311]|Aura LED set|
|21:47:56|[D]|[text_sensor:064]|'Garage Fingerprint State': Sending state 'Enrolling into slot 1, scanned 1 time(s)'|
|21:47:56|[W]|[component:204]|Component fingerprint_grow took a long time for an operation (1.29 s).|
|21:47:56|[W]|[component:205]|Components should block for at most 20-30ms.|
|21:47:56|[I]|[fingerprint_grow:164]|Creating model|
|21:47:56|[E]|[fingerprint_grow:170]|Scans do not match|
|21:47:56|[D]|[fingerprint_grow:307]|Setting Aura LED|
|21:47:56|[D]|[fingerprint_grow:311]|Aura LED set|
|21:47:56|[D]|[fingerprint_grow:311]|Aura LED set|
|21:47:56|[D]|[text_sensor:064]|'Garage Fingerprint State': Sending state 'Failed to enroll into slot 1'|
|21:47:56|[I]|[fingerprint_grow:089]|Finished enrollment|

scanning a finger seems to work but obviously doesnā€™t match

|21:57:25|[D]|[fingerprint_grow:094]|Scan and match|
|21:57:25|[D]|[fingerprint_grow:125]|Getting image 1|
|21:57:25|[D]|[fingerprint_grow:146]|Processing image 1|
|21:57:26|[I]|[fingerprint_grow:150]|Processed image 1|
|21:57:26|[D]|[fingerprint_grow:116]|Fingerprint not matched to any saved slots|
|21:57:26|[D]|[fingerprint_grow:307]|Setting Aura LED|
|21:57:26|[D]|[fingerprint_grow:311]|Aura LED set|
|21:57:26|[D]|[text_sensor:064]|'Garage Fingerprint State': Sending state 'Unauthorized finger'|

I have tried 2 different ESPs and many different fingers but the result is always the same - no match. Any ideas here?

For what itā€™s worth, my Security level is set to 3 (can we change that?) and Status is 4 - is that the same for those of you with a working setup?

Thanks

I have the same status and security. The module seems to return a mismatch error when doing an enroll. I have no idea what that means. Do you have a password on de module?

Never set one but I tried to add the default 0x00 into my config, it didnā€™t make any difference.

So apparently the magic number is 2 scansā€¦ not 1, not threeā€¦ thou shall not count to fourā€¦

With 2 scans it enrolls OKā€¦ weird but Iā€™ll take it

Also in case anyone is wondering - sensor works even 16 meters of Cat5 away from the ESP.

1 Like

Loved the reference :slight_smile:

For me the magic number is 5, but with some specific fingers it needs to be less.
And I can also confirm that about 15 meters of CAT cable from the ESP works.

I am wondering the same about the security level. How can I change this? If I read the documentation, the only thing I can find is this:

  • security_level: The integer representation of the currently configured security level of the reader. Higher security levels reduce the false acceptance rate (FAR) at the expense of increasing the false rejection rate (FRR). Range is 1 (lowest) to 5 (highest).
    • name (Required, string): The name for the sensor.
    • id (Optional, ID): Manually specify the ID used for code generation.
    • All other options from Sensor.

I would prefer level 5, but canā€™t find how to change this.

From what I can tell the option exists, itā€™s described in the adafruit library referenced from the ESPHome doc page, so I suppose someone who actually knows what theyā€™re doing (i.e. definitely not me) would need to implement that in ESPHomeā€¦

/**************************************************************************/
/*!
    @brief   Change security level
    @param   level 8-bit security level
    @returns <code>FINGERPRINT_OK</code> on success
    @returns <code>FINGERPRINT_PACKETRECIEVEERR</code> on communication error
*/
/**************************************************************************/
uint8_t Adafruit_Fingerprint::setSecurityLevel(uint8_t level) {

  return (writeRegister(FINGERPRINT_SECURITY_REG_ADDR, level));
}

@Plawa thanks for the answer!

Other question. My sensor is working really well, but I see this a lot in the logs after fingerprints are scanned and/or added:

[W][component:204]: Component fingerprint_grow took a long time for an operation (1.25 s).
[W][component:205]: Components should block for at most 20-30ms.

[W][component:204]: Component fingerprint_grow took a long time for an operation (0.22 s).
[W][component:205]: Components should block for at most 20-30ms.

[W][component:204]: Component fingerprint_grow took a long time for an operation (0.74 s).
[W][component:205]: Components should block for at most 20-30ms.

Is everyone seeing this, or is there something I can improve?

Guyssā€¦ Guysā€¦ sorry. I dont know what Im doing wrong. I have:
esp8266:
board: esp01_1m
The Fingerprint is this one
Whitch I wired accordingly
61OQC+Jgo6L.AC_SX466
TX (yellow) to RX on the board etcā€¦


I didnt got green but a brown cable and I put it to D1 wich I have to call it GPIO2 as per this.
image

My code is this one:
image
etcā€¦ same as of above

My logs looks great to my knowledge:


But I cant do nothing. No light on the alo. I call services and nothingā€¦ nothingā€¦
This is the top part of the install log

Sensor state


Sensor response on calling enroll via service
image

No ligthā€¦ no nothing.

The yellow error in the logs tells that you are using the same uart for logging as for the sensor. You should probably disable logging on uart. It says how you can achieve that.

Done. No errors from uart
image
And

But still nothing. When I try to enroll I get nothing but this.


Your help is appreciated

Could you try other pins for RX and TX? I had some problems in the past using these pins. I would suggest to try it first before soldering.