홈어시스턴트에서 Node-RED 사용해보기: 웹훅을 이용한 재실 자동화
자동화의 직관성과 확장성을 동시에 잡는 도구, Node-RED
스마트홈 구축에서 가장 중요한 과제는 자동화 로직을 얼마나 직관적이고 효율적으로 구성할 수 있는가이다. Home Assistant는 강력한 자동화 엔진을 제공하지만, 많은 사용자들이 automation.yaml을 처음 마주할 때 느끼는 장벽은 결코 낮지 않다. YAML의 문법에 익숙하지 않거나 복잡한 조건 분기, 외부 연동이 필요한 사용자라면 더욱 그렇다.
이때 주목할 만한 도구가 바로 Node-RED다. Node-RED는 시각적 흐름 기반 프로그래밍을 지향하는 오픈소스 자동화 플랫폼으로, 블록(노드)을 선으로 연결하여 자동화를 구성할 수 있다. 단순한 이벤트 처리부터 복잡한 상태 조건 분기, 외부 시스템과의 HTTP·MQTT 통신까지, 코드 한 줄 없이 시각적 방식으로 구현할 수 있는 것이 최대 강점이다. 특히 Home Assistant의 Add-on 형태로 손쉽게 통합할 수 있으며, 다양한 외부 API 및 센서와의 연동도 유연하게 지원한다.
Node-RED의 활용 구조와 자동화 구성 예시
1. Node-RED 설치와 접속
Node-RED는 Home Assistant 내 Supervisor > Add-on Store 메뉴를 통해 간단히 설치할 수 있다. 설치 후에는 인증 강화를 위해 credential_secret을 설정하고, Add-on을 시작하면 http://<home_assistant_ip>:1880 주소로 편집기에 접속할 수 있다. 이 환경에서는 마치 블록을 조립하듯 자동화 로직을 시각적으로 구성할 수 있으며, 노드 간 흐름이 명확하게 시각화되므로 복잡한 논리도 직관적으로 이해할 수 있다.
2. 외부 HTTP 요청을 활용한 자동화 연동
Node-RED의 큰 강점 중 하나는 외부 시스템과의 유기적 연동이다. 예를 들어, 외부에서 HTTP 요청을 통해 Home Assistant 내 특정 상태를 제어하고자 할 경우, Node-RED는 매우 유용한 인터페이스 역할을 한다.
외부에서 접근 가능한 웹훅 엔드포인트를 만들기 위해서는 라우터 설정에서 포트포워딩을 설정해야 한다. 예를 들어:
- 외부 포트: 18800
- 내부 IP: Node-RED Add-on의 내부 주소
- 내부 포트: 1880
이렇게 설정하면 http://your.public.ip:18800/webhook_presence_on?key=redchupakey 와 같은 URL을 통해 Home Assistant의 상태를 변경할 수 있다.
3. 플로우 구성 예시: 재실 상태 제어 자동화
Node-RED에서 다음과 같은 흐름으로 플로우를 구성할 수 있다:
- HTTP in 노드: /webhook_presence_on 또는 /webhook_presence_off 경로로 들어오는 GET 요청을 수신한다.
- Function 노드: URL 쿼리에서 인증 키(key=redchupakey)를 추출하여 조건 검사를 수행한다.
- Call Service 노드: 인증에 성공한 경우, Home Assistant의 input_boolean.presence_virtual_1 상태를 on 또는 off로 설정한다.
- HTTP Response 노드: JSON 형식으로 성공 또는 실패 메시지를 반환한다.
예시 요청과 그 결과는 다음과 같다:
- GET /webhook_presence_on?key=redchupakey → 재실 상태 ON, { "success": true, "message": "Webhook OK 재실 on" }
- GET /webhook_presence_off?key=redchupakey → 재실 상태 OFF, { "success": true, "message": "Webhook OK 재실 off" }
- GET /webhook_presence_on?key=wrongkey → 인증 실패, HTTP 401 응답
이 구조는 단순히 Home Assistant 내부에서만 활용되는 자동화가 아니라, 외부 서버, 스마트폰 앱(Tasker 등), 출입 시스템, Arduino 같은 마이크로컨트롤러와의 연동도 가능하게 한다는 점에서 활용도가 높다.
Node-RED는 스마트홈 자동화의 문턱을 낮추는 동시에 확장을 가능하게 한다
Node-RED는 단순한 자동화 도구가 아니라, 시각적 프로그래밍을 통해 복잡한 논리를 단순하게 표현할 수 있는 인터페이스이다. Home Assistant와의 통합 환경에서는 YAML 기반 자동화의 진입장벽을 낮추는 동시에, 외부 시스템과의 연동을 매우 손쉽게 구현할 수 있는 점에서 뛰어난 선택지다.
특히 포트포워딩을 활용한 HTTP 웹훅 방식의 자동화는 사용자의 스마트폰, 회사 서버, 출입 시스템 등 다양한 외부 이벤트와 Home Assistant를 연결해준다. 이는 기존의 폐쇄적인 스마트홈 구조를 열린 통신 기반의 유연한 구조로 전환시키는 기반이 된다.
스마트홈 시스템은 점점 더 복잡하고 고도화되고 있으며, 단순한 상태 제어나 타이머 기반 스케줄만으로는 사용자의 기대를 충족하기 어렵다. 이러한 환경에서 Node-RED는 개발자뿐 아니라 일반 사용자도 고급 자동화를 쉽게 설계할 수 있게 도와주는 브리지 역할을 한다.
Node-RED는 단순한 ‘선택지’가 아닌, 스마트홈 자동화의 중심으로 떠오르고 있다. 이제는 복잡한 YAML 문법 대신, 손에 잡히는 블록을 통해 나만의 자동화를 설계할 수 있는 시대가 도래했다. 스마트홈 자동화의 다음 단계를 고민하는 사용자에게 Node-RED는 더 이상 옵션이 아닌 필수적 도구로 자리매김할 것이다.