Proxmox HAOS와 Node-RED로 나만의 텔레그램 CCTV 만들기
Proxmox 서버를 활용한 스마트홈 구축을 하나씩 진행하고 있습니다. 오늘은 그 첫 번째 기록으로, Home Assistant(HAOS) VM에 Node-RED를 연동하여 텔레그램으로 현관문 CCTV를 제어하는 시스템을 만든 과정을 공유합니다.
단순히 알림만 받는 것이 아니라, 제가 "스냅샷"이라고 명령하면 사진을 찍어 보내주고, "동영상"이라고 하면 녹화해서 보내주는 양방향 소통 봇입니다.
1. 환경 구성 (Proxmox & HAOS)
저는 N100 NAS 제품을 활용해 Proxmox 가상화 서버를 돌리고 있습니다. 여기에 Home Assistant OS(HAOS)를 VM으로 올려두었는데, 자동화의 핵심인 Node-RED도 HA의 애드온(Add-on)으로 설치했습니다.

HAOS의 설정 > 애드온 메뉴에서 Node-RED를 검색해 설치하고, 사이드바에 표시되도록 설정했습니다. 이제 복잡한 코딩 없이 블록을 연결하는 것만으로 스마트홈 로직을 짤 수 있습니다.
2. 텔레그램 봇 생성하기
가장 먼저 텔레그램에서 나만의 비서(봇)를 만들어야 합니다. @BotFather를 검색해서 /newbot 명령어를 입력하면 토큰(Token)을 발급해 줍니다. 이 토큰은 Node-RED가 텔레그램과 대화할 수 있게 해주는 열쇠입니다.

그리고 Chat ID를 @userinfobot을 통해 알아낼 수 있습니다.
3. 최종 완성된 흐름 (Flow)
우여곡절 끝에 완성한 전체 로직입니다. 기능은 크게 크게 센서 자동화, 명령어 수신, 에러 처리 세 가지 파트로 나뉩니다.

단순히 연결만 한 것이 아니라, 상황별로 최적화된 로직을 구현했습니다. 크게 센서 자동화, 명령어 수신, 에러 처리 세 가지 파트로 나뉩니다.
① Zigbee 현관문 센서 자동화
가장 기본이 되는 보안 로직입니다. 현관문 센서의 상태 변화를 실시간으로 감지하여 다음과 같이 분기 처리했습니다.
- 문이 열렸을 때 (ON):
- 즉시 "🔓 현관문이 열렸습니다" 텍스트 알림 전송.
- 동시에 10초간 CCTV 동영상 녹화를 시작하고, 녹화가 끝나면 텔레그램으로 영상을 전송합니다. (누군가 들어왔을 때 움직임을 놓치지 않기 위함)
- 문이 닫혔을 때 (OFF):
- "🔒 현관문이 닫혔습니다" 텍스트 알림 전송.
- 동시에 스냅샷을 1장 찍어서 전송합니다. (문이 잘 닫혔는지 최종 확인용)
- 문이 1분 이상 열려있을 때:
Trigger노드를 활용해 문이 열린 상태가 1분간 지속되면, "🚨 [긴급] 현관문이 1분째 열려있습니다"라는 경보 메시지를 보냅니다.
② 텔레그램 명령어 수신 (양방향 소통)
단방향 알림에 그치지 않고, 텔레그램 봇에게 말을 걸어 능동적으로 집안 상황을 확인할 수 있습니다.
- 명령어 필터링:
Telegram Receiver노드가 채팅방의 대화를 듣고 있다가, "스냅샷" 혹은 "동영상"이라는 단어가 들어오면 해당 기능을 실행합니다.
③ 에러 감지 및 재시도 (Self-Healing)
네트워크 불안정이나 카메라 이슈로 촬영이 실패할 경우를 대비해 복구 로직을 심어두었습니다.
- Catch 노드: 스냅샷이나 녹화 노드에서 에러가 발생하면 즉시 감지합니다.
- 3회 재시도: 에러 발생 시 3초간 대기 후 다시 시도하며, 최대 3번까지 반복합니다. 3번 모두 실패할 경우에만 에러를 띄우고 멈춥니다.
- 경로 분기: 스냅샷에서 에러가 났으면 스냅샷을, 동영상에서 에러가 났으면 동영상을 재시도하도록
Error Source ID를 추적해 정확한 노드를 다시 실행시킵니다.
4. 작동 테스트
이제 텔레그램 방에서 봇에게 말을 걸어봅니다.

아주 잘 작동합니다!