Skip to content

Instantly share code, notes, and snippets.

@haade-administrator
Last active September 11, 2021 14:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save haade-administrator/1e431d8fe4fa347e01f286349e610891 to your computer and use it in GitHub Desktop.
Save haade-administrator/1e431d8fe4fa347e01f286349e610891 to your computer and use it in GitHub Desktop.
fingerprint grow r503 inclusive esphome home assistant
substitutions:
devicename: grow-r503
friendly_name: Capteur empreintes
device_description: Capteur empreintes grow R503
esphome:
name: $devicename
comment: ${device_description}
platform: ESP8266
board: d1_mini
# Connection réseau wifi
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Activer le point d'accès de secours (portail captif) en cas d'échec de la connexion wifi
ap:
ssid: "${friendly_name} Fallback AP"
password: "!secret fallback_ap_password"
captive_portal:
ota:
password: !secret ota_password
# Activer la journalisation
logger:
# Example entrée configuration wemos D1 Mini
uart:
tx_pin: GPIO16 #D0
rx_pin: GPIO5 #D1
baud_rate: 57600
# status de la led du signal wifi
status_led:
pin: GPIO2
# Déclarer le lecteur d'empreintes digitales Grow
fingerprint_grow:
# sécurisez votre système !ATTENTION à ne jamais perdre le mot de passe
password: 0x00 # Mot de passe existant, peut être omis s'il s'agit de la valeur par défaut 0x00
new_password: 0x72AB96CD # Nouveau mot de passe ensuite mettre à jour le mot de passe existant avec le nouveau.
sensing_pin: GPIO4
on_finger_scan_matched:
- homeassistant.event:
event: esphome.test_node_finger_scan_matched
data:
finger_id: !lambda 'return finger_id;'
confidence: !lambda 'return confidence;'
- fingerprint_grow.aura_led_control:
state: BREATHING
speed: 200
color: BLUE
count: 1
- text_sensor.template.publish:
id: fingerprint_state
state: !lambda 'return "Authorized finger";'
# Pousser un événement tag_scanned basé sur finger_id uniquement si la confiance est supérieure à 50
# Créer une balise avec nom d'utilisateur pour chaque numéro d'identifiaction
- if:
condition:
lambda: 'return confidence > 50;'
then:
- homeassistant.tag_scanned: !lambda |-
switch (finger_id) {
case 0:
return "person_0";
case 1:
return "person_1";
case 2:
return "person_2";
case 3:
return "person_3";
default:
return "person_inconnu";
}
on_finger_scan_unmatched:
- homeassistant.event:
event: esphome.test_node_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:
- homeassistant.event:
event: esphome.test_node_enrollment_scan
data:
finger_id: !lambda 'return finger_id;'
scan_num: !lambda 'return scan_num;'
- 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: !lambda 'return "Enrolling into slot " + to_string(finger_id) + ", scanned " + to_string(scan_num) + " time(s)";'
on_enrollment_done:
- homeassistant.event:
event: esphome.test_node_enrollment_done
data:
finger_id: !lambda 'return finger_id;'
- fingerprint_grow.aura_led_control:
state: BREATHING
speed: 100
color: BLUE
count: 2
- text_sensor.template.publish:
id: fingerprint_state
state: !lambda 'return "Enrolled into slot " + to_string(finger_id);'
on_enrollment_failed:
- homeassistant.event:
event: esphome.test_node_enrollment_failed
data:
finger_id: !lambda 'return finger_id;'
- fingerprint_grow.aura_led_control:
state: FLASHING
speed: 25
color: RED
count: 4
- text_sensor.template.publish:
id: fingerprint_state
state: !lambda 'return "Failed to enroll into slot " + to_string(finger_id);'
# Réessayez l'inscription dans le même emplacement
- delay: 3s
- text_sensor.template.publish:
id: fingerprint_state
state: !lambda 'return "Retrying enrollment into slot " + to_string(finger_id) + " in 3 seconds...";'
- delay: 3s
- fingerprint_grow.enroll: !lambda 'return finger_id;'
# (Optionnel) Modèle de texte du capteur pour un retour visuel
text_sensor:
- platform: template
id: fingerprint_state
name: "${friendly_name} State"
- platform: version
name: "${friendly_name} ESPHome Version"
# (Optionnel) Composant (commutateur GPIO, verrou, etc.) à contrôler dans le déclencheur on_finger_scan_matched
switch:
- platform: gpio
pin: GPIO14
id: gate
# redémarrage du module
- platform: restart
name: "${friendly_name} Restart"
# extinction du module
- platform: shutdown
name: "${friendly_name} Stop"
# (Optionnel) capteur
binary_sensor:
- platform: fingerprint_grow
id: fingerprint_enrolling
name: "${friendly_name} Enrolling"
# Status de connection
- platform: status
name: "${friendly_name} Status"
# Intégration des entités capteur pour Lovelace
sensor:
- platform: fingerprint_grow
fingerprint_count:
name: "${friendly_name} Count"
last_finger_id:
name: "${friendly_name} Last Finger ID"
last_confidence:
name: "${friendly_name} Last Confidence"
status:
name: "${friendly_name} Status"
capacity:
name: "${friendly_name} Capacity"
security_level:
name: "${friendly_name} Security Level"
- platform: wifi_signal
name: "${friendly_name} WiFi Signal"
update_interval: 60s
api:
password: !secret api_password
# Déclaration des services dans Home Assistant
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;'
# Mettre à jour le modèle de capteur de texte pour un retour visuel
- text_sensor.template.publish:
id: fingerprint_state
state: "Place a finger on the reader"
- 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:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment