2024/04/26

ESPHome ble_presence



모바일 HA 컴패니언 앱
설정/컴패니언 앱/센서관리/블루투스 센서/BLE 송신기에서
센서활성화를 하고 맨 아래에 있는 UUID를 ESPHome의 ble_presence 플랫폼에 등록.

ESPHome ble_presence

공통항목: 아래 항목은 BLE 스캐닝을 계속 수행하도록 부팅시 설정(기본은 주기적으로 on/off되면서 스캔)
esphome:
  on_boot:
    priority: 250
    then:
      - delay: 15s
      - lambda: |-
          id(ble_tracker).set_scan_continuous(true); 
          id(ble_tracker).start_scan();
esp32_ble_tracker:
  id: ble_tracker
  scan_parameters:
    interval: 300ms
    window: 300ms
    active: false



ble_en.yaml
binary_sensor:
  - platform: ble_presence
    device_class: presence
    ibeacon_uuid: 'xxxxxxxx-xxxx-4784-8480-e662ff7c5d8f'
    name: "Phone Presence"
    timeout: 120s

ble_be.yaml
binary_sensor:
  - platform: ble_presence
    device_class: presence
    ibeacon_uuid: 'xxxxxxxx-xxxx-4784-8480-e662ff7c5d8f'
    name: "Phone Presence"
    timeout: 120s

HA Configurations의 bianry_sensor 도메인에 등록된 재실센서들을 그룹으로 묶음.

binary_sensor.yaml
- platform: group
  name: "iBeacon Presence"
  device_class: presence
  entities:
    - binary_sensor.ble_en_phone_presence
    - binary_sensor.ble_be_phone_presence

집안에 2~3개 뿌려두면 어느정도 커버됨.
그룹으로 묶어두면 한 곳에만 연결되어도 재실로 인정이 되고 모든 곳에 연결이 해제되어야만 외출.
그룹으로 묶을때 이전 그룹 등록 방식인 그룹 도메인이 아닌 새로 바뀐 바이너리 센서 도메인에 그룹으로 등록하면 관리도 편하고 디바이스 클래스나 unique_id도 지정됨.

그룹 도메인으로 묶게 되면 개별 Entity상태를 쉽게 확인할 수 있고 제어할 수 있음.