자동화
1. 재실 감지 센서
obtusa
2019. 9. 10. 14:09
재실 감지를 위해 ping, device_tracker 등 여러 가지를 사용해봤다.
scan 주기를 짧게 가져가니 갤럭시에서 와이파이를 끊어버리고
consider_home을 길게 가져가면 오작동을 막을 수는 있는데
5분으로 설정하고 집 밖에 잠깐 나갔다 들어오면 무용지물이 된다.
현관문 자동화를 만들고 있었기 때문에 아주 불편했다.
블루투스로 설정하는 경우도 찾아봤다.
esphome : BLE만 감지
나는 suunto를 차고 다녀서 괜찮은데 나연이는 없어서 패스
라즈베리파이 : HA, monitor
monitor의 경우 각방을 감지하도록 만들 수 있는데 방마다 라즈베리파이를 놔야 하고 1개만 설치해서 테스트해봤는데 이상하게 안됐다. 아마 내가 잘못 설치한 것 같은데 이거 때문에 하루를 날려 그냥 포기했다.
HA 설치는 아예 배제했다.
HA 포럼을 돌아다니던 중 ARP로 체크하는 글을 찾았고 이걸로 재실 감지를 끝냈다.
https://community.home-assistant.io/t/active-ios-device-tracking/108410
기본적으로 1시간마다 체크하게 만들었고 현관문이 닫힐 때마다 다시 체크를 하게 된다.
1달 이상 사용 중인데 아이폰, 갤럭시 모두 잘되고 오작동도 없었다.
현관문 닫힐 때마다 script 실행하는데 총 3번 체크해서 늦어도 2분 내 재실감지가 가능하다. (보통 1,2번째 실행 때 끝)
binary_sensor
- platform: template
sensors:
home_obtusa:
device_class: presence
friendly_name: "동혐"
value_template: >-
{{ states('sensor.get_phone_data').split(",")[0] == "True" }}
home_yyamko:
device_class: presence
friendly_name: "나염"
value_template: >-
{{ states('sensor.get_phone_data').split(",")[1] == "True" }}
sensor
- platform: command_line
name: get_phone_data
command: "/usr/local/bin/python3 /config/python_script/query_phone.py"
scan_interval: 3600
script
frontdoor_update_presence:
alias: "재실 상태 업데이트"
sequence:
- delay: 00:00:10
- service: homeassistant.update_entity
entity_id: sensor.get_phone_data
- delay: 00:01:20
- service: homeassistant.update_entity
entity_id: sensor.get_phone_data
- delay: 00:00:30
- service: homeassistant.update_entity
entity_id: sensor.get_phone_data