šŸš˜ Garage Fingerprint Sensor

Hold onā€¦ add the device in the integrations tab ?
I havenā€™t done anything special other than upload that code to the wemos.

I just checked your post again and it doesnā€™t mention anything on the integrations tab ?
What device exactly should I add on the integrations tab ? We are probably onto something here but I am still lost on what to add where it seems :frowning:

**** EDIT ****
OH MY GOD :slight_smile: I resetted the wemos and it suddenly appeared in the integrations tab as a discovered device ! Once I added it, the services became availableā€¦

Thank you @parrel for your suggestion, that fixed the entire issue ! Now I can continue playing with this new toy :wink:
Br, Tom

2 Likes

I see I forgot that in the OP :open_mouth:
Iā€™ll add it now.

But glad you got it working now! Have fun :slight_smile:

Btw that goes for all esphome nodes you deploy, you must add each one. If one doesnā€™t show you can always hit the add button ā†’ choose esphome and enter the new nodes ip address.

2 Likes

I am having a wired problem, i donā€™t know the specific cause.
but, i have successfully learned some fingerprints and they are being recognised, but after a while they disappeared, maybe after uploading a new ota version the fingerprints get deleted?

i am using esp8266 12e.

can i save the fingerprint data permanently?

Thatā€™s strange. I havenā€™t encountered this problem. It shouldnā€™t be caused by OTA updating the ESP, because the fingerprints are stored on the sensor itself.

Could you share your esphome yaml?

There were mere than a few fake devices that had random problems, not losing fingerprints though. The finger prints are stored on the actual reader and not the esp. The OTA should have no effect.

yes, this is my configuration.

esphome:
  name: fingerprint-sensor
  platform: ESP8266
  board: nodemcuv2

wifi:
  manual_ip:
    static_ip: 192.168.1.166
    gateway: 192.168.1.1
    subnet: 255.255.255.0
  networks:
  - ssid: XXXXXXXXX
    password: XXXXXXXXXXXXXX
captive_portal:

logger:
api:
  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: 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:
ota:
uart:
  tx_pin: D0
  rx_pin: D1
  baud_rate: 57600

fingerprint_grow:
  sensing_pin: D2
  on_finger_scan_matched:
    - text_sensor.template.publish:
        id: fingerprint_state
        state: "Authorized"
    - fingerprint_grow.aura_led_control:
        state: BREATHING
        speed: 200
        color: BLUE
        count: 2        
    - delay: 10s
    - text_sensor.template.publish:
        id: fingerprint_state
        state: "Scan your finger"
  on_finger_scan_unmatched:
    - text_sensor.template.publish:
        id: fingerprint_state
        state: "Unauthorized"
    - fingerprint_grow.aura_led_control:
        state: FLASHING
        speed: 25
        color: RED
        count: 3          
    - delay: 10s
    - text_sensor.template.publish:
        id: fingerprint_state
        state: "Scan your 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"
    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"

You could try removing this service if for some reason it runs when the esp updates.

1 Like

10x, I will try, I will update soon.

Hi All,

I have a question where i hope somebody could give an awnser to.

I have a NodeMCU and a R503 Sensor (not the metal kind) like shown in this video https://youtu.be/Y87V0O1yMCk.

Untill now i have no luck connecting it. When i use the obove wiring diagram it doesnā€™t do anything. When i use the wiring diagram from the video it draws 1 amp and gets crazy hot.

I use the following ESPHOme Config:

esphome:
  name: fingerprint-sensor
  platform: ESP8266
  board: nodemcuv2

# Enable logging
logger:

ota:
  password: "**************************"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Garage-Fingerprint"
    password: "**************"

uart:
  tx_pin: D0
  rx_pin: D1
  baud_rate: 57600

fingerprint_grow:
  sensing_pin: D2
  on_finger_scan_matched:
    - fingerprint_grow.aura_led_control:
        state: BREATHING
        speed: 200
        color: BLUE
        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"
    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:
  
  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: 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:

the ESPHome Logging says:


