Hi, i like your card, but i have the same problems.
Can You share your solution ? scripts ?
Thanks
Is there a way to change the āsecurity_levelā ? Iām having a problem where the sensor rejects a lot of fingerprints it should approve so Iām thinking of lowering the safetylevel to get less False Rejection Rate (FRR).
I canāt find how the yaml should look like to set the security_level. Any ideas?
See this:
Hello
Do you think it is possible to add an additional RFID reader with this code?
itās adonno tag reader ?
like this video ?
https://www.youtube.com/watch?v=lx3SpkEEaVg
ANd for the fun an oled display.
it was for my doorbell project
wifi:
# networks:
# - ssid: 'REPLACEME' # Enter your WiFi SSID here. Example: `ssid: 'your_network_name'`
# password: 'REPLACEME' # Enter your wifi password here. Example: `password: 'abcde123456'`
ap:
ssid: ${name}
# Enable the captive portal for inital WiFi setup
captive_portal:
dashboard_import:
package_import_url: github://adonno/tagreader/tagreader.yaml
improv_serial:
substitutions:
name: tagreader
friendly_name: TagReader
esphome:
name: $name
platform: ESP8266
board: d1_mini
# Automatically add the mac address to the name
# so you can use a single firmware for all devices
name_add_mac_suffix: true
# This will allow for (future) project identification,
# configuration and updates.
project:
name: adonno.tag_reader
version: "1.4"
# If buzzer is enabled, notify on api connection success
on_boot:
priority: -10
then:
- wait_until:
api.connected:
- logger.log: API is connected!
- rtttl.play: "success:d=24,o=5,b=100:c,g,b"
- light.turn_on:
id: activity_led
brightness: 100%
red: 0%
green: 0%
blue: 100%
flash_length: 500ms
- switch.turn_on: buzzer_enabled
- switch.turn_on: led_enabled
# Define switches to control LED and buzzer from HA
switch:
- platform: template
name: "${friendly_name} Buzzer Enabled"
id: buzzer_enabled
icon: mdi:volume-high
optimistic: true
restore_mode: RESTORE_DEFAULT_ON
entity_category: config
- platform: template
name: "${friendly_name} LED enabled"
id: led_enabled
icon: mdi:alarm-light-outline
optimistic: true
restore_mode: RESTORE_DEFAULT_ON
entity_category: config
# Define buttons for writing tags via HA
button:
- platform: template
name: Write Tag Random
id: write_tag_random
# Optional variables:
icon: "mdi:pencil-box"
on_press:
then:
- light.turn_on:
id: activity_led
brightness: 100%
red: 100%
green: 0%
blue: 100%
- lambda: |-
static const char alphanum[] = "0123456789abcdef";
std::string uri = "https://www.home-assistant.io/tag/";
for (int i = 0; i < 8; i++)
uri += alphanum[random_uint32() % (sizeof(alphanum) - 1)];
uri += "-";
for (int j = 0; j < 3; j++) {
for (int i = 0; i < 4; i++)
uri += alphanum[random_uint32() % (sizeof(alphanum) - 1)];
uri += "-";
}
for (int i = 0; i < 12; i++)
uri += alphanum[random_uint32() % (sizeof(alphanum) - 1)];
auto message = new nfc::NdefMessage();
message->add_uri_record(uri);
ESP_LOGD("tagreader", "Writing payload: %s", uri.c_str());
id(pn532_board).write_mode(message);
- rtttl.play: "write:d=24,o=5,b=100:b"
- wait_until:
not:
pn532.is_writing:
- light.turn_off:
id: activity_led
- rtttl.play: "write:d=24,o=5,b=100:b,b"
- platform: template
name: Clean Tag
id: clean_tag
icon: "mdi:nfc-variant-off"
on_press:
then:
- light.turn_on:
id: activity_led
brightness: 100%
red: 100%
green: 64.7%
blue: 0%
- lambda: 'id(pn532_board).clean_mode();'
- rtttl.play: "write:d=24,o=5,b=100:b"
- wait_until:
not:
pn532.is_writing:
- light.turn_off:
id: activity_led
- rtttl.play: "write:d=24,o=5,b=100:b,b"
- platform: template
name: Cancel writing
id: cancel_writing
icon: "mdi:pencil-off"
on_press:
then:
- lambda: 'id(pn532_board).read_mode();'
- light.turn_off:
id: activity_led
- rtttl.play: "write:d=24,o=5,b=100:b,b"
- platform: restart
name: "${friendly_name} Restart"
entity_category: config
# Enable logging
logger:
# level: VERY_VERBOSE
# level: VERBOSE
# Enable Home Assistant API
api:
services:
- service: rfidreader_tag_ok
then:
- rtttl.play: "beep:d=16,o=5,b=100:b"
- service: rfidreader_tag_ko
then:
- rtttl.play: "beep:d=8,o=5,b=100:b"
- service: play_rtttl
variables:
song_str: string
then:
- rtttl.play: !lambda 'return song_str;'
- service: write_tag_id
variables:
tag_id: string
then:
- light.turn_on:
id: activity_led
brightness: 100%
red: 100%
green: 0%
blue: 0%
- lambda: |-
auto message = new nfc::NdefMessage();
std::string uri = "https://www.home-assistant.io/tag/";
uri += tag_id;
message->add_uri_record(uri);
id(pn532_board).write_mode(message);
- rtttl.play: "write:d=24,o=5,b=100:b"
- wait_until:
not:
pn532.is_writing:
- light.turn_off:
id: activity_led
- rtttl.play: "write:d=24,o=5,b=100:b,b"
- service: write_music_tag
variables:
music_url: string
music_info: string
then:
- light.turn_on:
id: activity_led
brightness: 100%
red: 100%
green: 0%
blue: 0%
- lambda: |-
auto message = new nfc::NdefMessage();
std::string uri = "";
std::string text = "";
uri += music_url;
text += music_info;
if ( music_url != "" ) {
message->add_uri_record(uri);
}
if ( music_info != "" ) {
message->add_text_record(text);
}
id(pn532_board).write_mode(message);
- rtttl.play: "write:d=24,o=5,b=100:b"
- wait_until:
not:
pn532.is_writing:
- light.turn_off:
id: activity_led
- rtttl.play: "write:d=24,o=5,b=100:b,b"
# Enable OTA upgrade
ota:
- platform: esphome
i2c:
scan: False
frequency: 400kHz
globals:
- id: source
type: std::string
- id: url
type: std::string
- id: info
type: std::string
pn532_i2c:
id: pn532_board
on_tag:
then:
- if:
condition:
switch.is_on: led_enabled
then:
- light.turn_on:
id: activity_led
brightness: 100%
red: 0%
green: 100%
blue: 0%
flash_length: 500ms
- delay: 0.15s #to fix slow component
- lambda: |-
id(source)="";
id(url)="";
id(info)="";
if (tag.has_ndef_message()) {
auto message = tag.get_ndef_message();
auto records = message->get_records();
for (auto &record : records) {
std::string payload = record->get_payload();
std::string type = record->get_type();
size_t hass = payload.find("https://www.home-assistant.io/tag/");
size_t applemusic = payload.find("https://music.apple.com");
size_t spotify = payload.find("https://open.spotify.com");
size_t sonos = payload.find("sonos-2://");
size_t mass_deezer = payload.find("deezer://");
size_t mass_filesystem_local = payload.find("filesystem_local://");
size_t mass_filesystem_smb = payload.find("filesystem_smb://");
size_t mass_plex = payload.find("plex://");
size_t mass_qobuz = payload.find("qobuz://");
size_t mass_radiobrowser = payload.find("radiobrowser://");
size_t mass_soundcloud = payload.find("soundcloud://");
size_t mass_spotify = payload.find("spotify://");
size_t mass_tidal = payload.find("tidal://");
size_t mass_tunein = payload.find("tunein://");
size_t mass_ytmusic = payload.find("ytmusic://");
if (type == "U" and hass != std::string::npos ) {
ESP_LOGD("tagreader", "Found Home Assistant tag NDEF");
id(source)="hass";
id(url)=payload;
id(info)=payload.substr(hass + 34);
}
else if (type == "U" and applemusic != std::string::npos ) {
ESP_LOGD("tagreader", "Found Apple Music tag NDEF");
id(source)="amusic";
id(url)=payload;
}
else if (type == "U" and spotify != std::string::npos ) {
ESP_LOGD("tagreader", "Found Spotify tag NDEF");
id(source)="spotify";
id(url)=payload;
}
else if (type == "U" and sonos != std::string::npos ) {
ESP_LOGD("tagreader", "Found Sonos app tag NDEF");
id(source)="sonos";
id(url)=payload;
}
else if (type == "U" && (mass_deezer != std::string::npos ||
mass_filesystem_local != std::string::npos ||
mass_filesystem_smb != std::string::npos ||
mass_plex != std::string::npos ||
mass_qobuz != std::string::npos ||
mass_radiobrowser != std::string::npos ||
mass_soundcloud != std::string::npos ||
mass_spotify != std::string::npos ||
mass_tidal != std::string::npos ||
mass_tunein != std::string::npos ||
mass_ytmusic != std::string::npos)) {
ESP_LOGD("tagreader", "Found Music Assistant tag NDEF");
id(source) = "mass";
id(url) = payload;
}
else if (type == "T" ) {
ESP_LOGD("tagreader", "Found music info tag NDEF");
id(info)=payload;
}
else if ( id(source)=="" ) {
id(source)="uid";
}
}
}
else {
id(source)="uid";
}
- if:
condition:
lambda: 'return ( id(source)=="uid" );'
then:
- homeassistant.tag_scanned: !lambda |-
ESP_LOGD("tagreader", "No HA NDEF, using UID");
return x;
else:
- if:
condition:
lambda: 'return ( id(source)=="hass" );'
then:
- homeassistant.tag_scanned: !lambda 'return id(info);'
else:
- homeassistant.event:
event: esphome.music_tag
data:
reader: !lambda |-
return App.get_name().c_str();
source: !lambda |-
return id(source);
url: !lambda |-
return id(url);
info: !lambda |-
return id(info);
- if:
condition:
switch.is_on: buzzer_enabled
then:
- rtttl.play: "success:d=24,o=5,b=100:c,g,b"
on_tag_removed:
then:
- homeassistant.event:
event: esphome.tag_removed
# Define the buzzer output
output:
- platform: esp8266_pwm
pin: D7
id: buzzer
binary_sensor:
- platform: status
name: "${friendly_name} Status"
entity_category: diagnostic
text_sensor:
- platform: version
hide_timestamp: true
name: "${friendly_name} ESPHome Version"
entity_category: diagnostic
- platform: wifi_info
ip_address:
name: "${friendly_name} IP Address"
icon: mdi:wifi
entity_category: diagnostic
ssid:
name: "${friendly_name} Connected SSID"
icon: mdi:wifi-strength-2
entity_category: diagnostic
# Define buzzer as output for RTTTL
rtttl:
output: buzzer
# Configure LED
light:
- platform: neopixelbus
variant: WS2812
pin: D8
num_leds: 1
flash_transition_length: 500ms
type: GRB
id: activity_led
name: "${friendly_name} LED"
restore_mode: ALWAYS_OFF
Hi,
I got the R502 running and it is working.
Now I have two questions:
- What does the status mean? Fingerprint Status is always 4 in my case.
- I often get āFinger Misplacedā. Is there a way to adjust some settings within the sensor to improve this?
Hallo together,
i also tried my luck to use the R503 sensor with an ESP-board.
Actually i have the problem beeing not able to enroll fingerprints.
The sensor always gives feedback āFinger Misplacedā.
Additionally there comes a message āComponent fingerprint_grow took a long time for an operationā
I guess the communication in all directions are ok, because the logs in the HA, the logs in the ESP-logger and the bahaviour of the sensor-LEDs are matching, that means the āFinger presentā message leads to a ā1 slow blue flashingā and the āFinger misplacedā message leads to ā2 fast red flashingsā.
Following is used:
- R503 fingerprint sensor
- ESP 8266ex board
- ESPHome Device Compiler 2024.11.1
- HA-Core 2024.11.3
- HA-Supervisor 2024.11.4
here the ESP-log as screenshot
ā¦ESP-log as text
INFO ESPHome 2024.11.1
INFO Reading configuration /config/esphome/fingerscan.yaml...
INFO Starting log output from 192.168.xxx.xxx using esphome API
INFO Successfully connected to fingerscan @ 192.168.xxx.xxx in 0.005s
INFO Successful handshake with fingerscan @ 192.168.xxx.xxx in 2.630s
[17:43:11][I][app:100]: ESPHome version 2024.11.1 compiled on Nov 30 2024, 17:31:58
[17:43:11][C][wifi:600]: WiFi:
[17:43:11][C][wifi:428]: Local MAC: xx:xx:xx:xx:xx:xx
[17:43:11][C][wifi:433]: SSID: [redacted]
[17:43:11][C][wifi:436]: IP Address: 192.168.xxx.xxx
[17:43:11][C][wifi:439]: BSSID: [redacted]
[17:43:11][C][wifi:441]: Hostname: 'fingerscan'
[17:43:11][C][wifi:443]: Signal strength: -39 dB āāāā
[17:43:11][C][wifi:447]: Channel: 11
[17:43:11][C][wifi:448]: Subnet: 255.255.xxx.xxx
[17:43:11][C][wifi:449]: Gateway: 192.168.xxx.xxx
[17:43:11][C][wifi:450]: DNS1: 192.168.xxx.xxx
[17:43:11][C][wifi:451]: DNS2: 0.0.0.0
[17:43:11][C][logger:185]: Logger:
[17:43:11][C][logger:186]: Level: DEBUG
[17:43:11][C][logger:188]: Log Baud Rate: 115200
[17:43:11][C][logger:189]: Hardware UART: UART0
[17:43:11][C][uart.arduino_esp8266:118]: UART Bus:
[17:43:11][C][uart.arduino_esp8266:119]: TX Pin: GPIO16
[17:43:11][C][uart.arduino_esp8266:120]: RX Pin: GPIO5
[17:43:11][C][uart.arduino_esp8266:122]: RX Buffer Size: 256
[17:43:11][C][uart.arduino_esp8266:124]: Baud Rate: 57600 baud
[17:43:11][C][uart.arduino_esp8266:125]: Data Bits: 8
[17:43:11][C][uart.arduino_esp8266:126]: Parity: NONE
[17:43:11][C][uart.arduino_esp8266:127]: Stop bits: 1
[17:43:11][C][uart.arduino_esp8266:131]: Using software serial
[17:43:11][C][template.text_sensor:020]: Template Sensor 'Sensor Status'
[17:43:11][C][template.text_sensor:020]: Template Sensor 'Kommando Status'
[17:43:11][C][fingerprint_grow:537]: GROW_FINGERPRINT_READER:
[17:43:11][C][fingerprint_grow:538]: System Identifier Code: 0x0000
[17:43:11][C][fingerprint_grow:539]: Touch Sensing Pin: GPIO4
[17:43:11][C][fingerprint_grow:541]: Sensor Power Pin: None
[17:43:11][C][fingerprint_grow:546]: Idle Period to Sleep: Never
[17:43:11][C][fingerprint_grow:548]: Update Interval: 0.5s
[17:43:11][C][fingerprint_grow:550]: Fingerprint Count 'Anzahl Finger'
[17:43:11][C][fingerprint_grow:550]: State Class: ''
[17:43:11][C][fingerprint_grow:550]: Unit of Measurement: ''
[17:43:11][C][fingerprint_grow:550]: Accuracy Decimals: 0
[17:43:11][C][fingerprint_grow:550]: Icon: 'mdi:fingerprint'
[17:43:11][C][fingerprint_grow:551]: Current Value: 0
[17:43:11][C][fingerprint_grow:554]: Status 'Interner Status'
[17:43:11][C][fingerprint_grow:554]: State Class: ''
[17:43:11][C][fingerprint_grow:554]: Unit of Measurement: ''
[17:43:11][C][fingerprint_grow:554]: Accuracy Decimals: 0
[17:43:11][C][fingerprint_grow:555]: Current Value: 20
[17:43:11][C][fingerprint_grow:558]: Capacity 'SpeicherkapazitƤt'
[17:43:11][C][fingerprint_grow:558]: State Class: ''
[17:43:11][C][fingerprint_grow:558]: Unit of Measurement: ''
[17:43:11][C][fingerprint_grow:558]: Accuracy Decimals: 0
[17:43:11][C][fingerprint_grow:558]: Icon: 'mdi:database'
[17:43:11][C][fingerprint_grow:559]: Current Value: 200
[17:43:11][C][fingerprint_grow:562]: Security Level 'Sicherheits Level'
[17:43:11][C][fingerprint_grow:562]: State Class: ''
[17:43:11][C][fingerprint_grow:562]: Unit of Measurement: ''
[17:43:11][C][fingerprint_grow:562]: Accuracy Decimals: 0
[17:43:11][C][fingerprint_grow:562]: Icon: 'mdi:security'
[17:43:11][C][fingerprint_grow:563]: Current Value: 3
[17:43:11][C][fingerprint_grow:566]: Last Finger ID 'Letzter Finger'
[17:43:11][C][fingerprint_grow:566]: State Class: ''
[17:43:11][C][fingerprint_grow:566]: Unit of Measurement: ''
[17:43:11][C][fingerprint_grow:566]: Accuracy Decimals: 0
[17:43:11][C][fingerprint_grow:566]: Icon: 'mdi:account'
[17:43:11][C][fingerprint_grow:567]: Current Value: 4294967295
[17:43:11][C][fingerprint_grow:570]: Last Confidence 'Erkennungsrate'
[17:43:11][C][fingerprint_grow:570]: State Class: ''
[17:43:11][C][fingerprint_grow:570]: Unit of Measurement: ''
[17:43:11][C][fingerprint_grow:570]: Accuracy Decimals: 0
[17:43:11][C][fingerprint_grow:570]: Icon: 'mdi:account-check'
[17:43:11][C][fingerprint_grow:571]: Current Value: 4294967295
[17:43:11][C][captive_portal:089]: Captive Portal:
[17:43:11][C][mdns:116]: mDNS:
[17:43:11][C][mdns:117]: Hostname: fingerscan
[17:43:11][C][esphome.ota:073]: Over-The-Air updates:
[17:43:11][C][esphome.ota:074]: Address: fingerscan.local:8266
[17:43:11][C][esphome.ota:075]: Version: 2
[17:43:11][C][esphome.ota:078]: Password configured
[17:43:11][C][safe_mode:018]: Safe Mode:
[17:43:11][C][safe_mode:019]: Boot considered successful after 60 seconds
[17:43:11][C][safe_mode:021]: Invoke after 10 boot attempts
[17:43:11][C][safe_mode:022]: Remain in safe mode for 300 seconds
[17:43:11][C][api:140]: API Server:
[17:43:11][C][api:141]: Address: fingerscan.local:6053
[17:43:11][C][api:143]: Using noise encryption: YES
[17:43:29][D][fingerprint_grow:348]: Setting Aura LED
[17:43:29][D][fingerprint_grow:352]: Aura LED set
[17:43:29][D][text_sensor:064]: 'Sensor Status': Sending state 'Finger present'
[17:43:29][D][text_sensor:064]: 'Sensor Status': Sending state 'Bereit'
[17:43:29][D][fingerprint_grow:156]: Getting image 1
[17:43:29][D][fingerprint_grow:168]: Finger Misplaced
[17:43:30][D][fingerprint_grow:348]: Setting Aura LED
[17:43:30][D][fingerprint_grow:352]: Aura LED set
[17:43:30][D][text_sensor:064]: 'Sensor Status': Sending state 'Finger falsch platziert'
[17:43:30][D][text_sensor:064]: 'Sensor Status': Sending state 'Bereit'
[17:43:30][W][component:237]: Component fingerprint_grow took a long time for an operation (1028 ms).
[17:43:30][W][component:238]: Components should block for at most 30 ms.
[17:43:30][I][fingerprint_grow:097]: Starting enrollment in slot 2
[17:43:30][D][text_sensor:064]: 'Kommando Status': Sending state 'Kommando anlernen Finger x'
This is my fingerprint.yaml from the ESP
esphome:
name: fingerscan
friendly_name: Fingerscan
esp8266:
board: esp01_1m
# Enable logging
logger:
ota:
- platform: esphome
password: "password"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Fingerscan Fallback Hotspot"
password: "password"
captive_portal:
# serial protocol definitions
uart:
tx_pin: GPIO16 # GPIO16 on ESP8266EX (Or GPIO17 for ESP32)
rx_pin: GPIO5 # GPIO5 on ESP8266EX (Or GPIO16 for ESP32)
baud_rate: 57600
fingerprint_grow:
sensing_pin: GPIO4 # GPIO4 on ESP8266EX (Or GPIO05 for ESP32)
on_finger_scan_matched:
- fingerprint_grow.aura_led_control:
state: BREATHING
speed: 200
color: BLUE
count: 1
- text_sensor.template.publish:
id: sensor_state
state: "Erkannt"
- delay: 100ms
- text_sensor.template.publish:
id: sensor_state
state: "Bereit"
on_finger_scan_unmatched:
- fingerprint_grow.aura_led_control:
state: FLASHING
speed: 25
color: RED
count: 2
- text_sensor.template.publish:
id: sensor_state
state: "Nicht erkannt"
- delay: 100ms
- text_sensor.template.publish:
id: sensor_state
state: "Bereit"
on_enrollment_scan:
- fingerprint_grow.aura_led_control:
state: BREATHING
speed: 100
color: BLUE
count: 2
- text_sensor.template.publish:
id: sensor_state
state: "Speichern aktiv"
- delay: 100ms
- text_sensor.template.publish:
id: sensor_state
state: "Bereit"
on_enrollment_done:
- fingerprint_grow.aura_led_control:
state: FLASHING
speed: 25
color: BLUE
count: 2
- text_sensor.template.publish:
id: sensor_state
state: "Gespeichert"
- delay: 100ms
- text_sensor.template.publish:
id: sensor_state
state: "Bereit"
on_enrollment_failed:
- fingerprint_grow.aura_led_control:
state: FLASHING
speed: 25
color: PURPLE
count: 2
- text_sensor.template.publish:
id: sensor_state
state: "Speichern Fehler"
- delay: 100ms
- text_sensor.template.publish:
id: sensor_state
state: "Bereit"
on_finger_scan_start:
- fingerprint_grow.aura_led_control:
state: FLASHING
speed: 100
color: BLUE
count: 1
- text_sensor.template.publish:
id: sensor_state
state: "Finger present"
# - delay: 100ms
- text_sensor.template.publish:
id: sensor_state
state: "Bereit"
on_finger_scan_misplaced:
- fingerprint_grow.aura_led_control:
state: FLASHING
speed: 25
color: RED
count: 2
- text_sensor.template.publish:
id: sensor_state
state: "Finger falsch platziert"
# - delay: 100ms
- text_sensor.template.publish:
id: sensor_state
state: "Bereit"
on_finger_scan_invalid:
- fingerprint_grow.aura_led_control:
state: FLASHING
speed: 25
color: RED
count: 2
- text_sensor.template.publish:
id: sensor_state
state: "Finger ungültig"
- delay: 100ms
- text_sensor.template.publish:
id: sensor_state
state: "Bereit"
text_sensor:
- platform: template
id: sensor_state
name: "Sensor Status"
- platform: template
id: comand_state
name: "Kommando Status"
sensor:
- platform: fingerprint_grow
fingerprint_count:
name: "Anzahl Finger"
id: finger_count
last_finger_id:
name: "Letzter Finger"
last_confidence:
name: "Erkennungsrate"
status:
name: "Interner Status"
capacity:
name: "SpeicherkapazitƤt"
security_level:
name: "Sicherheits Level"
# Enable Home Assistant API
api:
encryption:
key: "password"
actions:
- action: enroll
variables:
finger_id: int
num_scans: int
then:
- fingerprint_grow.enroll:
finger_id: !lambda 'return finger_id;'
num_scans: !lambda 'return num_scans;'
- text_sensor.template.publish:
id: comand_state
state: "Kommando anlernen Finger x"
- action: enroll_next
variables:
num_scans: int
then:
- fingerprint_grow.enroll:
finger_id: !lambda 'return id(finger_count).state;'
num_scans: !lambda 'return num_scans;'
- text_sensor.template.publish:
id: comand_state
state: "Kommando anlernen nƤchster Finger"
- action: cancel_enroll
then:
- fingerprint_grow.cancel_enroll:
- text_sensor.template.publish:
id: comand_state
state: "Kommando anlernen abbrechen"
- action: delete
variables:
finger_id: int
then:
- fingerprint_grow.delete:
finger_id: !lambda 'return finger_id;'
- text_sensor.template.publish:
id: comand_state
state: "Kommando lƶschen Finger x"
- action: delete_all
then:
- fingerprint_grow.delete_all:
- text_sensor.template.publish:
id: comand_state
state: "Kommando lƶschen alle Finger"
Here shows the HA-automation test program
alias: FingerprintTest
description: ""
triggers:
- trigger: state
entity_id:
- sensor.fingerscan_sensor_status
to: Finger present
conditions: []
actions:
- choose:
- conditions:
- condition: state
entity_id: input_boolean.fingerscan_anlernmodus
state: "on"
sequence:
- action: esphome.fingerscan_enroll
data:
finger_id: 2
num_scans: 2
mode: single
Hopefully somebody can help
Thanks
the last time I had this, I thought that my sensor was dead but in fact it was a connection problem, check your pins well and redo clean connectors
both voltage are very important, 3.3v and 5 volt, and must be exactly not5 on 3.3
Hallo @orrionis ,
thanks for your advice, this was exactly the point.
I connected Pin 1 (red) to 3V3 and Pin 6 (white) to 5V.
After rewiring that both are connected to 3V3 it was working.
Is it possible to turn the ring on and of with a service or sth. like that? I can only turn it on but it turns off only, when I do a manual fingerprint action.
Should be possible. Here is an example to turn it on when motion is detected in a sensor from Home Assistant.
binary_sensor:
- platform: homeassistant
internal: True
id: motion_sensor
entity_id: binary_sensor.motion_sensor
on_press:
then:
- fingerprint_grow.aura_led_control:
state: GRADUAL_ON
speed: 20
color: PURPLE
count: 0
on_release:
then:
- fingerprint_grow.aura_led_control:
state: GRADUAL_OFF
speed: 10
color: PURPLE
count: 0
You will need to take it into account after scanning fingers. E.g.
on_finger_scan_unmatched:
- fingerprint_grow.aura_led_control:
state: FLASHING
speed: 25
color: RED
count: 4
- if:
condition:
binary_sensor.is_on: motion_sensor
then:
- fingerprint_grow.aura_led_control:
state: GRADUAL_ON
speed: 20
color: PURPLE
count: 0
unfortunately it no longer works with an esp32. it worked with an esp8266. do you have any tips as to why this might be?
I donāt know, double check the pins and wires. If it does not work, try other pins on the ESP32
Wow, there is a lot going on in this chat with exciting topics. Iām currently trying to configure two fingerprint sensors in an ESP board. Does anyone have any experience in this area? I have already found something in another chat, but it still needs 1-2 clever adjustments to the code. Maybe someone has a good idea.
Iām sure Iām not the only one with this idea
Hi there,
Really interested in implementing thsi for my Alarmo.
Already bought the fingerprint sensor.
My question is : does it work over wifi or does the ESP needs to be plugged in the HA device ?
ESPHome communicates with Home Assistant over wifi (but LAN is also possible)
Yes, but I do not see any mention of secrets! or Wifi in the code in OP.
Hence my question.
All my ESPHome devices do mention wifi or secrets in their code.
The ESPHome code is only the relevant code for the fingerprint sensor.
I have had my fingerprint sensor and the yaml code from this thread running for a while and it works well.
I have been looking to tidy up my HA project and I noticed that the fingerprint state, last confidence and last fingerprint keep going to unknown after a period of time.
Is there anyway to make them hold their last state until a new scan is performed?
Hello everyone. Can I ask you for the complete YAML code for the R503 fingerprint reader card? Thank you!