Explorar el Código

Adding support for Hornbill Smart Lock

Jeremy Pare hace 1 año
padre
commit
da3632d5b1
Se han modificado 2 ficheros con 312 adiciones y 0 borrados
  1. 1 0
      DEVICES.md
  2. 311 0
      custom_components/tuya_local/devices/hornbill_smart_lock.yaml

+ 1 - 0
DEVICES.md

@@ -801,6 +801,7 @@ work reliably, even if listed below.
 - SmarDeer Lock33 smart lock
 - Tediton K7 smart lock
 - NovaDigital SL-06 smart lock
+- Hornbill Smart lock
 
 ### Sirens
 

+ 311 - 0
custom_components/tuya_local/devices/hornbill_smart_lock.yaml

@@ -0,0 +1,311 @@
+name: Keypad lock
+products:
+  - id: g7rboh0x
+    manufacturer: Hornbill
+    model: Smart Lock
+    name: Key safe
+entities:
+  - entity: lock
+    dps:
+      - id: 1
+        type: string
+        name: unlock_method_create
+        optional: true
+        sensitive: true
+      - id: 2
+        type: string
+        name: unlock_method_delete
+        optional: true
+      - id: 3
+        type: string
+        name: unlock_method_modify
+        optional: true
+        sensitive: true
+      - id: 12
+        type: integer
+        name: unlock_fingerprint
+        optional: true
+        persist: false
+      - id: 13
+        name: unlock_password
+        type: integer
+        optional: true
+        persist: false
+      - id: 15
+        name: unlock_card
+        type: integer
+        optional: true
+        persist: false
+      # TODO: Not sure it belongs in lock entity
+      - id: 18
+        name: open_inside
+        type: bool
+        # TODO: Not sure about those value
+        optional: true
+        persist: false
+      - id: 19
+        name: unlock_ble
+        type: integer
+        optional: true
+        persist: false
+      - id: 46
+        name: manual_lock
+        type: boolean
+        readonly: true
+        mapping:
+          - dps_val: true  # Unlocked
+            value: false
+          - dps_val: false  # Locked
+            value: true
+      - id: 47  # Lock motor state
+        name: lock_motor_state
+        type: boolean
+        readonly: true
+        mapping:
+          - dps_val: true  # Unlocked
+            value: false
+          - dps_val: false  # Locked
+            value: true
+      - id: 51
+        type: string
+        name: temporary_password_creat
+        optional: true
+        persist: false
+        sensitive: true
+      - id: 52
+        type: string
+        name: temporary_password_delete
+        optional: true
+        persist: false
+        sensitive: true
+      - id: 53
+        type: string
+        name: temporary_password_modify
+        optional: true
+        persist: false
+        sensitive: true
+      - id: 54
+        type: string
+        name: temporary_passynch_methodword_delete
+        optional: true
+        persist: false
+        sensitive: true
+      - id: 55
+        type: integer
+        name: unlock_temporary
+        optional: true
+        persist: false
+      - id: 61
+        type: string
+        name: remote_no_dp_key
+        optional: true
+        persist: false
+        sensitive: true
+      - id: 62
+        type: integer
+        name: unlock_phone_remote
+        optional: true
+        persist: false
+      - id: 63
+        type: integer
+        name: unlock_voice_remote
+        optional: true
+        persist: false
+      - id: 64
+        type: string
+        name: password_offline_time
+        optional: true
+        persist: false
+        sensitive: true
+      - id: 65
+        type: string
+        name: unlock_offline_clear_single
+        optional: true
+        persist: false
+        sensitive: true
+      - id: 66
+        type: string
+        name: unlock_offline_clear
+        optional: true
+        persist: false
+        sensitive: true
+      - id: 67
+        type: string
+        name: unlock_offline_pd
+        optional: true
+        persist: false
+        sensitive: true
+      - id: 70
+        type: string
+        name: check_code_set
+        optional: true
+        persist: false
+        sensitive: true
+      - id: 71
+        type: string
+        name: ble_unlock_check
+        optional: true
+        persist: false
+        sensitive: true
+      - id: 73
+        type: string
+        name: remote_pd_setkey_check
+        optional: true
+        persist: false
+        sensitive: true
+  - entity: event
+    name: Alert
+    dps:
+    # TODO:
+    #  - id: 20
+    #    type: string
+    #    name: lock_record
+    #    optional: ?
+      # alarm_lock
+      - id: 21
+        type: string
+        name: event
+        optional: true
+        mapping:
+          - dps_val: wrong_finger
+            value: wrong_finger
+          - dps_val: wrong_password
+            value: wrong_password
+          - dps_val: wrong_card
+            value: wrong_card
+          - dps_val: wrong_face
+            value: wrong_face
+          - dps_val: tongue_bad
+            value: tongue_bad
+          - dps_val: too_hot
+            value: too_hot
+          - dps_val: unclosed_time
+            value: unclosed_time
+          - dps_val: tongue_not_out
+            value: tongue_not_out
+          - dps_val: pry
+            value: pry
+          - dps_val: key_in
+            value: key_in
+          - dps_val: low_battery
+            value: low_battery
+          - dps_val: power_off
+            value: power_off
+          - dps_val: shock
+            value: shock
+          - dps_val: defense
+            value: defense
+          - dps_val: wrong_unlock
+            value: wrong_unlock
+      # doorbell_song
+      - id: 26
+        type: string
+        name: event
+        optional: true
+        mapping:
+          - dps_val: ding_0
+            value: ding_0
+          - dps_val: ding_1
+            value: ding_1
+  - entity: select
+    name: Lock volume
+    category: config
+    dps:
+      - id: 31
+        type: string
+        name: option
+        mapping:
+          - dps_val: mute
+            value: Mute
+          - dps_val: low
+            value: Low
+          - dps_val: normal
+            value: Normal
+          - dps_val: high
+            value: High
+  - entity: switch
+    name: reverse_lock
+    category: config
+    icon: "TODO:?"
+    dps:
+      - id: 32
+        type: boolean
+        name: switch
+  - entity: switch
+    name: automatic_lock
+    category: config
+    icon: "mdi:lock-reset"
+    dps:
+      - id: 33
+        type: boolean
+        name: switch
+  - entity: number
+    name: auto_lock_time
+    class: duration
+    icon: "mdi:lock-clock"
+    category: config
+    dps:
+      - id: 36
+        type: integer
+        name: value
+        unit: s
+        range:
+          min: 1
+          max: 1800
+  - entity: select
+    name: closed_opened
+    category: config
+    dps:
+      - id: 40
+        type: string
+        name: option
+        mapping:
+          - dps_val: unknown
+            value: unknown
+          - dps_val: open
+            value: open
+          - dps_val: closed
+            value: closed
+  - entity: select
+    name: autolock_delay_level
+    category: config
+    dps:
+      - id: 89
+        type: string
+        name: option
+        mapping:
+          - dps_val: inactive
+            value: Inactive
+          - dps_val: 4s
+            value: 4s
+          - dps_val: 6s
+            value: 6s
+          - dps_val: 8s
+            value: 8s
+          - dps_val: 10s
+            value: 10s
+          - dps_val: 12s
+            value: 12s
+  - entity: sensor
+    class: battery
+    category: diagnostic
+    dps:
+      - id: 8
+        type: integer
+        name: sensor
+        unit: "%"
+        class: measurement
+        optional: true
+  - entity: select
+    translation_key: language
+    category: config
+    dps:
+      - id: 28
+        type: string
+        name: option
+        optional: true
+        mapping:
+          - dps_val: chinese_simplified
+            value: chinese
+          - dps_val: english
+            value: english