구성: 동작

대하여

Agent DVR의 Action은 카메라/AI 알림이나 장치 연결 해제와 같은 특정 이벤트에 대한 응답입니다. 예를 들어 알람을 울리거나, 스마트 플러그 URL을 통해 조명을 켜거나, 다른 카메라의 기록을 트리거하는 등 자동으로 응답하는 데 사용합니다. Action에 액세스하고 구성하려면 장치를 편집한 후 메뉴에서 Actions 섹션으로 이동합니다.

'Add'를 클릭하여 새 Action을 생성합니다. 아래 이미지와 유사한 구성 화면이 표시됩니다:

AI Actions Interface
AI Task Interface

Action을 트리거할 수 있는 다양한 범위의 이벤트가 있습니다. 각 이벤트에 여러 Action을 연결할 수 있으며, 이러한 Action 내에서 다양한 태그를 통합하여 동적 응답을 생성할 수 있습니다.

Action 구성

  • Active: Action을 활성화 또는 비활성화하려면 토글합니다. 또는 위에 표시된 ID와 함께 actionOn, actionOff, actionRun과 같은 명령을 사용하여 ScheduleAPI를 사용할 수 있습니다.
  • Name: Action의 선택적 이름입니다.
  • If: 사용 가능한 이벤트를 선택합니다 (아래 참조).
  • With tag: (AI Events). 이는 주로 AI 이벤트와 함께 사용됩니다. 예를 들어 AI: Object Found를 선택하고 여기에 cat을 입력하면, 고양이가 감지될 때만 Action이 트리거됩니다. 태그 일치는 서버 설정 - 일반에서 선택한 언어를 기반으로 합니다.
  • Rule: 여러 태그가 모두 일치해야 하는지(AND) 또는 하나라도 일치할 수 있는지(OR) 선택합니다.
  • In Zones: (AI Events). 감지된 객체를 필터링하기 위해 모션 영역(모션 감지 탭에서)을 지정합니다. 예를 들어 영역 1과 태그 cat을 선택하면, 영역 1에서 고양이가 감지될 때만 Action이 트리거됩니다. 모든 영역을 포함하려면 비워두세요.
  • Repeat Timeout: 이 간격 내에 이벤트가 발생했으면 그 이벤트를 억제하고 타이머를 재설정합니다. 예를 들어 'Vehicle detected'를 트리거로 하고 30초 타임아웃을 사용하면, 알림이 한 번 전송되고 감지된 트래픽에 30초 간격이 생길 때까지 후속 알림이 일시 중지됩니다.
  • Add Task: 클릭하여 Task를 추가합니다. 하나의 Action에 여러 Task를 할당할 수 있습니다 (v4.5.5.0+).

사용 가능한 동작

작업은 다양한 시스템, 장치 및 AI 이벤트에 응답할 수 있습니다. 작업을 설정할 수 있는 이벤트는 다음과 같습니다:

  • AI Server Down (AI Server가 오류를 반환했습니다 - 요청이 3회 실패한 후 이벤트가 발생하고 서버가 다시 온라인 상태가 될 때까지 반복되지 않습니다)
  • AI Server Up (AI Server가 오류 상태를 종료했습니다)
  • AI: Ask AI Positive Result (찾고 있던 객체를 발견했습니다)
  • AI: Ask AI Result (모든 Ask AI 응답에 대해 발생, 긍정 여부 불문)
  • AI: Describe Response Received (이미지가 AI로 설명되었습니다 - 설명은 {MESSAGE} 및 {AIJSON} 태그에 있습니다)
  • AI: Face Recognized
  • AI: Face Not Recognized
  • AI: License Plate Recognized
  • AI: License Plate Not Recognized
  • AI: Loiter Detected
  • AI: Object Found
  • AI: Object Not Found
  • AI: Sound Recognized (마이크만 해당)
  • Alert
  • Alert Finished
  • Call URL Response Received - 이는 "Call URL" 작업이 실행될 때 받는 응답으로 인해 트리거되어 다른 작업으로 응답할 수 있습니다.
  • Manual Alert
  • Motion Detected
  • Motion Finished
  • None - 일정에서 "Action: Run" 명령으로 작업을 직접 트리거하려면 이를 사용하십시오
  • ONVIF Event ON - 예를 들어 ONVIF 논리 상태 업데이트를 기반으로 기록을 시작 및 중지하는 경우 이를 사용하십시오 (동작 감지기 유형이 ONVIF로 설정되어야 함)
  • ONVIF Event OFF
  • ONVIF Event Received (카메라의 모든 ONVIF 이벤트에 대해 발생)
  • Photo Taken
  • PTZ Preset Applied
  • Reconnect Failed
  • Recording Failed
  • Recording Finished
  • Recording Started
  • Source Disconnected
  • Source Reconnected
  • Source Covered/ Tampered
  • Switch Device Off
  • Switch Device On
  • System: Armed
  • System: Disarmed
  • System: No UI Connected - 마지막 UI 세션이 종료될 때
  • System: Profile Applied
  • System: UI Connected - 누군가 브라우저를 열어 시스템을 볼 때
  • System: UI Disconnected - 세션이 종료될 때 (브라우저 연결 해제 후 약 1분 후 발생)
  • Timelapse Started
  • Timelapse Stopped

추가한 모든 플러그인 이벤트와 사용자 정의 작업도 이 목록의 끝에 나타납니다.

로이터링 감지

체류(사람이나 물체가 한 장소에 일정 시간 동안 머물러 있는 것)를 감지하려면 다음을 구성해야 합니다:

  • 서버 설정에서 AI 서버를 설정합니다
  • AI: Loiter Detected에 대한 작업을 추가합니다
  • 찾으려는 태그를 설정합니다 - 일반적으로 person이지만 너무 오래 주차된 자동차를 감지하려면 car를 사용하거나, 방치된 짐을 감지하려면 suitcase를 사용하거나, 소파에 앉아있는 cat을 감지할 수 있습니다. 여기에서 car,bus,truck과 같이 여러 태그를 사용할 수 있습니다. 찾을 수 있는 객체의 목록은 카메라를 편집할 때 객체 인식의 클래스 목록을 참조합니다.
  • 객체를 찾을 영역을 지정합니다. 감지기 탭을 사용하여 모션 영역을 그립니다.
  • 감지된 객체가 영역에 있는 것을 허용할 초 단위 시간을 지정합니다.
  • 조건이 충족되었을 때 수행할 작업을 추가합니다.

참고: 체류 감지기는 모서리 확인 및 오버레이와 같은 객체 인식 설정을 사용합니다

사용자 정의 이벤트 추가하기

미리 설정된 이벤트 이외에도 작업을 추가하여 사용자 정의 이벤트를 만들 수 있습니다. 작업이 생성되면 이벤트 목록에 표시됩니다. 그런 다음 이 작업에 대한 동작을 설정할 수 있습니다. 작업은 UI의 라이브 페이지에서 트리거될 수 있으며 (카메라를 선택한 다음 왼쪽 하단의 작업 아이콘을 클릭함), 또는 일정에서 찾을 수 있는 동작: 실행 명령을 통해 트리거될 수 있습니다.

사용자 정의 작업

작업은 기기에 연결하여 수동으로 작업을 트리거할 수 있는 명령입니다. 작업은 문을 열거나 조명을 켜거나 소리를 재생하는 등의 작업을 수행하기 위해 타사 API를 호출할 수 있습니다. 작업을 추가, 삭제 및 실행하려면 라이브 페이지에서 기기를 선택하고 작업 아이콘 를 클릭하세요.

작업 설정:

  • 작업을 설명하는 텍스트를 입력하고 예를 들어 "조명 켜기"를 클릭한 다음 + 버튼을 클릭하세요. 확인을 클릭하세요.
  • 편집 아이콘 을 사용하여 기기를 편집하려면 클릭하세요. 상단 오른쪽의 메뉴를 사용하여 편집기에서 작업 패널을 선택하세요.
  • 작업을 추가하세요. 방금 생성한 작업을 "If" 조건으로 선택한 다음 작업이 수행할 작업을 구성하세요 (작업은 사용 가능한 작업 목록의 맨 아래에 표시됨).
  • 확인을 클릭하세요.
  • 라이브 뷰에서 작업 버튼을 클릭하고 작업 옆의 화살표 버튼을 클릭하여 이 작업을 수동으로 트리거할 수 있습니다.

Agent DVR API를 통해서도 작업을 트리거할 수 있습니다.

사용 가능한 작업

작업은 이벤트가 발생할 때 작업이 수행하는 작업으로, 이메일 알림 또는 푸시 알림 전송부터 다른 장치의 녹화 제어까지 포함합니다. 수행할 수 있는 작업 목록(다음 아래)은 다음과 같습니다:

  • 경고 - 장치에서 경고를 트리거합니다
  • 삑소리 - Agent DVR 컴퓨터의 스피커에서 삑소리를 재생합니다
  • URL 호출 - 선택적 인증 토큰을 사용하여 모든 URL을 호출합니다. 여기에서 Agent DVR API를 호출하거나 Discord, Slack, ntfy 및 유사한 서비스로 경고를 보낼 수 있습니다(웹훅 참조). 서버 설정에서 API 보호가 체크되어 있으면 인증 헤더를 제공해야 합니다. 이를 위해 서버 설정을 통해 사용자 계정을 추가하고 기본 인증 헤더 값을 입력해야 합니다:
BASIC YWRtaW46YWRtaW4=
  • 명령 실행
명령도 참조하세요
자신의 명령/스크립트를 추가하려면 Commands 디렉토리에 .bat 또는 .sh 파일을 추가할 수 있습니다. 그러면 배치 파일에 매개변수를 전달할 수 있습니다. 예를 들어 모든 사진을 D 드라이브의 루트로 복사하려면:

다음을 포함하는 일반 텍스트 파일을 만듭니다:

copy %1 D:\

Agent/Commands에 copyPhoto.bat로 저장합니다(Linux에서는 .sh를 사용 - chmod +x를 사용하여 이 파일을 실행 가능으로 만들어야 함)
그런 다음 작업을 추가합니다:
조건: "Photo Taken"
작업: "Execute Command"
파일: copyPhoto
매개변수: "{FILENAME}"

  • 현재 녹화를 클라우드에 업로드 - 현재 녹화를 장치의 클라우드 제공자에 업로드합니다
  • 지연 - 다음 작업을 실행하기 전에 일시 중지합니다
  • AI에 물어보기 활성화/비활성화
  • 안면 인식 활성화/비활성화
  • LPR 활성화/비활성화
  • 객체 인식 활성화/비활성화
  • 순찰 활성화/비활성화(장치에서 PTZ 순찰 활성화)
  • 음성 인식 활성화/비활성화
  • 현재 녹화를 FTP에 업로드 - 현재 녹화를 장치의 FTP 서버에 업로드합니다
  • 로그 - Agent DVR 로그에 메시지를 씁니다
  • MQTT - MQTT 메시지를 보냅니다
  • MQTT 이미지 - jpeg 바이트의 실시간 이미지를 토픽으로 보냅니다
  • 네트워크 메시지
  • PTZ 명령 - 카메라를 사전 설정으로 이동하거나 PTZ 명령을 실행합니다
  • 이메일 전송(선택적 이미지 첨부)
  • 동영상으로 이메일 전송(재생 시간 지정 - 이벤트의 버퍼를 포함함). v4.9.8.0+
  • 푸시 알림 전송
  • SMS 전송
  • 동작 감지기 영역 설정(감지기에서 정의한 영역을 선택합니다)
  • 메시지 표시 - 웹 브라우저에서 메시지를 표시합니다
  • 음성(Agent DVR 컴퓨터에서)
  • 음성(카메라를 통해)
  • 음성(웹 브라우저를 통해)
브라우저 보안으로 인해 웹 페이지와의 상호작용이 필요합니다(예: 뭔가를 클릭). Chrome에서 이를 우회하려면 chrome://settings/content/sound로 이동하여 서버의 주소(또는 원격 포털을 사용하는 경우 당사 웹사이트)를 허용된 목록에 추가합니다.
  • 일부 장치에서 녹화 시작 - 중지될 때까지 녹화합니다.
  • RTMP 스트리밍 시작
  • 일부 장치에서 타임랩스 시작
  • 일부 장치에서 녹화 중지
  • RTMP 스트리밍 중지
  • 일부 장치에서 타임랩스 중지
  • Switch Device On
  • Switch Device Off
  • 시스템: 프로필 적용 - 프로필 전환
  • 시스템: 활성화
  • 시스템: 비활성화
  • 녹화 태그 - 현재 녹화에 태그를 추가합니다
  • 일부 장치에서 사진 촬영
  • 음성 합성(Agent DVR 컴퓨터에서 - iSpyConnect.com 계정이 필요하며 텍스트는 웹서비스 호출을 통해 렌더링됨)
  • 음성 합성(웹 브라우저를 통해)
브라우저 보안으로 인해 웹 페이지와의 상호작용이 필요합니다(예: 뭔가를 클릭)
  • 음성 합성(카메라를 통해)
  • 다른 장치에서 적응형 인코딩 트리거
  • 다른 장치에서 경고 트리거
  • 다른 장치에서 AI에 물어보기 트리거
  • 다른 장치에서 음성 인식 트리거
  • Trigger Detect On (다른 기기)
  • Trigger Face Recognition (다른 기기)
  • Trigger LPR (다른 기기)
  • Trigger Object Recognition (다른 기기)
  • Trigger Recording (timeout 포함) (다른 기기). Recording 탭의 trigger recording timeout 설정까지 녹화됩니다. 이 timeout은 매번 trigger recording 작업 호출 시마다 초기화됩니다.
  • UI: Change View - 연결된 UI를 다른 보기로 전환

태그 사용하기

Agent DVR 작업의 Then 필드의 태그를 사용하여 동적 응답을 만들 수 있습니다. 일부 태그는 컨텍스트별로 제한된다는 점이 중요합니다. 예를 들어, {FILENAME}은 Alert Events에서 사용할 수 없으며, {AI}는 AI 서버에서 생성되지 않은 이벤트에서는 사용할 수 없습니다.

  • {ID}: 객체 ID로, Agent에서 카메라 또는 마이크를 편집할 때 편집기의 왼쪽 상단에 표시됩니다.
  • {OT}: 객체 유형 ID입니다. 마이크의 경우 1, 카메라의 경우 2입니다.
  • {FILENAME}: 파일명입니다. Recording Started, Recording Finished, Snapshot Taken 같은 이벤트에 적용됩니다. 파일의 전체 로컬 경로입니다.
  • {CURRENT_RECORDING}: 현재 녹화의 파일명입니다. 파일의 전체 로컬 경로입니다. (v5.0.6.0+)
  • {MESSAGE}: 작업을 트리거한 이벤트의 이름입니다. 예: "Manual Alert".
  • {EVENT}: 이벤트 유형입니다.
  • {NAME}: 장치의 이름입니다(General 탭에서 확인).
  • {GROUPS}: 장치가 속한 그룹입니다(General 탭에서 확인).
  • {SERVER}: 서버 이름입니다(Server Settings에서 확인).
  • {ALERTID}: 알림의 ID입니다(연관된 알림이 없으면 -1).
  • {ALERTCOUNT}: 장치의 알림 개수입니다.
  • {TIME} and {DATE}: 서버의 현재 시간과 날짜입니다.
  • {RECORDED}: 장치가 녹화 중이면 "REC", 그 외의 경우 비어있습니다.
  • {TAGS}: 이벤트와 연결된 태그입니다.
  • {PLUGIN}: 플러그인 이벤트의 메시지입니다.
  • {LOCATION}: 카메라의 위치입니다(General 탭에서 확인).
  • {LEVEL} and {DB}: 동작 또는 오디오 레벨입니다. {DB}는 오디오 장치의 데시벨 레벨입니다. 작업 실행 시 측정됩니다. (v4.3.7.0+)
  • {AI}: AI에서 감지된 객체, LPR의 번호판, 또는 Facial Recognition의 감지된 얼굴의 쉼표로 구분된 목록입니다.
  • {AIJSON}: AI 또는 LPR에서 반환된 JSON 데이터입니다.
  • {ZONE}: 작업을 트리거한 영역입니다(AI를 사용하지 않거나 여러 영역의 경우 1,2,3 같은 CSV 목록이면 비어있음).
  • {BASE64IMAGE}: 라이브 이미지 데이터 URL입니다. 원본 base64 인코딩된 바이트이므로 필요에 따라 포맷하세요. 예:
    p=data:image/jpeg;base64,{BASE64IMAGE}
    (v4.5.9.0+ 사용 가능). 라이브 이미지 너비 640px로 리사이즈됩니다.
  • {BASE64IMAGE-LG}: 라이브 이미지 데이터 URL입니다. 원본 base64 인코딩된 바이트이므로 필요에 따라 포맷하세요. 예:
    p=data:image/jpeg;base64,{BASE64IMAGE-LG}
    (v6.0.8.0+ 사용 가능). 라이브 이미지 너비 1280px로 리사이즈됩니다.
  • {BASE64IMAGE-NATIVE}: 라이브 이미지 데이터 URL입니다. 원본 base64 인코딩된 바이트이므로 필요에 따라 포맷하세요. 예:
    p=data:image/jpeg;base64,{BASE64IMAGE-NATIVE}
    (v6.0.8.0+ 사용 가능). 기본 라이브 이미지입니다.

예를 들어, AI: Face Recognized 이벤트가 있고 Then 작업이 Text to Speech일 때 텍스트

Hello {AI}
를 사용하면 각 인식된 사람을 이름으로 인사합니다.

참고: "Photo Taken"과 같은 파일 관련 이벤트와 함께 {BASE64IMAGE} 태그를 사용하면 파일의 전체 크기 이미지를 사용합니다. 그 외의 경우는 현재 라이브 뷰 이미지를 리사이즈합니다.

순환 경로를 피하기 위해 작업에서 트리거 알림을 주의하세요. 예를 들어 Camera 1의 알림이 Camera 2의 알림을 트리거하고, 이것이 다시 Camera 1의 알림을 트리거하는 경우입니다.

작업이 추가되면 테이블 컨트롤에 작업의 요약이 표시됩니다. 녹색 체크는 활성 작업을 나타냅니다.

Example Action Table

스케줄러를 사용하여 작업을 활성화/비활성화하거나 작업을 트리거할 수 있습니다. 예를 들어 특정 시간에 2개의 이미지가 포함된 이메일을 보내도록 작업을 예약할 수 있습니다.

Schedule Actions

이 예에서는 2개의 이미지가 포함된 이메일을 보내도록 작업을 추가했으며, None 이벤트로 설정했습니다. 그런 다음 일요일과 토요일 오전 8시에 해당 작업을 실행하도록 예약 항목을 만들었습니다.