Echobell로 받는 Home Assistant 알림: 스마트홈을 위한 즉시 알림

REST 명령으로 Home Assistant를 Echobell에 연결해 보안 및 자동화 이벤트에 대한 우선순위 푸시 알림이나 전화 알림을 받으세요.

목차

Home Assistant의 기본 모바일 알림은 휴대폰에 쌓이는 다른 알림들 사이에 그대로 묻혀 버립니다. Echobell은 여기에 푸시, 긴급, 실제 전화 통화라는 우선순위 단계를 더해, 중요한 스마트홈 이벤트가 알림 더미에 파묻히지 않도록 합니다. 이 연동에는 커스텀 컴포넌트가 전혀 필요하지 않습니다. REST 명령 하나와 Webhook URL만 있으면 됩니다.

기본 설정

  1. Echobell 다운로드 / Google Play 후 채널을 만듭니다(예: "Home Alerts")
  2. 채널 설정에서 Webhook URL을 복사합니다
  3. configuration.yaml에 REST 명령을 추가합니다:
rest_command:
  echobell_home:
    url: "https://hook.echobell.one/t/<channel-token>"
    method: POST
    content_type: "application/json"
    payload: '{"title": "{{ title }}", "message": "{{ message }}"}'
  1. Home Assistant를 재시작합니다
  2. 원하는 자동화에서 이 서비스를 호출합니다

간단한 문 센서 자동화로 테스트해 보세요:

automation:
  - alias: "Door Open Test"
    trigger:
      - platform: state
        entity_id: binary_sensor.front_door
        to: "on"
    action:
      - service: rest_command.echobell_home
        data:
          title: "Front Door"
          message: "Door opened at {{ now().strftime('%H:%M') }}"

실전 자동화 예시

전화 알림으로 받는 온도 모니터링

식품이나 장비, 안전을 지키는 센서라면 Echobell 채널 유형을 전화로 설정해 휴대폰이 전화처럼 울리게 하세요:

automation:
  - alias: "Freezer Temperature Alert"
    trigger:
      - platform: numeric_state
        entity_id: sensor.freezer_temperature
        above: -10
        for:
          minutes: 15
    action:
      - service: rest_command.echobell_home
        data:
          title: "⚠️ Freezer Temperature Alert"
          message: "Freezer is at {{ states('sensor.freezer_temperature') }}°C for 15+ minutes"
          severity: "critical"

스마트 보안 알림

Webhook과 함께 컨텍스트 변수를 전달한 뒤, Echobell 조건으로 채널 쪽에서 필터링하세요:

automation:
  - alias: "Smart Security Alert"
    trigger:
      - platform: state
        entity_id:
          - binary_sensor.motion_living_room
          - binary_sensor.motion_bedroom
        to: "on"
    action:
      - service: rest_command.echobell_home
        data:
          title: "Security Event"
          message: "{{ trigger.to_state.attributes.friendly_name }} detected motion"
          alarm_state: "{{ states('alarm_control_panel.home_alarm') }}"
          hour: "{{ now().hour }}"

채널 조건: alarm_state == "armed_away" || (hour >= 22 || hour <= 7)

이렇게 하면 경보가 설정되어 있거나 야간일 때만 알림이 발송됩니다. 자동화를 비활성화하지 않고도 낮 시간의 불필요한 움직임 감지를 걸러 낼 수 있습니다.

가전 완료 알림

automation:
  - alias: "Laundry Done"
    trigger:
      - platform: state
        entity_id: sensor.washer_power
        to: "0"
        for:
          minutes: 3
    action:
      - service: rest_command.echobell_home
        data:
          title: "🧺 Laundry Complete"
          message: "Washing machine finished. Don't let it sit!"

아침 요약

automation:
  - alias: "Morning Home Report"
    trigger:
      - platform: time
        at: "08:00:00"
    action:
      - service: rest_command.echobell_home
        data:
          title: "Good Morning - Home Status"
          message: >
            Temperature: {{ states('sensor.living_room_temperature') }}°C
            Humidity: {{ states('sensor.living_room_humidity') }}%
            Energy yesterday: {{ states('sensor.daily_energy') }} kWh
            All windows: {% if is_state('binary_sensor.window_group', 'off') %}Closed{% else %}OPEN{% endif %}

고급 기능

컨텍스트 링크

externalLink 변수를 사용하면 Echobell의 알림 기록에 탭할 수 있는 링크가 추가됩니다:

action:
  - service: rest_command.echobell_home
    data:
      title: "Motion at Front Door"
      message: "Check the camera feed"
      externalLink: "https://my-home-assistant.duckdns.org/lovelace/security"

다중 채널 전략

알림 유형이 서로 다른 채널을 나누어 사용하세요:

  1. Home Routine(일반): 가전, 일일 요약
  2. Home Monitoring(긴급): 온도, 습도, 전력 급증
  3. Home Security(전화): 경보 설정 상태의 움직임 감지, 문 센서, 치명적 장애

Webhook URL 보호하기

Home Assistant의 secrets를 사용하면 설정 파일에 Webhook URL이 노출되지 않습니다:

# secrets.yaml
echobell_webhook: "https://hook.echobell.one/t/<channel-token>"

# configuration.yaml
rest_command:
  echobell_home:
    url: !secret echobell_webhook

고급 템플릿과 문제 해결까지 포함한 전체 기술 문서는 Home Assistant 연동 가이드에서 확인하세요. 다른 연동은 GitHub Actions 알림Grafana 모니터링 알림을 참고하세요.

관련 글