Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- esphome:
- name: fingerprint
- friendly_name: Fingerprint
- on_boot:
- priority: -800
- then:
- - script.execute: breathing_light
- esp32:
- board: esp32dev
- framework:
- type: arduino
- substitutions:
- device_name: Fingerprint
- web_server:
- port: 80
- wifi:
- ssid: "Your wi-fi"
- password: "Your password"
- # Enable fallback hotspot (captive portal) in case wifi connection fails
- ap:
- ssid: "Fingerprint Fallback Hotspot"
- password: "Your password"
- captive_portal:
- # Enable logging
- logger:
- ota:
- password: "esphome"
- uart:
- rx_pin: GPIO13
- tx_pin: GPIO15
- baud_rate: 57600
- fingerprint_grow:
- sensing_pin:
- number: GPIO14
- allow_other_uses: true
- on_finger_scan_matched: # палец распознан
- - text_sensor.template.publish:
- id: fingerprint_state
- state: !lambda 'return "Finger " + to_string(finger_id) + ", confidence " + to_string(confidence);'
- - if:
- condition:
- lambda: 'return confidence > 50;'
- then:
- - homeassistant.tag_scanned: !lambda |-
- switch (finger_id) {
- case 0:
- return "Person 1";
- case 1:
- return "Person 2";
- default:
- return "person_unknown";
- }
- - lock.unlock: Gimdow #открываем замок
- - binary_sensor.template.publish: # включаем сеснор о правильном распозновании
- id: success_scanned
- state: ON
- - fingerprint_grow.aura_led_control:
- state: FLASHING
- speed: 25
- color: GREEN
- count: 5
- - delay: 2s
- - script.execute: breathing_light
- on_finger_scan_unmatched: # палец не распознан
- - text_sensor.template.publish:
- id: fingerprint_state
- state: "Unauthorized finger"
- - fingerprint_grow.aura_led_control:
- state: FLASHING
- speed: 25
- color: RED
- count: 5
- - delay: 1s
- - script.execute: breathing_light
- on_enrollment_scan: # запись пальца в память
- - text_sensor.template.publish:
- id: fingerprint_state
- state: "Finger scanned"
- - fingerprint_grow.aura_led_control:
- state: FLASHING
- speed: 25
- color: Green
- count: 3
- - fingerprint_grow.aura_led_control:
- state: ALWAYS_ON
- speed: 0
- color: PURPLE
- count: 0
- on_enrollment_done: # запись пальца прошла успешно
- - text_sensor.template.publish:
- id: fingerprint_state
- state: "Enrolled fingerprint"
- - fingerprint_grow.aura_led_control:
- state: FLASHING
- speed: 15
- color: GREEN
- count: 3
- - delay: 2s
- - script.execute: breathing_light
- on_enrollment_failed: # неудачная запись пальца
- - text_sensor.template.publish:
- id: fingerprint_state
- state: "Failed to enroll fingerprint"
- - fingerprint_grow.aura_led_control:
- state: FLASHING
- speed: 25
- color: RED
- count: 4
- - delay: 2s
- - script.execute: breathing_light
- # Optional template text sensor for visual feedback
- text_sensor:
- - platform: template
- id: fingerprint_state
- name: "Fingerprint State"
- switch: # выход на управление брелком замка
- - platform: gpio
- pin: GPIO4
- inverted: true
- id: gate
- name: "Switch gate"
- binary_sensor:
- - platform: fingerprint_grow
- id: fingerprint_enrolling
- name: "Fingerprint Enrolling"
- on_state:
- then:
- - fingerprint_grow.aura_led_control:
- state: ALWAYS_ON
- speed: 0
- color: PURPLE
- count: 0
- - platform: gpio # сенсор прикосновения к сканеру
- filters:
- - delayed_on: 10ms
- - invert:
- pin:
- number: GPIO14
- allow_other_uses: true
- id: Finger_touch
- name: "Finger touch"
- icon: mdi:gesture-tap
- on_press:
- then:
- - if: # включаем звонок
- condition:
- - binary_sensor.is_off: fingerprint_enrolling
- then:
- - fingerprint_grow.aura_led_control:
- state: ALWAYS_ON
- speed: 0
- color: YELLOW
- count: 0
- on_release:
- then:
- - if: # включаем звонок
- condition:
- - binary_sensor.is_off: success_scanned
- - binary_sensor.is_off: fingerprint_enrolling
- then:
- - binary_sensor.template.publish:
- id: zvonok
- state: ON
- - script.execute: breathing_light
- - platform: homeassistant # использование датчика двери из Home Assistant
- name: "Door sensor"
- id: Door_sensor
- entity_id: binary_sensor.datchiki_ohrana_dver
- on_state:
- then:
- - if:
- condition:
- - binary_sensor.is_on: Door_sensor
- then:
- - fingerprint_grow.aura_led_control:
- state: BREATHING
- speed: 85
- color: GREEN
- count: 0
- else:
- - script.execute: breathing_light_zamok
- # - platform: gpio # вход бинарного датчика открытия двери
- # id: Door_sensor
- # name: "Door sensor"
- # pin:
- # number: 33
- # mode: INPUT_PULLUP
- - platform: gpio # вход бинарного датчика открытия замка
- id: Lock_sensor
- name: "Lock sensor"
- filters:
- - delayed_on: 200ms
- pin:
- number: 32
- mode: INPUT_PULLUP
- on_state:
- then:
- - script.execute: breathing_light_zamok
- - platform: template # сенсор удачного распознавания пальца
- name: success_scanned
- id: success_scanned
- icon: mdi:line-scan
- on_state:
- then:
- - delay: 5 s
- - binary_sensor.template.publish:
- id: success_scanned
- state: OFF
- - platform: template # звонок
- name: zvonok
- id: zvonok
- icon: mdi:bell-ring
- on_state:
- then:
- - delay: 5 s
- - binary_sensor.template.publish:
- id: zvonok
- state: OFF
- - platform: status
- name: "${device_name}_status"
- time:
- - platform: homeassistant
- id: homeassistant_time
- sensor:
- - platform: fingerprint_grow
- fingerprint_count:
- name: "Fingerprint Count"
- last_finger_id:
- name: "Fingerprint Last Finger ID"
- last_confidence:
- name: "Fingerprint Last Confidence"
- status:
- name: "Fingerprint Status"
- capacity:
- name: "Fingerprint Capacity"
- security_level:
- name: "Fingerprint Security Level"
- - platform: wifi_signal
- name: "${device_name}_rssi"
- update_interval: 5min
- - platform: uptime
- id: uptime_sec
- name: "${device_name}_uptime"
- update_interval: 5min
- api:
- encryption:
- key: "Your key"
- 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:
- lock: # кнопки открытия/закрытия Gimdow с датчиком замка двери из ХА
- - platform: template
- name: Gimdow
- id: Gimdow
- optimistic: true
- assumed_state: true
- lock_action:
- - switch.turn_on: gate
- - delay: 100ms
- - switch.turn_off: gate
- unlock_action:
- - switch.turn_on: gate
- - delay: 100ms
- - switch.turn_off: gate
- - delay: 100ms
- - switch.turn_on: gate
- - delay: 100ms
- - switch.turn_off: gate
- lambda: |-
- if (id(Lock_sensor).state) {
- return LOCK_STATE_UNLOCKED;
- } else {
- return LOCK_STATE_LOCKED;
- }
- script: #режим светодиода в зависимости от замка двери для возвращения значения после операций
- - id: breathing_light
- then:
- if:
- condition:
- - binary_sensor.is_off: Lock_sensor
- then:
- - fingerprint_grow.aura_led_control:
- state: BREATHING
- speed: 255
- color: BLUE
- count: 0
- else:
- - fingerprint_grow.aura_led_control:
- state: BREATHING
- speed: 85
- color: BLUE
- count: 0
- - id: breathing_light_zamok #режим светодиода в зависимости от замка двери только для самого замка
- then:
- if:
- condition:
- - binary_sensor.is_off: Lock_sensor
- then:
- - fingerprint_grow.aura_led_control:
- state: FLASHING
- speed: 35
- color: GREEN
- count: 1
- - fingerprint_grow.aura_led_control:
- state: BREATHING
- speed: 255
- color: BLUE
- count: 0
- else:
- - fingerprint_grow.aura_led_control:
- state: FLASHING
- speed: 35
- color: GREEN
- count: 1
- - fingerprint_grow.aura_led_control:
- state: BREATHING
- speed: 85
- color: BLUE
- count: 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement