스마트싱스(SmartThings) 버튼 이벤트로 HA 자동화 만들기 💡

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."


Home Assistant에서 자동화를 구성할 때 가장 흔히 사용하는 트리거는 '상태' 변경입니다. 예를 들어, 조명이 '꺼짐'에서 '켜짐'으로 바뀔 때를 감지하는 식이죠. 하지만 버튼처럼 상태가 변하지 않는 기기는 어떻게 자동화할 수 있을까요?

예를 들어, 스마트싱스(SmartThings)에서 연동한 버튼을 한 번 누르고, 잠시 후 또 한 번 누르는 상황을 생각해 보겠습니다. 두 번 모두 'pushed'라는 동일한 이벤트가 발생할 뿐, 상태가 'pushed'에서 다른 것으로 바뀌지 않습니다. 따라서 일반적인 상태 트리거로는 두 번째 누름을 감지할 수 없는 문제가 발생합니다.

이럴 때 필요한 것이 바로 이벤트(Event) 트리거입니다. 상태 변화가 아닌, 특정 이벤트 발생 자체를 감지하여 자동화를 실행하는 방법이죠.

1. 내 버튼의 고유 이벤트 데이터 찾기

자동화를 만들기 전, 내 버튼이 어떤 이벤트를 발생시키는지 정확히 알아내야 합니다.

  1. 개발자 도구 > 이벤트 메뉴로 이동합니다.

  2. 수신할 이벤트 항목에 * (별표)를 입력하고 수신 시작을 누릅니다. *는 모든 이벤트를 수신하겠다는 의미입니다.

  3. 이제 자동화에 사용하고 싶은 스마트싱스 버튼을 물리적으로 눌러보세요. (한 번 누르기, 두 번 누르기, 길게 누르기 등 원하는 동작을 실행)

  4. 버튼을 누르는 순간, 화면에 해당 이벤트 정보가 나타납니다. smartthings.button이라는 event_type과 함께 event_data에 상세 정보가 표시되는 것을 확인할 수 있습니다.


{
    "event_type": "smartthings.button",
    "data": {
        "device_id": "YOUR_UNIQUE_DEVICE_ID",
        "component_id": "main",
        "capability": "button",
        "attribute": "button",
        "value": "pushed",
        "data": {}
    },
    "origin": "LOCAL",
    "time_fired": "2025-10-14T13:10:00.123456+00:00",
    "context": {
        "id": "...",
        "parent_id": null,
        "user_id": null
    }
}

여기서 가장 중요한 정보는 event_typedata 안의 내용들입니다. 이 정보를 활용해 "이러한 데이터를 가진 smartthings.button 이벤트가 발생하면 자동화를 실행해라"라고 명령할 수 있습니다.




2. 이벤트 트리거로 자동화 만들기

이제 찾아낸 이벤트 데이터를 이용해 자동화를 만들어 보겠습니다.

  1. 설정 > 자동화 및 장면에서 새 자동화를 추가합니다.

  2. 트리거(Triggers) 유형으로 이벤트를 선택합니다.

  3. 이벤트 유형에는 위에서 확인한 smartthings.button을 입력합니다.

  4. 이벤트 데이터에는 특정 버튼의 특정 동작을 필터링할 정보를 입력합니다. UI 모드보다는 YAML 모드로 직접 편집하는 것이 편리합니다.

    • 우측 상단의 점 3개 메뉴를 눌러 YAML로 편집을 선택합니다.

    • 아래와 같이 트리거 부분을 수정합니다. data 부분은 위에서 확인한 내 버튼의 event_data 내용을 참고하여 채워 넣습니다.






YAML 예시:

trigger:
  - platform: event
    event_type: smartthings.button
    event_data:
      # 여기에 개발자 도구에서 확인한 내 버튼의 고유 정보를 넣으세요.
      device_id: "YOUR_UNIQUE_DEVICE_ID" 
      value: "double" # smartthings.button 이벤트 유형 중에 '2번 누름'을 감지
      # component_id, capability 등 더 자세한 정보를 추가해 필터링 정확도를 높일 수 있습니다.
      component_id: "main" 



이렇게 설정하면, 상태 변화와 관계없이 지정된 device_id를 가진 버튼에서 double이라는 value를 가진 smartthings.button 이벤트가 발생할 때마다 이 자동화가 트리거됩니다.

이제 이 트리거 아래에 원하는 동작(Actions)을 추가하면, 버튼을 누를 때마다 원하는 작업을 수행하는 안정적인 자동화를 완성할 수 있습니다. 🚀

댓글

이 블로그의 인기 게시물

리디페이퍼프로 PC 연결/인식 안 됨? 3가지 해결 방법 총정리

네이버 클립 영상을 클릭 한 번으로 다운로드 - 네이버 클립을 인스타릴스,유튜브쇼츠 공유하기

메디큐브 딥샷 내돈내산 후기: 부스터프로 유저가 1세대 기기를 선택한 이유