INFO Reading configuration /config/esphome/fingerprint.yaml...
INFO Starting log output from fingerprint-sensor.local using esphome API
INFO Successfully connected to fingerprint-sensor.local
[18:05:27][I][app:102]: ESPHome version 2021.12.3 compiled on Jan 12 2022, 17:55:01
[18:05:27][C][wifi:488]: WiFi:
[18:05:27][C][wifi:350]:   Local MAC: A4:CF:12:F5:56:50
[18:05:27][C][wifi:351]:   SSID: [redacted]
[18:05:27][C][wifi:352]:   IP Address: 192.168.176.87
[18:05:27][C][wifi:354]:   BSSID: [redacted]
[18:05:27][C][wifi:355]:   Hostname: 'fingerprint-sensor'
[18:05:27][C][wifi:357]:   Signal strength: -52 dB ā–‚ā–„ā–†ā–ˆ
[18:05:27][C][wifi:361]:   Channel: 12
[18:05:27][C][wifi:362]:   Subnet: 255.255.252.0
[18:05:27][C][wifi:363]:   Gateway: 192.168.178.1
[18:05:27][C][wifi:364]:   DNS1: 192.168.178.193
[18:05:27][C][wifi:365]:   DNS2: 0.0.0.0
[18:05:27][C][logger:233]: Logger:
[18:05:27][C][logger:234]:   Level: DEBUG
[18:05:27][C][logger:235]:   Log Baud Rate: 115200
[18:05:27][C][logger:236]:   Hardware UART: UART0
[18:05:27][C][uart.arduino_esp8266:100]: UART Bus:
[18:05:27][C][uart.arduino_esp8266:101]:   TX Pin: GPIO16
[18:05:27][C][uart.arduino_esp8266:102]:   RX Pin: GPIO5
[18:05:27][C][uart.arduino_esp8266:104]:   RX Buffer Size: 256
[18:05:27][C][uart.arduino_esp8266:106]:   Baud Rate: 57600 baud
[18:05:27][C][uart.arduino_esp8266:107]:   Data Bits: 8
[18:05:27][C][uart.arduino_esp8266:108]:   Parity: NONE
[18:05:27][C][uart.arduino_esp8266:109]:   Stop bits: 1
[18:05:27][C][uart.arduino_esp8266:113]:   Using software serial
[18:05:27][C][template.text_sensor:021]: Template Sensor 'Garage Fingerprint State'
[18:05:27][C][fingerprint_grow:424]: GROW_FINGERPRINT_READER:
[18:05:27][C][fingerprint_grow:425]:   Update Interval: 0.5s
[18:05:27][C][fingerprint_grow:426]:   Fingerprint Count 'Garage Fingerprint Count'
[18:05:27][C][fingerprint_grow:426]:     State Class: ''
[18:05:27][C][fingerprint_grow:426]:     Unit of Measurement: ''
[18:05:27][C][fingerprint_grow:426]:     Accuracy Decimals: 0
[18:05:27][C][fingerprint_grow:426]:     Icon: 'mdi:fingerprint'
[18:05:27][C][fingerprint_grow:427]:   Status 'Garage Fingerprint Status'
[18:05:27][C][fingerprint_grow:427]:     State Class: ''
[18:05:27][C][fingerprint_grow:427]:     Unit of Measurement: ''
[18:05:27][C][fingerprint_grow:427]:     Accuracy Decimals: 0
[18:05:27][C][fingerprint_grow:428]:   Capacity 'Garage Fingerprint Capacity'
[18:05:27][C][fingerprint_grow:428]:     State Class: ''
[18:05:27][C][fingerprint_grow:428]:     Unit of Measurement: ''
[18:05:27][C][fingerprint_grow:428]:     Accuracy Decimals: 0
[18:05:27][C][fingerprint_grow:428]:     Icon: 'mdi:database'
[18:05:27][C][fingerprint_grow:429]:   Security Level 'Garage Fingerprint Security Level'
[18:05:27][C][fingerprint_grow:429]:     State Class: ''
[18:05:27][C][fingerprint_grow:429]:     Unit of Measurement: ''
[18:05:27][C][fingerprint_grow:429]:     Accuracy Decimals: 0
[18:05:27][C][fingerprint_grow:429]:     Icon: 'mdi:security'
[18:05:27][C][fingerprint_grow:430]:   Last Finger ID 'Garage Fingerprint Last Finger ID'
[18:05:27][C][fingerprint_grow:430]:     State Class: ''
[18:05:27][C][fingerprint_grow:430]:     Unit of Measurement: ''
[18:05:27][C][fingerprint_grow:430]:     Accuracy Decimals: 0
[18:05:27][C][fingerprint_grow:430]:     Icon: 'mdi:account'
[18:05:27][C][fingerprint_grow:431]:   Last Confidence 'Garage Fingerprint Last Confidence'
[18:05:27][C][fingerprint_grow:431]:     State Class: ''
[18:05:27][C][fingerprint_grow:431]:     Unit of Measurement: ''
[18:05:27][C][fingerprint_grow:431]:     Accuracy Decimals: 0
[18:05:27][C][fingerprint_grow:431]:     Icon: 'mdi:account-check'
[18:05:27][C][ota:082]: Over-The-Air Updates:
[18:05:27][C][ota:083]:   Address: fingerprint-sensor.local:8266
[18:05:27][C][ota:086]:   Using Password.
[18:05:27][C][api:134]: API Server:
[18:05:27][C][api:135]:   Address: fingerprint-sensor.local:6053
[18:05:27][C][api:139]:   Using noise encryption: NO
[18:05:27][C][mdns:084]: mDNS:
[18:05:27][C][mdns:085]:   Hostname: fingerprint-sensor

Did anybody have similair issues with this version of the r503. Or did i fry it with one of the wiring diagrams being wrong.

Kind Regards,

Laurens.

Try to use the wiring diagram supplied with the sensor when you bought it (if there is one).

Unfortunatly they didnā€™t provide one. Also after asking the seller they canā€™t provide a datasheet or anything.

Oh :frowning:
I donā€™t know then. You could try to buy a new one, because chances are that itā€™s fried indeed.

The sensor in that video is not a R503. It is something from dfrobot. And dfrobot do have docs, which are pointed to in the info accompanying the video.

If you bought something described as an r503 from a seller who canā€™t supply documentation then heaven knows what you have.

Hi, i have buy 2 r503 and 2 di mini pro clone, i have a simil configuration but i use d6 d5 and d7, the r503 work but Is impossible register the impront, and the Reader send id10 and 0 accurancy all time, Is possibile the problem Is the pin?

I donā€™t really know. Try to use the same pins as me to see if that works.

If you canā€™t register imprints then itā€™s probably on the TX/RX setup.

It s been a while since I setup mine (Wemos mini and grow 502) but I did have issues with this as well at the time, not not all pins are equally suitable; I recall UART issues as well. Ultimately I landed at RX D1, TX D5 and sensing D2.

Does anyone else have this issue? I am hoping someone else ā€œfixedā€ this issue.

The update_interval (default behavior for ESPhome) for the text sensor keeps sending the same status to HA every 60 seconds. This forces me to scan a bad finger to set the sensor.garage_fingerprint_state sensor to something other than ā€œAuthorized fingerā€ so that HA sees a state change when an authorized finger is scanned.

Pretty sure that is dealt with if you read the whole thread.