스마트폰 (Mobile)

삼성 SmartThings와 Home Assistant 연동 IoT 자동화 가이드

날으는물고기 2025. 3. 21. 00:50
728x90

Home Assistant(홈어시스턴트)에 Samsung SmartThings(스마트싱스)를 연동하면 삼성 IoT 기기들을 하나의 플랫폼에서 쉽게 통합하고 자동화할 수 있습니다. 아래에서 자세한 방법과 함께 자동화 예시 및 점검 포인트를 안내합니다.

1. 개요 및 배경정보

  • Home Assistant는 오픈소스 스마트홈 플랫폼으로, 다양한 제조사의 IoT 장치를 통합하여 자동화할 수 있습니다.
  • SmartThings는 삼성의 IoT 플랫폼으로서 SmartThings 허브 또는 삼성 제품군(에어컨, TV, 세탁기 등)을 제어합니다.
  • 두 플랫폼을 연결하면 Samsung IoT 제품군과 다른 제조사의 IoT 기기를 하나의 인터페이스에서 관리 및 자동화할 수 있습니다.

2. Home Assistant와 SmartThings 연동 원리

Home Assistant와 SmartThings 간 연동은 클라우드 API 방식을 사용합니다.

  • Home Assistant ↔ SmartThings Cloud API ↔ 삼성 IoT 장치
    (클라우드를 거쳐 서로 통신 및 명령 전달 수행)

이 방식의 장점은 별도 허브를 구매할 필요 없이 클라우드를 통해 쉽게 연동이 가능하다는 것입니다.

3. 준비 사항 및 사전 점검 포인트

다음 조건을 미리 확인합니다.

  • 홈어시스턴트(Home Assistant)가 설치되어 있고, 인터넷 접근 가능 상태
  • 삼성 SmartThings 계정과 스마트폰의 SmartThings 앱 설치 및 IoT 장치 연동 완료
  • Home Assistant에 SSL 적용 및 외부 접근 가능한 URL 필수 (https://홈어시스턴트주소:8123)

4. 연동 방법 상세 안내 (단계별 진행)

[STEP 1] SmartThings Developer API 키 생성

① SmartThings 개발자 사이트 접속

Personal Access Token 생성

  • 우측 상단 Create Token 클릭
  • 권한 선택 시 다음 권한을 반드시 선택
    • Devices, Locations, Scenes 모두 체크 (Read, Write, Execute)
  • 토큰 생성 후 나타나는 토큰값 복사 (한 번만 보여지므로 반드시 별도 저장)

[STEP 2] Home Assistant에서 SmartThings Integration 설정

① Home Assistant 웹 UI 접속

  • 좌측 메뉴에서 설정 > 장치 및 서비스 > 통합 구성요소 > 통합 구성요소 추가 클릭

② Integration 목록에서 SmartThings 선택

③ 설정 화면에 다음 정보 입력

  • 위에서 생성한 SmartThings 토큰 붙여넣기
  • 위치(Location) 선택 (SmartThings 앱에 등록된 위치 목록에서 선택 가능)

④ Home Assistant URL 설정

  • SmartThings → Home Assistant 접근을 위한 외부 접속 URL(SSL 적용 필수) 입력
    예시) https://home.yourdomain.com:8123

⑤ 설정 완료 후 Home Assistant에서 SmartThings에 연결된 장치들이 자동으로 인식됨.

5. 점검 포인트 및 보안 가이드

✅ 연동 후 점검 포인트

  • SmartThings 앱에 추가한 기기가 Home Assistant 장치 목록에서 정상적으로 확인되는지 점검
  • 기기 조작(켜기/끄기, 온도조정 등)이 양방향으로 즉각적이고 정확하게 동작하는지 점검
  • 기기 상태가 정확하게 보고되는지 실시간으로 확인

🔐 보안 가이드

  • SmartThings API 키는 비밀번호와 같은 중요한 권한을 지니므로, 노출되지 않도록 철저히 관리
  • Home Assistant에 SSL 및 강력한 암호 기반의 인증 적용 필수
  • 외부 URL 접근을 위해 Reverse Proxy(Nginx Proxy Manager 등)를 통해 보안을 강화할 것 권장

6. 자동화 활용 예시

예시 ① 현관문 센서(SmartThings) → 조명(Home Assistant)

automation:
  - alias: "현관문 열릴 때 거실 조명 켜기"
    trigger:
      platform: state
      entity_id: binary_sensor.smartthings_door_sensor_contact
      from: "off"
      to: "on"
    action:
      - service: light.turn_on
        target:
          entity_id: light.living_room_light

예시 ② LG 에어컨 자동화 (온도 조정)

automation:
  - alias: "거실 온도 높으면 에어컨 켜기"
    trigger:
      platform: numeric_state
      entity_id: sensor.living_room_temperature
      above: 28
    action:
      - service: climate.turn_on
        target:
          entity_id: climate.lg_air_conditioner
      - service: climate.set_temperature
        data:
          entity_id: climate.lg_air_conditioner
          temperature: 24
 

LG 에어컨 MQTT 브로커 통해서 홈어시스턴트 연동 자동화 스마트홈

Home Assistant에서 MQTT를 사용하여 LG 에어컨을 제어하기 위해, MQTT 브로커를 설정하고, 해당 브로커와 통신할 수 있는 코드를 작성해야 합니다. MQTT 브로커로는 일반적으로 Mosquitto를 많이 사용합니

blog.pages.kr

7. 유지보수 및 문제 해결

  • 연동 문제가 발생하면 Home Assistant 로그를 통해 오류 원인을 확인
    • 위치: 홈어시스턴트 웹UI > 설정 > 시스템 > 로그
  • SmartThings API 권한 만료 시, Developer 페이지에서 다시 토큰 발급 필요 (일부 경우 만료 가능)

Home Assistant와 SmartThings 연동은 비교적 간단하지만, 클라우드 기반 통신인 만큼 보안 관리가 필수적입니다. API 키 관리 및 외부 접근 제어에 철저히 유의하며, 자동화를 효과적으로 활용하세요.

Smarter SmartThings with MQTT and Home Assistant

아래는 Home Assistant와 SmartThings의 위치 기반 센서 및 온도 조건을 활용하여 자동화를 구현하는 방법입니다.

자동화 개요

스마트폰의 위치 기반 센서를 Home Assistant에 연동하여, 다음 두 가지 시나리오를 자동화합니다.

  • 집으로 가까워질 때 → 날씨가 추우면 보일러를 켜고, 날씨가 더우면 에어컨을 미리 가동.
  • 집에서 멀어질 때 → 불필요한 조명이나 전자기기 전원을 자동으로 끄기.

1단계: 준비 및 필수 센서 확인

아래 센서 및 기기가 미리 연동 및 설정되어 있어야 합니다.

  • 스마트폰을 Home Assistant에 위치 추적 장치로 등록하기
    • (예시: Home Assistant 앱 사용 권장, GPS 기반 위치 정보 실시간 추적 가능)
  • 날씨정보 센서 (기본 내장된 weather.home 센서 또는 기상청 통합 등)
  • SmartThings 연동된 삼성 IoT 장치 (보일러, 에어컨, 조명, 스마트 플러그 등)

2단계: 위치 기반 센서의 상태 확인

Home Assistant에서 스마트폰의 위치 상태는 person.사용자명 형태로 나타나며 상태는 다음과 같습니다.

  • 상태 예시
    • home: 집 안에 있는 상태
    • not_home: 집 밖의 먼 거리
  • 위치정보 센서 proximity를 추가로 설정하면 좀 더 정확한 거리 기반 자동화가 가능합니다.

 

📍 proximity 센서 설정법 예시 (configuration.yaml)

proximity:
  home_distance:
    zone: home
    devices:
      - person.사용자명
    unit_of_measurement: m

위 설정으로 현재 집과의 거리(m)가 sensor.home_distance로 측정됩니다.

3단계: 날씨 상태 확인 (온도 조건)

온도 데이터는 아래 센서를 통해 확보할 수 있습니다.

  • 기본 날씨 센서 예시: weather.hometemperature 속성 사용
  • 외부 날씨 센서 연동(기상청, OpenWeatherMap 등)을 활용해도 좋습니다.

 

 

스마트 홈 자동화: 사람 위치 기반 감지 및 알림 시스템 디바이스 연동

스마트 홈 환경에서 특정 사용자의 상태(예: 위치 변경이나 집 도착)를 실시간으로 감지하고 이에 대한 알림을 제공하는 자동화 시스템을 구축하는 기본적인 예시입니다. 이러한 자동화는 다양

blog.pages.kr

자동화 활용 예시 (YAML 코드 예제)

사례①: 집에 가까워지면서 날씨 조건에 따른 보일러/에어컨 자동 가동

  • 조건
    • 집과의 거리가 500m 이하로 가까워질 때
    • 외부 온도가 10°C 미만이면 보일러 가동
    • 외부 온도가 27°C 초과이면 에어컨 가동
automation:
  - alias: "집에 가까워질 때 날씨에 따라 보일러/에어컨 켜기"
    trigger:
      - platform: numeric_state
        entity_id: sensor.home_distance
        below: 500  # 500m 이내 접근 시
    condition:
      - condition: state
        entity_id: person.사용자명
        state: "not_home"  # 집 외부에서 접근 시 작동
    action:
      - choose:
          - conditions:
              - condition: numeric_state
                entity_id: weather.home
                attribute: temperature
                below: 10
            sequence:
              - service: climate.turn_on
                target:
                  entity_id: climate.smartthings_boiler
              - service: climate.set_temperature
                data:
                  entity_id: climate.smartthings_boiler
                  temperature: 23

          - conditions:
              - condition: numeric_state
                entity_id: weather.home
                attribute: temperature
                above: 27
            sequence:
              - service: climate.turn_on
                target:
                  entity_id: climate.smartthings_air_conditioner
              - service: climate.set_temperature
                data:
                  entity_id: climate.smartthings_air_conditioner
                  temperature: 24

사례②: 집에서 멀어질 때 불필요한 장치 자동 끄기

  • 조건
    • 집과의 거리가 500m 이상으로 멀어질 때 작동
    • 이미 집에서 떠난 상태일 때만 작동
automation:
  - alias: "집에서 멀어지면 불필요한 전원 차단"
    trigger:
      - platform: numeric_state
        entity_id: sensor.home_distance
        above: 500  # 500m 이상 벗어났을 때
    condition:
      - condition: state
        entity_id: person.사용자명
        state: "not_home"
    action:
      - service: light.turn_off
        target:
          entity_id:
            - light.smartthings_livingroom
            - light.smartthings_bedroom
      - service: switch.turn_off
        target:
          entity_id:
            - switch.smartthings_tv
            - switch.smartthings_standby_plug

🔍 점검 포인트 및 고려사항

  • 자동화가 올바르게 작동하려면 스마트폰의 위치 정확도 확인 필수
    • Home Assistant 앱 → GPS 위치 업데이트 권장
  • 날씨 센서가 최신 정보를 정확히 제공하는지 확인 필요
    • API 호출 제한이나 데이터 업데이트 간격 주의
  • 보안 측면에서 위치정보는 민감정보이므로 외부 접근 시 SSL/TLS 적용 및 접근 인증 엄격 관리 필요

🚨 보안 권고사항

내부 사용자(가족 등)에게 아래 보안 가이드를 안내하세요.

  • 위치 정보는 개인 정보이므로 위치 추적을 통한 자동화 사용 시 신중한 접근 필요
  • 스마트폰 분실 시 Home Assistant에서 즉각 위치 센서 비활성화 및 접근 차단 권장
  • 개인용 토큰, API 키, 외부 접근 URL은 암호화된 형태로 안전하게 저장 및 관리 필수

 

이러한 자동화를 통해 에너지 효율성과 편의성 향상을 기대할 수 있으며, 스마트 홈 환경을 더욱 효과적으로 활용할 수 있습니다.

728x90