블로그에 접근 하는 중
Preparing valuable information. Just invest two seconds!
 

홈어시스턴트에서 Node-RED 사용해보기: 웹훅을 이용한 재실 자동화

728x90

시각적 자동화, Node-RED를 활용하는 이유

Node-RED

 

스마트홈 자동화를 구성할 때 가장 큰 난관은 바로 자동화 로직을 어떻게 구현할 것인가입니다. YAML 기반의 automation.yaml 스크립트는 강력하지만, 초보자에겐 진입 장벽이 높습니다.
이때 Home Assistant와 결합 가능한 Node-RED블록을 연결하는 시각적 인터페이스를 통해 자동화를 보다 직관적으로 구현할 수 있게 해줍니다.

특히, Node-RED는 HTTP, MQTT, WebSocket 등 다양한 프로토콜을 기본적으로 지원하여 외부 시스템과의 통합에 탁월한 장점을 가집니다. 본 포스트에서는 외부 HTTP 웹훅을 통해 재실 상태를 제어하는 자동화를 Node-RED로 구성해보겠습니다.


에드온 설치부터 웹훅 자동화 구현까지

1. Node-RED 설치 (에드온 방식)

Home Assistant의 Supervisor 메뉴 > Add-on Store 에서 Node-RED를 검색하여 설치하고, Configuration 탭에서 credential_secret 값을 설정한 후 Start 버튼을 눌러 실행합니다.

설치 후 http://<home_assistant_ip>:1880 으로 접속하여 Node-RED 편집기에 진입할 수 있습니다.


2. 외부 웹훅을 위한 포트포워딩

외부에서 Node-RED의 웹훅 엔드포인트를 호출하려면, 라우터에서 다음과 같이 포트포워딩을 설정해야 합니다:

  • 외부 포트: 18800
  • 내부 IP: Node-RED Add-on이 구동되는 내부 IP
  • 내부 포트: 1880

그 후, 예를 들어 http://your.public.ip:18800/webhook_presence_on?key=redchupa 와 같이 외부에서 재실 ON을 제어할 수 있게 됩니다.


3. 예제 플로우 설명 – 웹훅을 통해 재실 상태를 제어

다음 Node-RED 플로우는 input_boolean.presence_virtual_1을 외부 호출을 통해 ON/OFF 제어하는 예시입니다.

인증 키는 ?key=redchupakey를 사용합니다.

 

💡 주요 흐름

  1. http in 노드에서 /webhook_presence_on 또는 /webhook_presence_off GET 요청을 수신
  2. 쿼리 문자열의 key 값을 확인하여 인증 처리
  3. 인증 성공 시 input_boolean.presence_virtual_1를 ON 또는 OFF
  4. JSON 응답 반환

✔ 웹훅 ON 요청 예시:

GET http://your.public.ip:18800/webhook_presence_on?key=redchupakey
  • 처리 결과: input_boolean.presence_virtual_1가 켜짐
  • 응답: { "success": true, "message": "Webhook OK 재실 on" }

✔ 웹훅 OFF 요청 예시:

GET http://your.public.ip:18800/webhook_presence_off?key=redchupakey
  • 처리 결과: input_boolean.presence_virtual_1가 꺼짐
  • 응답: { "success": true, "message": "Webhook OK 재실 off" }

❌ 잘못된 키 예시:

GET http://your.public.ip:18800/webhook_presence_on?key=wrongkey
  • 응답 코드: 401 Unauthorized
  • 응답 메시지: "Unauthorized"

외부 시스템과의 연동, Node-RED로 더 쉽게

Node-RED를 활용하면 단순히 Home Assistant 내부 자동화뿐만 아니라, 외부 API 호출, 타 시스템 연동, 이벤트 기반 제어 등을 손쉽게 시각적으로 구성할 수 있습니다.
특히 이번 웹훅 기반 자동화는 사무실 출입기록, 스마트폰 Tasker, Arduino, 외부 서버 등에서 HTTP 호출만으로 Home Assistant 상태를 제어할 수 있다는 점에서 실용적입니다.

Node-RED는 스마트홈 시스템을 확장성 있게 구축하려는 사용자에게 매우 유용한 도구이며, 위와 같은 기본적인 예제만 숙지해도 다양한 자동화를 빠르게 구성할 수 있습니다.

 

728x90