Advertisement
TuXaMaT

Fingerprint R503 ESPHome

Jun 29th, 2023 (edited)
648
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
YAML 9.92 KB | None | 0 0
  1. esphome:
  2.   name: fingerprint
  3.   friendly_name: Fingerprint
  4.   on_boot:
  5.     priority: -800
  6.     then:
  7.       - script.execute: breathing_light
  8.  
  9. esp32:
  10.   board: esp32dev
  11.   framework:
  12.     type: arduino
  13.  
  14. substitutions:
  15.   device_name: Fingerprint
  16.  
  17. web_server:
  18.   port: 80
  19.  
  20. wifi:
  21.   ssid: "Your wi-fi"
  22.   password: "Your password"
  23.  
  24.   # Enable fallback hotspot (captive portal) in case wifi connection fails
  25.   ap:
  26.    ssid: "Fingerprint Fallback Hotspot"
  27.    password: "Your password"
  28.  
  29. captive_portal:
  30. # Enable logging
  31. logger:
  32. ota:
  33.   password: "esphome"
  34.  
  35. uart:
  36.   rx_pin: GPIO13
  37.   tx_pin: GPIO15
  38.   baud_rate: 57600
  39.  
  40. fingerprint_grow:
  41.   sensing_pin:
  42.     number: GPIO14
  43.     allow_other_uses: true
  44.   on_finger_scan_matched: # палец распознан
  45.     - text_sensor.template.publish:
  46.        id: fingerprint_state
  47.        state: !lambda 'return "Finger " + to_string(finger_id) + ", confidence " + to_string(confidence);'
  48.     - if:
  49.         condition:
  50.           lambda: 'return confidence > 50;'
  51.         then:
  52.           - homeassistant.tag_scanned: !lambda |-
  53.               switch (finger_id) {
  54.                 case 0:
  55.                  return "Person 1";
  56.                 case 1:
  57.                  return "Person 2";
  58.                 default:
  59.                  return "person_unknown";
  60.               }
  61.     - lock.unlock: Gimdow #открываем замок
  62.     - binary_sensor.template.publish: # включаем сеснор о правильном распозновании
  63.         id: success_scanned
  64.         state: ON
  65.     - fingerprint_grow.aura_led_control:
  66.         state: FLASHING
  67.         speed: 25
  68.         color: GREEN
  69.         count: 5
  70.     - delay: 2s
  71.     - script.execute: breathing_light
  72.   on_finger_scan_unmatched: # палец не распознан
  73.     - text_sensor.template.publish:
  74.         id: fingerprint_state
  75.         state: "Unauthorized finger"
  76.     - fingerprint_grow.aura_led_control:
  77.         state: FLASHING
  78.         speed: 25
  79.         color: RED
  80.         count: 5
  81.     - delay: 1s
  82.     - script.execute: breathing_light
  83.   on_enrollment_scan: # запись пальца в память
  84.     - text_sensor.template.publish:
  85.         id: fingerprint_state
  86.         state: "Finger scanned"
  87.     - fingerprint_grow.aura_led_control:
  88.         state: FLASHING
  89.         speed: 25
  90.         color: Green
  91.         count: 3
  92.     - fingerprint_grow.aura_led_control:
  93.         state: ALWAYS_ON
  94.         speed: 0
  95.         color: PURPLE
  96.         count: 0
  97.   on_enrollment_done: # запись пальца прошла успешно
  98.     - text_sensor.template.publish:
  99.         id: fingerprint_state
  100.         state: "Enrolled fingerprint"
  101.     - fingerprint_grow.aura_led_control:
  102.           state: FLASHING
  103.           speed: 15
  104.           color: GREEN
  105.           count: 3
  106.     - delay: 2s
  107.     - script.execute: breathing_light
  108.   on_enrollment_failed: # неудачная запись пальца
  109.     - text_sensor.template.publish:
  110.         id: fingerprint_state
  111.         state: "Failed to enroll fingerprint"
  112.     - fingerprint_grow.aura_led_control:
  113.         state: FLASHING
  114.         speed: 25
  115.         color: RED
  116.         count: 4
  117.     - delay: 2s
  118.     - script.execute: breathing_light
  119.    
  120.  
  121. # Optional template text sensor for visual feedback
  122. text_sensor:
  123.   - platform: template
  124.     id: fingerprint_state
  125.     name: "Fingerprint State"
  126.  
  127. switch: # выход на управление брелком замка
  128.   - platform: gpio
  129.     pin: GPIO4
  130.     inverted: true
  131.     id: gate
  132.     name: "Switch gate"
  133.  
  134. binary_sensor:
  135.   - platform: fingerprint_grow
  136.     id: fingerprint_enrolling
  137.     name: "Fingerprint Enrolling"
  138.     on_state:
  139.       then:
  140.         - fingerprint_grow.aura_led_control:
  141.             state: ALWAYS_ON
  142.             speed: 0
  143.             color: PURPLE
  144.             count: 0
  145.   - platform: gpio # сенсор прикосновения к сканеру
  146.     filters:
  147.       - delayed_on: 10ms
  148.       - invert:
  149.     pin:
  150.       number: GPIO14
  151.       allow_other_uses: true
  152.     id: Finger_touch
  153.     name: "Finger touch"
  154.     icon: mdi:gesture-tap
  155.     on_press:
  156.       then:
  157.         - if: # включаем звонок
  158.             condition:
  159.               - binary_sensor.is_off: fingerprint_enrolling
  160.             then:
  161.               - fingerprint_grow.aura_led_control:
  162.                   state: ALWAYS_ON
  163.                   speed: 0
  164.                   color: YELLOW
  165.                   count: 0
  166.     on_release:
  167.       then:
  168.         - if: # включаем звонок
  169.             condition:
  170.               - binary_sensor.is_off: success_scanned
  171.               - binary_sensor.is_off: fingerprint_enrolling
  172.             then:
  173.               - binary_sensor.template.publish:
  174.                   id: zvonok
  175.                   state: ON
  176.               - script.execute: breathing_light
  177.   - platform: homeassistant # использование датчика двери из Home Assistant
  178.     name: "Door sensor"
  179.     id: Door_sensor
  180.     entity_id: binary_sensor.datchiki_ohrana_dver
  181.     on_state:
  182.       then:
  183.         - if:
  184.             condition:
  185.               - binary_sensor.is_on: Door_sensor
  186.             then:
  187.               - fingerprint_grow.aura_led_control:
  188.                   state: BREATHING
  189.                   speed: 85
  190.                   color: GREEN
  191.                   count: 0
  192.             else:
  193.               - script.execute: breathing_light_zamok  
  194. #  - platform: gpio # вход бинарного датчика открытия двери
  195. #    id: Door_sensor
  196. #    name: "Door sensor"
  197. #    pin:
  198. #      number: 33
  199. #      mode: INPUT_PULLUP
  200.   - platform: gpio # вход бинарного датчика открытия замка
  201.     id: Lock_sensor
  202.     name: "Lock sensor"
  203.     filters:
  204.       - delayed_on: 200ms
  205.     pin:
  206.       number: 32
  207.       mode: INPUT_PULLUP
  208.     on_state:
  209.       then:
  210.         - script.execute: breathing_light_zamok    
  211.   - platform: template # сенсор удачного распознавания пальца
  212.     name: success_scanned
  213.     id: success_scanned
  214.     icon: mdi:line-scan
  215.     on_state:
  216.       then:
  217.         - delay: 5 s
  218.         - binary_sensor.template.publish:
  219.             id: success_scanned
  220.             state: OFF
  221.   - platform: template # звонок
  222.     name: zvonok
  223.     id: zvonok
  224.     icon: mdi:bell-ring
  225.     on_state:
  226.       then:
  227.         - delay: 5 s
  228.         - binary_sensor.template.publish:
  229.             id: zvonok
  230.             state: OFF
  231.  
  232.   - platform: status
  233.     name: "${device_name}_status"
  234.  
  235.  
  236. time:
  237.   - platform: homeassistant
  238.     id: homeassistant_time
  239.  
  240.  
  241.  
  242. sensor:
  243.   - platform: fingerprint_grow
  244.     fingerprint_count:
  245.       name: "Fingerprint Count"
  246.     last_finger_id:
  247.       name: "Fingerprint Last Finger ID"
  248.     last_confidence:
  249.       name: "Fingerprint Last Confidence"
  250.     status:
  251.       name: "Fingerprint Status"
  252.     capacity:
  253.       name: "Fingerprint Capacity"
  254.     security_level:
  255.       name: "Fingerprint Security Level"
  256.      
  257.   - platform: wifi_signal
  258.     name: "${device_name}_rssi"
  259.     update_interval: 5min
  260.  
  261.   - platform: uptime
  262.     id: uptime_sec
  263.     name: "${device_name}_uptime"
  264.     update_interval: 5min
  265.      
  266. api:
  267.   encryption:
  268.     key: "Your key"
  269.   services:
  270.   - service: enroll
  271.     variables:
  272.       finger_id: int
  273.       num_scans: int
  274.     then:
  275.       - fingerprint_grow.enroll:
  276.           finger_id: !lambda 'return finger_id;'
  277.           num_scans: !lambda 'return num_scans;'
  278.   - service: cancel_enroll
  279.     then:
  280.       - fingerprint_grow.cancel_enroll:
  281.   - service: delete
  282.     variables:
  283.       finger_id: int
  284.     then:
  285.       - fingerprint_grow.delete:
  286.           finger_id: !lambda 'return finger_id;'
  287.   - service: delete_all
  288.     then:
  289.       - fingerprint_grow.delete_all:
  290. lock: # кнопки открытия/закрытия Gimdow с датчиком замка двери из ХА
  291.   - platform: template
  292.     name: Gimdow
  293.     id: Gimdow
  294.     optimistic: true
  295.     assumed_state: true
  296.     lock_action:
  297.       - switch.turn_on: gate
  298.       - delay: 100ms
  299.       - switch.turn_off: gate
  300.     unlock_action:
  301.       - switch.turn_on: gate
  302.       - delay: 100ms
  303.       - switch.turn_off: gate
  304.       - delay: 100ms
  305.       - switch.turn_on: gate
  306.       - delay: 100ms
  307.       - switch.turn_off: gate
  308.     lambda: |-
  309.       if (id(Lock_sensor).state) {
  310.         return LOCK_STATE_UNLOCKED;
  311.       } else {
  312.         return LOCK_STATE_LOCKED;
  313.       }
  314.  
  315. script: #режим светодиода в зависимости от замка двери для возвращения значения после операций
  316.   - id: breathing_light
  317.     then:
  318.       if:
  319.         condition:
  320.           - binary_sensor.is_off: Lock_sensor
  321.         then:
  322.           - fingerprint_grow.aura_led_control:
  323.               state: BREATHING
  324.               speed: 255
  325.               color: BLUE
  326.               count: 0
  327.         else:
  328.           - fingerprint_grow.aura_led_control:
  329.               state: BREATHING
  330.               speed: 85
  331.               color: BLUE
  332.               count: 0
  333.   - id: breathing_light_zamok #режим светодиода в зависимости от замка двери только для самого замка
  334.     then:
  335.       if:
  336.         condition:
  337.           - binary_sensor.is_off: Lock_sensor
  338.         then:
  339.           - fingerprint_grow.aura_led_control:
  340.               state: FLASHING
  341.               speed: 35
  342.               color: GREEN
  343.               count: 1
  344.           - fingerprint_grow.aura_led_control:
  345.               state: BREATHING
  346.               speed: 255
  347.               color: BLUE
  348.               count: 0
  349.         else:
  350.           - fingerprint_grow.aura_led_control:
  351.               state: FLASHING
  352.               speed: 35
  353.               color: GREEN
  354.               count: 1
  355.           - fingerprint_grow.aura_led_control:
  356.               state: BREATHING
  357.               speed: 85
  358.               color: BLUE
  359.               count: 0
  360.            
  361.            
  362.  
  363.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement