Advertisement
Guest User

Untitled

a guest
Dec 6th, 2023
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.22 KB | None | 0 0
  1. esphome:
  2. name: esphome-web-8bf1d4
  3. friendly_name: equiva Controller
  4. esp32:
  5. board: esp32dev
  6. framework:
  7. type: esp-idf
  8.  
  9. # Enable logging
  10. logger:
  11.  
  12. # Enable Home Assistant API
  13. api:
  14. encryption:
  15. key: "V/xx="
  16. services:
  17. - service: settings
  18. variables:
  19. turn_left: bool
  20. key_horizontal: bool
  21. lock_turns: int
  22. then:
  23. - eqiva_key_ble.settings:
  24. turn_left: !lambda 'return turn_left;'
  25. key_horizontal: !lambda 'return key_horizontal;'
  26. lock_turns: !lambda 'return lock_turns;'
  27. - service: connect
  28. variables:
  29. # mac_address: string // Unable to pass a mac_address via lambda :?
  30. user_id: int
  31. user_key: string
  32. then:
  33. - eqiva_key_ble.connect:
  34. mac_address: 00:12:34:56:42:88
  35. # mac_address: !lambda 'return mac_address;'
  36. user_id: !lambda 'return user_id;'
  37. user_key: !lambda 'return user_key;'
  38. - service: disconnect
  39. then:
  40. - eqiva_key_ble.disconnect:
  41. - service: pair
  42. variables:
  43. card_key: string
  44. then:
  45. - eqiva_key_ble.pair:
  46. card_key: !lambda 'return card_key;'
  47. - service: lock
  48. then:
  49. - eqiva_key_ble.lock:
  50. - service: unlock
  51. then:
  52. - eqiva_key_ble.unlock:
  53. - service: open
  54. then:
  55. - eqiva_key_ble.open:
  56. - service: status
  57. then:
  58. - eqiva_key_ble.status:
  59. ota:
  60.  
  61. wifi:
  62. ssid: FriedelNetz
  63. password: xx
  64.  
  65. # Enable fallback hotspot (captive portal) in case wifi connection fails
  66. ap:
  67. ssid: "Esphome-Web-8Bf1D4"
  68. password: "xx"
  69.  
  70. web_server:
  71. include_internal: true
  72. local: true
  73. port: 80
  74.  
  75.  
  76. captive_portal:
  77.  
  78. external_components:
  79. source: github://digaus/esphome-components-eqiva
  80. # use refresh when you do not get latest version
  81. refresh: 0s
  82.  
  83. esp32_ble_tracker:
  84. # scan_parameters:
  85. # window: 300ms
  86.  
  87. eqiva_ble:
  88.  
  89. eqiva_key_ble:
  90. id: key_ble
  91. # Below are optional and can be passed via new connect service
  92. mac_address: 00:1a:22:01:62:72 # Hintertür
  93. user_id: 1
  94. user_key: yyyy
  95.  
  96. #Schuppen:
  97. #mac_address: 00:1a:22:01:62:71 # Schuppen
  98. #user_id: 1
  99. #user_key: xxxx
  100.  
  101.  
  102. text_sensor:
  103. - platform: eqiva_key_ble
  104. mac_address:
  105. name: "Mac Address"
  106. id: mac_address
  107. lock_status:
  108. name: "Lock Status"
  109. id: lock_status
  110. low_battery:
  111. name: "Low Battery"
  112. lock_ble_state:
  113. name: "Lock BLE State"
  114. user_id:
  115. name: "User ID"
  116. user_key:
  117. name: "User Key"
  118. # on_raw_value:
  119. # then: Do stuff on state change (!lambda "return x")
  120.  
  121. # Call Status every 4 minutes because lock seems to disconnect after 5 minutes of inactivity
  122. # need to watch battery consumption
  123. time:
  124. - platform: sntp
  125. timezone: Europe/Berlin
  126. servers:
  127. - 0.pool.ntp.org
  128. - 1.pool.ntp.org
  129. - 2.pool.ntp.org
  130. on_time:
  131. # Every 4 minutes get Status, to ensure quick reaction
  132. - cron: '00 /4 21-23 * * *'
  133. then:
  134. - eqiva_key_ble.status:
  135.  
  136. # make external sensors available
  137. sensor:
  138. - platform: homeassistant
  139. name: "Hintertuer"
  140. entity_id: binary_sensor.eg_flur_reed_hintertuer_geschlossen
  141. id: Hintertuer_status
  142. - platform: homeassistant
  143. name: "Schuppen"
  144. entity_id: binary_sensor.haustechnik_schuppen_neu_schloss_geschlossen
  145. id: Schuppen_status
  146.  
  147. lock:
  148. - platform: template
  149. name: "Hintertür"
  150. lambda: |-
  151. if (id(mac_address).state != "00:1a:22:01:62:72") {
  152. return {};
  153. }
  154. if (id(Hintertuer_status).state) {
  155. return LOCK_STATE_LOCKED;
  156. } else {
  157. return LOCK_STATE_UNLOCKED;
  158. }
  159.  
  160. lock_action:
  161. - eqiva_key_ble.connect:
  162. mac_address: 00:1a:22:01:62:72 # Hintertür
  163. user_id: 1
  164. user_key: yyyy
  165. - eqiva_key_ble.lock:
  166. #- eqiva_key_ble.disconnect:
  167. unlock_action:
  168. - eqiva_key_ble.connect:
  169. mac_address: 00:1a:22:01:62:72 # Hintertür
  170. user_id: 1
  171. user_key: yyyy
  172. - eqiva_key_ble.unlock:
  173. #- eqiva_key_ble.disconnect:
  174. open_action:
  175. - eqiva_key_ble.connect:
  176. mac_address: 00:1a:22:01:62:72 # Hintertür
  177. user_id: 1
  178. user_key: yyyy
  179. - eqiva_key_ble.open:
  180. #- eqiva_key_ble.disconnect:
  181.  
  182. - platform: template
  183. name: "Schuppen"
  184. lambda: |-
  185. if (id(mac_address).state != "00:1a:22:01:62:71") {
  186. return {};
  187. }
  188. if (id(Schuppen_status).state) {
  189. return LOCK_STATE_LOCKED;
  190. } else {
  191. return LOCK_STATE_UNLOCKED;
  192. }
  193.  
  194. lock_action:
  195. - eqiva_key_ble.connect:
  196. mac_address: 00:1a:22:01:62:71 # Schuppen
  197. user_id: 1
  198. user_key: xxxx
  199. - eqiva_key_ble.lock:
  200. #- eqiva_key_ble.disconnect:
  201. unlock_action:
  202. - eqiva_key_ble.connect:
  203. mac_address: 00:1a:22:01:62:71 # Schuppen
  204. user_id: 1
  205. user_key: xxxx
  206. - eqiva_key_ble.unlock:
  207. #- eqiva_key_ble.disconnect:
  208. open_action:
  209. - eqiva_key_ble.connect:
  210. mac_address: 00:1a:22:01:62:71 # Schuppen
  211. user_id: 1
  212. user_key: xxxx
  213. - eqiva_key_ble.open:
  214. #- eqiva_key_ble.disconnect:
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement