정보
MQTT는 Message Queuing Telemetry Transport의 약자로, 사물 인터넷(IoT)에서 장치 간 통신을 위해 널리 사용되는 경량의 효율적인 메시징 프로토콜입니다. 제한된 네트워크 대역폭과 저전력 장치에서 작동하도록 설계되었으며, 원격 센서, 모바일 장치 및 다양한 소형 가젯을 인터넷에 연결하는 데 이상적입니다.
Agent DVR은 MQTT로 이벤트를 발행하고 이를 통해 명령어를 수신할 수 있으므로, 카메라와 스마트 홈 또는 홈 자동화 시스템 사이의 유연한 브리지 역할을 합니다.
연결 중
설정 메뉴를 사용하여 Agent DVR을 MQTT 서버에 연결합니다. 연결되면 알림 동작을 설정하여 MQTT 서버에 메시지를 게시할 수 있습니다. 자세한 정보는 MQTT 서버 설정을 참조하세요.
이를 설정하려면 장치를 편집하고 메뉴에서 동작 목록을 선택합니다. 알림(또는 다른 이벤트)에 대한 동작을 추가하고 작업 유형으로 MQTT를 선택합니다. 여기서 게시할 주제와 메시지를 지정할 수 있습니다.
게시할 주제를 지정하고(예: Agent/alerts) 그에 따라 메시지를 작성합니다.
명령어 전송
Agent DVR는 또한 SERVER/commands 주제에서 MQTT 메시지를 수신하고 처리할 수 있습니다. 여기서 SERVER는 서버 이름입니다(서버 메뉴에 표시되며 설정에서 편집 가능). 슬래시, 언더스코어 및 하이픈은 MQTT 주제의 서버 이름에서 제거됩니다. 이러한 명령은 HTTP API와 유사하게 형식이 지정됩니다. /command를 cmd=으로 바꾸면 됩니다:
모든 장치를 켜려면: cmd=allon을 사용합니다.
특정 장치에서 사진을 촬영하려면: cmd=snapshot&ot=2&oid=1을 사용합니다.
통행선 통과 카운터를 카메라에서 재설정하려면: cmd=resettripwires&ot=2&oid=1를 사용하세요.
mosquitto를 사용하여 다음과 같은 명령을 보낼 수 있습니다(SERVER를 서버 이름으로 바꿈):
mosquitto_pub -t 'SERVER/commands' -m 'cmd=record&ot=2&oid=1'.
Agent DVR은 명령을 실행하고 SERVER/responses 주제로 JSON 응답을 보냅니다.
자동 MQTT
Agent DVR는 기본 이벤트, 상태 및 사용 통계를 전송하는 자동 MQTT 구성을 갖추고 있습니다. 이 기능을 활성화하려면 장치를 편집할 때 MQTT 탭에서 "MQTT 이벤트" 옵션을 켭니다.
주제는 SERVER/cameras/NAME/ 또는 SERVER/microphones/NAME/ 아래에 게시되며, SERVER는 서버 이름이고 NAME은 장치 이름입니다(둘 다 소문자이고 슬래시가 제거됨). 이 구성에는 움직임 감지, 연결됨, 알림, 녹화, 타임랩스, 알림(경계됨 상태) 및 검출기(움직임 감지 켜짐 또는 꺼짐)와 같은 주제에 대한 플래그가 포함되며, AI 객체, 얼굴, 번호판 및 소리 인식의 JSON 결과도 포함됩니다.
트립 와이어 검출기를 사용하고 개수가 사용됨으로 설정된 카메라는 다음도 게시합니다(v7.7.4.0+):
- tripwire: 계산된 각 통과마다 하나의 메시지(예:
{"wire":1,"direction":"left","left":3,"right":2,"total":5}) - tripwire_left, tripwire_right, tripwire_total: 현재 카운터이며, 구독하는 즉시 사용 가능하도록 유지됩니다. 개수 재설정 버튼, resettripwires 명령 또는 카메라 다시 시작으로 0으로 재설정됩니다.
Home Assistant를 사용하는 경우 이러한 주제를 직접 작업할 필요가 없습니다. 자동 설정은 Home Assistant를 참조하십시오.
문제 해결
MQTT에서 자주 연결이 끊어지고 다시 연결되는 경우, 일반적으로 서버 설정의 MQTT에서 지정한 클라이언트 ID가 여러 클라이언트에 의해 사용되고 있음을 나타냅니다. MQTT에 연결된 각 클라이언트가 고유한 클라이언트 ID를 갖도록 하는 것이 중요합니다.
Home Assistant
Agent DVR는 MQTT 검색을 사용하여 자신의 장치들을 Home Assistant에 자동으로 알릴 수 있습니다. 그러면 카메라와 마이크로폰이 Home Assistant에 센서 및 스위치가 있는 장치로 나타나며, YAML 구성 없이도 대시보드와 자동화에 사용할 준비가 됩니다.
제공되는 기능
- 움직임 감지 센서: 검출기가 활동을 감지하는 동안 활성화됩니다.
- 알림 센서: 장치가 알림을 발생시키는 동안 활성화됩니다.
- 연결됨 센서: 장치가 온라인인지 여부를 표시합니다.
- 녹화 센서: 장치가 녹화 중인 동안 활성화됩니다.
- 사용됨 스위치: Home Assistant에서 장치를 켜거나 끕니다.
- 알림 스위치: Home Assistant에서 알림을 활성화하거나 비활성화합니다.
- 검출기 스위치: Home Assistant에서 움직임 감지를 켜거나 끕니다.
- 개수 왼쪽, 개수 오른쪽 및 개수 합계 센서: 트립 와이어 검출기를 사용하는 카메라용 통행 카운터로, 사람 수를 세기 위한 것입니다. (v7.7.4.0+)
통계 정보 보내기가 활성화되면 서버도 CPU, 메모리 및 디스크 사용량 센서가 있는 장치로 나타납니다. Agent DVR이 오프라인 상태가 되면 모든 엔티티는 Home Assistant에서 사용 불가로 표시됩니다.
설정 방법
MQTT 브로커(일반적으로 Home Assistant 머신의 Mosquitto 애드온)와 여기에 연결된 Home Assistant의 MQTT 통합이 필요합니다. Agent DVR을 위해 열어야 할 추가 포트는 없습니다. Home Assistant처럼 브로커로 나가는 연결을 합니다.
새 설치 시 시작 화면의 Home Assistant 아래에 브로커의 주소와 로그인 정보를 입력하기만 하면 됩니다. 이제 끝입니다. MQTT와 검색이 자동으로 켜지고, 그 후 추가되는 모든 카메라와 마이크로폰이 Home Assistant에 자동으로 나타납니다.
나중에 설정하려면 (또는 기존 설치에서), 서버 설정 - MQTT로 이동하여 브로커를 구성하고 사용됨과 홈 어시스턴트 발견을 모두 활성화합니다. 그 다음 게시하려는 각 장치에서 MQTT 이벤트를 활성화합니다(장치 편집 시 MQTT 탭). 검색이 켜진 상태에서 추가된 장치는 MQTT 이벤트가 자동으로 활성화되며, 검색이 켜지기 전에 존재하던 장치는 현재 설정을 유지합니다.
비고
- 장치는 Agent DVR이 브로커에 연결된 후 몇 초 내에 Home Assistant에 나타납니다. 장치의 이름을 변경하거나 MQTT 이벤트를 전환하면 Home Assistant가 자동으로 업데이트됩니다.
- 고급 MQTT 설정의 발견 접두사는 Home Assistant의 MQTT 통합의 검색 접두사와 일치해야 합니다. 변경했다는 것을 알지 못하는 경우 둘 다 기본값(homeassistant)으로 두십시오.
- Home Assistant 검색을 끄면 Home Assistant에서 엔티티가 제거됩니다.
- 스위치는 내부적으로 Agent DVR의 MQTT 명령어를 사용하므로, MQTT 네트워크의 다른 모든 것이 같은 명령어를 보낼 수 있습니다.