본문 바로가기
서버/리눅스 서버

HomeAssistant WIFI + BT 재실센서 / 현관문 도어센서 --> 완벽

by 도정진 ㅋㅋ잠자 2020. 8. 29.

안녕하세요?


이때까지 BT 및 WIFI 로 재실 자동화를 하고 있었습니다.


https://blog.djjproject.com/675


최근에 코콤 순정 도어센서 및 동체 감지센서도 연동하였는데요. 음 이걸 어떻게 잘 써볼 수 없을까 해서 고민을 해본 결과입니다.


https://blog.djjproject.com/673


1. 재실 센서 아이디어


일단은 인풋 불린을 컨트롤 하고 모든 장비의 켜짐 꺼짐은 인풋 불린 센서를 봅니다.


다른 재실 관련 센서들은 인풋 불린을 켜고 끄는 것을 컨트롤합니다.



전체적으로 재실 불린 엔티티를 통해서 간접 컨트롤을 하게 됩니다.



본래의 경우,


WIFI / BT 중 하나만 재실로 바뀌어도 바로 상기 재실 스위치를 ON 처리합니다.


그리고 그 재실 스위치를 보고 있는 자동화가 구동되어 집 내부의 전자기기 및 전등을 킵니다.


그런데 이렇게 하면 BT 나 WIFI 의 경우 순간적으로 바로 감지가 되는게 아니라서 조금 문제가 있습니다.


2. 적용 아이디어


문열림 센서를 활용하여 재실을 처리하기로 하였습니다.


1. 재실이 아닐경우 문열림이 감지 --> 재실 스위치를 ON 시켜 전등이 켜지게 함


2. 문열림이 감지 --> 5분 정도 대기 --> WIFI 나 BT 가 감지 HOME 처리가 되지 않았을 경우 재실 스위치를 OFF 처리함


즉 1번만 있을 경우에는 손님이 방문하거나, 뭘 안챙겼거나 해서 재 방문 시, 집에 사람이 없는데도 불이나 전기기기가 켜져 있을 확률이 있습니다.


제가 문을 열고 들어왔다면, 5분 내에는 WIFI 나 BT가 재실 상태로 변경이 될 것이고 그때는 재실 스위치를 OFF 처리하지 않습니다.


손님이 방문했거나 (집 문을 원격으로 열어줬을 경우) / 짐을 안가져와서 헐레벌떡 잠시 문을 열었거나 이 때를 방지하기 위해 2번 자동화를 추가하는 것입니다.


문이 열리고 1번 자동화에 의해 재실 스위치가 ON 되었지만,


2번 자동화에 의해서 WIFI 나 BT가 재실 처리가 5분 내로 되지 않을 경우 다시 재실 스위치를 OFF 시키는 부분입니다.



이렇게 하면 빠르게 재실상태로의 전환을 할 수 있고, 집을 나갔을 때에는 WIFI 나 BT 재실 센서가 3분 정도면 반응하니 3분 정도에 외출모드 설정이 가능합니다.


3. 총 매커니즘


1. 재실 스위치 (인풋 불린)



2. 디바이스 트래커 (재실 판단 센서 : 블루투스 / 와이파이)




3. 도어 센서 (ESPHOME 코콤 순정 도어센서)



4. 자동화


- id: '1598439624396'

  alias: home state door open

  description: ''

  trigger:

  - entity_id: binary_sensor.door_sensor

    platform: state

    to: 'on'

  condition:

  - condition: state

    entity_id: input_boolean.home_state

    state: 'off'

  action:

  - data: {}

    entity_id: input_boolean.home_state

    service: input_boolean.turn_on

  mode: single

- id: '1598581724099'

  alias: home state to not home state door open

  description: ''

  trigger:

  - entity_id: binary_sensor.door_sensor

    for: 00:05:00

    from: 'on'

    platform: state

    to: 'off'

  condition:

  - condition: and

    conditions:

    - condition: and

      conditions:

      - condition: state

        entity_id: device_tracker.a4_50_46_0c_37_f1

        state: not_home

      - condition: state

        entity_id: device_tracker.pocophone_f1

        state: not_home

    - condition: state

      entity_id: input_boolean.home_state

      state: 'on'

  action:

  - data: {}

    entity_id: input_boolean.home_state

    service: input_boolean.turn_off

  mode: single




감사합니다.


HA 플랫폼을 쓰면 쓸 수록 매력적인 플랫폼이라는 생각이 드네요.


자동화 코드는 동작하는 데에 초점이 맞춰져 있어서 그냥 대충 작성한 것입니다.


(어차피 최적화를 논할 단계는 아니여서.. )




댓글0