● ha작업) 현관문 열기 sensor.wifi 이전 상태를 저장하고 추적할 수 있도록 설정하여 자동화 구성
이전
다음
링크
본문
● ha작업) 현관문 열기 sensor.wifi 이전 상태를 저장하고 추적할 수 있도록 설정하여 자동화 구성
현관문 열기에 > 무엇이 빠르게 인식 하는가
1) ESP32 의 BLE인식 ---> ESP32의 TIME별 인식 시간 차이 발생
2) WIFI 모바일 센서 외출에서 재실 인식 TIME차이 발생
----> 스마트폰 모바일 WIFI 센서의 인식 차이
3) BLE 인식후 도어 열기가 인식하다 다른 휴대폰은 인식 불가 발생
< 동작 구성>
1) 트리거> BLE 인식 >> 외출에서 재실 변화
2) 조건> 1분전 의 상태가 WIFI 모바일 센서 외출 인식 ( 현제 상태가 외출에서 재실로 바로 변경 됨)
3) 동작 > BLE 재실에서 무선 도어락 열기
===============
alias: 현관문 9045열기_BLE_wifi
description: 현관문 9045열기_BLE_wifi
trigger:
- platform: state
entity_id:
- binary_sensor.9045_ble_ble2_tracker_s3pin_2410out_ip74
from: "off"
to: "on"
enabled: true
condition:
- condition: template
value_template: >
{% set last_changed_9045 =
as_timestamp(states.sensor.wifi_presence_status_9045.last_changed) %} {%
set now = as_timestamp(now()) %} {% set previous_state_9045 =
states('input_text.wifi_presence_previous_state_9045') %} {{ (now -
last_changed_9045) < 60 and previous_state_9045 == '외출' }}
action:
- if:
- condition: state
entity_id: binary_sensor.9045_ble_ble2_tracker_s3pin_2410out_ip74
state: "on"
then:
- action: light.turn_on
metadata: {}
data: {}
target:
entity_id: light.ble2_tracker_s3pin_2410out_ip74_beef_sound
enabled: true
- delay:
hours: 0
minutes: 0
seconds: 0
milliseconds: 100
- metadata: {}
data: {}
target:
entity_id: switch.dooropen_socket_1
action: switch.turn_on
- delay:
hours: 0
minutes: 0
seconds: 2
milliseconds: 100
- action: switch.turn_off
target:
entity_id: light.ble2_tracker_s3pin_2410out_ip74_beef_sound
data: {}
- metadata: {}
data:
cache: false
entity_id: media_player.speaker_1
message: "현관문 열기 되었습니다 ,_9045 door open "
action: tts.google_say
enabled: true
mode: single
동작 테스트
===== input_text 활용 상태 저장 구성 하기 ======
상기 조건을 구성을 위하여 상태저장 센서를 추가 방법 ( 상기 그리고 만약에 설정)
하겠습니다.
input_text
를 사용하여 두 센서의 이전 상태를 저장하고, 상태 변경 시 자동으로 업데이트되도록 할 수 있습니다.
● ha작업) sensor.wifi_presence_status_9045에 대해서도 이전 상태를 저장하고 추적할 수 있도록 설정
을 추가하겠습니다. input_text를 사용하여 두 센서의 이전 상태를 저장하고, 상태 변경 시 자동으로 업데이트되도록 할 수 있습니다.
1. input_text 구성
yaml 코드
input_text:
wifi_presence_previous_state_5763:
name: "Previous WiFi Presence Status 5763"
initial: "Unknown"
wifi_presence_previous_state_9045:
name: "Previous WiFi Presence Status 9045"
initial: "Unknown"
2. 상태 변경 시 input_text 업데이트 자동화
yaml 코드
automation:
- alias: Update Previous WiFi Presence Status 5763
trigger:
- platform: state
entity_id: sensor.wifi_presence_status_5763
action:
- service: input_text.set_value
target:
entity_id: input_text.wifi_presence_previous_state_5763
data:
value: "{{ trigger.from_state.state }}"
- alias: Update Previous WiFi Presence Status 9045
trigger:
- platform: state
entity_id: sensor.wifi_presence_status_9045
action:
- service: input_text.set_value
target:
entity_id: input_text.wifi_presence_previous_state_9045
data:
value: "{{ trigger.from_state.state }}"
3. 상태 변경 시 60초 이내의 이전 상태 확인 조건
yaml 코드
condition:
- condition: template
value_template: >
{% set last_changed_5763 = as_timestamp(states.sensor.wifi_presence_status_5763.last_changed) %}
{% set last_changed_9045 = as_timestamp(states.sensor.wifi_presence_status_9045.last_changed) %}
{% set now = as_timestamp(now()) %}
{% set previous_state_5763 = states('input_text.wifi_presence_previous_state_5763') %}
{% set previous_state_9045 = states('input_text.wifi_presence_previous_state_9045') %}
{{ (now - last_changed_5763) < 60 and previous_state_5763 == '외출' }}
or
{{ (now - last_changed_9045) < 60 and previous_state_9045 == '외출' }}
이 설정으로:
input_text.wifi_presence_previous_state_5763와 input_text.wifi_presence_previous_state_9045가 각각의 센서의 이전 상태를 저장합니다.
상태가 변경될 때 자동으로 input_text가 업데이트됩니다.
상태 변경이 60초 이내에 '외출'이었던 경우를 확인하는 조건을 설정합니다.
이렇게 하면 두 센서 모두의 상태를 추적하고, 필요한 경우 적절히 비교할 수 있습니다.
각 센서에 대해 개별적인 조건을 만들고자 하는 경우, 두 개의 별도의 템플릿 조건을 설정할 수 있습니다.
아래는 각각의 조건을 분리한 예입니다:
1. sensor.wifi_presence_status_5763의 조건
yaml 코드 복사
condition:
- condition: template
value_template: >
{% set last_changed_5763 = as_timestamp(states.sensor.wifi_presence_status_5763.last_changed) %}
{% set now = as_timestamp(now()) %}
{% set previous_state_5763 = states('input_text.wifi_presence_previous_state_5763') %}
{{ (now - last_changed_5763) < 60 and previous_state_5763 == '외출' }}
이 조건은 sensor.wifi_presence_status_5763의 상태가 마지막으로 변경된 시각이 60초 이내이고, 이전 상태가 '외출'인지 확인합니다.
2. sensor.wifi_presence_status_9045의 조건
yaml 코드 복사
condition:
- condition: template
value_template: >
{% set last_changed_9045 = as_timestamp(states.sensor.wifi_presence_status_9045.last_changed) %}
{% set now = as_timestamp(now()) %}
{% set previous_state_9045 = states('input_text.wifi_presence_previous_state_9045') %}
{{ (now - last_changed_9045) < 60 and previous_state_9045 == '외출' }}
이 조건은
sensor.wifi_presence_status_9045의 상태가 마지막으로 변경된 시각이 60초 이내이고,
이전 상태가 '외출'인지 확인합니다.
이렇게 설정하면 각 센서의 상태를 독립적으로 확인할 수 있습니다.
☞ https://11q.kr 에 등록된 자료 입니다. ♠ 정보찾아 공유 드리며 출처는 링크 참조 바랍니다♠
관련자료
-
링크
-
이전
-
다음
댓글 0
등록된 댓글이 없습니다.