Naming Rule

_Note: To add a new protocol, the IPC department needs to be reviewed by Wenlong Li and the back-end department needs to be reviewed by Bangtao Chen to ensure the naming convention _

typeNaming Rulereplenish
KEYThe name is a combination of lowercase letters and underscoresAbbreviations always use capital letters
VALUEUnified use of big hump way (each word capitalized first letter) namingAbbreviations always use capital letters

Revision History

Software versionChange logAuthorDate
2.0021. Nerwork > Rtsp : Range > Table 1 and Set > Table 1: Add metadata_platform field,example of changingRange, Get, Set.
2. Maintenance > Log > Range > Table 1 : Change response message example, change fields main_type scope.
3. Maintenance > Log > Get > Table 1 : Change fields main_type scope.
4. Maintenance > Log > Get > Table 3 : Change response message example, change fields main_type scope.
jiang zhuoyun2023-01-11
2.0011.In Table 2 of Push > Push > Query, add the value of key "Notification".
2.In Table 3 of Push > Push > Query, remove the value of key "StorageReadOnly".
3.In Table 3 of Push > Push > Query, add the value of key "Intrusion","RegionEntrance","RegionExiting","LPR".
4.In Table 6 of Push > Push > Query, add the value of key "AiHuman","AiVehicle","Intrusion","RegionEntrance","RegionExiting","AiFaceDetection","LPR".
5.In Push > Push > Query, add Table 8.
6.In Push > Push > Query, add Table 9.
7.In Table 2 of Push > Push > Subscribe, add the value of key "UUID".
8.In Push > Push > Subscribe, remove Table 3.
9.In [Push > Push > Unsubscribe]Push > Push > Subscribe, add Table 1.
10.In Table 2 of Push > PushSubscribe > Get, add the value of key "Human","Vehicle","IntrusionAlarm","RegionEntranceAlarm","RegionExitingAlarm","AiFaceDetection","LPRAlarm".
11.In Push > PushSubscribe > Get, add Table 5.
12.In Push > PushSubscribe > Get, add Table 6.
13.In Table 1 of Network > DDNS > Range, add the value of key "api_key","api_key_empty","base_enc_api_key","api_key_url".
14.Modify Network > VoiceAssistant.
zhengjiehong2024-01-10
2.000In Table 4 of Alarm > CrossCounting > Range, modify the value of key "rule_rect".
In Table 5 of Alarm > LinkageSchedule > Range, modify the value of key "schedule_type".
In Table 3 of Login > PreviewChannel > PTZ > Get, move keys "ptz_version" and "channel" to Table 2, and add value "3.0" to "ptz_version".
chen bangtao2024-01-09
1.0.581, Channel > Image Control > Range > Table 4: Add max_zoom_ratio fieldjiang zhuoyun2023-01-09
1.057Network Add IEEE8021x functionTan Tiantian2023-12-18
1.0561.Network Add GB28181 function
2. Network > FTP > Range > Table 1: Add upload_picture, upload_video field
3.Network > Network Configuration > Network Base > Range: Table 1:Add manual_ip_conflict field,Form Table 2 ipv6_dns1, ipv6_dns2, connection_protocol Equal field,Form Table 6 network_mode_type field
4.Nerwork > Network Configuration > WLAN > join > Table 1: Add network_mode_type, ip_address, subnet_mask, gateway Equal field
5.Network > Rtsp > Range > Table 1: Add notSupportMobile, ipeye_enable, ipeye_link Equal field
Tan Tiantian2023-11-9
1.0551.Alarm > Floodlight > Range > Table 2: Add channel_max field
2. Alarm > Floodlight > Range > Table 4: Add flood_light_switch, flood_light_disable, warning_light_disable, button_control, save_visible, default_visible, param_video, show, disable field
3. Alarm > Floodlight > Range > Table 4: Delete dualtalk_volume field
4. Alarm > IO Alarm > Range > Table 4: Delete snap_enable field
5.Alarm > IO Alarm > Range > Table 4: Add record_enable, light_linkage, enforcerlight_linkage, siren_linkage, flame_detection, http_listening, schedule field
6. Alarm > IO Alarm > Range Add Table 5 and Table 6
7. Alarm > MOtion Alarm > Range > Table 4: Delete rect field
8. Alarm > MOtion Alarm > Range: Delete Table 5
9. Alarm > MOtion Alarm > Range > Table 4: Add smart_moiton_detection, target_type, enforcerlight_linkage, siren_linkage, http_listening, schedule field
10. Alarm > MOtion Alarm > Range:Add Table 6,Table 7
11. Alarm > Occlusion Detection > Range > Table 4: Add enforcerlight_linkage, siren_linkage, http_listening, schedule field
12. Alarm > Occlusion Detection > Range > Table 4: Add Table 5, Table 6
13. Alarm > PIR > Range > Table 4: Add enforcerlight_linkage, siren_linkage, http_listening, schedule field
14. Alarm > PIR > Range: Add Table 6, Table 7
15.Alarm > PIR > Range > Table 4: Delete detection_type, iva_lines, rule_info, scene field
16. Alarm > PIR > Range: Delete Table 5
17. Alarm > Sound Detection > Range > Table 4: Add http_listening field
18. Alarm > Voice Alarm > Range > Table 1:Add channel field
19.Alarm > Voice Alarm > Range > Table 3: Add siren_type_content, delete_button field
20. Alarm > Voice Alarm > Import > Table 1: Add channel field
21. Alarm > Voice Alarm > Import > Table 3: Add file_name field
qiudan2023-11-9
1.0541.Event > Event_check&Event_push > Get&Push > Table 5:Delete low_power, charge_power, input_num, output_num field
2.Event > Event_check&Event_push > Get&Push > Table 7: Delete input_num, output_num field
3.Event > Event_check&Event_push > Get&Push > Table 8: Delete audioAlarm_trigger field
4.Event > Event_check&Event_push > Get&Push > Table 18: Modify field hm_data_type is hm_datatype
5.Event > Event_check&Event_push > Get&Push > Table 1 : Add subscribe_id, data_pos field
6.Event > Http listening > Range > Table 3: Delete duplicate fields password_empty
7.Event > Http listening > Get > Table 7: Add field BgImgWidth, , BgImgHeight, ImageAllInfo
8.Event > Http listening > Get > Table 8 Add field MD5, BgImgWidth, BgImgHeight, Beauty, Similarity, ImageAllInfo, Image1, Image3, Feature
9.Event > Http_listening_Push related description > POST > Table 4: Add field BgImgWidth, , BgImgHeight, ImageAllInfo
10.`Event > Http_listening_Push related description > POST > Table 5: Add field MD5, BgImgWidth, BgImgHeight, Beauty, Similarity, ImageAllInfo, Image1, Image3, Feature
qiudan2023-11-7
1.0531.Stream > Encode > Range > Table 4 Add video_encode_type_resolution_range, codeparam_setting_notice field
2. Stream > Encode > Range > Table 4: Delete i_frame_interval_rate field
qiudan2023-11-6
1.0521. AI > Setup > Heat Map > Get > Table 4: Add schedule_enable和ptz_operation_support field
2. AI > Setup > Human & Vehicle Detection > Range > Table 3:Add schedule_enable, ptz_operation_support, detection_mode, scene, light_linkage, tracking_link, enforcerlight_linkage, siren_linkage, http_listening, schedule, default_timeout field
3. AI > Setup > Intrusion > Range > Table 4: Add schedule_enable, ptz_operation_support, light_linkage, tracking_link, enforcerlight_linkage, siren_linkage, http_listening, iva_lines, schedule, default_timeout field
4. AI > Setup > License Plate Detection > Range > Table 3: Add schedule_enable, ptz_operation_support, point_num, light_linkage, enforcerlight_linkage, siren_linkage, http_listening, detection_type, schedule, default_timeout field
5. AI > Setup > Line Crossing Detection > Get > Table 4 : Add schedule_enable, ptz_operation_support, scene, light_linkage, enforcerlight_linkage, siren_linkage, http_listening, schedule, tracking_link, default_timeout field
6. AI > Setup > Queue Lenght Detection > Range > Table 3: Add schedule_enable, ptz_operation_support, video_to_cloud, enforcerlight_linkage, siren_linkage, http_listening, schedule, default_timeout field,Table 5 Add point_num field
7.AI > Setup > Rare Sound Detection > Range > Table 3: Add schedule_enable, light_linkage, enforcerlight_linkage, siren_linkage, http_listening, schedule field
8.AI > Setup > Region Entrance > Range > Table 3:Add schedule_enable, ptz_operation_support, iva_lines, light_linkage, tracking_link, enforcerlight_linkage, siren_linkage, http_listening, schedule, default_timeout field
9.AI > Setup > Region Exiting > Range > Table 4: Add schedule_enable, ptz_operation_support, iva_lines, light_linkage, tracking_link, enforcerlight_linkage, siren_linkage, http_listening, schedule, default_timeout field
10. AI > Setup > Stationary Object Detection > Get > Table 4: Add schedule_enable, ptz_operation_support, scene, light_linkage, enforcerlight_linkage, siren_linkage, http_listening, schedule field. Table 6 Add point_num field
Tan Tiantian
1.0511. AI > Setup > AI Func Schedule > Range > Table 4 :Add mutex_type_between_channel field
2. AI > Setup > Stationary Object Detection > Get > Table 4: Delete record_channel field
3. AI > Setup > Crowd Density Detection > Range > Table 3 :Add video_to_cloud field
4. AI > Setup > Face Detection > Get > Table 4:Delete record_channel field
5. AI > Setup > Face Detection > Get > Table 4: Add schedule_enable, ptz_operation_support, ftp_picture_upload, picture_to_cloud, ftp_video_upload, video_to_cloud, light_linkage, enforcerlight_linkage, siren_linkage, http_listening, schedule, default_timeout field
6. AI > Setup > Cross Counting > Get > Table 4: Add schedule_enable, ptz_operation_support, light_linkage, enforcerlight_linkage, siren_linkage, http_listening, schedule, default_timeout, iva_lines, scene field
7. AI > Setup > Cross Counting > Get > Table 4: Add schedule_enable, ptz_operation_support, enforcerlight_linkage, siren_linkage, http_listening, schedule, default_timeout field Table 5 Add point_num field
8.API > THERMAL: New chapter on thermal imaging added
Tan Tiantian2023-11-3
1.050In chapter NETWORK:
In Network Configuration > Network Base > Table 1 : Add key "operation_type", "manual_ip_conflict".
In Network Configuration > Network Base > Table 2 : Add key "ipv6_dns1", "ipv6_dns2", "connection_protocol".
In Network Configuration > Network Base > Table 3 : Add key "modify_field", "show_tips".
In Network Configuration > Network Base > Table 6 : Add key "network_mode_type".
In Network Configuration > Network Base > Table 10 : Add key "modify_field", "show_tips".
In Nerwork > Email > Range > Table 1 : Add key "report_button".
In Nerwork > FTP > Range > Table 1 : Add key "upload_picture", "upload_video".
In Nerwork > Rtsp > Range > Table 1 : Add key "rtsp_url", "notSupportMobile", "ipeye_link".

In chapter ALARM:
In Motion Alarm > Range > Table 4 : "status" 的 value Add "Nonsupport".
In PIR > Range > Table 4 : "status" 的 value Add "Nonsupport".
In Flood-light > Range > Table 2 : Add key "channel_max".
In Perimeter Intrusion Detection > Range > Table 6 : Add key "rule_switch".
In FaceDetection > Range > Table 2 : Add key "support_copy", "agreed_to_agreement", "statement_file_name".
In Cross Counting > Range > Table 2 : Add key "support_copy".
In Cross Counting > Range > Table 4 : Add key "is_ai_param", "detection_type", "alarm_num", "start_time", "end_time", "reset_count", "schedule_enable", "ptz_operation_support".
In Cross Counting > Range > Table 6 : Add key "rule_rect".
In IntelligentAnalysis > ange > Table 3 : Add key "status", "detection_type",Delete key "Perimeter_Intrusion_Detection", "Line_Crossing_Detection", "Stationary_Object_Detection", "Pedestrian_Detection", "Cross_Counting"
In LinkageSchedule > Range > Table 1 : "page_type" Add value "EnforcerLight".
In Disarming > Range > Table 2 : Add key "event_push_platform".

In chapter MAINTENANCE:
In Log > log > Table 3 : "ai_main_type" 的 value 增加 "License Plate Detection".
In Load Default Parameter > Range > Table 1 : Add key "default_timeout",delete Table-11.2.2 of the old document.
In Ftp Upgrade > Range >Table 1 : Add key "online_upgrade_tips", "check_for_updates", "cur_version", "new_version", "ipc_online_upgrade_tip", "Upgrade_button", "inSystemUpgradefo_file_url".
In Ftp Upgrade > Range >Table 1 : Add key "check_for_updates".
In Ftp Upgrade > Check > Table 1 : Add key "Upgrade_button", "lang_strs".
In IPC Maintenance > Range > Table 1 : Add key "upgrade_result".
In IPC Maintenance > Check : Change /API/IPCMaintaint/FtpIpcUpgrade/Check Response content.
In System Upgrade > VersionCheck : Add Maintenance/SystemUpgrade/VersionCheck Response content
In DeveloperMode > Range > Table 1 : Add key "support_ipc_log_export", "search_log_enable", "support_ipc_log_pack", "log_collect_tips", "download_type", "support_ipc_log_delete", "export_days", "channel_info".
In DeveloperMode > Clear > Table 1 : Add key "delete_type".
In DeveloperMode > Token : /API/Maintenance/DeveloperMode/Token add Request content.
Delete section Http Upgrade.

In chapter LOGIN:
In Login > DeviceInfo > Get > Table 1 : Add key "support_camera_day_night_param".
In Login > DeviceInfo > Get > Table 2 : Delete key "max_analog_chn".
In Login > ChannelInfo > Get > Table 2 : "intelligent_ability" Add value "FireDetection", "TempMeas".
In FirstLogin > Password > Get > Table 1 : Add key "activation_pwd",Delete key "password".
In PreviewChannel > PTZ > Get > Table 2 : Delete key "cruise_state".
chen bangtao2023-10-30
1.0491. System > System Information > Get > Table 1:Add the"mcu_software_version" field to Get Table 1
2. System > Channel > Information > API:Fixed the URI of the API file
3. Storage > Disk > Disk Configuration > Range:Table 1New fields "support_format" and "default_timeout" in Table 1 and "TotalSize" in Table 3
4. API > Storage > Cloud:Appending the accesstoken index in API.md
5 Record > Search Record:Add Range.md file, append Range index to API.md
6.Record > Playback Page > API:Remove links to Get.md and Set.md from documents
7.Maintenance > Load Default Parameter > Range > Table 1:Change the Range field alarm to event, and add the "default_timeout" field to Range Table 1
8. Maintenance > FtpUpgrade::Fixed Progress Request URI, add "ipc_online_upgrade_tip" and "Upgrade_button" fields to table 1 of Range > Table 1
9. Maintenance > Import_Export Parameter:Fixed the correct Get and Set request URI
10.Maintenance > IPCMaintenance > FtpIpcUpgrade:Fixed the Progress.md request URI ,Maintenance > IPCMaintenance > IPCReboot:Fixed Get and Range request URI
11.Maintenance > SystemUpgrade:Deleting files ComponentVersionChck.md, Maintenance > SystemUpgrade > VersionCheck.md content using Maintenance > FtpUpgrade > Check.md content, to the right content
12.Maintenance > DeveloperMode > Range > Table 1:Modified Range table "download_type"field
13.Maintenance > DeviceShutdown > Set:Modified Set request URI
15. MaintenanceRecordStorageSystem:Make sure the form jumps correctly, fix translation problems and other detail errors
He xiurong2023-10-30
1.048AI > Recongnition > Database license plate information query > GetCount > Table 3: Delete MsgId fieldTan Tiantian2023-10-21
1.047Login > PreviewChannel > PTZ > Get > Table 2: Delete cruise_state fieldJiang Zhuoyun2023-10-20
1.0461.Login > Login > DeviceInfo > Get > Table 1: Add the support_camera_day_night_param field to Table 1 of login DeviceinfoJiang Zhuoyun2023-10-13
1.0451. Function > ANR > GetANRTimeInfo chapter omissions Table 1
2. ExtendedFunctionality > AI Mutex Relation > Get: Table 5Table 4 Add field "mutex_type_between_channel"
3. API > Channel new chapters addedChannel > Scheduled Tasks
4. Push > Push > Query > Table 3: Add "notification_interval_max" "notification_interval_min" "notification_interval" "notification_interval_switch" field
5. API > Push new chapters added Push > PushSubscribe
Jiang Zhuoyun2023-10-10
1.0.441. AI > Attribute_Detection : Range > Table 3 , Set > Table 3 and Get > Table 4: Add “ftp_picture_upload”, “picture_to_cloud”, “ftp_video_upload”, “video_to_cloud”, “light_linkage”, “enforcerlight_linkage”, “siren_linkage”, “http_listen_schedule” fieldTan Tiantian2023-10-09
1.0431. Record > Playback Page > Range > Table 7: Add intrusion, regionEntrance, regionExiting field
2. Login > Login > DeviceInfo > Get > Table 2: Add a new push image type,support_record_type_ex field
3. Login > DevicePage > Get > Table 2: Add Intrusion ->Region Exiting menu page
4. API > Event > Event_check&Event_push > Get&Push > table 7 : Add "Intrusion""RegionEntrance""RegionExiting" field
5. API > Event > Event_check&Event_push > Get&Push > table 10 : Add intrusion, region_entrance, region_exiting field
6. AI > Setup > Line Crossing Detection > Get > Table 4 : Add sensitivity_ex, target_validity, min_pixel, max_pixel field
7. AI > Setup > AI_Func_Schedule > Range > Table 4 : Add intrusion, region_entrance, region_exiting field
8. New features AI > Setup > Intrusion, AI > Setup > Region_Entrance, AI > Setup > Region_Exiting
9. New features ExtendedFunctionality > AI Mutex Relation, ExtendedFunctionality > Mutex Relation
Li Wenlong2023-06-01
1.0421. Alarm > VoiceAlarm > Get > Table 3 : Add siren_mode fieldLi Wenlong2023-05-26
1.0411. Alarm > Motion Alarm > Range : Table 4 Add field schedule_list,Add Table 5
2. Alarm > Flood-light > Range : Table 4 add deterrence_interval_time add deterrence_schedule field,addTable 7
3. Storage > Audio > Range.md > Table 3 : Add audioin_enable , audioout_enable field
4. Record > Record Configuration > Range : Table 4 add schedule_list field,add Table 5
5. AI > Setup > Human & Vehicle Detection > Range : Table 3 add schedule_list , mutual_exclusion field,add Table 9
6. AI > Setup > Line Crossing Detection > Get : Table 4 add schedule_list, mutual_exclusion field,add table9
7. Add API > ConsumerInfo,Dedicated for consumer docking with NVR packages
Li Wenlong2023-05-25
1.040Add API>THERMAL thermal related APILi Wenlong2023-05-24

Document update notice

serial numberkeywordcontent
1exampleIn addition to GET SET parameter configuration related API does not do the example, in principle, API should do the example, so that customers have a more intuitive understanding, faster to get started. If there are different scenarios and the request format is different, both the scenario and the request example are added.
2example AuthenticationIn previous examples, the summary authentication mode is used. This document adds session authentication and summary authentication modes in Section 2.4 to guide customers to adopt the session authentication mode. The new example only needs to describe the body.
3Revision HistoryThe update log was removed and the revision log was added. API adders need to record the add-in log, add-in, and add-in date in detail
4endorsementComments are added to facilitate future consolidation of the document and to check whether the document addition is reasonable. Do not write warnings, summary descriptions, etc., in the comments. Add these descriptions, along with business process descriptions, to the body.
5FlowFor example, the IPC channel chapter and the IPC maintenance chapter have many apis stacked together. The customer has no intuitive understanding. Therefore, when multiple apis are associated, a description should be added, and a flowchart should be added if necessary.
6DirectoryUpdate the directory is prohibited except for the specified person

Overview

Transmission Mechanism

The HTTP API transaction starts from a request from a client application. The web server on the IP media devices processes the request and sends the response back to the client application. The HTTP request is taken in POST or Get method form as described in the following paragraphs. If the request is successful, the IP media video device will return a HTTP header contains 200 OK. The HTTP Body will contain actual result or error message by JSON format if an error occurs.

JSON

A device must support the syntax defined by RFC7159 and UTF-8 character set . All Json files must adopt UTF-8 encoding according to RFC3629

URL

The URL scheme is used to locate device resources via a specific protocol in the network. This section defines the syntax and semantics for http(s) URLs.

<protocol>://<host>[:port][/fixed string]</cmd name>

protocol: URL scheme for the particular request. The HTTP protocol is allowed in this specification.

host: The host field refers to the hostname, IP address, or the Fully Qualified Domain Name of an IP device.

port: The port field refers to the port number of that host on which the identified resource is located at the IP device listening for TCP connections. If the port is empty or not given, the defaultport is assumed. For HTTP, the default port is 80. For HTTPS the default port is 443.

fixed string: Fixed string, usually use “API”.

cmd name:The specific command to an IP device.

HTTP Header Field

Requests from the video management system or the client application are packed in HTTPmessages. A request message composed of three parts: the connection header field, the authorization header field, and the entity body field. HTTP/1.1 is implemented and utilized according to RFC 2616 in the IP devices. For a video management system or client application that uses persistentconnection for multiple transactions, it is required to implement “Connection: Keep-Alive” HTTP header field, while also adopt the “Connection: close” HTTP header field for the last transaction of the persistent connection.

When a video management system or client application sends any request to the device, it must be authenticated by means of Basic Access or Digest AccessAuthorization according to RFC 2617, and thus all the devices are required to support Basic Access or Digest Access. Authorization header field is sent along with each request, and if a user is authenticated, the request will follow the normal execution flow. If client HTTP request is with no authentication credentials, unauthorized HTTP response (401) will be returned with WWW-Authenticate header field.

The Content-Type entity-header field indicates the media type of the entity body. The Content-Type may be designated as “application/json; charset=’UTF-8’”, “application/octet-stream”, etc. For configuration information, the Content-Type is usually “application/json; charset=’UTF-8’”.

If there is a JSON block for the HTTP request or response, the Content-Type and Content-Length will be set in the headers of the HTTP message.

The Content-Type is usually "application / json; character set = "UTF-8'". The request uses the POST method, the body is in JSON format, and contains at least one version number field.

For example:

HTTP Request with message body:

Except for the first few requests before logging in, which do not need authentication, other requests need to carry the Cookie and X-csrftoken returned by login in the HTTP header for authentication. See API > Login > Web > Login for login methods.

The format for accessing the API is as follows, where the requested data and returned data are both in the "data". "version" is the API version number. As it is a reserved key and is not actually used, the value is temporarily fixed as "1.0". When the server returns data, it will also return error code and error reason if there is any error.

POST/API/SystemInfo/Base/Get HTTP/1.1
Content-Type: application/json
X-csrftoken: 14559384d58d55d9d80bf4baf048684f366c77905d665d99ba1bde2cdcf81b08
Cookie: session=cc3ec99c6f1295489c86f8842e1dd719c194c637af5b965a23932c41188a3acc
Content-Length: 1234
{
    "version": "x.x"
    "data": {
    }
}

If you only need to access a few APIs, you can access them with digest authentication. Examples are as follows:

POST/API/SystemInfo/Base/Get HTTP/1.1
Authorization: Digest username="admin",realm="RS realm",nonce="d7357432-26b6-49d7-bc31-cd2c690fd115",uri="/action/getConfig/Camera",cnonce="dedb934132796d7066c7cb59068e3487",nc=00000001,response="de8918839a8fa301bf6badf2967965c8",qop="auth"
Content-Type: application/json
Content-Length: 1234,
{
    "version": "x.x"
    "data": {
    }
}

Response Messages Body

The response message from the IP device is a standard HTTP response, information can be included in the entity body field in JSON format. This information includes the result to a request message, or the detailed parameters that required by a request message.

  • A successful response that don’t includes any parameters is as follows:
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 40
{
    "result": "success",
    "data" : {
    }
}

  • When there is an error in the request result, the format of the return message is as follows. "reason" contains a detailed error reason, and the "error_code" is error code. For specific error codes, please refer to Common error code.
HTTP/1.1 400 OK
Content-Type: application/json
Content-Length: 40
{
    "result": "failed",
    "reason": "xxxxxxxx",
    "error_code": "user_blocked",
    "data": {
    }
}

  • A part of channel failed response that is as follows:
HTTP/1.1 400 OK
Content-Type: application/json
Content-Length: 40
{
    "version": "x.x",
    "error_code": "part_failed",
    "reason":"xxxxxxxx",
    "ch_error_code": [{
        "error_code":"no_support",
        "channel":" IP_CH1"
    }],
    "data": {
    }
}

  • The information returned along with the error code "cloud_video_upload_chn_limit":
{
    "result": "failed",
    "reason": "Save parameter failed",
    "error_code": "cloud_video_upload_chn_limit",
    "data": {
        "cloud_video_is_used": [
            "CH1",
            "CH3"
        ],
        "max_cloud_video_upload_num": 2
    }
}
  • Examples of mutual exclusion between different types of intelligence:
{
    "result": "failed",
    "channel_max": 1,
    "error_code": "part_failed",
    "ch_error_code": [
        {
            "channel": "CH1",
            "error_code": "illegal_operation",
            "reason": "Illegal Operation, aganist the intelligent mutual exclusion !",
            "mutual_array": [
                "PID",
                "LCD"
            ]
        }
    ],
    "data": {}
}
  • Examples of mutual exclusion between different types of server:
{
    "result": "failed",
    "error_code": "server_mutually",
    "reason": "The server is mutually exclusive !",
    "mutual_array": [
        "DROPBOX",
        "Google Drive"
    ],
    "data": {}
}

Command Categories

This specification is divided into different command categories. Thefollowing command is defined:

CommandDescription
SystemConfigure and operate the general system functions.
NetworkConfigure network interfaces and parameters
ChannelConfigure channel parameters
StreamConfigure and control the streaming media content
AlarmConfigure and control alarm functions and parameter
StorageConfigure device storage
SchedulesConfigure schedules
RecordConfigure and control record functions and parameter
MaintenanceConfigure maintenanceinformation

Error Code

As with any other protocol, errors may occur during communications, protocol or message processing. Errors may contain header value or be received in a not expected or experience a socket timeout. To indicate and interpret protocol error, HTTP protocol has defined a set of standard status codes. According to this specification, the IP devices will use appropriate HTTP protocol defined status codes for error reporting and when received handle accordingly.

Error CodeDescription
200The request has succeeded.
400The request was badly formed. This is commonly used for creating or updating a resource, but the data was incomplete or incorrect.
401The request requires user authentication to access this resource. If the request contains invalid authentication data, this code is sent.
403The request is not allowed because the server is refusing to fill the request.
404The requested resource does not exist.
500An internal server error has occurred.
501The requested is not implemented.

Abbreviations

For the purposes of the present document, the following abbreviations apply:

AbbreviationsDescription
IPCIP Camera
NVRNetwork Video Recorder
CHAnalog channel/Digital channel
IP_CHDigital channel
WIFI_CH Wireless channel

Common error_code

Common error_code include channel Table-2.9.1

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
error_codeDescription
Commonparam_errorThe requested parameters are incorrect.
no_permissionNo permission.
first_loginFirst login, force to set a password.
part_failedThe parameters of some channels fail to be saved.
no_supportNo support.
frequent_operationOperate too frequently.
passwd_expired_loginThe password has expired and needs to be changed.
default_failedFailed to restore default values.
token_generation_failedFailed to generate token.
token_invalidToken is invalid.
device_busyThe number of requests being processed by the device reached the upper limit.
user_expired_loginAccount login expired.
data_saving_busyThe device is busy saving.
user_locked_loginThe user login is locked.
function_busyFunction busy.
network_port_conflictThe network port conflicts
group_name_errorThe group name is incorrect.
Sessionno_loginNot logged in.
expiredLogin expired.
one_IEOnly one user can log in to a browser.
logoutLog out.
login_at_otherThis account has been logged in at another location.
device_rebootDevice reboot.
passwd_expiredPasswd expired.
param_changedParameters have changed.
network_changedThe network port is changed.
ssl_errorSSL certificate reissuance.
netip_limitedThe logged IP address is added to the blacklist.
forced_offlineForced logout.
user_expiredUser has expired.
no_heartbeatHeartbeat timeout.
disk_changedThe hard disk status or parameters are changed.
ipc_state_changedOn the IPC upgrade page, the IPC upgrade status has changed.
have_loginThe number of current logins exceeds the maximum value.
Secondary certificationcurrent_pwd_error_ntimeIf the number of authentication failures exceeds the upper limit, "remain_locked_time" is included in the "data", indicating the remaining lock time.
Save parametersave_failedFailed to save parameter.
pwd_weakThe complexity of the IPC password is too low. (IPC)
modify_failedModification has failed.
modify_failed_pwd_errThe user name or password is incorrect when changing IPC's IP address.
modify_failed_syntax_errA format error occurred when the IPC IP address, subnet mask, or gateway was modified.
Searchsearch_failedThe search has failed. "data" will contain "remain_locked_time", indicating the remaining lock time.
Playbackdevice_play_lockedThe device is playing back and rejecting the web request.
Operationoperation_failedOperation has failed.
Modify the user name, password, and permissionsession_invalid
illegal_requestIllegal request.
overreach Subusers can only set their own information.
short_modify_timeThe interval between password changes is too short.
current_pwd_errorPassword error.
username_emptyThe user name is empty.
username_repeatThe current user name is the same as the existing user name.
username_invalidThe user name can only contain letters, digits, and underscores.
unmatched_pwdThe two passwords are different.
pwd_emptyThe password is empty.
pwd_length_errPassword length error.
pwd_equal_nameThe password cannot be the same as the user name or the user name typed backwards.
pwd_equal_oldThe new password cannot be the same as the previous passwords. "data" will contain "number", which represents the number of times.
pwd_repeatedThe new password must be different from the old password by at least two characters.
pwd_weak_ruleThe password must contain at least two of the following combinations: lowercase letters, uppercase letters, digits, special characters, and Spaces.
pwd_riskThe password belongs to the weak password dictionary.
pwd_invalidInvalid password.
Email testinguser_auth_failedUser authentication failure.
data_errorThere are some errors in the data sent.
net_unreachable_or_dns_wrongThe network is unreachable or the DNS is wrong.
connect_server_errFailed to connect to server.
check_smtp_portThe connection failed. Please check whether the port is correct.
tls_ssl_handshake_errThe TLS/SSL handshake failed.
email_connect_errConnection error, please check the recipient account.
Upgradein_user_interfaceThe device is in operation.
updatingThe device is being upgraded.
lack_memoryThe device lacks memory.
file_errorFile error.
no_need_upgradeThe current version is the latest and does not need to be updated.
HTTPnot_modifiedNo modification. (304)
http_redirect_httpshttp redirects to https. (307)
not_foundNot found.(404)
method_not_allowedRequest method does not allow. (405)
payload_too_largePayload too large. (413)
uri_too_longURI too long. (414)
internal_server_errorInternal server error. (500)
service_unavailable_errorThe service is unavailable. The number of tcp connections exceeded the maximum. (503)

System

Configure and operate the general system functions.

To be added.

General

Function

This API is used for get or set General page parameters.

URI

POST /API/SystemConfig/General/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range, Get, Set.

Range

Function

This API is used to get parameter range for System > General page.

Note:

The Range provides reference information for client UI input limits and API request limits. When sending Get and Set requests, the parameters must be strictly limited according to the Range, otherwise the request may be rejected by the device.

Request Message

None.

Sample:

POST /API/SystemConfig/General/Range HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 1

ParameterRangeTypeDescription
device_nameMax length: 31bytestringDevice name
menu_timeouts0,30,60,120,300,600int32Menu auto lock Time,in seconds.
FisheyeOrAI"Fisheye"
"AI"
stringOnly for NVR. AI and Fisheye are mutually exclusive.
session_timeout5-1440int32Web session timeout time,in minutes.
preview_session_timeoutbooleanbooleanPreview/playback session timed out switch.

Tips:

The response message of the Range request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "device_name": {
            "type": "string",
            "min_len": 1,
            "max_len": 31
        },
        "menu_timeouts": {
            "type": "int32",
            "unit": "second",
            "items": [
                0,
                30,
                60,
                120,
                300,
                600
            ]
        },
        "session_timeout": {
            "type": "int32",
            "min": 5,
            "max": 1440
        },
        "preview_session_timeout": {
            "type": "bool"
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get parameter for System > General page.

Request Message

None.

Sample:

POST /API/SystemConfig/General/Get HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

See System > General > Range > Parameter Description > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "device_name": "N5208EN",
        "menu_timeouts": 30,
        "session_timeout": 5,
        "preview_session_timeout": true
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set parameter for System > General page.

Request Message

See System > General > Range > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/SystemConfig/General/Set HTTP/1.1
{
	"version": "1.0",
	"data": {
		"device_name": "admin",
		"menu_timeouts": 60,
		"session_timeout": 1440,
		"preview_session_timeout": false
	}
}

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Data&Time

Function

This API is used for get or set Data&Time page parameters.

URI

POST /API/SystemConfig/DateTime/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range, Get, Set.

Range

Function

This API is used to get parameter range for System > Date&Time page.

Note:

The Range provides reference information for client UI input limits and API request limits. When sending Get and Set requests, the parameters must be strictly limited according to the Range, otherwise the request may be rejected by the device.

Request Message

None.

Sample:

POST /API/SystemConfig/DateTime/Range HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 1

ParameterRangeTypeDescription
dateThe format is the same as described in the date_format fieldstringSystem date
timeThe format is : hh:mm:ssstringSystem time
synchronize_computer_timebooleanbooleanOnly for IPC,synchronize computer time switch
date_format"MM/DD/YYYY"
"YYYY-MM-DD"
"DD/MM/YYYY"
stringDate format
time_format12,24int32Time format,in hour
time_zone"GMT-12:00"
"GMT-11:00"
"GMT-10:00"
"GMT-9:00"
"GMT-8:00"
"GMT-7:00"
"GMT-6:00"
"GMT-5:00"
"GMT-4:30"
"GMT-4:00"
"GMT-3:30"
"GMT-3:00"
"GMT-2:00"
"GMT-1:00"
"GMT"
"GMT+1:00"
"GMT+2:00"
"GMT+3:00"
"GMT+3:30"
"GMT+4:00"
"GMT+4:30"
"GMT+5:00"
"GMT+5:30"
"GMT+5:45"
"GMT+6:00"
"GMT+6:30"
"GMT+7:00"
"GMT+8:00"
"GMT+9:00"
"GMT+9:30"
"GMT+10:00"
"GMT+11:00"
"GMT+12:00"
"GMT+13:00"
stringTime zone

Tips:

The response message of the Range request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json

{
    "result": "success",
    "data": {
        "date": {
            "type": "string",
            "len": 10
        },
        "time": {
            "description": "The time format is hh:mm:ss",
            "type": "string",
            "len": 8
        },
        "date_format": {
            "type": "string",
            "items": [
                "MM/DD/YYYY",
                "YYYY-MM-DD",
                "DD/MM/YYYY"
            ]
        },
        "time_format": {
            "type": "int32",
            "unit": "hour",
            "items": [
                24,
                12
            ]
        },
        "time_zone": {
            "type": "string",
            "items": [
                "GMT-12:00",
                "GMT-11:00",
                "GMT-10:00",
                "GMT-9:00",
                "GMT-8:00",
                "GMT-7:00",
                "GMT-6:00",
                "GMT-5:00",
                "GMT-4:30",
                "GMT-4:00",
                "GMT-3:30",
                "GMT-3:00",
                "GMT-2:00",
                "GMT-1:00",
                "GMT",
                "GMT+1:00",
                "GMT+2:00",
                "GMT+3:00",
                "GMT+3:30",
                "GMT+4:00",
                "GMT+4:30",
                "GMT+5:00",
                "GMT+5:30",
                "GMT+5:45",
                "GMT+6:00",
                "GMT+6:30",
                "GMT+7:00",
                "GMT+8:00",
                "GMT+9:00",
                "GMT+9:30",
                "GMT+10:00",
                "GMT+11:00",
                "GMT+12:00",
                "GMT+13:00"
            ]
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get parameter for System > Date&Time page.

Request Message

None.

Sample:

POST /API/SystemConfig/DateTime/Get HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

See System > Date&Time > Range > Parameter Description > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "date": "06/15/2023",
        "time": "20:08:47",
        "date_format": "MM/DD/YYYY",
        "time_format": 12,
        "time_zone": "GMT+8:00"
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set parameter for System > Date&Time page.

Request Message

See System > Date&Time > Range > Parameter Description > Table 1 for parameter description.

Tips

The time field is sent only when the time parameter is modified, otherwise the system time will be rolled back. Because when the system time obtained by Get request, the system time has already passed.

Even if you have implemented the clock function on the client, and have not stopped the obtained time at the moment of the request, do not send Set request frequently, because network transmission also takes time, and sending Set request frequently will make the transmission time superimposed on the time deviation.

Sample:

POST /API/SystemConfig/DateTime/Set HTTP/1.1

Without time field

{
    "version": "1.0",
    "data": {
        "date_format": "MM/DD/YYYY",
        "time_format": 12,
        "time_zone": "GMT+8:00"
    }
}

With time field

{
    "version": "1.0",
    "data": {
		"date": "01/01/1970",
		"time": "00:00:00",
        "date_format": "MM/DD/YYYY",
        "time_format": 12,
        "time_zone": "GMT+8:00"
    }
}

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

General

Function

This API is used for get or set NTP page parameters.

URI

POST /API/SystemConfig/NTP/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range, Get, Set.

Range

Function

This API is used to get parameter range for System > NTP page.

Note:

The Range provides reference information for client UI input limits and API request limits. When sending Get and Set requests, the parameters must be strictly limited according to the Range, otherwise the request may be rejected by the device.

Request Message

None.

Sample:

POST /API/SystemConfig/NTP/Range HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 1

ParameterRangeTypeDescription
ntp_enablebooleanbooleanNTP switch
server"time.windows.com"
"time.nist.gov"
"pool.ntp.org"
"UserDefined"
stringNTP server address
custom_serverMax length: 63bytestringCustom server address.
Use this field when the server field is "UserDefined".
sync_period0-65535int32NTP server synchronization period

Tips:

The response message of the Range request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "ntp_enable": {
            "type": "bool"
        },
        "server": {
            "type": "string",
            "items": [
                "time.windows.com",
                "time.nist.gov",
                "pool.ntp.org",
                "UserDefined"
            ]
        },
        "custom_server": {
            "type": "string",
            "min_len": 0,
            "max_len": 63
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get parameter for System > NTP page.

Request Message

None.

Sample:

POST /API/SystemConfig/NTP/Get HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

See System > NTP > Range > Parameter Description > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "ntp_enable": false,
        "server": "pool.ntp.org",
        "custom_server": ""
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set parameter for System > NTP page.

Request Message

See System > NTP > Range > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/SystemConfig/NTP/Set HTTP/1.1
{
    "version": "1.0",
    "data": {
        "ntp_enable": false,
        "server": "pool.ntp.org",
        "custom_server": ""
    }
}

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Output

Function

This API is used for get or set Output page parameters.

URI

POST /API/SystemConfig/Output/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range, Get, Set.

Range

Function

This API is used to get parameter range for System > Output page.

Note:

The Range provides reference information for client UI input limits and API request limits. When sending Get and Set requests, the parameters must be strictly limited according to the Range, otherwise the request may be rejected by the device.

Request Message

None.

Sample:

POST /API/SystemConfig/Output/Range HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 1

ParameterRangeTypeDescription
outputobjectOutput object,see Table 2 for more information

Table 2

Output object

ParameterRangeTypeDescription
LIVE-OUTobjectLIVE-OUT object,see Table 3 for more information

Table 3

LIVE-OUT object

ParameterRangeTypeDescription
output_resolution"1024x768"
"1280x1024"
"1440x900"
"720P(1280x720)"
"1080P(1920x1080)"
"1600x1200"
"1920x1200"
"2K(2560x1440)"
"4K(3840x2160)"
stringThe VGA resolution of the current output display, the maximum range depends on the maximum resolution supported by the device.

Tips:

The response message of the Range request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "output": {
            "type": "object",
            "items": {
                "LIVE-OUT": {
                    "type": "object",
                    "items": {
                        "output_resolution": {
                            "type": "string",
                            "items": [
                                "1024x768",
                                "1280x1024",
                                "1440x900",
                                "720P(1280x720)",
                                "1080P(1920x1080)",
                                "1600x1200",
                                "1920x1200",
                                "2K(2560x1440)",
                                "4K(3840x2160)"
                            ]
                        }
                    }
                }
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get parameter for System > Output page.

Request Message

None.

Sample:

POST /API/SystemConfig/Output/Get HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

See System > Output > Range > Parameter Description > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "output": {
            "LIVE-OUT": {
                "output_resolution": "1280x1024"
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set parameter for System > Output page.

Request Message

See System > Output > Range > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/SystemConfig/Output/Set HTTP/1.1
{
    "version": "1.0",
    "data": {
        "output": {
            "LIVE-OUT": {
                "output_resolution": "1280x1024"
            }
        }
    }
}

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

DST

Function

This API is used for get or set Daylight Saving Time (DST) page parameters.

URI

POST /API/SystemConfig/DST/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range, Get, Set.

Range

Function

This API is used to get the parameter range of the System > DST page

Note:

Range Provides reference information on client UI limits and API request limits. When sending Get and Set request, the parameters must be limited strictly according to the Range, or request may be machine rejected.

Request Message

None.

Sample:

POST /API/SystemConfig/DST/Range HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 1

ParameterRangeTypeDescription
dst_enablebooleanbooleanDST function switch
support_crossyearbooleanWhether to support of crossing year.
time_offset1,2intDST offset value.Unit: hour
dst_mode"Week", "Date"stringDST pattern
start_datestringDST startdate.
The date format is MM/DD/YYYY
end_datestringDST end date.
The date format is MM/DD/YYYY
start_hourstringDST start time.
The time format is hh:mm:ss
end_hourstringDST end time. For example : "00:20:00”
The time format is hh:mm:ss
start_month"Jan",
"Feb",
"Mar",
"Apr",
"May",
"Jun",
"Jul",
"Aug",
"Sep",
"Oct",
"Nov",
"Dec"
stringStart month
end_monthWhich in accordance with "start_month"stringEnd month
start_week"1st",
"2nd",
"3rd",
"4th",
"Last"
stringThe week of the month
end_weekWhich in accordance with "start_week"stringThe week of the month
start_weekday"Sun",
"Mon",
"Tue",
"Wed",
"Thu",
"Fri",
"Sat"
stringWhich day start from.
end_weekdayWhich in accordance with "start_weekday"stringWhich day end of

Tips:

The response message of the Range request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {
		"dst_enable": {
			"type": "bool"
		},
		"time_offset": {
			"type": "int32",
			"unit": "hour",
			"items": [
				1,
				2
			]
		},
		"dst_mode": {
			"description": "Week mode:month week weekday hour; Date mode:date hour.",
			"type": "string",
			"items": [
				"Week",
				"Date"
			]
		},
		"start_date": {
			"description": "The date format is MM/DD/YYYY",
			"type": "string",
			"len": 10
		},
		"end_date": {
			"description": "The date format is MM/DD/YYYY",
			"type": "string",
			"len": 10
		},
		"start_hour": {
			"description": "The time format is hh:mm:ss",
			"type": "string",
			"len": 8
		},
		"end_hour": {
			"description": "The time format is hh:mm:ss",
			"type": "string",
			"len": 8
		},
		"start_month": {
			"type": "string",
			"items": [
				"Jan",
				"Feb",
				"Mar",
				"Apr",
				"May",
				"Jun",
				"Jul",
				"Aug",
				"Sep",
				"Oct",
				"Nov",
				"Dec"
			]
		},
		"end_month": {
			"type": "string",
			"items": [
				"Jan",
				"Feb",
				"Mar",
				"Apr",
				"May",
				"Jun",
				"Jul",
				"Aug",
				"Sep",
				"Oct",
				"Nov",
				"Dec"
			]
		},
		"start_week": {
			"type": "string",
			"items": [
				"1st",
				"2nd",
				"3rd",
				"4th",
				"Last"
			]
		},
		"end_week": {
			"type": "string",
			"items": [
				"1st",
				"2nd",
				"3rd",
				"4th",
				"Last"
			]
		},
		"start_weekday": {
			"type": "string",
			"items": [
				"Sun",
				"Mon",
				"Tue",
				"Wed",
				"Thu",
				"Fri",
				"Sat"
			]
		},
		"end_weekday": {
			"type": "string",
			"items": [
				"Sun",
				"Mon",
				"Tue",
				"Wed",
				"Thu",
				"Fri",
				"Sat"
			]
		},
		"support_crossyear": {
			"type": "bool"
		}
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get parameter for System > DST page.

Request Message

None.

Sample:

POST /API/SystemConfig/DST/Get HTTP/1.1
{
    "version": "1.0",
}

Response Message

See System > DST > Range > Parameter Description > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {
		"dst_enable": true,
		"time_offset": 1,
		"dst_mode": "Week",
		"start_month": "Apr",
		"end_month": "Mar",
		"start_week": "4th",
		"end_week": "3rd",
		"start_weekday": "Mon",
		"end_weekday": "Mon",
		"start_date": "10/10/2021",
		"end_date": "01/03/2022",
		"start_hour": "02:00:00",
		"end_hour": "04:00:00",
		"support_crossyear": true
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set parameter for System > DST page.

Request Message

See System > DSTl > Range > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/SystemConfig/DST/Set HTTP/1.1
{
	"data": {
		"dst_enable": true,
		"dst_mode": "Week",
		"end_date": "01/03/2022",
		"end_hour": "04:00:00",
		"end_month": "Mar",
		"end_week": "3rd",
		"end_weekday": "Mon",
		"start_date": "10/10/2021",
		"start_hour": "02:00:00",
		"start_month": "Apr",
		"start_week": "4th",
		"start_weekday": "Mon",
		"support_crossyear": true,
		"time_offset": 1
	},
	"version": "1.0"
}

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Channel Information

Function

This API is used for get or set Channel Information parameters.

URI

POST /API/SystemConfig/Channel/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including only Get.

Get

Function

This API is used to get parameter for System > Channel Information page.

Request Message

None.

Sample:

POST /API/SystemInfo/Channel/Get HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 1

ParameterRangeTypeDescription
channel_infoJson ObjectSingle Channel Information JSON show as follow Table 2
channel_maxintMaximum number of channels

Table 2

ParameterRangeTypeDescription
CH1Json ObjectJSON show as follow Table 3
Json Object
IP_CH1Json Object
Json Object
WIFI_CH1Json Object
Json Object

Table 3

ParameterRangeTypeDescription
channelstringChannel number
aliasstringIP Camera alias.
state"Offline",
"Online"
stringIP Camera connection status.
mainstream"Resolution",
FrameRate",
"Bitrate"
stringIP Camera's mainstream information.
substreamSame as "mainstream" fieldstringIP Camera's mobile stream information.
mobile_streamSame as "mainstream" fieldstringIP Camera's substream information.
motion_detection"Support",
"Nonsupport"
stringMotion Detection.
privacy_zone"Support",
" Nonsupport"
stringPrivacy Zone.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {
		"channel_info": {
			"CH5": {
				"alias": "CH5",
				"state": "Offline"
			},
			"CH6": {
				"alias": "CH6",
				"state": "Offline"
			},
			"CH7": {
				"alias": "CH7",
				"state": "Offline"
			},
			"CH8": {
				"alias": "CH8",
				"state": "Online",
				"mainstream": "1920x1080, 30Fps, 2Mbps",
				"substream": "1280x720, 25Fps, 1024Kbps",
				"mobile_stream": "640x480, 30Fps, 512Kbps",
				"motion_detection": "Support",
				"privacy_zone": "Support"
			},
			"CH11": {
				"alias": "CH11",
				"state": "Offline"
			},
			"CH14": {
				"alias": "CH14",
				"state": "Online",
				"mainstream": "1920x1080, 25Fps, 1024Kbps",
				"substream": "1280x720, 25Fps, 1024Kbps",
				"mobile_stream": "640x480, 25Fps, 512Kbps",
				"motion_detection": "Support",
				"privacy_zone": "Support"
			},
			"CH15": {
				"alias": "CH15",
				"state": "Online",
				"mainstream": "2560x1440, 25Fps, 4Mbps",
				"substream": "1280x720, 25Fps, 1024Kbps",
				"mobile_stream": "640x480, 25Fps, 512Kbps",
				"motion_detection": "Support",
				"privacy_zone": "Support"
			},
			"CH16": {
				"alias": "CH16",
				"state": "Offline"
			}
		},
		"channel_max": 16
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

System Information

Function

This API is used for get or set System Information page parameters.

URI

POST /API/SystemInfo/Base/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including only Get.

Get

Function

This API is used to get parameter for System > System Information page.

Request Message

None.

Sample:

POST /API/SystemInfo/Base/Get HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 1

ParameterRangeTypeDescription
device_idstringDeviceID
device_namestringDeviceName
device_typestringDeviceType
hardware_versionstringHardwareVersion
software_versionstringSoftwareVersion
build_timestringrelease time
ie_client_versionstringIE Client Version
mcu_software_versionstringMCU software version
video_format“PAL”,
“NTSC”
stringVideo Format
hdd_volumestringHDD Volume
ip_addressstringIP Address
ipv6_addressstringIPv6 Address
webstringWeb Internal port ,Web external port
clientstringClient Internal port , Clientexternal port
mac_addressstringMAC Address
wireless_macstringWireless MAC
p2p_idstringP2P ID
p2p_switchboolean
network_state“Connected”,
“Unconnected”
stringNetwork connection status
serialNumstringSerial Number(B18)
languagestringThe current language of the device

Tips:

Later products will integrate the web port and the client port, and the client port will not be opened and the item will be removed from the page. For example, do not consider this port when the customer performs development interconnection.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {
		"device_id": "000000",
		"device_name": "admin",
		"device_type": "N7516",
		"hardware_version": "DM-448",
		"software_version": "V8.2.3-20221014",
		"ie_client_version": "V1.3.1.45",
		"video_format": "NTSC",
		"hdd_volume": "465G",
		"ip_address": "172.16.10.49",
		"ipv6_address": "fe80::8a26:1dff:feaa:8ee0 / 64",
		"web": "80,80",
		"client": "9000,9000",
		"mac_address": "88-26-1D-AA-8E-E0",
		"network_state": "Connected",
		"iot_id": "",
		"language": "English"
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Record Information

Function

This API is used for get or set Record Information page parameters.

URI

POST /API/SystemInfo/Record/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Get

Get

Function

This API is used to get parameter for System > Record Information page.

Request Message

None.

Sample:

POST /API/SystemInfo/Record/Get HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 1

ParameterRangeTypeDescription
channel_infoobjectchannel_info object,see Table 2 for more information

Table 2

Channel info object

ParameterRangeTypeDescription
channelCH1
IP_CH1
WIFI_CH1
objectchannel Table 3 for more information

Table 3

Channel object

ParameterRangeTypeDescription
channelstringChannel Number
record_stateOn
Off
stringRecord State
record_switchboolRecord Switch
stream_typeMainstream
Substream
DualStream
stringVideo stream type
resolutionstringResolution:Format: “Main Stream Resolution / Sub Stream Resolution”
fpsstringIP Camera's mainstream frame rate.(/Fps)Format:”Main Stream FPS / Sub Stream FPS”
bitratestringIP Camera's mainstream bitrate rate.(/Kbps)Format:”Main Stream Bitrate / Sub Stream Bitrate”

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_info": {
            "CH5": {
                "record_state": "Off",
                "record_switch": "Enable"
            },
            "CH6": {
                "record_state": "Off",
                "record_switch": "Enable"
            },
            "CH7": {
                "record_state": "Off",
                "record_switch": "Enable"
            },
            "CH8": {
                "record_state": "On",
                "record_switch": "Enable",
                "stream_type": "DualStream",
                "resolution": "1920x1080 | 1280x720",
                "fps": "30Fps | 25Fps",
                "bitrate": "2Mbps | 1024Kbps"
            },
            "CH11": {
                "record_state": "Off",
                "record_switch": "Enable"
            },
            "CH14": {
                "record_state": "On",
                "record_switch": "Enable",
                "stream_type": "DualStream",
                "resolution": "1920x1080 | 1280x720",
                "fps": "25Fps | 25Fps",
                "bitrate": "1024Kbps | 1024Kbps"
            },
            "CH15": {
                "record_state": "Off",
                "record_switch": "Enable"
            },
            "CH16": {
                "record_state": "Off",
                "record_switch": "Enable"
            }
        },
        "channel_max": 16
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Network State

Function

This API is used for get or set Network State page parameters.

URI

POST /API/SystemInfo/Network/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Get

Get

Function

This API is used to get parameter for System > Network State page.

Request Message

None.

Sample:

POST /API/SystemInfo/Network/Get HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 1

ParameterRangeTypeDescription
wanobjectWan object,see System > Network State > Get > Parameter Description > Table 2 for more information
lanobjectLan object,see System > Network State > Get > Parameter Description > Table 3 for more information
portobjectPort object,see System > Network State > Get > Parameter Description > Table 4 for more information
bandwidthobjectBandwidth object,see System > Network State > Get > Parameter Description > Table 5 for more information
lan1objectLan1 object,see System > Network State > Get > Parameter Description > Table 6 for more information.(used in new network card mode)
lan2objectLan2 object,see System > Network State > Get > Parameter Description > Table 7 for more information.(used in new network card mode)
poeobjectPoe object,see System > Network State > Get > Parameter Description > Table 8 for more information.(used in new network card mode)
pppoeEnable
Disable
stringPPPoE function switch
3gEnable
Disable
string3G network function switch
wifiEnable
Disable
stringWIFI function switch
toeEnable
Disable
stringTOE Acceleration sign

Table 2

Wan object

ParameterRangeTypeDescription
dhcpEnable
Disable
stringDHCP function switch
ip_addressstringIP address, for example: 192.168.1.24
subnet_maskstringSubnet mask, for example: 255.255.255.0
gatewaystringDefault gateway, for example: 192.168.1.1
mac_addressstringPhysical address, such as 88-60-50-4E-87-29
ipv6_addressMax length: 46 bytestringIpv6 address
ipv6_gatewayMax length: 46 bytestringIPv6 gateway

Table 3

Lan object

ParameterRangeTypeDescription
ip_addressstringSwitch IP address
subnet_maskstringSwitch Subnet Mask

Table 4

Port object

ParameterRangeTypeDescription
web
client
rtsp
https
Port,Export,ExportState,Upnpstring
string
string
string
Format: "Internal Port Number, External Port Number, Port UPnP Function Status, Port Enable UPnP Function"
{ExportState:” Active”,” Inactive”}
{Upnp:” Enable”,” Disable”}

Table 5

Bandwidth object

ParameterRangeTypeDescription
Total_BandwidthstringTotal bandwidth
Used_BandwidthstringUsed bandwidth

Table 6

Lan1 Object

ParameterRangeTypeDescription
DhcpEnable
Disable
stringIPv4 DHCP function switch
IP_AddressstringIP address, for example: 192.168.1.24
Subnet_MaskstringSubnet mask, for example: 255.255.255.0
GatewaystringDefault gateway, for example: 192.168.1.1
Dhcpv6Enable
Disable
stringIPv6 DHCP function switch
Ipv6_AddressstringIPv6 address
Ipv6_Prefixlenint
Ipv6_GatewaystringIPv6 gateway
Mac_AddressstringPhysical address, for example: 88-60-50-4E-87-29

Table 7

Lan2 Object

ParameterRangeTypeDescription
DhcpEnable
Disable
stringIPv4 DHCP function switch
IP_AddressstringIP address, for example: 192.168.1.24
Subnet_MaskstringSubnet mask, for example: 255.255.255.0
GatewaystringDefault gateway, for example: 192.168.1.1
Dhcpv6Enable
Disable
stringIPv6 DHCP function switch
Ipv6_AddressstringIPv6 address
Ipv6_Prefixlenint
Ipv6_GatewaystringIPv6 gateway
Mac_AddressstringPhysical address, for example: 88-60-50-4E-87-29

Table 8

Poe object

ParameterRangeTypeDescription
poe_dhcpEnable
Disable
stringPoe DHCP function switch
poe_ip_addressstringPOE IP address, for example: 192.168.1.24
poe_subnet_maskstringPOE subnet mask, for example: 255.255.255.0

Please note that future products will integrate the web and client ports, and the client port will not be opened and this item will be removed from the page in the future. If customers are doing development docking, please do not consider this port again.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "wan": {
            "dhcp": "Disable",
            "ip_address": "172.16.10.49",
            "subnet_mask": "255.255.252.0",
            "gateway": "172.16.8.1",
            "mac_address": "88-26-1D-AA-8E-E0",
            "ipv6_address": "fe80::8a26:1dff:feaa:8ee0 / 64",
            "ipv6_gateway": "fe80::/64"
        },
        "dns1": "172.18.1.222",
        "dns2": "8.8.8.8",
        "pppoe": "Enable",
        "State": "Connectting",
        "port": {
            "web": "80,80,Inactive,Enable",
            "client": "9000,9000,Inactive,Disable"
        },
        "bandwidth": {
            "total_bandwidth": "114688Kbps",
            "used_bandwidth": "6144Kbps"
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Privacy Statement

Function

This API is used for get or set Privacy Statement page parameters.

URI

POST /API/SystemConfig/Statement/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range,Get

Range

Function

This API is used to get parameter range for System > Privacy Statement page.

Request Message

None.

Sample:

POST /API/SystemConfig/Statement/Range HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 1

ParameterRangeTypeDescription
statement_file_namestringFiles that need to be displayed remotely.

Tips:

The response message of the Range request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "statement_file_name": {
            "type": "string",
            "min_len": 1,
            "max_len": 48
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get parameter for System > Privacy Statement page.

Request Message

None.

Sample:

POST /API/SystemConfig/Statement/Get HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

See System > Privacy Statement > Range > Parameter Description > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "statement_file_name": "privacy_statement"
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Network

DDNS

Function

This API is used for get or set or test DDNS parameters.

URI

POST /API/NetworkConfig/DDNS/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action,including RangeGetSetTest.

Range

Function

This API is used to get the parameter range of Network > DDNS.

Request Message

None

Sample:

POST /API/NetworkConfig/DDNS/Range HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 1
ParameterRangeTypeDescription
ddns_enableboolDdns funtion switch.
server"DDNS_3322",
"DYNDNS",
"NO_IP",
"CHANGEIP",
"DNSEXIT"
stringDDNS server IP address or name
domainMax length: 35 bytestringHost name of this device
domain_suffixstringDomain suffix
usernamestring length:0-32stringDDNS user name.
passwordstring length:0-32stringDDNS user password.(Only indicate the range in Range, deprecated in Get, Set and Test, pass empty)
password_emptyboolIs the password empty
service_idstringB03 dedicated
test_befault_saveboolDo you need to test before saving? The default is FALSE.
base_enc_passwordJson ObjectEncrypted Password,see base_enc_password for more information.
api_keystring length:0-32stringdnsexit api-key.
api_key_emptyboolWhether the api-key can be empty
base_enc_api_keyJson ObjectEncrypted api-key, same as base_enc_password, see base_enc_password for more information.
api_key_url"https://dnsexit.com"stringOfficial website of dnsexit service provider.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "ddns_enable": {
            "type": "bool"
        },
        "server": {
            "type": "string",
            "items": [
                "DYNDNS",
                "NO_IP",
                "CHANGEIP",
                "DNSEXIT"
            ]
        },
        "domain": {
            "description": "Each range {min_len,max_len} corresponds to one ddns_enable state [false,true].",
            "type": "string",
            "mode": "rw",
            "ranges": [
                {
                    "min_len": 0,
                    "max_len": 35
                },
                {
                    "min_len": 1,
                    "max_len": 35
                }
            ]
        },
        "username": {
            "description": "Each range {min_len,max_len} corresponds to one ddns_enable state [false,true].",
            "type": "string",
            "mode": "rw",
            "ranges": [
                {
                    "min_len": 0,
                    "max_len": 32
                },
                {
                    "min_len": 1,
                    "max_len": 32
                }
            ]
        },
        "password": {
            "description": "Each range {min_len,max_len} corresponds to one ddns_enable state [false,true].",
            "type": "string",
            "mode": "rw",
            "ranges": [
                {
                    "min_len": 0,
                    "max_len": 32
                },
                {
                    "min_len": 1,
                    "max_len": 32
                }
            ]
        },
        "api_key": {
            "description": "Each range {min_len,max_len} corresponds to one ddns_enable state [false,true].",
            "type": "string",
            "mode": "rw",
            "ranges": [
                {
                    "min_len": 0,
                    "max_len": 32
                },
                {
                    "min_len": 1,
                    "max_len": 32
                }
            ]
        },
        "password_empty": {
            "type": "bool"
        },
        "api_key_empty": {
            "type": "bool"
        },
        "domain_suffix": {
            "type": "string",
            "items": [
                "",
                "",
                "",
                ""
            ]
        },
        "test_befault_save": {
            "type": "bool"
        },
        "api_key_url": "https://dnsexit.com",
        "server_content": {
            "type": "object",
            "items": {
                "DYNDNS": {
                    "type": "string",
                    "items": [
                        "domain",
                        "username",
                        "password",
                        "ddnstest"
                    ]
                },
                "NO_IP": {
                    "type": "string",
                    "items": [
                        "domain",
                        "username",
                        "password",
                        "ddnstest"
                    ]
                },
                "CHANGEIP": {
                    "type": "string",
                    "items": [
                        "domain",
                        "username",
                        "password",
                        "ddnstest"
                    ]
                },
                "DNSEXIT": {
                    "type": "string",
                    "items": [
                        "domain",
                        "api_key",
                        "ddnstest"
                    ]
                }
            }
        },
        "ddns_v1": {
            "type": "object",
            "items": {
                "DYNDNS": {
                    "type": "object",
                    "items": {
                        "domain": {
                            "description": "Each range {min_len,max_len} corresponds to one ddns_enable state [false,true].",
                            "type": "string",
                            "mode": "rw",
                            "ranges": [
                                {
                                    "min_len": 0,
                                    "max_len": 35
                                },
                                {
                                    "min_len": 1,
                                    "max_len": 35
                                }
                            ]
                        },
                        "username": {
                            "description": "Each range {min_len,max_len} corresponds to one ddns_enable state [false,true].",
                            "type": "string",
                            "mode": "rw",
                            "ranges": [
                                {
                                    "min_len": 0,
                                    "max_len": 32
                                },
                                {
                                    "min_len": 1,
                                    "max_len": 32
                                }
                            ]
                        },
                        "password": {
                            "description": "Each range {min_len,max_len} corresponds to one ddns_enable state [false,true].",
                            "type": "string",
                            "mode": "rw",
                            "ranges": [
                                {
                                    "min_len": 0,
                                    "max_len": 32
                                },
                                {
                                    "min_len": 1,
                                    "max_len": 32
                                }
                            ]
                        }
                    }
                },
                "NO_IP": {
                    "type": "object",
                    "items": {
                        "domain": {
                            "description": "Each range {min_len,max_len} corresponds to one ddns_enable state [false,true].",
                            "type": "string",
                            "mode": "rw",
                            "ranges": [
                                {
                                    "min_len": 0,
                                    "max_len": 35
                                },
                                {
                                    "min_len": 1,
                                    "max_len": 35
                                }
                            ]
                        },
                        "username": {
                            "description": "Each range {min_len,max_len} corresponds to one ddns_enable state [false,true].",
                            "type": "string",
                            "mode": "rw",
                            "ranges": [
                                {
                                    "min_len": 0,
                                    "max_len": 32
                                },
                                {
                                    "min_len": 1,
                                    "max_len": 32
                                }
                            ]
                        },
                        "password": {
                            "description": "Each range {min_len,max_len} corresponds to one ddns_enable state [false,true].",
                            "type": "string",
                            "mode": "rw",
                            "ranges": [
                                {
                                    "min_len": 0,
                                    "max_len": 32
                                },
                                {
                                    "min_len": 1,
                                    "max_len": 32
                                }
                            ]
                        }
                    }
                },
                "CHANGEIP": {
                    "type": "object",
                    "items": {
                        "domain": {
                            "description": "Each range {min_len,max_len} corresponds to one ddns_enable state [false,true].",
                            "type": "string",
                            "mode": "rw",
                            "ranges": [
                                {
                                    "min_len": 0,
                                    "max_len": 35
                                },
                                {
                                    "min_len": 1,
                                    "max_len": 35
                                }
                            ]
                        },
                        "username": {
                            "description": "Each range {min_len,max_len} corresponds to one ddns_enable state [false,true].",
                            "type": "string",
                            "mode": "rw",
                            "ranges": [
                                {
                                    "min_len": 0,
                                    "max_len": 32
                                },
                                {
                                    "min_len": 1,
                                    "max_len": 32
                                }
                            ]
                        },
                        "password": {
                            "description": "Each range {min_len,max_len} corresponds to one ddns_enable state [false,true].",
                            "type": "string",
                            "mode": "rw",
                            "ranges": [
                                {
                                    "min_len": 0,
                                    "max_len": 32
                                },
                                {
                                    "min_len": 1,
                                    "max_len": 32
                                }
                            ]
                        }
                    }
                },
                "DNSEXIT": {
                    "type": "object",
                    "items": {
                        "domain": {
                            "description": "Each range {min_len,max_len} corresponds to one ddns_enable state [false,true].",
                            "type": "string",
                            "mode": "rw",
                            "ranges": [
                                {
                                    "min_len": 0,
                                    "max_len": 35
                                },
                                {
                                    "min_len": 1,
                                    "max_len": 35
                                }
                            ]
                        },
                        "api_key": {
                            "description": "Each range {min_len,max_len} corresponds to one ddns_enable state [false,true].",
                            "type": "string",
                            "mode": "rw",
                            "ranges": [
                                {
                                    "min_len": 0,
                                    "max_len": 32
                                },
                                {
                                    "min_len": 1,
                                    "max_len": 32
                                }
                            ]
                        }
                    }
                }
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get parameter for Network>DDNS.

Request Message

None.

Sample:

POST /API/NetworkConfig/DDNS/Get HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

See Network > DDNS > Range > Parameter Description > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "version": "1.0",
    "result": "success",
    "data": {
        "ddns_enable": true,
        "server": "NO_IP",
        "domain": "172.16.11.333",
        "username": "admin",
        "password": "",
        "password_empty": false,
        "api_key_empty": true,
        "test_befault_save": false
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set parameter for Network > DDNS.

Request Message

Parameter Description

See Network > DDNS > Range > Parameter > Table 1 for parameter description.

Sample:

POST /API/NetworkConfig/DDNS/Set HTTP/1.1
{
    "version": "1.0",
    "data": {
        "ddns_enable": true,
        "server": "NO_IP",
        "domain": "172.16.11.333",
        "username": "admin",
        "password_empty": false,
        "api_key_empty": true,
        "test_befault_save": false,
        "base_enc_password": {
            "seq": 0,
            "peer_key": "0mxizZ01CLypE9BhtfCNXAAwrpLR8W3wN95GKLSqpLEg=",
            "cipher": "0bCgObu9WoTP6k5pSpSGL98RBG2WK6T5Osmctk6BGxbE5e/KG"
        }
    }
}

Response Message

None.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result":"success",
    "data":{}
}

Error Code

See Response Messages Body and Common error_code for more information.

Test

Function

This API is used to test parameter for Network > DDNS.

Request Message

Parameter Description

See Network > DDNS > Range > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/NetworkConfig/DDNS/Test HTTP/1.1
{
  "version": "1.0",
    "data": {
        "ddns_enable": true,
        "server": "NO_IP",
        "domain": "172.16.11.333",
        "username": "admin",
        "password_empty": false,
        "api_key_empty": true,
        "test_befault_save": false,
        "base_enc_password": {
            "seq": 0,
            "peer_key": "0xODk3zoBTV+3MLNIjTSdV+GYzi3f38bH2UFX59Nk1R0=",
            "cipher": "0EmzlXN55rYmHMFN54IQTc/lYQrzp/0x2JT12Dbw1nbQN2O1v"
        }
    }
}

Response Message

None.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Email

Function

This API is used for get or set or test Email parameters.

URI

POST /API/NetworkConfig/Email/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequriedDescription
ActionYesRequest action,including RangeGetSetTest.

Range

Function

This API is used to get the parameter range of Network > Email.

Request Message

None.

Sample:

POST /API/NetworkConfig/Email/Range HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 1
ParameterRangeTypeDescription
email_enableboolEnable email functionality.
encryption"Disable",
"SSL",
"TLS",
"Auto"
stringEncryption type.
smtp_port[1~65535]intSMTP port.
smtp_serverMax length: 127bytestringSMTP server.
usernameMax length: 127bytestringEmail username.
passwordMax length: 127bytestringEmail password.(Only indicate the range in Range, deprecated in Get, Set and Test, pass empty)
senderMax length: 127bytestringSender address.
recvemailrecvemail JSON,Table 2
password_emptyboolIs the password empty.
interval_time1,3,5,10intSending time interval, Unit:minute
base_enc_passwordJson ObjectSee base_enc_password.
report_buttonObjectSee Table 3.
Table 2

recvemail JSON

ParameterRangeTypeDescription
recvemail_1Max length: 127 bytestringSender 1 Address
recvemail_2Max length: 127 bytestringSender 2 Address
recvemail_3Max length: 127 bytestringSender 3 Address
Table 3
ParameterRangeTypeDescription
report_button_1"send_device_report"stringShow Send Report button

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "email_enable": {"type": "bool"},
        "encryption": {
            "type": "string",
            "items": [
                "Disable",
                "SSL",
                "TLS",
                "Auto"
            ]
        },
        "smtp_port": {
            "type": "int32",
            "mode": "r",
            "min": 1,
            "max": 65535,
            "default_value": 25
        },
        "smtp_server": {
            "description": "Each range {min_len,max_len} corresponds to one email_enable state [false,true].",
            "type": "string",
            "mode": "rw",
            "ranges": [
                {
                    "min_len": 0,
                    "max_len": 127
                },
                {
                    "min_len": 1,
                    "max_len": 127
                }
            ]
        },
        "username": {
            "description": "Each range {min_len,max_len} corresponds to one email_enable state [false,true].",
            "type": "string",
            "mode": "rw",
            "ranges": [
                {
                    "min_len": 0,
                    "max_len": 127
                },
                {
                    "min_len": 1,
                    "max_len": 127
                }
            ]
        },
        "password": {
            "type": "string",
            "min_len": 0,
            "max_len": 127
        },
        "password_empty": {"type": "bool"},
        "sender": {
            "description": "Each range {min_len,max_len} corresponds to one email_enable state [false,true].",
            "type": "string",
            "mode": "rw",
            "ranges": [
                {
                    "min_len": 0,
                    "max_len": 127
                },
                {
                    "min_len": 0,
                    "max_len": 127
                }
            ]
        },
        "recvemail": {
            "description": "When email_enable state is [true], at least one recvemail must be configured.",
            "type": "object",
            "items": {
                "recvemail_1": {
                    "type": "string",
                    "min_len": 0,
                    "max_len": 127
                },
                "recvemail_2": {
                    "type": "string",
                    "min_len": 0,
                    "max_len": 127
                },
                "recvemail_3": {
                    "type": "string",
                    "min_len": 0,
                    "max_len": 127
                }
            }
        },
        "interval_time": {
            "type": "int32",
            "unit": "minute",
            "items": [
                1,
                3,
                5,
                10
            ]
        },
        "report_button": {
            "type": "object",
            "items": {"report_button_1": {
                "type": "string",
                "min_len": 0,
                "max_len": 127
            }}
        },
        "test_version": "2.0"
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get parameter for Network > Email.

Request Message

None.

Sample:

POST /API/NetworkConfig/Email/Get HTTP/1.1
{
    "version": "1.0",
}

Response Message

Parameter Description

See Network > Email > Range > Parameter description > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "version": "1.0",
    "result":"success",
    "data":{
        "email_enable": "false",
        "encryption": "AUTO",
        "smtp_port": 25,
        "smtp_server": "",
        "username": "",
        "password": "",
        "sender": "",
        "recvemail_1": "",
        "recvemail_2": "",
        "recvemail_3": "",
        "interval_time": 3
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set parameter for Network > Email.

Request Message

Parameter Description

See Network > Email > Range > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/NetworkConfig/Email/Set HTTP/1.1
{
    "version":"1.0",
    "data":
    {
        "email_enable":true,
        "encryption":"Auto",
        "smtp_port":25,
        "smtp_server":"aaa",
        "username":"aaa",
        "password_empty":false,
        "sender":"aaaaa",
        "recvemail":
        {
            "recvemail_1":"aaaaa@qq.com",
            "recvemail_2":"aaaaa@qq.com",
            "recvemail_3":"aaaaa@qq.com"},
            "interval_time":3,
            "report_button":
            {
                "report_button_1":"send_device_report"
            }
        }
}

Response Message

None.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result":"success",
    "data":{}
}

Error Code

See Response Messages Body and Common error_code for more information.

Test

Function

This API is used to test parameter for Network > Email.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
email_enableboolEnable email functionality
encryption"Disable",
"SSL",
"TLS",
"AUTO"
stringEncryption Type
smtp_port[1~65535]intSMTP port
smtp_serverMax lenth:127 bytestringSMTP server
username[1~65535]intEmail user name
password[1~65535]intEmail password
password_empty[1~65535]intIs the password empty
sender[1~65535]intsender address
recvemailJSON,see Table 2 for more information
interval_time1.3.5.10intSending interval time. Unit: minutes
test_id1~65535inttest id
email_test_flag"Start"、"Stop"、"Query”stringEmail test instructions (start testing, stop testing, obtain test results)
base_enc_passwordJson Objectencrypted password,see base_secondary_authentication for more information
Table 2
ParameterRangeTypeDescription
recvemail_1Email addresses of 3 receivers
recvemail_2
recvemail_3

Sample:

POST /API/NetworkConfig/Email/Test HTTP/1.1
{
    "data": {
        "email_enable": false,
        "encryption": "AUTO",
        "smtp_port": 25,
        "smtp_server": "smtp163.com",
        "username": "123456@qq.com ",
        "password": "321",
        "sender": "123456@qq.com",
        "recvemail_1": "654321@qq.com ",
        "recvemail_2": "",
        "recvemail_3": "",
        "interval_time": 3,
        "test_id": 3,
        "email_test_Flag":"start"
    }
}

Response Message

Parameter Description

Table 3
ParameterRangeTypeDescription
test_state"Testing"(Testing)
"Ok"(Tested)
stringEnable email testing status (if the test fails, an error will be directly returned)

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result":"success",
    "data":{}
}

Error Code

See Response Messages Body and Common error_code for more information.

FTP

Function

This API is used for get or set or test FTP parameters

URI

POST /API/NetworkConfig/Ftp/{Action}

Table 1 Describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYesRequest action,includeing RangeGetSetTest.

Range

Function

This API is used to get the parameter range of Network > FTP.

Request Message

None.

Sample:

POST /API/NetworkConfig/Ftp/Range HTTP/1.1
{
    "version":"1.0",
    "data":{}
}

Response Message

Parameter Description

Table 1
ParameterRangeTypeDescription
ftp_enableboolFTP function switch
ftp_testboolDoes it support FTP test
server_ipMax length: 64 byte
Note: The maximum input character for DVR is 15
stringFTP IP address
port[1~65535]intFTP server port
usernameMax length: 64 byte
Note: The maximum input character for DVR is 15
stringLogin user name
passwordMax length: 64 byte
Note: The maximum input character for DVR is 15
stringLogin user password.(Only indicate the range in Range, deprecated in Get, Set and Test, pass empty)
password_emptyboolIs the password empty
upgrade_pictureboolUpload Image Switch
picture_resolution"1920x1080",
"1280x720",
"1024x768",
"640x480",
"320x240",
"176x144" or "176x120"
stringImage resolution (NVR specific)
picture"Highest",
"Higher",
"Medium",
"Low",
"Lower",
"Lowest"
stringImage quality (NVR specific)
video_stream_type"Mainstream","Substream"stringVideo stream type
video_type"RF","AVI","MP4"stringVideo file type
max_package_interval10,20,30,45,60intMaximum subcontracting interval.Unit:minutes
directory_nameMax lenth:95bytestringUpload Path
upload_normal_videoJSON arrayUpload video information JSON,see Table 2 for more information
enc_mode"FTP",
"SFTP",
"FTPS",
stringFTP Type
certpemstringcertificate
certpwdstringsecret key
privatekeystringPrivate certificate
privatekeypwdstringPrivate key
base_enc_passwodJson Objectencrypted password,see base_enc_password for more information(Special for Set and Test).
upload_pictureboolWhether to upload pictures through FTP
upload_videoboolWhether to upload videos through FTP
Table 2
ParameterRangeTypeDescription
enableboolUpload regular video switch
channel“CH1”
”CH1x”
“IP_CH1”
”IP_CH1x“
“WIFI_CH1”
” WIFI_CH1x”
The number of channels depends on the functionality of the device.
arrayThe channel number for uploading regular videos is required
Each array bit represents a channel with a string.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "ftp_test": true,
        "ftp_enable": {"type": "bool"},
        "server_ip": {
            "description": "Each range {min_len,max_len} corresponds to one ftp_enable state [false,true].",
            "type": "string",
            "mode": "rw",
            "ranges": [
                {
                    "min_len": 0,
                    "max_len": 63
                },
                {
                    "min_len": 1,
                    "max_len": 63
                }
            ]
        },
        "port": {
            "type": "int32",
            "mode": "r",
            "min": 1,
            "max": 65535,
            "default_value": 21
        },
        "username": {
            "description": "Each range {min_len,max_len} corresponds to one ftp_enable state [false,true].",
            "type": "string",
            "mode": "rw",
            "ranges": [
                {
                    "min_len": 0,
                    "max_len": 63
                },
                {
                    "min_len": 1,
                    "max_len": 63
                }
            ]
        },
        "password": {
            "description": "Each range {min_len,max_len} corresponds to one ftp_enable state [false,true].",
            "type": "string",
            "mode": "rw",
            "ranges": [
                {
                    "min_len": 0,
                    "max_len": 63
                },
                {
                    "min_len": 1,
                    "max_len": 63
                }
            ]
        },
        "password_empty": {"type": "bool"},
        "picture_resolution": {
            "type": "string",
            "items": [
                "1920x1080",
                "1280x720",
                "1024x768",
                "640x480",
                "320x240",
                "176x120"
            ]
        },
        "picture_quality": {
            "type": "string",
            "items": [
                "Highest",
                "Higher",
                "Medium",
                "Low",
                "Lower",
                "Lowest"
            ]
        },
        "video_stream_type": {
            "type": "string",
            "items": [
                "Mainstream",
                "Substream"
            ]
        },
        "max_package_interval": {
            "type": "int32",
            "unit": "minute",
            "items": [
                10,
                20,
                30,
                45,
                60
            ]
        },
        "directory_name": {
            "description": "Each range {min_len,max_len} corresponds to one ftp_enable state [false,true].",
            "type": "string",
            "mode": "rw",
            "specialFilter": "*:?\"<>|#(){}~@",
            "ranges": [
                {
                    "min_len": 0,
                    "max_len": 95
                },
                {
                    "min_len": 1,
                    "max_len": 95
                }
            ]
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get parameter for Network > FTP .

Request Message

None.

Sample:

POST /API/NetworkConfig/Ftp/Get HTTP/1.1
{
    "version":"1.0",
    "data":{}
}

Response Message

Parameter Description

See Network > FTP > Range > Parameter > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "version": "1.0",
    "result":"success",
    "data":{
        "ftp_enable": false,
        "server_ip": "192.168.1.100",
        "port": 21,
        "username": "",
        "password_empty": "",
        "picture_resolution": "1280x720",
        "picture_quality": "Higher",
        "video_stream_type": "SubStream",
        "max_package_interval": 30,
        "directory_name": "",
        "upload_normal_video": {
            "enable": true,
            "channel": [
            "IP_CH2",
            "IP_CH3",
            "IP_CH4"
            ]
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set parameter for Network > FTP.

Request Message

Parameter Description

See Network > FTP > Range > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/NetworkConfig/Ftp/Set HTTP/1.1
{
    "version":"1.0",
    "data":
    {
        "ftp_enable":true,
        "server_ip":"aaa",
        "port":21,
        "username":"aaa",
        "password_empty":true,
        "picture_quality":"Higher",
        "video_stream_type":"Substream",
        "max_package_interval":30,
        "directory_name":"aaa",
        "base_enc_password":
        {
            "seq":0,
            "peer_key":"0fvTpiCxu35TY5Vn8vR1Ng/MB4rFf46Rj9/Tp+LFNRGU=",
            "cipher":"0cxEOj04QQA/8cMDCvYlhSCtsCPlL3fJkFyaO1ULXGA=="
        }
    }
}

Response Message

None.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result":"success",
    "data":{}
}

Error Code

See Response Messages Body and Common error_code for more information.

Test

Function

This API is used to test whether the FTP server is connected.

Request Message

Parameter Description

See Network > FTP > Range > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/NetworkConfig/Ftp/Test HTTP/1.1
{
    "version":"1.0",
    "data":
    {
        "ftp_enable":true,
        "server_ip":"aaa",
        "port":21,
        "username":"aaa",
        "password_empty":false,
        "picture_quality":"Higher",
        "video_stream_type":"Substream",
        "max_package_interval":30,
        "directory_name":"aaa"
    }
}

Response Message

None.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "failed",
    "reason": "Illegal parameter!",
    "error_code": "illegal_param",
    "data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

GBT28181

Function

This API is used to get or set or test GB/T28181 parameters.

URI

POST /API/NetworkConfig/T28181/{Action}

Table 1 Describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYesRequest action,includeing Range, Get, Set

Range

Function

This API is used to get the parameter range of Network > GBT28181.

Request Message

None.

Sample:

POST /API/NetworkConfig/T28181/Range HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

table 1

ParameterRangeTypeDescription
server_port[1~65535]intGb28181 platform port
local_port5060
5061
5062
5063
5064
intDevice port
stream_port55550
55551
55552
55553
55554
intStream port
heart_beat_time[5~255]intHeartbeat time
expires[30~10000]intRegistration validity period
enable_flagboolGB28181 function switch
max_timeouts[3~255]intNumber of timeouts
stream_type"Mainstream"
"Substream"
stringStream type
server_ipMax length: 32 bytestringGB28181 server ip
server_idMax length: 20 bytestringGB28181 server id
device_idMax length: 20 bytestringDevice id
passwordMax length: 31 bytestringGb28181 platform password
password_emptyboolWhether the password is empty
device_nameMax length: 31 bytestringDevice name
server_domainMax length: 11 bytestringGB28181 Server domain
link_status"Not_Connect"
"Register_success"
"Network_error"
"Password_deviceId_error"
"GB28181_close"
"GB28181_open"
stringDevice name
channel_nvr_idJSON arraySingle Channel Information JSON show as table2

table 2

ParameterRangeTypeDescription
channel_id0-20stringchannel id

Sample:

POST /API/ NetworkConfig/T28181/Range HTTP/1.1
{
    "result": "success",
    "data": {
        "server_port": {
            "type": "int32",
            "min": 1,
            "max": 65535
        },
        "local_port": {
            "type": "int32",
            "items": [
                5060,
                5061,
                5062,
                5063,
                5064
            ]
        },
        "stream_port": {
            "type": "int32",
            "items": [
                55550,
                55551,
                55552,
                55553,
                55554
            ]
        },
        "heart_beat_time": {
            "type": "int32",
            "min": 5,
            "max": 255
        },
        "expires": {
            "type": "int32",
            "min": 30,
            "max": 100000
        },
        "enable_flag": {"type": "bool"},
        "max_timeouts": {
            "type": "int32",
            "min": 3,
            "max": 255
        },
        "stream_type": {
            "type": "string",
            "items": [
                "Mainstream",
                "Substream"
            ]
        },
        "server_ip": {
            "description": "Each range {min_len,max_len} corresponds to one enableflag state [false,true].",
            "type": "string",
            "mode": "rw",
            "ranges": [
                {
                    "min_len": 0,
                    "max_len": 32
                },
                {
                    "min_len": 1,
                    "max_len": 32
                }
            ]
        },
        "server_id": {
            "description": "Each range {min_len,max_len} corresponds to one enableflag state [false,true].",
            "type": "string",
            "mode": "rw",
            "ranges": [
                {
                    "min_len": 0,
                    "max_len": 20
                },
                {
                    "min_len": 1,
                    "max_len": 20
                }
            ]
        },
        "device_id": {
            "description": "Each range {min_len,max_len} corresponds to one enableflag state [false,true].",
            "type": "string",
            "mode": "rw",
            "ranges": [
                {
                    "min_len": 0,
                    "max_len": 20
                },
                {
                    "min_len": 1,
                    "max_len": 20
                }
            ]
        },
        "password": {
            "description": "Each range {min_len,max_len} corresponds to one enableflag state [false,true].",
            "type": "string",
            "mode": "rw",
            "ranges": [
                {
                    "min_len": 0,
                    "max_len": 31
                },
                {
                    "min_len": 1,
                    "max_len": 31
                }
            ]
        },
        "password_empty": {"type": "bool"},
        "device_name": {
            "description": "Each range {min_len,max_len} corresponds to one enableflag state [false,true].",
            "type": "string",
            "mode": "rw",
            "ranges": [
                {
                    "min_len": 0,
                    "max_len": 31
                },
                {
                    "min_len": 1,
                    "max_len": 31
                }
            ]
        },
        "server_domain": {
            "description": "Each range {min_len,max_len} corresponds to one enableflag state [false,true].",
            "type": "string",
            "mode": "rw",
            "ranges": [
                {
                    "min_len": 0,
                    "max_len": 11
                },
                {
                    "min_len": 1,
                    "max_len": 11
                }
            ]
        },
        "link_status": {
            "type": "string",
            "items": [
                "Not_Connect",
                "Register_success",
                "Network_error",
                "Password_deviceId_error",
                "GB28181_close",
                "GB28181_open"
            ]
        },
        "channel_nvr_id": {
            "type": "array",
            "min_size": 0,
            "max_size": 1,
            "items": {"channel_id": {
                "type": "string",
                "min_len": 0,
                "max_len": 20
            }}
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get parameter for Network > GBT28181 .

Request Message

None.

Sample:

POST /API/NetworkConfig/T28181/Get HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

See Network > GBT28181 > Range > table 1 for parameter description.

Sample:

POST /API/ NetworkConfig/T28181/Get HTTP/1.1
{
    "result": "success",
    "data": {
        "server_port": 5061,
        "local_port": 5060,
        "stream_port": 55550,
        "heart_beat_time": 60,
        "expires": 3600,
        "enable_flag": true,
        "max_timeouts": 3,
        "stream_type": "Substream",
        "link_status": "GB28181_open",
        "server_ip": "172.16.8.15",
        "server_id": "51000000992000000001",
        "device_id": "34020000001340000001",
        "password": "",
        "password_empty": false,
        "device_name": "IPC",
        "server_domain": "32050",
        "channel_nvr_id": [{"channel_id": "34020000001340000001"}]
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set parameter for Network > GBT28181.

Request Message

Parameter Description

See Network > GBT28181 > Range > table 1 for parameter description.

Sample:

POST /API/ NetworkConfig/T28181/Set HTTP/1.1
{
    "version": "1.0",
    "data": {
        "server_port": 5061,
        "local_port": 5060,
        "stream_port": 55550,
        "heart_beat_time": 60,
        "expires": 3600,
        "enable_flag": true,
        "max_timeouts": 3,
        "stream_type": "Substream",
        "link_status": "GB28181_close",
        "server_ip": "172.16.8.15",
        "server_id": "51000000992000000001",
        "device_id": "34020000001340000001",
        "password_empty": true,
        "device_name": "IPC",
        "server_domain": "32050",
        "channel_nvr_id": [{"channel_id": "34020000001340000001"}],
        "enc_password": {
            "seq": 0,
            "peer_key": "0SaWizhlOpa0wQRqrlRMlkaeISft+e7O65RZpQSqbbhM=",
            "cipher": "0uWSr9VAP9/tos+bFguJw2qggJDEncuD/ryv+pz2aRw=="
        }
    }
}

Response Message

None.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result":"success",
    "data":{}
}

Error Code

See Response Messages Body and Common error_code for more information.

HTTPS

Function

This API is used to get or set HTTPS parameters.

URI

POST /API/NetworkConfig/https/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequriedDescription
ActionYesRequest action,including Range, Get, Set.

Range

Function

This API is used to get the Network > HTTPS parameter range.

Request Message

None.

Sample:

POST /API/NetworkConfig/https/Range HTTP/1.1
{
    "version":"1.0",
    "data":{}
}

Response Message

Parameter Description

Table 1
ParameterRangeTypeDescription
https_enableboolHttps switch
operate"Install"
"Uninstall"
"Switch"
file_type"Default",
"Custom"
stringDefault: Default installation
Custom: Custom installation
Passed when switching.
file_existint0: Does not exist, 1: Exists
(only used, not set, required for customization).
ca_file0-10240string(Only set, not used).
key_file0-10240string(Only set, not used).
key_password0-128string(Only set, not used).
root_ca_file0-10240string(Only set, not used).
subjectstringIssued to (required by Custom).
issuerstringIssuer(required by Custom).
not_beforestringStarting time(required by Custom).
not_afterstringEnd Time(required by Custom).

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "https_enable": {"type": "bool"},
        "file_type": {
            "type": "string",
            "items": [
                "Default",
                "Custom"
            ]
        },
        "file_exist": {
            "type": "int32",
            "items": [
                0,
                1
            ]
        },
        "ca_file": {
            "type": "string",
            "min_len": 0,
            "max_len": 10240
        },
        "key_file": {
            "type": "string",
            "min_len": 0,
            "max_len": 10240
        },
        "root_ca_file": {
            "type": "string",
            "min_len": 0,
            "max_len": 10240
        },
        "operate": {
            "type": "string",
            "items": [
                "Install",
                "Uninstall",
                "Switch"
            ]
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get Network > HTTPS parameters.

Request Message

None.

Sample:

POST /API/NetworkConfig/https/Get HTTP/1.1
{
    "version":"1.0",
    "data":{}
}

Response Message

Parameter Description

See Network > HTTPS > Range > Parameter Description > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "https_enable": true,
        "file_type": "Default",
        "file_exist": 0
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set Network > HTTPS parameters.

Request Message

Parameter Description

See Network > HTTPS > Range > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/NetworkConfig/https/Set HTTP/1.1
{
    "version":"1.0",
    "data":
    {
        "https_enable":true,
        "file_type":"Default",
        "file_exist":0,
        "operate":"Switch"
    }
}

Response Message

None.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result":"success",
    "data":{}
}

Error Code

Table 1
error_codecommet
install_failedInstallation failed.
uninstall_failedUninstall failed.
uninstall_not_allowIn use, uninstallation is not allowed.
switch_failedSwitching failed.
upload_failedInstallation failed.
length_too_longThe data is too large.
unsafe_siganatureUnsafe certificate.
cert_key_not_matchCertificate does not match.
invalid_cert_timeInvalid certificate time.
invalid_private_keyInvalid private key file.
invalid_certInvalid certificate file.
invalid_key_usageInvalid certificate key usage.
invalid_cert_chainInvalid certificate chain.
invalid_cacertInvalid root certificate.
invalid_cacert_timeContains an invalid root certificate.

See Table 1, Response Messages Body and Common error_code for more information.

IP Filter

Function

This API is used to get or set IP filter parameters.

URI

POST /API/NetworkConfig/IPFilter/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequriedDescription
ActionYesRequest action,including Range, Get, Set.

Range

Function

This API is used to obtain Network > IP Filter parameters.

Request Message

None.

Sample:

POST /API/NetworkConfig/IPFilter/Range HTTP/1.1
{
    "version":"1.0",
    "data":{}
}

Response Message

Parameter Description

Table 1
ParameterRangeTypeDescription
enableboolWhether to enable IP filtering
choose"Whitelist","Blacklist"stringEnable blacklist or whitelist
restricted_type"Whitelist","Blacklist"stringRestricted method
whitelistJSON arrayWhitelist list, see Table 2 to get Parameter Description
blacklistJSON arrayBlacklist list, see Table 2 to get Parameter Description
Table 2
ParameterRangeTypeDescription
start_addressMax length:16byte, 64byte (for NVR/DVR use)stringStart filtering IP address
end_addressMax length:16byte, 64byte (for NVR/DVR use)stringEnd filtering IP address
ip_type"Ipv4","Ipv6"stringIP type (IPC only supports: "Ipv4")

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "enable": {"type": "bool"},
        "choose": {
            "type": "string",
            "items": [
                "Whitelist",
                "Blacklist"
            ]
        },
        "restricted_type": {
            "type": "string",
            "items": [
                "Whitelist",
                "Blacklist"
            ]
        },
        "whitelist": {
            "type": "array",
            "min_size": 0,
            "max_size": 64,
            "items": {
                "start_address": {
                    "type": "string",
                    "min_len": 0,
                    "max_len": 64
                },
                "end_address": {
                    "type": "string",
                    "min_len": 0,
                    "max_len": 64
                },
                "ip_type": {
                    "type": "string",
                    "items": [
                        "Ipv4",
                        "Ipv6"
                    ]
                }
            }
        },
        "blacklist": {
            "type": "array",
            "min_size": 0,
            "max_size": 64,
            "items": {
                "start_address": {
                    "type": "string",
                    "min_len": 0,
                    "max_len": 64
                },
                "end_address": {
                    "type": "string",
                    "min_len": 0,
                    "max_len": 64
                },
                "ip_type": {
                    "type": "string",
                    "items": [
                        "Ipv4",
                        "Ipv6"
                    ]
                }
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to obtain Network > IP Filter parameters.

Request Message

None.

Sample:

POST /API/NetworkConfig/IPFilter/Get HTTP/1.1
{
    "version":"1.0",
    "data":{}
}

Response Message

Parameter Description

See Network > IP Filter > Range > Parameter Description > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "enable": true,
        "choose": "Whitelist",
        "restricted_type": "Whitelist",
        "whitelist": [{
            "start_address": "172.16.8.25",
            "end_address": "172.16.8.25",
            "ip_type": "Ipv4"
        }],
        "blacklist": []
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set Network > IP Filter parameters.

Request Message

Parameter Description

See Network > IP Filter > Range > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/NetworkConfig/IPFilter/Set HTTP/1.1
{
    "version":"1.0",
    "data":
    {
        "enable":true,
        "choose":"Whitelist",
        "restricted_type":"Whitelist",
        "whitelist":[
            {
                "ip_type":"Ipv4",
                "start_address":"192.193.1.223",
                "end_address":"192.193.1.223"
            }
        ],
        "blacklist":[]
    }
}

Response Message

None.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result":"success",
    "data":{}
}

Error Code

Table 1
error_codecommet
ip_filter_list_emptyThe blacklist/whitelist is empty

See Table 1, Response Messages Body and Common error_code for more information.

ipv6

Function

This API is used for get or set ipv6 parameters

URI

POST /API/NetworkConfig/Ipv6/{Action}

Table 1 Describes the parameter.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYesRequest action,including Range, GetSet.

Range

Function

This API is used to get the parameter range of Network > ipv6.

Request Message

None.

Sample:

POST /API/NetworkConfig/ipv6/Range HTTP/1.1
{
    "version":"1.0",
    "data":{}
}

Response Message

Parameter Description

Table 1
ParameterRangeTypeDescription
prefixlen1-128intprefix length
local_ipv6_addrMax length: 40bytestringlocal ipv6 ipaddr
global_ipv6_addrMax length: 40bytestringglobal ipv6 ipaddr

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "prefixlen": {
            "type": "int32",
            "min": 1,
            "max": 127
        },
        "local_ipv6_addr": {
            "type": "string",
            "min_len": 14,
            "max_len": 39
        },
        "global_ipv6_addr": {
            "type": "string",
            "min_len": 7,
            "max_len": 39
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get parameter for Network > ipv6.

Request Message

None.

Sample:

POST /API/NetworkConfig/ipv6/Get HTTP/1.1
{
    "version":"1.0",
    "data":{}
}

Response Message

Parameter Description

See Network > ipv6 > Range > Parameter Description > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "prefixlen": 64,
        "local_ipv6_addr": "fe80::223:63ff:fe0a:901b",
        "global_ipv6_addr": "fe80::223:63ff:fe0a:901b"
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set parameter for Network > ipv6.

Request Message

Parameter Description

See Network>ipv6>Range>Parameter Description>Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "data": {
        "prefixlen": 64,
        "local_ipv6_addr": "fe80::223:63ff:fe0a:901b",
        "global_ipv6_addr": "fe80::223:63ff:fe0a:901b"
    }
}

Response Message

None.

Sample:

POST /API/NetworkConfig/ipv6/Set HTTP/1.1
{
    "result": "success",
    "data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Network Base

Function

This API is used for get or set device network interfaces.

URI

POST /API/NetworkConfig/NetBase/{Action}

Table 1 Describes the parameter.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYesRequest acyion,including Range, GetSet.

Range

Function

This API is used to get the parameter range of Network > Network Configuration > Network Base.

Request Message

Parameter Description

Table 11
ParameterRangeTypeDescription
page_type"net_general"stringstring length:0-16

Sample

POST /API/NetworkConfig/NetBase/Get HTTP/1.1
{
    "version": "1.0",
    "data": {"page_type": "net_general"}
}

Response Message

Parameter Description

Table 1
ParameterRangeTypeDescription
wanJSON objectSingle JSON,see Table 2 for more information
lanJSON objectSingle JSON,see Table 3 for more information(NVR exclusive)
pppoeJSON objectSingle JSON,see Table 4 for more information
3gJSON objectSingle JSON,see Table 5 for more information
wifiJSON objectSingle JSON,see Table 6 for more information
portJSON objectSingle JSON,see Table 7 for more information
extern_ipstringExternal network IP, valid when external network is enabled
p2p_switchboolP2P function switch
ipeye_switchboolIPEYE switch(DVR、NVR exclusive)
device_instruction“nvr”“xvr” “dvr” “ipc”stringDevice type description flag
web_compatibilityboolWeb Compatibility mode switch
toeboolSwitch mode(NVR exclusive)
video_encrypt_transfer“CH1”…”CH1x”
“IP_CH1”…”
IP_CH1x”
“WIFI_CH1”…”
WIFI_CH1x”
The number of channels depends on the functionality of the device
arrayVideo encryption transmission channel
Each array bit represents a channel with a string.
lan1JSON ObjectSingle JSON,see Table 8 for more information(Using in new network card mode)
lan2JSON ObjectSingle JSON,see Table 9 for more information(Using in new network card mode)
poeJSON ObjectSingle JSON,see Table 10 for more information(Using in new network card mode)
net_card_mode"Single Address Mode" ,
"Double Address Mode"
sring arrayNetwork card mode
default_route"WAN"
" LAN1", "LAN2"
string arrayDefault route(Using in new network card mode)
net_car_select"WAN"
" LAN1", "LAN2"
string arrayNetwork card selection(Using in new network card mode)
pppoe_net_card"LAN1", "LAN2"string arrayPPPOE Network card selection(Using in new network card mode)
dns1stringPreferred DNS Server, sample:8.8.8.8(Using in new network card mode)
dns2stringAlternate DNS server, sample:8.8.8.8(Using in new network card mode)
operation_type"LanModify"
"PoeModify"
stringExample Change the type of a network parameter.
manual_ip_conflictboolManual IP conflict
Table 2
ParameterRangeTypeDescription
dhcpboolDHCP function switch
ip_addressstringIP address,sample:192.168.1.24
subnet_maskstringsubnet mask,sample:255.255.255.0
gatewaystringgateway,sample:192.168.1.1
ipv6_addressstringIPv6 address
ipv6_prefixlenint
ipv6_gatewaystringIPv6 gateway
dns1stringPreferred DNS Server,sample:8.8.8.8
dns2stringAlternate DNS server,sample:8.8.8.8
ipv6_dns1stringipv6 Preferred DNS Server, sample:8.8.8.8
ipv6_dns2stringipv6 Alternate DNS server, sample:8.8.8.8
main_multicast_enableboolMain stream multicast switch(IPC exclusive)
main_multicast_address(224.0.0.0-239.255.255.255)stringMain stream multicast address(IPC exclusive)
main_multicast_port1024-65535intMain stream multicast port(IPC exclusive)
sub_multicast_enableboolSubcode Stream Multicast switch(IPC exclusive)
sub_multicast_address(224.0.0.0-239.255.255.255)stringSubcode Stream Multicast Address(IPC only)
dhcp_enableboolThe Dhcp enable switch does not enable the DHCP switch after enabling PPPOE(NVR exclusive)
rtsp_urlstringThe URL format when using the rtsp server(NVR、DVR exclusive)
encryptionboolvideo encryption
connection_protocol"svnp"
"onvif"
stringConnection protocol
Table 3
ParameterRangeTypeDescription
ip_addressstringSwitch IP address
subnet_maskstringSwitch subnet mask
modify_field"ip_address"
"subnet_mask"
stringThe specific parameter to be modified. This field is required only with operation_type.
show_tipsboolWhether a prompt is required. The response needs to include this field only if the request has operation_type on it.
Table 4
ParameterRangeTypeDescription
enableboolPPoE function switch
usernameMax length: 35bytestringPPPoE user name
passwordMax length: 35bytestringPPPoE password
password_emptyboolIs the password empty
ip_addressstringIP address,sample:192.168.1.24
subnet_maskstringsubnet mask,sample:8.8.8.8
gatewaystringdefault gateway,sample:192.168.1.1
dns1stringPreferred DNS Server,sample:8.8.8.8
dns2stringAlternate DNS server,sample:8.8.8.8
pppoenewstructboolWhether to use two sets of range control
base_enc_passwordJson Objectencrypted password,see base_secondary_authentication for more information
Table 5
ParameterRangeTypeDescription
enablebool3G network function switch
apnMax length: 35bytestring3G apn
dial_codeMax length: 35bytestring3G DialCode
usenameMax length: 35bytestring3G user name
passwordMax length: 335bytestring3G password
ip_addressstringIP address,sample:192.168.1.24
subnet_maskstringsubnet mask,sample:8.8.8.8
gatewaystringdefault gateway,sample:192.168.1.1
dns1stringPreferred DNS Server,sample:8.8.8.8
dns2stringAlternate DNS server,sample:8.8.8.8
base_enc_passwordJson Objectencrypted password,base_secondary_authentication
Table 6
ParameterRangeTypeDescription
enableboolWIFI function switch
ssidMax length: 35bytestringWIFISSID
passwordMax length: 35bytestringWIFI password
ip_addressstringIP address obtained by connecting to WIFI(Get only)
status"Unconnected"
"Connected"
stringWIFI connection status(Get only)
wifi_type"MT7601"
"WN650BT"
stringWIFI connection type
network_mode_type"Dhcp"
"Static"
stringWIFI mode
base_enc_passwordJson Objectencrypted password,see base_secondary_authentication for more information
Table 7
ParameterRangeTypeDescription
service“Web”, “Client”,
“Rtsp”, “Https”,
stringport type
protocol"TCP"stringprotocol type(Get only)
internal[1~65535]intInternal port number
external_port[1~65535]intexternal port number
upnp_status"Inactive"
"Active"
stringPort UPnP function status(Get only)
upnpboolEnable UPnP function on the port
maping_strategy"Manual""Auto"stringMapping method
Table 8
ParameterRangeTypeDescription
dhcpboolIpv4 DHCP function switch
ip_addressstringIP address,sample:192.168.1.24
subnet_maskstringsubnet mask,sample:255.255.255.0
gatewaystringdefault gateway,sample:192.168.1.1
dhcpv6boolIPv6 DHCP function switch
ipv6_addressstringIPv6 address
ipv6_prefixlenint
ipv6_gatewaystringIPv6 gateway
dhcp_enableboolDhcp enable switch,DHCP switch not enabled after enabling PPPOE(NVR exclusive)
mac_addressstringphysical address,sample:88-60-50-4E-87-29
Table 9
ParameterRangeTypeDescription
dhcpboolIpv4 DHCP function switch
ip_addressstringIP address,sample:192.168.1.24
subnet_maskstringsubnet mask,sample:255.255.255.0
gatewaystringdefalt gateway,sample:192.168.1.1
dhcpv6boolIPv6 DHCP function switch
ipv6_addressstringIPv6 address
ipv6_prefixlenint
ipv6_gatewaystringIPv6 gateway
mac_addressstringphysical address,sample:88-60-50-4E-87-29
Table 10
ParameterRangeTypedescription
poedhcpboolPoe DHCP function
poe_ip_addressstringPOE Ip address,sample:192.168.1.24
poe_sunnet_maskstringPOE subnet mask,sample:255.255.255.0
modify_field"poe_ip_address"
"poe_subnet_mask"
stringThe specific parameter to be modified. This field is required only with operation_type
show_tipsboolWhether a prompt is required. The response needs to include this field only if the request has operation_type on it

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "wan": {
            "type": "object",
            "items": {
                "dhcp": {"type": "bool"},
                "ip_address": {
                    "type": "string",
                    "min_len": 7,
                    "max_len": 15
                },
                "subnet_mask": {
                    "type": "string",
                    "min_len": 7,
                    "max_len": 15
                },
                "gateway": {
                    "type": "string",
                    "min_len": 7,
                    "max_len": 15
                },
                "ipv6_address": {
                    "type": "string",
                    "min_len": 0,
                    "max_len": 46
                },
                "ipv6_prefixlen": {
                    "type": "int32",
                    "min": 1,
                    "max": 128,
                    "default_value": 64
                },
                "ipv6_gateway": {
                    "type": "string",
                    "min_len": 0,
                    "max_len": 46
                },
                "dns1": {
                    "type": "string",
                    "min_len": 7,
                    "max_len": 15
                },
                "dns2": {
                    "type": "string",
                    "min_len": 0,
                    "max_len": 15
                },
                "dhcp_enable": {"type": "bool"}
            }
        },
        "lan": {
            "type": "object",
            "items": {
                "poedhcp": {"type": "bool"},
                "ip_address": {
                    "type": "string",
                    "min_len": 7,
                    "max_len": 15
                },
                "subnet_mask": {
                    "type": "string",
                    "min_len": 7,
                    "max_len": 15
                }
            }
        },
        "pppoe": {
            "type": "object",
            "items": {
                "enable": {"type": "bool"},
                "username": {
                    "description": "Each range {min_len,max_len} corresponds to one enable state [false,true].",
                    "type": "string",
                    "mode": "rw",
                    "ranges": [
                        {
                            "min_len": 0,
                            "max_len": 35
                        },
                        {
                            "min_len": 1,
                            "max_len": 35
                        }
                    ]
                },
                "password": {
                    "description": "Each range {min_len,max_len} corresponds to one enable state [false,true].",
                    "type": "string",
                    "mode": "rw",
                    "ranges": [
                        {
                            "min_len": 0,
                            "max_len": 35
                        },
                        {
                            "min_len": 1,
                            "max_len": 35
                        }
                    ]
                },
                "pppoenewstruct": {"type": "bool"},
                "password_empty": {"type": "bool"},
                "ip_address": {
                    "type": "string",
                    "min_len": 7,
                    "max_len": 15
                },
                "subnet_mask": {
                    "type": "string",
                    "min_len": 7,
                    "max_len": 15
                },
                "gateway": {
                    "type": "string",
                    "min_len": 7,
                    "max_len": 15
                },
                "dns1": {
                    "type": "string",
                    "min_len": 7,
                    "max_len": 15
                },
                "dns2": {
                    "type": "string",
                    "min_len": 0,
                    "max_len": 15
                }
            }
        },
        "port": {
            "type": "array",
            "min_size": 0,
            "max_size": 2,
            "items": [
                {
                    "service": "Web",
                    "protocol": {
                        "type": "string",
                        "mode": "r",
                        "items": ["TCP"]
                    },
                    "internal_port": {
                        "type": "int32",
                        "mode": "r",
                        "min": 1,
                        "max": 65535,
                        "default_value": 80
                    },
                    "external_port": {
                        "type": "int32",
                        "mode": "r",
                        "min": 1,
                        "max": 65535,
                        "default_value": 80
                    },
                    "upnp_status": {
                        "type": "string",
                        "mode": "r",
                        "items": [
                            "Inactive",
                            "Active"
                        ]
                    },
                    "maping_strategy": {
                        "type": "string",
                        "items": [
                            "Manual",
                            "Auto"
                        ]
                    },
                    "upnp": {"type": "bool"}
                },
                {
                    "service": "Client",
                    "protocol": {
                        "type": "string",
                        "mode": "r",
                        "items": ["TCP"]
                    },
                    "internal_port": {
                        "type": "int32",
                        "mode": "r",
                        "min": 1,
                        "max": 65535,
                        "default_value": 9000
                    },
                    "external_port": {
                        "type": "int32",
                        "mode": "r",
                        "min": 1,
                        "max": 65535,
                        "default_value": 9000
                    },
                    "upnp_status": {
                        "type": "string",
                        "mode": "r",
                        "items": [
                            "Inactive",
                            "Active"
                        ]
                    },
                    "maping_strategy": {
                        "type": "string",
                        "items": [
                            "Manual",
                            "Auto"
                        ]
                    },
                    "upnp": {"type": "bool"}
                }
            ]
        },
        "extern_ip": {
            "type": "string",
            "mode": "r",
            "min_len": 0,
            "max_len": 15
        },
        "p2p_switch": {"type": "bool"},
        "device_instruction": {
            "type": "string",
            "items": [
                "nvr",
                "xvr",
                "dvr"
            ]
        },
        "web_compatibility_mode": {"type": "bool"},
        "video_encrypt_transfer": {
            "type": "array",
            "min_size": 0,
            "max_size": 16,
            "items": {
                "type": "string",
                "items": [
                    "CH1",
                    "CH2",
                    "CH3",
                    "CH4",
                    "CH5",
                    "CH6",
                    "CH7",
                    "CH8",
                    "CH9",
                    "CH10",
                    "CH11",
                    "CH12",
                    "CH13",
                    "CH14",
                    "CH15",
                    "CH16"
                ]
            }
        },
        "forward_port": {"type": "bool"},
        "rtsp_url": {
            "type": "string",
            "min_len": 0,
            "max_len": 64
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get parameter for Network > Network Configuration > Network Base.

Request Message

None

Sample:

POST /API/NetworkConfig/NetBase/Get HTTP/1.1
{
    "version":"1.0",
    "data":{}
}

Response Message

Parameter Description

See Network > Network Configuration > Network Base > Range > Parameter Description > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "wan": {
            "dhcp": false,
            "ip_address": "172.016.010.169",
            "subnet_mask": "255.255.000.000",
            "gateway": "172.016.008.001",
            "ipv6_address": "fe80::5ef2:7ff:fe49:3141",
            "ipv6_prefixlen": 64,
            "ipv6_gateway": "fe80::/64",
            "dns1": "172.018.001.222",
            "dns2": "008.008.008.008",
            "dhcp_enable": true
        },
        "lan": {
            "poedhcp": true,
            "ip_address": "010.010.025.100",
            "subnet_mask": "255.255.000.000"
        },
        "pppoe": {
            "enable": false,
            "username": "",
            "pppoenewstruct": true,
            "password_empty": true,
            "dns2": "008.008.008.008"
        },
        "wifi": {
            "enable": true,
            "ssid": "btiPhone",
            "password_empty": false,
            "ip_address": "000.000.000.000"
        },
        "port": [
            {
                "service": "Web",
                "protocol": "TCP",
                "internal_port": 80,
                "external_port": 80,
                "upnp_status": "Inactive",
                "maping_strategy": "Auto",
                "upnp": false
            },
            {
                "service": "Client",
                "protocol": "TCP",
                "internal_port": 9000,
                "external_port": 9000,
                "upnp_status": "Inactive",
                "maping_strategy": "Auto",
                "upnp": false
            }
        ],
        "p2p_switch": true,
        "extern_ip": "",
        "device_instruction": "nvr",
        "web_compatibility_mode": false,
        "video_encrypt_transfer": [],
        "forward_port": true,
        "rtsp_url": "rtsp://ip:port/rtsp/streaming?channel=A&subtype=B"
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set parameter for Network > Network Configuration > Network Base.

Request Message

See Network > Network Configuration > Network Base > Range > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/NetworkConfig/NetBase/Set HTTP/1.1
{
    "version": "1.0",
    "data": {
        "page_type": "net_general",
        "wan": {
            "dhcp": false,
            "ip_address": "172.016.010.169",
            "subnet_mask": "255.255.000.000",
            "gateway": "172.016.008.001",
            "ipv6_address": "fe80::5ef2:7ff:fe49:3141",
            "ipv6_prefixlen": 64,
            "ipv6_gateway": "fe80::/64",
            "dns1": "172.018.001.222",
            "dns2": "008.008.008.008",
            "dhcp_enable": true
        },
        "web_compatibility_mode": false,
        "lan": {
            "poedhcp": true,
            "ip_address": "010.010.025.100",
            "subnet_mask": "255.255.000.000"
        },
        "video_encrypt_transfer": []
    }
}

Response Message

None

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result":"success",
    "data":{}   
}

Error Code

See Response Messages Body and Common error_code for more information.

WLANScan

Function

This API is used for get or set WIFI parameters.

URI

POST /API/NetworkConfig/ScanWlan/{Action1}
POST /API/NetworkConfig/MacthWiFiType/{Action2}
POST /API/APNetworkCfg/{Action3}

Table 1 Describes the parameter.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYesRequest action,including ScanMacthWiFiTypeSetjoinWifiStaParamSet

join

Function

This API is used to add wifi parameter for Network > WLANScan.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
network_mode_type"Dhcp"
"Static"
stringnetwork model
ip_addressstringip address
subnet_maskstringsubnet mask
gatewaystringgateway
ssidMax length:35bytestringWIFI SSID
base_enc_passwordJson ObjectSee base_secondary_authentication

Sample:

POST /API/NetworkConfig/ScanWlan/Join HTTP/1.1
{
    "version": "1.0",
    "data": {
        "ssid": "TPXXX",
        "base_enc_password": {
            "seq": 0,
            "peer_key": "06AX8xRt+bAfD+jV8UpMl+zIcbNkakYIFi3X7YlBWhgs=",
            "cipher": "0WwwRvSgRDydPvrCqmbZrHRcpjsEYC+TbW8tDVNzQPvP6OvHZ"
        }
    }
}

Response Message

None

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set wifi type parameter for Network > WLANScan.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
restart_to_match_wifitypeboolDo you want to restart the board end
current_wifitypeintwifi type(0:MT7601;1:WN650BT)

Sample:

POST /API/APNetworkCfg/WifiStaParam/Set HTTP/1.1
{
    "version": "1.0",
    "data":
    {
        "restart_to_match_wifitype": false,
        "current_wifitype": 1
    }
}

Response Message

None

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "version": "1.0",
    "result":"success",
    "data":{}
}

Error Code

See Response Messages Body and Common error_code for more information.

Scan

Function

This API is used to get wifi list for Network > WLANScan.

Request Message

None

Sample:

POST /API/NetworkConfig/ScanWlan/Scan HTTP/1.1
{
    "version":"1.0",
    "data":{}
}

Response Message

Parameter Description

Table 1
ParameterRangeTypeDescription
wifi_infoJSON arrayJSON,see Table 2 for more information
Table 2
ParameterRangeTypeDescription
ssidMax length:35bytestringWIFI SSID
signal_strength0-4intWiFi Signal Strength
tip:only use for ScanWlan
securityMax length:128bytestringWiFi Signal Strength
tip:only use for ScanWlan
passwordMax length:35bytestringWIFI password
tip:only use for JoinWlan
base_enc_passwordJson Objectencrypted password,see base_secondary_authentication for more information

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {"wifi_info": [
        {
            "ssid": "TP-LINK_80AA",
            "signal_strength": 4,
            "security": "[WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS]"
        },
        ...
        {
            "ssid": "YF-RJ-05",
            "signal_strength": 0,
            "security": "[WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS]"
        }
    ]}
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set wifi AP parameter for Network > WLANScan.This API interface will only be registered and enabled in AP mode.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
ssidstringroute ssid
encryptionTypestringNONE/WEP/WPA-PSK/WPA2-PSK/WPA-NONE
cloudhoststring
cloudportint
base_enc_passwordJson Objectwifi route password,encrypted password,see base_secondary_authentication for more information

Response Message

None

Error Code

See Response Messages Body and Common error_code for more information.

Onvif

Function

This API is used for get or set onvif parameters.

URI

POST /API/NetworkConfig/Onvif/{Action}

Table 1 Describes the parameter.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYesRequest action,including Range, GetSet.

Range

Function

This API is used to get the parameter range of Network > Onvif.

Request Message

None

Sample:

POST /API/NetworkConfig/Onvif/Range HTTP/1.1
{
    "version":"1.0",
    "data":{}
}

Response Message

Parameter Description

Table 1
ParameterRangeTypeDescription
enableboolenable
authentication"Digest_sha256",
" Digest ",
" Digest/WSSE"
"WSSE",
"None"
stringEncryption
protocol"HTTP/HTTPS",
"HTTPS",
"HTTP"
stringagreement
usenamestringuser name
passwordstringpassword(Only indicate the range in Range, deprecated in Get and Set, pass empty).
password_emptyboolpassword empty
base_enc_passwordJson Objectencrypted password,see base_enc_password for more information

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "enable": {"type": "bool"},
        "authentication": {
            "type": "string",
            "items": [
                "Digest_sha256",
                "Digest",
                "Digest/WSSE",
                "WSSE"
            ]
        },
        "protocol": {
            "type": "string",
            "items": [
                "HTTP/HTTPS",
                "HTTPS",
                "HTTP"
            ]
        },
        "username": {
            "description": "Each range {min_len,max_len} corresponds to one onvif_enable state [false,true].",
            "type": "string",
            "mode": "rw",
            "ranges": [
                {
                    "min_len": 0,
                    "max_len": 63
                },
                {
                    "min_len": 1,
                    "max_len": 63
                }
            ]
        },
        "password": {
            "description": "Each range {min_len,max_len} corresponds to one onvif_enable state [false,true].",
            "type": "string",
            "mode": "rw",
            "ranges": [
                {
                    "min_len": 0,
                    "max_len": 63
                },
                {
                    "min_len": 1,
                    "max_len": 63
                }
            ]
        },
        "password_empty": {"type": "bool"}
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get parameter for Network>Onvif.

Request Message

None

Sample:

POST /API/NetworkConfig/Onvif/Get HTTP/1.1
{
    "version":"1.0",
    "data":{}
}

Response Message

Parameter Description

See Network > Onvif > Range > Parameter Description > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "enable": true,
        "authentication": "Digest/WSSE",
        "protocol": "HTTP/HTTPS",
        "username": "admin",
        "password": "",
        "password_empty": false
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set parameter for Network>Onvif.

Request Message

Parameter Description

See Network > Onvif > Range > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/NetworkConfig/Onvif/Set HTTP/1.1
{
    "version": "1.0",
    "data": {
        "enable": true,
        "authentication": "Digest/WSSE",
        "protocol": "HTTP/HTTPS",
        "username": "admin",
        "password_empty": true,
        "base_enc_password": {
            "seq": 0,
            "peer_key": "0N4LDE7DDSoiCDMGeeQ4I+O0IXnfhyA4uene9qOPvbSs=",
            "cipher": "0ffNkxOJ7eSs6B18xbA35JJakUmjvL/oD/570IoNAYEvBDjhL"
        }
    }
}

Reponse Message

None

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result":"success",
    "data":{}   
}

Error Code

See Response Messages Body and Common error_code for more information.

Rtsp

Function

This API is used for get or set Rtsp parameters.

URI

POST/API/NetworkConfig/Rtsp/{Action}

Table 1 Describes the parameter.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYesRequest action,including Range, GetSet.

Range

Function

This API is used to get the parameter range of Network > Rtsp.

Request Message

None

Sample

POST /API/NetworkConfig/Rtsp/Range HTTP/1.1
{
    "version":"1.0",
    "data":{}
}

Response Message

Parameter Description

Table 1
ParameterRangeTypeDescription
resp_enablebool
rtsp_check_flagboolCheck symbol
anonymous_loginboolNo username or password required
rtsp_urlstring
notSupportMobileboolMobile not supported (range use)
ipeye_enableboolipeye enable
ipeye_linkstringipeye link
metadata_platform"None",
"General",
"Milestone"
stringStreaming data platform

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "rtsp_enable": {"type": "bool"},
        "rtsp_check_flag": {"type": "bool"},
        "anonymous_login": {"type": "bool"},
        "rtsp_url": {
            "type": "string",
            "min_len": 0,
            "max_len": 64
        },
         "metadata_platform": {
            "type": "string",
            "items": [
                "None",
                "General",
                "Milestone"
            ]
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get parameter for Network>Rtsp .

Request Message

None

Sample:

POST /API/NetworkConfig/Rtsp/Get HTTP/1.1

note:(DVR/NVR not supported)

{
    "version":"1.0",
    "data":{}
}

Response Message

Parameter Description

See Network > Rtsp > Range > Parameter Description > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "rtsp_enable": true,
        "rtsp_check_flag": true,
        "anonymous_login": false,
        "rtsp_url": "rtsp://IP:RtspPort/rtsp/streaming?channel=01&subtype=A",
        "ipeye_enable": true,
        "metadata_platform": "None"        
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set parameter for Network>Rtsp.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
rtsp_enablebool
rtsp_check_flagbool
anonymous_loginboolNo user name or password is required
ipeye_enablebool
rtsp_urlstring
metadata_platform"None",
"General",
"Milestone"
stringStreaming data platform

Sample:

POST /API/NetworkConfig/Rtsp/Set HTTP/1.1

note:(DVR/NVR Not Supported)

{
    "version": "1.0",
    "data": {
        "rtsp_enable": true,
        "rtsp_check_flag": true,
        "anonymous_login": false,
        "rtsp_url": "rtsp://IP:RtspPort/ch01/A",
        "ipeye_enable": true,
        "metadata_platform": "None"
    }
}

Response Message

None

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result":"success",
    "data":{}
}

Error Code

See Response Messages Body and Common error_code for more information.

snmp

Function

This API is used for get or set snmp parameters.

URI

POST/API/NetworkConfig/Snmp/{Action}

Table 1 Describes the parameter.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYesRequest action,includeing Range, GetSet.

Range

Function

This API is used to get the parameter range of Network > snmp.

Request Message

None

Sample:

POST /API/NetworkConfig/Snmp/Range HTTP/1.1
{
    "version":"1.0",
    "data":{}
}

Response Message

Parameter Description

Table 1
ParameterRangeTypeDescription
snmp_portint
snmp_enableboolfalse:disable true:enable
trap_portint
snmp_versions"V1",
"V2",
"V1,V2"
"V3"
string0:snmp v1
1:snmp v2
2:snmp v1 v2
3:snmp v3
trap_ipaddrMax length:32bytestringManagement Server Address
read_communityMax length:16bytestringSet IPC Read Community Name
The server uses this common name and only reads snmp information on the IPC
write_communityMax length:16bytestringSet IPC Read Community Name
The server uses this common name and only reads snmp information on the IPC
authenticationobject jsonsee Table 2 for more information
base_enc_authentication_passwordobject jsonencrypted password,see base_enc_password Table information for more information
base_enc_encrypted_passwordobject jsonencrypted password,see base_enc_password Table information for more information
Table 2
ParameterRangeTypeDescription
readonlyobjectSet Read User,see Table 3 for more information
readwrite_userobjectSet Write User,see Table 3 for more information
Table 3
ParameterRangeTypeDescription
authentication_type“MD5”, “SHA”stringMD5 authentication method,SHA authentication method
encrypted_type“CBC-DES”stringFor encryption algorithm extension
usernameMax length:16bytestring
authentication_passwordMax length:16bytestring
authentication_password_emptyboolpassword empty
encrypted_passwordMax length:16bytestring
encrypted_password_emptyboolpassword empty

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "snmp_enable": {"type": "bool"},
        "snmp_versions": {
            "type": "string",
            "items": [
                "V1",
                "V2",
                "V1,V2",
                "V3"
            ]
        },
        "snmp_port": {
            "type": "int32",
            "min": 1,
            "max": 65535,
            "default_value": 161
        },
        "read_community": {
            "type": "string",
            "min_len": 0,
            "max_len": 15
        },
        "write_community": {
            "type": "string",
            "min_len": 0,
            "max_len": 15
        },
        "trap_ipaddr": {
            "type": "string",
            "min_len": 7,
            "max_len": 15
        },
        "trap_port": {
            "type": "int32",
            "min": 1,
            "max": 65535,
            "default_value": 162
        },
        "authentication": {
            "type": "object",
            "items": {
                "readonly_user": {
                    "type": "object",
                    "items": {
                        "username": {
                            "description": "Each range {min_len,max_len} corresponds to one snmp_enable state [false,true].",
                            "type": "string",
                            "mode": "rw",
                            "ranges": [
                                {
                                    "min_len": 0,
                                    "max_len": 16
                                },
                                {
                                    "min_len": 0,
                                    "max_len": 16
                                }
                            ]
                        },
                        "authentication_type": {
                            "type": "string",
                            "items": [
                                "MD5",
                                "SHA"
                            ]
                        },
                        "authentication_password": {
                            "description": "Each range {min_len,max_len} corresponds to one snmp_enable state [false,true].",
                            "type": "string",
                            "mode": "rw",
                            "ranges": [
                                {
                                    "min_len": 0,
                                    "max_len": 15
                                },
                                {
                                    "min_len": 8,
                                    "max_len": 15
                                }
                            ]
                        },
                        "authentication_password_empty": {"type": "bool"},
                        "encrypted_type": {
                            "type": "string",
                            "items": ["CBC-DES"]
                        },
                        "encrypted_password": {
                            "description": "Each range {min_len,max_len} corresponds to one snmp_enable state [false,true].",
                            "type": "string",
                            "mode": "rw",
                            "ranges": [
                                {
                                    "min_len": 0,
                                    "max_len": 15
                                },
                                {
                                    "min_len": 8,
                                    "max_len": 15
                                }
                            ]
                        },
                        "encrypted_password_empty": {"type": "bool"}
                    }
                },
                "readwrite_user": {
                    "type": "object",
                    "items": {
                        "username": {
                            "description": "Each range {min_len,max_len} corresponds to one snmp_enable state [false,true].",
                            "type": "string",
                            "mode": "rw",
                            "ranges": [
                                {
                                    "min_len": 0,
                                    "max_len": 16
                                },
                                {
                                    "min_len": 0,
                                    "max_len": 16
                                }
                            ]
                        },
                        "authentication_type": {
                            "type": "string",
                            "items": [
                                "MD5",
                                "SHA"
                            ]
                        },
                        "authentication_password": {
                            "description": "Each range {min_len,max_len} corresponds to one snmp_enable state [false,true].",
                            "type": "string",
                            "mode": "rw",
                            "ranges": [
                                {
                                    "min_len": 0,
                                    "max_len": 15
                                },
                                {
                                    "min_len": 8,
                                    "max_len": 15
                                }
                            ]
                        },
                        "authentication_password_empty": {"type": "bool"},
                        "encrypted_type": {
                            "type": "string",
                            "items": ["CBC-DES"]
                        },
                        "encrypted_password": {
                            "description": "Each range {min_len,max_len} corresponds to one snmp_enable state [false,true].",
                            "type": "string",
                            "mode": "rw",
                            "ranges": [
                                {
                                    "min_len": 0,
                                    "max_len": 15
                                },
                                {
                                    "min_len": 8,
                                    "max_len": 15
                                }
                            ]
                        },
                        "encrypted_password_empty": {"type": "bool"}
                    }
                }
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get parameter for Network>snmp.

Request Message

None

Sample:

POST /API/NetworkConfig/Snmp/Get HTTP/1.1
{
    "version":"1.0",
    "data":{}
}

Response Message

Parameter Description

See Network > snmp > Range > Parameter Description > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "snmp_enable": true,
        "snmp_versions": "V3",
        "snmp_port": 161,
        "read_community": "public",
        "write_community": "private",
        "trap_ipaddr": "127.0.0.1",
        "trap_port": 162,
        "authentication": {
            "readonly_user": {
                "username": "authOnlyUser",
                "authentication_type": "MD5",
                "authentication_password": "",
                "authentication_password_empty": false,
                "encrypted_type": "CBC-DES",
                "encrypted_password": "",
                "encrypted_password_empty": false
            },
            "readwrite_user": {
                "username": "authPrivUser",
                "authentication_type": "SHA",
                "authentication_password": "",
                "authentication_password_empty": false,
                "encrypted_type": "CBC-DES",
                "encrypted_password": "",
                "encrypted_password_empty": false
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set parameter for Network>snmp.

Request Message

Parameter Description

See Network > snmp > Range > Parameter > Table 1 for parameter description.

Sample:

POST /API/NetworkConfig/Snmp/Set HTTP/1.1
{
    "version": "1.0",
    "data": {
        "snmp_enable": true,
        "snmp_versions": "V3",
        "snmp_port": 161,
        "read_community": "public",
        "write_community": "private",
        "trap_ipaddr": "127.0.0.1",
        "trap_port": 162,
        "authentication": {
            "readonly_user": {
                "username": "authOnlyUser",
                "authentication_type": "MD5",
                "authentication_password_empty": false,
                "encrypted_type": "CBC-DES",
                "encrypted_password_empty": false,
                "base_enc_authentication_password": {
                    "seq": 0,
                    "peer_key": "0D+VG/UsfUQuIknWk1L8Wg4G9HW9VjkKGStyaOdK68W4=",
                    "cipher": "0lA3HPPzyuk8h8+PSTXcgxAaGwf5K9k1w3U11CWtrOPwHaBy1"
                },
                "base_enc_encrypted_password": {
                    "seq": 0,
                    "peer_key": "0ZiA2CYOlj+8sZQTDIzO9G4myWMdg0h+Nozx3O/MBr0I=",
                    "cipher": "0oK0YB8zf6Wu3ryDoRuSW0lQt/69DCH+XagPWVUfMUfQwKeqoPXEoPN8="
                }
            },
            "readwrite_user": {
                "username": "authPrivUser",
                "authentication_type": "MD5",
                "authentication_password_empty": false,
                "encrypted_type": "CBC-DES",
                "encrypted_password_empty": false
            }
        }
    }
}

Response Message

None

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result":"success",
    "data":{}   
}

Error Code

See Response Messages Body and Common error_code for more information.

Tuya

Function

This API is used for get or set tuya parameters.

URI

POST/API/NetworkConfig/Tuya/{Action}

Table 1 Describes the parameter.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYesRequest action,including RangeGetSet.

Range

Function

This API is used to get the parameter range of Network > Tuya.

Request Message

None.

Sample:

POST /API/NetworkConfig/Tuya/Range HTTP/1.1
{
    "version":"1.0",
    "data":{}
}

Response Message

Parameter Description

Table 1
ParameterRangeTypeDescription
enableboolenable

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {"enable": {"type": "bool"}}
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get parameter for Network>Tuya.

Request Message

None

Sample:

POST /API/NetworkConfig/Tuya/Get HTTP/1.1
{
    "version":"1.0"
}

Response Message

Parameter Description

See Network > Tuya > Range > Parameter Description > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result":"success",
    "data":
    {
        "enable":"false"
    }   
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set parameter for Network>Tuya.

Request Message

Parameter Description

See Network > Tuya > Range > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/NetworkConfig/Tuya/Set HTTP/1.1
{
    "version":"1.0",
    "data":
    {
        "enable":"true"
    }
}

Response Message

None

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result":"success",
    "data":{}   
}

Error Code

See Response Messages Body and Common error_code for more information.

Voice Assistant

Function

This API is used for get or control voice assistant parameters.

URI

POST/API/NetworkConfig/VoiceAssistant/{Action}

Table 1 Describes the parameter.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYesRequest action,including Range, GetSet.

Range

Function

This API is used to get the parameter range of Network > Voice Assistant.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
SmartHomePage"Amazon"
"Google"
stringVoice assistant type.

Sample:

POST /API/NetworkConfig/SMARTHOME/Range HTTP/1.1
{
    "version": "1.0",
    "data": {"SmartHomePage": "Amazon"}
}

Response Message

Parameter Description

Table 2
ParameterRangeTypeDescription
SmartHomePage"Amazon"
"Google"
stringVoice assistant type.
operate"Bind"
"UnBind"
"Apply"
string
BindEnablebool
UserNamestring length:0-128stringThe account corresponding to the platform to be displayed.
ScreenStream"Mainstream"
"Substream"
The stream of screen projection.
default_timeoutintDefault timeout time, 60000ms.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "SmartHomePage": {
            "type": "string",
            "items": [
                "Amazon",
                "Google"
            ]
        },
        "operate": {
            "type": "string",
            "items": [
                "Bind",
                "UnBind",
                "Apply"
            ]
        },
        "BindEnable": {"type": "bool"},
        "UserName": {
            "type": "string",
            "min_len": 0,
            "max_len": 128
        },
        "ScreenStream": {
            "type": "string",
            "items": [
                "Mainstream",
                "Substream"
            ]
        },
        "default_timeout": 60000
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get parameter for Network>Voice Assistant.

Request Message

Parameter Description

See Network > Voice Assistant > Range > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/NetworkConfig/SMARTHOME/Get HTTP/1.1

This API is currently not implemented.

{
    "version": "1.0",
    "data": {"SmartHomePage": "Amazon"}
}

Response Message

Parameter Description

See Network > Voice Assistant > Range > Parameter Description > Table 2 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "BindEnable": true,
        "UserName": "xxxx@qq.com",
        "ScreenStream": "Substream"
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Control

Function

This API is used to control Network>Voice Assistant.

Request Message

Parameter Description

See Network > Voice Assistant > Range > Parameter Description > Table 2 for parameter description.

Sample:

POST /API/NetworkConfig/SMARTHOME/Control HTTP/1.1

This API is currently not implemented.

{
    "version": "1.0",
    "data": {
        "BindEnable": true,
        "UserName": "xxxxx@qq.com",
        "ScreenStream": "Mainstream",
        "SmartHomePage": "Amazon",
        "operate": "Apply"
    }
}

Response Message

Parameter Description

None.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Error Code

Table 1
error_codecommet
user_errorInvalid account.
bind_failBinding failed.
unbind_failUnbind failed.
error_try_againThe request failed.
Network_or_DNS_errorNetwork or DNS error.

See Table 1,Response Messages Body and Common error_code for more information.

IEEE8021x

Function

This API is used for get or set IEEE8021x parameters.

URI

POST/API/NetworkConfig/IEEE8021x/{Action}

Table 1 Describes the parameter.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYesRequest action, includeing Range, Get, Set.

Range

Function

This API is used to get the parameter range of Network > IEEE8021x .

Request Message

None

Sample:

POST /API/NetworkConfig/IEEE8021x/Range HTTP/1.1
{
    "version":"1.0",
    "data":{}
}

Response Message

Parameter Description

Table 1
ParameterRangeTypeDescription
ieee_enableboolfalse:disable
true:enable
username0-127,
1-127
stringusername
password0-127,
1-127
stringpassword
password_emptyboolfalse:non-empty
true:empty
authentication_type"EAP-MD5",
"EAP-MSCHAPv2",
"EAP-MD5-Challenge",
"EAP-PEAP/MSCHAPv2",
"EAP-TTLS/EAP-MD5-Challenge",
"EAP-TLS"
string0:EAP-MD5
1:EAP-MSCHAPv2
2:EAP-MD5-Challenge
3:EAP-PEAP/MSCHAPv2
4:EAP-TTLS/EAP-MD5-Challenge
5:EAP-TLS
authenticationobjectFor authentication,see Table 2 for more information
base_enc_passwordJson ObjectSee base_enc_password (Only set).
Table 2
ParameterRangeTypeDescription
client_passwd_auth_onlyobject
client_passwd_auth_server_certificateobjectNo encryption is required during transmission,see Table 3 for more information
client_certificate_server_certificateobjectThe private key delivered from the board is required for transmission,see Table 4 for more information
Table 3
ParameterRangeTypeDescription
ca_certMax length:10240bytestringCA Certificate Content
install_buttonboolCertificate installed or not
delete_buttonboolCertificate uninstall or not
Table 4
ParameterRangeTypeDescription
ca_certMax length:10240bytestringCA Certificate Content
client_certMax length:10240bytestringclient certificate
private_keyMax length:10240bytestringClient key certificate
private_key_passwordMax length:127bytestringprivate key password
private_key_password_emptyboolfalse:non-empty
true:empty
install_buttonboolCertificate installed or not
delete_buttonboolCertificate uninstall or not

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "ieee_enable": {"type": "bool"},
        "username": {
            "description": "Each range {min_len,max_len} corresponds to one ieee_enable state [false,true].",
            "type": "string",
            "mode": "rw",
            "ranges": [
                {
                    "min_len": 0,
                    "max_len": 127
                },
                {
                    "min_len": 1,
                    "max_len": 127
                }
            ]
        },
        "password": {
            "description": "Each range {min_len,max_len} corresponds to one ieee_enable state [false,true].",
            "type": "string",
            "mode": "rw",
            "ranges": [
                {
                    "min_len": 0,
                    "max_len": 127
                },
                {
                    "min_len": 1,
                    "max_len": 127
                }
            ]
        },
        "password_empty": {"type": "bool"},
        "authentication_type": {
            "type": "string",
            "items": [
                "EAP-MD5",
                "EAP-MSCHAPv2",
                "EAP-MD5-Challenge",
                "EAP-PEAP/MSCHAPv2",
                "EAP-TTLS/EAP-MD5-Challenge",
                "EAP-TLS"
            ]
        },
        "authentication": {
            "type": "object",
            "items": {
                "client_passwd_auth_only": {
                    "type": "object",
                    "items": {}
                },
                "client_passwd_auth_server_certificate": {
                    "type": "object",
                    "items": {},
                    "ca_cert": {
                        "type": "string",
                        "min_len": 0,
                        "max_len": 10240
                    },
                    "install_button": {"type": "bool"},
                    "delete_button": {"type": "bool"}
                },
                "client_certificate_server_certificate": {
                    "type": "object",
                    "items": {},
                    "ca_cert": {
                        "type": "string",
                        "min_len": 0,
                        "max_len": 10240
                    },
                    "client_cert": {
                        "type": "string",
                        "min_len": 0,
                        "max_len": 10240
                    },
                    "private_key": {
                        "type": "string",
                        "min_len": 0,
                        "max_len": 10240
                    },
                    "private_key_password": {
                        "type": "string",
                        "min_len": 0,
                        "max_len": 127
                    },
                    "private_key_password_empty": {"type": "bool"},
                    "install_button": {"type": "bool"},
                    "delete_button": {"type": "bool"}
                }
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function Introduction

This API is used to get parameter for Network > IEEE8021x .

Request Message

None

Sample:

POST /API/NetworkConfig/IEEE8021x/Get HTTP/1.1
{
    "version":"1.0",
    "data":{}
}

Response Message

Parameter Description

See Network > IEEE8021x > Range > Parameter Description > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "ieee_enable": true,
        "authentication_type": "EAP-PEAP/MSCHAPv2",
        "username": "test",
        "password": "",
        "password_empty": false,
        "authentication": {
            "client_certificate_server_certificate": {
                "install_button": true,
                "delete_button": false,
                "private_key_password": "",
                "private_key_password_empty": true
            },
            "client_passwd_auth_server_certificate": {
                "password": "",
                "password_empty": false,
                "install_button": false,
                "delete_button": true
            },
            "client_passwd_auth_only": {}
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set parameter for Network > IEEE8021x.

Request Message

Parameter Description

See Network > IEEE8021x > Range > Parameter > Table 1 for parameter description.

Sample:

POST /API/NetworkConfig/IEEE8021x/Set HTTP/1.1
{
    "version": "1.0",
    "data": {
        "ieee_enable": true,
        "authentication_type": "EAP-MD5",
        "username": "test",
        "password_empty": false,
        "authentication": {
            "client_certificate_server_certificate": {
                "install_button": true,
                "delete_button": false,
                "private_key_password": "",
                "private_key_password_empty": true
            },
            "client_passwd_auth_server_certificate": {
                "password": "",
                "password_empty": false,
                "install_button": true,
                "delete_button": false
            },
            "client_passwd_auth_only": {}
        },
        "base_enc_password": {
            "seq": 0,
            "peer_key": "0niVaQ47ri7+RhWeEISnYXJ1M27j7SYnxb8msT7AcMzw=",
            "cipher": "0Vtyz03DVcoD7dpfwgpEaDrPPTG2YCWOAO2pTnJOL04UbPlyMwHY="
        }
    }
}

Response Message

None

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result":"success",
    "data":{}   
}

Error Code

See Response Messages Body and Common error_code for more information.

Channel

API

Function

This API is used to get or set for the Scheduled Tasks page

URL

POST /API/Schedules/PtzTasks/{Action}

Table 1 Description Parameter details

Parameter Description

Table 1

ParameterRequiredDescription
ActionyesRequest actions, including RangeGetSet

Range

Function

This API is used to get Channel > Scheduled Tasks parameter scale。

Request Message

Sample:

POST /API/Schedules/PtzTasks/Range HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 1

ParameterRangeTypedescription
schedule_tasks_enableboolEnable or disable cruise task schedule
tasks_recovery_times[5,720]intRecovery time after the current cruise mission is interrupted
belt_times_use[1,100]intPercentage of belt life
scheduleJSON arraySchedule information such as Table 2

Table 2

ParameterRangeTypedescription
schedule_type"Close"
"Line Scan"
"Tour"
"Pattern Scan"
"Preset"
stringCruise schedule type
schedule_type_num[0]
[0]
[1,2,3,4]
[1,2,3,4]
[1,2,3,4,5,6,7,8]
int arraySchedule subtask numbers for different cruises
week[1,100]JSON arrayweek Parameter information is as follows Table 3

Table 3

ParameterRangeTypedescription
day“Sun”
“Mon”
“Tue”
“Wed”
“Thu”
“Fri”
“Sat”
stringMark the day of the week
time0: disables the time range
1: enables the time range
arrayEach array bit identifies half an hour

Sample:

POST /API/ NetworkConfig/T28181/Range HTTP/1.1
{
    "result": "success",
    "data": {"channel_info": {
        "type": "object",
        "items": {"CH1": {
            "type": "object",
            "items": {
                "schedule_tasks_enable": {"type": "bool"},
                "belt_times_use": {
                    "type": "int32",
                    "min": 0,
                    "max": 100
                },
                "schedule": {
                    "type": "array",
                    "min_size": 0,
                    "max_size": 5,
                    "items": [{
                        "schedule_type": {
                            "type": "string",
                            "items": [
                                "Close",
                                "Line Scan",
                                "Tour",
                                "Pattern Scan",
                                "Preset"
                            ]
                        },
                        "schedule_type_num": {
                            "type": "int32",
                            "min": 0,
                            "max": 8,
                            "ranges": [
                                [0],
                                [0],
                                [
                                    1,
                                    2,
                                    3,
                                    4
                                ],
                                [
                                    1,
                                    2,
                                    3,
                                    4
                                ],
                                [
                                    1,
                                    2,
                                    3,
                                    4,
                                    5,
                                    6,
                                    7,
                                    8
                                ]
                            ]
                        },
                        "week": {
                            "type": "array",
                            "size": 7,
                            "items": [{
                                "day": {
                                    "type": "string",
                                    "items": [
                                        "Sun",
                                        "Mon",
                                        "Tue",
                                        "Wed",
                                        "Thu",
                                        "Fri",
                                        "Sat"
                                    ]
                                },
                                "time": {
                                    "type": "array",
                                    "size": 48,
                                    "items": [{
                                        "type": "int32",
                                        "items": [
                                            0,
                                            1,
                                            2,
                                            3,
                                            4,
                                            5,
                                            6,
                                            7,
                                            8,
                                            9
                                        ]
                                    }]
                                }
                            }]
                        }
                    }]
                },
                "tasks_recovery_times": {
                    "type": "int32",
                    "mode": "r",
                    "min": 5,
                    "max": 720,
                    "default_value": 5
                }
            }
        }}
    }}
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get Channel > Scheduled Tasks Page parameters.

Request Message

None.

Sample:

POST /API/Schedules/PtzTasks/Get HTTP/1.1
{
	"version": "1.0",
	"data": {}
}

Response Message

See Channel > Schedule Tasks > Table 1

Sample

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {"channel_info": {"CH1": {
        "schedule_tasks_enable": true,
        "belt_times_use": 0,
        "schedule": [
            {
                "schedule_type": "Close",
                "week": [
                    {
                        "day": "Sun",
                        "time": [0,0,0,...,0,0,0]   
                    },
                    {
                        "day": "Mon",
                        "time": [0,0,0,...,0,0,0]
                    },
                    {
                        "day": "Tue",
                        "time": [0,0,0,...,0,0,0]
                    },
                    {
                        "day": "Wed",
                        "time": [0,0,0,...,0,0,0]
                    },
                    {
                        "day": "Thu",
                        "time": [0,0,0,...,0,0,0]
                    },
                    {
                        "day": "Fri",
                        "time": [0,0,0,...,0,0,0]
                    },
                    {
                        "day": "Sat",
                        "time": [0,0,0,...,0,0,0]
                    }
                ]
            },
            {
                "schedule_type": "Line Scan",
                "week": [
                    {
                        "day": "Sun",
                        "time": [0,0,0,...,0,0,0]   
                    },
                    {
                        "day": "Mon",
                        "time": [0,0,0,...,0,0,0]
                    },
                    {
                        "day": "Tue",
                        "time": [0,0,0,...,0,0,0]
                    },
                    {
                        "day": "Wed",
                        "time": [0,0,0,...,0,0,0]
                    },
                    {
                        "day": "Thu",
                        "time": [0,0,0,...,0,0,0]
                    },
                    {
                        "day": "Fri",
                        "time": [0,0,0,...,0,0,0]
                    },
                    {
                        "day": "Sat",
                        "time": [0,0,0,...,0,0,0]
                    }
                ]
            },
            {
                "schedule_type": "Tour",
                "week": [
                    {
                        "day": "Sun",
                        "time": [0,0,0,...,1,0,0]   
                    },
                    {
                        "day": "Mon",
                        "time": [0,0,0,...,1,0,0]
                    },
                    {
                        "day": "Tue",
                        "time": [0,0,0,...,1,0,0]
                    },
                    {
                        "day": "Wed",
                        "time": [0,0,0,...,0,0,0]
                    },
                    {
                        "day": "Thu",
                        "time": [0,0,0,...,0,0,0]
                    },
                    {
                        "day": "Fri",
                        "time": [0,0,0,...,0,0,0]
                    },
                    {
                        "day": "Sat",
                        "time": [0,0,0,...,0,0,0]
                    }
                ]
            },
            {
                "schedule_type": "Pattern Scan",
                "week": [
                    {
                        "day": "Sun",
                        "time": [0,0,0,...,0,0,0]   
                    },
                    {
                        "day": "Mon",
                        "time": [0,0,0,...,0,0,0]
                    },
                    {
                        "day": "Tue",
                        "time": [0,0,0,...,0,0,0]
                    },
                    {
                        "day": "Wed",
                        "time": [0,0,0,...,0,0,0]
                    },
                    {
                        "day": "Thu",
                        "time": [0,0,0,...,0,0,0]
                    },
                    {
                        "day": "Fri",
                        "time": [0,0,0,...,0,0,0]
                    },
                    {
                        "day": "Sat",
                        "time": [0,0,0,...,0,0,0]
                    }
                ]
            },
            {
                "schedule_type": "Preset",
                "week": [
                    {
                        "day": "Sun",
                        "time": [0,0,0,...,0,0,0]   
                    },
                    {
                        "day": "Mon",
                        "time": [0,0,0,...,0,0,0]
                    },
                    {
                        "day": "Tue",
                        "time": [0,0,0,...,0,0,0]
                    },
                    {
                        "day": "Wed",
                        "time": [0,0,0,...,0,0,0]
                    },
                    {
                        "day": "Thu",
                        "time": [0,0,0,...,0,0,0]
                    },
                    {
                        "day": "Fri",
                        "time": [0,0,0,...,0,0,0]
                    },
                    {
                        "day": "Sat",
                        "time": [0,0,0,...,0,0,0]
                    }
                ]
			}
        ],
        "tasks_recovery_times": 5
    }}}
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to Set Channel > Scheduled Tasks Page parameters.

Request Message

Parameter Description

See Channel > Schedule Tasks > Table 1

Sample:

POST /API/Schedules/PtzTasks/Set HTTP/1.1
{
    "version": "1.0",
    "data": {"channel_info": {"CH1": {
        "schedule_tasks_enable": true,
        "belt_times_use": 0,
        "schedule": [
            {
                "schedule_type": "Close",
                "week": [
                    {
                        "day": "Sun",
                        "time": [
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0
                        ]
                    },
                    {
                        "day": "Mon",
                        "time": [
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0
                        ]
                    },
                    {
                        "day": "Tue",
                        "time": [
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0
                        ]
                    },
                    {
                        "day": "Wed",
                        "time": [
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0
                        ]
                    },
                    {
                        "day": "Thu",
                        "time": [
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0
                        ]
                    },
                    {
                        "day": "Fri",
                        "time": [
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0
                        ]
                    },
                    {
                        "day": "Sat",
                        "time": [
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0
                        ]
                    }
                ]
            },
            {
                "schedule_type": "Line Scan",
                "week": [
                    {
                        "day": "Sun",
                        "time": [
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0
                        ]
                    },
                    {
                        "day": "Mon",
                        "time": [
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0
                        ]
                    },
                    {
                        "day": "Tue",
                        "time": [
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0
                        ]
                    },
                    {
                        "day": "Wed",
                        "time": [
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0
                        ]
                    },
                    {
                        "day": "Thu",
                        "time": [
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0
                        ]
                    },
                    {
                        "day": "Fri",
                        "time": [
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0
                        ]
                    },
                    {
                        "day": "Sat",
                        "time": [
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0
                        ]
                    }
                ]
            },
            {
                "schedule_type": "Tour",
                "week": [
                    {
                        "day": "Sun",
                        "time": [
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0
                        ]
                    },
                    {
                        "day": "Mon",
                        "time": [
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0
                        ]
                    },
                    {
                        "day": "Tue",
                        "time": [
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0
                        ]
                    },
                    {
                        "day": "Wed",
                        "time": [
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0
                        ]
                    },
                    {
                        "day": "Thu",
                        "time": [
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0
                        ]
                    },
                    {
                        "day": "Fri",
                        "time": [
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0
                        ]
                    },
                    {
                        "day": "Sat",
                        "time": [
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0
                        ]
                    }
                ]
            },
            {
                "schedule_type": "Pattern Scan",
                "week": [
                    {
                        "day": "Sun",
                        "time": [
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0
                        ]
                    },
                    {
                        "day": "Mon",
                        "time": [
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0
                        ]
                    },
                    {
                        "day": "Tue",
                        "time": [
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0
                        ]
                    },
                    {
                        "day": "Wed",
                        "time": [
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0
                        ]
                    },
                    {
                        "day": "Thu",
                        "time": [
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0
                        ]
                    },
                    {
                        "day": "Fri",
                        "time": [
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0
                        ]
                    },
                    {
                        "day": "Sat",
                        "time": [
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0
                        ]
                    }
                ]
            },
            {
                "schedule_type": "Preset",
                "week": [
                    {
                        "day": "Sun",
                        "time": [
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0
                        ]
                    },
                    {
                        "day": "Mon",
                        "time": [
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0
                        ]
                    },
                    {
                        "day": "Tue",
                        "time": [
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0
                        ]
                    },
                    {
                        "day": "Wed",
                        "time": [
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0
                        ]
                    },
                    {
                        "day": "Thu",
                        "time": [
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0
                        ]
                    },
                    {
                        "day": "Fri",
                        "time": [
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0
                        ]
                    },
                    {
                        "day": "Sat",
                        "time": [
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0
                        ]
                    }
                ]
            }
        ],
        "tasks_recovery_times": 5,
        "chn_index": "CH1",
        "scheduleType": "Close",
        "scheduleTypeNum": 0,
        "ptzSchedule": {
            "data": [
                [
                    [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                    ],
                    [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                    ],
                    [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                    ],
                    [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                    ],
                    [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                    ],
                    [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                    ],
                    [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                    ]
                ],
                [
                    [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                    ],
                    [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                    ],
                    [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                    ],
                    [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                    ],
                    [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                    ],
                    [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                    ],
                    [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                    ]
                ],
                [
                    [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                    ],
                    [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                    ],
                    [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                    ],
                    [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                    ],
                    [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                    ],
                    [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                    ],
                    [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                    ]
                ],
                [
                    [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                    ],
                    [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                    ],
                    [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                    ],
                    [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                    ],
                    [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                    ],
                    [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                    ],
                    [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                    ]
                ],
                [
                    [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                    ],
                    [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                    ],
                    [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                    ],
                    [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                    ],
                    [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                    ],
                    [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                    ],
                    [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                    ]
                ]
            ],
            "ptzData": [
                [
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1"
                ],
                [
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1"
                ],
                [
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1"
                ],
                [
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1"
                ],
                [
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1"
                ],
                [
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1"
                ],
                [
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1",
                    "-1"
                ]
            ],
            "colors": [
                "#666",
                "#B9E2FE",
                "#66eeff",
                "#004d99",
                "#32a0e1"
            ],
            "schType": "schedule_ptz",
            "aiColorsLen": 1,
            "words": [
                "Close",
                "Line Scan",
                "Tour",
                "Pattern Scan",
                "Preset"
            ],
            "titlewords": [
                "Close",
                "Line Scan",
                "Tour",
                "Pattern Scan",
                "Preset"
            ],
            "selcolor": 0,
            "selnumArr": [
                [0],
                [0],
                [
                    1,
                    2,
                    3,
                    4
                ],
                [
                    1,
                    2,
                    3,
                    4
                ],
                [
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8
                ]
            ],
            "selnum": 0,
            "cells": {
                "width": "25px",
                "height": "20px"
            },
            "weeks": [
                "SUN",
                "MON",
                "TUE",
                "WED",
                "THU",
                "FRI",
                "SAT"
            ],
            "radio": 3,
            "defaultSelType": {"default": 0},
            "rows": 7,
            "cols": 48,
            "radioWidth": "20px"
        }
    }}}
}

Response Message

Sample

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result":"success",
    "data":{}
}

Error Code

See Response Messages Body and Common error_code for more information.

Channel Configuration

This item includes broadcast, digital channel configuration, analog channel configuration, protocol management configuration multiple apis, and wireless channel configuration.

Digital channel configuration includes automatic ipc adding, manual ipc adding, deleting, and modifying scenarios.

Analog Channel

Function

This API is used to get or set Analog Channel page parameters.

URI

POST  /API/ChannelConfig/AnalogChannel/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range, Get, Set.

Range

Function

This API is used to get parameter range for Channel > Analog Channel page.

Note:

The Range provides reference information for client UI input limits and API request limits. When sending Get and Set requests, the parameters must be strictly limited according to the Range, otherwise the request may be rejected by the device.

Request Message

None.

Sample:

POST /ChannelConfig/AnalogChannel/Range HTTP/1.1
{
	"version": "1.0",
	"data": {
		"page_type": "ChannelConfig"
	}
}

Response Message

Parameter Description

Table 1

ParameterRangeTypeDescription
channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…” WIFI_CH1x”
The number of channels depends on the capabilities of the device.
string arrayEach array bit represents a channel with a string.

Table 2

ParameterRangeTypeDescription
channel_infoJSON ObjectChannel Information JSON show as follow Table 3

Table 3

ParameterRangeTypeDescription
CH1Json ObjectJSON show as follow Table 4
Json Object
IP_CH1Json Object
Json Object
WIFI_CH1Json Object
Json Object

Table 4

ParameterRangeTypeDescription
status"Offline",
"Online"
stringChannel online status, only for digital channels.
Note: This field does not exist when the channel is online.
channel_nameMax length: 31bytestringChannel name
switchbooltrue: enable
false: disable

Tips:

The response message of the Range request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {
		"channel_max": 20,
		"channel_info": {
			"type": "object",
			"items": {
				"CH1": {
					"type": "object",
					"items": {
						"channel_name": {
							"type": "string",
							"min_len": 0,
							"max_len": 31
						},
						"state": {
							"type": "string",
							"items": [
								"Disable",
								"Enable"
							]
						},
						"switch": {
							"type": "bool"
						}
					}
				},
				"CH2": {
					"type": "object",
					"items": {
						"channel_name": {
							"type": "string",
							"min_len": 0,
							"max_len": 31
						},
						"state": {
							"type": "string",
							"items": [
								"Disable",
								"Enable"
							]
						},
						"switch": {
							"type": "bool"
						}
					}
				},
				"CH3": {
					"type": "object",
					"items": {
						"channel_name": {
							"type": "string",
							"min_len": 0,
							"max_len": 31
						},
						"state": {
							"type": "string",
							"items": [
								"Disable",
								"Enable"
							]
						},
						"switch": {
							"type": "bool"
						}
					}
				},
				"CH4": {
					"type": "object",
					"items": {
						"channel_name": {
							"type": "string",
							"min_len": 0,
							"max_len": 31
						},
						"state": {
							"type": "string",
							"items": [
								"Disable",
								"Enable"
							]
						},
						"switch": {
							"type": "bool"
						}
					}
				},
				"CH5": {
					"type": "object",
					"items": {
						"channel_name": {
							"type": "string",
							"min_len": 0,
							"max_len": 31
						},
						"state": {
							"type": "string",
							"items": [
								"Disable",
								"Enable"
							]
						},
						"switch": {
							"type": "bool"
						}
					}
				},
				"CH6": {
					"type": "object",
					"items": {
						"channel_name": {
							"type": "string",
							"min_len": 0,
							"max_len": 31
						},
						"state": {
							"type": "string",
							"items": [
								"Disable",
								"Enable"
							]
						},
						"switch": {
							"type": "bool"
						}
					}
				},
				"CH7": {
					"type": "object",
					"items": {
						"channel_name": {
							"type": "string",
							"min_len": 0,
							"max_len": 31
						},
						"state": {
							"type": "string",
							"items": [
								"Disable",
								"Enable"
							]
						},
						"switch": {
							"type": "bool"
						}
					}
				},
				"CH8": {
					"type": "object",
					"items": {
						"channel_name": {
							"type": "string",
							"min_len": 0,
							"max_len": 31
						},
						"state": {
							"type": "string",
							"items": [
								"Disable",
								"Enable"
							]
						},
						"switch": {
							"type": "bool"
						}
					}
				}
			}
		}
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get Channel > Analog Channel page parameters.

Request Message

None.

Sample:

POST /API/ChannelConfig/AnalogChannel/Get HTTP/1.1
{
	"version": "1.0",
	"data": {
		"page_type": "ChannelConfig"
	}
}

Response Message

See Channel > Analog Channel > Parameter Description > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {
		"channel_info": {
			"CH1": {
				"channel_name": "CH1",
				"state": "Enable",
				"switch": true
			},
			"CH2": {
				"channel_name": "CH2",
				"state": "Enable",
				"switch": true
			},
			"CH3": {
				"channel_name": "CH3",
				"state": "Enable",
				"switch": true
			},
			"CH4": {
				"channel_name": "CH4",
				"state": "Enable",
				"switch": true
			},
			"CH5": {
				"channel_name": "CH5",
				"state": "Enable",
				"switch": true
			},
			"CH6": {
				"channel_name": "CH6",
				"state": "Enable",
				"switch": true
			},
			"CH7": {
				"channel_name": "CH7",
				"state": "Enable",
				"switch": true
			},
			"CH8": {
				"channel_name": "CH8",
				"state": "Enable",
				"switch": true
			}
		}
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set Channel > Analog Channel page parameters.

Request Message

See Channel > Analog Channel > Table 1 for parameter description.

Sample:

POST /API/ChannelConfig/AnalogChannel/Set HTTP/1.1
{
	"version": "1.0",
	"data": {
		"channel_info": {
			"CH1": {
				"channel_name": "CH1",
				"state": "Enable",
				"switch": true,
				"channel": "CH1"
			},
			"CH2": {
				"channel_name": "CH2",
				"state": "Enable",
				"switch": true,
				"channel": "CH2"
			},
			"CH3": {
				"channel_name": "CH3",
				"state": "Enable",
				"switch": true,
				"channel": "CH3"
			},
			"CH4": {
				"channel_name": "CH4",
				"state": "Enable",
				"switch": true,
				"channel": "CH4"
			},
			"CH5": {
				"channel_name": "CH5",
				"state": "Enable",
				"switch": true,
				"channel": "CH5"
			},
			"CH6": {
				"channel_name": "CH6",
				"state": "Enable",
				"switch": true,
				"channel": "CH6"
			},
			"CH7": {
				"channel_name": "CH7",
				"state": "Enable",
				"switch": true,
				"channel": "CH7"
			},
			"CH8": {
				"channel_name": "CH8",
				"state": "Enable",
				"switch": true,
				"channel": "CH8"
			}
		}
	}
}

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Broadcast IPC

Function

This API is used to broadcast search or modify IPC information.

URI

POST /API/ChannelConfig/RemoteDev/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range, Search, Set.

Range

Function

This API is used to get parameter range for Channel > Channel Configuration > Broadcast IPC page.

Note:

The Range provides reference information for client UI input limits and API request limits. When sending Search and Set requests, the parameters must be strictly limited according to the Range, otherwise the request may be rejected by the device.

Request Message

None.

Sample:

POST /API/ChannelConfig/RemoteDev/Range HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 1

ParameterRangeTypeDescription
channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…” WIFI_CH1x”
The number of channels depends on the capabilities of the device.
string arrayEach array bit represents a channel with a string.

Table 2

ParameterRangeTypeDescription
device_infoJSON ObjectChannel Information JSON show as follow Table 5

Table 3

ParameterRangeTypeDescription
operation_type"AddOrEditChannel",
"EditIPCParam",
"EditIPCPwd"
stringOperation Type: Add or modify channel parameters, edit connection IPC parameters, and edit connection IPC password.
remove_ipc“IP_CH1”…” IP_CH1x”
The number of channels depends on the capabilities of the device.
arrayEach array bit represents a channel with a string.
channel_infoJSON objectshow as follow Table 4

Table 4

ParameterRangeTypeDescription
CH1Json ObjectJSON show as follow Table 5
Json Object
IP_CH1Json Object
Json Object
WIFI_CH1Json Object
Json Object

Table 5

ParameterRangeTypeDescription
No1~1000000int
activesign0~2int
channel_numintNumber of channels supported by each device.
device_typeMax length: 35bytestringManufacturer
device_type_flagMax length: 32bytestringManufacturer flag, informing the third party IPC can broadcast protocol search, modify IP, but online still to ONVIF protocol online (only for NVR)
dns1Max length: 15bytestringPreferred DNS server, for example, 8.8.8.8.
dns2Max length: 15bytestringStandby DNS server, for example, 8.8.8.8.
fmuti_devidMax length: 1024bytestring
gatewayMax length: 15bytestringGateway
ip_addressMax length: 63bytestringIP address
ismodify_dhcpbool
ismodify_ipboolWhether the ip address is changed.
ismodify_portboolWhether the port address is changed.
ismodify_usernamebool
mac_addressMax length: 35bytestringMAC address
manufacturerMax length: 35bytestringDevice type
network_mode“Dhcp”,
”Static”
stringNetwork mode
old_ip_addressMax length: 63bytestringOld IP address
passwordMax length: 31bytestringPassword
password_emptyboolWhether the password is empty.
port[1~65535]intMedia port
protocolMax length: 15bytestringIPC access protocol
software_versionMax length: 40bytestringSoftware version
subnet_maskMax length: 15bytestringSubnet mask
usernameMax length: 31bytestring
version_flag[0~255]intVersion flag
web_port[1~65535]int

Tips:

The response message of the Range request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {
		"device_info": {
			"type": "array",
			"min_size": 0,
			"max_size": 500,
			"items": [
				{
					"network_mode": {
						"type": "string",
						"items": [
							"Dhcp",
							"Static"
						]
					},
					"ip_address": {
						"type": "string",
						"min_len": 7,
						"max_len": 63
					},
					"subnet_mask": {
						"type": "string",
						"min_len": 7,
						"max_len": 15
					},
					"gateway": {
						"type": "string",
						"min_len": 7,
						"max_len": 15
					},
					"dns1": {
						"type": "string",
						"min_len": 7,
						"max_len": 15
					},
					"dns2": {
						"type": "string",
						"min_len": 7,
						"max_len": 15
					},
					"port": {
						"type": "int32",
						"min": 1,
						"max": 65535
					},
					"web_port": {
						"type": "int32",
						"min": 1,
						"max": 65535
					},
					"channel_num": {
						"type": "int32",
						"mode": "r",
						"min": 1,
						"max": 256
					},
					"protocol": {
						"type": "string",
						"mode": "r",
						"items": [
							"Private",
							"Onvif",
							"RTSP",
							"Custom 1",
							"Custom 2",
							"Custom 3",
							"Custom 4",
							"Custom 5",
							"Custom 6",
							"Custom 7",
							"Custom 8",
							"Custom 9",
							"Custom 10",
							"Custom 11",
							"Custom 12",
							"Custom 13",
							"Custom 14",
							"Custom 15",
							"Custom 16"
						]
					},
					"username": {
						"type": "string",
						"mode": "w",
						"min_len": 0,
						"max_len": 31
					},
					"password": {
						"type": "string",
						"mode": "w",
						"min_len": 0,
						"max_len": 31
					},
					"manufacturer": {
						"type": "string",
						"mode": "r",
						"min_len": 0,
						"max_len": 35
					},
					"activesign": {
						"type": "int32",
						"mode": "r",
						"min": 0,
						"max": 2
					},
					"device_type": {
						"type": "string",
						"mode": "r",
						"min_len": 0,
						"max_len": 35
					},
					"device_type_flag": {
						"type": "string",
						"mode": "r",
						"min_len": 0,
						"max_len": 32
					},
					"mac_address": {
						"type": "string",
						"mode": "r",
						"min_len": 0,
						"max_len": 35
					},
					"software_version": {
						"type": "string",
						"mode": "r",
						"min_len": 0,
						"max_len": 40
					},
					"fmulti_devid": {
						"type": "string",
						"mode": "r",
						"min_len": 0,
						"max_len": 1024
					},
					"version_flag": {
						"type": "int32",
						"mode": "r",
						"min": 0,
						"max": 255
					},
					"old_ip_address": {
						"type": "string",
						"mode": "w",
						"min_len": 7,
						"max_len": 63
					},
					"ismodify_dhcp": {
						"type": "bool",
						"mode": "r"
					},
					"ismodify_ip": {
						"type": "bool",
						"mode": "r"
					},
					"ismodify_port": {
						"type": "bool",
						"mode": "r"
					},
					"ismodify_username": {
						"type": "bool",
						"mode": "r"
					},
					"password_empty": {
						"type": "bool"
					},
					"No": {
						"type": "int32",
						"min": 1,
						"max": 1000000
					}
				}
			]
		}
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Search

Function

This API is used to broadcast search IPC information.

Request Message

None.

Sample:

POST /API/ChannelConfig/RemoteDev/Search HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

See Channel > Channel Configuration > Broadcast IPC > Parameter Description > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {
		"device_info": [
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.8.5",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "WjNFZWZRWnMwTW1EM1E1VU1ZV1NrYjFGdWJTYU1sL29Lc2VXbjgyMjNaYz0=",
				"device_type": "NC591XB",
				"device_type_flag": "0",
				"mac_address": "00-23-63-A2-91-B0",
				"software_version": "V40.45.8.2.4_230705",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 1
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Static",
				"hide_network_mode": false,
				"ip_address": "172.16.8.46",
				"subnet_mask": "255.255.255.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 8,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 1,
				"fmulti_devid": "L1l3eExSa01MTEZPbmJuRkMvdnJxMHQ1VFlUdHkvdU41N01OTmpTeGZRMD0=",
				"device_type": "N2",
				"device_type_flag": "0",
				"mac_address": "00-23-63-A7-16-90",
				"software_version": "V1.0.0-20230620",
				"ismodify_username": true,
				"ismodify_dhcp": false,
				"ismodify_ip": true,
				"ismodify_port": false,
				"password_empty": true,
				"version_flag": 0,
				"No": 2
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Static",
				"hide_network_mode": true,
				"ip_address": "172.16.10.3",
				"subnet_mask": "000.000.000.000",
				"gateway": "000.000.000.000",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"channel_num": 1,
				"protocol": "Onvif",
				"manufacturer": "C2150-10-SIU",
				"activesign": 2,
				"fmulti_devid": "",
				"device_type": "",
				"device_type_flag": "0",
				"mac_address": "E6-CE-63-13-F1-3E",
				"software_version": "",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 3
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Static",
				"hide_network_mode": false,
				"ip_address": "172.16.10.6",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 8,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 1,
				"fmulti_devid": "UGxGQitEWlJjcUhmeGVXZE4rOTNqcy9vc2FLYWNWdDNIZkpUSkNOODY0cz0=",
				"device_type": "RC-H7208",
				"device_type_flag": "0",
				"mac_address": "88-EB-40-68-DA-82",
				"software_version": "V1.0.0-20230627",
				"ismodify_username": true,
				"ismodify_dhcp": false,
				"ismodify_ip": true,
				"ismodify_port": false,
				"password_empty": true,
				"version_flag": 0,
				"No": 4
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Static",
				"hide_network_mode": false,
				"ip_address": "172.16.10.7",
				"subnet_mask": "255.255.000.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 20,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 1,
				"fmulti_devid": "VG02VVZ1SXlpbFNidVBJRncyRDR4c0xsenZvVit5Q1RLZkhyVW5ZemZWOD0=",
				"device_type": "D8216NR",
				"device_type_flag": "0",
				"mac_address": "00-23-63-A2-92-D0",
				"software_version": "V8.2.4-20230712",
				"ismodify_username": true,
				"ismodify_dhcp": false,
				"ismodify_ip": true,
				"ismodify_port": false,
				"password_empty": true,
				"version_flag": 0,
				"No": 5
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Static",
				"hide_network_mode": false,
				"ip_address": "172.16.10.14",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 36,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 1,
				"fmulti_devid": "YWFrY3ZBck9MRUtPZ3NJNEQ0aXQySEg4aVQvRktYcW01OHVqZ2EyMWVYVT0=",
				"device_type": "DVR8132",
				"device_type_flag": "0",
				"mac_address": "00-23-63-A2-90-BB",
				"software_version": "V8.2.4-20230605",
				"ismodify_username": true,
				"ismodify_dhcp": false,
				"ismodify_ip": true,
				"ismodify_port": false,
				"password_empty": true,
				"version_flag": 0,
				"No": 6
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.10.16",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 4,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "WDNKd3RVQ2JtOWg0bVFvMVNwa1pYVEhJNHd3T1U2U29jVWpTR3poOElYYz0=",
				"device_type": "",
				"device_type_flag": "0",
				"mac_address": "00-23-63-1B-D1-AB",
				"software_version": "V44.45.8.2.3_230712",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 7
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Static",
				"hide_network_mode": true,
				"ip_address": "172.16.10.16",
				"subnet_mask": "000.000.000.000",
				"gateway": "000.000.000.000",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"channel_num": 1,
				"protocol": "Onvif",
				"manufacturer": "IPC",
				"activesign": 2,
				"fmulti_devid": "",
				"device_type": "",
				"device_type_flag": "0",
				"mac_address": "00-11-85-18-30-43",
				"software_version": "",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 8
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Static",
				"hide_network_mode": false,
				"ip_address": "172.16.10.25",
				"subnet_mask": "255.255.000.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 32,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 1,
				"fmulti_devid": "SHdTY3FPZWl0RVFVTHMvN1NCK0JiK05zbUxMckFtM1dYZWtRY3BueXRPZz0=",
				"device_type": "N7032N",
				"device_type_flag": "0",
				"mac_address": "00-23-63-A8-FE-77",
				"software_version": "V8.2.4-20230710",
				"ismodify_username": true,
				"ismodify_dhcp": false,
				"ismodify_ip": true,
				"ismodify_port": false,
				"password_empty": true,
				"version_flag": 0,
				"No": 9
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Static",
				"hide_network_mode": false,
				"ip_address": "172.16.10.39",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 443,
				"web_port": 443,
				"channel_num": 5,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 1,
				"fmulti_devid": "UG1xRDNpRVo3c0hDSFlsa1Z6WnBtTWhRcHhtTXNDaG9YVGdZWVlqWjVaUT0=",
				"device_type": "RS-SW04",
				"device_type_flag": "0",
				"mac_address": "00-23-63-94-6B-90",
				"software_version": "V8.2.1-20211202",
				"ismodify_username": true,
				"ismodify_dhcp": false,
				"ismodify_ip": true,
				"ismodify_port": false,
				"password_empty": true,
				"version_flag": 0,
				"No": 10
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Static",
				"hide_network_mode": false,
				"ip_address": "172.16.10.41",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": "GRUNDIG",
				"activesign": 1,
				"fmulti_devid": "M1lYRzlNbDBHeTg3U3ZvRUxFaFFMSGVYYkhjNVVtOVVPYVlnbFNwczBCMD0=",
				"device_type": "RS-CH248M7CG-TF-L36PW",
				"device_type_flag": "0",
				"mac_address": "00-23-63-A2-92-67",
				"software_version": "V26.34.8.2.3.4_230711",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 11
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Static",
				"hide_network_mode": false,
				"ip_address": "172.16.10.42",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "172.018.001.222",
				"dns2": "008.008.008.008",
				"port": 8240,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 2,
				"fmulti_devid": "",
				"device_type": "338G",
				"device_type_flag": "5932089557994242048",
				"mac_address": "00-23-63-A2-96-24",
				"software_version": "V21.45.8.2.3.4_230711",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 1,
				"No": 12
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Static",
				"hide_network_mode": false,
				"ip_address": "172.16.10.44",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": "GRUNDIG",
				"activesign": 1,
				"fmulti_devid": "VnpmODZWT2dCcmNXWWRkdGtSdGQybWhzQm9GNEVrR1N4UmQ0NkJRT3FEcz0=",
				"device_type": "INP-58M2812M0A",
				"device_type_flag": "0",
				"mac_address": "00-23-64-A4-98-13",
				"software_version": "V40.45.8.2.3.3_230625",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 13
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Static",
				"hide_network_mode": false,
				"ip_address": "172.16.10.45",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "anJpYzk0cE5ieUl3YkxHWWxuRDFwbmFabmY1RURvZmpYaFAwL2lCZnJ5Zz0=",
				"device_type": "338Q",
				"device_type_flag": "0",
				"mac_address": "00-23-63-A2-96-17",
				"software_version": "V26.34.8.2.4_230707",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 14
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Static",
				"hide_network_mode": false,
				"ip_address": "172.16.10.72",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 8,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 1,
				"fmulti_devid": "Um1yVVZPM01ndnFXdWdRdWRMTFczTkcxSEN4U0F4UFp0WXJFUzAzRDFadz0=",
				"device_type": "N7708",
				"device_type_flag": "0",
				"mac_address": "00-23-63-8F-47-BA",
				"software_version": "V8.2.3.2-20201217",
				"ismodify_username": true,
				"ismodify_dhcp": false,
				"ismodify_ip": true,
				"ismodify_port": false,
				"password_empty": true,
				"version_flag": 0,
				"No": 15
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Static",
				"hide_network_mode": false,
				"ip_address": "172.16.10.82",
				"subnet_mask": "255.255.000.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 12,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 1,
				"fmulti_devid": "dWZLUUpoUHVpZEcyN3pPbDMvWkU5Mk9XaGlUc0MrVWQzV3JFU0RVTHlsYz0=",
				"device_type": "UA-XVL",
				"device_type_flag": "0",
				"mac_address": "BC-51-FE-30-7A-21",
				"software_version": "V8.2.4-20230701",
				"ismodify_username": true,
				"ismodify_dhcp": false,
				"ismodify_ip": true,
				"ismodify_port": false,
				"password_empty": true,
				"version_flag": 0,
				"No": 16
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Static",
				"hide_network_mode": false,
				"ip_address": "172.16.10.94",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 20,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 1,
				"fmulti_devid": "SGFmalJKNjRyaDRacjJBNDlmMlhETmJPUjd4MVMrMEppZE9tejZpdUFrUT0=",
				"device_type": "D8216NR",
				"device_type_flag": "0",
				"mac_address": "88-E3-69-25-59-4A",
				"software_version": "V8.2.4-20230712",
				"ismodify_username": true,
				"ismodify_dhcp": false,
				"ismodify_ip": true,
				"ismodify_port": false,
				"password_empty": true,
				"version_flag": 0,
				"No": 17
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Static",
				"hide_network_mode": false,
				"ip_address": "172.16.10.95",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 8,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 1,
				"fmulti_devid": "UEd2NXBDZHZlZHJCMXFUNFhCeWdCRGx2U2RjOUpWajl4K1ZIV2FScWt2ST0=",
				"device_type": "N8708",
				"device_type_flag": "0",
				"mac_address": "88-59-47-1E-A1-04",
				"software_version": "V8.2.4-20230712",
				"ismodify_username": true,
				"ismodify_dhcp": false,
				"ismodify_ip": true,
				"ismodify_port": false,
				"password_empty": true,
				"version_flag": 0,
				"No": 18
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Static",
				"hide_network_mode": false,
				"ip_address": "172.16.10.101",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 12,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 1,
				"fmulti_devid": "VzlPblJqZi9vMmJDNW9OczluVnJhVW9hb2tkUzdYRVVpVUhhWGQ4RG1ocz0=",
				"device_type": "D7208",
				"device_type_flag": "0",
				"mac_address": "00-23-63-A2-94-17",
				"software_version": "V8.2.4-20230606",
				"ismodify_username": true,
				"ismodify_dhcp": false,
				"ismodify_ip": true,
				"ismodify_port": false,
				"password_empty": true,
				"version_flag": 0,
				"No": 19
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Static",
				"hide_network_mode": false,
				"ip_address": "172.16.10.103",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 32,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 1,
				"fmulti_devid": "ejdSVmpVVUhKSWI4ZDBBVkMwSVZVbkovZWRQeWx4bXNhRUtIMDlkdEdEQT0=",
				"device_type": "N7032N",
				"device_type_flag": "0",
				"mac_address": "00-23-63-9E-7C-75",
				"software_version": "V8.2.4-20230712",
				"ismodify_username": true,
				"ismodify_dhcp": false,
				"ismodify_ip": true,
				"ismodify_port": false,
				"password_empty": true,
				"version_flag": 0,
				"No": 20
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Static",
				"hide_network_mode": false,
				"ip_address": "172.16.10.112",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "UFRwOGdUb2hEZ0VORzlUc3VwWW5yR0VoQVJ5SDYwVllZS1dtdnhCWExmOD0=",
				"device_type": "IP CAMERA",
				"device_type_flag": "0",
				"mac_address": "00-23-63-9D-8E-7D",
				"software_version": "V30.85.8.2.4_230505",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 21
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Static",
				"hide_network_mode": false,
				"ip_address": "172.16.10.113",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "172.018.001.222",
				"dns2": "008.008.008.008",
				"port": 9000,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 2,
				"fmulti_devid": "",
				"device_type": "IP CAMERA",
				"device_type_flag": "5932089562290520064",
				"mac_address": "00-23-63-7B-26-5D",
				"software_version": "V14.45.5.0_190912",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 1,
				"No": 22
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Static",
				"hide_network_mode": false,
				"ip_address": "172.16.10.115",
				"subnet_mask": "255.255.000.000",
				"gateway": "172.016.008.001",
				"dns1": "001.001.001.001",
				"dns2": "172.018.001.222",
				"port": 9000,
				"web_port": 85,
				"channel_num": 4,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 2,
				"fmulti_devid": "",
				"device_type": "TKV-4",
				"device_type_flag": "5932091774199398656",
				"mac_address": "00-23-63-8F-4A-B8",
				"software_version": "V8.2.2-20221220",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 1,
				"No": 23
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Static",
				"hide_network_mode": false,
				"ip_address": "172.16.10.125",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 8,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 1,
				"fmulti_devid": "NHVWK3dWU3JvUkk0WWFPWkszNUdOS1VOdEZoaERDRjQ3SExobUFwcEMvcz0=",
				"device_type": "N7708",
				"device_type_flag": "0",
				"mac_address": "00-23-63-A2-94-F1",
				"software_version": "V8.2.4-20230710",
				"ismodify_username": true,
				"ismodify_dhcp": false,
				"ismodify_ip": true,
				"ismodify_port": false,
				"password_empty": true,
				"version_flag": 0,
				"No": 24
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Static",
				"hide_network_mode": false,
				"ip_address": "172.16.10.127",
				"subnet_mask": "255.255.000.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "UjF3K1ZMMmdmUXB2V1FSQ3IraWsyWCtSR1ZwbGV6UFhUUzZQRW1HZjdKVT0=",
				"device_type": "IP CAMERA",
				"device_type_flag": "0",
				"mac_address": "00-23-63-5A-09-01",
				"software_version": "V31.35.8.2.2_230712",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 25
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Static",
				"hide_network_mode": false,
				"ip_address": "172.16.10.135",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "Ri9PQm1HbVdyYzNhVDMzRHJKcmZKaGZIVjd5cThlcXFnblhwSG1McEpmOD0=",
				"device_type": "IP CAMERA",
				"device_type_flag": "0",
				"mac_address": "00-23-63-37-C9-BF",
				"software_version": "V21.45.8.2.3.4_230711",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 26
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Static",
				"hide_network_mode": false,
				"ip_address": "172.16.10.140",
				"subnet_mask": "255.255.000.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 12,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 1,
				"fmulti_devid": "bTY1cXpVYlRqYUh2YS9TK2VzemJqUUlSSU5obWVUbnByV1NNS0ZzWCtiST0=",
				"device_type": "HY-DVR",
				"device_type_flag": "0",
				"mac_address": "00-23-63-A6-54-52",
				"software_version": "V8.2.3.2-20230712",
				"ismodify_username": true,
				"ismodify_dhcp": false,
				"ismodify_ip": true,
				"ismodify_port": false,
				"password_empty": true,
				"version_flag": 0,
				"No": 27
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Static",
				"hide_network_mode": false,
				"ip_address": "172.16.10.141",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 16,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 1,
				"fmulti_devid": "dE5lUzRjZUJUSWZRZVY3WE1TTkJ4TE5MUXRaM0tReVpaRGw5Z0p2YktlND0=",
				"device_type": "LD16",
				"device_type_flag": "0",
				"mac_address": "00-23-63-A2-96-7F",
				"software_version": "V8.2.4-20230711",
				"ismodify_username": true,
				"ismodify_dhcp": false,
				"ismodify_ip": true,
				"ismodify_port": false,
				"password_empty": true,
				"version_flag": 0,
				"No": 28
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Static",
				"hide_network_mode": false,
				"ip_address": "172.16.10.151",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 443,
				"web_port": 443,
				"channel_num": 5,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 1,
				"fmulti_devid": "NGlET2VvVm9VMlg2ZjdXUVRYWmNFY0lWNkZxSTgxMk0rYS8reWZnVndkQT0=",
				"device_type": "RS-SW04",
				"device_type_flag": "0",
				"mac_address": "00-23-63-93-61-D3",
				"software_version": "V1.1.0-20211025",
				"ismodify_username": true,
				"ismodify_dhcp": false,
				"ismodify_ip": true,
				"ismodify_port": false,
				"password_empty": true,
				"version_flag": 0,
				"No": 29
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Static",
				"hide_network_mode": false,
				"ip_address": "172.16.10.152",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 443,
				"web_port": 443,
				"channel_num": 5,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 1,
				"fmulti_devid": "ZHBvclVNUjcweHFnZlBIK1l4cHRMN3p1NFJOUU5jc1ZVMEI4czNBWG9jRT0=",
				"device_type": "RS-SW04",
				"device_type_flag": "0",
				"mac_address": "00-23-63-94-6B-9E",
				"software_version": "V8.2.1-20211202",
				"ismodify_username": true,
				"ismodify_dhcp": false,
				"ismodify_ip": true,
				"ismodify_port": false,
				"password_empty": true,
				"version_flag": 0,
				"No": 30
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Static",
				"hide_network_mode": false,
				"ip_address": "172.16.10.168",
				"subnet_mask": "255.255.000.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 20,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 1,
				"fmulti_devid": "MVZKRGJNd1pibW1VSW9QeDJoUFNDK25VOXZKd2pCT3pZVENjcE5McFNoMD0=",
				"device_type": "D8216NR",
				"device_type_flag": "0",
				"mac_address": "88-B5-1F-13-B8-DA",
				"software_version": "V8.2.4-20190218",
				"ismodify_username": true,
				"ismodify_dhcp": false,
				"ismodify_ip": true,
				"ismodify_port": false,
				"password_empty": true,
				"version_flag": 0,
				"No": 31
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Static",
				"hide_network_mode": false,
				"ip_address": "172.16.10.169",
				"subnet_mask": "255.255.000.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 8,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 1,
				"fmulti_devid": "Y1JWSnV3eTNaUW5OVGdpS3FNVk12dFhCUlVLWXhlM1hpbGFOL1RkU0hHdz0=",
				"device_type": "N7708",
				"device_type_flag": "0",
				"mac_address": "88-2C-66-12-4F-15",
				"software_version": "V8.2.4-20230712",
				"ismodify_username": true,
				"ismodify_dhcp": false,
				"ismodify_ip": true,
				"ismodify_port": false,
				"password_empty": true,
				"version_flag": 0,
				"No": 32
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Static",
				"hide_network_mode": false,
				"ip_address": "172.16.10.170",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 8,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 1,
				"fmulti_devid": "UW1BMFNLdEtzdnhkNTczcmVRSHRDV1NSdkZQMHF3ajN4aTBtbW1jYUxNcz0=",
				"device_type": "",
				"device_type_flag": "0",
				"mac_address": "88-3C-3A-3B-81-AF",
				"software_version": "V8.2.3.2-20230628",
				"ismodify_username": true,
				"ismodify_dhcp": false,
				"ismodify_ip": true,
				"ismodify_port": false,
				"password_empty": true,
				"version_flag": 0,
				"No": 33
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Static",
				"hide_network_mode": false,
				"ip_address": "172.16.10.180",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 12,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 1,
				"fmulti_devid": "UXZxRXJKbjdlV0xZL2JTaE43YWU0TTQrZnprcFZnK3N6QlBTYnpma0JzYz0=",
				"device_type": "DVR7208",
				"device_type_flag": "0",
				"mac_address": "88-69-07-71-64-8F",
				"software_version": "V8.2.4-20230612",
				"ismodify_username": true,
				"ismodify_dhcp": false,
				"ismodify_ip": true,
				"ismodify_port": false,
				"password_empty": true,
				"version_flag": 0,
				"No": 34
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Static",
				"hide_network_mode": false,
				"ip_address": "172.16.10.189",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "Y2Y4YjlTUmdETGZmMWIyR2hVZk9vM0toa2kxU3BJeXYxMHF4VGJGVVlDQT0=",
				"device_type": "IP Camera",
				"device_type_flag": "0",
				"mac_address": "00-23-63-84-20-47",
				"software_version": "V31.35.8.2.4_230712",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 35
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Static",
				"hide_network_mode": false,
				"ip_address": "172.16.10.193",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 32,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 1,
				"fmulti_devid": "MUMzS0hYUWdOd3JnSVAxWXJHZ0RqMURFNytwNnVWalhJVTJGRnk0WHlkZz0=",
				"device_type": "N2332",
				"device_type_flag": "0",
				"mac_address": "00-23-63-9E-78-63",
				"software_version": "V8.2.4-20221125",
				"ismodify_username": true,
				"ismodify_dhcp": false,
				"ismodify_ip": true,
				"ismodify_port": false,
				"password_empty": true,
				"version_flag": 0,
				"No": 36
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Static",
				"hide_network_mode": false,
				"ip_address": "172.16.10.194",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 8,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 1,
				"fmulti_devid": "OW1JR3JnUkZVTG14QnExeTZuUmtheWlrVEZXTkdkMTVWeDZnWklvaWg3dz0=",
				"device_type": "N3708",
				"device_type_flag": "0",
				"mac_address": "88-30-18-9C-2D-B7",
				"software_version": "V1.0.0-20230401",
				"ismodify_username": true,
				"ismodify_dhcp": false,
				"ismodify_ip": true,
				"ismodify_port": false,
				"password_empty": true,
				"version_flag": 0,
				"No": 37
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Static",
				"hide_network_mode": false,
				"ip_address": "172.16.10.195",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 256,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 1,
				"fmulti_devid": "d2RxNjBuN081MmxvRjRGOGx3TjlOWGplR00wYVNaNmVOaG9LUkN2WUZHST0=",
				"device_type": "N10256N",
				"device_type_flag": "0",
				"mac_address": "00-23-63-9E-7E-E1",
				"software_version": "V8.2.4-20230712",
				"ismodify_username": true,
				"ismodify_dhcp": false,
				"ismodify_ip": true,
				"ismodify_port": false,
				"password_empty": true,
				"version_flag": 0,
				"No": 38
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Static",
				"hide_network_mode": false,
				"ip_address": "172.16.10.199",
				"subnet_mask": "255.255.000.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 12,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 1,
				"fmulti_devid": "c2x2ck8xbko5LzA5NThNVUpaUEtEbkkveWZybXpPOFJaRVUwOTdUUlM2MD0=",
				"device_type": "D8208NR",
				"device_type_flag": "0",
				"mac_address": "00-00-11-27-18-88",
				"software_version": "V8.2.4-20230712",
				"ismodify_username": true,
				"ismodify_dhcp": false,
				"ismodify_ip": true,
				"ismodify_port": false,
				"password_empty": true,
				"version_flag": 0,
				"No": 39
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Static",
				"hide_network_mode": false,
				"ip_address": "172.16.10.202",
				"subnet_mask": "255.255.000.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 12,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 1,
				"fmulti_devid": "RFFGM1dhQkF2cGVMM25ReVVCVzRIZnJ6MTMzbkxtWmJpMTFvdHYzSVVqWT0=",
				"device_type": "D8208NR",
				"device_type_flag": "0",
				"mac_address": "88-B2-64-64-CC-20",
				"software_version": "V8.2.4-20230707",
				"ismodify_username": true,
				"ismodify_dhcp": false,
				"ismodify_ip": true,
				"ismodify_port": false,
				"password_empty": true,
				"version_flag": 0,
				"No": 40
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Static",
				"hide_network_mode": false,
				"ip_address": "172.16.10.204",
				"subnet_mask": "255.255.000.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 4,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 1,
				"fmulti_devid": "TW9jeDBuOUsxL0I3SnN4cGxWelVjdVRjYTZiK3ZGSzBMWk93MEU0QnZWQT0=",
				"device_type": "GU-RN-AC8104P",
				"device_type_flag": "0",
				"mac_address": "88-38-68-20-33-85",
				"software_version": "V8.2.4-20230708",
				"ismodify_username": true,
				"ismodify_dhcp": false,
				"ismodify_ip": true,
				"ismodify_port": false,
				"password_empty": true,
				"version_flag": 0,
				"No": 41
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.10.209",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "192.168.001.001",
				"dns2": "008.008.008.008",
				"port": 9000,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 2,
				"fmulti_devid": "",
				"device_type": "IP CAMERA",
				"device_type_flag": "5932089557994242048",
				"mac_address": "00-55-7B-B5-7D-F7",
				"software_version": "V27.45.8.2.4_230712",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 1,
				"No": 42
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.10.209",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "YlRXVlhRWGYzcTE3cEV1U3JIcVNjVjIvUGRGSWhkcFFJbWtSVGlZa043Zz0=",
				"device_type": "IP CAMERA",
				"device_type_flag": "0",
				"mac_address": "00-23-63-91-EC-E1",
				"software_version": "V27.45.8.2.4_230712",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 43
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.10.234",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "192.168.001.001",
				"dns2": "008.008.008.008",
				"port": 9000,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 2,
				"fmulti_devid": "",
				"device_type": "IP CAMERA",
				"device_type_flag": "5932089557994242048",
				"mac_address": "00-FC-3E-EF-BD-3A",
				"software_version": "V42.54.8.2.3_230613",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 1,
				"No": 44
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.2",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "cE1JWDVwQ0cxd3RHaVI0WWFiRXc0MHFYRWFRZjY4d2FhaUtaN0lRTW12OD0=",
				"device_type": "IPCAMERA",
				"device_type_flag": "0",
				"mac_address": "00-23-63-6A-83-18",
				"software_version": "V30.85.8.2.4_230711",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 45
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.4",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "REVmUm83aVVrZDdNNlF3Q3gyVzdmbUlmZ0I1dzVIbys4ZDk0b3N5Qy9Tcz0=",
				"device_type": "dome",
				"device_type_flag": "0",
				"mac_address": "00-23-63-8E-44-01",
				"software_version": "V40.45.8.2.4_230711",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 46
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Static",
				"hide_network_mode": false,
				"ip_address": "172.16.11.6",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "d3FuSHRRZzlGa3JZMnBlVWNXM1ZWRWZKMVFxeUQ4RHhSb0FJb0hza2xTRT0=",
				"device_type": "dome",
				"device_type_flag": "0",
				"mac_address": "00-23-63-53-03-79",
				"software_version": "V37.45.8.2.3_230712",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 47
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.8",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "U2FURlIxY284eHlZK2g2Y215T2s4UFQ4c0w3ZGxNdGFjZ1VIRlpzVGVmUT0=",
				"device_type": "NT98529+SC4210",
				"device_type_flag": "0",
				"mac_address": "00-23-63-A2-95-E7",
				"software_version": "V43.45.8.2.4_230705",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 48
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Static",
				"hide_network_mode": false,
				"ip_address": "172.16.11.12",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 12,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 1,
				"fmulti_devid": "R0ZST0o2enJaUTF3TjdPRVZWaFRoTW9rSzV6aHNaS1JDWXFkQXNCUXVOdz0=",
				"device_type": "8M-HY08P",
				"device_type_flag": "0",
				"mac_address": "00-23-63-9E-3B-23",
				"software_version": "V8.2.3.2-20230117",
				"ismodify_username": true,
				"ismodify_dhcp": false,
				"ismodify_ip": true,
				"ismodify_port": false,
				"password_empty": true,
				"version_flag": 0,
				"No": 49
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.13",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "UjIra0VJd1pzemxFcXNhakZ3N0lIUlloSStmN1RqM1RXcWZHMmZyZ1N6QT0=",
				"device_type": "IP CAMERA",
				"device_type_flag": "0",
				"mac_address": "00-23-63-A0-B3-E1",
				"software_version": "V31.35.8.2.3.1_221130",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 50
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.14",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "cjduY0NpUmhWbVMySkJZSTkxbDF1TWh0ak9XV1VPNTFrRW5pUmc2L3N5UT0=",
				"device_type": "IP CAMERA",
				"device_type_flag": "0",
				"mac_address": "BC-51-FE-30-BC-C2",
				"software_version": "V21.45.8.2.4_230613",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 51
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.17",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "bWhVcUMzWjFwb3hNbUEwSVZLZFVoTVFOQWJ1bTB2b2xyYUo1T3ZWcWU5WT0=",
				"device_type": "IP CAMERA",
				"device_type_flag": "0",
				"mac_address": "00-23-63-8B-A4-F4",
				"software_version": "V31.35.8.2.3.1_221130",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 52
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.19",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": "VIPAKS",
				"activesign": 1,
				"fmulti_devid": "dDgzTGJNVElpSE9LTXBJNGtkYk54S250SGtPdGZvRWR3bUhkdmVqSkVjZz0=",
				"device_type": "IP Camera",
				"device_type_flag": "0",
				"mac_address": "00-23-63-84-B0-54",
				"software_version": "V31.35.8.2.3.5_230711",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 53
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.21",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "172.018.001.222",
				"dns2": "000.000.000.000",
				"port": 9988,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 2,
				"fmulti_devid": "",
				"device_type": "IP CAMERA",
				"device_type_flag": "5932089575191609344",
				"mac_address": "00-23-63-6B-D5-79",
				"software_version": "V4.41.5.0_181024",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 1,
				"No": 54
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.28",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "MEZHR25OOWg5N2huWXZZL3lpMG1WUlN2ZW9vdHRVT1lsenlrMXJ1TTM2dz0=",
				"device_type": "IP CAMERA",
				"device_type_flag": "0",
				"mac_address": "00-23-63-A0-B3-C0",
				"software_version": "V31.35.8.2.3.1_221130",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 55
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.29",
				"subnet_mask": "255.255.255.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 36,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 1,
				"fmulti_devid": "K2FIK3hkZlNDWFdROGhkanhNa0Y1ZHUzVzE2cGJKaktzZ1FMcUZkSTkyOD0=",
				"device_type": "D8132NR",
				"device_type_flag": "0",
				"mac_address": "00-23-63-A2-93-0D",
				"software_version": "V8.2.3-20230710",
				"ismodify_username": true,
				"ismodify_dhcp": false,
				"ismodify_ip": true,
				"ismodify_port": false,
				"password_empty": true,
				"version_flag": 0,
				"No": 56
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.30",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "001.001.001.001",
				"dns2": "172.018.001.222",
				"port": 9000,
				"web_port": 85,
				"channel_num": 6,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 2,
				"fmulti_devid": "",
				"device_type": "DVR4-5680",
				"device_type_flag": "5932091774199398656",
				"mac_address": "BC-51-FE-AA-29-0F",
				"software_version": "V8.1.0-20221104",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 1,
				"No": 57
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.33",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "172.018.001.222",
				"dns2": "008.008.008.008",
				"port": 9999,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 2,
				"fmulti_devid": "",
				"device_type": "NHD-887F",
				"device_type_flag": "5932089562290520064",
				"mac_address": "BC-51-FE-25-72-DF",
				"software_version": "V14.45.5.0_201021",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 1,
				"No": 58
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.41",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "Rjk3RWV6S1RYNE5JOVVyWjNoYThra0xSZ2ZSOFpIV085NFYxQW9PSFRwVT0=",
				"device_type": "RS-CH240N4TUA-HALTF-W20PW",
				"device_type_flag": "0",
				"mac_address": "00-23-63-A2-96-97",
				"software_version": "V30.85.8.2.3.2_230712",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 59
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.50",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "dXJRWjdLL002ZFVKQnFubzM4ZCs3K3R5Q1A0Y1JBRlVDV3Npdi96K0E5MD0=",
				"device_type": "RS-CH896N4P-HLDF-LFW2812PW",
				"device_type_flag": "0",
				"mac_address": "00-23-63-8F-47-02",
				"software_version": "V43.45.8.2.4_230712",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 60
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.53",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "172.018.001.222",
				"dns2": "000.000.000.000",
				"port": 9000,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 2,
				"fmulti_devid": "",
				"device_type": "IP CAMERA",
				"device_type_flag": "5932089562305986560",
				"mac_address": "00-55-44-33-22-11",
				"software_version": "V2.1.3.5_170724",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 1,
				"No": 61
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.54",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "Z3p1K3JSQVMraGtnMkw5WU1rS0hxM2hnaTIwTU96QUUydVUvY2wvdzhUWT0=",
				"device_type": "IP CAMERA",
				"device_type_flag": "0",
				"mac_address": "00-23-63-9D-C6-BF",
				"software_version": "V1.0.2_230711",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 62
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.57",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "ZEJEbUJhOVAvRUw3ZjU1YVVWWkhtL2VJaTJCVnlIM2ZZeVo4b1NybURXOD0=",
				"device_type": "IP CAMERA",
				"device_type_flag": "0",
				"mac_address": "00-23-63-A0-B3-D1",
				"software_version": "V31.35.8.2.4_230710",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 63
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.60",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "172.018.001.222",
				"dns2": "000.000.000.000",
				"port": 9099,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 2,
				"fmulti_devid": "",
				"device_type": "NVR",
				"device_type_flag": "5932089575191609344",
				"mac_address": "00-1F-54-00-D8-82",
				"software_version": "V4.41.5.0_181217",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 1,
				"No": 64
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.61",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "172.018.001.222",
				"dns2": "008.008.008.008",
				"port": 9000,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 2,
				"fmulti_devid": "",
				"device_type": "IP CAMERA",
				"device_type_flag": "5932089562290520064",
				"mac_address": "00-23-63-7B-06-07",
				"software_version": "V6.21.5.2_210309",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 1,
				"No": 65
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.62",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "192.168.001.001",
				"dns2": "008.008.008.008",
				"port": 9000,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 2,
				"fmulti_devid": "",
				"device_type": "RS-CH852N6CA33-AP",
				"device_type_flag": "5932089557994242048",
				"mac_address": "00-23-63-A2-94-81",
				"software_version": "V40.45.7.1_220822",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 1,
				"No": 66
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.63",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "SzhuQStVb3lQTFlLdEpWc3NRZVh5akNWMkVpYUZwTWRRa1c1WDFxa09ucz0=",
				"device_type": "5Gapp",
				"device_type_flag": "0",
				"mac_address": "00-23-63-A2-96-57",
				"software_version": "SCB800_KT_V1.0.0_230708",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 67
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.65",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "VFdna0lVVGp6MkFPUE1TV3A1eTRScm5DS1paMzA1UWFNQkg3VWIwcHUvdz0=",
				"device_type": "RS-CH896N4P-HLDF-LFW2812PW",
				"device_type_flag": "0",
				"mac_address": "00-23-63-A2-95-D2",
				"software_version": "V43.45.8.2.4_230711",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 68
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.66",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "U2V0a0xsM0J3eGhPdS81VlZKU3FYY2krOTkwb2xqaTdzc0FaK3QrSTR6RT0=",
				"device_type": "IP CAMERA",
				"device_type_flag": "0",
				"mac_address": "00-23-63-A0-B3-C5",
				"software_version": "V31.35.8.2.3.1_221130",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 69
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.68",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "U1RodldZdFNjbUFrQ2xkc0pTQ3RndGUyaUJ5UXBmenB0TGNRWG9jRUhFQT0=",
				"device_type": "IP CAMERA",
				"device_type_flag": "0",
				"mac_address": "00-23-63-9E-8F-B0",
				"software_version": "V31.35.8.2.3.1_221130",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 70
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.69",
				"subnet_mask": "255.255.252.000",
				"gateway": "000.000.000.000",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 32,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 1,
				"fmulti_devid": "dkJOUUY2MFlDR3EwdHZ5U2FxSVhhNzVqVFNIZUg1d2paTjFhbysvSi85OD0=",
				"device_type": "N2332",
				"device_type_flag": "0",
				"mac_address": "00-23-63-9E-7C-20",
				"software_version": "V8.2.4-20221125",
				"ismodify_username": true,
				"ismodify_dhcp": false,
				"ismodify_ip": true,
				"ismodify_port": false,
				"password_empty": true,
				"version_flag": 0,
				"No": 71
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.81",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "SkNjWEl0VTNkREptRkNCWmI3V2ViL3NXWmo3WjBwWDVPQjd6VHRrVGtEaz0=",
				"device_type": "IP CAMERA",
				"device_type_flag": "0",
				"mac_address": "DC-90-20-00-AF-B1",
				"software_version": "V21.45.8.2.4_230711",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 72
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.83",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "S2lSNXlNV3JVM0xvWm9WZFg3TUJXRktiMXNvd2szNTJEa1IvMzdnTnRaND0=",
				"device_type": "IP CAMERA",
				"device_type_flag": "0",
				"mac_address": "00-23-63-3F-1F-35",
				"software_version": "V21.45.8.2.4_230711",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 73
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.85",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "ZktKbHFxMFR5Q29TcTZTeFJ2NkE2czVGcTU1UDhhOVJHL1JhN0lZbk8vZz0=",
				"device_type": "IP CAMERA",
				"device_type_flag": "0",
				"mac_address": "00-23-63-A0-61-D9",
				"software_version": "V31.35.8.2.4_230613",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 74
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.86",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "KzRpN0xpNDBBZEtSditDZG1RZjlXaTZKT3JPejJjanFKbmtqdjZ1ZVhpND0=",
				"device_type": "IP CAMERA",
				"device_type_flag": "0",
				"mac_address": "00-23-63-69-C6-4D",
				"software_version": "V34.45.8.2.4_230712",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 75
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.88",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "d1lUS1RSOHZkRTRHR3JMcGxjdDFqMU1kY3JVNyt4blNuMGw2UVZhc0JHVT0=",
				"device_type": "IP CAMERA",
				"device_type_flag": "0",
				"mac_address": "00-23-63-92-14-7F",
				"software_version": "V31.35.8.2.4_230613",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 76
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.89",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "Uk5nQmpRR2N1TEZSelpQMG05dzZyRmUvVjVTRUNtWW9WNS9GMTZkUDBCZz0=",
				"device_type": "IP CAMERA",
				"device_type_flag": "0",
				"mac_address": "00-23-63-9E-8F-C9",
				"software_version": "V31.35.8.2.3.1_221130",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 77
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.91",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "bXhyVkMralFodkwwdnJXMndYSDlOSXI5QmtBc3lPZWgvOVlwamV6bmhQVT0=",
				"device_type": "IP CAMERA",
				"device_type_flag": "0",
				"mac_address": "00-23-63-94-7D-A9",
				"software_version": "V27.45.8.2.4_230613",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 78
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.92",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "V1hPaWRiWmNpL0t6YkxLVDRHTENTbW5XWjM4eGdEWElJY0FlSWxOR2k1ST0=",
				"device_type": "RS-CH298N4CU-HALTF-LF28PW",
				"device_type_flag": "0",
				"mac_address": "00-23-63-9E-7B-CD",
				"software_version": "V1.0.2_230712",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 79
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.97",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "YUpNblovSXZVK0R3VjJxdTlpWS9WNmRmQkQ1ZnJwY28xWmZ2ZzBWKzJpRT0=",
				"device_type": "RS-CH256M4TN-HALTF-LFW36PW",
				"device_type_flag": "0",
				"mac_address": "00-23-63-A1-3C-94",
				"software_version": "V31.35.8.2.2_221102",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 80
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.101",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "RGN3c2FpQlZiUGRjaGRiMnMySDM0MysxdExXczlBSUZzOWU1RXQ1YU9tOD0=",
				"device_type": "IP CAMERA",
				"device_type_flag": "0",
				"mac_address": "00-23-63-A0-B3-C6",
				"software_version": "V31.35.8.2.3.1_221130",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 81
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.102",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 4,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 1,
				"fmulti_devid": "Um9nTk1OcmNDRjdiMjBuQWFoQmtQWlZjdE1tSG83TmxzRUlnZWxmSW1uND0=",
				"device_type": "",
				"device_type_flag": "0",
				"mac_address": "00-23-63-A2-8F-4B",
				"software_version": "V8.2.3.1-20221123",
				"ismodify_username": true,
				"ismodify_dhcp": false,
				"ismodify_ip": true,
				"ismodify_port": false,
				"password_empty": true,
				"version_flag": 0,
				"No": 82
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.104",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "a1hSVy9DWHNTMjhYUkVYZnc0YU40REJXOVdmRlFLbWhkbGZyR1piRmxzUT0=",
				"device_type": "ada",
				"device_type_flag": "0",
				"mac_address": "00-23-63-AA-CF-4C",
				"software_version": "V31.35.8.2.4_230710",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 83
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.108",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "c2F3US95VVRRT1RCOWhpbllJUTFtdGlBVkV3MDY1T3NUUHlNMEE1cHJsdz0=",
				"device_type": "RS-CH294A2NK-HALTF-LFW36PW",
				"device_type_flag": "0",
				"mac_address": "00-23-63-69-0A-92",
				"software_version": "V42.54.8.2.3_230619",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 84
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.111",
				"subnet_mask": "255.255.255.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 16,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 1,
				"fmulti_devid": "ZS9oZzVTanNyVFdDODE0ZENXVmFPUXhFakt2QUp6VHM3eWpUbDhHaVpoTT0=",
				"device_type": "N7516",
				"device_type_flag": "0",
				"mac_address": "00-23-63-A2-95-B7",
				"software_version": "V8.2.3.2-20230324",
				"ismodify_username": true,
				"ismodify_dhcp": false,
				"ismodify_ip": true,
				"ismodify_port": false,
				"password_empty": true,
				"version_flag": 0,
				"No": 85
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.112",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "KzFZWENuaXJLSlNCUTFhTVlVeTd5SnZydnExR1dlU0gvNUcySVJobmZpOD0=",
				"device_type": "IP CAMERA",
				"device_type_flag": "0",
				"mac_address": "00-23-63-7F-DA-0F",
				"software_version": "V1.0.2_230530",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 86
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.114",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "Y3R6RzBVK1cyNHdidHZ0anpTMkpsNjFZUmlOWjNEYStzUVVtajd0MkFpaz0=",
				"device_type": "IP CAMERA",
				"device_type_flag": "0",
				"mac_address": "00-23-63-A1-55-59",
				"software_version": "V31.35.8.2.3.1_221130",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 87
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.121",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 16,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 1,
				"fmulti_devid": "elFKT3FuNmRVdlovS0pleUhDUDlHblZEUjJ3OGt4VTNSQ09VeXpGUldyQT0=",
				"device_type": "N7816",
				"device_type_flag": "0",
				"mac_address": "88-96-6E-44-2A-61",
				"software_version": "V8.2.4-20230701",
				"ismodify_username": true,
				"ismodify_dhcp": false,
				"ismodify_ip": true,
				"ismodify_port": false,
				"password_empty": true,
				"version_flag": 0,
				"No": 88
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.122",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "a1d2UmFCZ05rZmdQOE02TVFzOVFTMTBvOHgzRWl5WEJPSW5UQ3dCM1NtYz0=",
				"device_type": "IP CAMERA",
				"device_type_flag": "0",
				"mac_address": "00-23-63-9A-34-26",
				"software_version": "V40.45.8.2.4_230705",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 89
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.127",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "192.168.001.001",
				"dns2": "008.008.008.008",
				"port": 9000,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 2,
				"fmulti_devid": "",
				"device_type": "RS-CH240M4ND-DF-WA2812PW",
				"device_type_flag": "5932089557994242048",
				"mac_address": "00-23-63-A2-96-48",
				"software_version": "V21.45.7.1_230701",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 1,
				"No": 90
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.128",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "U202VitOcFRDbGk5Z1h2QTNhTzdmUnAzYVZ5ckFYdEhZbFdOMm5HOVRHQT0=",
				"device_type": "IP CAMERA",
				"device_type_flag": "0",
				"mac_address": "00-23-63-9C-33-B4",
				"software_version": "V1.0.1.1.B0001701011303_230104",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 91
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.129",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "R3BZTkZ1R3VUOGZueS9Xa2pLTThUcVFHb1BSUFlNM1IvR0RRcHBhSHowWT0=",
				"device_type": "IP CAMERA",
				"device_type_flag": "0",
				"mac_address": "00-23-63-A1-09-2F",
				"software_version": "V34.45.8.2.3.1_230104",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 92
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.130",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "SHBENEpyVGZwMXh3Vk5QTlFJekNkT29nWExIK09sTHdDaDlSQjhvWWNpST0=",
				"device_type": "IP CAMERA",
				"device_type_flag": "0",
				"mac_address": "00-23-63-A0-B3-DE",
				"software_version": "V31.35.8.2.3.1_221130",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 93
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.131",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "V2NTN0hBU2dpcGQ3NUF1RkVCVEt5ZndqSnNuK3FhRXBnTmJacFVnSmg0dz0=",
				"device_type": "IP CAMERA",
				"device_type_flag": "0",
				"mac_address": "00-23-63-A0-61-B7",
				"software_version": "V31.35.8.2.3.1_221130",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 94
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.132",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "MGM4bE1vdTZqdWlmOVMyeE5MYW4wUUpHV2JtcUFrd0hsZWNITU53dDlKdz0=",
				"device_type": "IP CAMERA",
				"device_type_flag": "0",
				"mac_address": "00-23-63-A0-61-A3",
				"software_version": "V31.35.8.2.3.1_221130",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 95
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.134",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "MWFBWTgxcHdaRXoxNlY1bzhLZGU1dDZkM3hNSXAxK1B6N2Y0N3VvbktJbz0=",
				"device_type": "IP CAMERA",
				"device_type_flag": "0",
				"mac_address": "00-23-63-2D-15-68",
				"software_version": "V31.35.8.2.4_230711",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 96
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.136",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "UHRCMkM1bytTUEFXSUlYYndBWmVEaWlyZlJrU1RndE94QW5oOUd1Q05KMD0=",
				"device_type": "RS-CH348N5KMB-HALTF-LF28PW",
				"device_type_flag": "0",
				"mac_address": "00-23-63-A2-96-81",
				"software_version": "V1.0.1.2.B0007a01020104_230711",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 97
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.137",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "SW9VbTN3ajNFTHNITkJFS2FoSFlPT0s0enB0dFZPU2kxMkFkN3E4bW5xOD0=",
				"device_type": "IP CAMERA",
				"device_type_flag": "0",
				"mac_address": "00-23-63-91-D2-A6",
				"software_version": "V31.35.8.2.3.4_230712",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 98
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.139",
				"subnet_mask": "255.255.255.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 36,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 1,
				"fmulti_devid": "Z3JaWVlpUXprRFpnYm42a3ZqcTFwMGFxNGwzcHlUODQxMTcxSVdSc1drYz0=",
				"device_type": "D8132QR",
				"device_type_flag": "0",
				"mac_address": "00-23-63-9E-7C-B6",
				"software_version": "V8.2.3-20230706",
				"ismodify_username": true,
				"ismodify_dhcp": false,
				"ismodify_ip": true,
				"ismodify_port": false,
				"password_empty": true,
				"version_flag": 0,
				"No": 99
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.143",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "c09TYWo2S1NUZWV0WndYZ3RVWWpmUklPdFB3S3JTcHJYZVluWFpkSnBCdz0=",
				"device_type": "IP CAMERA",
				"device_type_flag": "0",
				"mac_address": "00-23-63-A1-55-4E",
				"software_version": "V31.35.8.2.3.1_221130",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 100
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.149",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "a091MERuR0tQZG1jZGNGYW5XeUE1VHF6b205aUVPMExnTUNqMTdCSjkrbz0=",
				"device_type": "IP CAMERA",
				"device_type_flag": "0",
				"mac_address": "00-23-63-A1-55-49",
				"software_version": "V31.35.8.2.3.1_221130",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 101
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.151",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "VFBRd0JmVXRPYkVIREF5ZmxUeUdmKzhMOEViK0QxdXlpdjJSRjJQWVZjRT0=",
				"device_type": "IP CAMERA",
				"device_type_flag": "0",
				"mac_address": "00-23-63-A1-55-53",
				"software_version": "V31.35.8.2.3.1_221130",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 102
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Static",
				"hide_network_mode": true,
				"ip_address": "172.16.11.151",
				"subnet_mask": "000.000.000.000",
				"gateway": "000.000.000.000",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"channel_num": 1,
				"protocol": "Onvif",
				"manufacturer": "IPC",
				"activesign": 2,
				"fmulti_devid": "",
				"device_type": "",
				"device_type_flag": "0",
				"mac_address": "00-23-63-78-C3-F6",
				"software_version": "",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 103
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.152",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "d2c0TTRjZXZmN3gzeGhMVlJsZzQxc2xpZ2NrMFNZRnoxQkNEL0tueEhTbz0=",
				"device_type": "RS-CH848N3E-TA-2812PW",
				"device_type_flag": "0",
				"mac_address": "00-23-63-09-DB-C6",
				"software_version": "V40.45.8.2.3_221012",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 104
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.160",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "SWhvbFRSUnhHL1N4YjhxTThaSXhxVENsaDJHTFFKa0ZwdHFiOFFNS09xND0=",
				"device_type": "IP CAMERA",
				"device_type_flag": "0",
				"mac_address": "00-23-63-A1-3C-A3",
				"software_version": "V31.35.8.2.3.1_221130",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 105
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.163",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "172.018.001.222",
				"dns2": "008.008.008.008",
				"port": 9000,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 2,
				"fmulti_devid": "",
				"device_type": "Dedicated to chant testing IPC",
				"device_type_flag": "5932089562290520064",
				"mac_address": "00-23-63-7B-05-B3",
				"software_version": "V6.21.5.2_200326",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 1,
				"No": 106
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.164",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "NEYreU1Mb1M1TlNoaE5qMkpaK2ZZQzErV1dXK1BGV0RiUzNqMGl4aS9Yaz0=",
				"device_type": "RS-CH294A2NK-HALTF-LFW36PW",
				"device_type_flag": "0",
				"mac_address": "00-23-63-9E-7E-EB",
				"software_version": "V42.54.8.2.3_230619",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 107
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.169",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "ZDQ4OXMxaTBoQ3oxYnpzbmlhNDJKaEZzTFBHZ0E3YVptQTZLQmRCcCtjVT0=",
				"device_type": "NHD-900PT",
				"device_type_flag": "0",
				"mac_address": "00-23-63-2B-19-AA",
				"software_version": "V40.45.8.2.4_230628",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 108
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.174",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "MVdPQVovd2ExZHo5NzdocnJXclhZTm0wd2VIMWZRNm0xSG1ZZTYrRzhSRT0=",
				"device_type": "dome",
				"device_type_flag": "0",
				"mac_address": "00-23-63-78-DC-E7",
				"software_version": "V40.45.8.2.4_230706",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 109
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.179",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "172.018.001.222",
				"dns2": "000.000.000.000",
				"port": 9988,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 2,
				"fmulti_devid": "",
				"device_type": "IPr-Fish eye 8Mp",
				"device_type_flag": "5932089575174832128",
				"mac_address": "00-23-63-8F-47-D1",
				"software_version": "V4.1.4.8_180315",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 1,
				"No": 110
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.184",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "dnU2VW01M1RyRm9MT0JZSWtyeGNvTzdaZEd3ZWhxQ3FVM2lsREhmdVdLQT0=",
				"device_type": "RS-CH348N3MCA-DF-A2812PW",
				"device_type_flag": "0",
				"mac_address": "00-23-63-9E-7E-4E",
				"software_version": "V27.45.8.2.4_230711",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 111
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.185",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "VXVZMmxTV2xtZVk5WHEyNkI0QmlZY3FYcmcvT28zbTRQaWlyRzhWNGVpRT0=",
				"device_type": "IP CAMERA",
				"device_type_flag": "0",
				"mac_address": "00-23-63-A0-72-EC",
				"software_version": "V42.54.8.2.3_230619",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 112
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.190",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "eXhxYVBuc0dtUzRSMk03MDFDcnFubkhhTEZSUEovTGlyY1g2Tlh5Zi9jND0=",
				"device_type": "529+4210 Ballhead Camera",
				"device_type_flag": "0",
				"mac_address": "00-23-63-A2-92-D7",
				"software_version": "V43.45.8.2.4_230707",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 113
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.203",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "dC95OXo0TDJoczNUazk0Z201aFNiN2VWODY2TkptQXRobXcrWGZiNVVoQT0=",
				"device_type": "IP CAMERA",
				"device_type_flag": "0",
				"mac_address": "00-23-63-A1-3C-B0",
				"software_version": "V31.35.8.2.3.1_221130",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 114
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.204",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "YTRKZ0JGMzlEM0M5TmEwdzNGSXhLamsxV1ZROERxUlR4ZEtoSDUwbnBQTT0=",
				"device_type": "RS-CH281M8ND-DF-WA2812PW",
				"device_type_flag": "0",
				"mac_address": "00-23-63-B8-8A-A9",
				"software_version": "V31.35.8.2.3.5_230712",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 115
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.205",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "WUl1cHdwUHdHTkxEUlhCZHRXS01aWkVDdi80d3dtSUMwZHFQNmlkNG5TRT0=",
				"device_type": "IP CAMERA",
				"device_type_flag": "0",
				"mac_address": "00-23-63-AC-96-8B",
				"software_version": "V21.45.8.2.3.4_230712",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 116
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.207",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 6,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 1,
				"fmulti_devid": "ZU03VWpJc2JhK1Y4N0dBTGhJQk9UVVNISmlYQ284QTlJNVRzK0Q2QVc4cz0=",
				"device_type": "HY-DVR",
				"device_type_flag": "0",
				"mac_address": "00-23-00-00-00-00",
				"software_version": "V8.2.4-20230708",
				"ismodify_username": true,
				"ismodify_dhcp": false,
				"ismodify_ip": true,
				"ismodify_port": false,
				"password_empty": true,
				"version_flag": 0,
				"No": 117
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.209",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "192.168.001.001",
				"dns2": "008.008.008.008",
				"port": 9000,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 2,
				"fmulti_devid": "",
				"device_type": "IP CAMERA",
				"device_type_flag": "5932089570895921152",
				"mac_address": "00-23-63-6D-0A-C7",
				"software_version": "V2.31.5.2_200714",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 1,
				"No": 118
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.210",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 4,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 1,
				"fmulti_devid": "TC94b2M1Tkw3UE4rUW1PNjl2T3BPOFZpa05ZVjVHT3FaTm00cVNZYm1Paz0=",
				"device_type": "N8104",
				"device_type_flag": "0",
				"mac_address": "00-23-63-9C-C7-D2",
				"software_version": "V8.2.3.2-20230114",
				"ismodify_username": true,
				"ismodify_dhcp": false,
				"ismodify_ip": true,
				"ismodify_port": false,
				"password_empty": true,
				"version_flag": 0,
				"No": 119
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.212",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "cTN5NUhLN3lQZUJVcDk5YnRJU1h5blkxeFg5cCthWGk3NTNWeWFHeGtXTT0=",
				"device_type": "IP CAMERA",
				"device_type_flag": "0",
				"mac_address": "00-23-63-0A-9D-D5",
				"software_version": "V1.0.2_230712",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 120
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.220",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 1,
				"fmulti_devid": "bXlHUi83QmRHV3N5MTVnS0dHb1ZIeW8xcyt0bS9UMkxEdFdjUHdYK0dwWT0=",
				"device_type": "RS-CH948M8PVA-LDF-LFWA2812PW",
				"device_type_flag": "0",
				"mac_address": "00:00:00:00:00:00",
				"software_version": "V44.45.41.54_20230703",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": false,
				"password_empty": true,
				"version_flag": 0,
				"No": 121
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.222",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "d1hKSnNBK1FoOVJ4YVFkdDVDTHhDZzhRWDdNUkppVndDblNsYVBlQmRhRT0=",
				"device_type": "RS-CH252M6CK-TF-LW36PW-M",
				"device_type_flag": "0",
				"mac_address": "00-23-63-9E-7E-76",
				"software_version": "V21.45.8.2.4_230710",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 122
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.11.228",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"web_port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "a2lpVlpvVFRiT3Vua21FbVdOc0F5ZmczMTVYTzlsY29HVk1nRkNKUllJbz0=",
				"device_type": "RS-CH298N4TH-HAL-LF36PW",
				"device_type_flag": "0",
				"mac_address": "00-23-63-24-78-66",
				"software_version": "V1.0.2_230711",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 123
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Static",
				"hide_network_mode": false,
				"ip_address": "172.20.41.224",
				"subnet_mask": "255.255.255.000",
				"gateway": "172.020.041.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 443,
				"web_port": 443,
				"channel_num": 5,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 1,
				"fmulti_devid": "Wk9KdnhaL0lPUUtlaENLK1lBa2p3dzhuRlk0UjJGZWFaeXUrQlQrTVYvOD0=",
				"device_type": "RS-SW04",
				"device_type_flag": "0",
				"mac_address": "00-23-63-93-61-D7",
				"software_version": "V8.2.1-20211202",
				"ismodify_username": true,
				"ismodify_dhcp": false,
				"ismodify_ip": true,
				"ismodify_port": false,
				"password_empty": true,
				"version_flag": 0,
				"No": 124
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Static",
				"hide_network_mode": false,
				"ip_address": "172.20.64.152",
				"subnet_mask": "255.255.255.000",
				"gateway": "172.020.064.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 443,
				"web_port": 443,
				"channel_num": 9,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 1,
				"fmulti_devid": "YzR2U252cGxHeGVaSkxPYjhMSGpHWHQ0U2F2VmdYcWVVT0ovb1RTb0F5VT0=",
				"device_type": "RS-SW08",
				"device_type_flag": "0",
				"mac_address": "00-23-63-9C-D5-91",
				"software_version": "V8.2.1-20211216",
				"ismodify_username": true,
				"ismodify_dhcp": false,
				"ismodify_ip": true,
				"ismodify_port": false,
				"password_empty": true,
				"version_flag": 0,
				"No": 125
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Static",
				"hide_network_mode": false,
				"ip_address": "192.168.1.100",
				"subnet_mask": "255.255.255.000",
				"gateway": "192.168.001.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 443,
				"web_port": 443,
				"channel_num": 5,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 1,
				"fmulti_devid": "bkxlUWZ1OExrOGdYSkJxR3ZBSlE0M0QzZWQ4Q01KbVpHZzdPdHZkYk1JUT0=",
				"device_type": "RS-SW04",
				"device_type_flag": "0",
				"mac_address": "00-23-63-94-6B-9C",
				"software_version": "V8.2.1-20211202",
				"ismodify_username": true,
				"ismodify_dhcp": false,
				"ismodify_ip": true,
				"ismodify_port": false,
				"password_empty": true,
				"version_flag": 0,
				"No": 126
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Static",
				"hide_network_mode": false,
				"ip_address": "192.168.1.100",
				"subnet_mask": "255.255.255.000",
				"gateway": "192.168.001.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 443,
				"web_port": 443,
				"channel_num": 5,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 1,
				"fmulti_devid": "SStjazNYWUtHK01EcGtRUkdHMnVOUHlmYnZWQ043UWhPczJtTkpYMFp3Yz0=",
				"device_type": "RS-SW04",
				"device_type_flag": "0",
				"mac_address": "00-23-63-93-61-B7",
				"software_version": "V8.2.1-20211216",
				"ismodify_username": true,
				"ismodify_dhcp": false,
				"ismodify_ip": true,
				"ismodify_port": false,
				"password_empty": true,
				"version_flag": 0,
				"No": 127
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Static",
				"hide_network_mode": false,
				"ip_address": "192.168.1.100",
				"subnet_mask": "255.255.255.000",
				"gateway": "192.168.001.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 443,
				"web_port": 443,
				"channel_num": 5,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 0,
				"fmulti_devid": "RkxKQURqdXJPOHdrRVYwRlVrQ014QlNmZTdPbTFrdUFGTVVxMmRrZ2p3ST0=",
				"device_type": "RS-SW04",
				"device_type_flag": "0",
				"mac_address": "00-23-63-94-6B-B6",
				"software_version": "V8.2.1-20211202",
				"username": "admin",
				"ismodify_username": false,
				"ismodify_dhcp": false,
				"ismodify_ip": false,
				"ismodify_port": false,
				"password_empty": true,
				"version_flag": 0,
				"No": 128
			},
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Static",
				"hide_network_mode": false,
				"ip_address": "192.168.1.102",
				"subnet_mask": "255.255.255.000",
				"gateway": "192.168.001.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 443,
				"web_port": 443,
				"channel_num": 9,
				"protocol": "Private",
				"manufacturer": "",
				"activesign": 1,
				"fmulti_devid": "WGJZZjQ2anRlb3U2aDBVano2VGtjRU1iSVhubzc4R1RudC92d1Bjd3Iwdz0=",
				"device_type": "RS-SW08",
				"device_type_flag": "0",
				"mac_address": "00-23-63-93-62-06",
				"software_version": "V8.2.1-20211216",
				"ismodify_username": true,
				"ismodify_dhcp": false,
				"ismodify_ip": true,
				"ismodify_port": false,
				"password_empty": true,
				"version_flag": 0,
				"No": 129
			}
		],
		"start_ip_format": "X.X.X.2"
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to broadcast set IPC information.

Request Message

See Channel > Channel Configuration > Broadcast IPC > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/ChannelConfig/RemoteDev/Set HTTP/1.1
{
	"version": "1.0",
	"data": {
		"device_info": [
			{
				"tips_ensure_ip_not_use": true,
				"network_mode": "Dhcp",
				"hide_network_mode": false,
				"ip_address": "172.16.8.5",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"dns1": "000.000.000.000",
				"dns2": "000.000.000.000",
				"port": 80,
				"channel_num": 1,
				"protocol": "Private",
				"manufacturer": " ",
				"activesign": 1,
				"fmulti_devid": "WjNFZWZRWnMwTW1EM1E1VU1ZV1NrYjFGdWJTYU1sL29Lc2VXbjgyMjNaYz0=",
				"device_type": "NC591XB",
				"device_type_flag": "0",
				"mac_address": "00-23-63-A2-91-B0",
				"software_version": "V40.45.8.2.4_230705",
				"ismodify_username": true,
				"ismodify_dhcp": true,
				"ismodify_ip": true,
				"ismodify_port": true,
				"password_empty": true,
				"version_flag": 0,
				"No": 1,
				"web_port": 80,
				"old_ip_address": "172.16.8.5",
				"username": ""
			}
		]
	}
}

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Channel Configuration

Function

This API is used to get or set Channel Configuration page parameters.

URI

POST /API/ChannelConfig/ChannelConfig/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range, Get, Set.

Range

Function

This API is used to get parameter range for Channel > Channel Configuration page.

Note:

The Range provides reference information for client UI input limits and API request limits. When sending Get and Set requests, the parameters must be strictly limited according to the Range, otherwise the request may be rejected by the device.

Request Message

None.

Sample:

POST /API/ChannelConfig/ChannelConfig/Range HTTP/1.1
To be added

Response Message

Parameter Description

Table 1

ParameterRangeTypeDescription
channel“CH1”…”CH1x”string arrayEach array bit represents a channel with a string.

Table 2

ParameterRangeTypeDescription
channel_maxint Json ObjectMaximum number of channels.
limit_wireless_maxintMaximum number of wireless channels.
channel_infoJson ObjectJSON shows as follow Table 3

Table 3

ParameterRangeTypeDescription
CH1Json ObjectJSON shows as follow Table 4
Json Object
CHxJson Object

Table 4

ParameterRangeTypeDescription
camera_type"Digital"
"Wireless"
stringMode of the current channel.

Tips:

The response message of the Range request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
To be added.

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get Channel > Channel Configuration page parameters.

Request Message

None.

Sample:

POST /API/ChannelConfig/ChannelConfig/Get HTTP/1.1
To be added

Response Message

See Channel> Channel Configuration > Parameter Description > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
To be added

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set Channel > Channel Configuration page parameters.

Request Message

See Channel > Channel Configuration > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/ChannelConfig/ChannelConfig/Set HTTP/1.1
To be added

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
To be added

Error Code

See Response Messages Body and Common error_code for more information.

IPChannel

Function

This API is used to get or set IPChannel page parameters.

URI

POST /API/ChannelConfig/IPChannel/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range, Get, Set.

Automatically add IPC

The digital channel configuration also includes the function to automatically add IPC, as described in AutoAddIPC.

POST /API/ChannelConfig/AutoAddIPC/Set

Range

Function

This API is used to get parameter range for Channel > IPChannel page.

Note:

The Range provides reference information for client UI input limits and API request limits. When sending Get and Set requests, the parameters must be strictly limited according to the Range, otherwise the request may be rejected by the device.

Request Message

None.

Sample:

POST /API/ChannelConfig/IPChannel/Range HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 1

ParameterRangeTypeDescription
channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…” WIFI_CH1x”
The number of channels depends on the capabilities of the device.
string arrayEach array bit represents a channel with a string.

Table 2

ParameterRangeTypeDescription
device_infoJSON ObjectJSON show as follow Table 5

Table 3

ParameterRangeTypeDescription
operation_type"AddOrEditChannel",
"EditIPCParam",
"EditIPCPwd"
stringOperation Type: Add or modify channel parameters, edit connection IPC parameters, and edit connection IPC password.
remove_ipc“IP_CH1”…” IP_CH1x”
The number of channels depends on the capabilities of the device.
arrayEach array bit represents a channel with a string.
channel_infoJSON objectJSON show as follow Table 4

Table 4

ParameterRangeTypeDescription
CH1Json ObjectJSON show as follow Table 5
Json Object
IP_CH1Json Object
Json Object
WIFI_CH1Json Object
Json Object

Table 5

ParameterRangeTypeDescription
channel_numintNumber of channels supported by each device.
state"NotConfigured",
"Offline",
"Online"
stringA message is displayed when the channel is not configured.
switch_mode"ManualMode",
"AutoMode"
stringOnly POE channels have this variable."
POE channel mode:
"ManualMode" : manual mode
"AutoMode" : automatic mode
ip_addressMax length: 63bytestringIP Adress
subnet_maskMax length: 15bytestringSubnet mask
gatewayMax length: 15bytestringGateway
dns1Max length: 15bytestringPreferred DNS server, for example, 8.8.8.8.
dns2Max length: 15bytestringStandby DNS server, for example, 8.8.8.8.
port[1~65535]intMedia port
web_port[1~65535]int
protocolMax length: 15bytestringIPC access protocol
usernameMax length: 31bytestring
passwordMax length: 31bytestring
password_emptyboolWhether the password is empty.
camera_mode"Auto",
"Normal",
"Fisheye"
stringCamera mode
manufacturerMax length: 35bytestringDevice type
device_typeMax length: 35bytestringManufacturer
device_type_flagMax length: 32bytestringManufacturer flag, informing the third party IPC can broadcast protocol search, modify IP, but online still to ONVIF protocol online (only for NVR)
mac_addressMax length: 35bytestringMAC adress
software_versionMax length: 40bytestringSoftware version
version_flag[0~255]intVersion flag
security"Risk",
"Weak",
"Medium",
"Strength"
stringCryptographic security
can_modify_pwdboolWhether the password can be changed.
new_passwordMax length: 31bytestringChange a new password.
modify_all_chn_pwdboolWhether to change the passwords of all channels.
network_mode“Dhcp”,
”Static”
stringNetwork model
can_set_netmodeboolThe network mode can be selected.
main_urlMax length: 120bytestringURL of the mainstream
sub_urlMax length: 120bytestringURL of the substream
connect_method"General",
"Security"
stringWhen the ONVIF protocol is used, it is used to indicate whether to use normal mode or safe mode to connect the front-end device.
base_enc_passwordJson ObjectEncrypted Password
hide_network_modeboolWhether to hide the network mode option.
tips_ensure_ip_not_useboolWhether prompt messages are displayed.

Tips:

The response message of the Range request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {
		"operation_type": {
			"type": "string",
			"items": [
				"AddOrEditChannel",
				"EditIPCParam",
				"SaveCommonParam",
				"PoeToIpChannel"
			]
		},
		"remove_ipc": {
			"type": "array",
			"min_size": 0,
			"max_size": 16,
			"items": {
				"type": "string",
				"items": [
					"CH1",
					"CH2",
					"CH3",
					"CH4",
					"CH5",
					"CH6",
					"CH7",
					"CH8",
					"CH9",
					"CH10",
					"CH11",
					"CH12",
					"CH13",
					"CH14",
					"CH15",
					"CH16"
				]
			}
		},
		"channel_max": 16,
		"default_password": true,
		"batch_modify_password": true,
		"restore_channel_connect": true,
		"auto_add_ipc_hasCheck": {
			"type": "bool"
		},
		"auto_add_ipc": false,
		"poe_replace_ipc": false,
		"channel_info": {
			"type": "object",
			"items": {
				"CH1": {
					"type": "object",
					"items": {
						"state": {
							"type": "string",
							"items": [
								"NotConfigured",
								"Offline",
								"Online",
								"WeakPassword",
								"NotActivated"
							]
						},
						"ip_address": {
							"type": "string",
							"min_len": 0,
							"max_len": 63
						},
						"subnet_mask": {
							"type": "string",
							"min_len": 7,
							"max_len": 15
						},
						"subnet_mask_hide": {
							"type": "bool"
						},
						"gateway": {
							"type": "string",
							"min_len": 7,
							"max_len": 15
						},
						"port": {
							"type": "int32",
							"mode": "rw",
							"min": 1,
							"max": 65535,
							"default_value": 9988
						},
						"channel_num": {
							"type": "int32",
							"min": 0,
							"max": 128
						},
						"channel_index": {
							"type": "int32",
							"min": 0,
							"max": 128
						},
						"protocol": {
							"type": "string",
							"items": [
								"Private",
								"Onvif",
								"RTSP"
							]
						},
						"connect_method": {
							"default": "General",
							"type": "string",
							"mode": "rw",
							"items": [
								"General",
								"Security"
							],
							"default_value": ""
						},
						"username": {
							"type": "string",
							"min_len": 0,
							"max_len": 31
						},
						"password": {
							"type": "string",
							"min_len": 0,
							"max_len": 31
						},
						"password_empty": {
							"type": "bool"
						},
						"manufacturer": {
							"type": "string",
							"min_len": 0,
							"max_len": 35
						},
						"device_type": {
							"type": "string",
							"min_len": 0,
							"max_len": 35
						},
						"main_url": {
							"type": "string",
							"min_len": 0,
							"max_len": 120
						},
						"sub_url": {
							"type": "string",
							"min_len": 0,
							"max_len": 120
						},
						"mac_address": {
							"type": "string",
							"mode": "r",
							"min_len": 0,
							"max_len": 35
						},
						"software_version": {
							"type": "string",
							"mode": "r",
							"min_len": 0,
							"max_len": 40
						},
						"network_mode": {
							"type": "string",
							"items": [
								"Dhcp",
								"Static"
							]
						},
						"web_port": {
							"type": "int32",
							"min": 1,
							"max": 65535
						},
						"forward_port": {
							"type": "int32",
							"min": 1,
							"max": 65535
						}
					}
				},
				"CH2": {
					"type": "object",
					"items": {
						"state": {
							"type": "string",
							"items": [
								"NotConfigured",
								"Offline",
								"Online",
								"WeakPassword",
								"NotActivated"
							]
						},
						"ip_address": {
							"type": "string",
							"min_len": 0,
							"max_len": 63
						},
						"subnet_mask": {
							"type": "string",
							"min_len": 7,
							"max_len": 15
						},
						"subnet_mask_hide": {
							"type": "bool"
						},
						"gateway": {
							"type": "string",
							"min_len": 7,
							"max_len": 15
						},
						"port": {
							"type": "int32",
							"mode": "rw",
							"min": 1,
							"max": 65535,
							"default_value": 9988
						},
						"channel_num": {
							"type": "int32",
							"min": 0,
							"max": 128
						},
						"channel_index": {
							"type": "int32",
							"min": 0,
							"max": 128
						},
						"protocol": {
							"type": "string",
							"items": [
								"Private",
								"Onvif",
								"RTSP"
							]
						},
						"connect_method": {
							"default": "General",
							"type": "string",
							"mode": "rw",
							"items": [
								"General",
								"Security"
							],
							"default_value": ""
						},
						"username": {
							"type": "string",
							"min_len": 0,
							"max_len": 31
						},
						"password": {
							"type": "string",
							"min_len": 0,
							"max_len": 31
						},
						"password_empty": {
							"type": "bool"
						},
						"manufacturer": {
							"type": "string",
							"min_len": 0,
							"max_len": 35
						},
						"device_type": {
							"type": "string",
							"min_len": 0,
							"max_len": 35
						},
						"main_url": {
							"type": "string",
							"min_len": 0,
							"max_len": 120
						},
						"sub_url": {
							"type": "string",
							"min_len": 0,
							"max_len": 120
						},
						"mac_address": {
							"type": "string",
							"mode": "r",
							"min_len": 0,
							"max_len": 35
						},
						"software_version": {
							"type": "string",
							"mode": "r",
							"min_len": 0,
							"max_len": 40
						},
						"network_mode": {
							"type": "string",
							"items": [
								"Dhcp",
								"Static"
							]
						},
						"web_port": {
							"type": "int32",
							"min": 1,
							"max": 65535
						}
					}
				},
				"CH3": {
					"type": "object",
					"items": {
						"state": {
							"type": "string",
							"items": [
								"NotConfigured",
								"Offline",
								"Online",
								"WeakPassword",
								"NotActivated"
							]
						},
						"ip_address": {
							"type": "string",
							"min_len": 0,
							"max_len": 63
						},
						"subnet_mask": {
							"type": "string",
							"min_len": 7,
							"max_len": 15
						},
						"subnet_mask_hide": {
							"type": "bool"
						},
						"gateway": {
							"type": "string",
							"min_len": 7,
							"max_len": 15
						},
						"port": {
							"type": "int32",
							"mode": "rw",
							"min": 1,
							"max": 65535,
							"default_value": 9988
						},
						"channel_num": {
							"type": "int32",
							"min": 0,
							"max": 128
						},
						"channel_index": {
							"type": "int32",
							"min": 0,
							"max": 128
						},
						"protocol": {
							"type": "string",
							"items": [
								"Private",
								"Onvif",
								"RTSP"
							]
						},
						"connect_method": {
							"default": "General",
							"type": "string",
							"mode": "rw",
							"items": [
								"General",
								"Security"
							],
							"default_value": ""
						},
						"username": {
							"type": "string",
							"min_len": 0,
							"max_len": 31
						},
						"password": {
							"type": "string",
							"min_len": 0,
							"max_len": 31
						},
						"password_empty": {
							"type": "bool"
						},
						"manufacturer": {
							"type": "string",
							"min_len": 0,
							"max_len": 35
						},
						"device_type": {
							"type": "string",
							"min_len": 0,
							"max_len": 35
						},
						"main_url": {
							"type": "string",
							"min_len": 0,
							"max_len": 120
						},
						"sub_url": {
							"type": "string",
							"min_len": 0,
							"max_len": 120
						},
						"mac_address": {
							"type": "string",
							"mode": "r",
							"min_len": 0,
							"max_len": 35
						},
						"software_version": {
							"type": "string",
							"mode": "r",
							"min_len": 0,
							"max_len": 40
						},
						"network_mode": {
							"type": "string",
							"items": [
								"Dhcp",
								"Static"
							]
						},
						"web_port": {
							"type": "int32",
							"min": 1,
							"max": 65535
						}
					}
				},
				"CH4": {
					"type": "object",
					"items": {
						"state": {
							"type": "string",
							"items": [
								"NotConfigured",
								"Offline",
								"Online",
								"WeakPassword",
								"NotActivated"
							]
						},
						"ip_address": {
							"type": "string",
							"min_len": 0,
							"max_len": 63
						},
						"subnet_mask": {
							"type": "string",
							"min_len": 7,
							"max_len": 15
						},
						"subnet_mask_hide": {
							"type": "bool"
						},
						"gateway": {
							"type": "string",
							"min_len": 7,
							"max_len": 15
						},
						"port": {
							"type": "int32",
							"mode": "rw",
							"min": 1,
							"max": 65535,
							"default_value": 9988
						},
						"channel_num": {
							"type": "int32",
							"min": 0,
							"max": 128
						},
						"channel_index": {
							"type": "int32",
							"min": 0,
							"max": 128
						},
						"protocol": {
							"type": "string",
							"items": [
								"Private",
								"Onvif",
								"RTSP"
							]
						},
						"connect_method": {
							"default": "General",
							"type": "string",
							"mode": "rw",
							"items": [
								"General",
								"Security"
							],
							"default_value": ""
						},
						"username": {
							"type": "string",
							"min_len": 0,
							"max_len": 31
						},
						"password": {
							"type": "string",
							"min_len": 0,
							"max_len": 31
						},
						"password_empty": {
							"type": "bool"
						},
						"manufacturer": {
							"type": "string",
							"min_len": 0,
							"max_len": 35
						},
						"device_type": {
							"type": "string",
							"min_len": 0,
							"max_len": 35
						},
						"main_url": {
							"type": "string",
							"min_len": 0,
							"max_len": 120
						},
						"sub_url": {
							"type": "string",
							"min_len": 0,
							"max_len": 120
						},
						"mac_address": {
							"type": "string",
							"mode": "r",
							"min_len": 0,
							"max_len": 35
						},
						"software_version": {
							"type": "string",
							"mode": "r",
							"min_len": 0,
							"max_len": 40
						},
						"network_mode": {
							"type": "string",
							"items": [
								"Dhcp",
								"Static"
							]
						},
						"web_port": {
							"type": "int32",
							"min": 1,
							"max": 65535
						}
					}
				},
				"CH5": {
					"type": "object",
					"items": {
						"state": {
							"type": "string",
							"items": [
								"NotConfigured",
								"Offline",
								"Online",
								"WeakPassword",
								"NotActivated"
							]
						},
						"ip_address": {
							"type": "string",
							"min_len": 0,
							"max_len": 63
						},
						"subnet_mask": {
							"type": "string",
							"min_len": 7,
							"max_len": 15
						},
						"subnet_mask_hide": {
							"type": "bool"
						},
						"gateway": {
							"type": "string",
							"min_len": 7,
							"max_len": 15
						},
						"port": {
							"type": "int32",
							"mode": "rw",
							"min": 1,
							"max": 65535,
							"default_value": 9988
						},
						"channel_num": {
							"type": "int32",
							"min": 0,
							"max": 128
						},
						"channel_index": {
							"type": "int32",
							"min": 0,
							"max": 128
						},
						"protocol": {
							"type": "string",
							"items": [
								"Private",
								"Onvif",
								"RTSP"
							]
						},
						"connect_method": {
							"default": "General",
							"type": "string",
							"mode": "rw",
							"items": [
								"General",
								"Security"
							],
							"default_value": ""
						},
						"username": {
							"type": "string",
							"min_len": 0,
							"max_len": 31
						},
						"password": {
							"type": "string",
							"min_len": 0,
							"max_len": 31
						},
						"password_empty": {
							"type": "bool"
						},
						"manufacturer": {
							"type": "string",
							"min_len": 0,
							"max_len": 35
						},
						"device_type": {
							"type": "string",
							"min_len": 0,
							"max_len": 35
						},
						"main_url": {
							"type": "string",
							"min_len": 0,
							"max_len": 120
						},
						"sub_url": {
							"type": "string",
							"min_len": 0,
							"max_len": 120
						},
						"mac_address": {
							"type": "string",
							"mode": "r",
							"min_len": 0,
							"max_len": 35
						},
						"software_version": {
							"type": "string",
							"mode": "r",
							"min_len": 0,
							"max_len": 40
						},
						"network_mode": {
							"type": "string",
							"items": [
								"Dhcp",
								"Static"
							]
						},
						"web_port": {
							"type": "int32",
							"min": 1,
							"max": 65535
						},
						"forward_port": {
							"type": "int32",
							"min": 1,
							"max": 65535
						}
					}
				},
				"CH6": {
					"type": "object",
					"items": {
						"state": {
							"type": "string",
							"items": [
								"NotConfigured",
								"Offline",
								"Online",
								"WeakPassword",
								"NotActivated"
							]
						},
						"ip_address": {
							"type": "string",
							"min_len": 0,
							"max_len": 63
						},
						"subnet_mask": {
							"type": "string",
							"min_len": 7,
							"max_len": 15
						},
						"subnet_mask_hide": {
							"type": "bool"
						},
						"gateway": {
							"type": "string",
							"min_len": 7,
							"max_len": 15
						},
						"port": {
							"type": "int32",
							"mode": "rw",
							"min": 1,
							"max": 65535,
							"default_value": 9988
						},
						"channel_num": {
							"type": "int32",
							"min": 0,
							"max": 128
						},
						"channel_index": {
							"type": "int32",
							"min": 0,
							"max": 128
						},
						"protocol": {
							"type": "string",
							"items": [
								"Private",
								"Onvif",
								"RTSP"
							]
						},
						"connect_method": {
							"default": "General",
							"type": "string",
							"mode": "rw",
							"items": [
								"General",
								"Security"
							],
							"default_value": ""
						},
						"username": {
							"type": "string",
							"min_len": 0,
							"max_len": 31
						},
						"password": {
							"type": "string",
							"min_len": 0,
							"max_len": 31
						},
						"password_empty": {
							"type": "bool"
						},
						"manufacturer": {
							"type": "string",
							"min_len": 0,
							"max_len": 35
						},
						"device_type": {
							"type": "string",
							"min_len": 0,
							"max_len": 35
						},
						"main_url": {
							"type": "string",
							"min_len": 0,
							"max_len": 120
						},
						"sub_url": {
							"type": "string",
							"min_len": 0,
							"max_len": 120
						},
						"mac_address": {
							"type": "string",
							"mode": "r",
							"min_len": 0,
							"max_len": 35
						},
						"software_version": {
							"type": "string",
							"mode": "r",
							"min_len": 0,
							"max_len": 40
						},
						"network_mode": {
							"type": "string",
							"items": [
								"Dhcp",
								"Static"
							]
						},
						"web_port": {
							"type": "int32",
							"min": 1,
							"max": 65535
						},
						"forward_port": {
							"type": "int32",
							"min": 1,
							"max": 65535
						}
					}
				},
				"CH7": {
					"type": "object",
					"items": {
						"state": {
							"type": "string",
							"items": [
								"NotConfigured",
								"Offline",
								"Online",
								"WeakPassword",
								"NotActivated"
							]
						},
						"ip_address": {
							"type": "string",
							"min_len": 0,
							"max_len": 63
						},
						"subnet_mask": {
							"type": "string",
							"min_len": 7,
							"max_len": 15
						},
						"subnet_mask_hide": {
							"type": "bool"
						},
						"gateway": {
							"type": "string",
							"min_len": 7,
							"max_len": 15
						},
						"port": {
							"type": "int32",
							"mode": "rw",
							"min": 1,
							"max": 65535,
							"default_value": 9988
						},
						"channel_num": {
							"type": "int32",
							"min": 0,
							"max": 128
						},
						"channel_index": {
							"type": "int32",
							"min": 0,
							"max": 128
						},
						"protocol": {
							"type": "string",
							"items": [
								"Private",
								"Onvif",
								"RTSP"
							]
						},
						"connect_method": {
							"default": "General",
							"type": "string",
							"mode": "rw",
							"items": [
								"General",
								"Security"
							],
							"default_value": ""
						},
						"username": {
							"type": "string",
							"min_len": 0,
							"max_len": 31
						},
						"password": {
							"type": "string",
							"min_len": 0,
							"max_len": 31
						},
						"password_empty": {
							"type": "bool"
						},
						"manufacturer": {
							"type": "string",
							"min_len": 0,
							"max_len": 35
						},
						"device_type": {
							"type": "string",
							"min_len": 0,
							"max_len": 35
						},
						"main_url": {
							"type": "string",
							"min_len": 0,
							"max_len": 120
						},
						"sub_url": {
							"type": "string",
							"min_len": 0,
							"max_len": 120
						},
						"mac_address": {
							"type": "string",
							"mode": "r",
							"min_len": 0,
							"max_len": 35
						},
						"software_version": {
							"type": "string",
							"mode": "r",
							"min_len": 0,
							"max_len": 40
						},
						"network_mode": {
							"type": "string",
							"items": [
								"Dhcp",
								"Static"
							]
						},
						"web_port": {
							"type": "int32",
							"min": 1,
							"max": 65535
						}
					}
				},
				"CH8": {
					"type": "object",
					"items": {
						"state": {
							"type": "string",
							"items": [
								"NotConfigured",
								"Offline",
								"Online",
								"WeakPassword",
								"NotActivated"
							]
						},
						"ip_address": {
							"type": "string",
							"min_len": 0,
							"max_len": 63
						},
						"subnet_mask": {
							"type": "string",
							"min_len": 7,
							"max_len": 15
						},
						"subnet_mask_hide": {
							"type": "bool"
						},
						"gateway": {
							"type": "string",
							"min_len": 7,
							"max_len": 15
						},
						"port": {
							"type": "int32",
							"mode": "rw",
							"min": 1,
							"max": 65535,
							"default_value": 9988
						},
						"channel_num": {
							"type": "int32",
							"min": 0,
							"max": 128
						},
						"channel_index": {
							"type": "int32",
							"min": 0,
							"max": 128
						},
						"protocol": {
							"type": "string",
							"items": [
								"Private",
								"Onvif",
								"RTSP"
							]
						},
						"connect_method": {
							"default": "General",
							"type": "string",
							"mode": "rw",
							"items": [
								"General",
								"Security"
							],
							"default_value": ""
						},
						"username": {
							"type": "string",
							"min_len": 0,
							"max_len": 31
						},
						"password": {
							"type": "string",
							"min_len": 0,
							"max_len": 31
						},
						"password_empty": {
							"type": "bool"
						},
						"manufacturer": {
							"type": "string",
							"min_len": 0,
							"max_len": 35
						},
						"device_type": {
							"type": "string",
							"min_len": 0,
							"max_len": 35
						},
						"main_url": {
							"type": "string",
							"min_len": 0,
							"max_len": 120
						},
						"sub_url": {
							"type": "string",
							"min_len": 0,
							"max_len": 120
						},
						"mac_address": {
							"type": "string",
							"mode": "r",
							"min_len": 0,
							"max_len": 35
						},
						"software_version": {
							"type": "string",
							"mode": "r",
							"min_len": 0,
							"max_len": 40
						},
						"network_mode": {
							"type": "string",
							"items": [
								"Dhcp",
								"Static"
							]
						},
						"web_port": {
							"type": "int32",
							"min": 1,
							"max": 65535
						}
					}
				},
				"CH9": {
					"type": "object",
					"items": {
						"state": {
							"type": "string",
							"items": [
								"NotConfigured",
								"Offline",
								"Online",
								"WeakPassword",
								"NotActivated"
							]
						},
						"ip_address": {
							"type": "string",
							"min_len": 0,
							"max_len": 63
						},
						"subnet_mask": {
							"type": "string",
							"min_len": 7,
							"max_len": 15
						},
						"subnet_mask_hide": {
							"type": "bool"
						},
						"gateway": {
							"type": "string",
							"min_len": 7,
							"max_len": 15
						},
						"port": {
							"type": "int32",
							"mode": "rw",
							"min": 1,
							"max": 65535,
							"default_value": 9988
						},
						"channel_num": {
							"type": "int32",
							"min": 0,
							"max": 128
						},
						"channel_index": {
							"type": "int32",
							"min": 0,
							"max": 128
						},
						"protocol": {
							"type": "string",
							"items": [
								"Private",
								"Onvif",
								"RTSP"
							]
						},
						"connect_method": {
							"default": "General",
							"type": "string",
							"mode": "rw",
							"items": [
								"General",
								"Security"
							],
							"default_value": ""
						},
						"username": {
							"type": "string",
							"min_len": 0,
							"max_len": 31
						},
						"password": {
							"type": "string",
							"min_len": 0,
							"max_len": 31
						},
						"password_empty": {
							"type": "bool"
						},
						"manufacturer": {
							"type": "string",
							"min_len": 0,
							"max_len": 35
						},
						"device_type": {
							"type": "string",
							"min_len": 0,
							"max_len": 35
						},
						"main_url": {
							"type": "string",
							"min_len": 0,
							"max_len": 120
						},
						"sub_url": {
							"type": "string",
							"min_len": 0,
							"max_len": 120
						},
						"mac_address": {
							"type": "string",
							"mode": "r",
							"min_len": 0,
							"max_len": 35
						},
						"software_version": {
							"type": "string",
							"mode": "r",
							"min_len": 0,
							"max_len": 40
						},
						"network_mode": {
							"type": "string",
							"items": [
								"Dhcp",
								"Static"
							]
						},
						"web_port": {
							"type": "int32",
							"min": 1,
							"max": 65535
						}
					}
				},
				"CH10": {
					"type": "object",
					"items": {
						"state": {
							"type": "string",
							"items": [
								"NotConfigured",
								"Offline",
								"Online",
								"WeakPassword",
								"NotActivated"
							]
						},
						"ip_address": {
							"type": "string",
							"min_len": 0,
							"max_len": 63
						},
						"subnet_mask": {
							"type": "string",
							"min_len": 7,
							"max_len": 15
						},
						"subnet_mask_hide": {
							"type": "bool"
						},
						"gateway": {
							"type": "string",
							"min_len": 7,
							"max_len": 15
						},
						"port": {
							"type": "int32",
							"mode": "rw",
							"min": 1,
							"max": 65535,
							"default_value": 9988
						},
						"channel_num": {
							"type": "int32",
							"min": 0,
							"max": 128
						},
						"channel_index": {
							"type": "int32",
							"min": 0,
							"max": 128
						},
						"protocol": {
							"type": "string",
							"items": [
								"Private",
								"Onvif",
								"RTSP"
							]
						},
						"connect_method": {
							"default": "General",
							"type": "string",
							"mode": "rw",
							"items": [
								"General",
								"Security"
							],
							"default_value": ""
						},
						"username": {
							"type": "string",
							"min_len": 0,
							"max_len": 31
						},
						"password": {
							"type": "string",
							"min_len": 0,
							"max_len": 31
						},
						"password_empty": {
							"type": "bool"
						},
						"manufacturer": {
							"type": "string",
							"min_len": 0,
							"max_len": 35
						},
						"device_type": {
							"type": "string",
							"min_len": 0,
							"max_len": 35
						},
						"main_url": {
							"type": "string",
							"min_len": 0,
							"max_len": 120
						},
						"sub_url": {
							"type": "string",
							"min_len": 0,
							"max_len": 120
						},
						"mac_address": {
							"type": "string",
							"mode": "r",
							"min_len": 0,
							"max_len": 35
						},
						"software_version": {
							"type": "string",
							"mode": "r",
							"min_len": 0,
							"max_len": 40
						},
						"network_mode": {
							"type": "string",
							"items": [
								"Dhcp",
								"Static"
							]
						},
						"web_port": {
							"type": "int32",
							"min": 1,
							"max": 65535
						}
					}
				},
				"CH11": {
					"type": "object",
					"items": {
						"state": {
							"type": "string",
							"items": [
								"NotConfigured",
								"Offline",
								"Online",
								"WeakPassword",
								"NotActivated"
							]
						},
						"ip_address": {
							"type": "string",
							"min_len": 0,
							"max_len": 63
						},
						"subnet_mask": {
							"type": "string",
							"min_len": 7,
							"max_len": 15
						},
						"subnet_mask_hide": {
							"type": "bool"
						},
						"gateway": {
							"type": "string",
							"min_len": 7,
							"max_len": 15
						},
						"port": {
							"type": "int32",
							"mode": "rw",
							"min": 1,
							"max": 65535,
							"default_value": 9988
						},
						"channel_num": {
							"type": "int32",
							"min": 0,
							"max": 128
						},
						"channel_index": {
							"type": "int32",
							"min": 0,
							"max": 128
						},
						"protocol": {
							"type": "string",
							"items": [
								"Private",
								"Onvif",
								"RTSP"
							]
						},
						"connect_method": {
							"default": "General",
							"type": "string",
							"mode": "rw",
							"items": [
								"General",
								"Security"
							],
							"default_value": ""
						},
						"username": {
							"type": "string",
							"min_len": 0,
							"max_len": 31
						},
						"password": {
							"type": "string",
							"min_len": 0,
							"max_len": 31
						},
						"password_empty": {
							"type": "bool"
						},
						"manufacturer": {
							"type": "string",
							"min_len": 0,
							"max_len": 35
						},
						"device_type": {
							"type": "string",
							"min_len": 0,
							"max_len": 35
						},
						"main_url": {
							"type": "string",
							"min_len": 0,
							"max_len": 120
						},
						"sub_url": {
							"type": "string",
							"min_len": 0,
							"max_len": 120
						},
						"mac_address": {
							"type": "string",
							"mode": "r",
							"min_len": 0,
							"max_len": 35
						},
						"software_version": {
							"type": "string",
							"mode": "r",
							"min_len": 0,
							"max_len": 40
						},
						"network_mode": {
							"type": "string",
							"items": [
								"Dhcp",
								"Static"
							]
						},
						"web_port": {
							"type": "int32",
							"min": 1,
							"max": 65535
						},
						"forward_port": {
							"type": "int32",
							"min": 1,
							"max": 65535
						}
					}
				},
				"CH12": {
					"type": "object",
					"items": {
						"state": {
							"type": "string",
							"items": [
								"NotConfigured",
								"Offline",
								"Online",
								"WeakPassword",
								"NotActivated"
							]
						},
						"ip_address": {
							"type": "string",
							"min_len": 0,
							"max_len": 63
						},
						"subnet_mask": {
							"type": "string",
							"min_len": 7,
							"max_len": 15
						},
						"subnet_mask_hide": {
							"type": "bool"
						},
						"gateway": {
							"type": "string",
							"min_len": 7,
							"max_len": 15
						},
						"port": {
							"type": "int32",
							"mode": "rw",
							"min": 1,
							"max": 65535,
							"default_value": 9988
						},
						"channel_num": {
							"type": "int32",
							"min": 0,
							"max": 128
						},
						"channel_index": {
							"type": "int32",
							"min": 0,
							"max": 128
						},
						"protocol": {
							"type": "string",
							"items": [
								"Private",
								"Onvif",
								"RTSP"
							]
						},
						"connect_method": {
							"default": "General",
							"type": "string",
							"mode": "rw",
							"items": [
								"General",
								"Security"
							],
							"default_value": ""
						},
						"username": {
							"type": "string",
							"min_len": 0,
							"max_len": 31
						},
						"password": {
							"type": "string",
							"min_len": 0,
							"max_len": 31
						},
						"password_empty": {
							"type": "bool"
						},
						"manufacturer": {
							"type": "string",
							"min_len": 0,
							"max_len": 35
						},
						"device_type": {
							"type": "string",
							"min_len": 0,
							"max_len": 35
						},
						"main_url": {
							"type": "string",
							"min_len": 0,
							"max_len": 120
						},
						"sub_url": {
							"type": "string",
							"min_len": 0,
							"max_len": 120
						},
						"mac_address": {
							"type": "string",
							"mode": "r",
							"min_len": 0,
							"max_len": 35
						},
						"software_version": {
							"type": "string",
							"mode": "r",
							"min_len": 0,
							"max_len": 40
						},
						"network_mode": {
							"type": "string",
							"items": [
								"Dhcp",
								"Static"
							]
						},
						"web_port": {
							"type": "int32",
							"min": 1,
							"max": 65535
						}
					}
				},
				"CH13": {
					"type": "object",
					"items": {
						"state": {
							"type": "string",
							"items": [
								"NotConfigured",
								"Offline",
								"Online",
								"WeakPassword",
								"NotActivated"
							]
						},
						"ip_address": {
							"type": "string",
							"min_len": 0,
							"max_len": 63
						},
						"subnet_mask": {
							"type": "string",
							"min_len": 7,
							"max_len": 15
						},
						"subnet_mask_hide": {
							"type": "bool"
						},
						"gateway": {
							"type": "string",
							"min_len": 7,
							"max_len": 15
						},
						"port": {
							"type": "int32",
							"mode": "rw",
							"min": 1,
							"max": 65535,
							"default_value": 9988
						},
						"channel_num": {
							"type": "int32",
							"min": 0,
							"max": 128
						},
						"channel_index": {
							"type": "int32",
							"min": 0,
							"max": 128
						},
						"protocol": {
							"type": "string",
							"items": [
								"Private",
								"Onvif",
								"RTSP"
							]
						},
						"connect_method": {
							"default": "General",
							"type": "string",
							"mode": "rw",
							"items": [
								"General",
								"Security"
							],
							"default_value": ""
						},
						"username": {
							"type": "string",
							"min_len": 0,
							"max_len": 31
						},
						"password": {
							"type": "string",
							"min_len": 0,
							"max_len": 31
						},
						"password_empty": {
							"type": "bool"
						},
						"manufacturer": {
							"type": "string",
							"min_len": 0,
							"max_len": 35
						},
						"device_type": {
							"type": "string",
							"min_len": 0,
							"max_len": 35
						},
						"main_url": {
							"type": "string",
							"min_len": 0,
							"max_len": 120
						},
						"sub_url": {
							"type": "string",
							"min_len": 0,
							"max_len": 120
						},
						"mac_address": {
							"type": "string",
							"mode": "r",
							"min_len": 0,
							"max_len": 35
						},
						"software_version": {
							"type": "string",
							"mode": "r",
							"min_len": 0,
							"max_len": 40
						},
						"network_mode": {
							"type": "string",
							"items": [
								"Dhcp",
								"Static"
							]
						},
						"web_port": {
							"type": "int32",
							"min": 1,
							"max": 65535
						}
					}
				},
				"CH14": {
					"type": "object",
					"items": {
						"state": {
							"type": "string",
							"items": [
								"NotConfigured",
								"Offline",
								"Online",
								"WeakPassword",
								"NotActivated"
							]
						},
						"ip_address": {
							"type": "string",
							"min_len": 0,
							"max_len": 63
						},
						"subnet_mask": {
							"type": "string",
							"min_len": 7,
							"max_len": 15
						},
						"subnet_mask_hide": {
							"type": "bool"
						},
						"gateway": {
							"type": "string",
							"min_len": 7,
							"max_len": 15
						},
						"port": {
							"type": "int32",
							"mode": "rw",
							"min": 1,
							"max": 65535,
							"default_value": 9988
						},
						"channel_num": {
							"type": "int32",
							"min": 0,
							"max": 128
						},
						"channel_index": {
							"type": "int32",
							"min": 0,
							"max": 128
						},
						"protocol": {
							"type": "string",
							"items": [
								"Private",
								"Onvif",
								"RTSP"
							]
						},
						"connect_method": {
							"default": "General",
							"type": "string",
							"mode": "rw",
							"items": [
								"General",
								"Security"
							],
							"default_value": ""
						},
						"username": {
							"type": "string",
							"min_len": 0,
							"max_len": 31
						},
						"password": {
							"type": "string",
							"min_len": 0,
							"max_len": 31
						},
						"password_empty": {
							"type": "bool"
						},
						"manufacturer": {
							"type": "string",
							"min_len": 0,
							"max_len": 35
						},
						"device_type": {
							"type": "string",
							"min_len": 0,
							"max_len": 35
						},
						"main_url": {
							"type": "string",
							"min_len": 0,
							"max_len": 120
						},
						"sub_url": {
							"type": "string",
							"min_len": 0,
							"max_len": 120
						},
						"mac_address": {
							"type": "string",
							"mode": "r",
							"min_len": 0,
							"max_len": 35
						},
						"software_version": {
							"type": "string",
							"mode": "r",
							"min_len": 0,
							"max_len": 40
						},
						"network_mode": {
							"type": "string",
							"items": [
								"Dhcp",
								"Static"
							]
						},
						"web_port": {
							"type": "int32",
							"min": 1,
							"max": 65535
						}
					}
				},
				"CH15": {
					"type": "object",
					"items": {
						"state": {
							"type": "string",
							"items": [
								"NotConfigured",
								"Offline",
								"Online",
								"WeakPassword",
								"NotActivated"
							]
						},
						"ip_address": {
							"type": "string",
							"min_len": 0,
							"max_len": 63
						},
						"subnet_mask": {
							"type": "string",
							"min_len": 7,
							"max_len": 15
						},
						"subnet_mask_hide": {
							"type": "bool"
						},
						"gateway": {
							"type": "string",
							"min_len": 7,
							"max_len": 15
						},
						"port": {
							"type": "int32",
							"mode": "rw",
							"min": 1,
							"max": 65535,
							"default_value": 9988
						},
						"channel_num": {
							"type": "int32",
							"min": 0,
							"max": 128
						},
						"channel_index": {
							"type": "int32",
							"min": 0,
							"max": 128
						},
						"protocol": {
							"type": "string",
							"items": [
								"Private",
								"Onvif",
								"RTSP"
							]
						},
						"connect_method": {
							"default": "General",
							"type": "string",
							"mode": "rw",
							"items": [
								"General",
								"Security"
							],
							"default_value": ""
						},
						"username": {
							"type": "string",
							"min_len": 0,
							"max_len": 31
						},
						"password": {
							"type": "string",
							"min_len": 0,
							"max_len": 31
						},
						"password_empty": {
							"type": "bool"
						},
						"manufacturer": {
							"type": "string",
							"min_len": 0,
							"max_len": 35
						},
						"device_type": {
							"type": "string",
							"min_len": 0,
							"max_len": 35
						},
						"main_url": {
							"type": "string",
							"min_len": 0,
							"max_len": 120
						},
						"sub_url": {
							"type": "string",
							"min_len": 0,
							"max_len": 120
						},
						"mac_address": {
							"type": "string",
							"mode": "r",
							"min_len": 0,
							"max_len": 35
						},
						"software_version": {
							"type": "string",
							"mode": "r",
							"min_len": 0,
							"max_len": 40
						},
						"network_mode": {
							"type": "string",
							"items": [
								"Dhcp",
								"Static"
							]
						},
						"web_port": {
							"type": "int32",
							"min": 1,
							"max": 65535
						},
						"forward_port": {
							"type": "int32",
							"min": 1,
							"max": 65535
						}
					}
				},
				"CH16": {
					"type": "object",
					"items": {
						"state": {
							"type": "string",
							"items": [
								"NotConfigured",
								"Offline",
								"Online",
								"WeakPassword",
								"NotActivated"
							]
						},
						"ip_address": {
							"type": "string",
							"min_len": 0,
							"max_len": 63
						},
						"subnet_mask": {
							"type": "string",
							"min_len": 7,
							"max_len": 15
						},
						"subnet_mask_hide": {
							"type": "bool"
						},
						"gateway": {
							"type": "string",
							"min_len": 7,
							"max_len": 15
						},
						"port": {
							"type": "int32",
							"mode": "rw",
							"min": 1,
							"max": 65535,
							"default_value": 9988
						},
						"channel_num": {
							"type": "int32",
							"min": 0,
							"max": 128
						},
						"channel_index": {
							"type": "int32",
							"min": 0,
							"max": 128
						},
						"protocol": {
							"type": "string",
							"items": [
								"Private",
								"Onvif",
								"RTSP"
							]
						},
						"connect_method": {
							"default": "General",
							"type": "string",
							"mode": "rw",
							"items": [
								"General",
								"Security"
							],
							"default_value": ""
						},
						"username": {
							"type": "string",
							"min_len": 0,
							"max_len": 31
						},
						"password": {
							"type": "string",
							"min_len": 0,
							"max_len": 31
						},
						"password_empty": {
							"type": "bool"
						},
						"manufacturer": {
							"type": "string",
							"min_len": 0,
							"max_len": 35
						},
						"device_type": {
							"type": "string",
							"min_len": 0,
							"max_len": 35
						},
						"main_url": {
							"type": "string",
							"min_len": 0,
							"max_len": 120
						},
						"sub_url": {
							"type": "string",
							"min_len": 0,
							"max_len": 120
						},
						"mac_address": {
							"type": "string",
							"mode": "r",
							"min_len": 0,
							"max_len": 35
						},
						"software_version": {
							"type": "string",
							"mode": "r",
							"min_len": 0,
							"max_len": 40
						},
						"network_mode": {
							"type": "string",
							"items": [
								"Dhcp",
								"Static"
							]
						},
						"web_port": {
							"type": "int32",
							"min": 1,
							"max": 65535
						},
						"forward_port": {
							"type": "int32",
							"min": 1,
							"max": 65535
						}
					}
				}
			}
		}
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get Channel > IPChannel page parameters.

Request Message

None.

Sample:

POST /API/ChannelConfig/IPChannel/Get HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

See Channel> IPChannel > Parameter Description > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {
		"auto_add_ipc_hasCheck": false,
		"channel_info": {
			"CH1": {
				"state": "Online",
				"ip_address": "172.16.11.5",
				"main_url": "",
				"sub_url": "",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"port": 80,
				"channel_num": 1,
				"channel_index": 0,
				"protocol": "Private",
				"connect_method": "General",
				"username": "admin",
				"password": "",
				"password_empty": false,
				"manufacturer": "",
				"device_type": "SSC30KQ+SC2315",
				"mac_address": "00-23-63-94-AA-08",
				"software_version": "V31.35.8.2.4_230710",
				"network_mode": "Dhcp",
				"forward_port": 65001
			},
			"CH2": {
				"state": "Offline",
				"ip_address": "172.16.10.49",
				"main_url": "",
				"sub_url": "",
				"subnet_mask": "000.000.000.000",
				"gateway": "000.000.000.000",
				"port": 9988,
				"channel_num": 1,
				"channel_index": 0,
				"protocol": "Private",
				"connect_method": "General",
				"username": "1",
				"password": "",
				"password_empty": false,
				"manufacturer": "",
				"device_type": "",
				"mac_address": "",
				"software_version": "",
				"network_mode": "Dhcp"
			},
			"CH3": {
				"state": "Offline",
				"ip_address": "192.168.1.100",
				"main_url": "",
				"sub_url": "",
				"subnet_mask": "255.255.000.000",
				"gateway": "172.016.008.001",
				"port": 443,
				"channel_num": 5,
				"channel_index": 0,
				"protocol": "Private",
				"connect_method": "General",
				"username": "",
				"password": "",
				"password_empty": false,
				"manufacturer": "",
				"device_type": "TKV-4",
				"mac_address": "00-23-63-8F-4A-B8",
				"software_version": "V8.2.2-20221220",
				"network_mode": "Static"
			},
			"CH4": {
				"state": "Offline",
				"ip_address": "192.168.1.100",
				"main_url": "",
				"sub_url": "",
				"subnet_mask": "255.255.000.000",
				"gateway": "172.016.008.001",
				"port": 443,
				"channel_num": 5,
				"channel_index": 0,
				"protocol": "Private",
				"connect_method": "General",
				"username": "",
				"password": "",
				"password_empty": false,
				"manufacturer": "",
				"device_type": "TKV-4",
				"mac_address": "00-23-63-8F-4A-B8",
				"software_version": "V8.2.2-20221220",
				"network_mode": "Static"
			},
			"CH5": {
				"state": "Online",
				"ip_address": "172.16.10.187",
				"main_url": "",
				"sub_url": "",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"port": 80,
				"channel_num": 1,
				"channel_index": 0,
				"protocol": "Onvif",
				"connect_method": "General",
				"username": "admin",
				"password": "",
				"password_empty": false,
				"manufacturer": "NORMAL",
				"device_type": "",
				"mac_address": "00-11-85-18-30-43",
				"software_version": "V44.45.8.2.3_230708",
				"network_mode": "Dhcp",
				"forward_port": 65005
			},
			"CH6": {
				"state": "Offline",
				"ip_address": "172.16.10.234",
				"main_url": "",
				"sub_url": "",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"port": 80,
				"channel_num": 1,
				"channel_index": 0,
				"protocol": "Private",
				"connect_method": "General",
				"username": "admin",
				"password": "",
				"password_empty": false,
				"manufacturer": "",
				"device_type": "IP CAMERA",
				"mac_address": "00-23-63-92-69-C7",
				"software_version": "V42.54.8.2.3_230613",
				"network_mode": "Dhcp",
				"forward_port": 65006
			},
			"CH7": {
				"state": "Offline",
				"ip_address": "172.16.10.234",
				"main_url": "",
				"sub_url": "",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"port": 9000,
				"channel_num": 1,
				"channel_index": 0,
				"protocol": "Private",
				"connect_method": "General",
				"username": "admin",
				"password": "",
				"password_empty": false,
				"manufacturer": "",
				"device_type": "IP CAMERA",
				"mac_address": "00-23-63-92-69-C7",
				"software_version": "V42.54.8.2.3_230613",
				"network_mode": "Dhcp"
			},
			"CH8": {
				"state": "Offline",
				"ip_address": "192.168.1.100",
				"main_url": "",
				"sub_url": "",
				"subnet_mask": "255.255.000.000",
				"gateway": "172.016.008.001",
				"port": 443,
				"channel_num": 5,
				"channel_index": 0,
				"protocol": "Private",
				"connect_method": "General",
				"username": "",
				"password": "",
				"password_empty": false,
				"manufacturer": "",
				"device_type": "TKV-4",
				"mac_address": "00-23-63-8F-4A-B8",
				"software_version": "V8.2.2-20221220",
				"network_mode": "Static"
			},
			"CH9": {
				"state": "NotConfigured"
			},
			"CH10": {
				"state": "Offline",
				"ip_address": "172.16.11.30",
				"main_url": "",
				"sub_url": "",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"port": 9000,
				"channel_num": 6,
				"channel_index": 0,
				"protocol": "Private",
				"connect_method": "General",
				"username": "admin",
				"password": "",
				"password_empty": false,
				"manufacturer": "",
				"device_type": "DVR4-5680",
				"mac_address": "BC-51-FE-AA-29-0F",
				"software_version": "V8.1.0-20221104",
				"network_mode": "Dhcp"
			},
			"CH11": {
				"state": "Offline",
				"ip_address": "172.16.11.156",
				"main_url": "",
				"sub_url": "",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"port": 80,
				"channel_num": 1,
				"channel_index": 0,
				"protocol": "Private",
				"connect_method": "General",
				"username": "admin",
				"password": "",
				"password_empty": false,
				"manufacturer": "",
				"device_type": "IP CAMREA",
				"mac_address": "00-23-63-94-8A-01",
				"software_version": "V30.85.8.2.3.2_230711",
				"network_mode": "Dhcp",
				"forward_port": 65011
			},
			"CH12": {
				"state": "Offline",
				"ip_address": "172.16.11.30",
				"main_url": "",
				"sub_url": "",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"port": 9000,
				"channel_num": 6,
				"channel_index": 1,
				"protocol": "Private",
				"connect_method": "General",
				"username": "admin",
				"password": "",
				"password_empty": false,
				"manufacturer": "",
				"device_type": "DVR4-5680",
				"mac_address": "BC-51-FE-AA-29-0F",
				"software_version": "V8.1.0-20221104",
				"network_mode": "Dhcp"
			},
			"CH13": {
				"state": "Offline",
				"ip_address": "172.16.11.30",
				"main_url": "",
				"sub_url": "",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"port": 9000,
				"channel_num": 6,
				"channel_index": 2,
				"protocol": "Private",
				"connect_method": "General",
				"username": "admin",
				"password": "",
				"password_empty": false,
				"manufacturer": "",
				"device_type": "DVR4-5680",
				"mac_address": "BC-51-FE-AA-29-0F",
				"software_version": "V8.1.0-20221104",
				"network_mode": "Dhcp"
			},
			"CH14": {
				"state": "Online",
				"ip_address": "172.16.11.22",
				"main_url": "",
				"sub_url": "",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"port": 9000,
				"channel_num": 1,
				"channel_index": 0,
				"protocol": "Private",
				"connect_method": "General",
				"username": "admin",
				"password": "",
				"password_empty": false,
				"manufacturer": "",
				"device_type": "IP CAMERA",
				"mac_address": "00-23-63-88-40-87",
				"software_version": "V27.45.7.0_210219",
				"network_mode": "Dhcp"
			},
			"CH15": {
				"state": "Online",
				"ip_address": "172.16.11.24",
				"main_url": "",
				"sub_url": "",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"port": 80,
				"channel_num": 1,
				"channel_index": 0,
				"protocol": "Private",
				"connect_method": "General",
				"username": "admin",
				"password": "",
				"password_empty": false,
				"manufacturer": "",
				"device_type": "_ai_net90",
				"mac_address": "00-23-63-78-86-94",
				"software_version": "V27.45.8.2.3.5_230712",
				"network_mode": "Dhcp",
				"forward_port": 65015
			},
			"CH16": {
				"state": "Offline",
				"ip_address": "172.16.11.25",
				"main_url": "",
				"sub_url": "",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"port": 80,
				"channel_num": 1,
				"channel_index": 0,
				"protocol": "Private",
				"connect_method": "General",
				"username": "admin",
				"password": "",
				"password_empty": false,
				"manufacturer": "",
				"device_type": "IP CAMREA",
				"mac_address": "00-23-63-6E-D2-6F",
				"software_version": "V30.85.8.2.3.2_230711",
				"network_mode": "Dhcp",
				"forward_port": 65016
			}
		}
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set Channel > IPChannel page parameters.

Request Message

See Channel > IPChannel > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/ChannelConfig/IPChannel/Set HTTP/1.1
{
	"version": "1.0",
	"data": {
		"channel_info": {
			"CH1": {
				"state": "Online",
				"ip_address": "172.16.11.5",
				"main_url": "",
				"sub_url": "",
				"subnet_mask": "255.255.252.000",
				"gateway": "172.016.008.001",
				"port": 80,
				"channel_num": 1,
				"channel_index": 0,
				"protocol": "Private",
				"connect_method": "General",
				"username": "admin",
				"password_empty": false,
				"manufacturer": "",
				"device_type": "SSC30KQ+SC2315",
				"mac_address": "00-23-63-94-AA-08",
				"software_version": "V31.35.8.2.4_230710",
				"network_mode": "Dhcp",
				"forward_port": 65001
			}
		},
		"operation_type": "EditIPCParam"
	}
}

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

AutoAddIPC

Function

This API is used to automatically broadcast add IPC.

Request Message

None.

Sample:

POST /API/ChannelConfig/AutoAddIPC/Set HTTP/1.1
To be added

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
To be added

Error Code

See Response Messages Body and Common error_code for more information.

Protocol Manage

Function

This API is used to get or set Protocol Manage page parameters.

URI

POST /API/ChannelConfig/ProtocolManage/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range, Get, Set.

Range

Function

This API is used to get parameter range for Channel > Protocol Manage page.

Note:

The Range provides reference information for client UI input limits and API request limits. When sending Get and Set requests, the parameters must be strictly limited according to the Range, otherwise the request may be rejected by the device.

Request Message

None.

Sample:

POST /API/ChannelConfig/ProtocolManage/Range HTTP/1.1
To be added

Response Message

Parameter Description

Table 1

ParameterRangeTypeDescription
protocol_infoJSON ObjectJSON show as follow Table 2

Table 2

ParameterRangeTypeDescription
protocol1Json ObjectJSON show as follow Table 3
Json Object
protocol16Json Object

Table 3

ParameterRangeTypeDescription
protocol_nameMax length: 15bytestring
custom_streamJson arrayJSON show as follow Table 4

Table 4

ParameterRangeTypeDescription
stream_name“Mainstream”
“Substream”
string
enableboolThe Substream is available only when the code stream is enabled.
type“Rtsp”string
port1-65535int
source_pathMax length: 119bytestring

Tips:

The response message of the Range request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
To be added.

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get Channel > Protocol Manage page parameters.

Request Message

None.

Sample:

POST /API/ChannelConfig/ProtocolManage/Get HTTP/1.1
To be added

Response Message

See Channel> Protocol Manage > Parameter Description > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
To be added

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set Channel > Protocol Manage page parameters.

Request Message

See Channel > Protocol Manage > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/ChannelConfig/ProtocolManage/Set HTTP/1.1
To be added

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
To be added

Error Code

See Response Messages Body and Common error_code for more information.

Wireless Camera

Function

This API is used to get or set Wireless Camera page parameters.

URI

POST /API/ChannelConfig/WirelessCamera/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range, Get, Set.

Range

Function

This API is used to get parameter range for Channel > Wireless Camera page.

Note:

The Range provides reference information for client UI input limits and API request limits. When sending Get and Set requests, the parameters must be strictly limited according to the Range, otherwise the request may be rejected by the device.

Request Message

None.

Sample:

POST /API/ChannelConfig/WirelessCamera/Range HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 1

ParameterRangeTypeDescription
channel_infoJSON ObjectJSON show as follow Table 2
page_type"ChannelConfig"string

Table 2

ParameterRangeTypeDescription
CH1Json ObjectJSON show as follow Table 3
Json Object
IP_CH1Json Object
Json Object
WIFI_CH1Json Object
Json Object

Table 3

ParameterRangeTypeDescription
channel_nameMax length: 31bytestringChannel name
software_versionMax length: 40bytestringWireless channel version number, read only.
switchbooltrue: enable
false: disable
This switch can only be turned off. (from true to false)
chn_index"CH1"..."CHx"
"IP_CH1"..."IP_CHx"
"WIFI_CH1"..."WIFI_CHx"
string
page"chn_wireChn"string
battery0-100intElectrical value
post_recording"Continuous" "10" "20" "30"stringRecode delay time
pair_state-1 - 7intMatching status of wireless Ipc.

Tips:

The response message of the Range request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {
		"channel_max": 8,
		"channel_info": {
			"type": "object",
			"items": {
				"CH1": {
					"type": "object",
					"items": {
						"channel_name": {
							"type": "string",
							"min_len": 0,
							"max_len": 31
						},
						"software_version": {
							"type": "string",
							"min_len": 0,
							"max_len": 40
						},
						"pair_state": {
							"type": "int32",
							"items": [
								2
							]
						}
					}
				},
				"CH2": {
					"type": "object",
					"items": {
						"channel_name": {
							"type": "string",
							"min_len": 0,
							"max_len": 31
						},
						"software_version": {
							"type": "string",
							"min_len": 0,
							"max_len": 40
						},
						"pair_state": {
							"type": "int32",
							"items": [
								2
							]
						}
					}
				},
				"CH3": {
					"type": "object",
					"items": {
						"channel_name": {
							"type": "string",
							"min_len": 0,
							"max_len": 31
						},
						"software_version": {
							"type": "string",
							"min_len": 0,
							"max_len": 40
						},
						"pair_state": {
							"type": "int32",
							"items": [
								2
							]
						}
					}
				},
				"CH4": {
					"type": "object",
					"items": {
						"channel_name": {
							"type": "string",
							"min_len": 0,
							"max_len": 31
						},
						"software_version": {
							"type": "string",
							"min_len": 0,
							"max_len": 40
						},
						"pair_state": {
							"type": "int32",
							"items": [
								2
							]
						}
					}
				},
				"CH5": {
					"type": "object",
					"items": {
						"channel_name": {
							"type": "string",
							"min_len": 0,
							"max_len": 31
						},
						"software_version": {
							"type": "string",
							"min_len": 0,
							"max_len": 40
						},
						"pair_state": {
							"type": "int32",
							"items": [
								2
							]
						}
					}
				},
				"CH6": {
					"type": "object",
					"items": {
						"channel_name": {
							"type": "string",
							"min_len": 0,
							"max_len": 31
						},
						"software_version": {
							"type": "string",
							"min_len": 0,
							"max_len": 40
						},
						"pair_state": {
							"type": "int32",
							"items": [
								3
							]
						}
					}
				}
			}
		}
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get Channel > Wireless Camera page parameters.

Request Message

None.

Sample:

POST /API/ChannelConfig/WirelessCamera/Get HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

See Channel> Wireless Camera > Parameter Description > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {
		"channel_info": {
			"CH1": {
				"channel_name": "Channel1 1111111",
				"software_version": "V33.21.5.2_220429_50V"
			},
			"CH2": {
				"channel_name": "Channel 2",
				"software_version": "V25.11.5.2_220407"
			},
			"CH3": {
				"channel_name": "Channel 3",
				"software_version": "V21.15.5.2_221207"
			},
			"CH4": {
				"channel_name": "Channel 4",
				"software_version": "V33.21.5.2_220520_50V"
			},
			"CH5": {
				"channel_name": "Channel 5",
				"software_version": "V33.21.5.2_220429_50V"
			},
			"CH6": {
				"channel_name": "Channel 6",
				"software_version": "V41.11.0.1_230706_W-0706"
			}
		}
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set Channel > Wireless Camera page parameters.

Request Message

See Channel > Wireless Camera > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/ChannelConfig/WirelessCamera/Set HTTP/1.1
{
	"version": "1.0",
	"data": {
		"channel_info": {
			"CH1": {
				"channel_name": "Channel1 1111111",
				"software_version": "V33.21.5.2_220429_50V",
				"chn_index": "CH1",
				"page": "chn_wireChn"
			},
			"CH2": {
				"channel_name": "Channel 2",
				"software_version": "V25.11.5.2_220407"
			},
			"CH3": {
				"channel_name": "Channel 3",
				"software_version": "V21.15.5.2_221207"
			},
			"CH4": {
				"channel_name": "Channel 4",
				"software_version": "V33.21.5.2_220520_50V"
			},
			"CH5": {
				"channel_name": "Channel 5",
				"software_version": "V33.21.5.2_220429_50V"
			},
			"CH6": {
				"channel_name": "Channel 6",
				"software_version": "V41.11.0.1_230706_W-0706"
			}
		},
		"page_type": "ChannelConfig"
	}
}

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Image Control

Function

This API is used to get or set Image Control page parameters.

URI

POST  /API/ChannelConfig/ImageControl/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range, Get, Set , Default.

Range

Function

This API is used to get parameter range for Channel > Image Control page.

Note:

The Range provides reference information for client UI input limits and API request limits. When sending Default , Get and Set requests, the parameters must be strictly limited according to the Range, otherwise the request may be rejected by the device.

Request Message

None.

Sample:

POST /API/ChannelConfig/ImageControl/Range HTTP/1.1
{
	"version": "1.0",
	"data": {}
}

Response Message

Parameter Description

Table 1

ParameterRangeTypeDescription
channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…” WIFI_CH1x”
The number of channels depends on the capabilities of the device.
string arrayEach array bit represents a channel with a string.

Table 2

ParameterRangeTypeDescription
channel_infoJSON ObjectChannel Information JSON show as follow Table 3
channel_maxintMaximum number of channels.

Table 3

ParameterRangeTypeDescription
CH1Json ObjectJSON show as follow Table 4
Json Object
IP_CH1Json Object
Json Object
WIFI_CH1Json Object
Json Object

Table 4

ParameterRangeTypeDescription
status"Offline",
"Online"
stringChannel online status, only for digital channels.
Note: This field does not exist when the channel is online.
support_defaultboolWhether to restore the default value.
camera_param_mode“Daylight”
“Night”
stringSupports only night and day.
image_setting"FullColorMode",
"DayNightMode",
"Schedule"
stringMode selection under new full color logic.
FullColorModeJson ObjectFull-color mode parameter structure.
JSON show as follow Table 5
DayNightModeJson ObjectDay-night mode parameter structure.
JSON show as follow Table 6
image_setting_scheduleJSON arraySchedule mode.
DaylightJson ObjectDaytime (or ordinary) parameter structure.
JSON show as follow Table 7
NightJson ObjectNight parameter structure (exists only when the day night parameter mode is supported).
JSON show as follow Table 8
ir_cut_mode"AutoMode" "ColorMode", "BlackWhiteMode", "VideoMode" "TimeSchedule"stringIR-CUT mode (not supported in full color).
ir_cut_mode"Auto" "Day", "Night", "Image" "Schedule"stringIR-CUT mode (supports full color use).
start_timestringStart time
end_timestringEnd time
ir_cut_delay1-36intIr switching delay.
ir_led"Off", "On", "Auto", "Manual",stringIr lamp
low_beam_light1-100intLow light intensity (Ir light manual mode).
high_beam_light1-100intHigh beam intensity (Ir lamp manual mode).
mirror_mode"Close", "VerticalMirroring", "HorizontalMirroring", "All"stringMirror Mode
corridor_mode“Close”,"Open"stringCorridor mode
angle_rotation"0","90","180","270"stringAngular rotation

Table 5

ParameterRangeTypeDescription
white_light"Auto", "Manual", "Schedule", "OFF" 1~100string intFill light mode image fusion ratio.
light_distance0-100intBrightness of the fill light, valid only when (white_light == "Manual").
whitelight_scheduleJSON arrayFill light schedule mode.

Table 6

ParameterRangeTypeDescription
ir_cut_mode"Auto",
"Day",
"Night",
"Image",
"Schedule"
stringIR-CUT mode
ircut_scheduleJSON arraySchedule Mode
ir_cut_delay1-36intIr switching delay
ir_led"Manual",
"SmartIR",
"OFF",
stringIr lamp
low_beam_light0-100intLow light intensity (Ir light manual mode).
high_beam_light0-100intHigh light intensity (Ir light manual mode).

Table 7

ParameterRangeTypeDescription
exposure_mode"Auto",
"Manual",
"ShutterFirst",
"IrisFirst"
stringExposure mode
iris"f1.4","f1.6","f2.0","f2.4",
"f2.8","f3.4","f4.0","f4.8",
"f5.6","f6.8","f9.6","f11",
"f14","f16","f19","f22"
stringAperture
iris_max0-100IntMaximum aperture
iris_min0-100IntMinimum aperture (Less than the maximum aperture)
shutter_min"1/5","1/8","1/15","1/25",
"1/30","1/50","1/60","1/100",
"1/120","1/150","1/180","1/200",
"1/240","1/250","1/300","1/360",
"1/480","1/500","1/600","1/700",
"1/1000","1/1500","1/2000","1/2500",
"1/5000","1/10000","1/12000","1/20000",
"Flickerless",
stringMinimum shutter limit (Less than the maximum shutter limit)
shutter_max"1/5","1/8","1/15","1/25",
"1/30","1/50","1/60","1/100",
"1/120","1/150","1/180","1/200",
"1/240","1/250","1/300","1/360",
"1/480","1/500","1/600","1/700",
"1/1000","1/1500","1/2000","1/2500",
"1/5000","1/10000","1/12000","1/20000",
"Flickerless",
stringMaximum shutter limit
gain1-128(new)/ "Off",
"Low","Middle","High"(old)
int/string(old)Gain, IPC 1-128
angle_rotation"0","90","180","270"stringAngular rotation
shutter_limit"1/5","1/8","1/15","1/25",
"1/30","1/50","1/60","1/100",
"1/120","1/150","1/180","1/200",
"1/240","1/250","1/300","1/360",
"1/480","1/500","1/600","1/700",
"1/1000","1/1500","1/2000","1/2500",
"1/5000","1/10000","1/12000","1/20000",
"Flickerless",
stringShutter Limit (s)
back_light"WDR","HLC","DWDR",
"BacklightCompensation","Close"
stringStand in the light
wdr_hide_ai_areaboolWhether the WDR display is mutually exclusive with the marking-off frame.
wdr_coefficeient0-100、1-255intWide dynamic coefficient.
dwdr_coefficeient0-100、1-255intDigital wide dynamic coefficient.
hlc_strength1-255intStrong light rejection factor.
blc_level1-15IntBacklight compensates for intensity.
back_light_area"Top","Left","Down","Right","Center"stringBacklight compensation area.
white_balance"Auto","Manual", "AutoTracking",
"OnePush", "Indoor","Outdoor",
"FixedSodiumLamp", "FluorescentLamp1",
"FluorescentLamp2", "IncandescentLamp",
"Sunlight"
stringWhite balance Ipc value is "Auto", "Manual", "Indoor".
red_tuning0-100、1-255intRed emphasis quantity.
blue_tuning0-100、1-255intBlue emphasis quantity
green_tuning1-255IntGreen emphasis quantity.
defog_mode"Disable","Auto","Manual"stringFog penetration mode.
defogging_level0-100/(1-255)intFog penetration rating,(IPC:1-255)
denoising"Close","CommonMode", "ExpertMode"
or “Disable”“Auto”,“Manual”
stringNoise reduction switch.
denoising_level0-100/(1-255)intNoise reduction order,(IPC: 1-255).
distort_correct“Close”,"Open"stringDistortion correction.
distort_correct_mode"Auto","Manual"stringDistortion correction mode.
distort_correct_level0-100intDistortion correction grade.

Tips:

  1. The lower limit of color temperature cannot be greater than the upper limit of color temperature
  2. Manual exposure and wide dynamic, strong light suppression, background frequency, backlight compensation mutually exclusive
  3. Automatic exposure mode: wide dynamic and strong light suppression mutually exclusive, slow shutter and wide dynamic, strong light suppression mutually exclusive

Table 8

ParameterRangeTypeDescription
mirror_mode"Close",
"VerticalMirroring",
"HorizontalMirroring",
"All"
stringMirror Mode
corridor_mode“Close”,
"Open"
stringCorridor mode
ir_cut_mode"AutoMode"
"ColorMode",
"BlackWhiteMode",
"VideoMode"/"ImageMode"
"TimeSchedule"
stringIR-CUT Mode
show as follow Table 9
Note: No photosensitive IPC translates VideoMode to ImageMode
ir_cut_delay1-36intIr switching delay
ir_led"Off",
"On",
"Auto",
"Manual",
stringIr lamp,
show as follow Table 10
image_sensitivity"Low",
"Middle",
"High"
stringNon-photosensitive control sensitivity, support non-photosensitive equipment use.
exposure_mode"Auto",
"Manual",
"ShutterFirst",
"IrisFirst"
stringexposure mode
iris"f1.4","f1.6","f2.0","f2.4","f2.8",
"f3.4","f4.0","f4.8","f5.6","f6.8",
"f9.6","f11","f14","f16","f19","f22"
stringAperture
iris_max0-100IntMaximum aperture
iris_min0-100IntMinimum aperture (Less than the maximum aperture)
gain1-128(new)/ "Off",
"Low","Middle","High"(old)
int/string(old)Gain, IPC 1-128
angle_rotation"0","90","180","270"stringAngular rotation
shutter_limit(s)"1/5","1/8","1/15","1/25","1/30",
"1/50","1/60","1/100","1/120","1/150",
"1/180","1/200","1/240","1/250","1/300",
"1/360","1/480","1/500","1/600","1/700",
"1/1000","1/1500","1/2000","1/2500","1/5000",
"1/10000","1/12000","1/20000","Flickerless",
stringShutter limit
back_light"WDR",
"HLC",
"BacklightCompensation",
"Close"
stringBacklight
wdr_coefficeient0-100、1-255intWide dynamic coefficient.
hlc_coefficeient1-255string /intIPC is 1-255.
hlc_strength1-255intStrong light rejection factor.
blc_level1-15IntBacklight compensates for intensity.
back_light_area"Top","Left","Down","Right","Center"stringBacklight compensation area.
white_balance"Auto","Manual", "AutoTracking",
"OnePush", "Indoor","Outdoor", "FixedSodiumLamp", "FluorescentLamp1",
"FluorescentLamp2", "IncandescentLamp",
"Sunlight"
stringWhite balance Ipc value is "Auto", "Manual", "Indoor"
red_tuning0-100、1-255intRed emphasis quantity
green_tuning1-255IntGreen emphasis quantity
defog_mode"Disable","Auto","Manual"stringFog penetration mode
defogging_level0-100/(1-255)intFog penetration rating,(IPC:1-255)
denoising"Close","CommonMode", "ExpertMode"
or “Disable”“Auto”,“Manual”
stringNoise reduction switch.
denoising_level0-100/(1-255)intNoise reduction order,(IPC: 1-255).
distort_correct“Close”,"Open"stringDistortion correction.
distort_correct_mode"Auto","Manual"stringDistortion correction mode.
distort_correct_level0-100intDistortion correction grade.
support_defaultboolWhether to restore the default value.

Tips:

  1. The lower limit of color temperature cannot be greater than the upper limit of color temperature
  2. Manual exposure and wide dynamic, strong light suppression, background frequency, backlight compensation mutually exclusive
  3. Automatic exposure mode: wide dynamic and strong light suppression mutually exclusive, slow shutter and wide dynamic, strong light suppression mutually exclusive

Table 9

ParameterRangeTypeDescription
start_timestringStart time
end_timestringEnd time

Table 10

ParameterRangeTypeDescription
low_beam_light1-100intLow light intensity
high_beam_light1-100intHigh light intensity

Tips:

The response message of the Range request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {
		"channel_max": 16,
		"channel_info": {
			"type": "object",
			"items": {
				"CH1": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"support_default": {
							"type": "bool"
						},
						"ir_cut_mode": {
							"type": "string",
							"items": []
						},
						"image_sensitivity": {
							"type": "int32",
							"items": [
								0,
								1,
								2,
								3
							]
						},
						"mirror_mode": {
							"type": "string",
							"items": [
								"Close",
								"VerticalMirroring",
								"HorizontalMirroring",
								"All"
							]
						},
						"angle_rotation": {
							"type": "string",
							"items": [
								"0",
								"180"
							]
						},
						"camera_param_mode": {
							"type": "string",
							"items": [
								"Daylight",
								"Night"
							]
						},
						"back_light": {
							"type": "string",
							"items": [
								"WDR",
								"BacklightCompensation",
								"Close"
							]
						},
						"blc_level": {
							"type": "int32",
							"min": 1,
							"max": 15
						},
						"back_light_area": {
							"type": "string",
							"items": [
								"Top",
								"Left",
								"Down",
								"Right",
								"Center"
							]
						},
						"wdr_coefficeient": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"denoising": {
							"type": "string",
							"items": [
								"Disable",
								"Auto",
								"Manual"
							]
						},
						"denoising_level": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"gain": {
							"type": "string",
							"items": [
								"Off",
								"Low",
								"Middle",
								"High"
							]
						},
						"white_balance": {
							"type": "string",
							"items": [
								"Auto",
								"Manual",
								"Indoor"
							]
						},
						"red_tuning": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"green_tuning": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"blue_tuning": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"exposure_mode": {
							"type": "string",
							"items": [
								"Auto",
								"Manual"
							]
						},
						"shutter_limit": {
							"type": "string",
							"items": [
								"1/5",
								"1/8",
								"1/15",
								"1/30",
								"1/60",
								"1/120",
								"1/150",
								"1/180",
								"1/200",
								"1/240",
								"1/250",
								"1/300",
								"1/360",
								"1/480",
								"1/500",
								"1/600",
								"1/700",
								"1/1000",
								"1/1500",
								"1/2500",
								"1/5000",
								"1/10000",
								"1/12000",
								"1/20000",
								"Flickerless"
							]
						},
						"wdr_hide_ai_area": {
							"type": "bool"
						}
					}
				},
				"CH2": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"support_default": {
							"type": "bool"
						},
						"ir_cut_mode": {
							"type": "string",
							"items": []
						},
						"ir_cut_delay": {
							"type": "int32",
							"min": 1,
							"max": 36
						},
						"mirror_mode": {
							"type": "string",
							"items": [
								"Close",
								"VerticalMirroring",
								"HorizontalMirroring",
								"All"
							]
						},
						"back_light": {
							"type": "string",
							"items": [
								"WDR",
								"BacklightCompensation",
								"Close"
							]
						},
						"blc_level": {
							"type": "string",
							"items": [
								"Low",
								"Middle",
								"High"
							]
						},
						"wdr_coefficeient": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"denoising": {
							"type": "string",
							"items": [
								"Disable",
								"Auto",
								"Manual"
							]
						},
						"denoising_level": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"gain": {
							"type": "string",
							"items": [
								"Off",
								"Low",
								"Middle",
								"High"
							]
						},
						"white_balance": {
							"type": "string",
							"items": [
								"Auto",
								"Manual",
								"Indoor"
							]
						},
						"red_tuning": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"green_tuning": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"blue_tuning": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"exposure_mode": {
							"type": "string",
							"items": [
								"Auto",
								"Manual"
							]
						},
						"shutter_limit": {
							"type": "string",
							"items": [
								"1/5",
								"1/8",
								"1/15",
								"1/25",
								"1/50",
								"1/100",
								"1/150",
								"1/180",
								"1/200",
								"1/240",
								"1/250",
								"1/300",
								"1/360",
								"1/480",
								"1/500",
								"1/600",
								"1/700",
								"1/1000",
								"1/1500",
								"1/2500",
								"1/5000",
								"1/10000",
								"1/12000",
								"1/20000"
							]
						},
						"wdr_hide_ai_area": {
							"type": "bool"
						}
					}
				},
				"CH5": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"support_default": {
							"type": "bool"
						},
						"ir_cut_mode": {
							"type": "string",
							"items": []
						},
						"ir_cut_delay": {
							"type": "int32",
							"min": 1,
							"max": 36
						},
						"mirror_mode": {
							"type": "string",
							"items": [
								"Close",
								"VerticalMirroring",
								"HorizontalMirroring",
								"All"
							]
						},
						"back_light": {
							"type": "string",
							"items": [
								"WDR",
								"BacklightCompensation",
								"Close"
							]
						},
						"blc_level": {
							"type": "string",
							"items": [
								"Low",
								"Middle",
								"High"
							]
						},
						"wdr_coefficeient": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"denoising": {
							"type": "string",
							"items": [
								"Disable",
								"Auto",
								"Manual"
							]
						},
						"denoising_level": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"gain": {
							"type": "string",
							"items": [
								"Off",
								"Low",
								"Middle",
								"High"
							]
						},
						"white_balance": {
							"type": "string",
							"items": [
								"Auto",
								"Manual",
								"Indoor"
							]
						},
						"red_tuning": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"green_tuning": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"blue_tuning": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"exposure_mode": {
							"type": "string",
							"items": [
								"Auto",
								"Manual"
							]
						},
						"shutter_limit": {
							"type": "string",
							"items": [
								"1/5",
								"1/8",
								"1/15",
								"1/25",
								"1/50",
								"1/100",
								"1/150",
								"1/180",
								"1/200",
								"1/240",
								"1/250",
								"1/300",
								"1/360",
								"1/480",
								"1/500",
								"1/600",
								"1/700",
								"1/1000",
								"1/1500",
								"1/2500",
								"1/5000",
								"1/10000",
								"1/12000",
								"1/20000"
							]
						},
						"wdr_hide_ai_area": {
							"type": "bool"
						}
					}
				},
				"CH6": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"support_default": {
							"type": "bool"
						},
						"ir_cut_mode": {
							"type": "string",
							"items": []
						},
						"ir_cut_delay": {
							"type": "int32",
							"min": 1,
							"max": 36
						},
						"mirror_mode": {
							"type": "string",
							"items": [
								"Close",
								"VerticalMirroring",
								"HorizontalMirroring",
								"All"
							]
						},
						"back_light": {
							"type": "string",
							"items": [
								"WDR",
								"BacklightCompensation",
								"Close"
							]
						},
						"blc_level": {
							"type": "int32",
							"min": 1,
							"max": 15
						},
						"back_light_area": {
							"type": "string",
							"items": [
								"Top",
								"Left",
								"Down",
								"Right",
								"Center"
							]
						},
						"wdr_coefficeient": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"denoising": {
							"type": "string",
							"items": [
								"Disable",
								"Auto",
								"Manual"
							]
						},
						"denoising_level": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"gain": {
							"type": "int32",
							"min": 1,
							"max": 128
						},
						"white_balance": {
							"type": "string",
							"items": [
								"Auto",
								"Manual",
								"Indoor"
							]
						},
						"red_tuning": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"green_tuning": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"blue_tuning": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"exposure_mode": {
							"type": "string",
							"items": [
								"Auto",
								"Manual"
							]
						},
						"shutter_limit": {
							"type": "string",
							"items": [
								"1/5",
								"1/8",
								"1/15",
								"1/30",
								"1/60",
								"1/120",
								"1/150",
								"1/180",
								"1/200",
								"1/240",
								"1/250",
								"1/300",
								"1/360",
								"1/480",
								"1/500",
								"1/600",
								"1/700",
								"1/1000",
								"1/1500",
								"1/2500",
								"1/5000",
								"1/10000",
								"1/12000",
								"1/20000"
							]
						},
						"wdr_hide_ai_area": {
							"type": "bool"
						}
					}
				},
				"CH7": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"support_default": {
							"type": "bool"
						},
						"ir_cut_mode": {
							"type": "string",
							"items": []
						},
						"ir_cut_delay": {
							"type": "int32",
							"min": 1,
							"max": 36
						},
						"mirror_mode": {
							"type": "string",
							"items": [
								"Close",
								"VerticalMirroring",
								"HorizontalMirroring",
								"All"
							]
						},
						"back_light": {
							"type": "string",
							"items": [
								"DWDR",
								"BacklightCompensation",
								"Close"
							]
						},
						"blc_level": {
							"type": "int32",
							"min": 1,
							"max": 15
						},
						"back_light_area": {
							"type": "string",
							"items": [
								"Top",
								"Left",
								"Down",
								"Right",
								"Center"
							]
						},
						"dwdr_coefficeient": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"denoising": {
							"type": "string",
							"items": [
								"Disable",
								"Auto",
								"Manual"
							]
						},
						"denoising_level": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"gain": {
							"type": "int32",
							"min": 1,
							"max": 128
						},
						"white_balance": {
							"type": "string",
							"items": [
								"Auto",
								"Manual",
								"Indoor"
							]
						},
						"red_tuning": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"green_tuning": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"blue_tuning": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"exposure_mode": {
							"type": "string",
							"items": [
								"Auto",
								"Manual"
							]
						},
						"shutter_limit": {
							"type": "string",
							"items": [
								"1/5",
								"1/8",
								"1/15",
								"1/30",
								"1/60",
								"1/120",
								"1/150",
								"1/180",
								"1/200",
								"1/240",
								"1/250",
								"1/300",
								"1/360",
								"1/480",
								"1/500",
								"1/600",
								"1/700",
								"1/1000",
								"1/1500",
								"1/2500",
								"1/5000",
								"1/10000",
								"1/12000",
								"1/20000"
							]
						},
						"wdr_hide_ai_area": {
							"type": "bool"
						}
					}
				},
				"CH9": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"support_default": {
							"type": "bool"
						},
						"ir_cut_mode": {
							"type": "string",
							"items": []
						},
						"ir_cut_delay": {
							"type": "int32",
							"min": 1,
							"max": 36
						},
						"mirror_mode": {
							"type": "string",
							"items": [
								"Close",
								"VerticalMirroring",
								"HorizontalMirroring",
								"All"
							]
						},
						"back_light": {
							"type": "string",
							"items": [
								"WDR",
								"BacklightCompensation",
								"Close"
							]
						},
						"blc_level": {
							"type": "string",
							"items": [
								"Low",
								"Middle",
								"High"
							]
						},
						"wdr_coefficeient": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"denoising": {
							"type": "string",
							"items": [
								"Disable",
								"Auto",
								"Manual"
							]
						},
						"denoising_level": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"gain": {
							"type": "string",
							"items": [
								"Off",
								"Low",
								"Middle",
								"High"
							]
						},
						"white_balance": {
							"type": "string",
							"items": [
								"Auto",
								"Manual",
								"Indoor"
							]
						},
						"red_tuning": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"green_tuning": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"blue_tuning": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"exposure_mode": {
							"type": "string",
							"items": [
								"Auto",
								"Manual"
							]
						},
						"shutter_limit": {
							"type": "string",
							"items": [
								"1/5",
								"1/8",
								"1/15",
								"1/25",
								"1/50",
								"1/100",
								"1/150",
								"1/180",
								"1/200",
								"1/240",
								"1/250",
								"1/300",
								"1/360",
								"1/480",
								"1/500",
								"1/600",
								"1/700",
								"1/1000",
								"1/1500",
								"1/2500",
								"1/5000",
								"1/10000",
								"1/12000",
								"1/20000"
							]
						},
						"wdr_hide_ai_area": {
							"type": "bool"
						}
					}
				},
				"CH10": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"support_default": {
							"type": "bool"
						},
						"ir_cut_mode": {
							"type": "string",
							"items": []
						},
						"ir_cut_delay": {
							"type": "int32",
							"min": 1,
							"max": 36
						},
						"mirror_mode": {
							"type": "string",
							"items": [
								"Close",
								"VerticalMirroring",
								"HorizontalMirroring",
								"All"
							]
						},
						"back_light": {
							"type": "string",
							"items": [
								"WDR",
								"BacklightCompensation",
								"Close"
							]
						},
						"blc_level": {
							"type": "string",
							"items": [
								"Low",
								"Middle",
								"High"
							]
						},
						"wdr_coefficeient": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"denoising": {
							"type": "string",
							"items": [
								"Disable",
								"Auto",
								"Manual"
							]
						},
						"denoising_level": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"gain": {
							"type": "string",
							"items": [
								"Off",
								"Low",
								"Middle",
								"High"
							]
						},
						"white_balance": {
							"type": "string",
							"items": [
								"Auto",
								"Manual",
								"Indoor"
							]
						},
						"red_tuning": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"green_tuning": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"blue_tuning": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"exposure_mode": {
							"type": "string",
							"items": [
								"Auto",
								"Manual"
							]
						},
						"shutter_limit": {
							"type": "string",
							"items": [
								"1/5",
								"1/8",
								"1/15",
								"1/25",
								"1/50",
								"1/100",
								"1/150",
								"1/180",
								"1/200",
								"1/240",
								"1/250",
								"1/300",
								"1/360",
								"1/480",
								"1/500",
								"1/600",
								"1/700",
								"1/1000",
								"1/1500",
								"1/2500",
								"1/5000",
								"1/10000",
								"1/12000",
								"1/20000"
							]
						},
						"wdr_hide_ai_area": {
							"type": "bool"
						}
					}
				},
				"CH11": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"support_default": {
							"type": "bool"
						},
						"ir_cut_mode": {
							"type": "string",
							"items": []
						},
						"image_sensitivity": {
							"type": "int32",
							"items": [
								0,
								1,
								2,
								3
							]
						},
						"mirror_mode": {
							"type": "string",
							"items": [
								"Close",
								"VerticalMirroring",
								"HorizontalMirroring",
								"All"
							]
						},
						"angle_rotation": {
							"type": "string",
							"items": [
								"0",
								"180"
							]
						},
						"back_light": {
							"type": "string",
							"items": [
								"DWDR",
								"BacklightCompensation",
								"Close"
							]
						},
						"blc_level": {
							"type": "int32",
							"min": 1,
							"max": 15
						},
						"back_light_area": {
							"type": "string",
							"items": [
								"Top",
								"Left",
								"Down",
								"Right",
								"Center"
							]
						},
						"dwdr_coefficeient": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"denoising": {
							"type": "string",
							"items": [
								"Disable",
								"Auto",
								"Manual"
							]
						},
						"denoising_level": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"gain": {
							"type": "int32",
							"min": 1,
							"max": 128
						},
						"white_balance": {
							"type": "string",
							"items": [
								"Auto",
								"Manual",
								"Indoor"
							]
						},
						"red_tuning": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"green_tuning": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"blue_tuning": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"exposure_mode": {
							"type": "string",
							"items": [
								"Auto",
								"Manual"
							]
						},
						"shutter_limit": {
							"type": "string",
							"items": [
								"1/5",
								"1/8",
								"1/15",
								"1/30",
								"1/60",
								"1/120",
								"1/150",
								"1/180",
								"1/200",
								"1/240",
								"1/250",
								"1/300",
								"1/360",
								"1/480",
								"1/500",
								"1/600",
								"1/700",
								"1/1000",
								"1/1500",
								"1/2500",
								"1/5000",
								"1/10000",
								"1/12000",
								"1/20000",
								"Flickerless"
							]
						},
						"wdr_hide_ai_area": {
							"type": "bool"
						}
					}
				},
				"CH12": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"support_default": {
							"type": "bool"
						},
						"ir_cut_mode": {
							"type": "string",
							"items": []
						},
						"ir_cut_delay": {
							"type": "int32",
							"min": 1,
							"max": 36
						},
						"mirror_mode": {
							"type": "string",
							"items": [
								"Close",
								"VerticalMirroring",
								"HorizontalMirroring",
								"All"
							]
						},
						"back_light": {
							"type": "string",
							"items": [
								"WDR",
								"BacklightCompensation",
								"Close"
							]
						},
						"blc_level": {
							"type": "string",
							"items": [
								"Low",
								"Middle",
								"High"
							]
						},
						"wdr_coefficeient": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"denoising": {
							"type": "string",
							"items": [
								"Disable",
								"Auto",
								"Manual"
							]
						},
						"denoising_level": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"gain": {
							"type": "string",
							"items": [
								"Off",
								"Low",
								"Middle",
								"High"
							]
						},
						"white_balance": {
							"type": "string",
							"items": [
								"Auto",
								"Manual",
								"Indoor"
							]
						},
						"red_tuning": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"green_tuning": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"blue_tuning": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"exposure_mode": {
							"type": "string",
							"items": [
								"Auto",
								"Manual"
							]
						},
						"shutter_limit": {
							"type": "string",
							"items": [
								"1/5",
								"1/8",
								"1/15",
								"1/25",
								"1/50",
								"1/100",
								"1/150",
								"1/180",
								"1/200",
								"1/240",
								"1/250",
								"1/300",
								"1/360",
								"1/480",
								"1/500",
								"1/600",
								"1/700",
								"1/1000",
								"1/1500",
								"1/2500",
								"1/5000",
								"1/10000",
								"1/12000",
								"1/20000"
							]
						},
						"wdr_hide_ai_area": {
							"type": "bool"
						}
					}
				},
				"CH13": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"support_default": {
							"type": "bool"
						},
						"ir_cut_mode": {
							"type": "string",
							"items": []
						},
						"ir_cut_delay": {
							"type": "int32",
							"min": 1,
							"max": 36
						},
						"mirror_mode": {
							"type": "string",
							"items": [
								"Close",
								"VerticalMirroring",
								"HorizontalMirroring",
								"All"
							]
						},
						"back_light": {
							"type": "string",
							"items": [
								"WDR",
								"BacklightCompensation",
								"Close"
							]
						},
						"blc_level": {
							"type": "string",
							"items": [
								"Low",
								"Middle",
								"High"
							]
						},
						"wdr_coefficeient": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"denoising": {
							"type": "string",
							"items": [
								"Disable",
								"Auto",
								"Manual"
							]
						},
						"denoising_level": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"gain": {
							"type": "string",
							"items": [
								"Off",
								"Low",
								"Middle",
								"High"
							]
						},
						"white_balance": {
							"type": "string",
							"items": [
								"Auto",
								"Manual",
								"Indoor"
							]
						},
						"red_tuning": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"green_tuning": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"blue_tuning": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"exposure_mode": {
							"type": "string",
							"items": [
								"Auto",
								"Manual"
							]
						},
						"shutter_limit": {
							"type": "string",
							"items": [
								"1/5",
								"1/8",
								"1/15",
								"1/25",
								"1/50",
								"1/100",
								"1/150",
								"1/180",
								"1/200",
								"1/240",
								"1/250",
								"1/300",
								"1/360",
								"1/480",
								"1/500",
								"1/600",
								"1/700",
								"1/1000",
								"1/1500",
								"1/2500",
								"1/5000",
								"1/10000",
								"1/12000",
								"1/20000"
							]
						},
						"wdr_hide_ai_area": {
							"type": "bool"
						}
					}
				},
				"CH14": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"support_default": {
							"type": "bool"
						},
						"ir_cut_mode": {
							"type": "string",
							"items": [
								"AutoMode",
								"ColorMode",
								"BlackWhiteMode",
								"TimeSchedule"
							]
						},
						"start_time": {
							"description": "When ir-cut_mode is Schedule(B/W) has this variable.",
							"type": "string",
							"len": 5
						},
						"end_time": {
							"description": "When ir-cut_mode is Schedule(B/W) has this variable.",
							"type": "string",
							"len": 5
						},
						"ir_cut_delay": {
							"type": "int32",
							"min": 1,
							"max": 36
						},
						"ir_led": {
							"type": "string",
							"items": [
								"Off",
								"On",
								"Auto"
							]
						},
						"mirror_mode": {
							"type": "string",
							"items": [
								"Close",
								"VerticalMirroring",
								"HorizontalMirroring",
								"All"
							]
						},
						"angle_rotation": {
							"type": "string",
							"items": [
								"0",
								"180"
							]
						},
						"back_light": {
							"type": "string",
							"items": [
								"DWDR",
								"HLC",
								"BacklightCompensation",
								"Close"
							]
						},
						"blc_level": {
							"type": "int32",
							"min": 1,
							"max": 15
						},
						"back_light_area": {
							"type": "string",
							"items": [
								"Top",
								"Left",
								"Down",
								"Right",
								"Center"
							]
						},
						"dwdr_coefficeient": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"hlc_strength": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"denoising": {
							"type": "string",
							"items": [
								"Disable",
								"Auto",
								"Manual"
							]
						},
						"denoising_level": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"gain": {
							"type": "int32",
							"min": 1,
							"max": 128
						},
						"white_balance": {
							"type": "string",
							"items": [
								"Auto",
								"Manual"
							]
						},
						"red_tuning": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"green_tuning": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"blue_tuning": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"exposure_mode": {
							"type": "string",
							"items": [
								"Auto",
								"Manual"
							]
						},
						"shutter_limit": {
							"type": "string",
							"items": [
								"1/5",
								"1/8",
								"1/15",
								"1/30",
								"1/60",
								"1/120",
								"1/150",
								"1/180",
								"1/200",
								"1/240",
								"1/250",
								"1/300",
								"1/360",
								"1/480",
								"1/500",
								"1/600",
								"1/700",
								"1/1000",
								"1/1500",
								"1/2500",
								"1/5000",
								"1/10000",
								"1/12000",
								"1/20000"
							]
						},
						"defog_mode": {
							"type": "string",
							"items": [
								"Disable",
								"Auto",
								"Manual"
							]
						},
						"defogging_level": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"wdr_hide_ai_area": {
							"type": "bool"
						}
					}
				},
				"CH15": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"support_default": {
							"type": "bool"
						},
						"ir_cut_mode": {
							"type": "string",
							"items": [
								"Auto",
								"Day",
								"Night",
								"Image",
								"Schedule"
							]
						},
						"start_time": {
							"description": "When ir-cut_mode is Schedule(B/W) has this variable.",
							"type": "string",
							"len": 5
						},
						"end_time": {
							"description": "When ir-cut_mode is Schedule(B/W) has this variable.",
							"type": "string",
							"len": 5
						},
						"ir_led": {
							"type": "string",
							"items": [
								"Manual",
								"SmartIR",
								"OFF"
							]
						},
						"low_beam_light": {
							"type": "int32",
							"min": 0,
							"max": 100
						},
						"mirror_mode": {
							"type": "string",
							"items": [
								"Close",
								"VerticalMirroring",
								"HorizontalMirroring",
								"All"
							]
						},
						"corridor_mode": {
							"type": "string",
							"items": [
								"Close",
								"Open"
							]
						},
						"angle_rotation": {
							"type": "string",
							"items": [
								"0",
								"180"
							]
						},
						"back_light": {
							"type": "string",
							"items": [
								"DWDR",
								"HLC",
								"BacklightCompensation",
								"Close"
							]
						},
						"blc_level": {
							"type": "int32",
							"min": 1,
							"max": 15
						},
						"back_light_area": {
							"type": "string",
							"items": [
								"Top",
								"Left",
								"Down",
								"Right",
								"Center"
							]
						},
						"dwdr_coefficeient": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"hlc_strength": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"denoising": {
							"type": "string",
							"items": [
								"Disable",
								"Auto",
								"Manual"
							]
						},
						"denoising_level": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"white_balance": {
							"type": "string",
							"items": [
								"Auto",
								"Manual"
							]
						},
						"red_tuning": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"green_tuning": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"blue_tuning": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"exposure_mode": {
							"type": "string",
							"items": [
								"Auto",
								"Manual",
								"ShutterFirst",
								"IrisFirst"
							]
						},
						"iris_max": {
							"type": "int32",
							"min": 0,
							"max": 100
						},
						"iris_min": {
							"type": "int32",
							"min": 0,
							"max": 100
						},
						"iris": {
							"type": "string",
							"items": [
								"f5.6",
								"f4.0",
								"f2.8",
								"f2.0",
								"f1.4"
							]
						},
						"shutter_max": {
							"type": "string",
							"items": [
								"1/5",
								"1/8",
								"1/15",
								"1/25",
								"1/30",
								"1/50",
								"1/60",
								"1/100",
								"1/120",
								"1/150",
								"1/180",
								"1/200",
								"1/240",
								"1/250",
								"1/300",
								"1/360",
								"1/480",
								"1/500",
								"1/600",
								"1/700",
								"1/1000",
								"1/1500",
								"1/2500",
								"1/5000",
								"1/10000",
								"1/12000",
								"1/20000"
							]
						},
						"shutter_min": {
							"type": "string",
							"items": [
								"1/5",
								"1/8",
								"1/15",
								"1/25",
								"1/30",
								"1/50",
								"1/60",
								"1/100",
								"1/120",
								"1/150",
								"1/180",
								"1/200",
								"1/240",
								"1/250",
								"1/300",
								"1/360",
								"1/480",
								"1/500",
								"1/600",
								"1/700",
								"1/1000",
								"1/1500",
								"1/2500",
								"1/5000",
								"1/10000",
								"1/12000",
								"1/20000"
							]
						},
						"shutter_limit": {
							"type": "string",
							"items": [
								"1/5",
								"1/8",
								"1/15",
								"1/30",
								"1/60",
								"1/120",
								"1/150",
								"1/180",
								"1/200",
								"1/240",
								"1/250",
								"1/300",
								"1/360",
								"1/480",
								"1/500",
								"1/600",
								"1/700",
								"1/1000",
								"1/1500",
								"1/2500",
								"1/5000",
								"1/10000",
								"1/12000",
								"1/20000",
								"Flickerless"
							]
						},
						"wdr_hide_ai_area": {
							"type": "bool"
						},
						"image_setting": {
							"type": "string",
							"items": [
								"FullColorMode",
								"DayNightMode",
								"Schedule",
								"SmartIllumination"
							]
						},
						"white_light": {
							"type": "string",
							"items": [
								"Auto",
								"Manual",
								"Schedule",
								"OFF"
							]
						},
						"light_distance": {
							"type": "int32",
							"min": 0,
							"max": 100
						},
						"image_sensitivity": {
							"type": "int32",
							"items": [
								0,
								1,
								2,
								3
							]
						}
					}
				},
				"CH16": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"support_default": {
							"type": "bool"
						},
						"ir_cut_mode": {
							"type": "string",
							"items": []
						},
						"image_sensitivity": {
							"type": "int32",
							"items": [
								0,
								1,
								2,
								3
							]
						},
						"mirror_mode": {
							"type": "string",
							"items": [
								"Close",
								"VerticalMirroring",
								"HorizontalMirroring",
								"All"
							]
						},
						"angle_rotation": {
							"type": "string",
							"items": [
								"0",
								"180"
							]
						},
						"back_light": {
							"type": "string",
							"items": [
								"DWDR",
								"BacklightCompensation",
								"Close"
							]
						},
						"blc_level": {
							"type": "int32",
							"min": 1,
							"max": 15
						},
						"back_light_area": {
							"type": "string",
							"items": [
								"Top",
								"Left",
								"Down",
								"Right",
								"Center"
							]
						},
						"dwdr_coefficeient": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"denoising": {
							"type": "string",
							"items": [
								"Disable",
								"Auto",
								"Manual"
							]
						},
						"denoising_level": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"gain": {
							"type": "int32",
							"min": 1,
							"max": 128
						},
						"white_balance": {
							"type": "string",
							"items": [
								"Auto",
								"Manual",
								"Indoor"
							]
						},
						"red_tuning": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"green_tuning": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"blue_tuning": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"exposure_mode": {
							"type": "string",
							"items": [
								"Auto",
								"Manual"
							]
						},
						"shutter_limit": {
							"type": "string",
							"items": [
								"1/5",
								"1/8",
								"1/15",
								"1/30",
								"1/60",
								"1/120",
								"1/150",
								"1/180",
								"1/200",
								"1/240",
								"1/250",
								"1/300",
								"1/360",
								"1/480",
								"1/500",
								"1/600",
								"1/700",
								"1/1000",
								"1/1500",
								"1/2500",
								"1/5000",
								"1/10000",
								"1/12000",
								"1/20000",
								"Flickerless"
							]
						},
						"wdr_hide_ai_area": {
							"type": "bool"
						}
					}
				}
			}
		},
		"default_timeout": 60000
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get Channel > Image Control page parameters.

Request Message

None.

Sample:

POST /API/ChannelConfig/ImageControl/Get HTTP/1.1
{
	"version": "1.0",
	"data": {}
}

Response Message

See Channel> Image Control > Parameter Description > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {
		"channel_info": {
			"CH1": {
				"status": "Offline"
			},
			"CH2": {
				"status": "Offline"
			},
			"CH5": {
				"status": "Offline"
			},
			"CH6": {
				"status": "Offline"
			},
			"CH7": {
				"status": "Offline"
			},
			"CH9": {
				"status": "Offline"
			},
			"CH10": {
				"status": "Offline"
			},
			"CH11": {
				"status": "Offline"
			},
			"CH12": {
				"status": "Offline"
			},
			"CH13": {
				"status": "Offline"
			},
			"CH14": {
				"support_default": true,
				"ir_cut_mode": "AutoMode",
				"start_time": "00:00",
				"end_time": "00:00",
				"ir_cut_delay": 2,
				"ir_led": "Auto",
				"mirror_mode": "Close",
				"angle_rotation": "0",
				"Daylight": {
					"back_light": "Close",
					"denoising": "Auto",
					"denoising_level": 128,
					"gain": 64,
					"white_balance": "Auto",
					"red_tuning": 44,
					"green_tuning": 27,
					"blue_tuning": 54,
					"exposure_mode": "Auto",
					"shutter_limit": "1/8",
					"defog_mode": "Disable",
					"defogging_level": 128
				},
				"wdr_hide_ai_area": false
			},
			"CH15": {
				"support_default": true,
				"mirror_mode": "Close",
				"corridor_mode": "Close",
				"angle_rotation": "0",
				"Daylight": {
					"back_light": "Close",
					"denoising": "Auto",
					"denoising_level": 128,
					"white_balance": "Auto",
					"red_tuning": 44,
					"green_tuning": 27,
					"blue_tuning": 54,
					"exposure_mode": "Auto",
					"iris_max": 100,
					"iris_min": 0,
					"shutter_max": "1/5",
					"shutter_min": "1/20000"
				},
				"wdr_hide_ai_area": false,
				"image_setting": "FullColorMode",
				"FullColorMode": {
					"white_light": "Auto",
					"image_sensitivity": 1
				}
			},
			"CH16": {
				"status": "Offline"
			}
		}
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set Channel > Image Control page parameters.

Request Message

See Channel > Image Control > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/ChannelConfig/ImageControl/Set HTTP/1.1
{
	"version": "1.0",
	"data": {
		"channel_info": {
			"CH3": {
				"support_default": true,
				"ir_cut_mode": "ImageMode",
				"image_sensitivity": 1,
				"ir_led": "Auto",
				"mirror_mode": "Close",
				"corridor_mode": "Close",
				"angle_rotation": "0",
				"Daylight": {
					"back_light": "Close",
					"denoising": "Auto",
					"denoising_level": 128,
					"gain": 64,
					"white_balance": "Auto",
					"red_tuning": 44,
					"green_tuning": 27,
					"blue_tuning": 54,
					"exposure_mode": "Auto",
					"shutter_limit": "1/8"
				},
				"wdr_hide_ai_area": false,
				"Night": {
					"back_light": "Close",
					"denoising": "Auto",
					"denoising_level": 128,
					"gain": 64,
					"white_balance": "Auto",
					"red_tuning": 44,
					"green_tuning": 27,
					"blue_tuning": 54,
					"exposure_mode": "Auto",
					"shutter_limit": "1/8"
				},
				"camera_param_mode": "Daylight",
				"chn_index": "CH3",
				"page": "chn_imgCtrl"
			}
		}
	}
}

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Default

Function

This API is used to get Channel > Image Control page parameters.

Request Message

See Channel> Image Control > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/ChannelConfig/ImageControl/Default HTTP/1.1
{
	"version": "1.0",
	"data": {
		"channel": [
			"CH14"
		]
	}
}

Response Message

See Channel> Image Control > Parameter Description > Table 2 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {
		"channel_info": {
			"CH14": {
				"ir_cut_mode": "AutoMode",
				"start_time": "00:00",
				"end_time": "00:00",
				"ir_cut_delay": 2,
				"ir_led": "Auto",
				"low_beam_light": 100,
				"high_beam_light": 100,
				"mirror_mode": "Close",
				"back_light": "Close",
				"denoising": "Auto",
				"denoising_level": 128,
				"gain": 64,
				"white_balance": "Auto",
				"red_tuning": 44,
				"green_tuning": 27,
				"blue_tuning": 54,
				"exposure_mode": "Auto",
				"shutter_limit": "1/8",
				"defog_mode": "Disable",
				"defogging_level": 128,
				"support_default": true
			}
		}
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

OSD

Function

This API is used to get or set Video Cover page parameters.

URI

POST  /API/ChannelConfig/OSD/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range, Get, Set.

Range

Function

This API is used to get parameter range for Channel > OSD page.

Note:

The Range provides reference information for client UI input limits and API request limits. When sending Get and Set requests, the parameters must be strictly limited according to the Range, otherwise the request may be rejected by the device.

Request Message

None.

Sample:

POST /API/ChannelConfig/OSD/Range HTTP/1.1
{
	"version": "1.0",
	"data": {}
}

Response Message

Parameter Description

Table 1

ParameterRangeTypeDescription
channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…” WIFI_CH1x”
The number of channels depends on the capabilities of the device.
string arrayEach array bit represents a channel with a string.

Table 2

ParameterRangeTypeDescription
channel_infoJSON ObjectChannel Information JSON show as follow Table 3

Table 3

ParameterRangeTypeDescription
CH1Json ObjectJSON show as follow Table 4
Json Object
IP_CH1Json Object
Json Object
WIFI_CH1Json Object
Json Object

Table 4

ParameterRangeTypeDescription
status"Offline",
"Online"
stringChannel online status, only for digital channels.
Note: This field does not exist when the channel is online.
nameJSON ObjectJSON show as follow Table 5
datetimeJSON ObjectJSON show as follow Table 6
alarmJSON ObjectJSON show as follow Table 7
covertboolPreview switch (NVR/DVR only)
refresh_rate"50Hz",
"60Hz"
stringRefresh frequency.
Note: Analog channels are not supported.
alpha1-128intOSD transparency Note: Analog channels are not supported.
camera_type"AUTO"
"AHD"
"TVI"
"CVI"
stringImage Type (dvr specific).
eq_level"AUTO"
"1(0~50m)"
"2(50~150m)"
"3(150~250m)"
"4(250~350m)"
"5(350~450m)"
stringEQ rating (dvr only).
opy_ch"digit"
"analog"
"wifi"
stringSupport channel replication logo (NVR, DVR special).
channel_enableboolCheck whether the parameters of the current channel can be configured.
osd_invertboolOSD Reverse color switch.

Table 5

ParameterRangeTypeDescription
showboolOSD Specifies whether to display the channel name.
textMax length: 31bytestringOSD text (DVR/NVR/IPC).
posJSON arrayJSON show as follow Table 8

Table 6

ParameterRangeTypeDescription
showboolWhether the video window displays a date.
date_format"MM/DD/YYYY", "YYYY-MM-DD", "DD/MM/YYYY"stringDate Format Note: Analog channels are not supported.
time_format24,12intTime mode, unit: hour Note: Analog channel is not supported.
timeintCurrent board time.
posJSON arrayJSON show as follow Table 8

Table 7

ParameterRangeTypeDescription
showboolAlarm Pos Specifies whether to support mobile.
textMax length: 31bytestringAlarm OSD text. The maximum value of the IPC is 32 bytes.
posJSON arrayJSON show as follow Table 8

Table 8

ParameterRangeTypeDescription
x[0-704]intx Coordinate
y[0-576]inty Coordinate

Tips:

The response message of the Range request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {
		"default_timeout": 30000,
		"channel_max": 16,
		"channel_info": {
			"type": "object",
			"items": {
				"CH1": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"channel_enable": {
							"type": "bool"
						},
						"name": {
							"type": "object",
							"items": {
								"show": {
									"type": "bool",
									"disable": false
								},
								"text": {
									"type": "string",
									"min_len": 1,
									"max_len": 31,
									"disable": false
								},
								"pos": {
									"type": "object",
									"items": {
										"x": {
											"type": "int32",
											"min": 0,
											"max": 704
										},
										"y": {
											"type": "int32",
											"min": 0,
											"max": 576
										}
									}
								}
							}
						},
						"datetime": {
							"type": "object",
							"items": {
								"show": {
									"type": "bool",
									"disable": false
								},
								"date_format": {
									"type": "string",
									"items": [
										"MM/DD/YYYY",
										"YYYY-MM-DD",
										"DD/MM/YYYY"
									],
									"disable": false
								},
								"time_format": {
									"type": "int32",
									"unit": "hour",
									"items": [
										24,
										12
									],
									"disable": false
								},
								"pos": {
									"type": "object",
									"items": {
										"x": {
											"type": "int32",
											"min": 0,
											"max": 704
										},
										"y": {
											"type": "int32",
											"min": 0,
											"max": 576
										}
									}
								}
							}
						},
						"alarm": {
							"type": "object",
							"items": {
								"pos": {
									"type": "object",
									"items": {
										"x": {
											"type": "int32",
											"min": 0,
											"max": 704
										},
										"y": {
											"type": "int32",
											"min": 0,
											"max": 576
										}
									}
								}
							}
						},
						"covert": {
							"type": "bool"
						},
						"refresh_rate": {
							"type": "string",
							"items": [
								"50Hz",
								"60Hz"
							]
						},
						"osd_invert": {
							"type": "bool"
						}
					}
				},
				"CH2": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"channel_enable": {
							"type": "bool"
						},
						"name": {
							"type": "object",
							"items": {
								"show": {
									"type": "bool",
									"disable": true
								},
								"text": {
									"type": "string",
									"min_len": 0,
									"max_len": 31,
									"disable": true
								},
								"pos": {
									"type": "object",
									"items": {
										"x": {
											"type": "int32",
											"min": 0,
											"max": 704
										},
										"y": {
											"type": "int32",
											"min": 0,
											"max": 576
										}
									}
								}
							}
						},
						"datetime": {
							"type": "object",
							"items": {
								"show": {
									"type": "bool",
									"disable": true
								},
								"date_format": {
									"type": "string",
									"items": [
										"MM/DD/YYYY",
										"YYYY-MM-DD",
										"DD/MM/YYYY"
									],
									"disable": true
								},
								"time_format": {
									"type": "int32",
									"unit": "hour",
									"items": [
										24,
										12
									],
									"disable": true
								},
								"pos": {
									"type": "object",
									"items": {
										"x": {
											"type": "int32",
											"min": 0,
											"max": 704
										},
										"y": {
											"type": "int32",
											"min": 0,
											"max": 576
										}
									}
								}
							}
						},
						"covert": {
							"type": "bool"
						},
						"refresh_rate": {
							"type": "string",
							"items": [
								"50Hz",
								"60Hz"
							]
						}
					}
				},
				"CH3": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"channel_enable": {
							"type": "bool"
						},
						"name": {
							"type": "object",
							"items": {
								"show": {
									"type": "bool",
									"disable": true
								},
								"text": {
									"type": "string",
									"min_len": 0,
									"max_len": 31,
									"disable": true
								},
								"pos": {
									"type": "object",
									"items": {
										"x": {
											"type": "int32",
											"min": 0,
											"max": 704
										},
										"y": {
											"type": "int32",
											"min": 0,
											"max": 576
										}
									}
								}
							}
						},
						"datetime": {
							"type": "object",
							"items": {
								"show": {
									"type": "bool",
									"disable": true
								},
								"date_format": {
									"type": "string",
									"items": [
										"MM/DD/YYYY",
										"YYYY-MM-DD",
										"DD/MM/YYYY"
									],
									"disable": true
								},
								"time_format": {
									"type": "int32",
									"unit": "hour",
									"items": [
										24,
										12
									],
									"disable": true
								},
								"pos": {
									"type": "object",
									"items": {
										"x": {
											"type": "int32",
											"min": 0,
											"max": 704
										},
										"y": {
											"type": "int32",
											"min": 0,
											"max": 576
										}
									}
								}
							}
						},
						"covert": {
							"type": "bool"
						},
						"refresh_rate": {
							"type": "string",
							"items": [
								"50Hz",
								"60Hz"
							]
						}
					}
				},
				"CH4": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"channel_enable": {
							"type": "bool"
						},
						"name": {
							"type": "object",
							"items": {
								"show": {
									"type": "bool",
									"disable": true
								},
								"text": {
									"type": "string",
									"min_len": 0,
									"max_len": 31,
									"disable": true
								},
								"pos": {
									"type": "object",
									"items": {
										"x": {
											"type": "int32",
											"min": 0,
											"max": 704
										},
										"y": {
											"type": "int32",
											"min": 0,
											"max": 576
										}
									}
								}
							}
						},
						"datetime": {
							"type": "object",
							"items": {
								"show": {
									"type": "bool",
									"disable": true
								},
								"date_format": {
									"type": "string",
									"items": [
										"MM/DD/YYYY",
										"YYYY-MM-DD",
										"DD/MM/YYYY"
									],
									"disable": true
								},
								"time_format": {
									"type": "int32",
									"unit": "hour",
									"items": [
										24,
										12
									],
									"disable": true
								},
								"pos": {
									"type": "object",
									"items": {
										"x": {
											"type": "int32",
											"min": 0,
											"max": 704
										},
										"y": {
											"type": "int32",
											"min": 0,
											"max": 576
										}
									}
								}
							}
						},
						"covert": {
							"type": "bool"
						},
						"refresh_rate": {
							"type": "string",
							"items": [
								"50Hz",
								"60Hz"
							]
						}
					}
				},
				"CH5": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"channel_enable": {
							"type": "bool"
						},
						"name": {
							"type": "object",
							"items": {
								"show": {
									"type": "bool",
									"disable": false
								},
								"text": {
									"type": "string",
									"min_len": 1,
									"max_len": 31,
									"disable": false
								},
								"pos": {
									"type": "object",
									"items": {
										"x": {
											"type": "int32",
											"min": 0,
											"max": 704
										},
										"y": {
											"type": "int32",
											"min": 0,
											"max": 576
										}
									}
								}
							}
						},
						"datetime": {
							"type": "object",
							"items": {
								"show": {
									"type": "bool",
									"disable": false
								},
								"date_format": {
									"type": "string",
									"items": [
										"MM/DD/YYYY",
										"YYYY-MM-DD",
										"DD/MM/YYYY"
									],
									"disable": false
								},
								"time_format": {
									"type": "int32",
									"unit": "hour",
									"items": [
										24,
										12
									],
									"disable": false
								},
								"pos": {
									"type": "object",
									"items": {
										"x": {
											"type": "int32",
											"min": 0,
											"max": 704
										},
										"y": {
											"type": "int32",
											"min": 0,
											"max": 576
										}
									}
								}
							}
						},
						"covert": {
							"type": "bool"
						}
					}
				},
				"CH6": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"channel_enable": {
							"type": "bool"
						},
						"name": {
							"type": "object",
							"items": {
								"show": {
									"type": "bool",
									"disable": true
								},
								"text": {
									"type": "string",
									"min_len": 0,
									"max_len": 31,
									"disable": true
								},
								"pos": {
									"type": "object",
									"items": {
										"x": {
											"type": "int32",
											"min": 0,
											"max": 704
										},
										"y": {
											"type": "int32",
											"min": 0,
											"max": 576
										}
									}
								}
							}
						},
						"datetime": {
							"type": "object",
							"items": {
								"show": {
									"type": "bool",
									"disable": true
								},
								"date_format": {
									"type": "string",
									"items": [
										"MM/DD/YYYY",
										"YYYY-MM-DD",
										"DD/MM/YYYY"
									],
									"disable": true
								},
								"time_format": {
									"type": "int32",
									"unit": "hour",
									"items": [
										24,
										12
									],
									"disable": true
								},
								"pos": {
									"type": "object",
									"items": {
										"x": {
											"type": "int32",
											"min": 0,
											"max": 704
										},
										"y": {
											"type": "int32",
											"min": 0,
											"max": 576
										}
									}
								}
							}
						},
						"covert": {
							"type": "bool"
						},
						"refresh_rate": {
							"type": "string",
							"items": [
								"50Hz",
								"60Hz"
							]
						}
					}
				},
				"CH7": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"channel_enable": {
							"type": "bool"
						},
						"name": {
							"type": "object",
							"items": {
								"show": {
									"type": "bool",
									"disable": true
								},
								"text": {
									"type": "string",
									"min_len": 0,
									"max_len": 31,
									"disable": true
								},
								"pos": {
									"type": "object",
									"items": {
										"x": {
											"type": "int32",
											"min": 0,
											"max": 704
										},
										"y": {
											"type": "int32",
											"min": 0,
											"max": 576
										}
									}
								}
							}
						},
						"datetime": {
							"type": "object",
							"items": {
								"show": {
									"type": "bool",
									"disable": true
								},
								"date_format": {
									"type": "string",
									"items": [
										"MM/DD/YYYY",
										"YYYY-MM-DD",
										"DD/MM/YYYY"
									],
									"disable": true
								},
								"time_format": {
									"type": "int32",
									"unit": "hour",
									"items": [
										24,
										12
									],
									"disable": true
								},
								"pos": {
									"type": "object",
									"items": {
										"x": {
											"type": "int32",
											"min": 0,
											"max": 704
										},
										"y": {
											"type": "int32",
											"min": 0,
											"max": 576
										}
									}
								}
							}
						},
						"covert": {
							"type": "bool"
						},
						"refresh_rate": {
							"type": "string",
							"items": [
								"50Hz",
								"60Hz"
							]
						}
					}
				},
				"CH8": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"channel_enable": {
							"type": "bool"
						},
						"name": {
							"type": "object",
							"items": {
								"show": {
									"type": "bool",
									"disable": true
								},
								"text": {
									"type": "string",
									"min_len": 0,
									"max_len": 31,
									"disable": true
								},
								"pos": {
									"type": "object",
									"items": {
										"x": {
											"type": "int32",
											"min": 0,
											"max": 704
										},
										"y": {
											"type": "int32",
											"min": 0,
											"max": 576
										}
									}
								}
							}
						},
						"datetime": {
							"type": "object",
							"items": {
								"show": {
									"type": "bool",
									"disable": true
								},
								"date_format": {
									"type": "string",
									"items": [
										"MM/DD/YYYY",
										"YYYY-MM-DD",
										"DD/MM/YYYY"
									],
									"disable": true
								},
								"time_format": {
									"type": "int32",
									"unit": "hour",
									"items": [
										24,
										12
									],
									"disable": true
								},
								"pos": {
									"type": "object",
									"items": {
										"x": {
											"type": "int32",
											"min": 0,
											"max": 704
										},
										"y": {
											"type": "int32",
											"min": 0,
											"max": 576
										}
									}
								}
							}
						},
						"covert": {
							"type": "bool"
						},
						"refresh_rate": {
							"type": "string",
							"items": [
								"50Hz",
								"60Hz"
							]
						}
					}
				},
				"CH9": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"channel_enable": {
							"type": "bool"
						},
						"name": {
							"type": "object",
							"items": {
								"show": {
									"type": "bool",
									"disable": true
								},
								"text": {
									"type": "string",
									"min_len": 0,
									"max_len": 31,
									"disable": true
								},
								"pos": {
									"type": "object",
									"items": {
										"x": {
											"type": "int32",
											"min": 0,
											"max": 704
										},
										"y": {
											"type": "int32",
											"min": 0,
											"max": 576
										}
									}
								}
							}
						},
						"datetime": {
							"type": "object",
							"items": {
								"show": {
									"type": "bool",
									"disable": true
								},
								"date_format": {
									"type": "string",
									"items": [
										"MM/DD/YYYY",
										"YYYY-MM-DD",
										"DD/MM/YYYY"
									],
									"disable": true
								},
								"time_format": {
									"type": "int32",
									"unit": "hour",
									"items": [
										24,
										12
									],
									"disable": true
								},
								"pos": {
									"type": "object",
									"items": {
										"x": {
											"type": "int32",
											"min": 0,
											"max": 704
										},
										"y": {
											"type": "int32",
											"min": 0,
											"max": 576
										}
									}
								}
							}
						},
						"covert": {
							"type": "bool"
						},
						"refresh_rate": {
							"type": "string",
							"items": [
								"50Hz",
								"60Hz"
							]
						}
					}
				},
				"CH10": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"channel_enable": {
							"type": "bool"
						},
						"name": {
							"type": "object",
							"items": {
								"show": {
									"type": "bool",
									"disable": true
								},
								"text": {
									"type": "string",
									"min_len": 0,
									"max_len": 31,
									"disable": true
								},
								"pos": {
									"type": "object",
									"items": {
										"x": {
											"type": "int32",
											"min": 0,
											"max": 704
										},
										"y": {
											"type": "int32",
											"min": 0,
											"max": 576
										}
									}
								}
							}
						},
						"datetime": {
							"type": "object",
							"items": {
								"show": {
									"type": "bool",
									"disable": true
								},
								"date_format": {
									"type": "string",
									"items": [
										"MM/DD/YYYY",
										"YYYY-MM-DD",
										"DD/MM/YYYY"
									],
									"disable": true
								},
								"time_format": {
									"type": "int32",
									"unit": "hour",
									"items": [
										24,
										12
									],
									"disable": true
								},
								"pos": {
									"type": "object",
									"items": {
										"x": {
											"type": "int32",
											"min": 0,
											"max": 704
										},
										"y": {
											"type": "int32",
											"min": 0,
											"max": 576
										}
									}
								}
							}
						},
						"covert": {
							"type": "bool"
						},
						"refresh_rate": {
							"type": "string",
							"items": [
								"50Hz",
								"60Hz"
							]
						}
					}
				},
				"CH11": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"channel_enable": {
							"type": "bool"
						},
						"name": {
							"type": "object",
							"items": {
								"show": {
									"type": "bool",
									"disable": false
								},
								"text": {
									"type": "string",
									"min_len": 1,
									"max_len": 31,
									"disable": false
								},
								"pos": {
									"type": "object",
									"items": {
										"x": {
											"type": "int32",
											"min": 0,
											"max": 704
										},
										"y": {
											"type": "int32",
											"min": 0,
											"max": 576
										}
									}
								}
							}
						},
						"datetime": {
							"type": "object",
							"items": {
								"show": {
									"type": "bool",
									"disable": false
								},
								"date_format": {
									"type": "string",
									"items": [
										"MM/DD/YYYY",
										"YYYY-MM-DD",
										"DD/MM/YYYY"
									],
									"disable": false
								},
								"time_format": {
									"type": "int32",
									"unit": "hour",
									"items": [
										24,
										12
									],
									"disable": false
								},
								"pos": {
									"type": "object",
									"items": {
										"x": {
											"type": "int32",
											"min": 0,
											"max": 704
										},
										"y": {
											"type": "int32",
											"min": 0,
											"max": 576
										}
									}
								}
							}
						},
						"alarm": {
							"type": "object",
							"items": {
								"pos": {
									"type": "object",
									"items": {
										"x": {
											"type": "int32",
											"min": 0,
											"max": 704
										},
										"y": {
											"type": "int32",
											"min": 0,
											"max": 576
										}
									}
								}
							}
						},
						"covert": {
							"type": "bool"
						},
						"refresh_rate": {
							"type": "string",
							"items": [
								"50Hz",
								"60Hz"
							]
						},
						"osd_invert": {
							"type": "bool"
						}
					}
				},
				"CH12": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"channel_enable": {
							"type": "bool"
						},
						"name": {
							"type": "object",
							"items": {
								"show": {
									"type": "bool",
									"disable": true
								},
								"text": {
									"type": "string",
									"min_len": 0,
									"max_len": 31,
									"disable": true
								},
								"pos": {
									"type": "object",
									"items": {
										"x": {
											"type": "int32",
											"min": 0,
											"max": 704
										},
										"y": {
											"type": "int32",
											"min": 0,
											"max": 576
										}
									}
								}
							}
						},
						"datetime": {
							"type": "object",
							"items": {
								"show": {
									"type": "bool",
									"disable": true
								},
								"date_format": {
									"type": "string",
									"items": [
										"MM/DD/YYYY",
										"YYYY-MM-DD",
										"DD/MM/YYYY"
									],
									"disable": true
								},
								"time_format": {
									"type": "int32",
									"unit": "hour",
									"items": [
										24,
										12
									],
									"disable": true
								},
								"pos": {
									"type": "object",
									"items": {
										"x": {
											"type": "int32",
											"min": 0,
											"max": 704
										},
										"y": {
											"type": "int32",
											"min": 0,
											"max": 576
										}
									}
								}
							}
						},
						"covert": {
							"type": "bool"
						},
						"refresh_rate": {
							"type": "string",
							"items": [
								"50Hz",
								"60Hz"
							]
						}
					}
				},
				"CH13": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"channel_enable": {
							"type": "bool"
						},
						"name": {
							"type": "object",
							"items": {
								"show": {
									"type": "bool",
									"disable": true
								},
								"text": {
									"type": "string",
									"min_len": 0,
									"max_len": 31,
									"disable": true
								},
								"pos": {
									"type": "object",
									"items": {
										"x": {
											"type": "int32",
											"min": 0,
											"max": 704
										},
										"y": {
											"type": "int32",
											"min": 0,
											"max": 576
										}
									}
								}
							}
						},
						"datetime": {
							"type": "object",
							"items": {
								"show": {
									"type": "bool",
									"disable": true
								},
								"date_format": {
									"type": "string",
									"items": [
										"MM/DD/YYYY",
										"YYYY-MM-DD",
										"DD/MM/YYYY"
									],
									"disable": true
								},
								"time_format": {
									"type": "int32",
									"unit": "hour",
									"items": [
										24,
										12
									],
									"disable": true
								},
								"pos": {
									"type": "object",
									"items": {
										"x": {
											"type": "int32",
											"min": 0,
											"max": 704
										},
										"y": {
											"type": "int32",
											"min": 0,
											"max": 576
										}
									}
								}
							}
						},
						"covert": {
							"type": "bool"
						},
						"refresh_rate": {
							"type": "string",
							"items": [
								"50Hz",
								"60Hz"
							]
						}
					}
				},
				"CH14": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"channel_enable": {
							"type": "bool"
						},
						"name": {
							"type": "object",
							"items": {
								"show": {
									"type": "bool",
									"disable": false
								},
								"text": {
									"type": "string",
									"min_len": 1,
									"max_len": 31,
									"disable": false
								},
								"pos": {
									"type": "object",
									"items": {
										"x": {
											"type": "int32",
											"min": 0,
											"max": 704
										},
										"y": {
											"type": "int32",
											"min": 0,
											"max": 576
										}
									}
								}
							}
						},
						"datetime": {
							"type": "object",
							"items": {
								"show": {
									"type": "bool",
									"disable": false
								},
								"date_format": {
									"type": "string",
									"items": [
										"MM/DD/YYYY",
										"YYYY-MM-DD",
										"DD/MM/YYYY"
									],
									"disable": false
								},
								"time_format": {
									"type": "int32",
									"unit": "hour",
									"items": [
										24,
										12
									],
									"disable": false
								},
								"pos": {
									"type": "object",
									"items": {
										"x": {
											"type": "int32",
											"min": 0,
											"max": 704
										},
										"y": {
											"type": "int32",
											"min": 0,
											"max": 576
										}
									}
								}
							}
						},
						"alarm": {
							"type": "object",
							"items": {
								"pos": {
									"type": "object",
									"items": {
										"x": {
											"type": "int32",
											"min": 0,
											"max": 704
										},
										"y": {
											"type": "int32",
											"min": 0,
											"max": 576
										}
									}
								}
							}
						},
						"covert": {
							"type": "bool"
						},
						"refresh_rate": {
							"type": "string",
							"items": [
								"50Hz",
								"60Hz"
							]
						}
					}
				},
				"CH15": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"channel_enable": {
							"type": "bool"
						},
						"name": {
							"type": "object",
							"items": {
								"show": {
									"type": "bool",
									"disable": false
								},
								"text": {
									"type": "string",
									"min_len": 1,
									"max_len": 31,
									"disable": false
								},
								"pos": {
									"type": "object",
									"items": {
										"x": {
											"type": "int32",
											"min": 0,
											"max": 704
										},
										"y": {
											"type": "int32",
											"min": 0,
											"max": 576
										}
									}
								}
							}
						},
						"datetime": {
							"type": "object",
							"items": {
								"show": {
									"type": "bool",
									"disable": false
								},
								"date_format": {
									"type": "string",
									"items": [
										"MM/DD/YYYY",
										"YYYY-MM-DD",
										"DD/MM/YYYY"
									],
									"disable": false
								},
								"time_format": {
									"type": "int32",
									"unit": "hour",
									"items": [
										24,
										12
									],
									"disable": false
								},
								"pos": {
									"type": "object",
									"items": {
										"x": {
											"type": "int32",
											"min": 0,
											"max": 704
										},
										"y": {
											"type": "int32",
											"min": 0,
											"max": 576
										}
									}
								}
							}
						},
						"alarm": {
							"type": "object",
							"items": {
								"pos": {
									"type": "object",
									"items": {
										"x": {
											"type": "int32",
											"min": 0,
											"max": 704
										},
										"y": {
											"type": "int32",
											"min": 0,
											"max": 576
										}
									}
								}
							}
						},
						"covert": {
							"type": "bool"
						},
						"refresh_rate": {
							"type": "string",
							"items": [
								"50Hz",
								"60Hz"
							]
						},
						"osd_invert": {
							"type": "bool"
						}
					}
				},
				"CH16": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"channel_enable": {
							"type": "bool"
						},
						"name": {
							"type": "object",
							"items": {
								"show": {
									"type": "bool",
									"disable": false
								},
								"text": {
									"type": "string",
									"min_len": 1,
									"max_len": 31,
									"disable": false
								},
								"pos": {
									"type": "object",
									"items": {
										"x": {
											"type": "int32",
											"min": 0,
											"max": 704
										},
										"y": {
											"type": "int32",
											"min": 0,
											"max": 576
										}
									}
								}
							}
						},
						"datetime": {
							"type": "object",
							"items": {
								"show": {
									"type": "bool",
									"disable": false
								},
								"date_format": {
									"type": "string",
									"items": [
										"MM/DD/YYYY",
										"YYYY-MM-DD",
										"DD/MM/YYYY"
									],
									"disable": false
								},
								"time_format": {
									"type": "int32",
									"unit": "hour",
									"items": [
										24,
										12
									],
									"disable": false
								},
								"pos": {
									"type": "object",
									"items": {
										"x": {
											"type": "int32",
											"min": 0,
											"max": 704
										},
										"y": {
											"type": "int32",
											"min": 0,
											"max": 576
										}
									}
								}
							}
						},
						"alarm": {
							"type": "object",
							"items": {
								"pos": {
									"type": "object",
									"items": {
										"x": {
											"type": "int32",
											"min": 0,
											"max": 704
										},
										"y": {
											"type": "int32",
											"min": 0,
											"max": 576
										}
									}
								}
							}
						},
						"covert": {
							"type": "bool"
						},
						"refresh_rate": {
							"type": "string",
							"items": [
								"50Hz",
								"60Hz"
							]
						},
						"osd_invert": {
							"type": "bool"
						},
						"flickerless_switch": {
							"type": "bool"
						}
					}
				}
			}
		}
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get Channel > OSD page parameters.

Request Message

None.

Sample:

POST /API/ChannelConfig/OSD/Get HTTP/1.1
{
	"version": "1.0",
	"data": {}
}

Response Message

See Channel> OSD > Parameter Description > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {
		"channel_info": {
			"CH1": {
				"main_stream_info": {
					"region_id_1": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"main_non_roi_fps": "29",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_2": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"main_non_roi_fps": "29",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_3": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"main_non_roi_fps": "29",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_4": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"main_non_roi_fps": "29",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_5": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"main_non_roi_fps": "29",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_6": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"main_non_roi_fps": "29",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_7": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"main_non_roi_fps": "29",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_8": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"main_non_roi_fps": "29",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					}
				},
				"sub_stream_info": {
					"region_id_1": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"sub_non_roi_fps": "29",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_2": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"sub_non_roi_fps": "29",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_3": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"sub_non_roi_fps": "29",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_4": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"sub_non_roi_fps": "29",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_5": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"sub_non_roi_fps": "29",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_6": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"sub_non_roi_fps": "29",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_7": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"sub_non_roi_fps": "29",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_8": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"sub_non_roi_fps": "29",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					}
				},
				"mobile_stream_info": {
					"region_id_1": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"mobile_non_roi_fps": "29",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_2": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"mobile_non_roi_fps": "29",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_3": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"mobile_non_roi_fps": "29",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_4": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"mobile_non_roi_fps": "29",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_5": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"mobile_non_roi_fps": "29",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_6": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"mobile_non_roi_fps": "29",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_7": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"mobile_non_roi_fps": "29",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_8": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"mobile_non_roi_fps": "29",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					}
				}
			},
			"CH2": {
				"reason": "Not configured"
			},
			"CH3": {
				"reason": "Not configured"
			},
			"CH4": {
				"reason": "Not configured"
			},
			"CH5": {
				"reason": "Not configured"
			},
			"CH6": {
				"reason": "Not configured"
			},
			"CH7": {
				"reason": "Not configured"
			},
			"CH8": {
				"reason": "Not configured"
			},
			"CH9": {
				"reason": "Not configured"
			},
			"CH10": {
				"reason": "Not configured"
			},
			"CH11": {
				"reason": "Not configured"
			},
			"CH12": {
				"reason": "Not configured"
			},
			"CH13": {
				"reason": "Not configured"
			},
			"CH14": {
				"reason": "Not configured"
			},
			"CH15": {
				"main_stream_info": {
					"region_id_1": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_2": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_3": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_4": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_5": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_6": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_7": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_8": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					}
				},
				"sub_stream_info": {
					"region_id_1": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_2": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_3": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_4": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_5": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_6": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_7": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_8": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					}
				},
				"mobile_stream_info": {
					"region_id_1": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_2": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_3": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_4": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_5": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_6": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_7": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_8": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					}
				}
			},
			"CH16": {
				"reason": "Not configured"
			}
		}
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set Channel > OSD page parameters.

Request Message

See Channel > OSD > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/ChannelConfig/OSD/Set HTTP/1.1
{
	"version": "1.0",
	"data": {
		"channel_info": {
			"CH1": {
				"status": "Online",
				"channel_enable": true,
				"name": {
					"show": true,
					"text": "Camera",
					"pos": {
						"x": 290,
						"y": 0
					}
				},
				"datetime": {
					"show": true,
					"date_format": "YYYY-MM-DD",
					"time_format": 24,
					"pos": {
						"x": 390,
						"y": 0
					}
				},
				"alarm": {
					"show": true,
					"text": "In: - Out: -",
					"pos": {
						"x": 0,
						"y": 50
					}
				},
				"refresh_rate": "60Hz",
				"covert": false,
				"osd_invert": false,
				"chn_index": "CH1",
				"page": "chn_osd"
			},
			"CH5": {
				"status": "Online",
				"channel_enable": true,
				"name": {
					"show": true,
					"text": "Camera",
					"pos": {
						"x": 290,
						"y": 0
					}
				},
				"datetime": {
					"show": true,
					"date_format": "MM/DD/YYYY",
					"time_format": 24,
					"pos": {
						"x": 390,
						"y": 0
					}
				},
				"covert": false
			},
			"CH14": {
				"status": "Online",
				"channel_enable": true,
				"name": {
					"show": true,
					"text": "Camera",
					"pos": {
						"x": 290,
						"y": 0
					}
				},
				"datetime": {
					"show": true,
					"date_format": "YYYY-MM-DD",
					"time_format": 24,
					"pos": {
						"x": 390,
						"y": 0
					}
				},
				"alarm": {
					"show": true,
					"text": "In: - Out: -",
					"pos": {
						"x": 0,
						"y": 50
					}
				},
				"refresh_rate": "60Hz",
				"covert": false
			},
			"CH15": {
				"status": "Online",
				"channel_enable": true,
				"name": {
					"show": true,
					"text": "Camera",
					"pos": {
						"x": 290,
						"y": 0
					}
				},
				"datetime": {
					"show": true,
					"date_format": "YYYY-MM-DD",
					"time_format": 24,
					"pos": {
						"x": 390,
						"y": 0
					}
				},
				"alarm": {
					"show": true,
					"text": "In: - Out: -",
					"pos": {
						"x": 0,
						"y": 50
					}
				},
				"refresh_rate": "60Hz",
				"covert": false,
				"osd_invert": false
			}
		}
	}
}

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

POE Power

Function

This API is used to get POE Power page parameters.

URI

POST /API/ChannelConfig/PoePower/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including only Get .

Get

Function

This API is used to get Channel > POE Power page parameters.

Request Message

None.

Sample:

POST /API/ChannelConfig/PoePower/Get HTTP/1.1
{
	"version": "1.0",
	"data": {}
}

Response Message

Parameter Description

Table 1

ParameterRangeTypeDescription
channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…” WIFI_CH1x”
The number of channels depends on the capabilities of the device.
string arrayEach array bit represents a channel with a string.

Table 2

ParameterRangeTypeDescription
channel_infoJSON ObjectChannel Information JSON show as follow Table 3
actual_powerstringUsed power
surplus_powerstringSurplus power
total_powerstringTotal power
channel_min_powerstringMinimum power per channel.
channel_max_powerstringMaximum power per channel.
channel_maxintChannel total

Table 3

ParameterRangeTypeDescription
CH1Json ObjectJSON show as follow Table 4
Json Object
IP_CH1Json Object
Json Object
WIFI_CH1Json Object
Json Object

Table 4

ParameterRangeTypeDescription
channel_current_powerMax length: 7bytestringPower used by the current channel.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {
		"channel_info": {
			"CH1": {
				"channel_current_power": "3.05"
			},
			"CH2": {
				"channel_current_power": "2.39"
			},
			"CH3": {
				"channel_current_power": "3.49"
			},
			"CH4": {
				"channel_current_power": "3.61"
			},
			"CH5": {
				"channel_current_power": "3.91"
			},
			"CH6": {
				"channel_current_power": "3.19"
			},
			"CH7": {
				"channel_current_power": "2.39"
			},
			"CH8": {
				"channel_current_power": "3.94"
			},
			"CH9": {
				"channel_current_power": "0.00"
			},
			"CH10": {
				"channel_current_power": "2.75"
			},
			"CH11": {
				"channel_current_power": "4.44"
			},
			"CH12": {
				"channel_current_power": "3.55"
			},
			"CH13": {
				"channel_current_power": "1.54"
			},
			"CH14": {
				"channel_current_power": "2.51"
			},
			"CH15": {
				"channel_current_power": "3.40"
			},
			"CH16": {
				"channel_current_power": "1.92"
			}
		},
		"actual_power": "46.08",
		"surplus_power": "109.92",
		"channel_min_power": "0",
		"channel_max_power": "30",
		"total_power": "156"
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

PTZ

Function

This API is used to get or set PTZ page parameters.

URI

POST /API/ChannelConfig/PTZ/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range, Get, Set.

Range

Function

This API is used to get parameter range for Channel > PTZ page.

Note:

The Range provides reference information for client UI input limits and API request limits. When sending Get and Set requests, the parameters must be strictly limited according to the Range, otherwise the request may be rejected by the device.

Request Message

None.

Sample:

POST /API/ChannelConfig/PTZ/Range HTTP/1.1
{
	"version": "1.0",
	"data": {}
}

Response Message

Parameter Description

Table 1

ParameterRangeTypeDescription
channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…” WIFI_CH1x”
The number of channels depends on the capabilities of the device.
string arrayEach array bit represents a channel with a string.

Table 2

ParameterRangeTypeDescription
channel_infoJSON ObjectChannel Information JSON show as follow Table 3
channel_maxintMaximum number of channels.
support_copyboolPage support copy (NVR, DVR dedicated).

Table 3

ParameterRangeTypeDescription
CH1Json ObjectJSON show as follow Table 4
Json Object
IP_CH1Json Object
Json Object
WIFI_CH1Json Object
Json Object

Table 4

ParameterRangeTypeDescription
status"Offline",
"Online"
stringChannel online status, only for digital channels.
Note: This field does not exist when the channel is online.
signal_type“Analog”
“Digital”
stringSignal type.
protocol"PelcoD",
"PelcoP",
"COAX1",
"COAX2"
stringPTZ protocol.
baudrate"1200",
"2400",
"4800",
"9600"
stringBaud rate.
databit"8",
"7",
"6",
"5"
stringData bit.
stopbit"1",
"2"
stringStop bit.
parity"None",
"Odd",
"Even",
"Mark",
"Space"
stringParity check bit.
address1-255.intAddress code
copy_ch"digit"
"analog"
"wifi"
stringSupport channel replication logo (only for NVR, DVR)

Tips:

The response message of the Range request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {
		"channel_max": 20,
		"support_copy": true,
		"channel_info": {
			"type": "object",
			"items": {
				"CH1": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"signal_type": {
							"type": "string",
							"items": [
								"Analog"
							]
						},
						"protocol": {
							"type": "string",
							"items": [
								"Pelco-D",
								"Pelco-P",
								"COAX1",
								"COAX2"
							]
						},
						"baudrate": {
							"type": "string",
							"items": [
								"1200",
								"2400",
								"4800",
								"9600"
							]
						},
						"databit": {
							"type": "string",
							"items": [
								"8",
								"7",
								"6",
								"5"
							]
						},
						"stopbit": {
							"type": "string",
							"items": [
								"1",
								"2"
							]
						},
						"parity": {
							"type": "string",
							"items": [
								"None",
								"Odd",
								"Even",
								"Mark",
								"Space"
							]
						},
						"address": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						},
						"ptz_disable": {
							"type": "string",
							"items": [
								"protocol",
								"baudrate",
								"databit",
								"stopbit",
								"parity",
								"address",
								"focus_mode",
								"zoom_status",
								"pan_tilt_status",
								"preset_status",
								"min_focus_distance"
							]
						}
					}
				},
				"CH2": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"signal_type": {
							"type": "string",
							"items": [
								"Analog"
							]
						},
						"protocol": {
							"type": "string",
							"items": [
								"Pelco-D",
								"Pelco-P",
								"COAX1",
								"COAX2"
							]
						},
						"baudrate": {
							"type": "string",
							"items": [
								"1200",
								"2400",
								"4800",
								"9600"
							]
						},
						"databit": {
							"type": "string",
							"items": [
								"8",
								"7",
								"6",
								"5"
							]
						},
						"stopbit": {
							"type": "string",
							"items": [
								"1",
								"2"
							]
						},
						"parity": {
							"type": "string",
							"items": [
								"None",
								"Odd",
								"Even",
								"Mark",
								"Space"
							]
						},
						"address": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						},
						"ptz_disable": {
							"type": "string",
							"items": [
								"protocol",
								"baudrate",
								"databit",
								"stopbit",
								"parity",
								"address",
								"focus_mode",
								"zoom_status",
								"pan_tilt_status",
								"preset_status",
								"min_focus_distance"
							]
						}
					}
				},
				"CH3": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"signal_type": {
							"type": "string",
							"items": [
								"Analog"
							]
						},
						"protocol": {
							"type": "string",
							"items": [
								"Pelco-D",
								"Pelco-P",
								"COAX1",
								"COAX2"
							]
						},
						"baudrate": {
							"type": "string",
							"items": [
								"1200",
								"2400",
								"4800",
								"9600"
							]
						},
						"databit": {
							"type": "string",
							"items": [
								"8",
								"7",
								"6",
								"5"
							]
						},
						"stopbit": {
							"type": "string",
							"items": [
								"1",
								"2"
							]
						},
						"parity": {
							"type": "string",
							"items": [
								"None",
								"Odd",
								"Even",
								"Mark",
								"Space"
							]
						},
						"address": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						},
						"ptz_disable": {
							"type": "string",
							"items": [
								"protocol",
								"baudrate",
								"databit",
								"stopbit",
								"parity",
								"address",
								"focus_mode",
								"zoom_status",
								"pan_tilt_status",
								"preset_status",
								"min_focus_distance"
							]
						}
					}
				},
				"CH4": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"signal_type": {
							"type": "string",
							"items": [
								"Analog"
							]
						},
						"protocol": {
							"type": "string",
							"items": [
								"Pelco-D",
								"Pelco-P",
								"COAX1",
								"COAX2"
							]
						},
						"baudrate": {
							"type": "string",
							"items": [
								"1200",
								"2400",
								"4800",
								"9600"
							]
						},
						"databit": {
							"type": "string",
							"items": [
								"8",
								"7",
								"6",
								"5"
							]
						},
						"stopbit": {
							"type": "string",
							"items": [
								"1",
								"2"
							]
						},
						"parity": {
							"type": "string",
							"items": [
								"None",
								"Odd",
								"Even",
								"Mark",
								"Space"
							]
						},
						"address": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						},
						"ptz_disable": {
							"type": "string",
							"items": [
								"protocol",
								"baudrate",
								"databit",
								"stopbit",
								"parity",
								"address",
								"focus_mode",
								"zoom_status",
								"pan_tilt_status",
								"preset_status",
								"min_focus_distance"
							]
						}
					}
				},
				"CH5": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"signal_type": {
							"type": "string",
							"items": [
								"Analog"
							]
						},
						"protocol": {
							"type": "string",
							"items": [
								"Pelco-D",
								"Pelco-P",
								"COAX1",
								"COAX2"
							]
						},
						"baudrate": {
							"type": "string",
							"items": [
								"1200",
								"2400",
								"4800",
								"9600"
							]
						},
						"databit": {
							"type": "string",
							"items": [
								"8",
								"7",
								"6",
								"5"
							]
						},
						"stopbit": {
							"type": "string",
							"items": [
								"1",
								"2"
							]
						},
						"parity": {
							"type": "string",
							"items": [
								"None",
								"Odd",
								"Even",
								"Mark",
								"Space"
							]
						},
						"address": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						},
						"ptz_disable": {
							"type": "string",
							"items": [
								"protocol",
								"baudrate",
								"databit",
								"stopbit",
								"parity",
								"address",
								"focus_mode",
								"zoom_status",
								"pan_tilt_status",
								"preset_status",
								"min_focus_distance"
							]
						}
					}
				},
				"CH6": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"signal_type": {
							"type": "string",
							"items": [
								"Analog"
							]
						},
						"protocol": {
							"type": "string",
							"items": [
								"Pelco-D",
								"Pelco-P",
								"COAX1",
								"COAX2"
							]
						},
						"baudrate": {
							"type": "string",
							"items": [
								"1200",
								"2400",
								"4800",
								"9600"
							]
						},
						"databit": {
							"type": "string",
							"items": [
								"8",
								"7",
								"6",
								"5"
							]
						},
						"stopbit": {
							"type": "string",
							"items": [
								"1",
								"2"
							]
						},
						"parity": {
							"type": "string",
							"items": [
								"None",
								"Odd",
								"Even",
								"Mark",
								"Space"
							]
						},
						"address": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						},
						"ptz_disable": {
							"type": "string",
							"items": [
								"protocol",
								"baudrate",
								"databit",
								"stopbit",
								"parity",
								"address",
								"focus_mode",
								"zoom_status",
								"pan_tilt_status",
								"preset_status",
								"min_focus_distance"
							]
						}
					}
				},
				"CH7": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"signal_type": {
							"type": "string",
							"items": [
								"Analog"
							]
						},
						"protocol": {
							"type": "string",
							"items": [
								"Pelco-D",
								"Pelco-P",
								"COAX1",
								"COAX2"
							]
						},
						"baudrate": {
							"type": "string",
							"items": [
								"1200",
								"2400",
								"4800",
								"9600"
							]
						},
						"databit": {
							"type": "string",
							"items": [
								"8",
								"7",
								"6",
								"5"
							]
						},
						"stopbit": {
							"type": "string",
							"items": [
								"1",
								"2"
							]
						},
						"parity": {
							"type": "string",
							"items": [
								"None",
								"Odd",
								"Even",
								"Mark",
								"Space"
							]
						},
						"address": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						},
						"ptz_disable": {
							"type": "string",
							"items": [
								"protocol",
								"baudrate",
								"databit",
								"stopbit",
								"parity",
								"address",
								"focus_mode",
								"zoom_status",
								"pan_tilt_status",
								"preset_status",
								"min_focus_distance"
							]
						}
					}
				},
				"CH8": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"signal_type": {
							"type": "string",
							"items": [
								"Analog"
							]
						},
						"protocol": {
							"type": "string",
							"items": [
								"Pelco-D",
								"Pelco-P",
								"COAX1",
								"COAX2"
							]
						},
						"baudrate": {
							"type": "string",
							"items": [
								"1200",
								"2400",
								"4800",
								"9600"
							]
						},
						"databit": {
							"type": "string",
							"items": [
								"8",
								"7",
								"6",
								"5"
							]
						},
						"stopbit": {
							"type": "string",
							"items": [
								"1",
								"2"
							]
						},
						"parity": {
							"type": "string",
							"items": [
								"None",
								"Odd",
								"Even",
								"Mark",
								"Space"
							]
						},
						"address": {
							"type": "int32",
							"min": 1,
							"max": 255
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						},
						"ptz_disable": {
							"type": "string",
							"items": [
								"protocol",
								"baudrate",
								"databit",
								"stopbit",
								"parity",
								"address",
								"focus_mode",
								"zoom_status",
								"pan_tilt_status",
								"preset_status",
								"min_focus_distance"
							]
						}
					}
				}
			}
		}
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get Channel > PTZ page parameters.

Request Message

None.

Sample:

POST /API/ChannelConfig/PTZ/Get HTTP/1.1
{
	"version": "1.0",
	"data": {}
}

Response Message

See Channel> PTZ > Parameter Description > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {
		"channel_info": {
			"CH1": {
				"signal_type": "Analog",
				"protocol": "COAX1",
				"baudrate": "9600",
				"databit": "8",
				"stopbit": "1",
				"parity": "None",
				"address": 1,
				"copy_ch": "analog"
			},
			"CH2": {
				"signal_type": "Analog",
				"protocol": "COAX1",
				"baudrate": "9600",
				"databit": "8",
				"stopbit": "1",
				"parity": "None",
				"address": 2,
				"copy_ch": "analog"
			},
			"CH3": {
				"signal_type": "Analog",
				"protocol": "COAX1",
				"baudrate": "9600",
				"databit": "8",
				"stopbit": "1",
				"parity": "None",
				"address": 3,
				"copy_ch": "analog"
			},
			"CH4": {
				"signal_type": "Analog",
				"protocol": "COAX1",
				"baudrate": "9600",
				"databit": "8",
				"stopbit": "1",
				"parity": "None",
				"address": 4,
				"copy_ch": "analog"
			},
			"CH5": {
				"signal_type": "Analog",
				"protocol": "COAX1",
				"baudrate": "9600",
				"databit": "8",
				"stopbit": "1",
				"parity": "None",
				"address": 5,
				"copy_ch": "analog"
			},
			"CH6": {
				"signal_type": "Analog",
				"protocol": "COAX1",
				"baudrate": "9600",
				"databit": "8",
				"stopbit": "1",
				"parity": "None",
				"address": 6,
				"copy_ch": "analog"
			},
			"CH7": {
				"signal_type": "Analog",
				"protocol": "COAX1",
				"baudrate": "9600",
				"databit": "8",
				"stopbit": "1",
				"parity": "None",
				"address": 7,
				"copy_ch": "analog"
			},
			"CH8": {
				"signal_type": "Analog",
				"protocol": "COAX1",
				"baudrate": "9600",
				"databit": "8",
				"stopbit": "1",
				"parity": "None",
				"address": 8,
				"copy_ch": "analog"
			},
			"IP_CH1": {
				"reason": "Not configured"
			},
			"IP_CH2": {
				"reason": "Not support"
			},
			"IP_CH3": {
				"reason": "Not configured"
			},
			"IP_CH4": {
				"status": "Offline"
			},
			"IP_CH5": {
				"reason": "Not support"
			},
			"IP_CH6": {
				"reason": "Not configured"
			},
			"IP_CH7": {
				"reason": "Not configured"
			},
			"IP_CH8": {
				"reason": "Not configured"
			},
			"IP_CH9": {
				"reason": "Not configured"
			},
			"IP_CH10": {
				"reason": "Not configured"
			},
			"IP_CH11": {
				"reason": "Not configured"
			},
			"IP_CH12": {
				"reason": "Not configured"
			}
		}
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set Channel > PTZ page parameters.

Request Message

See Channel > PTZ > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/ChannelConfig/PTZ/Set HTTP/1.1
{
	"version": "1.0",
	"data": {
		"channel_info": {
			"CH1": {
				"signal_type": "Analog",
				"protocol": "COAX1",
				"baudrate": "9600",
				"databit": "8",
				"stopbit": "1",
				"parity": "None",
				"address": 1,
				"copy_ch": "analog",
				"chn_index": "CH1"
			},
			"CH2": {
				"signal_type": "Analog",
				"protocol": "COAX1",
				"baudrate": "9600",
				"databit": "8",
				"stopbit": "1",
				"parity": "None",
				"address": 2,
				"copy_ch": "analog"
			},
			"CH3": {
				"signal_type": "Analog",
				"protocol": "COAX1",
				"baudrate": "9600",
				"databit": "8",
				"stopbit": "1",
				"parity": "None",
				"address": 3,
				"copy_ch": "analog"
			},
			"CH4": {
				"signal_type": "Analog",
				"protocol": "COAX1",
				"baudrate": "9600",
				"databit": "8",
				"stopbit": "1",
				"parity": "None",
				"address": 4,
				"copy_ch": "analog"
			},
			"CH5": {
				"signal_type": "Analog",
				"protocol": "COAX1",
				"baudrate": "9600",
				"databit": "8",
				"stopbit": "1",
				"parity": "None",
				"address": 5,
				"copy_ch": "analog"
			},
			"CH6": {
				"signal_type": "Analog",
				"protocol": "COAX1",
				"baudrate": "9600",
				"databit": "8",
				"stopbit": "1",
				"parity": "None",
				"address": 6,
				"copy_ch": "analog"
			},
			"CH7": {
				"signal_type": "Analog",
				"protocol": "COAX1",
				"baudrate": "9600",
				"databit": "8",
				"stopbit": "1",
				"parity": "None",
				"address": 7,
				"copy_ch": "analog"
			},
			"CH8": {
				"signal_type": "Analog",
				"protocol": "COAX1",
				"baudrate": "9600",
				"databit": "8",
				"stopbit": "1",
				"parity": "None",
				"address": 8,
				"copy_ch": "analog"
			}
		},
		"page_type": "AlarmConfig"
	}
}

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Remote Pair (Only for Wireless)

Function

This API is used to set up remote pairing.

URI

POST /API/Login/ChannelPairing/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range , Set .

Range

Function

This API is used to get a range of remote pairing parameters.

Note:

The Range provides reference information for client UI input limits and API request limits. When sending Set requests, the parameters must be strictly limited according to the Range, otherwise the request may be rejected by the device.

Request Message

None.

Sample:

POST /API/Login/ChannelPairing/Range HTTP/1.1
To be added.

Response Message

Parameter Description

Table 1

ParameterRangeTypeDescription
channelintChannel number for remote pairing.
pair_statusintRemote pair operation command, 1: pair, 0: unpair.

Table 2

ParameterRangeTypeDescription
stateMax_length:20stringStatus of remote pairing.
pairing
Device is busy.

Tips:

The response message of the Range request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
To be added.

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set up remote pairing.

Request Message

See Channel > Remote Pair > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/Login/ChannelPairing/Set HTTP/1.1
To be added

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
To be added

Error Code

See Response Messages Body and Common error_code for more information.

ROI

Function

This API is used to get or set ROI page parameters.

URI

POST /API/ChannelConfig/ROI/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range, Get, Set.

Range

Function

This API is used to get parameter range for Channel > ROI page.

Note:

The Range provides reference information for client UI input limits and API request limits. When sending Get and Set requests, the parameters must be strictly limited according to the Range, otherwise the request may be rejected by the device.

Request Message

None.

Sample:

POST /API/ChannelConfig/ROI/Range HTTP/1.1
{
	"version": "1.0",
	"data": {}
}

Response Message

Parameter Description

Table 1

ParameterRangeTypeDescription
channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…” WIFI_CH1x”
The number of channels depends on the capabilities of the device.
string arrayEach array bit represents a channel with a string.

Table 2

ParameterRangeTypeDescription
channel_infoJson ObjectJSON shows as follow Table 3

Table 3

ParameterRangeTypeDescription
CH1Json ObjectJSON shows as follow Table 4
Json Object
IP_CH1Json Object
Json Object
WIFI_CH1Json Object
Json Object

Table 4

ParameterRangeTypeDescription
main_stream_infoJson ObjectJSON shows as follow Table 5
sub_stream_infoJson ObjectJSON shows as follow Table 5
mobile_stream_infoJson ObjectJSON shows as follow Table 5

Table 5

ParameterRangeTypeDescription
region_id_1Json ObjectJSON shows as follow Table 6
Json Object
region_id_8Json Object

Table 6

ParameterRangeTypeDescription
roi_switchboolROI Enable
roi_level“Lowest”,
"Lower"
"Low",
"Medium"
"Higher",
"Highest"
stringROI Level
main_non_roi_fpsstringNon ROI Zone Fps
rectJson ObjectROI Zone Rection
JSON shows as follow Table 9

Table 7

ParameterRangeTypeDescription
roi_switchboolROI Enable
roi_level“Lowest”,
"Lower"
"Low",
"Medium"
"Higher",
"Highest"
stringROI Level
sub_non_roi_fpsstringNon ROI Zone Fps
rectJson ObjectROI Zone Rection
JSON shows as follow Table 9

Table 8

ParameterRangeTypeDescription
roi_switchboolROI Enable
roi_level“Lowest”,
"Lower"
"Low",
"Medium"
"Higher",
"Highest"
stringROI Level
mobile_non_roi_fpsstringNon ROI Zone Fps
rectJson ObjectROI Zone Rection
JSON shows as follow Table 9

Table 9

ParameterRangeTypeDescription
left0-704intLeft
top0-576intTop
width0-704intWidth
height0-576intHeight

Tips:

The response message of the Range request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {
		"channel_max": 16,
		"channel_info": {
			"type": "object",
			"items": {
				"CH1": {
					"type": "object",
					"items": {
						"main_stream_info": {
							"type": "object",
							"items": {
								"region_id_1": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_2": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_3": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_4": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_5": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_6": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_7": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_8": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								}
							}
						},
						"sub_stream_info": {
							"type": "object",
							"items": {
								"region_id_1": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_2": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_3": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_4": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_5": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_6": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_7": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_8": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								}
							}
						}
					}
				},
				"CH2": {
					"type": "object",
					"items": {
						"main_stream_info": {
							"type": "object",
							"items": {
								"region_id_1": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_2": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_3": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_4": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_5": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_6": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_7": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_8": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								}
							}
						},
						"sub_stream_info": {
							"type": "object",
							"items": {
								"region_id_1": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_2": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_3": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_4": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_5": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_6": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_7": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_8": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								}
							}
						}
					}
				},
				"CH3": {
					"type": "object",
					"items": {
						"main_stream_info": {
							"type": "object",
							"items": {
								"region_id_1": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_2": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_3": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_4": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_5": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_6": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_7": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_8": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								}
							}
						},
						"sub_stream_info": {
							"type": "object",
							"items": {
								"region_id_1": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_2": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_3": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_4": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_5": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_6": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_7": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_8": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								}
							}
						}
					}
				},
				"CH4": {
					"type": "object",
					"items": {
						"main_stream_info": {
							"type": "object",
							"items": {
								"region_id_1": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_2": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_3": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_4": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_5": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_6": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_7": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_8": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								}
							}
						},
						"sub_stream_info": {
							"type": "object",
							"items": {
								"region_id_1": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_2": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_3": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_4": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_5": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_6": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_7": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_8": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								}
							}
						}
					}
				},
				"CH5": {
					"type": "object",
					"items": {
						"main_stream_info": {
							"type": "object",
							"items": {
								"region_id_1": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_2": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_3": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_4": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_5": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_6": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_7": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_8": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								}
							}
						},
						"sub_stream_info": {
							"type": "object",
							"items": {
								"region_id_1": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_2": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_3": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_4": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_5": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_6": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_7": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_8": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								}
							}
						}
					}
				},
				"CH6": {
					"type": "object",
					"items": {
						"main_stream_info": {
							"type": "object",
							"items": {
								"region_id_1": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_2": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_3": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_4": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_5": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_6": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_7": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_8": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								}
							}
						},
						"sub_stream_info": {
							"type": "object",
							"items": {
								"region_id_1": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_2": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_3": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_4": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_5": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_6": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_7": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_8": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								}
							}
						}
					}
				},
				"CH7": {
					"type": "object",
					"items": {
						"main_stream_info": {
							"type": "object",
							"items": {
								"region_id_1": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_2": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_3": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_4": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_5": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_6": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_7": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_8": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								}
							}
						},
						"sub_stream_info": {
							"type": "object",
							"items": {
								"region_id_1": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_2": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_3": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_4": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_5": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_6": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_7": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_8": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								}
							}
						}
					}
				},
				"CH8": {
					"type": "object",
					"items": {
						"main_stream_info": {
							"type": "object",
							"items": {
								"region_id_1": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_2": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_3": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_4": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_5": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_6": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_7": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_8": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								}
							}
						},
						"sub_stream_info": {
							"type": "object",
							"items": {
								"region_id_1": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_2": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_3": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_4": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_5": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_6": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_7": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_8": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								}
							}
						}
					}
				},
				"CH9": {
					"type": "object",
					"items": {
						"main_stream_info": {
							"type": "object",
							"items": {
								"region_id_1": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_2": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_3": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_4": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_5": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_6": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_7": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_8": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								}
							}
						},
						"sub_stream_info": {
							"type": "object",
							"items": {
								"region_id_1": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_2": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_3": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_4": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_5": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_6": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_7": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_8": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								}
							}
						}
					}
				},
				"CH10": {
					"type": "object",
					"items": {
						"main_stream_info": {
							"type": "object",
							"items": {
								"region_id_1": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_2": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_3": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_4": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_5": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_6": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_7": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_8": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								}
							}
						},
						"sub_stream_info": {
							"type": "object",
							"items": {
								"region_id_1": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_2": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_3": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_4": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_5": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_6": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_7": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_8": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								}
							}
						}
					}
				},
				"CH11": {
					"type": "object",
					"items": {
						"main_stream_info": {
							"type": "object",
							"items": {
								"region_id_1": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_2": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_3": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_4": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_5": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_6": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_7": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_8": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								}
							}
						},
						"sub_stream_info": {
							"type": "object",
							"items": {
								"region_id_1": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_2": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_3": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_4": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_5": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_6": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_7": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_8": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								}
							}
						}
					}
				},
				"CH12": {
					"type": "object",
					"items": {
						"main_stream_info": {
							"type": "object",
							"items": {
								"region_id_1": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_2": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_3": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_4": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_5": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_6": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_7": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_8": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								}
							}
						},
						"sub_stream_info": {
							"type": "object",
							"items": {
								"region_id_1": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_2": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_3": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_4": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_5": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_6": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_7": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_8": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								}
							}
						}
					}
				},
				"CH13": {
					"type": "object",
					"items": {
						"main_stream_info": {
							"type": "object",
							"items": {
								"region_id_1": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_2": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_3": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_4": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_5": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_6": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_7": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_8": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								}
							}
						},
						"sub_stream_info": {
							"type": "object",
							"items": {
								"region_id_1": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_2": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_3": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_4": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_5": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_6": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_7": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_8": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": []
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								}
							}
						}
					}
				},
				"CH14": {
					"type": "object",
					"items": {
						"main_stream_info": {
							"type": "object",
							"items": {
								"region_id_1": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_2": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_3": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_4": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_5": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_6": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_7": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_8": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								}
							}
						},
						"sub_stream_info": {
							"type": "object",
							"items": {
								"region_id_1": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_2": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_3": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_4": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_5": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_6": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_7": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_8": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								}
							}
						},
						"mobile_stream_info": {
							"type": "object",
							"items": {
								"region_id_1": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"mobile_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_2": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"mobile_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_3": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"mobile_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_4": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"mobile_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_5": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"mobile_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_6": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"mobile_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_7": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"mobile_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_8": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"mobile_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								}
							}
						}
					}
				},
				"CH15": {
					"type": "object",
					"items": {
						"main_stream_info": {
							"type": "object",
							"items": {
								"region_id_1": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_2": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_3": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_4": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_5": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_6": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_7": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_8": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								}
							}
						},
						"sub_stream_info": {
							"type": "object",
							"items": {
								"region_id_1": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_2": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_3": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_4": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_5": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_6": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_7": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_8": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12",
												"13",
												"14",
												"15",
												"16",
												"17",
												"18",
												"19",
												"20",
												"21",
												"22",
												"23",
												"24",
												"25",
												"26",
												"27",
												"28",
												"29"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								}
							}
						}
					}
				},
				"CH16": {
					"type": "object",
					"items": {
						"main_stream_info": {
							"type": "object",
							"items": {
								"region_id_1": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_2": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_3": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_4": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_5": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_6": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_7": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_8": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"main_non_roi_fps": {
											"type": "string",
											"items": [
												"1",
												"2",
												"3",
												"4",
												"5",
												"6",
												"7",
												"8",
												"9",
												"10",
												"11",
												"12"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								}
							}
						},
						"sub_stream_info": {
							"type": "object",
							"items": {
								"region_id_1": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_2": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_3": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_4": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_5": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_6": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_7": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								},
								"region_id_8": {
									"type": "object",
									"items": {
										"roi_switch": {
											"type": "bool"
										},
										"roi_level": {
											"type": "string",
											"items": [
												"Lowest",
												"Lower",
												"Low",
												"Medium",
												"Higher",
												"Highest"
											]
										},
										"sub_non_roi_fps": {
											"type": "string",
											"items": [
												"1"
											]
										},
										"rect": {
											"type": "object",
											"items": {
												"left": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"top": {
													"type": "int32",
													"min": 0,
													"max": 576
												},
												"width": {
													"type": "int32",
													"min": 0,
													"max": 704
												},
												"height": {
													"type": "int32",
													"min": 0,
													"max": 576
												}
											}
										}
									}
								}
							}
						}
					}
				}
			}
		}
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get Channel > ROI page parameters.

Request Message

None.

Sample:

POST /API/ChannelConfig/ROI/Get HTTP/1.1
{
	"version": "1.0",
	"data": {}
}

Response Message

See Channel> ROI > Parameter Description > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {
		"channel_info": {
			"IP_CH1": {
				"reason": "Not configured"
			},
			"IP_CH2": {
				"main_stream_info": {
					"region_id_1": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"main_non_roi_fps": "1",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_2": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"main_non_roi_fps": "1",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_3": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"main_non_roi_fps": "1",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_4": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"main_non_roi_fps": "1",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_5": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"main_non_roi_fps": "1",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_6": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"main_non_roi_fps": "1",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_7": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"main_non_roi_fps": "1",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_8": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"main_non_roi_fps": "1",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					}
				},
				"sub_stream_info": {
					"region_id_1": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"sub_non_roi_fps": "1",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_2": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"sub_non_roi_fps": "1",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_3": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"sub_non_roi_fps": "1",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_4": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"sub_non_roi_fps": "1",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_5": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"sub_non_roi_fps": "1",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_6": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"sub_non_roi_fps": "1",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_7": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"sub_non_roi_fps": "1",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_8": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"sub_non_roi_fps": "1",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					}
				},
				"mobile_stream_info": {
					"region_id_1": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"mobile_non_roi_fps": "1",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_2": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"mobile_non_roi_fps": "1",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_3": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"mobile_non_roi_fps": "1",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_4": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"mobile_non_roi_fps": "1",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_5": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"mobile_non_roi_fps": "1",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_6": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"mobile_non_roi_fps": "1",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_7": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"mobile_non_roi_fps": "1",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_8": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"mobile_non_roi_fps": "1",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					}
				}
			},
			"IP_CH3": {
				"reason": "Not configured"
			},
			"IP_CH4": {
				"reason": "Not configured"
			},
			"IP_CH5": {
				"reason": "Not configured"
			},
			"IP_CH6": {
				"reason": "Not configured"
			},
			"IP_CH7": {
				"reason": "Not configured"
			},
			"IP_CH8": {
				"reason": "Not configured"
			},
			"IP_CH9": {
				"reason": "Not configured"
			},
			"IP_CH10": {
				"reason": "Not configured"
			},
			"IP_CH11": {
				"reason": "Not configured"
			},
			"IP_CH12": {
				"reason": "Not configured"
			}
		}
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set Channel > ROI page parameters.

Request Message

See Channel > ROI > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/ChannelConfig/ROI/Set HTTP/1.1
{
	"version": "1.0",
	"data": {
		"channel_info": {
			"CH1": {
				"main_stream_info": {
					"region_id_1": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						},
						"regionID_index": "region_id_1",
						"chn_index": "CH1",
						"page": "chn_roi",
						"stream_index": "main_stream_info"
					},
					"region_id_2": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_3": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_4": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_5": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_6": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_7": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_8": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					}
				},
				"sub_stream_info": {
					"region_id_1": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_2": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_3": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_4": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_5": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_6": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_7": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_8": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					}
				},
				"mobile_stream_info": {
					"region_id_1": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_2": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_3": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_4": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_5": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_6": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_7": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_8": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					}
				}
			},
			"CH3": {
				"main_stream_info": {
					"region_id_1": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"main_non_roi_fps": "1",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_2": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"main_non_roi_fps": "1",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_3": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"main_non_roi_fps": "1",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_4": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"main_non_roi_fps": "1",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_5": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"main_non_roi_fps": "1",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_6": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"main_non_roi_fps": "1",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_7": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"main_non_roi_fps": "1",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_8": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"main_non_roi_fps": "1",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					}
				},
				"sub_stream_info": {
					"region_id_1": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"sub_non_roi_fps": "1",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_2": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"sub_non_roi_fps": "1",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_3": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"sub_non_roi_fps": "1",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_4": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"sub_non_roi_fps": "1",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_5": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"sub_non_roi_fps": "1",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_6": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"sub_non_roi_fps": "1",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_7": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"sub_non_roi_fps": "1",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_8": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"sub_non_roi_fps": "1",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					}
				},
				"mobile_stream_info": {
					"region_id_1": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"mobile_non_roi_fps": "1",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_2": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"mobile_non_roi_fps": "1",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_3": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"mobile_non_roi_fps": "1",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_4": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"mobile_non_roi_fps": "1",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_5": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"mobile_non_roi_fps": "1",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_6": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"mobile_non_roi_fps": "1",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_7": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"mobile_non_roi_fps": "1",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					},
					"region_id_8": {
						"roi_switch": false,
						"roi_level": "Lowest",
						"mobile_non_roi_fps": "1",
						"rect": {
							"left": 0,
							"top": 0,
							"width": 0,
							"height": 0
						}
					}
				}
			}
		}
	}
}

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Video Color

Function

This API is used to get or set Video Color page parameters.

URI

POST  /API/ChannelConfig/Color/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range, Get, Set , Default.

Range

Function

This API is used to get parameter range for Channel > Video Color page.

Note:

The Range provides reference information for client UI input limits and API request limits. When sending Get and Set requests, the parameters must be strictly limited according to the Range, otherwise the request may be rejected by the device.

Request Message

None.

Sample:

POST /API/ChannelConfig/Color/Range HTTP/1.1
{
	"version": "1.0",
	"data": {}
}

Response Message

Parameter Description

Table 1

ParameterRangeTypeDescription
channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…” WIFI_CH1x”
The number of channels depends on the capabilities of the device.
string arrayEach array bit represents a channel with a string.

Table 2

ParameterRangeTypeDescription
channel_infoJSON ObjectChannel Information JSON show as follow Table 3

Table 3

ParameterRangeTypeDescription
CH1Json ObjectJSON show as follow Table 4
Json Object
IP_CH1Json Object
Json Object
WIFI_CH1Json Object
Json Object

Table 4

ParameterRangeTypeDescription
status"Offline",
"Online"
stringChannel online status, only for digital channels.
Note: This field does not exist when the channel is online.
hue0-255intHue
bright0-255intBright
contrast0-255intContrast
saturation0-255intSaturation
sharpness0-255intSharpness
support_defaultboolWhether to restore the default value.

Tips:

The response message of the Range request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {
		"channel_max": 16,
		"channel_info": {
			"type": "object",
			"items": {
				"CH1": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Off-line",
								"On-line"
							]
						},
						"hue": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"sharpness": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"bright": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"contrast": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"saturation": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"support_default": {
							"type": "bool"
						}
					}
				},
				"CH2": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Off-line",
								"On-line"
							]
						},
						"hue": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"sharpness": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"bright": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"contrast": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"saturation": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"support_default": {
							"type": "bool"
						}
					}
				},
				"CH3": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Off-line",
								"On-line"
							]
						},
						"hue": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"sharpness": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"bright": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"contrast": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"saturation": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"support_default": {
							"type": "bool"
						}
					}
				},
				"CH4": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Off-line",
								"On-line"
							]
						},
						"hue": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"sharpness": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"bright": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"contrast": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"saturation": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"support_default": {
							"type": "bool"
						}
					}
				},
				"CH5": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Off-line",
								"On-line"
							]
						},
						"sharpness": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"bright": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"contrast": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"saturation": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"support_default": {
							"type": "bool"
						}
					}
				},
				"CH6": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Off-line",
								"On-line"
							]
						},
						"hue": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"sharpness": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"bright": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"contrast": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"saturation": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"support_default": {
							"type": "bool"
						}
					}
				},
				"CH7": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Off-line",
								"On-line"
							]
						},
						"hue": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"sharpness": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"bright": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"contrast": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"saturation": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"support_default": {
							"type": "bool"
						}
					}
				},
				"CH8": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Off-line",
								"On-line"
							]
						},
						"hue": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"sharpness": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"bright": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"contrast": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"saturation": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"support_default": {
							"type": "bool"
						}
					}
				},
				"CH9": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Off-line",
								"On-line"
							]
						},
						"hue": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"sharpness": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"bright": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"contrast": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"saturation": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"support_default": {
							"type": "bool"
						}
					}
				},
				"CH10": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Off-line",
								"On-line"
							]
						},
						"hue": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"sharpness": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"bright": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"contrast": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"saturation": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"support_default": {
							"type": "bool"
						}
					}
				},
				"CH11": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Off-line",
								"On-line"
							]
						},
						"hue": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"sharpness": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"bright": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"contrast": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"saturation": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"support_default": {
							"type": "bool"
						}
					}
				},
				"CH12": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Off-line",
								"On-line"
							]
						},
						"hue": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"sharpness": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"bright": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"contrast": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"saturation": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"support_default": {
							"type": "bool"
						}
					}
				},
				"CH13": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Off-line",
								"On-line"
							]
						},
						"hue": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"sharpness": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"bright": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"contrast": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"saturation": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"support_default": {
							"type": "bool"
						}
					}
				},
				"CH14": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Off-line",
								"On-line"
							]
						},
						"hue": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"sharpness": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"bright": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"contrast": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"saturation": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"support_default": {
							"type": "bool"
						}
					}
				},
				"CH15": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Off-line",
								"On-line"
							]
						},
						"hue": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"sharpness": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"bright": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"contrast": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"saturation": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"support_default": {
							"type": "bool"
						}
					}
				},
				"CH16": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Off-line",
								"On-line"
							]
						},
						"hue": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"sharpness": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"bright": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"contrast": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"saturation": {
							"type": "int32",
							"min": 0,
							"max": 255
						},
						"support_default": {
							"type": "bool"
						}
					}
				}
			}
		}
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get Channel > Video Color page parameters.

Request Message

None.

Sample:

POST /API/ChannelConfig/Color/Get HTTP/1.1
{
	"version": "1.0",
	"data": {}
}

Response Message

See Channel> Video Color > Parameter Description > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {
		"channel_info": {
			"CH1": {
				"hue": 128,
				"bright": 128,
				"contrast": 128,
				"saturation": 128,
				"sharpness": 128,
				"support_default": true
			},
			"CH2": {
				"status": "Off-line"
			},
			"CH3": {
				"status": "Off-line"
			},
			"CH4": {
				"status": "Off-line"
			},
			"CH5": {
				"bright": 128,
				"contrast": 128,
				"saturation": 128,
				"sharpness": 128,
				"support_default": false
			},
			"CH6": {
				"status": "Off-line"
			},
			"CH7": {
				"status": "Off-line"
			},
			"CH8": {
				"status": "Off-line"
			},
			"CH9": {
				"status": "Off-line"
			},
			"CH10": {
				"status": "Off-line"
			},
			"CH11": {
				"status": "Off-line"
			},
			"CH12": {
				"status": "Off-line"
			},
			"CH13": {
				"status": "Off-line"
			},
			"CH14": {
				"hue": 128,
				"bright": 128,
				"contrast": 128,
				"saturation": 128,
				"sharpness": 128,
				"support_default": true
			},
			"CH15": {
				"hue": 128,
				"bright": 128,
				"contrast": 128,
				"saturation": 128,
				"sharpness": 128,
				"support_default": true
			},
			"CH16": {
				"status": "Off-line"
			}
		}
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set Channel > Video Color page parameters.

Request Message

See Channel > Video Color > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/ChannelConfig/Color/Set HTTP/1.1
{
	"version": "1.0",
	"data": {
		"channel_info": {
			"CH1": {
				"hue": 128,
				"bright": 128,
				"contrast": 128,
				"saturation": 128,
				"sharpness": 192,
				"support_default": true,
				"last_hue": 50,
				"last_bright": 50,
				"last_contrast": 50,
				"last_saturation": 50,
				"last_sharpness": 50,
				"SunRise_time": "00:00",
				"SunSet_time": "00:00",
				"palette": "White Hot"
			}
		}
	}
}

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Default

Function

This API is used to get Channel > Video Color page parameters.

Request Message

See Channel> Video Color > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/ChannelConfig/Color/Default HTTP/1.1
{
	"version": "1.0",
	"data": {
		"channel": [
			"CH1"
		]
	}
}

Response Message

See Channel> Video Color > Parameter Description > Table 2 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {
		"channel_info": {
			"CH1": {
				"hue": 128,
				"bright": 128,
				"contrast": 128,
				"saturation": 128,
				"sharpness": 128,
				"support_default": true
			}
		}
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Video Cover

Function

This API is used to get or set Video Cover page parameters.

URI

POST  /API/ChannelConfig/VideoCover/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range, Get, Set.

Range

Function

This API is used to get parameter range for Channel > Video Cover page.

Note:

The Range provides reference information for client UI input limits and API request limits. When sending Get and Set requests, the parameters must be strictly limited according to the Range, otherwise the request may be rejected by the device.

Request Message

None.

Sample:

POST /API/ChannelConfig/VideoCover/Range HTTP/1.1
{
	"version": "1.0",
	"data": {}
}

Response Message

Parameter Description

Table 1

ParameterRangeTypeDescription
channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…” WIFI_CH1x”
The number of channels depends on the capabilities of the device.
string arrayEach array bit represents a channel with a string.

Table 2

ParameterRangeTypeDescription
channel_infoJSON ObjectChannel Information JSON show as follow Table 3
channel_maxIntMaximum number of channels
support_copyboolPage support copy (NVR, DVR dedicated).

Table 3

ParameterRangeTypeDescription
CH1Json ObjectJSON show as follow Table 4
Json Object
IP_CH1Json Object
Json Object
WIFI_CH1Json Object
Json Object

Table 4

ParameterRangeTypeDescription
status"Offline",
"Online"
stringChannel online status, only for digital channels.
Note: This field does not exist when the channel is online.
privacy_zone_enableBoolVideo block switch.
zone_info_pJSON arrayJSON show as follow Table 5
Note: The onvif protocol supports up to four occlusion areas.
copy_ch"digit""analog""wifi"stringSupport channel replication logo (NVR, DVR special).

Table 5

ParameterRangeTypeDescription
zone_no1-8intOccluded area number.
zone_enableboolOccluded area switch.
pointJSON arrayJSON show as follow Table 6

Table 6

ParameterRangeTypeDescription
left0-704intX Coordinate
top0-576intY Coordinate
width0-704intWidth
height0-576intHeight

Tips:

The response message of the Range request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {
		"channel_max": 16,
		"channel_info": {
			"type": "object",
			"items": {
				"CH1": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"privacy_zone_enable": {
							"type": "bool"
						},
						"zone_info": {
							"type": "array",
							"min_size": 0,
							"max_size": 4,
							"items": [
								{
									"zone_no": 1,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 2,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 3,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 4,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								}
							]
						}
					}
				},
				"CH2": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"privacy_zone_enable": {
							"type": "bool"
						},
						"zone_info": {
							"type": "array",
							"min_size": 0,
							"max_size": 6,
							"items": [
								{
									"zone_no": 1,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 2,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 3,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 4,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 5,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 6,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								}
							]
						}
					}
				},
				"CH3": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"privacy_zone_enable": {
							"type": "bool"
						},
						"zone_info": {
							"type": "array",
							"min_size": 0,
							"max_size": 4,
							"items": [
								{
									"zone_no": 1,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 2,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 3,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 4,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								}
							]
						}
					}
				},
				"CH4": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"privacy_zone_enable": {
							"type": "bool"
						},
						"zone_info": {
							"type": "array",
							"min_size": 0,
							"max_size": 4,
							"items": [
								{
									"zone_no": 1,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 2,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 3,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 4,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								}
							]
						}
					}
				},
				"CH5": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"zone_info": {
							"type": "array",
							"min_size": 0,
							"max_size": 4,
							"items": [
								{
									"zone_no": 1,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 2,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 3,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 4,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								}
							]
						}
					}
				},
				"CH6": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"privacy_zone_enable": {
							"type": "bool"
						},
						"zone_info": {
							"type": "array",
							"min_size": 0,
							"max_size": 4,
							"items": [
								{
									"zone_no": 1,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 2,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 3,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 4,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								}
							]
						}
					}
				},
				"CH7": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"privacy_zone_enable": {
							"type": "bool"
						},
						"zone_info": {
							"type": "array",
							"min_size": 0,
							"max_size": 4,
							"items": [
								{
									"zone_no": 1,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 2,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 3,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 4,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								}
							]
						}
					}
				},
				"CH8": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"privacy_zone_enable": {
							"type": "bool"
						},
						"zone_info": {
							"type": "array",
							"min_size": 0,
							"max_size": 4,
							"items": [
								{
									"zone_no": 1,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 2,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 3,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 4,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								}
							]
						}
					}
				},
				"CH9": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"privacy_zone_enable": {
							"type": "bool"
						},
						"zone_info": {
							"type": "array",
							"min_size": 0,
							"max_size": 4,
							"items": [
								{
									"zone_no": 1,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 2,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 3,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 4,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								}
							]
						}
					}
				},
				"CH10": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"privacy_zone_enable": {
							"type": "bool"
						},
						"zone_info": {
							"type": "array",
							"min_size": 0,
							"max_size": 6,
							"items": [
								{
									"zone_no": 1,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 2,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 3,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 4,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 5,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 6,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								}
							]
						}
					}
				},
				"CH11": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"privacy_zone_enable": {
							"type": "bool"
						},
						"zone_info": {
							"type": "array",
							"min_size": 0,
							"max_size": 4,
							"items": [
								{
									"zone_no": 1,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 2,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 3,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 4,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								}
							]
						}
					}
				},
				"CH12": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"privacy_zone_enable": {
							"type": "bool"
						},
						"zone_info": {
							"type": "array",
							"min_size": 0,
							"max_size": 4,
							"items": [
								{
									"zone_no": 1,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 2,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 3,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 4,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								}
							]
						}
					}
				},
				"CH13": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"privacy_zone_enable": {
							"type": "bool"
						},
						"zone_info": {
							"type": "array",
							"min_size": 0,
							"max_size": 4,
							"items": [
								{
									"zone_no": 1,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 2,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 3,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 4,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								}
							]
						}
					}
				},
				"CH14": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"privacy_zone_enable": {
							"type": "bool"
						},
						"zone_info": {
							"type": "array",
							"min_size": 0,
							"max_size": 4,
							"items": [
								{
									"zone_no": 1,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 2,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 3,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 4,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								}
							]
						}
					}
				},
				"CH15": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"privacy_zone_enable": {
							"type": "bool"
						},
						"zone_info": {
							"type": "array",
							"min_size": 0,
							"max_size": 4,
							"items": [
								{
									"zone_no": 1,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 2,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 3,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 4,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								}
							]
						}
					}
				},
				"CH16": {
					"type": "object",
					"items": {
						"status": {
							"description": "Only offline channel has this variable.",
							"type": "string",
							"mode": "r",
							"items": [
								"Offline",
								"Online"
							]
						},
						"privacy_zone_enable": {
							"type": "bool"
						},
						"zone_info": {
							"type": "array",
							"min_size": 0,
							"max_size": 4,
							"items": [
								{
									"zone_no": 1,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 2,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 3,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								},
								{
									"zone_no": 4,
									"zone_enable": {
										"type": "bool"
									},
									"rect": {
										"type": "object",
										"items": {
											"left": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"top": {
												"type": "int32",
												"min": 0,
												"max": 576
											},
											"width": {
												"type": "int32",
												"min": 0,
												"max": 704
											},
											"height": {
												"type": "int32",
												"min": 0,
												"max": 576
											}
										}
									}
								}
							]
						}
					}
				}
			}
		}
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get Channel > Video Cover page parameters.

Request Message

None.

Sample:

POST /API/ChannelConfig/VideoCover/Get HTTP/1.1
{
	"version": "1.0",
	"data": {}
}

Response Message

See Channel> Video Cover > Parameter Description > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {
		"channel_info": {
			"CH1": {
				"privacy_zone_enable": false,
				"zone_info": [
					{
						"zone_no": 1,
						"zone_enable": false,
						"rect": {
							"left": 60,
							"top": 376,
							"width": 100,
							"height": 100
						}
					},
					{
						"zone_no": 2,
						"zone_enable": false,
						"rect": {
							"left": 220,
							"top": 376,
							"width": 100,
							"height": 100
						}
					},
					{
						"zone_no": 3,
						"zone_enable": false,
						"rect": {
							"left": 380,
							"top": 376,
							"width": 100,
							"height": 100
						}
					},
					{
						"zone_no": 4,
						"zone_enable": false,
						"rect": {
							"left": 540,
							"top": 376,
							"width": 100,
							"height": 100
						}
					}
				]
			},
			"CH2": {
				"status": "Offline"
			},
			"CH3": {
				"status": "Offline"
			},
			"CH4": {
				"status": "Offline"
			},
			"CH5": {
				"zone_info": [
					{
						"zone_no": 1,
						"zone_enable": false,
						"rect": {
							"left": 100,
							"top": 100,
							"width": 100,
							"height": 100
						}
					},
					{
						"zone_no": 2,
						"zone_enable": false,
						"rect": {
							"left": 250,
							"top": 100,
							"width": 100,
							"height": 100
						}
					},
					{
						"zone_no": 3,
						"zone_enable": false,
						"rect": {
							"left": 400,
							"top": 100,
							"width": 100,
							"height": 100
						}
					},
					{
						"zone_no": 4,
						"zone_enable": false,
						"rect": {
							"left": 550,
							"top": 100,
							"width": 100,
							"height": 100
						}
					}
				]
			},
			"CH6": {
				"status": "Offline"
			},
			"CH7": {
				"status": "Offline"
			},
			"CH8": {
				"status": "Offline"
			},
			"CH9": {
				"status": "Offline"
			},
			"CH10": {
				"status": "Offline"
			},
			"CH11": {
				"status": "Offline"
			},
			"CH12": {
				"status": "Offline"
			},
			"CH13": {
				"status": "Offline"
			},
			"CH14": {
				"privacy_zone_enable": false,
				"zone_info": [
					{
						"zone_no": 1,
						"zone_enable": false,
						"rect": {
							"left": 60,
							"top": 100,
							"width": 100,
							"height": 100
						}
					},
					{
						"zone_no": 2,
						"zone_enable": false,
						"rect": {
							"left": 220,
							"top": 100,
							"width": 100,
							"height": 100
						}
					},
					{
						"zone_no": 3,
						"zone_enable": false,
						"rect": {
							"left": 380,
							"top": 100,
							"width": 100,
							"height": 100
						}
					},
					{
						"zone_no": 4,
						"zone_enable": false,
						"rect": {
							"left": 540,
							"top": 100,
							"width": 100,
							"height": 100
						}
					}
				]
			},
			"CH15": {
				"privacy_zone_enable": false,
				"zone_info": [
					{
						"zone_no": 1,
						"zone_enable": false,
						"rect": {
							"left": 60,
							"top": 100,
							"width": 100,
							"height": 100
						}
					},
					{
						"zone_no": 2,
						"zone_enable": false,
						"rect": {
							"left": 220,
							"top": 100,
							"width": 100,
							"height": 100
						}
					},
					{
						"zone_no": 3,
						"zone_enable": false,
						"rect": {
							"left": 380,
							"top": 100,
							"width": 100,
							"height": 100
						}
					},
					{
						"zone_no": 4,
						"zone_enable": false,
						"rect": {
							"left": 540,
							"top": 100,
							"width": 100,
							"height": 100
						}
					}
				]
			},
			"CH16": {
				"status": "Offline"
			}
		}
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set Channel > Video Color page parameters.

Request Message

See Channel > Video Color > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/ChannelConfig/VideoCover/Set HTTP/1.1
{
	"version": "1.0",
	"data": {
		"channel_info": {
			"CH1": {
				"hue": 128,
				"bright": 128,
				"contrast": 128,
				"saturation": 128,
				"sharpness": 192,
				"support_default": true,
				"last_hue": 50,
				"last_bright": 50,
				"last_contrast": 50,
				"last_saturation": 50,
				"last_sharpness": 50,
				"SunRise_time": "00:00",
				"SunSet_time": "00:00",
				"palette": "White Hot"
			}
		}
	}
}

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Video Crop

Function

This API is used to get or set Video Crop page parameters.

URI

POST /API/ChannelConfig/VideoCrop/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range, Get, Set.

Range

Function

This API is used to get parameter range for Channel > Video Crop page.

Note:

The Range provides reference information for client UI input limits and API request limits. When sending Get and Set requests, the parameters must be strictly limited according to the Range, otherwise the request may be rejected by the device.

Request Message

None.

Sample:

POST /API/ChannelConfig/VideoCrop/Range HTTP/1.1
To be added

Response Message

Parameter Description

Table 1

ParameterRangeTypeDescription
channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…” WIFI_CH1x”
The number of channels depends on the capabilities of the device.
string arrayEach array bit represents a channel with a string.

Table 2

ParameterRangeTypeDescription
channel_infoJSON ObjectChannel Information JSON show as follow Table 3
channel_maxintMaximum number of channels.

Table 3

ParameterRangeTypeDescription
CH1Json ObjectJSON show as follow Table 4
Json Object
IP_CH1Json Object
Json Object
WIFI_CH1Json Object
Json Object

Table 4

ParameterRangeTypeDescription
status"Offline",
"Online"
stringChannel online status, only for digital channels. Note: This field does not exist when the channel is online.
enableboolEnable switch.
fps1-10intCrop Fps
zone_infoJSON arrayJSON show as follow Table 5
Note: Currently only two regions are supported.

Table 5

ParameterRangeTypeDescription
zone_no1-2intZone number
rectJSON objectJSON show as follow Table 6

Table 6

ParameterRangeTypeDescription
left0-704intLeft
top0-576intTop
width0-704intWidth
height0-576intHeight

Tips:

The response message of the Range request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
To be added.

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get Channel > Video Crop page parameters.

Request Message

None.

Sample:

POST /API/ChannelConfig/VideoCrop/Get HTTP/1.1
To be added

Response Message

See Channel> Video Crop > Parameter Description > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
To be added

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set Channel > Video Crop page parameters.

Request Message

See Channel > Video Crop > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/ChannelConfig/VideoCrop/Set HTTP/1.1
To be added

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
To be added

Error Code

See Response Messages Body and Common error_code for more information.

Stream

Encode

Function

This API is used to get or set MainStream, SubStream, MobileStream, and EventStream page parameters.

URI

POST /API/StreamConfig/{Page}/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
PageYESPage name, including "MainStream", "SubStream", "MobileStream", "EventStream"
ActionYESRequest action, including Range, Get, Set.

Range

Function

This API is used to get parameter range for Stream > Encode page.

Note:

The Range provides reference information for client UI input limits and API request limits. When sending Get and Set requests, the parameters must be strictly limited according to the Range , otherwise the request may be rejected by the device.

The following uses the Range request of the MainStream page as an example to describe this API.

Request Message

None.

Sample:

POST /API/StreamConfig/MainStream/Range HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 1

ParameterRangeTypeDescription
channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…” WIFI_CH1x”
The number of channels depends on the capabilities of the device.
string arrayEach array bit represents a channel with a string.

Table 2

ParameterRangeTypeDescription
channel_infoJSON ObjectChannel Information JSON show as follow Table 3
channel_maxintTotal number of channels on the device.
support_copyboolWhether the page support copy (only for NVR and DVR)
analog_maxintMaximum number of analog channels on the device.
bandwidthobjectInformation show as follow Table 8

Table 3

ParameterRangeTypeDescription
CH1Json ObjectInformation show as follow Table 4
Json Object
IP_CH1Json Object
Json Object
WIFI_CH1Json Object
Json Object

Table 4

ParameterRangeTypeDescription
status"Offline",
"Online"
stringChannel online status, only for digital channels.
Note: This field does not exist when the channel is online.
resolution"320 x 240",
"640 x 480",
"1280x720",
"1280x960",
"1920x1080",
"2304x1296",
"2048x1520",
"2592x1520",
"2592 x 1944",
"3072 x 1728",
"3840 x 2160"
stringResolution
The resolution is linked to the frame rate and the bit rate. If one of the values is passed, the other two must be followed by the value. This linkage rule can be broken by passing the device power value breakStreamLinkage.
fpsintFrame rate
video_encode_type"H.264",|
"H.265",
"H.264+",
"H.265+",
“MJPEG”
stringVideo coding type
bitrate_control"CBR",
"VBR"
stringStream type
video_quality"Lowest",
"Lower",
"Low",
"Medium",
"Higher",
"Highest"
stringImage Quality
Note: This parameter is supported only when Type is the VBR option.
bitrate_mode"Predefined",
"UserDefined"
stringStream mode
bitrate8,16,24,32,48,64,80,96,
128,160,192,224,256,
320,384,448,512,640,768,
896,1024,1280,1536,1792,2048,
3072,4096,5120,6144,7168,8192,
10240,12288,16384,100000
intDefault stream size
bitrate_defaultJSON ObjectJSON show as follow Table 5
custom_bitrateintCustom stream size
audioboolAudio switch.
i_frame_intervalintI-frame rate interval
i_frame_interval_rateintThe I-frame interval is changed to x times the frame rate
etrboolDynamic video switch (only for NVR)
etr_resolution"320 x 240",
"640 x 480",
"1280x720",
"1280x960",
"1920x1080",
"2304x1296",
"2048x1520",
"2592x1520",
"2592 x 1944",
"3072 x 1728",
"3840 x 2160"
stringDynamic video resolution (only for NVR)
etr_fpsintThe frame rate of dynamic video recording.(only for NVR)
etr_bitrate8,16,24,32,48,64,80,96,
128,160,192,224,256,
320,384,448,512,640,768,
896,1024,1280,1536,1792,2048,
3072,4096,5120,6144,7168,8192,
10240,12288,16384,100000
intDefault stream size for motion recording.(only for NVR)
etr_custom_bitrateintCustom stream size for dynamic video recording.(only for NVR)
etr_stream_type“Alarm”stringStream type of dynamic video recording.(only for NVR)
etr_video_encode_type"H.264",
"H.265",
"H.264+",
"H.265+",
“MJPEG”
stringVideo encoding type of dynamic recording.(only for NVR)
etr_bitrate_control"CBR",
"VBR"
stringType of dynamic video stream.(only for NVR)
etr_video_quality"Lowest",
"Lower",
"Low",
"Medium",
"Higher",
"Highest"
stringImage quality of dynamic video recording.(only for NVR)
Note: This parameter is supported only when Type is the VBR option.
etr_bitrate_mode"Predefined",
"UserDefined"
stringStream mode of dynamic video recording.(only for NVR)
etr_audioboolAudio switch.(only for NVR)
etr_i_frame_intervalstringI-frame rate interval of dynamic video recording.(only for NVR)
copy_ch"digit",
"analog",
"wifi"
stringFlag that supports channel replication.(only for NVR, DVR)
enable_streamboolMobile stream or fourth stream - switch.
video_encode_level“Baseline”,
“MainProfile”,
“HighProfile”
stringVideo coding level (IPC only) Note: H265 only has MainProfile.
resolution_mode“SUPPORT_D1”,
“SUPPORT_960H“,
“SUPPORT_720P“,
“SUPPORT_1080P“,
“SUPPORT_3W“,
“SUPPORT_720PCIF“,
“SUPPORT_4W“,
“SUPPORT_3W_TVI“,
“SUPPORT_5W“,
“SUPPORT_8W“,
“SUPPORT_3W_HALF“,
“SUPPORT_4W_HALF“,
“SUPPORT_5W_HALF“,
“SUPPORT_8WV2“,
“SUPPORT_8WCVI“,
stringSimulated gun mode. Copy can be performed only when the mode is consistent. Digital channels are not supported.
rtsp_enableboolDetermine the ipc parameters of the Rtsp protocol online and set them to grey.
video_encode_type_resolution_rangestringResolution range
codeparam_setting_notice"noticeRule_1",
"noticeRule_2"
stringTwo rules indicate whether to prompt a restart

Table 5

ParameterRangeTypeDescription
“1280 * 720”JSON ObjectResolution value,JSON show as Table 6
...JSON ObjectResolution value,JSON show as Table 6

Table 6

ParameterRangeTypeDescription
“1”JSON ObjectFrame rate value,JSON show as Table 7
...JSON ObjectFrame rate value,JSON show as Table 7

Table 7

ParameterRangeTypeDescription
default_value256,320,384,448,512,640,768,
896,1024,1280,1536,1792,2048,
3072,4096,5120,6144,8192
intEach fps corresponds to one bitrate default value.

Table 8

ParameterRangeTypeDescription
total_bandwidthintTotal bandwidth (unit: kpbs)
remaining_bandwidthintRemaining available bandwidth (unit: kpbs)

Tips:

The response message of the Range request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {
		"channel_max": 16,
		"support_copy": true,
		"channel_info": {
			"type": "object",
			"items": {
				"CH1": {
					"type": "object",
					"items": {
						"record_switch": {
							"type": "bool"
						},
						"stream_mode": {
							"type": "string",
							"items": [
								"Mainstream",
								"DualStream"
							]
						},
						"prerecord": {
							"type": "bool"
						},
						"anr": {
							"type": "bool"
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						}
					}
				},
				"CH2": {
					"type": "object",
					"items": {
						"record_switch": {
							"type": "bool"
						},
						"stream_mode": {
							"type": "string",
							"items": [
								"Mainstream",
								"DualStream"
							]
						},
						"prerecord": {
							"type": "bool"
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						}
					}
				},
				"CH3": {
					"type": "object",
					"items": {
						"record_switch": {
							"type": "bool"
						},
						"stream_mode": {
							"type": "string",
							"items": [
								"Mainstream",
								"DualStream"
							]
						},
						"prerecord": {
							"type": "bool"
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						}
					}
				},
				"CH4": {
					"type": "object",
					"items": {
						"record_switch": {
							"type": "bool"
						},
						"stream_mode": {
							"type": "string",
							"items": [
								"Mainstream",
								"DualStream"
							]
						},
						"prerecord": {
							"type": "bool"
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						}
					}
				},
				"CH5": {
					"type": "object",
					"items": {
						"record_switch": {
							"type": "bool"
						},
						"stream_mode": {
							"type": "string",
							"items": [
								"Mainstream",
								"DualStream"
							]
						},
						"prerecord": {
							"type": "bool"
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						}
					}
				},
				"CH6": {
					"type": "object",
					"items": {
						"record_switch": {
							"type": "bool"
						},
						"stream_mode": {
							"type": "string",
							"items": [
								"Mainstream",
								"DualStream"
							]
						},
						"prerecord": {
							"type": "bool"
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						}
					}
				},
				"CH7": {
					"type": "object",
					"items": {
						"record_switch": {
							"type": "bool"
						},
						"stream_mode": {
							"type": "string",
							"items": [
								"Mainstream",
								"DualStream"
							]
						},
						"prerecord": {
							"type": "bool"
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						}
					}
				},
				"CH8": {
					"type": "object",
					"items": {
						"record_switch": {
							"type": "bool"
						},
						"stream_mode": {
							"type": "string",
							"items": [
								"Mainstream",
								"DualStream"
							]
						},
						"prerecord": {
							"type": "bool"
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						}
					}
				},
				"CH9": {
					"type": "object",
					"items": {
						"record_switch": {
							"type": "bool"
						},
						"stream_mode": {
							"type": "string",
							"items": [
								"Mainstream",
								"DualStream"
							]
						},
						"prerecord": {
							"type": "bool"
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						}
					}
				},
				"CH10": {
					"type": "object",
					"items": {
						"record_switch": {
							"type": "bool"
						},
						"stream_mode": {
							"type": "string",
							"items": [
								"Mainstream",
								"DualStream"
							]
						},
						"prerecord": {
							"type": "bool"
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						}
					}
				},
				"CH11": {
					"type": "object",
					"items": {
						"record_switch": {
							"type": "bool"
						},
						"stream_mode": {
							"type": "string",
							"items": [
								"Mainstream",
								"DualStream"
							]
						},
						"prerecord": {
							"type": "bool"
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						}
					}
				},
				"CH12": {
					"type": "object",
					"items": {
						"record_switch": {
							"type": "bool"
						},
						"stream_mode": {
							"type": "string",
							"items": [
								"Mainstream",
								"DualStream"
							]
						},
						"prerecord": {
							"type": "bool"
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						}
					}
				},
				"CH13": {
					"type": "object",
					"items": {
						"record_switch": {
							"type": "bool"
						},
						"stream_mode": {
							"type": "string",
							"items": [
								"Mainstream",
								"DualStream"
							]
						},
						"prerecord": {
							"type": "bool"
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						}
					}
				},
				"CH14": {
					"type": "object",
					"items": {
						"record_switch": {
							"type": "bool"
						},
						"stream_mode": {
							"type": "string",
							"items": [
								"Mainstream",
								"DualStream"
							]
						},
						"prerecord": {
							"type": "bool"
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						}
					}
				},
				"CH15": {
					"type": "object",
					"items": {
						"record_switch": {
							"type": "bool"
						},
						"stream_mode": {
							"type": "string",
							"items": [
								"Mainstream",
								"DualStream"
							]
						},
						"prerecord": {
							"type": "bool"
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						}
					}
				},
				"CH16": {
					"type": "object",
					"items": {
						"record_switch": {
							"type": "bool"
						},
						"stream_mode": {
							"type": "string",
							"items": [
								"Mainstream",
								"DualStream"
							]
						},
						"prerecord": {
							"type": "bool"
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						}
					}
				}
			}
		}
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get parameter for Stream > Encode page.

Note:

The following uses the Get request of the MainStream page as an example to describe this API.

Request Message

None.

Sample:

POST /API/StreamConfig/MainStream/Get HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

See Stream > Encode > Parameter Description > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {
		"channel_info": {
			"CH1": {
				"rtsp_enable": false,
				"stream_type": "Normal",
				"video_encode_type": "H.265",
				"resolution": "1920 x 1080",
				"fps": 30,
				"bitrate_control": "CBR",
				"video_quality": "Highest",
				"bitrate_mode": "Predefined",
				"bitrate": 2048,
				"custom_bitrate": 2048,
				"audio": true,
				"i_frame_interval": 60,
				"etr": false,
				"etr_stream_type": "Alarm",
				"etr_resolution": "1920 x 1080",
				"etr_fps": 30,
				"etr_video_encode_type": "H.265",
				"etr_bitrate_control": "CBR",
				"etr_video_quality": "Highest",
				"etr_bitrate_mode": "Predefined",
				"etr_bitrate": 4096,
				"etr_custom_bitrate": 4096,
				"etr_audio": true,
				"etr_i_frame_interval": 60
			},
			"CH2": {
				"rtsp_enable": false,
				"status": "Offline"
			},
			"CH3": {
				"reason": "This channel not configured!"
			},
			"CH4": {
				"reason": "This channel not configured!"
			},
			"CH5": {
				"rtsp_enable": false,
				"status": "Offline"
			},
			"CH6": {
				"rtsp_enable": false,
				"status": "Offline"
			},
			"CH7": {
				"rtsp_enable": false,
				"status": "Offline"
			},
			"CH8": {
				"reason": "This channel not configured!"
			},
			"CH9": {
				"reason": "This channel not configured!"
			},
			"CH10": {
				"reason": "This channel not configured!"
			},
			"CH11": {
				"rtsp_enable": false,
				"status": "Offline"
			},
			"CH12": {
				"reason": "This channel not configured!"
			},
			"CH13": {
				"reason": "This channel not configured!"
			},
			"CH14": {
				"rtsp_enable": false,
				"stream_type": "Normal",
				"video_encode_type": "H.264",
				"resolution": "1920 x 1080",
				"fps": 25,
				"bitrate_control": "CBR",
				"video_quality": "Highest",
				"bitrate_mode": "UserDefined",
				"bitrate": 256,
				"custom_bitrate": 1024,
				"audio": true,
				"i_frame_interval": 50
			},
			"CH15": {
				"rtsp_enable": false,
				"status": "Offline"
			},
			"CH16": {
				"rtsp_enable": false,
				"stream_type": "Normal",
				"video_encode_type": "H.264+",
				"resolution": "2560 x 1440",
				"fps": 30,
				"bitrate_control": "CBR",
				"video_quality": "Highest",
				"bitrate_mode": "Predefined",
				"bitrate": 6144,
				"custom_bitrate": 6144,
				"audio": true,
				"i_frame_interval": 60,
				"etr": false,
				"etr_stream_type": "Alarm",
				"etr_resolution": "2560 x 1440",
				"etr_fps": 60,
				"etr_video_encode_type": "H.265",
				"etr_bitrate_control": "CBR",
				"etr_video_quality": "Highest",
				"etr_bitrate_mode": "Predefined",
				"etr_bitrate": 4096,
				"etr_custom_bitrate": 4096,
				"etr_audio": true,
				"etr_i_frame_interval": 120
			}
		}
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set parameter for Stream > Encode page.

Note:

The following uses the Set request of the MainStream page as an example to describe this API.

Request Message

See Stream > Encode > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/StreamConfig/MainStream/Set HTTP/1.1
{
	"version": "1.0",
	"data": {
		"channel_info": {
			"CH1": {
				"rtsp_enable": false,
				"stream_type": "Normal",
				"video_encode_type": "H.265",
				"resolution": "1920 x 1080",
				"fps": 30,
				"bitrate_control": "CBR",
				"video_quality": "Highest",
				"bitrate_mode": "Predefined",
				"bitrate": 2048,
				"custom_bitrate": 2048,
				"audio": true,
				"i_frame_interval": 60,
				"etr": false,
				"etr_stream_type": "Alarm",
				"etr_resolution": "1920 x 1080",
				"etr_fps": 30,
				"etr_video_encode_type": "H.265",
				"etr_bitrate_control": "CBR",
				"etr_video_quality": "Highest",
				"etr_bitrate_mode": "Predefined",
				"etr_bitrate": 4096,
				"etr_custom_bitrate": 4096,
				"etr_audio": true,
				"etr_i_frame_interval": 60,
				"chn_index": "CH1"
			},
			"CH14": {
				"rtsp_enable": false,
				"stream_type": "Normal",
				"video_encode_type": "H.264",
				"resolution": "1920 x 1080",
				"fps": 25,
				"bitrate_control": "CBR",
				"video_quality": "Highest",
				"bitrate_mode": "UserDefined",
				"bitrate": 256,
				"custom_bitrate": 1024,
				"audio": true,
				"i_frame_interval": 50
			},
			"CH16": {
				"rtsp_enable": false,
				"stream_type": "Normal",
				"video_encode_type": "H.264+",
				"resolution": "2560 x 1440",
				"fps": 30,
				"bitrate_control": "CBR",
				"video_quality": "Highest",
				"bitrate_mode": "Predefined",
				"bitrate": 6144,
				"custom_bitrate": 6144,
				"audio": true,
				"i_frame_interval": 60,
				"etr": false,
				"etr_stream_type": "Alarm",
				"etr_resolution": "2560 x 1440",
				"etr_fps": 30,
				"etr_video_encode_type": "H.265",
				"etr_bitrate_control": "CBR",
				"etr_video_quality": "Highest",
				"etr_bitrate_mode": "Predefined",
				"etr_bitrate": 4096,
				"etr_custom_bitrate": 4096,
				"etr_audio": true,
				"etr_i_frame_interval": 120
			}
		}
	}
}

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Capture

Function

This API is used to get or set Capture page parameters.

URI

POST /API/StreamConfig/Capture/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range, Get, Set.

Range

Function

This API is used to get parameter range for Stream > Capture page.

Note:

The Range provides reference information for client UI input limits and API request limits. When sending Get and Set requests, the parameters must be strictly limited according to the Range , otherwise the request may be rejected by the device.

Request Message

None.

Sample:

POST /API/StreamConfig/Capture/Range HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 1

ParameterRangeTypeDescription
channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…” WIFI_CH1x”
The number of channels depends on the capabilities of the device.
string arrayEach array bit represents a channel with a string.

Table 2

ParameterRangeTypeDescription
channel_infoJSON ObjectChannel Information JSON show as follow Table 3

Table 3

ParameterRangeTypeDescription
CH1Json ObjectInformation show as follow Table 4
Json Object
IP_CH1Json Object
Json Object
WIFI_CH1Json Object
Json Object

Table 4

ParameterRangeTypeDescription
auto_capturefalse:off,
true:on
boolAutomatic capture switch
stream_type"Mainstream",
"Substream"
stringStream type
normal_interval5,10,30,60,600,1800,3600intNormal Image capture interval
Unit: Second
alarm_intervalSame as normal_interval fieldintParameter Description Value Alarm Indicates the alarm type capture interval.
Unit: Second
alarm_resolutionstringPicture resolution
alarm_quality“Highest",
"Higher",
"Medium",
"Low",
"Lower",
"Lowest"
stringPicture quality
copy_ch"digit",
"analog",
"wifi"
stringSupport channel replication logo (noly for NVR, DVR)

Table 5

ParameterRangeTypeDescription
auto_capture_used0~MAX_PARA_CHN_NUMarrayId of the channel where the automatic capture function is enabled.
max_auto_capture_num16intThe maximum number of open channels supported by automatic capture.

Tips:

The response message of the Range request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {
		"channel_max": 16,
		"support_copy": true,
		"channel_info": {
			"type": "object",
			"items": {
				"CH1": {
					"type": "object",
					"items": {
						"record_switch": {
							"type": "bool"
						},
						"stream_mode": {
							"type": "string",
							"items": [
								"Mainstream",
								"DualStream"
							]
						},
						"prerecord": {
							"type": "bool"
						},
						"anr": {
							"type": "bool"
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						}
					}
				},
				"CH2": {
					"type": "object",
					"items": {
						"record_switch": {
							"type": "bool"
						},
						"stream_mode": {
							"type": "string",
							"items": [
								"Mainstream",
								"DualStream"
							]
						},
						"prerecord": {
							"type": "bool"
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						}
					}
				},
				"CH3": {
					"type": "object",
					"items": {
						"record_switch": {
							"type": "bool"
						},
						"stream_mode": {
							"type": "string",
							"items": [
								"Mainstream",
								"DualStream"
							]
						},
						"prerecord": {
							"type": "bool"
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						}
					}
				},
				"CH4": {
					"type": "object",
					"items": {
						"record_switch": {
							"type": "bool"
						},
						"stream_mode": {
							"type": "string",
							"items": [
								"Mainstream",
								"DualStream"
							]
						},
						"prerecord": {
							"type": "bool"
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						}
					}
				},
				"CH5": {
					"type": "object",
					"items": {
						"record_switch": {
							"type": "bool"
						},
						"stream_mode": {
							"type": "string",
							"items": [
								"Mainstream",
								"DualStream"
							]
						},
						"prerecord": {
							"type": "bool"
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						}
					}
				},
				"CH6": {
					"type": "object",
					"items": {
						"record_switch": {
							"type": "bool"
						},
						"stream_mode": {
							"type": "string",
							"items": [
								"Mainstream",
								"DualStream"
							]
						},
						"prerecord": {
							"type": "bool"
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						}
					}
				},
				"CH7": {
					"type": "object",
					"items": {
						"record_switch": {
							"type": "bool"
						},
						"stream_mode": {
							"type": "string",
							"items": [
								"Mainstream",
								"DualStream"
							]
						},
						"prerecord": {
							"type": "bool"
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						}
					}
				},
				"CH8": {
					"type": "object",
					"items": {
						"record_switch": {
							"type": "bool"
						},
						"stream_mode": {
							"type": "string",
							"items": [
								"Mainstream",
								"DualStream"
							]
						},
						"prerecord": {
							"type": "bool"
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						}
					}
				},
				"CH9": {
					"type": "object",
					"items": {
						"record_switch": {
							"type": "bool"
						},
						"stream_mode": {
							"type": "string",
							"items": [
								"Mainstream",
								"DualStream"
							]
						},
						"prerecord": {
							"type": "bool"
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						}
					}
				},
				"CH10": {
					"type": "object",
					"items": {
						"record_switch": {
							"type": "bool"
						},
						"stream_mode": {
							"type": "string",
							"items": [
								"Mainstream",
								"DualStream"
							]
						},
						"prerecord": {
							"type": "bool"
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						}
					}
				},
				"CH11": {
					"type": "object",
					"items": {
						"record_switch": {
							"type": "bool"
						},
						"stream_mode": {
							"type": "string",
							"items": [
								"Mainstream",
								"DualStream"
							]
						},
						"prerecord": {
							"type": "bool"
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						}
					}
				},
				"CH12": {
					"type": "object",
					"items": {
						"record_switch": {
							"type": "bool"
						},
						"stream_mode": {
							"type": "string",
							"items": [
								"Mainstream",
								"DualStream"
							]
						},
						"prerecord": {
							"type": "bool"
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						}
					}
				},
				"CH13": {
					"type": "object",
					"items": {
						"record_switch": {
							"type": "bool"
						},
						"stream_mode": {
							"type": "string",
							"items": [
								"Mainstream",
								"DualStream"
							]
						},
						"prerecord": {
							"type": "bool"
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						}
					}
				},
				"CH14": {
					"type": "object",
					"items": {
						"record_switch": {
							"type": "bool"
						},
						"stream_mode": {
							"type": "string",
							"items": [
								"Mainstream",
								"DualStream"
							]
						},
						"prerecord": {
							"type": "bool"
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						}
					}
				},
				"CH15": {
					"type": "object",
					"items": {
						"record_switch": {
							"type": "bool"
						},
						"stream_mode": {
							"type": "string",
							"items": [
								"Mainstream",
								"DualStream"
							]
						},
						"prerecord": {
							"type": "bool"
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						}
					}
				},
				"CH16": {
					"type": "object",
					"items": {
						"record_switch": {
							"type": "bool"
						},
						"stream_mode": {
							"type": "string",
							"items": [
								"Mainstream",
								"DualStream"
							]
						},
						"prerecord": {
							"type": "bool"
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						}
					}
				}
			}
		}
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get parameter for Stream > Capture page.

Request Message

None.

Sample:

POST /API/StreamConfig/Capture/Get HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

See Stream > Capture > Parameter Description > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {
		"channel_info": {
			"CH1": {
				"auto_capture": true,
				"normal_interval": 600,
				"alarm_interval": 60,
				"copy_ch": "all"
			},
			"CH2": {
				"auto_capture": false,
				"normal_interval": 5,
				"alarm_interval": 5,
				"copy_ch": "all"
			},
			"CH3": {
				"auto_capture": false,
				"normal_interval": 5,
				"alarm_interval": 5,
				"copy_ch": "all"
			},
			"CH4": {
				"auto_capture": false,
				"normal_interval": 5,
				"alarm_interval": 5,
				"copy_ch": "all"
			},
			"CH5": {
				"auto_capture": false,
				"normal_interval": 5,
				"alarm_interval": 5,
				"copy_ch": "all"
			},
			"CH6": {
				"auto_capture": false,
				"normal_interval": 5,
				"alarm_interval": 5,
				"copy_ch": "all"
			},
			"CH7": {
				"auto_capture": false,
				"normal_interval": 5,
				"alarm_interval": 5,
				"copy_ch": "all"
			},
			"CH8": {
				"auto_capture": false,
				"normal_interval": 5,
				"alarm_interval": 5,
				"copy_ch": "all"
			},
			"CH9": {
				"auto_capture": false,
				"normal_interval": 5,
				"alarm_interval": 5,
				"copy_ch": "all"
			},
			"CH10": {
				"auto_capture": false,
				"normal_interval": 5,
				"alarm_interval": 5,
				"copy_ch": "all"
			},
			"CH11": {
				"auto_capture": false,
				"normal_interval": 5,
				"alarm_interval": 5,
				"copy_ch": "all"
			},
			"CH12": {
				"auto_capture": false,
				"normal_interval": 5,
				"alarm_interval": 5,
				"copy_ch": "all"
			},
			"CH13": {
				"auto_capture": false,
				"normal_interval": 5,
				"alarm_interval": 5,
				"copy_ch": "all"
			},
			"CH14": {
				"auto_capture": false,
				"normal_interval": 5,
				"alarm_interval": 5,
				"copy_ch": "all"
			},
			"CH15": {
				"auto_capture": false,
				"normal_interval": 5,
				"alarm_interval": 5,
				"copy_ch": "all"
			},
			"CH16": {
				"auto_capture": false,
				"normal_interval": 5,
				"alarm_interval": 5,
				"copy_ch": "all"
			}
		}
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set parameter for Stream > Capture page.

Request Message

See Stream > Capture > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/StreamConfig/Capture/Set HTTP/1.1
{
	"version": "1.0",
	"data": {
		"channel_info": {
			"CH1": {
				"auto_capture": true,
				"normal_interval": 600,
				"alarm_interval": 60,
				"copy_ch": "all",
				"chn_index": "CH1"
			},
			"CH2": {
				"auto_capture": false,
				"normal_interval": 5,
				"alarm_interval": 5,
				"copy_ch": "all"
			},
			"CH3": {
				"auto_capture": false,
				"normal_interval": 5,
				"alarm_interval": 5,
				"copy_ch": "all"
			},
			"CH4": {
				"auto_capture": false,
				"normal_interval": 5,
				"alarm_interval": 5,
				"copy_ch": "all"
			},
			"CH5": {
				"auto_capture": false,
				"normal_interval": 5,
				"alarm_interval": 5,
				"copy_ch": "all"
			},
			"CH6": {
				"auto_capture": false,
				"normal_interval": 5,
				"alarm_interval": 5,
				"copy_ch": "all"
			},
			"CH7": {
				"auto_capture": false,
				"normal_interval": 5,
				"alarm_interval": 5,
				"copy_ch": "all"
			},
			"CH8": {
				"auto_capture": false,
				"normal_interval": 5,
				"alarm_interval": 5,
				"copy_ch": "all"
			},
			"CH9": {
				"auto_capture": false,
				"normal_interval": 5,
				"alarm_interval": 5,
				"copy_ch": "all"
			},
			"CH10": {
				"auto_capture": false,
				"normal_interval": 5,
				"alarm_interval": 5,
				"copy_ch": "all"
			},
			"CH11": {
				"auto_capture": false,
				"normal_interval": 5,
				"alarm_interval": 5,
				"copy_ch": "all"
			},
			"CH12": {
				"auto_capture": false,
				"normal_interval": 5,
				"alarm_interval": 5,
				"copy_ch": "all"
			},
			"CH13": {
				"auto_capture": false,
				"normal_interval": 5,
				"alarm_interval": 5,
				"copy_ch": "all"
			},
			"CH14": {
				"auto_capture": false,
				"normal_interval": 5,
				"alarm_interval": 5,
				"copy_ch": "all"
			},
			"CH15": {
				"auto_capture": false,
				"normal_interval": 5,
				"alarm_interval": 5,
				"copy_ch": "all"
			},
			"CH16": {
				"auto_capture": false,
				"normal_interval": 5,
				"alarm_interval": 5,
				"copy_ch": "all"
			}
		}
	}
}

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Rtsp Url

Function

This API is used to access the device RTSP Real-time streaming.

URI

POST /API/Preview/StreamUrl/Get/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including only Get .

Get

Function

This API is used to get parameter for Stream > Rtsp Url page.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…” WIFI_CH1x”
The number of channels depends on the capabilities of the device.
string arrayEach array bit represents a channel with a string.

Sample:

POST /API/Preview/StreamUrl/Get HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 2

ParameterRangeTypeDescription
channel_infoJSON ObjectChannel Information JSON show as follow Table 3

Table 3

ParameterRangeTypeDescription
channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…” WIFI_CH1x”
stringChannel number
mainstream_urlMax length: 63 bytestringMainStream URL
substream_urlMax length: 63 bytestringSubStream URL
mobilestream_urlMax length: 63 bytestringMobileStream URL

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {
		"channel_info": [
			{
				"channel": "CH1",
				"mainstream_url": "rtsp://172.16.10.169:80/rtsp/streaming?channel=1&subtype=0",
				"substream_url": "rtsp://172.16.10.169:80/rtsp/streaming?channel=1&subtype=1"
			},
			{
				"channel": "IP_CH1",
				"mainstream_url": "rtsp://172.16.10.169:80/rtsp/streaming?channel=17&subtype=0",
				"substream_url": "rtsp://172.16.10.169:80/rtsp/streaming?channel=17&subtype=1",
				"mobile_stream_url": "rtsp://172.16.10.169:80/rtsp/streaming?channel=17&subtype=2"
			}
		]
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Alarm

Combination Alarm

Function

This API is used to get or set combined alarm parameters.

URI

POST /API/AlarmConfig/Combination/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range, Get, Set.

Range

Function

This API is used to get the combined alarm parameter range.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
channel"CH1"…"CHx",
"IP_CH1"…"IP_CHx",
"WIFI_CH1"…"WIFI_CHx"
The channel supported by the device.
string array

Sample:

POST /API/AlarmConfig/Combination/Range HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 2
ParameterRangeTypeDescription
channel_infoobjectTotal channel information see Table 3.
Table 3
ParameterRangeTypeDescription
CH1objectSee Table 4
object
IP_CH1object
object
WIFI_CH1object
object
Table 4
ParameterRangeTypeDescription
status"Offline", "Online", "Nonsupport"stringChannel online status, only for digital channels. Note: When the channel is online, there is no such field.
enable_alarm"Disable", "Enable"stringjoint alarm enable switch.
combination_configureobject arraycombination alarm configuration, see Table 5
alarm_out"Local->1"…"Local->x"
"IP_CH1->1"…"IP_CHx->x"
The number of channels depends on the function of the device.
string arrayalarm Output channel.
Array members use a string to represent an alarm output channel.
Local->1: open, empty value: close.
latch_time"10","20","40","60"stringAlarm output time.
record_enableboolrecord enable.
record_channel"CH1"…"CHx"
"IP_CH1"…"IP_CHx"
"WIFI_CH1"…"WIFI_CHx"
string arrayChannel of linkage recording.
post_recording"30","60","120","300"stringRecording delay time.
send_emailbool
full_screenboolFullScreen switch (for NVR only).
buzzer"0","10","20","40","60"stringBuzzer buzzing time (for NVR only).
show_messageboolShow Message switch (for NVR only).
ftp_picture_uploadboolChannel snapshot FTP upload switch.
ftp_video_uploadboolChannel video FTP upload switch (for NVR/DVR only).
picture_to_cloudboolPicture upload switch.
video_to_cloudboolVideo cloud upload switch (for NVR/DVR only).
voice_prompts_indexint arrayFile index (0~4294967295, 0 is None, that is, no audio file is selected). Each file is named as "index_filename" (1_i will try), when displayed on the page , to hide "index_", such as "1_i will try", only display "i will try".
voice_prompts_selectint arrayPlay channel, counted by bit (bit0 is local, bit1 corresponds to front-end channel 1, bit2 corresponds to channel 2...).
voice_prompts_timeobject arrayBroadcasting time period setting, there can be no time conflict in the 12 time periods, see Table 6 for details.
copy_ch"digit", "analog", "wifi"stringSupport channel copy flag (for NVR and DVR only).
Table 5
ParameterRangeTypeDescription
alarm_type"AT_MOTION" "AT_PIR" "AT_IO" "AT_PID" "AT_LCD" "AT_SOD" "AT_PD&VD" "AT_FaceAttr" "AT_FD" "AT_CC" "AT_CD" "AT_QD" "AT_LPD" "AT_RSD" "AT_Sound" "AT_VT "stringConfigure the alarm combination type.
alarm_source"IP Camera"
"Analog Channels"
"Local->1"…"Local->x"
string
support_ipc_ioboolWhether the IPC channel supports front-end IO.
Table 6
ParameterRangeTypeDescription
start_hour0~23intStart time h.
start_minute0~59intstart time m.
start_second0~59intstart time s.
end_hour0~23intend time h.
end_minute0~59intend time m.
end_second0~59intend time s.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_max": 16,
        "support_copy": true,
        "channel_info": {
            "type": "object",
            "items": {
                "CH1": {
                    "type": "object",
                    "items": {
                        "status": {
                            "description": "Only offline channel has this variable.",
                            "type": "string",
                            "mode": "r",
                            "items": [
                                "Offline",
                                "Online",
                                "Nonsupport"
                            ]
                        },
                        "enable_alarm": {
                            "type": "string",
                            "items": [
                                "Disable",
                                "Enable"
                            ]
                        },
                        "combination_configure": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 2,
                            "items": [
                                {
                                    "alarm_type": {
                                        "type": "string",
                                        "items": [
                                            "AT_MOTION",
                                            "AT_IO",
                                            "AT_PID",
                                            "AT_LCD",
                                            "AT_SOD",
                                            "AT_PD&VD",
                                            "AT_FR",
                                            "AT_CC",
                                            "AT_CD",
                                            "AT_QD",
                                            "AT_LPD",
                                            "AT_LPR",
                                            "AT_RSD",
                                            "AT_Sound",
                                            "AT_VT",
                                            "AT_Intrusion",
                                            "AT_RegionEntrance",
                                            "AT_RegionExiting"
                                        ]
                                    },
                                    "support_ipc_io": {
                                        "type": "bool"
                                    }
                                }
                            ]
                        },
                        "buzzer": {
                            "type": "string",
                            "items": [
                                "0",
                                "10",
                                "20",
                                "40",
                                "60"
                            ]
                        },
                        "alarm_out": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 17,
                            "items": {
                                "type": "string",
                                "items": [
                                    "Local->1",
                                    "IP_CH1->1"
                                ]
                            }
                        },
                        "latch_time": {
                            "type": "string",
                            "items": [
                                "10",
                                "20",
                                "40",
                                "60"
                            ]
                        },
                        "ftp_picture_upload": {
                            "type": "bool"
                        },
                        "ftp_video_upload": {
                            "type": "bool"
                        },
                        "picture_to_cloud": {
                            "type": "bool"
                        },
                        "video_to_cloud": {
                            "type": "bool"
                        },
                        "record_enable": {
                            "type": "bool"
                        },
                        "record_channel": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 16,
                            "items": {
                                "type": "string",
                                "items": [
                                    "CH1",
                                    "CH2",
                                    "CH3",
                                    "CH4",
                                    "CH5",
                                    "CH6",
                                    "CH7",
                                    "CH8",
                                    "CH9",
                                    "CH10",
                                    "CH11",
                                    "CH12",
                                    "CH13",
                                    "CH14",
                                    "CH15",
                                    "CH16"
                                ]
                            }
                        },
                        "post_recording": {
                            "type": "string",
                            "items": [
                                "30",
                                "60",
                                "120",
                                "300"
                            ]
                        },
                        "show_message": {
                            "type": "bool"
                        },
                        "send_email": {
                            "type": "bool"
                        },
                        "full_screen": {
                            "type": "bool"
                        },
                        "http_listening": {
                            "type": "bool"
                        },
                        "voice_prompts_index": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "voice_prompts_select": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "voice_prompts_time": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "copy_ch": {
                            "type": "string",
                            "items": [
                                "digit",
                                "analog",
                                "wifi",
                                "local",
                                "all"
                            ]
                        }
                    }
                }
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get Combination Alarm parameters.

Request Message

See Alarm > CombinationAlarm > Range > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/AlarmConfig/Combination/Get HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

See Alarm > CombinationAlarm > Range > Parameter Description > Table 2 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {"channel_info": {
        "CH1": {
            "enable_alarm": "Disable",
            "combination_configure": [
                {
                    "alarm_type": "AT_MOTION",
                    "support_ipc_io": true
                },
                {
                    "alarm_type": "AT_MOTION",
                    "support_ipc_io": true
                }
            ],
            "buzzer": "0",
            "alarm_out": [],
            "latch_time": "10",
            "record_enable": true,
            "record_channel": ["CH1"],
            "post_recording": "30",
            "show_message": true,
            "send_email": true,
            "full_screen": false,
            "http_listening": false,
            "ftp_picture_upload": true,
            "ftp_video_upload": false,
            "picture_to_cloud": true,
            "video_to_cloud": false,
            "voice_prompts_index": [
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
            ],
            "voice_prompts_select": [
                1,
                0
            ],
            "voice_prompts_time": [
                {
                    "start_hour": 0,
                    "start_minute": 0,
                    "start_second": 0,
                    "end_hour": 23,
                    "end_minute": 59,
                    "end_second": 59
                },
                {
                    "start_hour": 0,
                    "start_minute": 0,
                    "start_second": 0,
                    "end_hour": 23,
                    "end_minute": 59,
                    "end_second": 59
                },
                {
                    "start_hour": 0,
                    "start_minute": 0,
                    "start_second": 0,
                    "end_hour": 23,
                    "end_minute": 59,
                    "end_second": 59
                },
                {
                    "start_hour": 0,
                    "start_minute": 0,
                    "start_second": 0,
                    "end_hour": 23,
                    "end_minute": 59,
                    "end_second": 59
                },
                {
                    "start_hour": 0,
                    "start_minute": 0,
                    "start_second": 0,
                    "end_hour": 23,
                    "end_minute": 59,
                    "end_second": 59
                },
                {
                    "start_hour": 0,
                    "start_minute": 0,
                    "start_second": 0,
                    "end_hour": 23,
                    "end_minute": 59,
                    "end_second": 59
                },
                {
                    "start_hour": 0,
                    "start_minute": 0,
                    "start_second": 0,
                    "end_hour": 23,
                    "end_minute": 59,
                    "end_second": 59
                },
                {
                    "start_hour": 0,
                    "start_minute": 0,
                    "start_second": 0,
                    "end_hour": 23,
                    "end_minute": 59,
                    "end_second": 59
                },
                {
                    "start_hour": 0,
                    "start_minute": 0,
                    "start_second": 0,
                    "end_hour": 23,
                    "end_minute": 59,
                    "end_second": 59
                },
                {
                    "start_hour": 0,
                    "start_minute": 0,
                    "start_second": 0,
                    "end_hour": 23,
                    "end_minute": 59,
                    "end_second": 59
                },
                {
                    "start_hour": 0,
                    "start_minute": 0,
                    "start_second": 0,
                    "end_hour": 23,
                    "end_minute": 59,
                    "end_second": 59
                },
                {
                    "start_hour": 0,
                    "start_minute": 0,
                    "start_second": 0,
                    "end_hour": 23,
                    "end_minute": 59,
                    "end_second": 59
                }
            ],
            "copy_ch": "all"
        },
        "CH2": {"reason": "Not configured"},
        "CH3": {"reason": "Not configured"},
        "CH4": {"reason": "Not configured"},
        "CH5": {"reason": "Not configured"},
        "CH6": {"reason": "Not configured"},
        "CH7": {"reason": "Not configured"},
        "CH8": {"reason": "Not configured"},
        "CH9": {"reason": "Not configured"},
        "CH10": {"reason": "Not configured"},
        "CH11": {"reason": "Not configured"},
        "CH12": {"reason": "Not configured"},
        "CH13": {"reason": "Not configured"},
        "CH14": {"reason": "Not configured"},
        "CH15": {"reason": "Not configured"},
        "CH16": {"reason": "Not configured"}
    }}
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set combined alarm parameters.

Request Message

See Alarm > CombinationAlarm > Range > Parameter Description > Table 2 for parameter description.

Sample:

POST /API/AlarmConfig/Combination/Set HTTP/1.1
{
    "version": "1.0",
    "data": {"channel_info": {"CH1": {
        "enable_alarm": "Disable",
        "combination_configure": [
            {
                "alarm_type": "AT_MOTION",
                "support_ipc_io": true
            },
            {
                "alarm_type": "AT_MOTION",
                "support_ipc_io": true
            }
        ],
        "buzzer": "0",
        "alarm_out": [],
        "latch_time": "10",
        "record_enable": true,
        "record_channel": ["CH1"],
        "post_recording": "30",
        "show_message": true,
        "send_email": false,
        "full_screen": false,
        "http_listening": false,
        "ftp_picture_upload": true,
        "ftp_video_upload": false,
        "picture_to_cloud": true,
        "video_to_cloud": false,
        "voice_prompts_index": [
            0,
            0,
            0,
            0,
            0,
            0,
            0,
            0,
            0,
            0,
            0,
            0
        ],
        "voice_prompts_select": [
            1,
            0
        ],
        "voice_prompts_time": [
            {
                "start_hour": 0,
                "start_minute": 0,
                "start_second": 0,
                "end_hour": 23,
                "end_minute": 59,
                "end_second": 59
            },
            {
                "start_hour": 0,
                "start_minute": 0,
                "start_second": 0,
                "end_hour": 23,
                "end_minute": 59,
                "end_second": 59
            },
            {
                "start_hour": 0,
                "start_minute": 0,
                "start_second": 0,
                "end_hour": 23,
                "end_minute": 59,
                "end_second": 59
            },
            {
                "start_hour": 0,
                "start_minute": 0,
                "start_second": 0,
                "end_hour": 23,
                "end_minute": 59,
                "end_second": 59
            },
            {
                "start_hour": 0,
                "start_minute": 0,
                "start_second": 0,
                "end_hour": 23,
                "end_minute": 59,
                "end_second": 59
            },
            {
                "start_hour": 0,
                "start_minute": 0,
                "start_second": 0,
                "end_hour": 23,
                "end_minute": 59,
                "end_second": 59
            },
            {
                "start_hour": 0,
                "start_minute": 0,
                "start_second": 0,
                "end_hour": 23,
                "end_minute": 59,
                "end_second": 59
            },
            {
                "start_hour": 0,
                "start_minute": 0,
                "start_second": 0,
                "end_hour": 23,
                "end_minute": 59,
                "end_second": 59
            },
            {
                "start_hour": 0,
                "start_minute": 0,
                "start_second": 0,
                "end_hour": 23,
                "end_minute": 59,
                "end_second": 59
            },
            {
                "start_hour": 0,
                "start_minute": 0,
                "start_second": 0,
                "end_hour": 23,
                "end_minute": 59,
                "end_second": 59
            },
            {
                "start_hour": 0,
                "start_minute": 0,
                "start_second": 0,
                "end_hour": 23,
                "end_minute": 59,
                "end_second": 59
            },
            {
                "start_hour": 0,
                "start_minute": 0,
                "start_second": 0,
                "end_hour": 23,
                "end_minute": 59,
                "end_second": 59
            }
        ],
        "copy_ch": "all",
        "chn_index": "CH1"
    }}}
}

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Cross Counting

Function

This API is used to get or set the line crossing statistics alarm configuration parameters.

URI

POST /API/AlarmConfig/Intelligent/CC/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range, Get, Set.

Range

Function

This API is used to get the Alarm > Cross Counting configuration parameter range.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
channel"CH1"…"CHx",
"IP_CH1"…"IP_CHx",
"WIFI_CH1"…"WIFI_CHx"
The channels supported by the device.
string arrayIPC can only Use "CH1".
page_type"ChannelConfig", "AlarmConfig"stringIt is used to distinguish the data of channel configuration page or alarm configuration page.

Sample:

POST /API/AlarmConfig/Intelligent/CC/Range HTTP/1.1
{
    "version":"1.0",
    "data":{
        "page_type":"AlarmConfig"
    }
}

Response Message

Parameter Description

Table 2
ParameterRangeTypeDescription
channel_infoobjectTotal channel information see Table 3.
channel_maxintThe maximum number of channels.
support_copyboolWhether to support copy.
Table 3
ParameterRangeTypeDescription
CH1objectSee Table 4
object
IP_CH1object
object
WIFI_CH1object
object
Table 4
ParameterRangeTypeDescription
status"Offline","Online","Nonsupport"stringOnline status of the channel, only for digital channels. Note: When the channel is online, there is no such field.
alarm_out"Local->1"…"Local->x"
"IP_CH1->1"…"IP_CHx->x"
The number of channels depends on the function of the device.
string arrayalarm Output channel.
Array members use a string to represent an alarm output channel.
Local->1: open, empty value: close.
latch_time"10","20","40","60"string arrayAlarm output time, IPC: 5 10 20 30
record_enabletrue, falseboolChannel recording switch.
record_channel"CH1"…"CHx"
"IP_CH1"…"IP_CHx"
"WIFI_CH1"…"WIFI_CHx"
string arrayChannel of linkage recording.
post_recording"30","60","120","300"stringRecording delay time, IPC: 0 5 10 20 30.
send_emailtrue, falseboolSend Email switch.
ftp_picture_uploadtrue, falseboolChannel snapshot FTP upload switch (for NVR only).
ftp_video_uploadtrue, falseboolChannel video FTP upload switch (for NVR only).
picture_to_cloudtrue, falseboolPicture upload switch (for NVR only).
video_to_cloudtrue, falseboolVideo cloud upload switch (for NVR only).
full_screenboolFullScreen switch (for NVR only).
http_listeningboolPush switch.
buzzer"0","10","20","40","60"stringBuzzer buzzing time (for NVR only).
show_messageboolShow Message switch (for NVR only).
switchtrue, falsebool
sensitivity1-4intDetection sensitivity.
iva_lines0,1intWhether there will be lines in preview and playback, 0 does not draw lines, 1 draws lines.
voice_promptsintAlarm sound (only for NVR).
rule_infoobjectSee Table 5 for details.
voice_prompts_index0~4294967295intFile index (0~4294967295, 0 means None, that is, no audio file is selected). Each file is named as "index_filename" (1_i will try), on the page When displaying, "index_" should be hidden, such as "1_i will try", and only "i will try" will be displayed.
voice_prompts_selectsize: 0-12int arrayPlaying channel, calculated by bit (bit0 is local, bit1 corresponds to front channel 1, bit2 corresponds to channel 2...).
voice_prompts_timesize: 0-12object arraytime period.
copy_ch"digit", "analog", "wifi"stringSupport channel copy flag (for NVR and DVR only).
is_ai_paramboolDistinguish between ordinary CC and intelligent CC, true: intelligent CC, false: ordinary CC.
detection_type"Motion","Person","Vehicle"stringdetection type.
alarm_num1-255Number of alarms.
start_timestring length: 8stringstart time.
end_timestring length: 8stringend time.
reset_countboolReset warning count.
schedule_enableboolScheduled start.
ptz_operation_supportboolptz control support.
Table 5
ParameterRangeTypeDescription
rule_number1objectrule number 1, see Table 6.
Table 6
ParameterRangeTypeDescription
rule_switchboolrule switch.
rule_type"Normal","A->B","B->A"stringrule type.
rule_lineobjectStrike a line, see Table 7.
rule_rectobjectRectangle, see Table 8.
Table 7
ParameterRangeTypeDescription
x10-704shortx1 coordinate point.
y10-576shorty1 coordinate point.
x20-704shortx2 coordinate point.
y20-576shorty2 coordinate point.
Table 8
ParameterRangeTypeDescription
x10-704shortx1 coordinate point.
y10-576shorty1 coordinate point.
x20-704shortx2 coordinate point.
y20-576shorty2 coordinate point.
x30-704shortx3 coordinate point.
y30-576shorty3 coordinate point.
x40-704shortx4 coordinate point.
y40-576shorty4 coordinate point.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_max": 16,
        "support_copy": true,
        "channel_info": {
            "type": "object",
            "items": {
                "CH1": {
                    "type": "object",
                    "items": {
                        "status": {
                            "description": "Only offline channel has this variable.",
                            "type": "string",
                            "mode": "r",
                            "items": [
                                "Offline",
                                "Online",
                                "Notsupport"
                            ]
                        },
                        "buzzer": {
                            "type": "string",
                            "items": [
                                "0",
                                "10",
                                "20",
                                "40",
                                "60"
                            ]
                        },
                        "alarm_out": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 33,
                            "items": {
                                "type": "string",
                                "items": [
                                    "Local->1"
                                ]
                            }
                        },
                        "latch_time": {
                            "type": "string",
                            "items": [
                                "10",
                                "20",
                                "40",
                                "60"
                            ]
                        },
                        "record_enable": {
                            "type": "bool"
                        },
                        "record_channel": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 16,
                            "items": {
                                "type": "string",
                                "items": [
                                    "CH1",
                                    "CH2",
                                    "CH3",
                                    "CH4",
                                    "CH5",
                                    "CH6",
                                    "CH7",
                                    "CH8",
                                    "CH9",
                                    "CH10",
                                    "CH11",
                                    "CH12",
                                    "CH13",
                                    "CH14",
                                    "CH15",
                                    "CH16"
                                ]
                            }
                        },
                        "post_recording": {
                            "type": "string",
                            "items": [
                                "30",
                                "60",
                                "120",
                                "300"
                            ]
                        },
                        "show_message": {
                            "type": "bool"
                        },
                        "send_email": {
                            "type": "bool"
                        },
                        "full_screen": {
                            "type": "bool"
                        },
                        "http_listening": {
                            "type": "bool"
                        },
                        "ftp_picture_upload": {
                            "type": "bool"
                        },
                        "ftp_video_upload": {
                            "type": "bool"
                        },
                        "picture_to_cloud": {
                            "type": "bool"
                        },
                        "video_to_cloud": {
                            "type": "bool"
                        },
                        "voice_prompts_index": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "voice_prompts_select": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "voice_prompts_time": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "copy_ch": {
                            "type": "string",
                            "items": [
                                "digit",
                                "analog",
                                "wifi",
                                "local",
                                "all"
                            ]
                        }
                    }
                }
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get Alarm > Cross Counting configuration parameters.

Request Message

Parameter Description

See Alarm > CrossCounting > Range > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/AlarmConfig/Intelligent/CC/Get HTTP/1.1
{
    "version":"1.0",
    "data":{
        "page_type":"AlarmConfig"
    }
}

Response Message

Parameter Description

See Alarm > Cross Counting > Range > Parameter Description > Table 2 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "version":"1.0",
    "data":{
        "channel_info":{
            "CH6":{
                "buzzer":"0",
                "alarm_out":[

                ],
                "latch_time":"10",
                "record_enable":true,
                "http_listening":false,
                "record_channel":[
                    "CH6"
                ],
                "post_recording":"30",
                "show_message":true,
                "send_email":true,
                "full_screen":false,
                "ftp_picture_upload":true,
                "ftp_video_upload":false,
                "picture_to_cloud":true,
                "video_to_cloud":false,
                "voice_prompts_index":[
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                "voice_prompts_select":[
                    1,
                    0
                ],
                "voice_prompts_time":[
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    }
                ],
                "copy_ch":"all",
                "chn_index":"CH6"
            }
        },
        "page_type":"AlarmConfig"
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set Alarm > Cross Counting configuration parameters.

Request Message

See Alarm > CrossCounting > Range > Parameter Description > Table 2 for parameter description.

Sample:

POST /API/SystemConfig/Output/Set HTTP/1.1
{
    "version":"1.0",
    "data":{
        "channel_info":{
            "CH6":{
                "buzzer":"0",
                "alarm_out":[

                ],
                "latch_time":"10",
                "record_enable":true,
                "http_listening":false,
                "record_channel":[
                    "CH6"
                ],
                "post_recording":"30",
                "show_message":true,
                "send_email":true,
                "full_screen":false,
                "ftp_picture_upload":true,
                "ftp_video_upload":false,
                "picture_to_cloud":true,
                "video_to_cloud":false,
                "voice_prompts_index":[
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                "voice_prompts_select":[
                    1,
                    0
                ],
                "voice_prompts_time":[
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    }
                ],
                "copy_ch":"all",
                "chn_index":"CH6"
            }
        },
        "page_type":"AlarmConfig"
    }
}

Response Message

None.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Disarming

Function

This API is used to get or set one key disarm parameters.

URI

POST /API/AlarmConfig/Disarming/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range, Get, Set.

Range

Function

This API is used to get Alarm > Disarming parameter range.

Request Message

Parameter Description

None.

Sample:

POST /API/AlarmConfig/Disarming/Range HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 1
ParameterRangeTypeDescription
disarmingbooldisarming switch.
actionobjectSee Table 2 for details.
disarming_channel"CH1"…"CHx",
"IP_CH1"…"IP_CHx",
"WIFI_CH1"…"WIFI_CHx"
The channel supported by the device.
string arraydisarming channel .
channel_infoobjectSee Table 3.
Table 2
ParameterRangeTypeDescription
buzzerboolWhether to disarm the buzzer switch.
alarm_outboolWhether to disarm the alarm output switch.
show_messageboolWhether to disarm the alarm icon switch.
send_emailboolWhether to disarm email switch.
full_screenboolWhether to disarm the full screen switch.
voice_promptsboolWhether to disarm the voice broadcast switch.
event_push_platformboolWhether to disarm event push switch.
Table 3
ParameterRangeTypeDescription
CH1objectSee Table 4.
object
IP_CH1object
object
WIFI_CH1object
object
Table 4
ParameterRangeTypeDescription
disarming_scheduleobject arraySee Table 5.
Table 5
ParameterRangeTypeDescription
schedule_type"Disarming"stringSchedule type.
weekobject arraySee Table 6 for details.
Table 6
ParameterRangeTypeDescription
day"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"string
time0: close the time period
1: open the time period
arrayEach array bit represents half an hour.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "support_copy": true,
        "disarming": {"type": "bool"},
        "action": {
            "type": "object",
            "items": {
                "buzzer": {"type": "bool"},
                "alarm_out": {"type": "bool"},
                "show_message": {"type": "bool"},
                "send_email": {"type": "bool"},
                "full_screen": {"type": "bool"},
                "voice_prompts": {"type": "bool"},
                "event_push_platform": {"type": "bool"},
                "mobile_push": {"type": "bool"}
            }
        },
        "disarming_channel": {
            "type": "array",
            "min_size": 0,
            "max_size": 16,
            "items": {
                "type": "string",
                "items": [
                    "CH1",
                    "CH2",
                    "CH3",
                    "CH4",
                    "CH5",
                    "CH6",
                    "CH7",
                    "CH8",
                    "CH9",
                    "CH10",
                    "CH11",
                    "CH12",
                    "CH13",
                    "CH14",
                    "CH15",
                    "CH16"
                ]
            }
        },
        "channel_info": {
            "type": "object",
            "items": {
                "CH1": {
                    "type": "object",
                    "items": {"disarming_schedule": {
                        "type": "array",
                        "min_size": 0,
                        "max_size": 2,
                        "items": [{
                            "schedule_type": {
                                "type": "string",
                                "items": ["Disarming"]
                            },
                            "week": {
                                "type": "array",
                                "size": 7,
                                "items": [{
                                    "day": {
                                        "type": "string",
                                        "items": [
                                            "Sun",
                                            "Mon",
                                            "Tue",
                                            "Wed",
                                            "Thu",
                                            "Fri",
                                            "Sat"
                                        ]
                                    },
                                    "time": {
                                        "type": "array",
                                        "size": 48,
                                        "items": [{
                                            "type": "int32",
                                            "items": [
                                                0,
                                                1
                                            ]
                                        }]
                                    }
                                }]
                            }
                        }]
                    }}
                }
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get Alarm > Disarming parameters.

Request Message

None.

Sample:

POST /API/AlarmConfig/Disarming/Get HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

See Alarm > Disarming > Range > Parameter Description > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "disarming": true,
        "action": {
            "buzzer": true,
            "alarm_out": true,
            "show_message": true,
            "send_email": true,
            "full_screen": true,
            "voice_prompts": true,
            "event_push_platform": true,
            "mobile_push": true
        },
        "disarming_channel": [
            "CH1",
            "CH2",
            "CH3",
            "CH4",
            "CH5",
            "CH6",
            "CH7",
            "CH8",
            "CH9",
            "CH10",
            "CH11",
            "CH12",
            "CH13",
            "CH14",
            "CH15",
            "CH16"
        ],
        "channel_info": {
            "CH1": {
                "disarming_schedule": [
                    {
                        "schedule_type": "Disarming",
                        "week": [
                            {
                                "day": "Sun",
                                "time": [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
                            },
                            {
                                "day": "Mon",
                                "time": [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
                            },
                            {
                                "day": "Tue",
                                "time": [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
                            },
                            {
                                "day": "Wed",
                                "time": [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
                            },
                            {
                                "day": "Thu",
                                "time": [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
                            },
                            {
                                "day": "Fri",
                                "time": [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
                            },
                            {
                                "day": "Sat",
                                "time": [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
                            }
                        ]
                    }
                ]
            },
            "CH2": {
                "disarming_schedule": [
                    {
                        "schedule_type": "Disarming",
                        "week": [
                            {
                                "day": "Sun",
                                "time": [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
                            },
                            {
                                "day": "Mon",
                                "time": [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
                            },
                            {
                                "day": "Tue",
                                "time": [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
                            },
                            {
                                "day": "Wed",
                                "time": [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
                            },
                            {
                                "day": "Thu",
                                "time": [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
                            },
                            {
                                "day": "Fri",
                                "time": [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
                            },
                            {
                                "day": "Sat",
                                "time": [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
                            }
                        ]
                    }
                ]
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set Alarm > Disarming parameters.

Request Message

See Alarm > Disarming > Range > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/AlarmConfig/Disarming/Set HTTP/1.1
{
    "version": "1.0",
    "data": {
        "disarming": false,
        "action": {
            "buzzer": false,
            "alarm_out": false,
            "show_message": true,
            "send_email": true,
            "full_screen": false,
            "voice_prompts": false,
            "event_push_platform": false,
            "mobile_push": false
        },
        "disarming_channel": [
            "CH1",
            "CH2",
            "CH3",
            "CH4",
            "CH5",
            "CH6",
            "CH7",
            "CH8",
            "CH9",
            "CH10",
            "CH11",
            "CH12",
            "CH13",
            "CH14",
            "CH15",
            "CH16"
        ],
        "channel_info": {
            "CH1": {
                "disarming_schedule": [
                    {
                        "schedule_type": "Disarming",
                        "week": [
                            {
                                "day": "Sun",
                                "time": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
                            },
                            {
                                "day": "Mon",
                                "time": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
                            },
                            {
                                "day": "Tue",
                                "time": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
                            },
                            {
                                "day": "Wed",
                                "time": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
                            },
                            {
                                "day": "Thu",
                                "time": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
                            },
                            {
                                "day": "Fri",
                                "time": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
                            },
                            {
                                "day": "Sat",
                                "time": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
                            }
                        ]
                    }
                ]
            }
        },
        "schedule_chn_index": "CH1",
        "chn_index": "CH1",
        "selectedChn": "CH1",
        "schedule": {
            "data": [
                [
                    [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
                    [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
                    [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
                    [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
                    [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
                    [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
                    [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
                ]
            ],
            "colors": [
                "#50A037"
            ],
            "words": [
                "Disarming"
            ],
            "titlewords": [
                "Disarming"
            ],
            "cells": {
                "width": "20px",
                "height": "20px"
            },
            "weeks": [
                "SUN",
                "MON",
                "TUE",
                "WED",
                "THU",
                "FRI",
                "SAT"
            ],
            "radio": -1,
            "defaultSelType": {
                "default": 0
            }
        }
    }
}

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Exception

Function

This API is used fo get or set Exception parameters.

URI

POST /API/AlarmConfig/Exception/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYesRequest action,including Range, GetSet

Range

Function

This API is used to get the parameter range of Alarm > Exception.

Request Message

None

Sample:

POST /API/AlarmConfig/Exception/Range HTTP/1.1
{
    "version":"1.0",
    "data": {}
}

Response Message

Parameter Description

Table 1
ParameterRangeTypeDescription
exception_infoJson ObjectJson object see Table 2 for more information
Table 2
ParameterRangeTypeDescription
video_lossJson ObjectJson see Table 3
disk_errorJson ObjectJson see Table 3
no_space_on_diskJson ObjectJson see Table 3
fan_abnormalJson ObjectJson see Table 3
Table 3
ParameterRangeTypeDescription
switchboolEnable switch
Buzzer"0","10",
"20","40","60"
stringBuzzer beeping time
alarm_out“Local->1” ”Local->x”
“IP_CH1->1” ”IP_CH1->x”
“IP_CHx->1” ”IP_CHx->1”
arrayAlarm output channel switch
Each array bit is represented by a string representing the alarm output channel
latch_time"10","20","40","60"stringAlarm output time
show_messageboolDisplay message switch
send_emailboolSend email switch
voice_prompts_index0~4294967295intFile index (0~4294967295, where 0 is None, meaning no audio file has been selected). Each file is named "index_filename" (1ui will try), and when displayed on the page, "index_" should be hidden, such as "1ui will try" and only "i will try" should be displayed
voice_prompts_selectarrayPlayback channel, calculated by bit (bit0 is local, bit1 corresponds to front-end channel 1, and bit2 corresponds to channel 2)
voice_prompts_tiomearrayTime period, there cannot be time conflicts among 12 time periods

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_max": 16,
        "exception_info": {
            "type": "object",
            "items": {
                "video_loss": {
                    "type": "object",
                    "items": {
                        "switch": {"type": "bool"},
                        "buzzer": {
                            "type": "string",
                            "items": [
                                "0",
                                "10",
                                "20",
                                "40",
                                "60"
                            ]
                        },
                        "alarm_out": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 33,
                            "items": {
                                "type": "string",
                                "items": [
                                    "Local->1",
                                    "IP_CH1->1"
                                ]
                            }
                        },
                        "latch_time": {
                            "type": "string",
                            "items": [
                                "10",
                                "20",
                                "40",
                                "60"
                            ]
                        },
                        "show_message": {"type": "bool"},
                        "send_email": {"type": "bool"},
                        "voice_prompts_index": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "voice_prompts_select": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "voice_prompts_time": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        }
                    }
                },
                "disk_error": {
                    "type": "object",
                    "items": {
                        "switch": {"type": "bool"},
                        "buzzer": {
                            "type": "string",
                            "items": [
                                "0",
                                "10",
                                "20",
                                "40",
                                "60"
                            ]
                        },
                        "alarm_out": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 33,
                            "items": {
                                "type": "string",
                                "items": [
                                    "Local->1",
                                    "IP_CH1->1"
                                ]
                            }
                        },
                        "latch_time": {
                            "type": "string",
                            "items": [
                                "10",
                                "20",
                                "40",
                                "60"
                            ]
                        },
                        "show_message": {"type": "bool"},
                        "send_email": {"type": "bool"},
                        "voice_prompts_index": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "voice_prompts_select": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "voice_prompts_time": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        }
                    }
                },
                "no_space_on_disk": {
                    "type": "object",
                    "items": {
                        "switch": {"type": "bool"},
                        "buzzer": {
                            "type": "string",
                            "items": [
                                "0",
                                "10",
                                "20",
                                "40",
                                "60"
                            ]
                        },
                        "alarm_out": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 33,
                            "items": {
                                "type": "string",
                                "items": [
                                    "Local->1",
                                    "IP_CH1->1"
                                ]
                            }
                        },
                        "latch_time": {
                            "type": "string",
                            "items": [
                                "10",
                                "20",
                                "40",
                                "60"
                            ]
                        },
                        "show_message": {"type": "bool"},
                        "send_email": {"type": "bool"},
                        "voice_prompts_index": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "voice_prompts_select": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "voice_prompts_time": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        }
                    }
                }
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get parameter for Alarm > Exception.

Request Message

None

Sample:

POST /API/AlarmConfig/Exception/Get HTTP/1.1
{
    "version":"1.0",
    "data": {}
}

Response Message

Parameter Description

See Alarm > Exception > Range > Parameter Description > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "exception_info": {
            "video_loss": {
                "switch": true,
                "buzzer": "0",
                "alarm_out": [],
                "latch_time": "10",
                "show_message": true,
                "send_email": false,
                "voice_prompts_index": [
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                "voice_prompts_select": [
                    1,
                    0
                ],
                "voice_prompts_time": [
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    }
                ]
            },
            "disk_error": {
                "switch": true,
                "buzzer": "0",
                "alarm_out": [],
                "latch_time": "10",
                "show_message": true,
                "send_email": false,
                "voice_prompts_index": [
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                "voice_prompts_select": [
                    1,
                    0
                ],
                "voice_prompts_time": [
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    }
                ]
            },
            "no_space_on_disk": {
                "switch": true,
                "buzzer": "0",
                "alarm_out": [],
                "latch_time": "10",
                "show_message": true,
                "send_email": false,
                "voice_prompts_index": [
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                "voice_prompts_select": [
                    1,
                    0
                ],
                "voice_prompts_time": [
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    }
                ]
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set parameter for Alarm>Exception.

Request Message

Parameter Description

See Alarm>Exception>Range>Parameter Description>Table 1 for parameter description

Sample:

POST /API/AlarmConfig/Exception/Set HTTP/1.1
{
    "version":"1.0",
    "data":
    {
        "exception_info":
        {
            "video_loss":
            {
                "switch":true,
                "buzzer":"0",
                "alarm_out":[],
                "latch_time":"10",
                "show_message":true,
                "send_email":false,
                "voice_prompts_index":[0,0,0,0,0,0,0,0,0,0,0,0],"voice_prompts_select":[1,0],
                "voice_prompts_time":[
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    }],
                    "exParam_index":"video_loss"
            },
            "disk_error":
            {
                "switch":true,
                "buzzer":"0",
                "alarm_out":[],
                "latch_time":"10",
                "show_message":true,
                "send_email":false,
                "voice_prompts_index":[0,0,0,0,0,0,0,0,0,0,0,0],"voice_prompts_select":[1,0],
                "voice_prompts_time":[
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    }]
                },
                "no_space_on_disk":
                {
                    "switch":true,
                    "buzzer":"0",
                    "alarm_out":[],
                    "latch_time":"10",
                    "show_message":true,
                    "send_email":false,
                    "voice_prompts_index":[0,0,0,0,0,0,0,0,0,0,0,0],
                    "voice_prompts_select":[1,0],"voice_prompts_time":[
                        {"start_hour":0,"start_minute":0,
                            "start_second":0,
                            "end_hour":23,
                            "end_minute":59,
                            "end_second":59
                        },
                        {
                            "start_hour":0,
                            "start_minute":0,
                            "start_second":0,
                            "end_hour":23,
                            "end_minute":59,
                            "end_second":59
                        },
                        {
                            "start_hour":0,
                            "start_minute":0,
                            "start_second":0,
                            "end_hour":23,
                            "end_minute":59,
                            "end_second":59
                        },
                        {
                            "start_hour":0,
                            "start_minute":0,
                            "start_second":0,
                            "end_hour":23,
                            "end_minute":59,
                            "end_second":59
                        },
                        {
                            "start_hour":0,
                            "start_minute":0,
                            "start_second":0,
                            "end_hour":23,
                            "end_minute":59,
                            "end_second":59
                        },
                        {
                            "start_hour":0,
                            "start_minute":0,
                            "start_second":0,
                            "end_hour":23,
                            "end_minute":59,
                            "end_second":59
                        },
                        {
                            "start_hour":0,
                            "start_minute":0,
                            "start_second":0,
                            "end_hour":23,
                            "end_minute":59,
                            "end_second":59
                        },
                        {
                            "start_hour":0,
                            "start_minute":0,
                            "start_second":0,
                            "end_hour":23,
                            "end_minute":59,
                            "end_second":59
                        },
                        {
                            "start_hour":0,
                            "start_minute":0,
                            "start_second":0,
                            "end_hour":23,
                            "end_minute":59,
                            "end_second":59
                        },
                        {
                            "start_hour":0,
                            "start_minute":0,
                            "start_second":0,
                            "end_hour":23,
                            "end_minute":59,
                            "end_second":59
                        },
                        {
                            "start_hour":0,
                            "start_minute":0,
                            "start_second":0,
                            "end_hour":23,
                            "end_minute":59,
                            "end_second":59
                        },
                        {
                            "start_hour":0,
                            "start_minute":0,
                            "start_second":0,
                            "end_hour":23,
                            "end_minute":59,
                            "end_second":59
                        }
                    ]
                }
        }
    }
}

Response Message

None

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result":"success",
    "data":{}
}

Error Code

See Response Messages Body and Common error_code for more information.

Face Detection

Function

This API is used to get or set face detection configuration parameters.

URI

POST /API/AlarmConfig/Intelligent/FD/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range, Get, Set.

Range

Function

This API is used to get Alarm > Face Detection parameter range.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
channel"CH1"…"CHx",
"IP_CH1"…"IP_CHx",
"WIFI_CH1"…"WIFI_CHx"
The channels supported by the device.
string arrayIPC can only Use "CH1".
page_type"ChannelConfig", "AlarmConfig"stringIt is used to distinguish the data of channel configuration page or alarm configuration page.

Sample:

POST /API/AlarmConfig/Intelligent/FD/Range HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 2
ParameterRangeTypeDescription
channel_infoobjectTotal channel information see Table 3.
channel_maxintThe maximum number of channels.
support_copyboolWhether to support copy.
agreed_to_agreementboolAgreed to the agreement.
statement_file_namestring length:1-48stringprotocol file name.
Table 3
ParameterRangeTypeDescription
CH1objectSee Table 4
object
IP_CH1object
object
WIFI_CH1object
object
Table 4
ParameterRangeTypeDescription
status"Offline","Online","Nonsupport"stringOnline status of the channel, only for digital channels. Note: When the channel is online, there is no such field.
alarm_out"Local->1"…"Local->x"
"IP_CH1->1"…"IP_CHx->x"
The number of channels depends on the function of the device.
string arrayalarm Output channel.
Array members use a string to represent an alarm output channel.
Local->1: open, empty value: close.
latch_time"10","20","40","60"string arrayAlarm output time, IPC: 5 10 20 30
record_enabletrue, falseboolChannel recording switch.
record_channel"CH1"…"CHx"
"IP_CH1"…"IP_CHx"
"WIFI_CH1"…"WIFI_CHx"
string arrayChannel of linkage recording.
post_recording"30","60","120","300"stringRecording delay time, IPC: 0 5 10 20 30.
send_emailtrue, falseboolSend Email switch.
ftp_picture_uploadtrue, falseboolChannel snapshot FTP upload switch (for NVR only).
ftp_video_uploadtrue, falseboolChannel video FTP upload switch (for NVR only).
picture_to_cloudtrue, falseboolPicture upload switch (for NVR only).
video_to_cloudtrue, falseboolVideo cloud upload switch (for NVR only).
full_screenboolFullScreen switch (for NVR only).
buzzer"0","10","20","40","60"stringBuzzer buzzing time (for NVR only).
show_messageboolShow Message switch (for NVR only).
switchtrue, falsebool
is_ai_paramboolUsed to distinguish between ordinary face detection and deep learning face detection (NVR dedicated).
face_enhancetrue, falseboolface enhance switch
detection_mode"StaticMode"
"MotionMode"
string
snap_mode"RealTimeMode"
"OptimalMode"
"IntervalMode"
string
apply_mode"FrontalView"
"MultiAngle"
"Customize"
string
min_pixel32-1080int
max_pixel320-1080int
iva_lines0,1intSet whether the line should appear during preview and playback, 0:no, 1:yes.
rule_infoobjectSee Table 5 for details.
voice_prompts_index0~4294967295intFile index (0~4294967295, 0 means None, that is, no audio file is selected). Each file is named as "index_filename" (1_i will try), on the page When displaying, "index_" should be hidden, such as "1_i will try", and only "i will try" will be displayed.
voice_prompts_selectsize: 0-12int arrayPlaying channel, calculated by bit (bit0 is local, bit1 corresponds to front channel 1, bit2 corresponds to channel 2...).
voice_prompts_timesize: 0-12object arraytime period.
copy_ch"digit", "analog", "wifi"stringSupport channel copy flag (for NVR and DVR only).
snap_num"1"
"2"
"3"
"Unlimited"
stringNumber of screenshots
snap_frequencyintScreenshot interval, unit s/pic
http_listeningboolhttp event push
roll_range0-180intThe following default value fields are only available in Range:
"default_value_frontal": frontal default value for mode
"default_value_multi":multi default value for mode
pitch_range0-180intThe following default value fields are only available in Range:
"default_value_frontal": frontal default value for mode
"default_value_multi":multi default value for mode
yaw_range0-180intThe following default value fields are only available in Range:
"default_value_frontal": frontal default value for mode
"default_value_multi":multi default value for mode
picture_quality0-100intThe following default value fields are only available in Range:
"default_value_frontal": frontal default value for mode
"default_value_multi":multi default value for mode
Table 5
ParameterRangeTypeDescription
rule_number1objectRule number 1,information JSON show as follow Table Table 6
Table 6
ParameterRangeTypeDescription
rule_switchbool
rule_type"Normal","A->B","B->A"string
rule_kind"Rect", "Line"string
detection_range"FullScreen", "Customize"string
rule_rectobjectRectangle,information JSON show as follow Table Table 7
rule_lineobjectLine,information JSON show as follow Table Table 8
Table 7
ParameterRangeTypeDescription
x10-704shortx1 Coordinate points。
y10-576shorty1 Coordinate points。
x20-704shortx2 Coordinate points。
y20-576shorty2 Coordinate points。
x30-704shortx3 Coordinate points。
y30-576shorty3 Coordinate points。
x40-704shortx4 Coordinate points。
y40-576shorty4 Coordinate points。
Table 8
ParameterRangeTypeDescription
x10-704shortx1 Coordinate points。
y10-576shorty1 Coordinate points。
x20-704shortx2 Coordinate points。
y20-576shorty2 Coordinate points。

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_max": 16,
        "support_copy": true,
        "agreed_to_agreement": {
            "type": "bool"
        },
        "statement_file_name": {
            "type": "string",
            "min_len": 1,
            "max_len": 48
        },
        "channel_info": {
            "type": "object",
            "items": {
                "CH9": {
                    "type": "object",
                    "items": {
                        "status": {
                            "description": "Only offline channel has this variable.",
                            "type": "string",
                            "mode": "r",
                            "items": [
                                "Offline",
                                "Online",
                                "NotSupport"
                            ]
                        },
                        "buzzer": {
                            "type": "string",
                            "items": [
                                "0",
                                "10",
                                "20",
                                "40",
                                "60"
                            ]
                        },
                        "alarm_out": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 33,
                            "items": {
                                "type": "string",
                                "items": [
                                    "Local->1",
                                    "IP_CH9->1"
                                ]
                            }
                        },
                        "latch_time": {
                            "type": "string",
                            "items": [
                                "10",
                                "20",
                                "40",
                                "60"
                            ]
                        },
                        "record_enable": {
                            "type": "bool"
                        },
                        "record_channel": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 16,
                            "items": {
                                "type": "string",
                                "items": [
                                    "CH1",
                                    "CH2",
                                    "CH3",
                                    "CH4",
                                    "CH5",
                                    "CH6",
                                    "CH7",
                                    "CH8",
                                    "CH9",
                                    "CH10",
                                    "CH11",
                                    "CH12",
                                    "CH13",
                                    "CH14",
                                    "CH15",
                                    "CH16"
                                ]
                            }
                        },
                        "post_recording": {
                            "type": "string",
                            "items": [
                                "30",
                                "60",
                                "120",
                                "300"
                            ]
                        },
                        "show_message": {
                            "type": "bool"
                        },
                        "send_email": {
                            "type": "bool"
                        },
                        "full_screen": {
                            "type": "bool"
                        },
                        "http_listening": {
                            "type": "bool"
                        },
                        "ftp_picture_upload": {
                            "type": "bool"
                        },
                        "ftp_video_upload": {
                            "type": "bool"
                        },
                        "picture_to_cloud": {
                            "type": "bool"
                        },
                        "video_to_cloud": {
                            "type": "bool"
                        },
                        "voice_prompts_index": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "voice_prompts_select": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "voice_prompts_time": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "copy_ch": {
                            "type": "string",
                            "items": [
                                "digit",
                                "analog",
                                "wifi",
                                "local",
                                "all"
                            ]
                        }
                    }
                }
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get Alarm > Face Detection parameters.

Request Message

Parameter Description

See Alarm > FaceDetection > Range > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/AlarmConfig/Intelligent/FD/Get HTTP/1.1
{
    "version":"1.0",
    "data":{
        "page_type":"AlarmConfig"
    }
}

Response Message

Parameter Description

See Alarm > Face Detection > Range > Parameter Description > Table 2 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "agreed_to_agreement": false,
        "statement_file_name": "agreement_face",
        "channel_info": {
            "CH5": {
                "buzzer": "0",
                "alarm_out": [],
                "latch_time": "10",
                "record_enable": true,
                "http_listening": false,
                "record_channel": [
                    "CH5"
                ],
                "post_recording": "30",
                "show_message": true,
                "send_email": true,
                "full_screen": false,
                "ftp_picture_upload": true,
                "ftp_video_upload": false,
                "picture_to_cloud": true,
                "video_to_cloud": false,
                "voice_prompts_index": [
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                "voice_prompts_select": [
                    1,
                    0
                ],
                "voice_prompts_time": [
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    }
                ],
                "copy_ch": "all"
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set Alarm > Face Detection parameters.

Request Message

See Alarm > FaceDetection > Range > Parameter Description > Table 2 for parameter description.

Sample:

POST /API/AlarmConfig/Intelligent/FD/Set HTTP/1.1
{
    "version":"1.0",
    "data":{
        "channel_info":{
            "CH5":{
                "buzzer":"0",
                "alarm_out":[

                ],
                "latch_time":"10",
                "record_enable":true,
                "http_listening":false,
                "record_channel":[
                    "CH5"
                ],
                "post_recording":"30",
                "show_message":true,
                "send_email":true,
                "full_screen":false,
                "ftp_picture_upload":true,
                "ftp_video_upload":false,
                "picture_to_cloud":true,
                "video_to_cloud":false,
                "voice_prompts_index":[
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                "voice_prompts_select":[
                    1,
                    0
                ],
                "voice_prompts_time":[
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    }
                ],
                "copy_ch":"all",
                "chn_index":"CH5"
            }
        },
        "page_type":"AlarmConfig"
    }
}

Response Message

None.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Flood-light

Function

This API is used for get or set flood light parameters.

URI

POST /API/AlarmConfig/Deterrence/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYesRequest action,including Range, Get, Set, Default

Range

Function

This API is used to get the parameter range of Alarm > Floodlight.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
channel"CH1"…"CHx",
"IP_CH1"…"IP_CHx",
"WIFI_CH1"…"WIFI_CHx"
The channels supported by the device.
string arrayIPC only use "CH1"。

Sample:

POST /API/AlarmConfig/Deterrence/Range HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 2
ParameterRangeTypeDescription
channel_maxintMaximum number of channels
channel_infoJson ObjectChannel information see Table 3 for more information
Table 3
ParameterRangeTypeDescription
CH1Json ObjectJson see Table 4
...Json Object
IP_CH1Json Object
...Json Object
WIFI_CH1Json Object
...Json Object
Table 4
ParameterRangeTypeDescription
status"Offline","Online"stringChannel online status, only for digital channels.
Note: This field is not available when the channel is online
flood_light_switchboolWhite light switch
flood_light_disableboolFull color machine only
flood_light_mode"Warninglight" "Strobe"stringWhite light mode, Warninglight: constantly on, Strobe: flashing and degree_ There are differences in modes, flood_ Light_ Mode represents the way in which the white light is lit when the white light is triggered, degree_ Mod represents the screen color of white light in night vision mode
flood_light_value1-100intWhite brightness
bright_time5-180intWhite light duration
strobe_frequency"Low","Middle","High"stringEnable in flashing mode,0:low; 1:middle; 2:high
sensitivity1-8int8 levels: 8-high, 7-high, 1-low sensitivity for detecting triggered white light in areas
siren_switchtrue falseboolsiren switch false: close true: open
siren_value1-10intsiren volume
siren_time5-180intsiren time last
color_image_ctrlbool0: Off, 1: On When turned on, triggering white light will force IRCUT to operate in daytime mode. When not turned on, IRCUT will not respond to photosensitive effects.
region_setting200*8arrayDivide the region into row * col blocks, with each bit describing the value of a block The row and col of white light are based on motion. Region: White light is triggered only when motion is in this region
Bit = 1: motion in this block is monitored..Example: region_setting[0] = (FF-FF-FF-FF-FF-F0-00-00-00-00-00):: motion in channel 0 line 0’s 44 blocks is monitored. Line 1’s 44 blocks not monitored.
mbcol44intDivide the area into row * col blocks
mbrow30intDivide the area into row * col blocks
dualtalk_volume1-10intIntercom volume control.
enforcer_light_switchtrue falseboolRed and blue light switch false: close true: open
enforcer_bright_time5-180intDuration of red and blue lights
warning_light_disableboolFull color machine only
button_controlJson ObjectControls whether the save and default buttons are displayed or hidden
save_visibleboolSave button
default_visibleboolRestore default button
param_videoJson ObjectPage small window video box, do not pass this field default display
showboolshow
disablebooldisable
time_scheduleJson arrayJson object see Table 5
deterrence_mode" Normal "," Full Color "," Alarm "stringUsed in the white light night vision mode of the wireless battery program:,1:Normal; 2:Full Color;3: Alarm. flood_ Light_ There are differences in modes, flood_ Light_ Mode represents the way in which the white light is lit when the white light is triggered, degree_ Mod represents the screen color of white light in night vision mode
deterrence_interval_timeint(Dedicated for consumer NVR docking with IPC POE package) Sound and light linkage alarm working interval time
deterrence_scheduleJson array(Dedicated to Consumer NVR Docking IPC POE Package) Sound and Light Linkage Schedule Data,see Table 7 for more information
Table 5
ParameterRangeTypeDescription
schedule_type“Deterrence”stringWhite Light Time Schedule
weekJson arrayWeekJson see Table 6 for more information
Table 6
ParameterRangeTypeDescription
daySun,Mon,Tue,Wed,Thu,Fri,SatstringIdentify the day of the week
time0: Close time period 1: Enable this time periodarrayEach array bit (int) identifies half an hour.
Table 7
ParameterRangeTypeDescription
schedule_type"white_light","enforcer_light","siren"stringThe alarm type represented by the current schedule data
schedule_liststringCurrent alarm linkage schedule data,see Table 8 for more information
Table 8
ParameterRangeTypeDescription
enabletrue falseboolIs the current schedule effective
start_time0 – 1439(23*60+59)intSchedule start time (minutes relative to 00:00)
end_time0 – 1439(23*60+59)intSchedule end time (minutes relative to 00:00)
weekday"Sunday""Monday""Tuesday""Wednesday""Thursday""Friday""Saturday"
arrayIndicates the day of the week on which the current schedule takes effect, with multiple options available

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_max": 16,
        "channel_info": {
            "type": "object",
            "items": {"CH1": {
                "type": "object",
                "items": {
                    "status": {
                        "description": "Only offline channel has this variable.",
                        "type": "string",
                        "mode": "r",
                        "items": [
                            "Offline",
                            "Online"
                        ]
                    },
                    "flood_light_switch": {"type": "bool"},
                    "bright_time": {
                        "type": "int32",
                        "min": 5,
                        "max": 180,
                        "default_value": 60
                    },
                    "flood_light_mode": {
                        "type": "string",
                        "items": [
                            "Warninglight",
                            "Strobe"
                        ]
                    },
                    "strobe_frequency": {
                        "type": "string",
                        "items": [
                            "Low",
                            "Middle",
                            "High"
                        ]
                    },
                    "support_floodLight_schedule_hub": {"type": "bool"},
                    "flood_light_disable": {"type": "bool"},
                    "warning_light_disable": {"type": "bool"},
                    "button_control": {
                        "save_visible": true,
                        "default_visible": true,
                        "support_floodLight_schedule_hub_disable": false,
                        "support_enforcer_schedule_hub_disable": false
                    },
                    "param_video": {
                        "type": "object",
                        "items": {
                            "show": {"type": "bool"},
                            "disable": {"type": "bool"}
                        }
                    }
                }
            }}
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get parameter for Alarm > Flood-light.

Request Message

Parameter Description

See Alarm > Floodlight > Range > Parameter Description > Table 1 for parameter description.

Sampel:

POST /API/AlarmConfig/Deterrence/Get HTTP/1.1
{
    "version":"1.0",
    "data":
        {
            "page_type":"ChannelConfig"
        }
}

Response Message

Parameter Description

See Alarm > Floodlight > Range > Parameter Description > Table 2 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {"channel_info": {
        "CH1": {
            "flood_light_switch": false,
            "bright_time": 60,
            "flood_light_mode": "Warninglight",
            "strobe_frequency": "Middle",
            "param_video": {
                "show": false,
                "disable": true
            },
            "flood_light_disable": false,
            "warning_light_disable": false
        },
        "CH2": {"reason": "Not configured"},
        "CH3": {"reason": "Not configured"},
        "CH4": {"reason": "Not configured"},
        "CH5": {"reason": "Not configured"},
        "CH6": {"reason": "Not configured"},
        "CH7": {"reason": "Not configured"},
        "CH8": {"reason": "Not configured"},
        "CH9": {"reason": "Not configured"},
        "CH10": {"reason": "Not configured"},
        "CH11": {"reason": "Not configured"},
        "CH12": {"reason": "Not configured"},
        "CH13": {"reason": "Not configured"},
        "CH14": {"reason": "Not configured"},
        "CH15": {"reason": "Not configured"},
        "CH16": {"reason": "Not configured"}
    }}
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set parameter for Alarm > Flood-light.

Request Message

Parameter Description

See Alarm>Flood-light>Range>Parameter Description>Table 2 for parameter description

Sample:

POST /API/AlarmConfig/Deterrence/Get HTTP/1.1
{
    "version": "1.0",
    "data": {
        "channel_info": {"CH1": {
            "flood_light_switch": true,
            "bright_time": 60,
            "flood_light_mode": "Warninglight",
            "strobe_frequency": "Middle",
            "param_video": {
                "show": false,
                "disable": true
            },
            "flood_light_disable": false,
            "warning_light_disable": false,
            "chn_index": "CH1",
            "page": "chn_floodlight"
        }},
        "page_type": "ChannelConfig"
    }
}

Response Message

None

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result":"success",
    "data":{}
}

Error Code

See Response Messages Body and Common error_code for more information.

Default

Funtion

This API is used to restore the default Alarm > Floodlight parameters.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
channel"CH1"string array

Sample:

POST /API/AlarmConfig/Deterrence/Default HTTP/1.1
{
    "version":"1.0",
    "data":
    {
        "channel":["CH1"]
    }
}

Response Message

None.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result":"success",
    "data":{}
}

Error Code

See Response Messages Body and Common error_code for more information.

Intelligent Analysis

Function

This API is used to get or set smart analysis configuration parameters.

URI

POST /API/Intelligent/IntelligentAnalysis/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range, Get, Set.

Range

Function

This API is used to get Alarm > Intelligent Analysis configuration parameter scope.

Request Message

None.

Sample:

POST /API/Intelligent/IntelligentAnalysis/Range HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 1
ParameterRangeTypeDescription
channel_infoobjectTotal channel information see Table 2.
page_type"ChannelConfig", "AarmConfig"stringIt is used to distinguish the data of channel configuration page or alarm configuration page.
channel_maxintThe maximum number of channels.
Table 2
ParameterRangeTypeDescription
CH1objectSee Table 3
object
IP_CH1object
object
WIFI_CH1object
object
Table 3
ParameterRangeTypeDescription
"status""Offline", "Online", "Notsupport"stringstatus.
report_type"Daily report", "Weekly report", "Monthly report", "Annual report"Daily report, Weekly report, Monthly report, Yearly report.
cross_type"Number of in", "Number of out"stringcrossing type.
search_datestring length:10stringSearch date.
ai_cross_countboolDistinguish between first-generation and second-generation CC, here the default is true.
detection_type"Motion", "Person", "Vehicle", "Non-motorized Vehicle"stringdetection type.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_max": 16,
        "channel_info": {
            "type": "object",
            "items": {
                "CH1": {
                    "type": "object",
                    "items": {
                        "status": {
                            "description": "Only offline channel has this variable.",
                            "type": "string",
                            "mode": "r",
                            "items": [
                                "Offline",
                                "Online",
                                "Notsupport"
                            ]
                        },
                        "report_type": {
                            "type": "string",
                            "items": [
                                "Daily report",
                                "Weekly report",
                                "Monthly report",
                                "Annual report"
                            ]
                        },
                        "cross_type": {
                            "type": "string",
                            "items": [
                                "Number of in",
                                "Number of out"
                            ]
                        },
                        "search_date": {
                            "type": "string",
                            "len": 10
                        },
                        "ai_cross_count": {
                            "type": "bool"
                        },
                        "detection_type": {
                            "type": "string",
                            "items": [
                                "Motion",
                                "Person",
                                "Vehicle",
                                "Non-motorized Vehicle"
                            ]
                        }
                    }
                }
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get Alarm > Intelligent Analysis configuration parameters.

Request Message

Table 1
ParameterRangeTypeDescription
channel"CH1"…"CHx",
"IP_CH1"…"IP_CHx",
"WIFI_CH1"…"WIFI_CHx"
The channels supported by the device.
string arrayIPC doesn't need to bring this key.

Sample:

POST /API/Intelligent/IntelligentAnalysis/Get HTTP/1.1
{
    "version": "1.0",
    "data": {
    }
}

Response Message

See Alarm > IntelligentAnalysis > Range > Parameter Description > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_info": {
            "CH16": {
                "report_type": "Daily report",
                "cross_type": "Number of in",
                "detection_type": "Motion",
                "ai_cross_count": true,
                "search_date": "2023-08-25"
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set Alarm > Intelligent Analysis configuration parameters.

Request Message

See Alarm > IntelligentAnalysis > Range > Parameter Description > Table 1 for parameter description.

Response Message

Parameter Description

Table 1
ParameterRangeTypeDescription
channel_infoobjectTotal channel information see Table 2.
Table 2
ParameterRangeTypeDescription
CH1objectSee Table 3
object
IP_CH1object
object
WIFI_CH1object
object
Table 3
ParameterRangeTypeDescription
reportunsigned int arrayStatistical report.
Array length is divided into daily report 24, weekly report 7, monthly report (0~31), annual report 12 according to the requested report type.
per A value of one bit (0-65535) represents the number of statistics in this unit time period.

Error Code

See Response Messages Body and Common error_code for more information.

IO Alarm

Function

This API is used for get or set IO Alarm parameters.

URI

POST /API/AlarmConfig/IO/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYesRequest action,including Range, GetSet

Range

Function

This API is used to get the parameter range of Alarm > IO Alarm.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
alarm_in"Local<-1"..."Local<-x"
"IP_CH1<-1"..."IP_CHx<-x"
The number of channels depends on the functionality of the device.
string arrayEach array bit represents a channel with a string.

Sample:

POST /API/AlarmConfig/IO/Range HTTP/1.1
{
    "version":"1.0",
    "data":{}
}

Response Message

Parameter Description

Table 2
ParameterRangeTypeDescription
channel_infoJson ObjectChannel information see Table 3 for more information
channel_maxintThe total number of channels in the current device
Table 3
ParameterRangeTypeDescription
Local<-1Json ObjectJson object see Table 4 for more information
...Json Object
IP_CH1<-1Json Object
...Json Object
Table 4
ParameterRangeTypeDescription
alarm_type"NormallyOpen",
"NormallyClose",
"Off"
stringI/O status alarm
latch_time"10","20","40","60"or“5”“10”“20”“30”stringAlarm output time
buzzer"0","10","20","40","60"stringBuzzer beep time (NVR/DVR dedicated)
alarm_out“Local->1” ”Local->x”
“IP_CH1->1” “IP_CH1->2”
” IP_CHx->1” ”IP_CHx->2”
The number of channels depends on the functionality of the device.
arrayAlarm output channel
Each array bit is represented by a string representing the alarm output channel.
post_recording"30","60","120","300"or“0”“5”“10”“20”“30”stringRecording delay time
send_emailboolSend email switch
ftp_picture_uploadboolChannel video FTP upload switch
picture_to_cloudboolImage upload switch
video_to_cloudboolVideo cloud upload switch (dedicated to NVR/DVR)
ftp_video_uploadboolChannel video FTP upload switch (dedicated to NVR/DVR)
show_messageboolDisplay message switch (dedicated to NVR/DVR)
full_screenboolFull screen switch (dedicated to NVR/DVR)
channel“CH1” ”CH1x” “IP_CH1”
” IP_CH1x”“WIFI_CH1”…” WIFI_CH1x”
arrayChannel alarm linkage switch
Channel alarm linkage switch, each value represents a channel switch.
voice_prompts_index0~4294967295intFile index (0~4294967295, where 0 is None, meaning no audio file has been selected). Each file is named "index_filename" (1ui will try), and when displayed on the page, "index_" should be hidden, such as "1ui will try" and only "i will try" should be displayed
voice_prompts_selectarrayPlayback channel, calculated by bit (bit0 is local, bit1 corresponds to front-end channel 1, and bit2 corresponds to channel 2)
voice_prompts_timearrayTime period, there cannot be time conflicts among 12 time periods
record_enableboolrecord switch
light_linkageboolWhite light linkage switch
enforcerlight_linkageboolAlarm light linkage switch
siren_linkageboolAlarm linkage switch
http_listeningbooleventpush linkage switch
scheduleJson arrayJson See Table 5.
Table 5
ParameterRangeTypeDescription
schedule_type"IO"stringIO Linkage schedule
weekJson arrayWeekJson See Table 6
Table 6
ParameterRangeTypeDescription
day"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"string
time0:Disable Time range 1: The time range is enabledarrayEach array bit (int) identifies half an hour.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_max": 16,
        "support_copy": true,
        "channel_info": {
            "type": "object",
            "items": {
                "Local<-1": {
                    "type": "object",
                    "items": {
                        "alarm_type": {
                            "type": "string",
                            "items": [
                                "NormallyOpen",
                                "NormallyClose",
                                "Off"
                            ]
                        },
                        "buzzer": {
                            "type": "string",
                            "items": [
                                "0",
                                "10",
                                "20",
                                "40",
                                "60"
                            ]
                        },
                        "alarm_out": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 33,
                            "items": {
                                "type": "string",
                                "items": [
                                    "Local->1",
                                    "IP_CH1->1"
                                ]
                            }
                        },
                        "latch_time": {
                            "type": "string",
                            "items": [
                                "10",
                                "20",
                                "40",
                                "60"
                            ]
                        },
                        "post_recording": {
                            "type": "string",
                            "items": [
                                "30",
                                "60",
                                "120",
                                "300"
                            ]
                        },
                        "show_message": {"type": "bool"},
                        "send_email": {"type": "bool"},
                        "full_screen": {"type": "bool"},
                        "ftp_picture_upload": {"type": "bool"},
                        "ftp_video_upload": {"type": "bool"},
                        "http_listening": {"type": "bool"},
                        "picture_to_cloud": {"type": "bool"},
                        "video_to_cloud": {"type": "bool"},
                        "voice_prompts_index": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "voice_prompts_select": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "voice_prompts_time": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "channel": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 16,
                            "items": {
                                "type": "string",
                                "items": [
                                    "CH1",
                                    "CH2",
                                    "CH3",
                                    "CH4",
                                    "CH5",
                                    "CH6",
                                    "CH7",
                                    "CH8",
                                    "CH9",
                                    "CH10",
                                    "CH11",
                                    "CH12",
                                    "CH13",
                                    "CH14",
                                    "CH15",
                                    "CH16"
                                ]
                            }
                        },
                        "copy_ch": {
                            "type": "string",
                            "items": [
                                "digit",
                                "analog",
                                "wifi",
                                "local",
                                "all"
                            ]
                        }
                    }
                },
                "Local<-2": {
                    "type": "object",
                    "items": {
                        "alarm_type": {
                            "type": "string",
                            "items": [
                                "NormallyOpen",
                                "NormallyClose",
                                "Off"
                            ]
                        },
                        "buzzer": {
                            "type": "string",
                            "items": [
                                "0",
                                "10",
                                "20",
                                "40",
                                "60"
                            ]
                        },
                        "alarm_out": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 33,
                            "items": {
                                "type": "string",
                                "items": [
                                    "Local->1",
                                    "IP_CH1->1"
                                ]
                            }
                        },
                        "latch_time": {
                            "type": "string",
                            "items": [
                                "10",
                                "20",
                                "40",
                                "60"
                            ]
                        },
                        "post_recording": {
                            "type": "string",
                            "items": [
                                "30",
                                "60",
                                "120",
                                "300"
                            ]
                        },
                        "show_message": {"type": "bool"},
                        "send_email": {"type": "bool"},
                        "full_screen": {"type": "bool"},
                        "ftp_picture_upload": {"type": "bool"},
                        "ftp_video_upload": {"type": "bool"},
                        "http_listening": {"type": "bool"},
                        "picture_to_cloud": {"type": "bool"},
                        "video_to_cloud": {"type": "bool"},
                        "voice_prompts_index": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "voice_prompts_select": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "voice_prompts_time": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "channel": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 16,
                            "items": {
                                "type": "string",
                                "items": [
                                    "CH1",
                                    "CH2",
                                    "CH3",
                                    "CH4",
                                    "CH5",
                                    "CH6",
                                    "CH7",
                                    "CH8",
                                    "CH9",
                                    "CH10",
                                    "CH11",
                                    "CH12",
                                    "CH13",
                                    "CH14",
                                    "CH15",
                                    "CH16"
                                ]
                            }
                        },
                        "copy_ch": {
                            "type": "string",
                            "items": [
                                "digit",
                                "analog",
                                "wifi",
                                "local",
                                "all"
                            ]
                        }
                    }
                },
                "Local<-3": {
                    "type": "object",
                    "items": {
                        "alarm_type": {
                            "type": "string",
                            "items": [
                                "NormallyOpen",
                                "NormallyClose",
                                "Off"
                            ]
                        },
                        "buzzer": {
                            "type": "string",
                            "items": [
                                "0",
                                "10",
                                "20",
                                "40",
                                "60"
                            ]
                        },
                        "alarm_out": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 33,
                            "items": {
                                "type": "string",
                                "items": [
                                    "Local->1",
                                    "IP_CH1->1"
                                ]
                            }
                        },
                        "latch_time": {
                            "type": "string",
                            "items": [
                                "10",
                                "20",
                                "40",
                                "60"
                            ]
                        },
                        "post_recording": {
                            "type": "string",
                            "items": [
                                "30",
                                "60",
                                "120",
                                "300"
                            ]
                        },
                        "show_message": {"type": "bool"},
                        "send_email": {"type": "bool"},
                        "full_screen": {"type": "bool"},
                        "ftp_picture_upload": {"type": "bool"},
                        "ftp_video_upload": {"type": "bool"},
                        "http_listening": {"type": "bool"},
                        "picture_to_cloud": {"type": "bool"},
                        "video_to_cloud": {"type": "bool"},
                        "voice_prompts_index": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "voice_prompts_select": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "voice_prompts_time": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "channel": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 16,
                            "items": {
                                "type": "string",
                                "items": [
                                    "CH1",
                                    "CH2",
                                    "CH3",
                                    "CH4",
                                    "CH5",
                                    "CH6",
                                    "CH7",
                                    "CH8",
                                    "CH9",
                                    "CH10",
                                    "CH11",
                                    "CH12",
                                    "CH13",
                                    "CH14",
                                    "CH15",
                                    "CH16"
                                ]
                            }
                        },
                        "copy_ch": {
                            "type": "string",
                            "items": [
                                "digit",
                                "analog",
                                "wifi",
                                "local",
                                "all"
                            ]
                        }
                    }
                },
                "Local<-4": {
                    "type": "object",
                    "items": {
                        "alarm_type": {
                            "type": "string",
                            "items": [
                                "NormallyOpen",
                                "NormallyClose",
                                "Off"
                            ]
                        },
                        "buzzer": {
                            "type": "string",
                            "items": [
                                "0",
                                "10",
                                "20",
                                "40",
                                "60"
                            ]
                        },
                        "alarm_out": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 33,
                            "items": {
                                "type": "string",
                                "items": [
                                    "Local->1",
                                    "IP_CH1->1"
                                ]
                            }
                        },
                        "latch_time": {
                            "type": "string",
                            "items": [
                                "10",
                                "20",
                                "40",
                                "60"
                            ]
                        },
                        "post_recording": {
                            "type": "string",
                            "items": [
                                "30",
                                "60",
                                "120",
                                "300"
                            ]
                        },
                        "show_message": {"type": "bool"},
                        "send_email": {"type": "bool"},
                        "full_screen": {"type": "bool"},
                        "ftp_picture_upload": {"type": "bool"},
                        "ftp_video_upload": {"type": "bool"},
                        "http_listening": {"type": "bool"},
                        "picture_to_cloud": {"type": "bool"},
                        "video_to_cloud": {"type": "bool"},
                        "voice_prompts_index": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "voice_prompts_select": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "voice_prompts_time": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "channel": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 16,
                            "items": {
                                "type": "string",
                                "items": [
                                    "CH1",
                                    "CH2",
                                    "CH3",
                                    "CH4",
                                    "CH5",
                                    "CH6",
                                    "CH7",
                                    "CH8",
                                    "CH9",
                                    "CH10",
                                    "CH11",
                                    "CH12",
                                    "CH13",
                                    "CH14",
                                    "CH15",
                                    "CH16"
                                ]
                            }
                        },
                        "copy_ch": {
                            "type": "string",
                            "items": [
                                "digit",
                                "analog",
                                "wifi",
                                "local",
                                "all"
                            ]
                        }
                    }
                },
                "Local<-5": {
                    "type": "object",
                    "items": {
                        "alarm_type": {
                            "type": "string",
                            "items": [
                                "NormallyOpen",
                                "NormallyClose",
                                "Off"
                            ]
                        },
                        "buzzer": {
                            "type": "string",
                            "items": [
                                "0",
                                "10",
                                "20",
                                "40",
                                "60"
                            ]
                        },
                        "alarm_out": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 33,
                            "items": {
                                "type": "string",
                                "items": [
                                    "Local->1",
                                    "IP_CH1->1"
                                ]
                            }
                        },
                        "latch_time": {
                            "type": "string",
                            "items": [
                                "10",
                                "20",
                                "40",
                                "60"
                            ]
                        },
                        "post_recording": {
                            "type": "string",
                            "items": [
                                "30",
                                "60",
                                "120",
                                "300"
                            ]
                        },
                        "show_message": {"type": "bool"},
                        "send_email": {"type": "bool"},
                        "full_screen": {"type": "bool"},
                        "ftp_picture_upload": {"type": "bool"},
                        "ftp_video_upload": {"type": "bool"},
                        "http_listening": {"type": "bool"},
                        "picture_to_cloud": {"type": "bool"},
                        "video_to_cloud": {"type": "bool"},
                        "voice_prompts_index": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "voice_prompts_select": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "voice_prompts_time": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "channel": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 16,
                            "items": {
                                "type": "string",
                                "items": [
                                    "CH1",
                                    "CH2",
                                    "CH3",
                                    "CH4",
                                    "CH5",
                                    "CH6",
                                    "CH7",
                                    "CH8",
                                    "CH9",
                                    "CH10",
                                    "CH11",
                                    "CH12",
                                    "CH13",
                                    "CH14",
                                    "CH15",
                                    "CH16"
                                ]
                            }
                        },
                        "copy_ch": {
                            "type": "string",
                            "items": [
                                "digit",
                                "analog",
                                "wifi",
                                "local",
                                "all"
                            ]
                        }
                    }
                },
                "Local<-6": {
                    "type": "object",
                    "items": {
                        "alarm_type": {
                            "type": "string",
                            "items": [
                                "NormallyOpen",
                                "NormallyClose",
                                "Off"
                            ]
                        },
                        "buzzer": {
                            "type": "string",
                            "items": [
                                "0",
                                "10",
                                "20",
                                "40",
                                "60"
                            ]
                        },
                        "alarm_out": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 33,
                            "items": {
                                "type": "string",
                                "items": [
                                    "Local->1",
                                    "IP_CH1->1"
                                ]
                            }
                        },
                        "latch_time": {
                            "type": "string",
                            "items": [
                                "10",
                                "20",
                                "40",
                                "60"
                            ]
                        },
                        "post_recording": {
                            "type": "string",
                            "items": [
                                "30",
                                "60",
                                "120",
                                "300"
                            ]
                        },
                        "show_message": {"type": "bool"},
                        "send_email": {"type": "bool"},
                        "full_screen": {"type": "bool"},
                        "ftp_picture_upload": {"type": "bool"},
                        "ftp_video_upload": {"type": "bool"},
                        "http_listening": {"type": "bool"},
                        "picture_to_cloud": {"type": "bool"},
                        "video_to_cloud": {"type": "bool"},
                        "voice_prompts_index": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "voice_prompts_select": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "voice_prompts_time": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "channel": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 16,
                            "items": {
                                "type": "string",
                                "items": [
                                    "CH1",
                                    "CH2",
                                    "CH3",
                                    "CH4",
                                    "CH5",
                                    "CH6",
                                    "CH7",
                                    "CH8",
                                    "CH9",
                                    "CH10",
                                    "CH11",
                                    "CH12",
                                    "CH13",
                                    "CH14",
                                    "CH15",
                                    "CH16"
                                ]
                            }
                        },
                        "copy_ch": {
                            "type": "string",
                            "items": [
                                "digit",
                                "analog",
                                "wifi",
                                "local",
                                "all"
                            ]
                        }
                    }
                },
                "Local<-7": {
                    "type": "object",
                    "items": {
                        "alarm_type": {
                            "type": "string",
                            "items": [
                                "NormallyOpen",
                                "NormallyClose",
                                "Off"
                            ]
                        },
                        "buzzer": {
                            "type": "string",
                            "items": [
                                "0",
                                "10",
                                "20",
                                "40",
                                "60"
                            ]
                        },
                        "alarm_out": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 33,
                            "items": {
                                "type": "string",
                                "items": [
                                    "Local->1",
                                    "IP_CH1->1"
                                ]
                            }
                        },
                        "latch_time": {
                            "type": "string",
                            "items": [
                                "10",
                                "20",
                                "40",
                                "60"
                            ]
                        },
                        "post_recording": {
                            "type": "string",
                            "items": [
                                "30",
                                "60",
                                "120",
                                "300"
                            ]
                        },
                        "show_message": {"type": "bool"},
                        "send_email": {"type": "bool"},
                        "full_screen": {"type": "bool"},
                        "ftp_picture_upload": {"type": "bool"},
                        "ftp_video_upload": {"type": "bool"},
                        "http_listening": {"type": "bool"},
                        "picture_to_cloud": {"type": "bool"},
                        "video_to_cloud": {"type": "bool"},
                        "voice_prompts_index": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "voice_prompts_select": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "voice_prompts_time": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "channel": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 16,
                            "items": {
                                "type": "string",
                                "items": [
                                    "CH1",
                                    "CH2",
                                    "CH3",
                                    "CH4",
                                    "CH5",
                                    "CH6",
                                    "CH7",
                                    "CH8",
                                    "CH9",
                                    "CH10",
                                    "CH11",
                                    "CH12",
                                    "CH13",
                                    "CH14",
                                    "CH15",
                                    "CH16"
                                ]
                            }
                        },
                        "copy_ch": {
                            "type": "string",
                            "items": [
                                "digit",
                                "analog",
                                "wifi",
                                "local",
                                "all"
                            ]
                        }
                    }
                },
                "Local<-8": {
                    "type": "object",
                    "items": {
                        "alarm_type": {
                            "type": "string",
                            "items": [
                                "NormallyOpen",
                                "NormallyClose",
                                "Off"
                            ]
                        },
                        "buzzer": {
                            "type": "string",
                            "items": [
                                "0",
                                "10",
                                "20",
                                "40",
                                "60"
                            ]
                        },
                        "alarm_out": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 33,
                            "items": {
                                "type": "string",
                                "items": [
                                    "Local->1",
                                    "IP_CH1->1"
                                ]
                            }
                        },
                        "latch_time": {
                            "type": "string",
                            "items": [
                                "10",
                                "20",
                                "40",
                                "60"
                            ]
                        },
                        "post_recording": {
                            "type": "string",
                            "items": [
                                "30",
                                "60",
                                "120",
                                "300"
                            ]
                        },
                        "show_message": {"type": "bool"},
                        "send_email": {"type": "bool"},
                        "full_screen": {"type": "bool"},
                        "ftp_picture_upload": {"type": "bool"},
                        "ftp_video_upload": {"type": "bool"},
                        "http_listening": {"type": "bool"},
                        "picture_to_cloud": {"type": "bool"},
                        "video_to_cloud": {"type": "bool"},
                        "voice_prompts_index": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "voice_prompts_select": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "voice_prompts_time": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "channel": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 16,
                            "items": {
                                "type": "string",
                                "items": [
                                    "CH1",
                                    "CH2",
                                    "CH3",
                                    "CH4",
                                    "CH5",
                                    "CH6",
                                    "CH7",
                                    "CH8",
                                    "CH9",
                                    "CH10",
                                    "CH11",
                                    "CH12",
                                    "CH13",
                                    "CH14",
                                    "CH15",
                                    "CH16"
                                ]
                            }
                        },
                        "copy_ch": {
                            "type": "string",
                            "items": [
                                "digit",
                                "analog",
                                "wifi",
                                "local",
                                "all"
                            ]
                        }
                    }
                },
                "IP_CH1<-1": {
                    "type": "object",
                    "items": {
                        "alarm_type": {
                            "type": "string",
                            "items": [
                                "NormallyOpen",
                                "NormallyClose",
                                "Off"
                            ]
                        },
                        "buzzer": {
                            "type": "string",
                            "items": [
                                "0",
                                "10",
                                "20",
                                "40",
                                "60"
                            ]
                        },
                        "alarm_out": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 33,
                            "items": {
                                "type": "string",
                                "items": [
                                    "Local->1",
                                    "IP_CH1->1"
                                ]
                            }
                        },
                        "latch_time": {
                            "type": "string",
                            "items": [
                                "10",
                                "20",
                                "40",
                                "60"
                            ]
                        },
                        "post_recording": {
                            "type": "string",
                            "items": [
                                "30",
                                "60",
                                "120",
                                "300"
                            ]
                        },
                        "show_message": {"type": "bool"},
                        "send_email": {"type": "bool"},
                        "full_screen": {"type": "bool"},
                        "ftp_picture_upload": {"type": "bool"},
                        "ftp_video_upload": {"type": "bool"},
                        "http_listening": {"type": "bool"},
                        "picture_to_cloud": {"type": "bool"},
                        "video_to_cloud": {"type": "bool"},
                        "voice_prompts_index": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "voice_prompts_select": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "voice_prompts_time": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "channel": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 16,
                            "items": {
                                "type": "string",
                                "items": [
                                    "CH1",
                                    "CH2",
                                    "CH3",
                                    "CH4",
                                    "CH5",
                                    "CH6",
                                    "CH7",
                                    "CH8",
                                    "CH9",
                                    "CH10",
                                    "CH11",
                                    "CH12",
                                    "CH13",
                                    "CH14",
                                    "CH15",
                                    "CH16"
                                ]
                            }
                        },
                        "copy_ch": {
                            "type": "string",
                            "items": [
                                "digit",
                                "analog",
                                "wifi",
                                "local",
                                "all"
                            ]
                        }
                    }
                }
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get parameter for Alarm > IO Alarm.

Request Message

Parameter Description

See Alarm > IO Alarm > Range > Parameter Description > Table 1 for parameter description.

Sampel:

POST /API/AlarmConfig/IO/Get HTTP/1.1
{
    "version":"1.0",
    "data":{}
}

Response Message

Parameter Description

See Alarm > IO Alarm > Range > Parameter Description > Table 2 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_info": {
            "Local<-1": {
                "alarm_type": "NormallyOpen",
                "buzzer": "0",
                "latch_time": "10",
                "post_recording": "30",
                "show_message": true,
                "send_email": false,
                "full_screen": false,
                "ftp_picture_upload": false,
                "ftp_video_upload": false,
                "http_listening": false,
                "picture_to_cloud": false,
                "video_to_cloud": false,
                "alarm_out": [],
                "channel": [
                    "CH1"
                ],
                "voice_prompts_index": [
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                "voice_prompts_select": [
                    1,
                    0
                ],
                "voice_prompts_time": [
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    }
                ],
                "copy_ch": "all"
            },
            "Local<-2": {
                "alarm_type": "NormallyOpen",
                "buzzer": "0",
                "latch_time": "10",
                "post_recording": "30",
                "show_message": true,
                "send_email": false,
                "full_screen": false,
                "ftp_picture_upload": false,
                "ftp_video_upload": false,
                "http_listening": false,
                "picture_to_cloud": false,
                "video_to_cloud": false,
                "alarm_out": [],
                "channel": [
                    "CH2"
                ],
                "voice_prompts_index": [
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                "voice_prompts_select": [
                    0,
                    0
                ],
                "voice_prompts_time": [
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    }
                ],
                "copy_ch": "all"
            },
            "Local<-3": {
                "alarm_type": "NormallyOpen",
                "buzzer": "0",
                "latch_time": "10",
                "post_recording": "30",
                "show_message": true,
                "send_email": false,
                "full_screen": false,
                "ftp_picture_upload": false,
                "ftp_video_upload": false,
                "http_listening": false,
                "picture_to_cloud": false,
                "video_to_cloud": false,
                "alarm_out": [],
                "channel": [
                    "CH3"
                ],
                "voice_prompts_index": [
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                "voice_prompts_select": [
                    1,
                    0
                ],
                "voice_prompts_time": [
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    }
                ],
                "copy_ch": "all"
            },
            "Local<-4": {
                "alarm_type": "NormallyOpen",
                "buzzer": "0",
                "latch_time": "10",
                "post_recording": "30",
                "show_message": true,
                "send_email": false,
                "full_screen": false,
                "ftp_picture_upload": false,
                "ftp_video_upload": false,
                "http_listening": false,
                "picture_to_cloud": false,
                "video_to_cloud": false,
                "alarm_out": [],
                "channel": [
                    "CH4"
                ],
                "voice_prompts_index": [
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                "voice_prompts_select": [
                    0,
                    0
                ],
                "voice_prompts_time": [
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    }
                ],
                "copy_ch": "all"
            },
            "Local<-5": {
                "alarm_type": "NormallyOpen",
                "buzzer": "0",
                "latch_time": "10",
                "post_recording": "30",
                "show_message": true,
                "send_email": false,
                "full_screen": false,
                "ftp_picture_upload": false,
                "ftp_video_upload": false,
                "http_listening": false,
                "picture_to_cloud": false,
                "video_to_cloud": false,
                "alarm_out": [],
                "channel": [
                    "CH5"
                ],
                "voice_prompts_index": [
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                "voice_prompts_select": [
                    1,
                    0
                ],
                "voice_prompts_time": [
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    }
                ],
                "copy_ch": "all"
            },
            "Local<-6": {
                "alarm_type": "NormallyOpen",
                "buzzer": "0",
                "latch_time": "10",
                "post_recording": "30",
                "show_message": true,
                "send_email": false,
                "full_screen": false,
                "ftp_picture_upload": false,
                "ftp_video_upload": false,
                "http_listening": false,
                "picture_to_cloud": false,
                "video_to_cloud": false,
                "alarm_out": [],
                "channel": [
                    "CH6"
                ],
                "voice_prompts_index": [
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                "voice_prompts_select": [
                    0,
                    0
                ],
                "voice_prompts_time": [
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    }
                ],
                "copy_ch": "all"
            },
            "Local<-7": {
                "alarm_type": "NormallyOpen",
                "buzzer": "0",
                "latch_time": "10",
                "post_recording": "30",
                "show_message": true,
                "send_email": false,
                "full_screen": false,
                "ftp_picture_upload": false,
                "ftp_video_upload": false,
                "http_listening": false,
                "picture_to_cloud": false,
                "video_to_cloud": false,
                "alarm_out": [],
                "channel": [
                    "CH7"
                ],
                "voice_prompts_index": [
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                "voice_prompts_select": [
                    1,
                    0
                ],
                "voice_prompts_time": [
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    }
                ],
                "copy_ch": "all"
            },
            "Local<-8": {
                "alarm_type": "NormallyOpen",
                "buzzer": "0",
                "latch_time": "10",
                "post_recording": "30",
                "show_message": true,
                "send_email": false,
                "full_screen": false,
                "ftp_picture_upload": false,
                "ftp_video_upload": false,
                "http_listening": false,
                "picture_to_cloud": false,
                "video_to_cloud": false,
                "alarm_out": [],
                "channel": [
                    "CH8"
                ],
                "voice_prompts_index": [
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                "voice_prompts_select": [
                    0,
                    0
                ],
                "voice_prompts_time": [
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    }
                ],
                "copy_ch": "all"
            },
            "Local<-9": {
                "alarm_type": "NormallyOpen",
                "buzzer": "0",
                "latch_time": "10",
                "post_recording": "30",
                "show_message": true,
                "send_email": false,
                "full_screen": false,
                "ftp_picture_upload": false,
                "ftp_video_upload": false,
                "http_listening": false,
                "picture_to_cloud": false,
                "video_to_cloud": false,
                "alarm_out": [],
                "channel": [
                    "CH9"
                ],
                "voice_prompts_index": [
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                "voice_prompts_select": [
                    1,
                    0
                ],
                "voice_prompts_time": [
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    }
                ],
                "copy_ch": "all"
            },
            "Local<-10": {
                "alarm_type": "NormallyOpen",
                "buzzer": "0",
                "latch_time": "10",
                "post_recording": "30",
                "show_message": true,
                "send_email": false,
                "full_screen": false,
                "ftp_picture_upload": false,
                "ftp_video_upload": false,
                "http_listening": false,
                "picture_to_cloud": false,
                "video_to_cloud": false,
                "alarm_out": [],
                "channel": [
                    "CH10"
                ],
                "voice_prompts_index": [
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                "voice_prompts_select": [
                    0,
                    0
                ],
                "voice_prompts_time": [
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    }
                ],
                "copy_ch": "all"
            },
            "Local<-11": {
                "alarm_type": "NormallyOpen",
                "buzzer": "0",
                "latch_time": "10",
                "post_recording": "30",
                "show_message": true,
                "send_email": false,
                "full_screen": false,
                "ftp_picture_upload": false,
                "ftp_video_upload": false,
                "http_listening": false,
                "picture_to_cloud": false,
                "video_to_cloud": false,
                "alarm_out": [],
                "channel": [
                    "CH11"
                ],
                "voice_prompts_index": [
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                "voice_prompts_select": [
                    1,
                    0
                ],
                "voice_prompts_time": [
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    }
                ],
                "copy_ch": "all"
            },
            "Local<-12": {
                "alarm_type": "NormallyOpen",
                "buzzer": "0",
                "latch_time": "10",
                "post_recording": "30",
                "show_message": true,
                "send_email": false,
                "full_screen": false,
                "ftp_picture_upload": false,
                "ftp_video_upload": false,
                "http_listening": false,
                "picture_to_cloud": false,
                "video_to_cloud": false,
                "alarm_out": [],
                "channel": [
                    "CH12"
                ],
                "voice_prompts_index": [
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                "voice_prompts_select": [
                    0,
                    0
                ],
                "voice_prompts_time": [
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    }
                ],
                "copy_ch": "all"
            },
            "Local<-13": {
                "alarm_type": "NormallyOpen",
                "buzzer": "0",
                "latch_time": "10",
                "post_recording": "30",
                "show_message": true,
                "send_email": false,
                "full_screen": false,
                "ftp_picture_upload": false,
                "ftp_video_upload": false,
                "http_listening": false,
                "picture_to_cloud": false,
                "video_to_cloud": false,
                "alarm_out": [],
                "channel": [
                    "CH13"
                ],
                "voice_prompts_index": [
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                "voice_prompts_select": [
                    1,
                    0
                ],
                "voice_prompts_time": [
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    }
                ],
                "copy_ch": "all"
            },
            "Local<-14": {
                "alarm_type": "NormallyOpen",
                "buzzer": "0",
                "latch_time": "10",
                "post_recording": "30",
                "show_message": true,
                "send_email": false,
                "full_screen": false,
                "ftp_picture_upload": false,
                "ftp_video_upload": false,
                "http_listening": false,
                "picture_to_cloud": false,
                "video_to_cloud": false,
                "alarm_out": [],
                "channel": [
                    "CH14"
                ],
                "voice_prompts_index": [
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                "voice_prompts_select": [
                    0,
                    0
                ],
                "voice_prompts_time": [
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    }
                ],
                "copy_ch": "all"
            },
            "Local<-15": {
                "alarm_type": "NormallyOpen",
                "buzzer": "0",
                "latch_time": "10",
                "post_recording": "30",
                "show_message": true,
                "send_email": false,
                "full_screen": false,
                "ftp_picture_upload": false,
                "ftp_video_upload": false,
                "http_listening": false,
                "picture_to_cloud": false,
                "video_to_cloud": false,
                "alarm_out": [],
                "channel": [
                    "CH15"
                ],
                "voice_prompts_index": [
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                "voice_prompts_select": [
                    1,
                    0
                ],
                "voice_prompts_time": [
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    }
                ],
                "copy_ch": "all"
            },
            "Local<-16": {
                "alarm_type": "NormallyOpen",
                "buzzer": "0",
                "latch_time": "10",
                "post_recording": "30",
                "show_message": true,
                "send_email": false,
                "full_screen": false,
                "ftp_picture_upload": false,
                "ftp_video_upload": false,
                "http_listening": false,
                "picture_to_cloud": false,
                "video_to_cloud": false,
                "alarm_out": [],
                "channel": [
                    "CH16"
                ],
                "voice_prompts_index": [
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                "voice_prompts_select": [
                    0,
                    0
                ],
                "voice_prompts_time": [
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    }
                ],
                "copy_ch": "all"
            },
            "IP_CH5<-1": {
                "alarm_type": "Off",
                "buzzer": "0",
                "latch_time": "10",
                "post_recording": "30",
                "show_message": true,
                "send_email": false,
                "full_screen": false,
                "ftp_picture_upload": false,
                "ftp_video_upload": false,
                "http_listening": false,
                "picture_to_cloud": false,
                "video_to_cloud": false,
                "alarm_out": [],
                "channel": [
                    "CH5"
                ],
                "voice_prompts_index": [
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                "voice_prompts_select": [
                    1,
                    0
                ],
                "voice_prompts_time": [
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    }
                ],
                "copy_ch": "all"
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get parameter for Alarm > IO Alarm .

Request Message

Parameter Description

See Alarm>IO Alarm>Range>Parameter Description>Table 2 for parameter description

Sample:

POST /API/AlarmConfig/IO/Set HTTP/1.1
{
    "version":"1.0",
    "data":
    {
        "channel_info":
        {
            "Local<-1":
            {
                "alarm_type":"NormallyOpen",
                "buzzer":"0",
                "latch_time":"10",
                "post_recording":"30",
                "show_message":true,
                "send_email":false,
                "full_screen":false,
                "ftp_picture_upload":false,
                "ftp_video_upload":false,
                "http_listening":false,
                "picture_to_cloud":false,
                "video_to_cloud":false,
                "alarm_out":[],
                "channel":["CH1"],
                "voice_prompts_index":[0,0,0,0,0,0,0,0,0,0,0,0],"voice_prompts_select":[1,0],
                "voice_prompts_time":[
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    }],
                "copy_ch":"all",
                "chn_index":"Local<-1"
            },
            "Local<-2":
            {
                "alarm_type":"NormallyOpen",
                "buzzer":"0",
                "latch_time":"10",
                "post_recording":"30",
                "show_message":true,
                "send_email":false,
                "full_screen":false,
                "ftp_picture_upload":false,
                "ftp_video_upload":false,
                "http_listening":false,
                "picture_to_cloud":false,
                "video_to_cloud":false,
                "alarm_out":[],
                "channel":["CH2"],
                "voice_prompts_index":[0,0,0,0,0,0,0,0,0,0,0,0],"voice_prompts_select":[0,0],
                "voice_prompts_time":[
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    }],
                "copy_ch":"all"
            },
            "Local<-3":
            {
                "alarm_type":"NormallyOpen",
                "buzzer":"0",
                "latch_time":"10",
                "post_recording":"30",
                "show_message":true,
                "send_email":false,
                "full_screen":false,
                "ftp_picture_upload":false,
                "ftp_video_upload":false,
                "http_listening":false,
                "picture_to_cloud":false,
                "video_to_cloud":false,
                "alarm_out":[],
                "channel":["CH3"],
                "voice_prompts_index":[0,0,0,0,0,0,0,0,0,0,0,0],"voice_prompts_select":[1,0],
                "voice_prompts_time":[
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    }],
                "copy_ch":"all"
            },
            "Local<-4":
            {
                "alarm_type":"NormallyOpen",
                "buzzer":"0",
                "latch_time":"10",
                "post_recording":"30",
                "show_message":true,
                "send_email":false,
                "full_screen":false,
                "ftp_picture_upload":false,
                "ftp_video_upload":false,
                "http_listening":false,
                "picture_to_cloud":false,
                "video_to_cloud":false,
                "alarm_out":[],
                "channel":["CH4"],
                "voice_prompts_index":[0,0,0,0,0,0,0,0,0,0,0,0],"voice_prompts_select":[0,0],
                "voice_prompts_time":[
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,"start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    }
                ],
                "copy_ch":"all"
            },
            "Local<-5":
            {
                "alarm_type":"NormallyOpen",
                "buzzer":"0",
                "latch_time":"10",
                "post_recording":"30",
                "show_message":true,
                "send_email":false,
                "full_screen":false,
                "ftp_picture_upload":false,
                "ftp_video_upload":false,
                "http_listening":false,
                "picture_to_cloud":false,
                "video_to_cloud":false,
                "alarm_out":[],
                "channel":["CH5"],
                "voice_prompts_index":[0,0,0,0,0,0,0,0,0,0,0,0],"voice_prompts_select":[1,0],
                "voice_prompts_time":[
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    }
                ],
                "copy_ch":"all"
            },
            "Local<-6":
            {
                "alarm_type":"NormallyOpen",
                "buzzer":"0",
                "latch_time":"10",
                "post_recording":"30",
                "show_message":true,
                "send_email":false,
                "full_screen":false,
                "ftp_picture_upload":false,
                "ftp_video_upload":false,
                "http_listening":false,
                "picture_to_cloud":false,
                "video_to_cloud":false,
                "alarm_out":[],
                "channel":["CH6"],
                "voice_prompts_index":[0,0,0,0,0,0,0,0,0,0,0,0],"voice_prompts_select":[0,0],
                "voice_prompts_time":[
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    }
                ],
                "copy_ch":"all"
            },
            "Local<-7":
            {
                "alarm_type":"NormallyOpen",
                "buzzer":"0",
                "latch_time":"10",
                "post_recording":"30",
                "show_message":true,
                "send_email":false,
                "full_screen":false,
                "ftp_picture_upload":false,
                "ftp_video_upload":false,
                "http_listening":false,
                "picture_to_cloud":false,
                "video_to_cloud":false,
                "alarm_out":[],
                "channel":["CH7"],
                "voice_prompts_index":[0,0,0,0,0,0,0,0,0,0,0,0],"voice_prompts_select":[1,0],
                "voice_prompts_time":[
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    }
                ],
                "copy_ch":"all"
            },
            "Local<-8":
            {
                "alarm_type":"NormallyOpen",
                "buzzer":"0",
                "latch_time":"10",
                "post_recording":"30",
                "show_message":true,
                "send_email":false,
                "full_screen":false,
                "ftp_picture_upload":false,
                "ftp_video_upload":false,
                "http_listening":false,
                "picture_to_cloud":false,
                "video_to_cloud":false,
                "alarm_out":[],
                "channel":["CH8"],
                "voice_prompts_index":[0,0,0,0,0,0,0,0,0,0,0,0],"voice_prompts_select":[0,0],
                "voice_prompts_time":[
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    }
                ],
                "copy_ch":"all"
            },
            "Local<-9":
            {
                "alarm_type":"NormallyOpen",
                "buzzer":"0",
                "latch_time":"10",
                "post_recording":"30",
                "show_message":true,
                "send_email":false,
                "full_screen":false,
                "ftp_picture_upload":false,
                "ftp_video_upload":false,
                "http_listening":false,
                "picture_to_cloud":false,
                "video_to_cloud":false,
                "alarm_out":[],
                "channel":["CH9"],
                "voice_prompts_index":[0,0,0,0,0,0,0,0,0,0,0,0],"voice_prompts_select":[1,0],
                "voice_prompts_time":[
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    }
                ],
                "copy_ch":"all"
            },
            "Local<-10":
            {
                "alarm_type":"NormallyOpen",
                "buzzer":"0",
                "latch_time":"10",
                "post_recording":"30",
                "show_message":true,
                "send_email":false,
                "full_screen":false,
                "ftp_picture_upload":false,
                "ftp_video_upload":false,
                "http_listening":false,
                "picture_to_cloud":false,
                "video_to_cloud":false,
                "alarm_out":[],
                "channel":["CH10"],
                "voice_prompts_index":[0,0,0,0,0,0,0,0,0,0,0,0],"voice_prompts_select":[0,0],
                "voice_prompts_time":[
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    }
                ],
                "copy_ch":"all"
            },
            "Local<-11":
            {
                "alarm_type":"NormallyOpen",
                "buzzer":"0",
                "latch_time":"10",
                "post_recording":"30",
                "show_message":true,
                "send_email":false,
                "full_screen":false,
                "ftp_picture_upload":false,
                "ftp_video_upload":false,
                "http_listening":false,
                "picture_to_cloud":false,
                "video_to_cloud":false,
                "alarm_out":[],
                "channel":["CH11"],
                "voice_prompts_index":[0,0,0,0,0,0,0,0,0,0,0,0],"voice_prompts_select":[1,0],
                "voice_prompts_time":[
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    }
                ],
                "copy_ch":"all"
            },
            "Local<-12":
            {
                "alarm_type":"NormallyOpen",
                "buzzer":"0",
                "latch_time":"10",
                "post_recording":"30",
                "show_message":true,
                "send_email":false,
                "full_screen":false,
                "ftp_picture_upload":false,
                "ftp_video_upload":false,
                "http_listening":false,
                "picture_to_cloud":false,
                "video_to_cloud":false,
                "alarm_out":[],
                "channel":["CH12"],
                "voice_prompts_index":[0,0,0,0,0,0,0,0,0,0,0,0],"voice_prompts_select":[0,0],
                "voice_prompts_time":[
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    }
                ],
                "copy_ch":"all"
            },
            "Local<-13":
            {
                "alarm_type":"NormallyOpen",
                "buzzer":"0",
                "latch_time":"10",
                "post_recording":"30",
                "show_message":true,
                "send_email":false,
                "full_screen":false,
                "ftp_picture_upload":false,
                "ftp_video_upload":false,
                "http_listening":false,
                "picture_to_cloud":false,
                "video_to_cloud":false,
                "alarm_out":[],
                "channel":["CH13"],
                "voice_prompts_index":[0,0,0,0,0,0,0,0,0,0,0,0],"voice_prompts_select":[1,0],
                "voice_prompts_time":[
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    }
                ],
                "copy_ch":"all"
            },
            "Local<-14":
            {
                "alarm_type":"NormallyOpen",
                "buzzer":"0",
                "latch_time":"10",
                "post_recording":"30",
                "show_message":true,
                "send_email":false,
                "full_screen":false,
                "ftp_picture_upload":false,
                "ftp_video_upload":false,
                "http_listening":false,
                "picture_to_cloud":false,
                "video_to_cloud":false,
                "alarm_out":[],
                "channel":["CH14"],
                "voice_prompts_index":[0,0,0,0,0,0,0,0,0,0,0,0],"voice_prompts_select":[0,0],
                "voice_prompts_time":[
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    }
                ],
                "copy_ch":"all"
            },
            "Local<-15":
            {
                "alarm_type":"NormallyOpen",
                "buzzer":"0",
                "latch_time":"10",
                "post_recording":"30",
                "show_message":true,
                "send_email":false,
                "full_screen":false,
                "ftp_picture_upload":false,
                "ftp_video_upload":false,
                "http_listening":false,
                "picture_to_cloud":false,
                "video_to_cloud":false,
                "alarm_out":[],
                "channel":["CH15"],
                "voice_prompts_index":[0,0,0,0,0,0,0,0,0,0,0,0],"voice_prompts_select":[1,0],
                "voice_prompts_time":[
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    }
                ],
                "copy_ch":"all"
            },
            "Local<-16":
            {
                "alarm_type":"NormallyOpen",
                "buzzer":"0",
                "latch_time":"10",
                "post_recording":"30",
                "show_message":true,
                "send_email":false,
                "full_screen":false,
                "ftp_picture_upload":false,
                "ftp_video_upload":false,
                "http_listening":false,
                "picture_to_cloud":false,
                "video_to_cloud":false,
                "alarm_out":[],
                "channel":["CH16"],
                "voice_prompts_index":[0,0,0,0,0,0,0,0,0,0,0,0],"voice_prompts_select":[0,0],
                "voice_prompts_time":[
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    }
                ],
                "copy_ch":"all"
            },
            "IP_CH5<-1":
            {
                "alarm_type":"Off",
                "buzzer":"0",
                "latch_time":"10",
                "post_recording":"30",
                "show_message":true,
                "send_email":false,
                "full_screen":false,
                "ftp_picture_upload":false,
                "ftp_video_upload":false,
                "http_listening":false,
                "picture_to_cloud":false,
                "video_to_cloud":false,
                "alarm_out":[],
                "channel":["CH5"],
                "voice_prompts_index":[0,0,0,0,0,0,0,0,0,0,0,0],"voice_prompts_select":[1,0],
                "voice_prompts_time":[
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    }
                ],
                "copy_ch":"all"
            }
        }
    }
}

Response Message

Parameter Description

None.

Sampel:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result":"success",
    "data":{}
}

Error Code

See Response Messages Body and Common error_code for more information.

Line Crossing Detection

Function

This API is used for get or set LCD config parameters.

URI

POST /API/AlarmConfig/Intelligent/LCD/{Action}

Tbale 1 describes the parameters.

Paramester Description

Table 1

ParameterRequiredDescription
ActionYesRequest action,including Range, GetSet

Range

Function

This API is used to get the parameter range of Alarm > Line Crossing Detection.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
channel“CH1” ”CH1x” “IP_CH1” ” IP_CH1x”“WIFI_CH1” ” WIFI_CH1x”
The number of channels depends on the functionality of the device.
string arrayEach array bit represents a channel with a string.
DVR/NVR need;IPC only use CH1
page_type"FloodLight"
"Siren"
"EnforcerLight"
stringUsed to distinguish the type of the schedule.

Sample:

POST /API/AlarmConfig/Intelligent/LCD/Range HTTP/1.1
{
    "version":"1.0",
    "data":
    {
        "page_type":"AlarmConfig"
    }
}

Response Message

Parameter Description

Table 2
ParameterRangeTypeDescription
channel_infoJson ObjectChannel information see Table 3 for more information
page_type"FloodLight"
"Siren"
"EnforcerLight"
stringUsed to distinguish the type of the schedule.
channel_maxintMaximum number of channels
support_copyboolDoes the page support copy (dedicated to NVR and DVR)
Table 3
ParameterRangeTypeDescription
CH1Json ObjectJson onject see Table 4 for more information
...Json Object
IP_CH1Json Object
...Json Object
WIFI_CH1Json Object
...Json Object
Table 4
ParameterRangeTypeDescription
status"Offline","Online",“Nonsupport”stringChannel online status, only for digital channels.
Note: This field is not available when the channel is online
alarm_out“Local->1” ”Local->x”“IP_CH1->1” “IP_CH1->2” ”IP_CHx->1” ”IP_CHx->2”
The number of channels depends on the functionality of the device.
arrayAlarm channel
Each array bit is represented by a string representing the alarm output channel.
Camera: Local ->1: On, null: Off
latch_time"10","20","40","60"stringAlarm output time
record_enabletrue falseboolRecord channel switch
record_channel“CH1” ”CH1x”“IP_CH1” ” IP_CH1x”“WIFI_CH1”arrayAlarm output channel
Channel alarm linkage switch
post_recording"30","60","120","300"stringRecording delay time
send_emailtrue falseboolSend email switch
ftp_picture_uploadtrue falseboolChannel capture FTP upload switch
ftp_video_uploadtrue falseboolChannel video FTP upload switch
picture_to_cloudtrue falseboolImage upload switch (dedicated to NVR)
video_to_cloudtrue falseboolVideo cloud upload switch (dedicated to NVR/DVR)
full_screenboolFull screen switch (NVR specific)
buzzer"0","10","20","40","60"stringBuzzer beep time (NVR specific)
show_messageboolDisplay message switch (NVR specific)
switchtrue falseboolswitch,false: close true: open
sensitivity1-4intTest sensitivity
detection_type"Off" "Pedestrian" "Vehicle" "Pedestrian &Vehicle"stringDetection types, human and vehicle shapes
iva_lines0:do not draw a line,1:draw a lineintWill there be dashes in preview and playback
rule_infoJson objectsee Table 5 for more information
copy_ch"digit""analog""wifi"stringFlag supporting channel replication (dedicated to NVR and DVR)
voice_prompts_index0~4294967295intFile index (0~4294967295, where 0 is None, meaning no audio file has been selected). Each file is named "index_filename" (1ui will try), and when displayed on the page, "index_" should be hidden, such as "1ui will try" and only "i will try" should be displayed
voice_prompts_selectarrayPlayback channel, calculated by bit (bit0 is local, bit1 corresponds to front-end channel 1, and bit2 corresponds to channel 2)
voice_prompts_timearrayTime period, there cannot be time conflicts among 12 time periods
Table 5
ParameterRangeTypeDescription
rule_number1ObjectRule number1,see Table 6 for more information
rule_number2ObjectRule number2,see Table 6 for more information
rule_number3ObjectRule number3,see Table 6 for more information
rule_number4ObjectRule number4,see Table 6 for more information
Table 6
ParameterRangeTypeDescription
rule_switchboolrule switch
rule_type"A->B","B->A","A<->B"stringRule direction
rule_lineobjectEach channel can have a maximum of 64 point coordinates, or 32 lines. If it is a companion line, only the first line will be used. If it is a perimeter, these 8 lines will be connected in sequence to form a closed graph
see Table 7 for more information
Table 7
ParameterRabgeTypeDescription
x10-704shortx1 Coordinate points
y20-576shorty1 Coordinate points
x20-704shortx2 Coordinate points
y20-576shorty2 Coordinate points

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_max": 16,
        "support_copy": true,
        "channel_info": {
            "type": "object",
            "items": {
                "CH1": {
                    "type": "object",
                    "items": {
                        "status": {
                            "description": "Only offline channel has this variable.",
                            "type": "string",
                            "mode": "r",
                            "items": [
                                "Offline",
                                "Online",
                                "Nonsupport"
                            ]
                        },
                        "buzzer": {
                            "type": "string",
                            "items": [
                                "0",
                                "10",
                                "20",
                                "40",
                                "60"
                            ]
                        },
                        "alarm_out": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 33,
                            "items": {
                                "type": "string",
                                "items": [
                                    "Local->1",
                                    "IP_CH1->1"
                                ]
                            }
                        },
                        "latch_time": {
                            "type": "string",
                            "items": [
                                "10",
                                "20",
                                "40",
                                "60"
                            ]
                        },
                        "record_enable": {"type": "bool"},
                        "record_channel": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 16,
                            "items": {
                                "type": "string",
                                "items": [
                                    "CH1",
                                    "CH2",
                                    "CH3",
                                    "CH4",
                                    "CH5",
                                    "CH6",
                                    "CH7",
                                    "CH8",
                                    "CH9",
                                    "CH10",
                                    "CH11",
                                    "CH12",
                                    "CH13",
                                    "CH14",
                                    "CH15",
                                    "CH16"
                                ]
                            }
                        },
                        "post_recording": {
                            "type": "string",
                            "items": [
                                "30",
                                "60",
                                "120",
                                "300"
                            ]
                        },
                        "show_message": {"type": "bool"},
                        "send_email": {"type": "bool"},
                        "full_screen": {"type": "bool"},
                        "http_listening": {"type": "bool"},
                        "ftp_picture_upload": {"type": "bool"},
                        "ftp_video_upload": {"type": "bool"},
                        "picture_to_cloud": {"type": "bool"},
                        "video_to_cloud": {"type": "bool"},
                        "voice_prompts_index": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "voice_prompts_select": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "voice_prompts_time": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "copy_ch": {
                            "type": "string",
                            "items": [
                                "digit",
                                "analog",
                                "wifi",
                                "local",
                                "all"
                            ]
                        }
                    }
                },
                "CH2": {
                    "type": "object",
                    "items": {
                        "status": {
                            "description": "Only offline channel has this variable.",
                            "type": "string",
                            "mode": "r",
                            "items": [
                                "Offline",
                                "Online",
                                "Nonsupport"
                            ]
                        },
                        "buzzer": {
                            "type": "string",
                            "items": [
                                "0",
                                "10",
                                "20",
                                "40",
                                "60"
                            ]
                        },
                        "alarm_out": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 33,
                            "items": {
                                "type": "string",
                                "items": [
                                    "Local->1",
                                    "IP_CH1->1"
                                ]
                            }
                        },
                        "latch_time": {
                            "type": "string",
                            "items": [
                                "10",
                                "20",
                                "40",
                                "60"
                            ]
                        },
                        "record_enable": {"type": "bool"},
                        "record_channel": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 16,
                            "items": {
                                "type": "string",
                                "items": [
                                    "CH1",
                                    "CH2",
                                    "CH3",
                                    "CH4",
                                    "CH5",
                                    "CH6",
                                    "CH7",
                                    "CH8",
                                    "CH9",
                                    "CH10",
                                    "CH11",
                                    "CH12",
                                    "CH13",
                                    "CH14",
                                    "CH15",
                                    "CH16"
                                ]
                            }
                        },
                        "post_recording": {
                            "type": "string",
                            "items": [
                                "30",
                                "60",
                                "120",
                                "300"
                            ]
                        },
                        "show_message": {"type": "bool"},
                        "send_email": {"type": "bool"},
                        "full_screen": {"type": "bool"},
                        "http_listening": {"type": "bool"},
                        "ftp_picture_upload": {"type": "bool"},
                        "ftp_video_upload": {"type": "bool"},
                        "picture_to_cloud": {"type": "bool"},
                        "video_to_cloud": {"type": "bool"},
                        "voice_prompts_index": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "voice_prompts_select": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "voice_prompts_time": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "copy_ch": {
                            "type": "string",
                            "items": [
                                "digit",
                                "analog",
                                "wifi",
                                "local",
                                "all"
                            ]
                        }
                    }
                }
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get parameter for Alarm > Line Crossing Detection.

Request Message

Parameter Description

See Alarm > Line Crossing Detection > Range > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/AlarmConfig/Intelligent/LCD/Get HTTP/1.1
{
    "version":"1.0",
    "data":
    {
        "page_type":"AlarmConfig"
    }
}

Response Message

Parameter Description

See Alarm > Line Crossing Detection > Range > Parameter Description > Table 2 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {"channel_info": {
        "CH1": {"reason": "Not configured"},
        "CH2": {
            "alarm_out": [],
            "latch_time": "10",
            "record_enable": true,
            "http_listening": false,
            "buzzer": "0",
            "record_channel": ["CH2"],
            "post_recording": "30",
            "show_message": true,
            "send_email": true,
            "full_screen": false,
            "ftp_picture_upload": true,
            "ftp_video_upload": false,
            "picture_to_cloud": true,
            "video_to_cloud": false,
            "voice_prompts_index": [
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
            ],
            "voice_prompts_select": [
                1,
                0
            ],
            "voice_prompts_time": [
                {
                    "start_hour": 0,
                    "start_minute": 0,
                    "start_second": 0,
                    "end_hour": 23,
                    "end_minute": 59,
                    "end_second": 59
                },
                {
                    "start_hour": 0,
                    "start_minute": 0,
                    "start_second": 0,
                    "end_hour": 23,
                    "end_minute": 59,
                    "end_second": 59
                },
                {
                    "start_hour": 0,
                    "start_minute": 0,
                    "start_second": 0,
                    "end_hour": 23,
                    "end_minute": 59,
                    "end_second": 59
                },
                {
                    "start_hour": 0,
                    "start_minute": 0,
                    "start_second": 0,
                    "end_hour": 23,
                    "end_minute": 59,
                    "end_second": 59
                },
                {
                    "start_hour": 0,
                    "start_minute": 0,
                    "start_second": 0,
                    "end_hour": 23,
                    "end_minute": 59,
                    "end_second": 59
                },
                {
                    "start_hour": 0,
                    "start_minute": 0,
                    "start_second": 0,
                    "end_hour": 23,
                    "end_minute": 59,
                    "end_second": 59
                },
                {
                    "start_hour": 0,
                    "start_minute": 0,
                    "start_second": 0,
                    "end_hour": 23,
                    "end_minute": 59,
                    "end_second": 59
                },
                {
                    "start_hour": 0,
                    "start_minute": 0,
                    "start_second": 0,
                    "end_hour": 23,
                    "end_minute": 59,
                    "end_second": 59
                },
                {
                    "start_hour": 0,
                    "start_minute": 0,
                    "start_second": 0,
                    "end_hour": 23,
                    "end_minute": 59,
                    "end_second": 59
                },
                {
                    "start_hour": 0,
                    "start_minute": 0,
                    "start_second": 0,
                    "end_hour": 23,
                    "end_minute": 59,
                    "end_second": 59
                },
                {
                    "start_hour": 0,
                    "start_minute": 0,
                    "start_second": 0,
                    "end_hour": 23,
                    "end_minute": 59,
                    "end_second": 59
                },
                {
                    "start_hour": 0,
                    "start_minute": 0,
                    "start_second": 0,
                    "end_hour": 23,
                    "end_minute": 59,
                    "end_second": 59
                }
            ],
            "copy_ch": "all"
        },
        "CH3": {"reason": "Not configured"},
        "CH4": {"reason": "Not configured"},
        "CH5": {"reason": "Not configured"},
        "CH6": {"reason": "Not configured"},
        "CH7": {"reason": "Not configured"},
        "CH8": {"reason": "Not configured"},
        "CH9": {"reason": "Not configured"},
        "CH10": {"reason": "Not configured"},
        "CH11": {"reason": "Not configured"},
        "CH12": {"reason": "Not configured"},
        "CH13": {"reason": "Not configured"},
        "CH14": {"reason": "Not configured"},
        "CH15": {"reason": "Not configured"},
        "CH16": {"reason": "Not configured"}
    }}
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set parameter for Alarm > Line Crossing Detection .

Request Message

Parameter Description

See Alarm > Line Crossing Detection > Range > Parameter Description > Table 2 for parameter description

Sample:

POST /API/AlarmConfig/Intelligent/LCD/Set HTTP/1.1
{
    "version":"1.0",
    "data":
    {
        "channel_info":
        {
            "CH4":
            {
                "buzzer":"0",
                "alarm_out":[],
                "latch_time":"10",
                "record_enable":true,
                "record_channel":["CH4"],"post_recording":"30",
                "show_message":false,
                "send_email":false,
                "full_screen":false,"ftp_picture_upload":false,"ftp_video_upload":false,"picture_to_cloud":false,"video_to_cloud":false,"http_listening":false,"voice_prompts_index":[0,0,0,0,0,0,0,0,0,0,0,0],
                "voice_prompts_select":[0,0],"voice_prompts_time":[
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    }
                ],
                "copy_ch":"all",
                "chn_index":"CH4"
            },
            "CH18":
            {
                "buzzer":"0",
                "alarm_out":[],
                "latch_time":"10",
                "record_enable":true,
                "record_channel":["CH18"],"post_recording":"30",
                "show_message":false,
                "send_email":false,
                "full_screen":false,"ftp_picture_upload":false,"ftp_video_upload":false,"picture_to_cloud":false,"video_to_cloud":false,"http_listening":false,"voice_prompts_index":[0,0,0,0,0,0,0,0,0,0,0,0],
                "voice_prompts_select":[0,0],"voice_prompts_time":[
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    }
                ],
                "copy_ch":"all"
            }
        },
        "page_type":"AlarmConfig"
    }
}

Response Message

Parameter Description

None.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result":"success",
    "data":{}
}

Error Code

See Response Messages Body and Common error_code for more information.

Linkage Schedule

Function

This API is used to get or set linkage schedule parameters.

URI

POST /API/AlarmConfig/Schedule/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range, Get, Set.

Range

Function

This API is used to get Alarm > Linkage Schedule parameter range.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
channel"CH1"…"CHx",
"IP_CH1"…"IP_CHx",
"WIFI_CH1"…"WIFI_CHx"
Channels supported by the device.
string array
page_type"FloodLight"
"Siren"
"EnforcerLight"
string

Sample:

POST /API/AlarmConfig/Schedule/Range HTTP/1.1
{
    "version": "1.0",
    "data":{
        "page_type":" FloodLight",
        "channel":["CH1"]
    }
}

Response Message

Parameter Description

Table 2
ParameterRangeTypeDescription
channel_infoobjectTotal channel information see Table 3.
page_type"FloodLight", "Siren"stringThe schedule used to distinguish the alarm linkage type.
Table 3
ParameterRangeTypeDescription
CH1objectSee Table 4.
object
IP_CH1object
object
WIFI_CH1object
object
Table 4
ParameterRangeTypeDescription
scheduleobject arraySee Table 5.
Table 5
ParameterRangeTypeDescription
schedule_type"Motion",
"IO",
"PIR",
"FD",
"PVD",
"PID",
"LCD",
"SOD",
"CC",
"CD",
"QD",
"LPD",
"RSD",
"VT",
"Intrusion",
"RegionEntrance",
"RegionExiting"
"FireDetect",
"TempMeas"
stringalarm schedule type.
weekobject arraySee Table 6 for details.
switchboolCurrent alarm type alarm linkage switch (new in 8.2.3).
Table 6
ParameterRangeTypeDescription
day"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"string
time0: close the time period 1: open the time periodinteach array bit marks half an hour.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "page_type": "FloodLight",
        "channel_info": {
            "type": "object",
            "items": {"CH1": {
                "type": "object",
                "items": {"time_schedule": {
                    "type": "array",
                    "min_size": 0,
                    "max_size": 13,
                    "items": [{
                        "schedule_type": {
                            "type": "string",
                            "items": [
                                "Motion",
                                "IO",
                                "FD",
                                "PVD",
                                "PID",
                                "LCD",
                                "SOD",
                                "CC",
                                "CD",
                                "QD",
                                "LPD",
                                "RSD",
                                "VT",
                                "Intrusion",
                                "RegionEntrance",
                                "RegionExiting"
                            ]
                        },
                        "switch": {"type": "bool"},
                        "week": {
                            "type": "array",
                            "size": 7,
                            "items": [{
                                "day": {
                                    "type": "string",
                                    "items": [
                                        "Sun",
                                        "Mon",
                                        "Tue",
                                        "Wed",
                                        "Thu",
                                        "Fri",
                                        "Sat"
                                    ]
                                },
                                "time": {
                                    "type": "array",
                                    "size": 48,
                                    "items": [{
                                        "type": "int32",
                                        "items": [
                                            0,
                                            1
                                        ]
                                    }]
                                }
                            }]
                        }
                    }]
                }}
            }}
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get Alarm > Linkage Schedule parameters.

Request Message

See Alarm > LinkageSchedule > Range > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/AlarmConfig/Schedule/Get HTTP/1.1
{
    "version": "1.0",
    "data": {
        "page_type": "AlarmConfig",
        "channel":["CH1"]
    }
}

Response Message

See Alarm > LinkageSchedule > Range > Parameter Description > Table 2 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_info": {
            "CH1": {
                "schedule": 
                [
                    {
                        "schedule_type": "Motion",
                        "week": 
                        [
                            {
                                "day": "Sun",
                                "time": [1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1]
                            },
                            {
                                "day": "Mon",
                                "time": [1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1]
                            },
                            {
                                "day": "Tue",
                                "time": [1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1]
                            },
                            {
                                "day": "Wed",
                                "time": [1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1]
                            },
                            {
                                "day": "Thu",
                                "time": [1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1]
                            },
                            {
                                "day": "Fri",
                                "time": [1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1]
                            },
                            {
                                "day": "Sat",
                                "time": [1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1]
                            },
                        ]
                    }
                ]
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set Alarm > Linkage Schedule parameters.

Request Message

See Alarm > LinkageSchedule > Set > Parameter Description > Table 2 for parameter description.

Sample:

POST /API/AlarmConfig/Schedule/Set HTTP/1.1
{
    "version": "1.0",
	"data": {
		"channel_info": {
			"CH1": {
				"schedule": 
				[
					{
						"schedule_type": "Motion",
                        "week": 
						[
                            {
                                "day": "Sun",
                                "time": [1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1]
                            },
							{
                                "day": "Mon",
                                "time": [1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1]
                            },
							{
                                "day": "Tue",
                                "time": [1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1]
                            },
							{
                                "day": "Wed",
                                "time": [1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1]
                            },
							{
                                "day": "Thu",
                                "time": [1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1]
                            },
							{
                                "day": "Fri",
                                "time": [1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1]
                            },
							{
                                "day": "Sat",
                                "time": [1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1]
                            },
						]
					}
				]
			}
		}
	}
}

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Motion Alarm

Function

This API is used for get or set Motion Alarm parameters.

URI

POST /API/AlarmConfig/Motion/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYesRequest action,including Range, GetSet

Range

Function

This API is used to get the parameter range of Alarm > MOtion Alarm.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
channel“CH1” ”CH1x” “IP_CH1” ” IP_CH1x”“WIFI_CH1” ” WIFI_CH1x”
The number of channels depends on the functionality of the device.
string arrayEach array bit represents a channel with a string.
page_type“ChannelConfig”,“AlarmConfig” “AllConfig”stringData used to distinguish between channel configuration page and alarm configuration page
“AllConfig”Used in nvr to obtain and set ipc parameters, with more light than ChannelConfig_ Linkage field

Sample:

POST /API/AlarmConfig/Motion/Range HTTP/1.1
{
    "version":"1.0","data":{
        "page_type":"AlarmConfig"
    }
}

Response Message

Parameter Description

Table 2
ParameterRangeTypeDescription
channel_infoJson ObjectChannel information see Table 3 for more information
page_type“ChannelConfig”,“AarmConfig”stringUsed to distinguish between channel configuration page and alarm configuration page data, only required when set
channel_maxintThe total number of channels in the current device
support_copyboolDoes the page support copy (dedicated to NVR and DVR)
Table 3
ParameterRangeTypeDescription
CH1Json ObjectJson see Table 4
...Json Object
IP_CH1Json Object
...Json Object
WIFI_CH1Json Object
...Json Object
Table 4
ParameterRangeTypeDescription
status"Offline","Online","Nonsupport"stringChannel online status, only for digital channels.
Note: This field is not available when the channel is online
switchboolRequest switch
mbcol1 - 44(onvif)intMotion The area is divided into row * col blocks, which are determined by camera. Set does not require
mbrow1 - 30(onvif)intMotion The area is divided into row * col blocks, which are determined by camera. Set does not require
copy_ch"digit""analog""wifi"stringFlag supporting channel replication (dedicated to NVR and DVR)
sensitivity1-5、1-8intmotion detection sensitivity
intervals1-256intMotion Alarm detection time interval (s)
smart_motion_detectionbool
buzzer"0","10","20","40","60"stringBuzzer beep time (NVR/DVR dedicated)
alarm_out“Local->1” ”Local->x”“IP_CH1->1” “IP_CH1->2” ”IP_CHx->1” ”IP_CHx->2”
The number of channels depends on the functionality of the device.
arrayAlarm channels
Each array bit is represented by a string representing the alarm output channel.
latch_time"10","20","40","60"stringAlarm output time
record_enableboolRecord channel switch
record_channel“CH1” ”CH1x”“IP_CH1” ” IP_CH1x”“WIFI_CH1”arrayAlarm output channel
Channel alarm linkage switch
post_recording"30","60","120","300"stringRecording delay time
region_settingarrayThe region is divided into 36 lines and 44 blocks/lines. A bit describes a block in a row. Bit=1: Monitor the movement of the block.. Example: Region [0]=(FF-FF-FF-FF-FF-F0-00-00-00): Monitor the motion in 44 blocks of channel 0. 44 blocks of Line 1 have not been monitored
show_messageboolDisplay message switch (dedicated to NVR/DVR)
send_emailboolSend email switch
full_screenboolFull screen switch (dedicated to NVR/DVR)
ftp_picture_uploadboolChannel capture FTP upload switch
ftp_video_uploadtrue falseboolChannel video FTP upload switch (dedicated to NVR/DVR)
picture_to_cloudboolImage upload switch
video_to_cloudtrue falseboolVideo cloud upload switch (dedicated to NVR/DVR)
light_linkageboolWhite light linkage switch, when the motion is triggered, the linkage triggers white light
multiple_switch"Disable" "Motion" "PIR_and_Motion" "Person" "PIR_and_Person"stringMotion switch with multiple options
voice_prompts_index0~4294967295intFile index (0~4294967295, where 0 is None, meaning no audio file has been selected). Each file is named "index_filename" (1ui will try), and when displayed on the page, "index_" should be hidden, such as "1ui will try" and only "i will try" should be displayed
voice_prompts_selectarrayPlayback channel, calculated by bit (bit0 is local, bit1 corresponds to front-end channel 1, and bit2 corresponds to channel 2)
voice_prompts_timearrayTime period, there cannot be time conflicts among 12 time periods
schedule_list0-8json array(Dedicated to consumer NVR docking with IPC POE packages) deployment plan data,see Table 5 for more information
smart_moiton_detectionboolSMD switch
target_type"Motion","Pedestrian","Vehicle","Pedestrian & Vehicle"stringDetection types with multiple options
enforcerlight_linkageboolAlarm light linkage switch.
siren_linkageboolAlarm linkage switch.
http_listeningbooleventpushlinkage switch
scheduleJson arrayJson See Table 6
Table 5
ParameterRangeTypeDescription
enabletrue falseboolIs the current schedule effective
start_time0 – 1439(23*60+59)intSchedule start time (minutes relative to 00:00)
end_time0 – 1439(23*60+59)intSchedule end time (minutes relative to 00:00)
weekday"Sunday" "Monday" "Tuesday" "Wednesday" "Thursday" "Friday" "Saturday"arrayIndicates the day of the week on which the current schedule takes effect, with multiple options available
Table 6
ParameterRangeTypeDescription
schedule_type"Motion"stringmotion linkage schedule.
weekJson arrayWeekJson See Table 7.
Table 7
ParameterRangeTypeDescription
day"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"string
time0:Disable Time range 1: The time range is enabledarrayEach array bit (int) identifies half an hour。

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_max": 16,
        "support_copy": true,
        "channel_info": {
            "type": "object",
            "items": {
                "CH1": {
                    "type": "object",
                    "items": {
                        "status": {
                            "description": "Only offline channel has this variable.",
                            "type": "string",
                            "mode": "r",
                            "items": [
                                "Offline",
                                "Online"
                            ]
                        },
                        "buzzer": {
                            "type": "string",
                            "items": [
                                "0",
                                "10",
                                "20",
                                "40",
                                "60"
                            ]
                        },
                        "alarm_out": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 33,
                            "items": {
                                "type": "string",
                                "items": [
                                    "Local->1",
                                    "IP_CH1->1"
                                ]
                            }
                        },
                        "latch_time": {
                            "type": "string",
                            "items": [
                                "10",
                                "20",
                                "40",
                                "60"
                            ]
                        },
                        "record_enable": {
                            "type": "bool"
                        },
                        "record_channel": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 16,
                            "items": {
                                "type": "string",
                                "items": [
                                    "CH1",
                                    "CH2",
                                    "CH3",
                                    "CH4",
                                    "CH5",
                                    "CH6",
                                    "CH7",
                                    "CH8",
                                    "CH9",
                                    "CH10",
                                    "CH11",
                                    "CH12",
                                    "CH13",
                                    "CH14",
                                    "CH15",
                                    "CH16"
                                ]
                            }
                        },
                        "http_listening": {
                            "type": "bool"
                        },
                        "post_recording": {
                            "type": "string",
                            "items": [
                                "30",
                                "60",
                                "120",
                                "300"
                            ]
                        },
                        "show_message": {
                            "type": "bool"
                        },
                        "send_email": {
                            "type": "bool"
                        },
                        "full_screen": {
                            "type": "bool"
                        },
                        "ftp_picture_upload": {
                            "type": "bool"
                        },
                        "ftp_video_upload": {
                            "type": "bool"
                        },
                        "picture_to_cloud": {
                            "type": "bool"
                        },
                        "video_to_cloud": {
                            "type": "bool"
                        },
                        "voice_prompts_index": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "voice_prompts_select": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "voice_prompts_time": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "copy_ch": {
                            "type": "string",
                            "items": [
                                "digit",
                                "analog",
                                "wifi",
                                "local",
                                "all"
                            ]
                        }
                    }
                },
                ...
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get parameter for Alarm > MOtion Alarm.

Request Message

Parameter Description

See Alarm > Motion Alarm > Range > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/AlarmConfig/Motion/Get HTTP/1.1
{
    "version":"1.0","data":{
        "page_type":"AlarmConfig"
    }
}

Response Message

Parameter Description

See Alarm > Motion Alarm > Range > Parameter Description > Table 2 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_info": {
            "CH1": {
                "buzzer": "0",
                "alarm_out": [],
                "latch_time": "10",
                "record_enable": true,
                "record_channel": [
                    "CH1"
                ],
                "http_listening": false,
                "post_recording": "30",
                "show_message": true,
                "send_email": true,
                "full_screen": false,
                "ftp_picture_upload": true,
                "ftp_video_upload": false,
                "picture_to_cloud": true,
                "video_to_cloud": false,
                "voice_prompts_index": [
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                "voice_prompts_select": [
                    1,
                    0
                ],
                "voice_prompts_time": [
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    }
                ],
                "copy_ch": "all"
            },
            "CH2": {
                "reason": "Not configured"
            },
            "CH3": {
                "reason": "Not configured"
            },
            "CH4": {
                "reason": "Not configured"
            },
            "CH5": {
                "reason": "Not configured"
            },
            "CH6": {
                "reason": "Not configured"
            },
            "CH7": {
                "reason": "Not configured"
            },
            "CH8": {
                "reason": "Not configured"
            },
            "CH9": {
                "reason": "Not configured"
            },
            "CH10": {
                "reason": "Not configured"
            },
            "CH11": {
                "reason": "Not configured"
            },
            "CH12": {
                "reason": "Not configured"
            },
            "CH13": {
                "reason": "Not configured"
            },
            "CH14": {
                "reason": "Not configured"
            },
            "CH15": {
                "reason": "Not configured"
            },
            "CH16": {
                "reason": "Not configured"
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set parameter for Alarm > Motion Alarm.

Request Message

Parameter Description

See Alarm>Motion Alarm>Range>Parameter Description>Table 2 for parameter description

Sample:

POST /API/AlarmConfig/Motion/Set HTTP/1.1
{
    "version": "1.0",
    "data": {
        "channel_info": {
            "CH1": {
                "buzzer": "0",
                "alarm_out": [],
                "latch_time": "10",
                "record_enable": true,
                "record_channel": ["CH1"],
                "http_listening": false,
                "post_recording": "30",
                "show_message": true,
                "send_email": false,
                "full_screen": false,
                "ftp_picture_upload": true,
                "ftp_video_upload": false,
                "picture_to_cloud": true,
                "video_to_cloud": false,
                "voice_prompts_index": [
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                "voice_prompts_select": [
                    1,
                    0
                ],
                "voice_prompts_time": [
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    }
                ],
                "copy_ch": "all",
                "chn_index": "CH1"
            }
        },
        "page_type": "AlarmConfig"
    }
}

Response Message

Parameter Description

None.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result":"success",
    "data":{}
}

Error Code

See Response Messages Body and Common error_code for more information.

Occlusion Detection

Function

This API is used for get or set OcclusionDetectionconfig parameters.

URI

POST /API/AlarmConfig/Intelligent/OcclusionDetection/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYesRequest action,including Range, GetSet

Range

Function

This API is used to get the parameter range of Alarm > Occlusion Detection.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
channel"CH1"…"CHx",
"IP_CH1"…"IP_CHx",
"WIFI_CH1"…"WIFI_CHx"
The channels supported by the device.
string arrayonly use "CH1"。
page_type"ChannelConfig", "AlarmConfig"stringData used to distinguish between channel configuration pages and alarm configuration pages.

Sample:

POST /API/AlarmConfig/Intelligent/OcclusionDetection/Range HTTP/1.1
{
    "version":"1.0",
    "data":{}
}

Response Message

Parameter Description

Table 2
ParameterRangeTypeDescription
channel_infoJson ObjectChannel information see Table 3 for more information
page_type“ChannelConfig”,“AarmConfig”stringUsed to distinguish between channel configuration page and alarm configuration page data, only required when set
channel_maxintMaximum number of channels
support_copyboolDoes the page support copy (dedicated to NVR and DVR)
Table 3
ParameterRangeTypeDescription
CH1Json ObjectJson see Table 4 for more information
...Json Object
IP_CH1Json Object
...Json Object
WIFI_CH1Json Object
...Json Object
Table 4
ParameterRangeTypeDescription
status"Offline","Online",“Nonsupport”stringChannel online status, only for digital channels.
Note: This field is not available when the channel is online
alarm_out“Local->1” ”Local->x”“IP_CH1->1” “IP_CH1->2” ”IP_CHx->1” ”IP_CHx->2”
The number of channels depends on the functionality of the device.
arrayAlarm channel
Each array bit is represented by a string representing the alarm output channel.
Camera: Local ->1: On, null: Off
latch_time"10","20","40","60"stringAlarm output time
record_enabletrue falseboolRecord channel switch
record_channel“CH1” ”CH1x”“IP_CH1” ” IP_CH1x”“WIFI_CH1”arrayAlarm output channel
Channel alarm linkage switch
post_recording"30","60","120","300"stringRecording delay time
send_emailtrue falseboolSend email switch
ftp_picture_uploadtrue falseboolChannel capture FTP upload switch
ftp_video_uploadtrue falseboolChannel video FTP upload switch
picture_to_cloudtrue falseboolImage upload switch (dedicated to NVR)
video_to_cloudtrue falseboolVideo cloud upload switch (dedicated to NVR/DVR)
full_screenboolFull screen switch (NVR specific)
buzzer"0","10","20","40","60"stringBuzzer beep time (NVR specific)
show_messageboolDisplay message switch (NVR specific)
switchtrue falseboolswitch,false: close true: open
sensitivity1-6intTest sensitivity
copy_ch"digit""analog""wifi"stringFlag supporting channel replication (dedicated to NVR and DVR)
voice_prompts_index0~4294967295intFile index (0~4294967295, where 0 is None, meaning no audio file has been selected). Each file is named "index_filename" (1ui will try), and when displayed on the page, "index_" should be hidden, such as "1ui will try" and only "i will try" should be displayed
voice_prompts_selectarrayPlayback channel, calculated by bit (bit0 is local, bit1 corresponds to front-end channel 1, and bit2 corresponds to channel 2)
voice_prompts_timearrayTime period, there cannot be time conflicts among 12 time periods
record_enableboolrecord switch
light_linkageboolWhite light linkage switch
enforcerlight_linkageboolAlarm light linkage switch
siren_linkageboolAlarm linkage switch
http_listeningbooleventpush linkage switch
scheduleJson arrayJson See Table 5.
Table 5
ParameterRangeTypeDescription
schedule_type"Occlusion Detection"stringOcclusion Detection Linkage schedule
weekJson arrayWeekJson See Table 6
Table 6
ParameterRangeTypeDescription
day"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"string
time0:Disable Time range 1: The time range is enabledarrayEach array bit (int) identifies half an hour.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "support_copy": true,
        "default_timeout": 30000,
        "channel_max": 20,
        "channel_info": {
            "type": "object",
            "items": {
                "IP_CH1": {
                    "type": "object",
                    "items": {
                        "status": {
                            "description": "Only offline channel has this variable.",
                            "type": "string",
                            "mode": "r",
                            "items": [
                                "Offline",
                                "Online"
                            ]
                        },
                        "channel_enable": {
                            "type": "bool"
                        },
                        "name": {
                            "type": "object",
                            "items": {
                                "show": {
                                    "type": "bool",
                                    "disable": true
                                },
                                "text": {
                                    "type": "string",
                                    "min_len": 0,
                                    "max_len": 31,
                                    "disable": true
                                },
                                "pos": {
                                    "type": "object",
                                    "items": {
                                        "x": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "y": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        }
                                    }
                                }
                            }
                        },
                        "datetime": {
                            "type": "object",
                            "items": {
                                "show": {
                                    "type": "bool",
                                    "disable": true
                                },
                                "date_format": {
                                    "type": "string",
                                    "items": [
                                        "MM/DD/YYYY",
                                        "YYYY-MM-DD",
                                        "DD/MM/YYYY"
                                    ],
                                    "disable": true
                                },
                                "time_format": {
                                    "type": "int32",
                                    "unit": "hour",
                                    "items": [
                                        24,
                                        12
                                    ],
                                    "disable": true
                                },
                                "pos": {
                                    "type": "object",
                                    "items": {
                                        "x": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "y": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        }
                                    }
                                }
                            }
                        },
                        "covert": {
                            "type": "bool"
                        },
                        "refresh_rate": {
                            "type": "string",
                            "items": [
                                "50Hz",
                                "60Hz"
                            ]
                        }
                    }
                }
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get Alarm > Occlusion Detection config parameter.

Request Message

Parameter Description

not found Table 1.2.1

Sample:

POST /API/AlarmConfig/Intelligent/OcclusionDetection/Get HTTP/1.1
{
    "version":"1.0",
    "data":
    {
        "page_type":"AlarmConfig"
    }
}

Response Message

Parameter Description

See Alarm > Occlusion Detection > Range > Parameter Description > Table 2 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_info": {
            "CH1": {
                "buzzer": "0",
                "alarm_out": [],
                "latch_time": "10",
                "record_enable": true,
                "http_listening": false,
                "record_channel": [
                    "CH1"
                ],
                "post_recording": "30",
                "show_message": true,
                "send_email": true,
                "full_screen": false,
                "ftp_picture_upload": true,
                "ftp_video_upload": false,
                "picture_to_cloud": true,
                "video_to_cloud": false,
                "voice_prompts_index": [
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                "voice_prompts_select": [
                    1,
                    0
                ],
                "voice_prompts_time": [
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    }
                ],
                "copy_ch": "all"
            },
            "CH2": {
                "reason": "Not configured"
            },
            "CH3": {
                "reason": "Not configured"
            },
            "CH4": {
                "reason": "Not configured"
            },
            "CH5": {
                "reason": "Not configured"
            },
            "CH6": {
                "reason": "Not configured"
            },
            "CH7": {
                "reason": "Not configured"
            },
            "CH8": {
                "reason": "Not configured"
            },
            "CH9": {
                "reason": "Not configured"
            },
            "CH10": {
                "reason": "Not configured"
            },
            "CH11": {
                "reason": "Not configured"
            },
            "CH12": {
                "reason": "Not configured"
            },
            "CH13": {
                "reason": "Not configured"
            },
            "CH14": {
                "reason": "Not configured"
            },
            "CH15": {
                "reason": "Not configured"
            },
            "CH16": {
                "reason": "Not configured"
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set parameter for Alarm > Occlusion Detection.

Request Message

Parameter Description

See Alarm>Occlusion Detection>Get>Parameter Description>Table 2 for parameter description

Sample:

POST /API/AlarmConfig/Intelligent/OcclusionDetection/Set HTTP/1.1
{
    "version":"1.0",
    "data":
    {
        "channel_info":
        {
            "CH4":
            {
                "buzzer":"0",
                "alarm_out":[],
                "latch_time":"10",
                "record_enable":true,
                "record_channel":["CH4"],"post_recording":"30",
                "show_message":false,
                "send_email":false,
                "full_screen":false,"ftp_picture_upload":false,"ftp_video_upload":false,"picture_to_cloud":false,"video_to_cloud":false,"http_listening":false,"voice_prompts_index":[0,0,0,0,0,0,0,0,0,0,0,0],
                "voice_prompts_select":[0,0],"voice_prompts_time":[
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    }
                ],
                "copy_ch":"all",
                "chn_index":"CH4"
            },
            "CH18":
            {
                "buzzer":"0",
                "alarm_out":[],
                "latch_time":"10",
                "record_enable":true,
                "record_channel":["CH18"],"post_recording":"30",
                "show_message":false,
                "send_email":false,
                "full_screen":false,"ftp_picture_upload":false,"ftp_video_upload":false,"picture_to_cloud":false,"video_to_cloud":false,"http_listening":false,"voice_prompts_index":[0,0,0,0,0,0,0,0,0,0,0,0],
                "voice_prompts_select":[0,0],"voice_prompts_time":[
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    }
                ],
                "copy_ch":"all"
            }
        },
        "page_type":"AlarmConfig"
    }
}

Response Message

Parameter Description

None.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result":"success",
    "data":{}
}

Error Code

See Response Messages Body and Common error_code for more information.

Pedestrian Detection

Function

This API is used to get or set pedestrian detection configuration parameters.

URI

POST /API/AlarmConfig/Intelligent/PD/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range, Get, Set.

Range

Function

This API is used to get Alarm > Pedestrian Detection configuration parameters range.

Request Message

Table 1
ParameterRangeTypeDescription
channel"CH1"…"CHx",
"IP_CH1"…"IP_CHx",
"WIFI_CH1"…"WIFI_CHx"
The channels supported by the device.
string arrayIPC can only Use "CH1".
page_type"ChannelConfig", "AlarmConfig"stringIt is used to distinguish the data of channel configuration page or alarm configuration page

Sample:

POST /API/AlarmConfig/Intelligent/PD/Range HTTP/1.1
{
    "version": "1.0",
    "data": {"page_type": "AlarmConfig"}
}

Response Message

Parameter Description

Table 2
ParameterRangeTypeDescription
channel_infoobjectTotal channel information see Table 3.
page_type"ChannelConfig", "AlarmConfig"stringIt is used to distinguish the data of channel configuration page or alarm configuration page.
channel_maxintThe maximum number of channels.
Table 3
ParameterRangeTypeDescription
CH1objectSee Table 4
object
IP_CH1object
object
WIFI_CH1object
object
Table 4
ParameterRangeTypeDescription
status"Offline","Online","Nonsupport"stringOnline status of the channel, only for digital channels. Note: When the channel is online, there is no such field.
alarm_out"Local->1"…"Local->x"
"IP_CH1->1"…"IP_CHx->x"
The number of channels depends on the function of the device.
string arrayalarm Output channel.
Array members use a string to represent an alarm output channel.
Local->1: open, empty value: close.
latch_time"10","20","40","60"stringAlarm output time, IPC: 5 10 20 30
record_enabletrue, falseboolChannel recording switch.
record_channel"CH1"…"CHx"
"IP_CH1"…"IP_CHx"
"WIFI_CH1"…"WIFI_CHx"
string arrayChannel of linkage recording.
post_recording"30","60","120","300"stringRecording delay time, IPC: 0 5 10 20 30.
send_emailtrue, falseboolSend Email switch.
ftp_picture_uploadtrue, falseboolChannel snapshot FTP upload switch (for NVR only).
ftp_video_uploadtrue, falseboolChannel video FTP upload switch (for NVR only).
picture_to_cloudtrue, falseboolPicture upload switch (for NVR only).
video_to_cloudtrue, falseboolVideo cloud upload switch (for NVR only).
full_screenboolFullScreen switch (for NVR only).
buzzer"0","10","20","40","60"stringBuzzer buzzing time (for NVR only).
show_messageboolShow Message switch (for NVR only).
switchtrue, falseboolswitch, false: close;true: open.
is_ai_paramtrue, falseboolDistinguish between ordinary humanoid and intelligent humanoid models (only for NVR).
level"Low", "Middle", "High"stringDetection sensitivity.
sensitivity0-100intDetection sensitivity.
snap_mode"Default","RealTimeMode","IntervalMode"string"IntervalMode".
min_pixel64-1080intminimum pixel value.
max_pixel320-1080intmaximum pixel value.
detection_type"Pedestrian",
"Vehicle",
"Pedestrian & Vehicle"
stringDetection type, human and vehicle.
detection_mode"StaticMode","MotionMode"stringdetection mode.
detection_range"FullScreen","Customize"stringdetection range.
iva_lines0,1intWhether there will be lines in preview and playback, 0 does not draw lines, 1 draws lines.
rule_infoobjectSee Table 5 for details.
voice_prompts_index0~4294967295intFile index (0~4294967295, 0 means None, that is, no audio file is selected). Each file is named as "index_filename" (1_i will try), on the page When displaying, "index_" should be hidden, such as "1_i will try", and only "i will try" will be displayed.
voice_prompts_selectint arrayPlay channel, counted by bit (bit0 is local, bit1 corresponds to front-end channel 1, bit2 corresponds to channel 2...).
voice_prompts_timeobject arrayTime period, there can be no time conflict among the 12 time periods, see Table 8.
copy_ch"digit", "analog", "wifi"stringSupport channel copy flag (for NVR and DVR only).
Table 5
ParameterRangeTypeDescription
rule_number1objectrule number 1, see Table 6.
Table 6
ParameterRangeTypeDescription
rule_switchboolrule switch.
rule_type"Normal"stringrule type.
rule_rectobjectRectangle, see Table 7 for details.
Table 7
ParameterRangeTypeDescription
x10-704shortx1 coordinate point.
y10-576shorty1 coordinate point.
x20-704shortx2 coordinate point.
y20-576shorty2 coordinate point.
x30-704shortx3 coordinate point.
y30-576shorty3 coordinate point.
x40-704shortx4 coordinate point.
y40-576shorty4 coordinate point.
Table 8
ParameterRangeTypeDescription
start_hour0-23int
start_minute0-59int
start_second0-59int
end_hour0-23int
end_minute0-59int
end_second0-59int

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_max": 16,
        "support_copy": true,
        "channel_info": {
            "type": "object",
            "items": {"CH2": {
                "type": "object",
                "items": {
                    "status": {
                        "description": "Only offline channel has this variable.",
                        "type": "string",
                        "mode": "r",
                        "items": [
                            "Offline",
                            "Online",
                            "Nonsupport"
                        ]
                    },
                    "buzzer": {
                        "type": "string",
                        "items": [
                            "0",
                            "10",
                            "20",
                            "40",
                            "60"
                        ]
                    },
                    "alarm_out": {
                        "type": "array",
                        "min_size": 0,
                        "max_size": 33,
                        "items": {
                            "type": "string",
                            "items": [
                                "Local->1",
                                "IP_CH1->1"
                            ]
                        }
                    },
                    "latch_time": {
                        "type": "string",
                        "items": [
                            "10",
                            "20",
                            "40",
                            "60"
                        ]
                    },
                    "record_enable": {"type": "bool"},
                    "record_channel": {
                        "type": "array",
                        "min_size": 0,
                        "max_size": 16,
                        "items": {
                            "type": "string",
                            "items": [
                                "CH1",
                                "CH2",
                                "CH3",
                                "CH4",
                                "CH5",
                                "CH6",
                                "CH7",
                                "CH8",
                                "CH9",
                                "CH10",
                                "CH11",
                                "CH12",
                                "CH13",
                                "CH14",
                                "CH15",
                                "CH16"
                            ]
                        }
                    },
                    "post_recording": {
                        "type": "string",
                        "items": [
                            "30",
                            "60",
                            "120",
                            "300"
                        ]
                    },
                    "show_message": {"type": "bool"},
                    "send_email": {"type": "bool"},
                    "full_screen": {"type": "bool"},
                    "ftp_picture_upload": {"type": "bool"},
                    "ftp_video_upload": {"type": "bool"},
                    "picture_to_cloud": {"type": "bool"},
                    "video_to_cloud": {"type": "bool"},
                    "copy_ch": {
                        "type": "string",
                        "items": [
                            "digit",
                            "analog",
                            "wifi",
                            "local",
                            "all"
                        ]
                    },
                    "voice_prompts_index": {
                        "type": "array",
                        "min_size": 0,
                        "max_size": 12,
                        "items": []
                    },
                    "voice_prompts_select": {
                        "type": "array",
                        "min_size": 0,
                        "max_size": 12,
                        "items": []
                    },
                    "voice_prompts_time": {
                        "type": "array",
                        "min_size": 0,
                        "max_size": 12,
                        "items": []
                    },
                    "http_listening": {"type": "bool"}
                }
            }}
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get Alarm > Pedestrian Detection configuration parameters.

Request Message

Parameter Description

See Alarm > Pedestrian Detection > Range > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/AlarmConfig/Intelligent/PD/Get HTTP/1.1
{
    "version":"1.0",
    "data":{
        "page_type":"AlarmConfig"
    }
}

Response Message

Parameter Description

See Alarm > Pedestrian Detection > Range > Parameter Description > Table 2 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {"channel_info": {
        "CH1": {"reason": "Not configured"},
        "CH2": {
            "buzzer": "0",
            "alarm_out": [],
            "latch_time": "10",
            "record_enable": true,
            "http_listening": false,
            "record_channel": ["CH2"],
            "post_recording": "30",
            "show_message": true,
            "send_email": true,
            "full_screen": false,
            "ftp_picture_upload": true,
            "ftp_video_upload": false,
            "picture_to_cloud": true,
            "video_to_cloud": false,
            "voice_prompts_index": [
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
            ],
            "voice_prompts_select": [
                1,
                0
            ],
            "voice_prompts_time": [
                {
                    "start_hour": 0,
                    "start_minute": 0,
                    "start_second": 0,
                    "end_hour": 23,
                    "end_minute": 59,
                    "end_second": 59
                },
                {
                    "start_hour": 0,
                    "start_minute": 0,
                    "start_second": 0,
                    "end_hour": 23,
                    "end_minute": 59,
                    "end_second": 59
                },
                {
                    "start_hour": 0,
                    "start_minute": 0,
                    "start_second": 0,
                    "end_hour": 23,
                    "end_minute": 59,
                    "end_second": 59
                },
                {
                    "start_hour": 0,
                    "start_minute": 0,
                    "start_second": 0,
                    "end_hour": 23,
                    "end_minute": 59,
                    "end_second": 59
                },
                {
                    "start_hour": 0,
                    "start_minute": 0,
                    "start_second": 0,
                    "end_hour": 23,
                    "end_minute": 59,
                    "end_second": 59
                },
                {
                    "start_hour": 0,
                    "start_minute": 0,
                    "start_second": 0,
                    "end_hour": 23,
                    "end_minute": 59,
                    "end_second": 59
                },
                {
                    "start_hour": 0,
                    "start_minute": 0,
                    "start_second": 0,
                    "end_hour": 23,
                    "end_minute": 59,
                    "end_second": 59
                },
                {
                    "start_hour": 0,
                    "start_minute": 0,
                    "start_second": 0,
                    "end_hour": 23,
                    "end_minute": 59,
                    "end_second": 59
                },
                {
                    "start_hour": 0,
                    "start_minute": 0,
                    "start_second": 0,
                    "end_hour": 23,
                    "end_minute": 59,
                    "end_second": 59
                },
                {
                    "start_hour": 0,
                    "start_minute": 0,
                    "start_second": 0,
                    "end_hour": 23,
                    "end_minute": 59,
                    "end_second": 59
                },
                {
                    "start_hour": 0,
                    "start_minute": 0,
                    "start_second": 0,
                    "end_hour": 23,
                    "end_minute": 59,
                    "end_second": 59
                },
                {
                    "start_hour": 0,
                    "start_minute": 0,
                    "start_second": 0,
                    "end_hour": 23,
                    "end_minute": 59,
                    "end_second": 59
                }
            ],
            "copy_ch": "all"
        },
        "CH3": {"reason": "Not configured"},
        "CH4": {"reason": "Not configured"},
        "CH5": {"reason": "Not configured"},
        "CH6": {"reason": "Not configured"},
        "CH7": {"reason": "Not configured"},
        "CH8": {"reason": "Not configured"},
        "CH9": {"reason": "Not configured"},
        "CH10": {"reason": "Not configured"},
        "CH11": {"reason": "Not configured"},
        "CH12": {"reason": "Not configured"},
        "CH13": {"reason": "Not configured"},
        "CH14": {"reason": "Not configured"},
        "CH15": {"reason": "Not configured"},
        "CH16": {"reason": "Not configured"}
    }}
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set Alarm > Pedestrian Detection configuration parameters.

Request Message

See Alarm > Pedestrian Detection > Range > Parameter Description > Table 2 for parameter description.

Sample:

POST /API/AlarmConfig/Intelligent/PD/Set HTTP/1.1
{
    "version":"1.0",
    "data":{
        "channel_info":{
            "CH6":{
                "buzzer":"0",
                "alarm_out":[

                ],
                "latch_time":"10",
                "record_enable":true,
                "http_listening":false,
                "record_channel":[
                    "CH6",
                    "CH5"
                ],
                "post_recording":"30",
                "show_message":true,
                "send_email":true,
                "full_screen":false,
                "ftp_picture_upload":true,
                "ftp_video_upload":false,
                "picture_to_cloud":true,
                "video_to_cloud":false,
                "voice_prompts_index":[
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                "voice_prompts_select":[
                    1,
                    0
                ],
                "voice_prompts_time":[
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    }
                ],
                "copy_ch":"all",
                "chn_index":"CH6"
            }
        },
        "page_type":"AlarmConfig"
    }
}

Response Message

None.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {
    }
}

Error Code

See Response Messages Body and Common error_codefor more information.

Perimeter Intrusion Detection

Function

This API is used for get or set PID parameters.

URI

POST /API/AlarmConfig/Intelligent/PID/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYesRequest action,including Range, GetSet

Range

Function

This API is used to get the parameter range of Alarm > Perimeter Intrusion Detection.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
channel"CH1"…"CHx",
"IP_CH1"…"IP_CHx",
"WIFI_CH1"…"WIFI_CHx"
The channels supported by the device.
string arrayonly use "CH1"。
page_type"ChannelConfig", "AlarmConfig"stringData used to distinguish between channel configuration pages and alarm configuration pages.

Sample:

POST /API/AlarmConfig/Intelligent/PID/Range HTTP/1.1
{
    "version":"1.0",
    "data":
    {
        "page_type":"AlarmConfig"
    }
}

Response Message

Parameter Description

Table 2
ParameterRangeTypeDescription
channel_infoJson ObjectChannel information see Table 3 for more information
page_type“ChannelConfig”,“AarmConfig”stringUsed to distinguish between channel configuration page and alarm configuration page data, only required when set
channel_maxintMaximum number of channels
support_copyboolDoes the page support copy (dedicated to NVR and DVR)
Table 3
ParameterRangeTypeDescription
CH1Json ObjectJson see Table 4 for information
...Json Object
IP_CH1Json Object
...Json Object
WIFI_CH1Json Object
...Json Object
Table 4
ParameterRangeTypeDescription
status"Offline","Online",“Nonsupport”stringChannel online status, only for digital channels.
Note: This field is not available when the channel is online
alarm_out“Local->1” ”Local->x”“IP_CH1->1” “IP_CH1->2” ”IP_CHx->1” ”IP_CHx->2”
The number of channels depends on the functionality of the device.
arrayAlarm channel
Each array bit is represented by a string representing the alarm output channel.
Camera: Local ->1: On, null: Off
latch_time"10","20","40","60"stringAlarm output time
record_enabletrue falseboolRecord channel switch
record_channel“CH1” ”CH1x”“IP_CH1” ” IP_CH1x”“WIFI_CH1”arrayAlarm output channel
Channel alarm linkage switch
post_recording"30","60","120","300"stringRecording delay time
send_emailtrue falseboolSend email switch
ftp_picture_uploadtrue falseboolChannel capture FTP upload switch
ftp_video_uploadtrue falseboolChannel video FTP upload switch
picture_to_cloudtrue falseboolImage upload switch (dedicated to NVR)
video_to_cloudtrue falseboolVideo cloud upload switch (dedicated to NVR/DVR)
full_screenboolFull screen switch (NVR specific)
buzzer"0","10","20","40","60"stringBuzzer beep time (NVR specific)
show_messageboolDisplay message switch (NVR specific)
switchtrue falseboolswitch,false: close true: open
sensitivity1-4intTest sensitivity
copy_ch"digit""analog""wifi"stringFlag supporting channel replication (dedicated to NVR and DVR)
voice_prompts_index0~4294967295intFile index (0~4294967295, where 0 is None, meaning no audio file has been selected). Each file is named "index_filename" (1ui will try), and when displayed on the page, "index_" should be hidden, such as "1ui will try" and only "i will try" should be displayed
voice_prompts_selectarrayPlayback channel, calculated by bit (bit0 is local, bit1 corresponds to front-end channel 1, and bit2 corresponds to channel 2)
voice_prompts_timearrayTime period, there cannot be time conflicts among 12 time periods
detection_type"Off" "Pedestrian" "Vehicle" "Pedestrian &Vehicle"stringDetection type, used by intelligent second-generation IPC for humanoid and vehicular shapes)
iva_lines0: No lines drawn, 1: Lines drawnboolWill there be dashes in preview and playback (used by intelligent second-generation IPC)
rule_infoJson objectsee Table 5 for more information
scene"Indoor", "Outdoor"stringScenario 0 Indoor 1 Outdoor (for Intelligent Generation IPC)
Table 5
ParameterRangeTypeDescription
rule_number1objectrule number1,see Table 6 for more information
rule_number2objectrule number2,see Table 6 for more information
rule_number3objectrule number3,see Table 6 for more information
rule_number4objectrule number4,see Table 6 for more information
Table 6
ParameterRangeTypeDescription
rule_switchboolrule switch
rule_type"A->B","B->A","A<->B"stringrule type
rule_rectobjectrule rect,see Table 7 for more information
Table 7
ParameterRangeTypeDescription
x10-704shortx1 Coordinate points
y10-576shorty1 Coordinate points
x20-704shortx2 Coordinate points
y20-576shorty2 Coordinate points
x30-704shortx3 Coordinate points
y30-576shorty3 Coordinate points
x40-704shortx4 Coordinate points
y40-576shorty4 Coordinate points

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "default_timeout": 30000,
        "channel_max": 20,
        "support_copy": true,
        "channel_info": {
            "type": "object",
            "items": {
                "IP_CH9": {
                    "type": "object",
                    "items": {
                        "status": {
                            "description": "Only offline channel has this variable.",
                            "type": "string",
                            "mode": "r",
                            "items": [
                                "Offline",
                                "Online",
                                "Nonsupport"
                            ]
                        },
                        "buzzer": {
                            "type": "string",
                            "items": [
                                "0",
                                "10",
                                "20",
                                "40",
                                "60"
                            ]
                        },
                        "alarm_out": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 25,
                            "items": {
                                "type": "string",
                                "items": [
                                    "Local->1",
                                    "IP_CH9->1"
                                ]
                            }
                        },
                        "latch_time": {
                            "type": "string",
                            "items": [
                                "10",
                                "20",
                                "40",
                                "60"
                            ]
                        },
                        "record_enable": {
                            "type": "bool"
                        },
                        "record_channel": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 20,
                            "items": {
                                "type": "string",
                                "items": [
                                    "CH1",
                                    "CH2",
                                    "CH3",
                                    "CH4",
                                    "CH5",
                                    "CH6",
                                    "CH7",
                                    "CH8",
                                    "IP_CH1",
                                    "IP_CH2",
                                    "IP_CH3",
                                    "IP_CH4",
                                    "IP_CH5",
                                    "IP_CH6",
                                    "IP_CH7",
                                    "IP_CH8",
                                    "IP_CH9",
                                    "IP_CH10",
                                    "IP_CH11",
                                    "IP_CH12"
                                ]
                            }
                        },
                        "post_recording": {
                            "type": "string",
                            "items": [
                                "30",
                                "60",
                                "120",
                                "300"
                            ]
                        },
                        "show_message": {
                            "type": "bool"
                        },
                        "send_email": {
                            "type": "bool"
                        },
                        "full_screen": {
                            "type": "bool"
                        },
                        "ftp_picture_upload": {
                            "type": "bool"
                        },
                        "ftp_video_upload": {
                            "type": "bool"
                        },
                        "picture_to_cloud": {
                            "type": "bool"
                        },
                        "video_to_cloud": {
                            "type": "bool"
                        },
                        "http_listening": {
                            "type": "bool"
                        },
                        "voice_prompts_index": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "voice_prompts_select": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "voice_prompts_time": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "copy_ch": {
                            "type": "string",
                            "items": [
                                "digit",
                                "analog",
                                "wifi",
                                "local",
                                "all"
                            ]
                        }
                    }
                },
                "IP_CH12": {
                    "type": "object",
                    "items": {
                        "status": {
                            "description": "Only offline channel has this variable.",
                            "type": "string",
                            "mode": "r",
                            "items": [
                                "Offline",
                                "Online",
                                "Nonsupport"
                            ]
                        },
                        "buzzer": {
                            "type": "string",
                            "items": [
                                "0",
                                "10",
                                "20",
                                "40",
                                "60"
                            ]
                        },
                        "alarm_out": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 25,
                            "items": {
                                "type": "string",
                                "items": [
                                    "Local->1",
                                    "IP_CH9->1"
                                ]
                            }
                        },
                        "latch_time": {
                            "type": "string",
                            "items": [
                                "10",
                                "20",
                                "40",
                                "60"
                            ]
                        },
                        "record_enable": {
                            "type": "bool"
                        },
                        "record_channel": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 20,
                            "items": {
                                "type": "string",
                                "items": [
                                    "CH1",
                                    "CH2",
                                    "CH3",
                                    "CH4",
                                    "CH5",
                                    "CH6",
                                    "CH7",
                                    "CH8",
                                    "IP_CH1",
                                    "IP_CH2",
                                    "IP_CH3",
                                    "IP_CH4",
                                    "IP_CH5",
                                    "IP_CH6",
                                    "IP_CH7",
                                    "IP_CH8",
                                    "IP_CH9",
                                    "IP_CH10",
                                    "IP_CH11",
                                    "IP_CH12"
                                ]
                            }
                        },
                        "post_recording": {
                            "type": "string",
                            "items": [
                                "30",
                                "60",
                                "120",
                                "300"
                            ]
                        },
                        "show_message": {
                            "type": "bool"
                        },
                        "send_email": {
                            "type": "bool"
                        },
                        "full_screen": {
                            "type": "bool"
                        },
                        "ftp_picture_upload": {
                            "type": "bool"
                        },
                        "ftp_video_upload": {
                            "type": "bool"
                        },
                        "picture_to_cloud": {
                            "type": "bool"
                        },
                        "video_to_cloud": {
                            "type": "bool"
                        },
                        "http_listening": {
                            "type": "bool"
                        },
                        "voice_prompts_index": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "voice_prompts_select": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "voice_prompts_time": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "copy_ch": {
                            "type": "string",
                            "items": [
                                "digit",
                                "analog",
                                "wifi",
                                "local",
                                "all"
                            ]
                        }
                    }
                }
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get parameter for Alarm > Perimeter Intrusion Detection.

Request Message

Parameter Description

See Alarm > Perimeter Intrusion Detection > Range > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/AlarmConfig/Intelligent/PID/Get HTTP/1.1
{
    "version":"1.0",
    "data":
    {
        "page_type":"AlarmConfig"
    }
}

Response Message

Parameter Description

See Alarm > Perimeter Intrusion Detection > Range > Parameter Description > Table 2 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_info": {
            "CH1": {
                "reason": "Not configured"
            },
            "CH2": {
                "reason": "Not configured"
            },
            "CH3": {
                "reason": "Not configured"
            },
            "CH4": {
                "buzzer": "0",
                "alarm_out": [],
                "latch_time": "10",
                "record_enable": true,
                "record_channel": [
                    "CH4"
                ],
                "post_recording": "30",
                "show_message": false,
                "send_email": false,
                "full_screen": false,
                "ftp_picture_upload": false,
                "ftp_video_upload": false,
                "picture_to_cloud": false,
                "video_to_cloud": false,
                "http_listening": false,
                "voice_prompts_index": [
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                "voice_prompts_select": [
                    0,
                    0
                ],
                "voice_prompts_time": [
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    }
                ],
                "copy_ch": "all"
            },
            "CH5": {
                "reason": "Not configured"
            },
            "CH6": {
                "reason": "Not configured"
            },
            "CH7": {
                "reason": "Not configured"
            },
            "CH8": {
                "reason": "Not configured"
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set parameter for Alarm > Perimeter Intrusion Detection.

Request Message

Parameter Description

See Alarm>Perimeter Intrusion Detection>Range>Parameter Description>Table 2 for parameter description

Sample:

POST /API/AlarmConfig/Intelligent/PID/Set HTTP/1.1
{
    "version":"1.0",
    "data":
    {
        "channel_info":
        {
            "CH4":
            {
                "buzzer":"0",
                "alarm_out":[],
                "latch_time":"10",
                "record_enable":true,
                "record_channel":["CH4"],"post_recording":"30",
                "show_message":false,
                "send_email":false,
                "full_screen":false,"ftp_picture_upload":false,"ftp_video_upload":false,"picture_to_cloud":false,"video_to_cloud":false,"http_listening":false,"voice_prompts_index":[0,0,0,0,0,0,0,0,0,0,0,0],
                "voice_prompts_select":[0,0],"voice_prompts_time":[
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    }
                ],
                "copy_ch":"all",
                "chn_index":"CH4"
            },
            "CH18":
            {
                "buzzer":"0",
                "alarm_out":[],
                "latch_time":"10",
                "record_enable":true,
                "record_channel":["CH18"],"post_recording":"30",
                "show_message":false,
                "send_email":false,
                "full_screen":false,"ftp_picture_upload":false,"ftp_video_upload":false,"picture_to_cloud":false,"video_to_cloud":false,"http_listening":false,"voice_prompts_index":[0,0,0,0,0,0,0,0,0,0,0,0],
                "voice_prompts_select":[0,0],"voice_prompts_time":[
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    }
                ],
                "copy_ch":"all"
            }
        },
        "page_type":"AlarmConfig"
    }
}

Response Message

Parameter Description

None.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result":"success",
    "data":{}
}

Error Code

See Response Messages Body and Common error_code for more information.

PIR

Function

This API is used for get or set PIR parameters.

URI

POST /API/AlarmConfig/PIR/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYesRequest action,including Range, GetSet

Range

Function

This API is used to get the parameter range of Alarm > PIR.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
channel“CH1” ”CH1x”“IP_CH1” ” IP_CH1x”“WIFI_CH1”…” WIFI_CH1x”
The number of channels depends on the functionality of the device.
string arrayEach array bit represents a channel with a string. DVR/NVR requirements; IPC only uses CH1
page_type“ChannelConfig”,“AlarmConfig” “AllConfig”stringData used to distinguish between channel configuration page and alarm configuration page
“AllConfig”Used in nvr to obtain and set ipc parameters, with more light than ChannelConfig_ Linkage field

Sample:

POST /API/AlarmConfig/Intelligent/PIR/Range HTTP/1.1
{
    "version":"1.0",
    "data":
    {
        "page_type":"AlarmConfig"
    }
}

Response Message

Parameter Description

Table 2
ParameterRangeTypeDescripton
channel_infoJson ObjectChannel information refer to Table 3
page_type“ChannelConfig”,“AarmConfig”stringUsed to distinguish between channel configuration page and alarm configuration page data, only required when set
channel_maxintMaximum number of channels
support_copyboolDoes the page support copy (dedicated to NVR and DVR)
Table 3
ParameterRangeTypeDescription
CH1Json ObjectJson see Table 4 for more information
...Json Object
IP_CH1Json Object
...Json Object
WIFI_CH1Json Object
...Json Object
Table 4
ParameterRangeTypeDescription
status"Offline","Online",“Nonsupport”stringChannel online status, only for digital channels.
Note: This field is not available when the channel is online
alarm_out“Local->1” ”Local->x”“IP_CH1->1” “IP_CH1->2” ”IP_CHx->1” ”IP_CHx->2”
The number of channels depends on the functionality of the device.
arrayAlarm channel
Each array bit is represented by a string representing the alarm output channel.
Camera: Local ->1: On, null: Off
latch_time"10","20","40","60"stringAlarm output time
record_enabletrue falseboolRecord channel switch
record_channel“CH1” ”CH1x”“IP_CH1” ” IP_CH1x”“WIFI_CH1”arrayAlarm output channel
Channel alarm linkage switch
post_recording"30","60","120","300"stringRecording delay time
send_emailtrue falseboolSend email switch
ftp_picture_uploadtrue falseboolChannel image FTP upload switch
ftp_video_uploadtrue falseboolChannel video FTP upload switch
picture_to_cloudtrue falseboolImage upload switch (dedicated to NVR)
video_to_cloudtrue falseboolVideo cloud upload switch (dedicated to NVR/DVR)
full_screenboolFull screen switch (NVR specific)
buzzer"0","10","20","40"stringBuzzer beep time (NVR specific)
show_messageboolDisplay message switch (NVR specific)
switchtrue falseboolswitch,false: close true: open
sensitivity1-8intTest sensitivity
copy_ch"digit""analog""wifi"stringFlag supporting channel replication (dedicated to NVR and DVR)
voice_prompts_index0~4294967295intFile index (0~4294967295, where 0 is None, meaning no audio file has been selected). Each file is named "index_filename" (1ui will try), and when displayed on the page, "index_" should be hidden, such as "1ui will try" and only "i will try" should be displayed
voice_prompts_selectarrayPlayback channel, calculated by bit (bit0 is local, bit1 corresponds to front-end channel 1, and bit2 corresponds to channel 2)
voice_prompts_timearrayTime period, there cannot be time conflicts among 12 time periods
mbcol1-44intThe Pir area is divided into row * col blocks, which are determined by camera. Set does not need to be consistent with motion
mbrow1-30intThe Pir area is divided into row * col blocks, which are determined by camera. Set does not need to be consistent with motion
region_setting200*8int arrayThe Pir area is divided into row * col blocks, with each bit describing the value of a block (8 bits per byte). Bit=1: motion in this block is monitored< For example: region_ Setting [0]=(FF-FF-FF-FF-FF-F0-00-00-00):: motion in channel 0 line 0's 44 blocks are monitored Line 1's 44 blocks not monitored
detect_area8json arraysee Table 5 for more information
light_linkageboolWhite light linkage switch, when PIR is triggered, the linkage triggers white light
enforcerlight_linkageboolAlarm light linkage switch
siren_linkageboolAlarm linkage switch
http_listeningbooleventpush linkage switch
scheduleJson arrayJson See Table 6.
Table 5

detect_area JSON

ParameterRangeTypeDescription
x0-704shortAbscissa point
y0-576shortOrdinate point
Table 6
ParameterRangeTypeDescription
schedule_type"PIR"stringPIR Linkage schedule
weekJson arrayWeekJson See Table 7
Table 7
ParameterRangeTypeDescription
day"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"string
time0:Disable Time range 1: The time range is enabledarrayEach array bit (int) identifies half an hour.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_max": 20,
        "support_copy": true,
        "channel_info": {
            "type": "object",
            "items": {
                "CH1": {
                    "type": "object",
                    "items": {
                        "status": {
                            "description": "Only offline channel has this variable.",
                            "type": "string",
                            "mode": "r",
                            "items": [
                                "Offline",
                                "Online"
                            ]
                        },
                        "buzzer": {
                            "type": "string",
                            "items": [
                                "0",
                                "10",
                                "20",
                                "40",
                                "60"
                            ]
                        },
                        "alarm_out": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 25,
                            "items": {
                                "type": "string",
                                "items": [
                                    "Local->1",
                                    "IP_CH9->1"
                                ]
                            }
                        },
                        "latch_time": {
                            "type": "string",
                            "items": [
                                "10",
                                "20",
                                "40",
                                "60"
                            ]
                        },
                        "record_enable": {
                            "type": "bool"
                        },
                        "record_channel": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 20,
                            "items": {
                                "type": "string",
                                "items": [
                                    "CH1",
                                    "CH2",
                                    "CH3",
                                    "CH4",
                                    "CH5",
                                    "CH6",
                                    "CH7",
                                    "CH8",
                                    "IP_CH1",
                                    "IP_CH2",
                                    "IP_CH3",
                                    "IP_CH4",
                                    "IP_CH5",
                                    "IP_CH6",
                                    "IP_CH7",
                                    "IP_CH8",
                                    "IP_CH9",
                                    "IP_CH10",
                                    "IP_CH11",
                                    "IP_CH12"
                                ]
                            }
                        },
                        "post_recording": {
                            "type": "string",
                            "items": [
                                "30",
                                "60",
                                "120",
                                "300"
                            ]
                        },
                        "show_message": {
                            "type": "bool"
                        },
                        "send_email": {
                            "type": "bool"
                        },
                        "full_screen": {
                            "type": "bool"
                        },
                        "http_listening": {
                            "type": "bool"
                        },
                        "ftp_picture_upload": {
                            "type": "bool"
                        },
                        "ftp_video_upload": {
                            "type": "bool"
                        },
                        "picture_to_cloud": {
                            "type": "bool"
                        },
                        "video_to_cloud": {
                            "type": "bool"
                        },
                        "voice_prompts_index": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "voice_prompts_select": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "voice_prompts_time": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "copy_ch": {
                            "type": "string",
                            "items": [
                                "digit",
                                "analog",
                                "wifi",
                                "local",
                                "all"
                            ]
                        }
                    }
                }
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get parameter for Alarm > PIR.

Request Message

Parameter Description

See Alarm > PIR > Range > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/AlarmConfig/PIR/Get HTTP/1.1
{
    "version":"1.0",
    "data":
    {
        "page_type":"AlarmConfig"
    }
}

Response Message

Parameter Description

See Alarm > PIR > Range > Parameter Description > Table 2 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_info": {
            "CH1": {
                "reason": "Not configured"
            },
            "CH2": {
                "reason": "Not configured"
            },
            "CH3": {
                "reason": "Not configured"
            },
            "CH4": {
                "reason": "Not configured"
            },
            "CH5": {
                "reason": "Not configured"
            },
            "CH6": {
                "reason": "Not configured"
            },
            "CH7": {
                "reason": "Not configured"
            },
            "CH8": {
                "reason": "Not configured"
            },
            "CH9": {
                "reason": "Not configured"
            },
            "CH10": {
                "reason": "Not configured"
            },
            "CH11": {
                "reason": "Not configured"
            },
            "CH12": {
                "reason": "Not configured"
            },
            "CH13": {
                "reason": "Not configured"
            },
            "CH14": {
                "reason": "Not configured"
            },
            "CH15": {
                "switch": true,
                "sensitivity": 5,
                "light_linkage": false,
                "region_setting": [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
                "mbrow": 30,
                "mbcol": 44
            },
            "CH16": {
                "reason": "Not configured"
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set parameter for Alarm > PIR .

Request Message

Parameter Description

See Alarm>PIR>Range>Parameter Description>Table 2 for parameter description.

Sample:

POST /API/AlarmConfig/PIR/Set HTTP/1.1
{
    "version":"1.0",
    "data":
    {
        "channel_info":
        {
            "CH4":
            {
                "buzzer":"0",
                "alarm_out":[],
                "latch_time":"10",
                "record_enable":true,
                "record_channel":["CH4"],"post_recording":"30",
                "show_message":false,
                "send_email":false,
                "full_screen":false,"ftp_picture_upload":false,"ftp_video_upload":false,"picture_to_cloud":false,"video_to_cloud":false,"http_listening":false,"voice_prompts_index":[0,0,0,0,0,0,0,0,0,0,0,0],
                "voice_prompts_select":[0,0],"voice_prompts_time":[
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    }
                ],
                "copy_ch":"all",
                "chn_index":"CH4"
            },
            "CH18":
            {
                "buzzer":"0",
                "alarm_out":[],
                "latch_time":"10",
                "record_enable":true,
                "record_channel":["CH18"],"post_recording":"30",
                "show_message":false,
                "send_email":false,
                "full_screen":false,"ftp_picture_upload":false,"ftp_video_upload":false,"picture_to_cloud":false,"video_to_cloud":false,"http_listening":false,"voice_prompts_index":[0,0,0,0,0,0,0,0,0,0,0,0],
                "voice_prompts_select":[0,0],"voice_prompts_time":[
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    }
                ],
                "copy_ch":"all"
            }
        },
        "page_type":"AlarmConfig"
    }
}

Response Message

Parameter Description

None.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result":"success",
    "data":{}
}

Error Code

See Response Messages Body and Common error_code for more information.

PTZ Linkage

Function

This API is used to get or set PTK Linkage alarm parameters.

URI

POST /API/AlarmConfig/PTZLinkage/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYesRequest action,including Range, GetSet

Range

Function

This API is used to get the parameter range of Alarm > PTZ Linkage.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
channel"CH1"…"CHx",
"IP_CH1"…"IP_CHx",
"WIFI_CH1"…"WIFI_CHx"
The channels supported by the device.
string arrayIPC only use "CH1"。

Sample:

POST /API/AlarmConfig/PTZLinkage/Range HTTP/1.1
{
    "version":"1.0",
    "data":{}
}

Response Message

Parameter Description

Table 2
ParameterRangeTypeDescription
channel_infoJson ObjectChannel information refer to Table 3
channel_maxintMaximum number of channels
support_copyboolDoes the page support copy (dedicated to NVR and DVR)
Table 3
ParameterRangeTypeDescription
channel_infoJson ObjectChannel information refer to Table 4
channel_maxintMaximum number of channels
support_copyboolDoes the page support copy (dedicated to NVR and DVR)
Table 4
ParameterRangeTypeDescription
CH1Json ObjectJson see Table 5 for more information
...Json Object
IP_CH1Json Object
...Json Object
WIFI_CH1Json Object
...Json Object
Table 5
ParameterRangeTypeDescription
switchtrue falseboolChannel Enable Switch
motionboolMotion alarm trigger switch
pirboolPIR linkage switch
ioboolAlarm input switch
ptz_infoarraysee Table 6 for more information
all_alarmjson objectAlarm type switch, see Table 7 for information
copy_ch"digit""analog""wifi"stringFlag supporting channel replication (dedicated to NVR and DVR)
Table 6

Channel Information JSON

ParameterRangeTypeDescription
ptz_chn“CH1” ”CH1x”“IP_CH1” ” IP_CH1x”“WIFI_CH1”…” WIFI_CH1x”stringChannel alarm linkage
The channel to which the alarm is linked.
linkage_ptz_point_index0,1,2,3....255intIndication points corresponding to alarm linkage channels
note:The client needs to be compatible with two methods. The old method, where type is string, had many redundant fields that could cause a crash. In version 8.2.3, it was changed to int to solve this problem. The hexadecimal string in the structure represents whether the option exists by bit, with a total of 256bits and small end storage. Bit0 represents the None option, 1-255bits represents the 1-255 numerical option, and bit 1 represents the existence, A bit of 0 indicates that it does not exist (for example: ptz_info. items. items [{"linkage_ptz point_index": "1", "linkage_ptz point_index": "2"...}] changed to ptz_info. item: "0000... 000")
ptz_switchboolAlarm linkage group switch (4 sets)
Table 7

Channel Information JSON

ParameterRangeTypeDescription
ptz_motionboolMotion alarm trigger switch
pirboolPIRgang switch
ioboolAlarm input switch
If the channel0(1)If the obtained value is 1, it indicates that Local<-1 (Local<-2) has been checked on the interface, otherwise it will not be checked.
linkage_lcdboolLCD gang switch
linkage_pidboolPID gang switch
linkage_sodboolSOD gang switch
linkage_pdboolPD gang switch
linkage_pdvdboolPDVD gang switch
linkage_fdboolFD gang switch
linkage_ccboolCC gang switch
linkage_soundboolSound gang switch
linkage_vtboolVt gang switch
linkage_adboolAD gang switch
linkage_cdboolCD gang switch
linkage_qdboolQD gang switch
linkage_lpdboolLPD gang switch
linkage_rsdboolRSD gang switch
linkage_lprboolLPR gang switch
linkage_frboolFR gang switch
linkage_ai_pidboolAI PID gang switch
linkage_ai_lcdboolAI LCD gang switch
linkage_ai_pdvdboolAI PDVD gang switch

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_max": 16,
        "support_copy": true,
        "ptz_info": {
            "type": "array",
            "min_size": 0,
            "max_size": 16,
            "items": [
                {
                    "ptz_chn": "CH1",
                    "linkage_ptz_point_index": {
                        "type": "int32",
                        "min": 0,
                        "max": 255,
                        "items": "0000000000000000000000000000000000000000000000000000000000000001"
                    }
                },
                ...
                {
                    "ptz_chn": "CH4",
                    "linkage_ptz_point_index": {
                        "type": "int32",
                        "min": 0,
                        "max": 255,
                        "items": "0000000000000000000000000000000000000000000000000000000000000001"
                    }
                }
            ]
        },
        "channel_info": {
            "type": "object",
            "items": {
                "CH1": {
                    "type": "object",
                    "items": {
                        "switch": {
                            "type": "bool"
                        },
                        "all_alarm": {
                            "type": "object",
                            "items": {
                                "motion": {
                                    "type": "bool"
                                },
                                "pir": {
                                    "type": "bool"
                                },
                                "io": {
                                    "type": "bool"
                                },
                                "linkage_sod": {
                                    "type": "bool"
                                },
                                "linkage_cc": {
                                    "type": "bool"
                                },
                                "linkage_sound": {
                                    "type": "bool"
                                },
                                "linkage_vt": {
                                    "type": "bool"
                                },
                                "linkage_fd": {
                                    "type": "bool"
                                },
                                "linkage_intrusion": {
                                    "type": "bool"
                                },
                                "linkage_region_entrance": {
                                    "type": "bool"
                                },
                                "linkage_region_exiting": {
                                    "type": "bool"
                                },
                                "linkage_ad": {
                                    "type": "bool"
                                },
                                "linkage_cd": {
                                    "type": "bool"
                                },
                                "linkage_qd": {
                                    "type": "bool"
                                },
                                "linkage_lpd": {
                                    "type": "bool"
                                },
                                "linkage_rsd": {
                                    "type": "bool"
                                },
                                "linkage_lpr": {
                                    "type": "bool"
                                },
                                "linkage_fr": {
                                    "type": "bool"
                                },
                                "linkage_ai_pid": {
                                    "type": "bool"
                                },
                                "linkage_ai_lcd": {
                                    "type": "bool"
                                },
                                "linkage_ai_pdvd": {
                                    "type": "bool"
                                },
                                "linkage_ai_firedetet": {
                                    "type": "bool"
                                },
                                "linkage_ai_tempmeas": {
                                    "type": "bool"
                                }
                            }
                        },
                        "ptz_info": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 4,
                            "items": [
                                {
                                    "ptz_switch": {
                                        "type": "bool"
                                    }
                                },
                                {
                                    "ptz_switch": {
                                        "type": "bool"
                                    }
                                },
                                {
                                    "ptz_switch": {
                                        "type": "bool"
                                    }
                                },
                                {
                                    "ptz_switch": {
                                        "type": "bool"
                                    }
                                }
                            ]
                        },
                        "copy_ch": {
                            "type": "string",
                            "items": [
                                "digit",
                                "analog",
                                "wifi",
                                "local",
                                "all"
                            ]
                        }
                    }
                },
                ...
                "CH4": {
                    "type": "object",
                    "items": {
                        "switch": {
                            "type": "bool"
                        },
                        "all_alarm": {
                            "type": "object",
                            "items": {
                                "motion": {
                                    "type": "bool"
                                },
                                "pir": {
                                    "type": "bool"
                                },
                                "io": {
                                    "type": "bool"
                                },
                                "linkage_sod": {
                                    "type": "bool"
                                },
                                "linkage_cc": {
                                    "type": "bool"
                                },
                                "linkage_sound": {
                                    "type": "bool"
                                },
                                "linkage_vt": {
                                    "type": "bool"
                                },
                                "linkage_fd": {
                                    "type": "bool"
                                },
                                "linkage_intrusion": {
                                    "type": "bool"
                                },
                                "linkage_region_entrance": {
                                    "type": "bool"
                                },
                                "linkage_region_exiting": {
                                    "type": "bool"
                                },
                                "linkage_ad": {
                                    "type": "bool"
                                },
                                "linkage_cd": {
                                    "type": "bool"
                                },
                                "linkage_qd": {
                                    "type": "bool"
                                },
                                "linkage_lpd": {
                                    "type": "bool"
                                },
                                "linkage_rsd": {
                                    "type": "bool"
                                },
                                "linkage_lpr": {
                                    "type": "bool"
                                },
                                "linkage_fr": {
                                    "type": "bool"
                                },
                                "linkage_ai_pid": {
                                    "type": "bool"
                                },
                                "linkage_ai_lcd": {
                                    "type": "bool"
                                },
                                "linkage_ai_pdvd": {
                                    "type": "bool"
                                },
                                "linkage_ai_firedetet": {
                                    "type": "bool"
                                },
                                "linkage_ai_tempmeas": {
                                    "type": "bool"
                                }
                            }
                        },
                        "ptz_info": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 4,
                            "items": [
                                {
                                    "ptz_switch": {
                                        "type": "bool"
                                    }
                                },
                                {
                                    "ptz_switch": {
                                        "type": "bool"
                                    }
                                },
                                {
                                    "ptz_switch": {
                                        "type": "bool"
                                    }
                                },
                                {
                                    "ptz_switch": {
                                        "type": "bool"
                                    }
                                }
                            ]
                        },
                        "copy_ch": {
                            "type": "string",
                            "items": [
                                "digit",
                                "analog",
                                "wifi",
                                "local",
                                "all"
                            ]
                        }
                    }
                }
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get parameter for Alarm > PTZ Linkage.

Request Message

Parameter Description

See Alarm > PTZ Linkage > Range > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/AlarmConfig/PTZLinkage/Get HTTP/1.1
{
    "version":"1.0",
    "data":{}
}

Response Message

Parameter Description

See Alarm > PTZ Linkage > Range > Parameter Description > Table 2 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_info": {
            "CH1": {
                "switch": false,
                "all_alarm": {
                    "motion": true,
                    "pir": true,
                    "io": true,
                    "linkage_sod": true,
                    "linkage_cc": true,
                    "linkage_sound": true,
                    "linkage_vt": true,
                    "linkage_fd": true,
                    "linkage_ad": true,
                    "linkage_cd": true,
                    "linkage_qd": true,
                    "linkage_lpd": true,
                    "linkage_rsd": true,
                    "linkage_lpr": true,
                    "linkage_fr": true,
                    "linkage_ai_pid": true,
                    "linkage_ai_lcd": true,
                    "linkage_ai_pdvd": true,
                    "linkage_ai_firedetet": true,
                    "linkage_ai_tempmeas": true,
                    "linkage_intrusion": true,
                    "linkage_region_entrance": true,
                    "linkage_region_exiting": true
                },
                "ptz_info": [
                    {
                        "ptz_switch": false,
                        "ptz_chn": "CH1",
                        "linkage_ptz_point_index": 0
                    },
                    {
                        "ptz_switch": false,
                        "ptz_chn": "CH2",
                        "linkage_ptz_point_index": 0
                    },
                    {
                        "ptz_switch": false,
                        "ptz_chn": "CH3",
                        "linkage_ptz_point_index": 0
                    },
                    {
                        "ptz_switch": false,
                        "ptz_chn": "CH4",
                        "linkage_ptz_point_index": 0
                    }
                ],
                "copy_ch": "digit"
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set parameter for Alarm > PTZ Linkage.

Request Message

Parameter Description

See Alarm > PTZ Linkage > Range > Parameter Description > Table 2 for parameter description

Sample:

POST /API/AlarmConfig/PTZLinkage/Set HTTP/1.1
{
    "version": "1.0",
    "data": {
        "channel_info": {
            "CH1": {
                "switch": false,
                "all_alarm": {
                    "motion": true,
                    "pir": true,
                    "io": true,
                    "linkage_sod": true,
                    "linkage_cc": true,
                    "linkage_sound": true,
                    "linkage_vt": true,
                    "linkage_fd": true,
                    "linkage_ad": true,
                    "linkage_cd": true,
                    "linkage_qd": true,
                    "linkage_lpd": true,
                    "linkage_rsd": true,
                    "linkage_lpr": true,
                    "linkage_fr": true,
                    "linkage_ai_pid": true,
                    "linkage_ai_lcd": true,
                    "linkage_ai_pdvd": true,
                    "linkage_ai_firedetet": false,
                    "linkage_ai_tempmeas": false,
                    "linkage_intrusion": false,
                    "linkage_region_entrance": false,
                    "linkage_region_exiting": false
                },
                "ptz_info": [
                    {
                        "ptz_switch": false,
                        "ptz_chn": "CH1",
                        "linkage_ptz_point_index": 0
                    },
                    {
                        "ptz_switch": false,
                        "ptz_chn": "CH2",
                        "linkage_ptz_point_index": 0
                    },
                    {
                        "ptz_switch": false,
                        "ptz_chn": "CH3",
                        "linkage_ptz_point_index": 0
                    },
                    {
                        "ptz_switch": false,
                        "ptz_chn": "CH4",
                        "linkage_ptz_point_index": 0
                    }
                ],
                "copy_ch": "digit",
                "chn_index": "CH1",
                "alarm_type": []
            }
        }
    },
    "page_type": "AlarmConfig"
}

Response Message

None.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result":"success",
    "data":{}
}

Error Code

See Response Messages Body and Common error_code for more information.

Sound Detection

Function

This API is used for get or set SoundDetection config parameters.

URI

POST /API/AlarmConfig/Intelligent/SoundDetection/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYesRequest action,including Range, GetSet

Range

Function

This API is used to get the parameter range of Alarm > Sound Detection .

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
channel"CH1"…"CHx",
"IP_CH1"…"IP_CHx",
"WIFI_CH1"…"WIFI_CHx"
The channels supported by the device.
string arrayIPC only use "CH1"。
page_type"ChannelConfig", "AlarmConfig"stringData used to distinguish between channel configuration pages and alarm configuration pages.

Sample:

POST /API/AlarmConfig/Intelligent/SoundDetection/Range HTTP/1.1
{
    "version":"1.0",
    "data":
    {
        "page_type":"ChannelConfig"
    }
}

Response Message

Parameter Description

Table 2
ParameterRangeTypeDescription
channel_infoJson ObjectChannel information refer to Table 3
page_type“ChannelConfig”,“AarmConfig”stringUsed to distinguish between channel configuration page and alarm configuration page data, only required when set
channel_maxintMaximum number of channels
support_copyboolDoes the page support copy (dedicated to NVR and DVR)
Table 3
ParameterRangeTypeDescription
CH1Json ObjectJson see Table 4 for more information
...Json Object
IP_CH1Json Object
...Json Object
WIFI_CH1Json Object
...Json Object
Table 4
ParameterRangeTypeDescription
status"Offline","Online",“Nonsupport”stringChannel online status, only for digital channels.
Note: This field is not available when the channel is online
alarm_out“Local->1” ”Local->x”“IP_CH1->1” “IP_CH1->2” ”IP_CHx->1” ”IP_CHx->2”
The number of channels depends on the functionality of the device.
arrayAlarm channel
Each array bit is represented by a string representing the alarm output channel.
Camera: Local ->1: On, null: Off
latch_time"10","20","40","60"stringAlarm output time
record_enabletrue falseboolRecord channel switch
record_channel“CH1” ”CH1x”“IP_CH1” ” IP_CH1x”“WIFI_CH1”arrayAlarm output channel
Channel alarm linkage switch
post_recording"30","60","120","300"stringRecording delay time
send_emailtrue falseboolSend email switch
ftp_picture_uploadtrue falseboolChannel capture FTP upload switch
ftp_video_uploadtrue falseboolChannel video FTP upload switch
picture_to_cloudtrue falseboolImage upload switch (dedicated to NVR)
video_to_cloudtrue falseboolVideo cloud upload switch (dedicated to NVR/DVR)
full_screenboolFull screen switch (NVR only))
buzzer"0","10","20","40","60"stringBuzzer beep time (NVR specific)
show_messageboolDisplay message switch (NVR specific)
switchtrue falseboolswitch,false: close true: open
rise_sensitivity1-100intSound detection threshold sensitivity (only for sound amplification detection)
sound_intensity1-100intSound increases detection sensitivity
decline_switchtrue falseboolSound reduction detection switch
rise_switchtrue falseboolSound rise detection switch
decline_sensitivity1-100intSound reduces sensitivity
copy_ch"digit""analog""wifi"stringFlag supporting channel replication (dedicated to NVR and DVR)
voice_prompts_index0~4294967295intFile index (0~4294967295, where 0 is None, meaning no audio file has been selected). Each file is named "index_filename" (1ui will try), and when displayed on the page, "index_" should be hidden, such as "1ui will try" and only "i will try" should be displayed
voice_prompts_selectarrayPlayback channel, calculated by bit (bit0 is local, bit1 corresponds to front-end channel 1, and bit2 corresponds to channel 2)
voice_prompts_timearrayTime period, there cannot be time conflicts among 12 time periods
http_listeningbooleventpush linkage switch
time_scheduleJson arraysee Table 5 for more information
Table 5

Time_schedule JSON

ParameterRangeTypeDescription
schedule_type"SD"stringSound alarm time schedule
weekjson arraysee Table 6 for more information
Table 6

detect_area JSON

ParameterRangeTypeDescription
daySun,Mon,Tue,Wed,Thu,Fri,SastringIdentify the day of the week
time0: Close time period
1: Opening time period
arrayEach array bit (int) is identified for half an hour.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_max": 20,
        "support_copy": true,
        "channel_info": {
            "type": "object",
            "items": {
                "IP_CH9": {
                    "type": "object",
                    "items": {
                        "status": {
                            "description": "Only offline channel has this variable.",
                            "type": "string",
                            "mode": "r",
                            "items": [
                                "Offline",
                                "Online"
                            ]
                        },
                        "switch": {
                            "type": "bool"
                        },
                        "rise_switch": {
                            "type": "bool"
                        },
                        "rise_sensitivity": {
                            "type": "int32",
                            "min": 1,
                            "max": 100
                        },
                        "decline_switch": {
                            "type": "bool"
                        },
                        "decline_sensitivity": {
                            "type": "int32",
                            "min": 1,
                            "max": 100
                        },
                        "sound_intensity": {
                            "type": "int32",
                            "min": 1,
                            "max": 100
                        },
                        "time_schedule": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 2,
                            "items": [
                                {
                                    "schedule_type": {
                                        "type": "string",
                                        "items": [
                                            "SD"
                                        ]
                                    },
                                    "week": {
                                        "type": "array",
                                        "size": 7,
                                        "items": [
                                            {
                                                "day": {
                                                    "type": "string",
                                                    "items": [
                                                        "Sun",
                                                        "Mon",
                                                        "Tue",
                                                        "Wed",
                                                        "Thu",
                                                        "Fri",
                                                        "Sat"
                                                    ]
                                                },
                                                "time": {
                                                    "type": "array",
                                                    "size": 48,
                                                    "items": [
                                                        {
                                                            "type": "int32",
                                                            "items": [
                                                                0,
                                                                1
                                                            ]
                                                        }
                                                    ]
                                                }
                                            }
                                        ]
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get parameter for Alarm > Sound Detection.

Request Message

Parameter Description

See Alarm > Sound Detection > Range > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/AlarmConfig/Intelligent/SoundDetection/Get HTTP/1.1
{
    "version":"1.0",
    "data":
    {
        "page_type":"AlarmConfig"
    }
}

Response Message

Parameter Description

See Alarm > Sound Detection > Range > Parameter Description > Table 2 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_info": {
            "CH1": {
                "reason": "Not configured"
            },
            "CH2": {
                "reason": "Not configured"
            },
            "CH3": {
                "reason": "Not configured"
            },
            "CH4": {
                "buzzer": "0",
                "alarm_out": [],
                "latch_time": "10",
                "record_enable": true,
                "record_channel": [
                    "CH4"
                ],
                "post_recording": "30",
                "show_message": true,
                "send_email": true,
                "full_screen": false,
                "ftp_picture_upload": false,
                "ftp_video_upload": false,
                "picture_to_cloud": false,
                "http_listening": false,
                "video_to_cloud": false,
                "voice_prompts_index": [
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                "voice_prompts_select": [
                    0,
                    0
                ],
                "voice_prompts_time": [
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    }
                ],
                "copy_ch": "all"
            },
            "CH5": {
                "reason": "Not configured"
            },
            "CH6": {
                "reason": "Not configured"
            },
            "CH7": {
                "reason": "Not configured"
            },
            "CH8": {
                "reason": "Not configured"
            },
            "CH9": {
                "reason": "Not configured"
            },
            "CH10": {
                "reason": "Not configured"
            },
            "CH11": {
                "reason": "Not configured"
            },
            "CH12": {
                "reason": "Not configured"
            },
            "CH13": {
                "reason": "Not configured"
            },
            "CH14": {
                "reason": "Not configured"
            },
            "CH15": {
                "reason": "Not configured"
            },
            "CH16": {
                "reason": "Not configured"
            },
            "CH17": {
                "reason": "Not configured"
            },
            "CH18": {
                "buzzer": "0",
                "alarm_out": [],
                "latch_time": "10",
                "record_enable": true,
                "record_channel": [
                    "CH18"
                ],
                "post_recording": "30",
                "show_message": true,
                "send_email": true,
                "full_screen": false,
                "ftp_picture_upload": false,
                "ftp_video_upload": false,
                "picture_to_cloud": false,
                "http_listening": false,
                "video_to_cloud": false,
                "voice_prompts_index": [
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                "voice_prompts_select": [
                    0,
                    0
                ],
                "voice_prompts_time": [
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    }
                ],
                "copy_ch": "all"
            },
            "CH19": {
                "reason": "Not configured"
            },
            "CH20": {
                "reason": "Not configured"
            },
            "CH21": {
                "reason": "Not configured"
            },
            "CH22": {
                "reason": "Not configured"
            },
            "CH23": {
                "reason": "Not configured"
            },
            "CH24": {
                "reason": "Not configured"
            },
            "CH25": {
                "reason": "Not configured"
            },
            "CH26": {
                "reason": "Not configured"
            },
            "CH27": {
                "reason": "Not configured"
            },
            "CH28": {
                "buzzer": "0",
                "alarm_out": [],
                "latch_time": "10",
                "record_enable": true,
                "record_channel": [
                    "CH28"
                ],
                "post_recording": "30",
                "show_message": true,
                "send_email": true,
                "full_screen": false,
                "ftp_picture_upload": false,
                "ftp_video_upload": false,
                "picture_to_cloud": false,
                "http_listening": false,
                "video_to_cloud": false,
                "voice_prompts_index": [
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                "voice_prompts_select": [
                    0,
                    0
                ],
                "voice_prompts_time": [
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    }
                ],
                "copy_ch": "all"
            },
            "CH29": {
                "reason": "Not configured"
            },
            "CH30": {
                "reason": "Not configured"
            },
            "CH31": {
                "reason": "Not configured"
            },
            "CH32": {
                "reason": "Not configured"
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set parameter for Alarm > Sound Detection.

Request Message

Parameter Description

See Alarm > Sound Detection > Range > Parameter Description > Table 2 for parameter description.

Sample:

POST /API/AlarmConfig/Intelligent/SoundDetection/Set HTTP/1.1
{
    "version":"1.0",
    "data":
    {
        "channel_info":
        {
            "CH4":
            {
                "buzzer":"0",
                "alarm_out":[],
                "latch_time":"10",
                "record_enable":true,
                "record_channel":["CH4"],"post_recording":"30",
                "show_message":true,
                "send_email":true,
                "full_screen":false,"ftp_picture_upload":false,"ftp_video_upload":false,"picture_to_cloud":false,"http_listening":false,"video_to_cloud":false,"voice_prompts_index":[0,0,0,0,0,0,0,0,0,0,0,0],
                "voice_prompts_select":[0,0],"voice_prompts_time":[
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    }
                ],
                "copy_ch":"all",
                "chn_index":"CH4"
            },
            "CH18":
            {
                "buzzer":"0",
                "alarm_out":[],
                "latch_time":"10",
                "record_enable":true,
                "record_channel":["CH18"],"post_recording":"30",
                "show_message":true,
                "send_email":true,
                "full_screen":false,"ftp_picture_upload":false,"ftp_video_upload":false,"picture_to_cloud":false,"http_listening":false,"video_to_cloud":false,"voice_prompts_index":[0,0,0,0,0,0,0,0,0,0,0,0],
                "voice_prompts_select":[0,0],"voice_prompts_time":[
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    }
                ],
                "copy_ch":"all"
            }
        },
        "page_type":"AlarmConfig"
    }
}

Response Message

Parameter Description

None.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result":"success",
    "data":{}
}

Error Code

See Response Messages Body and Common error_code for more information.

Stationary Object Detection

Function

This API is used for get or set SOD config parameters.

URI

POST /API/AlarmConfig/Intelligent/SOD/{Action}

Table 1 describes the parameters.

Parameters Description

Table 1

ParameterRequiredDescription
ActionYesRequest action,including Range, GetSet

Range

Function

This API is used to get the parameter range of Alarm > Stationary Object Detection.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
channel"CH1"…"CHx",
"IP_CH1"…"IP_CHx",
"WIFI_CH1"…"WIFI_CHx"
The number of channels depends on the functionality of the device.
string arrayEach array bit represents a channel with a string. DVR/NVR requirements; IPC only uses CH1
page_type"ChannelConfig","AlarmConfig"stringData used to distinguish between channel configuration page and alarm configuration page.

Sample:

POST /API/AlarmConfig/Intelligent/SOD/Range HTTP/1.1
{
    "version": "1.0",
    "data": {"page_type": "AlarmConfig"}
}

Response Message

Parameter Description

Table 2
ParameterRangeTypeDescription
channel_infoJson ObjectChannel information refer to Table 3
page_type“ChannelConfig”,“AarmConfig”stringUsed to distinguish between channel configuration page and alarm configuration page data, only required when set
channel_maxintMaximum number of channels
support_copyboolDoes the page support copy (dedicated to NVR and DVR)
Table 3
ParameterRangeTypeDescription
CH1Json ObjectJson see Table 4 for more information
...Json Object
IP_CH1Json Object
...Json Object
WIFI_CH1Json Object
...Json Object
Table 4
ParameterRangeTypeDescription
status"Offline","Online",“Nonsupport”stringChannel online status, only for digital channels.
Note: This field is not available when the channel is online
alarm_out“Local->1” ”Local->x”“IP_CH1->1” “IP_CH1->2” ”IP_CHx->1” ”IP_CHx->2”
The number of channels depends on the functionality of the device.
arrayAlarm channel
Each array bit is represented by a string representing the alarm output channel.
Camera: Local ->1: On, null: Off
latch_time"10","20","40","60"stringAlarm output time
record_enabletrue falseboolRecord channel switch
record_channel“CH1” ”CH1x”“IP_CH1” ” IP_CH1x”“WIFI_CH1”arrayAlarm output channel
Channel alarm linkage switch
post_recording"30","60","120","300"stringRecording delay time
send_emailtrue falseboolSend email switch
ftp_picture_uploadtrue falseboolChannel capture FTP upload switch
ftp_video_uploadtrue falseboolChannel video FTP upload switch
picture_to_cloudtrue falseboolImage upload switch (dedicated to NVR)
video_to_cloudtrue falseboolVideo cloud upload switch (dedicated to NVR/DVR)
full_screenboolFull screen switch (NVR specific)
buzzer"0","10","20","40","60"stringBuzzer beep time (NVR specific)
show_messageboolDisplay message switch (NVR specific)
switchtrue falseboolswitch,false: close true: open
sensitivity1-4intTest sensitivity
copy_ch"digit""analog""wifi"stringFlag supporting channel replication (dedicated to NVR and DVR)
voice_prompts_index0~4294967295intFile index (0~4294967295, where 0 is None, meaning no audio file has been selected). Each file is named "index_filename" (1ui will try), and when displayed on the page, "index_" should be hidden, such as "1ui will try" and only "i will try" should be displayed
voice_prompts_selectarrayPlayback channel, calculated by bit (bit0 is local, bit1 corresponds to front-end channel 1, and bit2 corresponds to channel 2)
voice_prompts_timearrayTime period, there cannot be time conflicts among 12 time periods
detection_type"Off" "Pedestrian" "Vehicle" "Pedestrian &Vehicle"stringDetection type, used by intelligent second-generation IPC for humanoid and vehicular shapes)
detection_mode"StaticMode" "MotionMode"stringdetection mode
detection_range"FullScreen" "Customize"stringdetection range
iva_lines0 does not draw a line 1 draws a lineboolWill there be dashes in preview and playback (used by intelligent second-generation IPC)
rule_infoJson objectIndividual channel information see Table 5
scene"Indoor", "Outdoor"stringScenario 0 Indoor 1 Outdoor (for Intelligent Generation IPC)
snap_mode"Default" "RealTimeMode""IntervalMode"stringScreenshot mode, see Table 8 for more information
min_pixel64-1080intmin pixel
max_pixel320-1080int arraymax pixel
Table 5

Error Information JSON

ParameterRangeTypeDescription
rule_number1objectrule number 1,see Table 6 for more information
rule_number2objectrule number 2,see Table 6 for more information
rule_number3objectrule number 3,see Table 6 for more information
rule_number4objectrule number 4,see Table 6 for more information
Table 6

detect_area JSON

ParameterRangeTypeDescription
rule_rectobject,Each channel can have a maximum of 64 point coordinates or 32 lines. If it is a companion line, only the first line will be used. If it is a perimeter, these 8 lines will be connected in sequence to form a closed graph. See Table 7
rule_switchboolrule switch
rule_type“Legacy” “Lost” “Lost &Legacy”stringrule type
Table 7

detect_area JSON

ParameterRangeTypeDescription
x10-704shortx1 Abscissa point
y10-576shorty1 Ordinate point
x20-704shortx2 Abscissa point
y20-576shorty2 Ordinate point
x30-704shortx3 Abscissa point
y30-576shorty3 Ordinate point
x40-704shortx4 Abscissa point
y40-576shorty4 Ordinate point
Table 8

detect_area JSON

ParameterRangeTypeDescription
snap_num"1" "2" "3" "Unliimited"stringNumber of screenshots
snap_frequencyintScreenshot interval, Unit:s/pic

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_max": 16,
        "support_copy": true,
        "channel_info": {
            "type": "object",
            "items": {
                "CH1": {
                    "type": "object",
                    "items": {
                        "status": {
                            "description": "Only offline channel has this variable.",
                            "type": "string",
                            "mode": "r",
                            "items": [
                                "Offline",
                                "Online",
                                "Nonsupport"
                            ]
                        },
                        "buzzer": {
                            "type": "string",
                            "items": [
                                "0",
                                "10",
                                "20",
                                "40",
                                "60"
                            ]
                        },
                        "alarm_out": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 33,
                            "items": {
                                "type": "string",
                                "items": [
                                    "Local->1",
                                    "IP_CH1->1",
                                    "IP_CH6->1",
                                    "IP_CH13->1"
                                ]
                            }
                        },
                        "latch_time": {
                            "type": "string",
                            "items": [
                                "10",
                                "20",
                                "40",
                                "60"
                            ]
                        },
                        "record_enable": {
                            "type": "bool"
                        },
                        "record_channel": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 16,
                            "items": {
                                "type": "string",
                                "items": [
                                    "CH1",
                                    "CH2",
                                    "CH3",
                                    "CH4",
                                    "CH5",
                                    "CH6",
                                    "CH7",
                                    "CH8",
                                    "CH9",
                                    "CH10",
                                    "CH11",
                                    "CH12",
                                    "CH13",
                                    "CH14",
                                    "CH15",
                                    "CH16"
                                ]
                            }
                        },
                        "post_recording": {
                            "type": "string",
                            "items": [
                                "30",
                                "60",
                                "120",
                                "300"
                            ]
                        },
                        "show_message": {
                            "type": "bool"
                        },
                        "http_listening": {
                            "type": "bool"
                        },
                        "send_email": {
                            "type": "bool"
                        },
                        "full_screen": {
                            "type": "bool"
                        },
                        "ftp_picture_upload": {
                            "type": "bool"
                        },
                        "ftp_video_upload": {
                            "type": "bool"
                        },
                        "picture_to_cloud": {
                            "type": "bool"
                        },
                        "video_to_cloud": {
                            "type": "bool"
                        },
                        "voice_prompts_index": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "voice_prompts_select": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "voice_prompts_time": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 12,
                            "items": []
                        },
                        "copy_ch": {
                            "type": "string",
                            "items": [
                                "digit",
                                "analog",
                                "wifi",
                                "local",
                                "all"
                            ]
                        }
                    }
                }
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get parameter for Alarm > Stationary Object Detection.

Request Message

Parameter Description

See Alarm > Stationary Object Detection > Range > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/AlarmConfig/Intelligent/SOD/Get HTTP/1.1
{
    "version":"1.0",
    "data":
    {
        "page_type":"AlarmConfig"
    }
}

Response Message

Parameter Description

See Alarm > Stationary Object Detection > Range > Parameter Description > Table 2 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_info": {
            "CH1": {
                "reason": "Not configured"
            },
            "CH2": {
                "reason": "Not configured"
            },
            "CH3": {
                "reason": "Not configured"
            },
            "CH4": {
                "buzzer": "0",
                "alarm_out": [],
                "latch_time": "10",
                "record_enable": true,
                "http_listening": false,
                "record_channel": [
                    "CH4"
                ],
                "post_recording": "30",
                "show_message": false,
                "send_email": false,
                "full_screen": false,
                "ftp_picture_upload": false,
                "ftp_video_upload": false,
                "picture_to_cloud": false,
                "video_to_cloud": false,
                "voice_prompts_index": [
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                "voice_prompts_select": [
                    0,
                    0
                ],
                "voice_prompts_time": [
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    }
                ],
                "copy_ch": "all"
            },
            "CH5": {
                "reason": "Not configured"
            },
            "CH6": {
                "reason": "Not configured"
            },
            "CH7": {
                "reason": "Not configured"
            },
            "CH8": {
                "reason": "Not configured"
            },
            "CH9": {
                "reason": "Not configured"
            },
            "CH10": {
                "reason": "Not configured"
            },
            "CH11": {
                "reason": "Not configured"
            },
            "CH12": {
                "reason": "Not configured"
            },
            "CH13": {
                "reason": "Not configured"
            },
            "CH14": {
                "reason": "Not configured"
            },
            "CH15": {
                "reason": "Not configured"
            },
            "CH16": {
                "reason": "Not configured"
            },
            "CH17": {
                "reason": "Not configured"
            },
            "CH18": {
                "buzzer": "0",
                "alarm_out": [],
                "latch_time": "10",
                "record_enable": true,
                "http_listening": false,
                "record_channel": [
                    "CH18"
                ],
                "post_recording": "30",
                "show_message": false,
                "send_email": false,
                "full_screen": false,
                "ftp_picture_upload": false,
                "ftp_video_upload": false,
                "picture_to_cloud": false,
                "video_to_cloud": false,
                "voice_prompts_index": [
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                "voice_prompts_select": [
                    0,
                    0
                ],
                "voice_prompts_time": [
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    },
                    {
                        "start_hour": 0,
                        "start_minute": 0,
                        "start_second": 0,
                        "end_hour": 23,
                        "end_minute": 59,
                        "end_second": 59
                    }
                ],
                "copy_ch": "all"
            },
            "CH19": {
                "reason": "Not configured"
            },
            "CH20": {
                "reason": "Not configured"
            },
            "CH21": {
                "reason": "Not configured"
            },
            "CH22": {
                "reason": "Not configured"
            },
            "CH23": {
                "reason": "Not configured"
            },
            "CH24": {
                "reason": "Not configured"
            },
            "CH25": {
                "reason": "Not configured"
            },
            "CH26": {
                "reason": "Not configured"
            },
            "CH27": {
                "reason": "Not configured"
            },
            "CH28": {
                "reason": "Not configured"
            },
            "CH29": {
                "reason": "Not configured"
            },
            "CH30": {
                "reason": "Not configured"
            },
            "CH31": {
                "reason": "Not configured"
            },
            "CH32": {
                "reason": "Not configured"
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set parameter for Alarm > Stationary Object Detection.

Request Message

Parameter Description

See Alarm>Stationary Object Detection>Range>Parameter Description>Table 2 for parameter description

Sample:

POST /API/AlarmConfig/Intelligent/SOD/Set HTTP/1.1
{
    "version":"1.0",
    "data":
    {
        "channel_info":
        {
            "CH4":
            {
                "buzzer":"0",
                "alarm_out":[],
                "latch_time":"10",
                "record_enable":true,"http_listening":false,
                "record_channel":["CH4"],"post_recording":"30",
                "show_message":false,
                "send_email":false,
                "full_screen":false,"ftp_picture_upload":false,"ftp_video_upload":false,"picture_to_cloud":false,"video_to_cloud":false,"voice_prompts_index":[0,0,0,0,0,0,0,0,0,0,0,0],
                "voice_prompts_select":[0,0],"voice_prompts_time":[
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    }
                ],
                "copy_ch":"all",
                "chn_index":"CH4"
            },
            "CH18":
            {
                "buzzer":"0",
                "alarm_out":[],
                "latch_time":"10",
                "record_enable":true,"http_listening":false,
                "record_channel":["CH18"],"post_recording":"30",
                "show_message":false,
                "send_email":false,
                "full_screen":false,"ftp_picture_upload":false,"ftp_video_upload":false,"picture_to_cloud":false,"video_to_cloud":false,"voice_prompts_index":[0,0,0,0,0,0,0,0,0,0,0,0],
                "voice_prompts_select":[0,0],"voice_prompts_time":[
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    },
                    {
                        "start_hour":0,
                        "start_minute":0,
                        "start_second":0,
                        "end_hour":23,
                        "end_minute":59,
                        "end_second":59
                    }
                ],
                "copy_ch":"all"
            }
        },
        "page_type":"AlarmConfig"
    }
}

Response Message

Parameter Description

None.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result":"success",
    "data":{}
}

Error Code

See Response Messages Body and Common error_code for more information.

Voice Alarm

Function

This API is used to get or set sound alarm parameters.

URI

POST /API/AlarmConfig/VoiceAlarm/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range, Get, Set, Import, Delete.

Range

Function

This API is used to get Alarm > Voice Alarm parameter range.

Request Message

Parameter Description

None.

Sample:

POST /API/AlarmConfig/VoiceAlarm/Range HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 1
ParameterRangeTypeDescription
channel"CH1"…"CHx",
"IP_CH1"…"IP_CHx",
"WIFI_CH1"…"WIFI_CHx"
Channels supported by the device.
string array
channel_maxintThe maximum number of channels.
channel_infoobjectTotal channel information see Table 2.
Table 2
ParameterRangeTypeDescription
CH1objectSee Table 3
object
IP_CH1object
object
WIFI_CH1object
object
Table 3
ParameterRangeTypeDescription
status"Offline", "Online"stringchannel status.
siren_switchboolSiren function switch.
siren_timeintWarning alarm time.
siren_valueintThe sound volume of the siren alarm.
siren_type"Alarm1",
"Alarm2",
"User-defined1",
"User-defined2",
"User-defined3"
stringAlarm alarm station Choose Audio.
siren_file_namestring length: 0-127stringalarm file name.
siren_filestring length: 0-256kstringControl whether the control of importing audio files is displayed.
siren_file_typestring length: 0-127stringAudio file type.
siren_support_format".wav", ".pcm"string arraySiren support file type.
support_siren_schedule_hubboolShow alarm schedule button.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_max": 16,
        "channel_info": {
            "type": "object",
            "items": {
                "CH1": {
                    "type": "object",
                    "items": {
                        "status": {
                            "description": "Only offline channel has this variable.",
                            "type": "string",
                            "mode": "r",
                            "items": [
                                "Offline",
                                "Online"
                            ]
                        },
                        "siren_switch": {
                            "type": "bool"
                        },
                        "siren_time": {
                            "type": "int32",
                            "min": 5,
                            "max": 180,
                            "default_value": 10
                        },
                        "siren_value": {
                            "type": "int32",
                            "min": 1,
                            "max": 10,
                            "default_value": 5
                        },
                        "siren_file": {
                            "type": "string",
                            "min_len": 0,
                            "max_len": 524288
                        },
                        "siren_type": {
                            "type": "string",
                            "items": [
                                "Alarm1"
                            ]
                        },
                        "siren_file_name": {
                            "type": "string",
                            "min_len": 0,
                            "max_len": 127
                        },
                        "siren_file_type": {
                            "type": "string",
                            "min_len": 0,
                            "max_len": 127
                        },
                        "siren_support_format": {
                            "type": "string",
                            "mode": "r",
                            "items": [
                                ".wav",
                                ".pcm"
                            ],
                            "default_value": ""
                        },
                        "support_siren_schedule_hub": {
                            "type": "bool"
                        }
                    }
                }
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get Alarm > Voice Alarm parameters.

Request Message

None.

Sample:

POST /API/AlarmConfig/VoiceAlarm/Get HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 1
ParameterRangeTypeDescription
channel_infoobjectTotal channel information see Table 2.
Table 2
ParameterRangeTypeDescription
CH1objectSee Table 3
object
IP_CH1object
object
WIFI_CH1object
object
Table 3
ParameterRangeTypeDescription
siren_switchboolSiren function switch.
siren_time5-180intWarning alarm time.
siren_value1-10intThe sound volume of the siren alarm.
siren_mode"Fixed_Volume" - fixed volume,
"Gradual_Increasing_Volume" - gradual volume
stringSiren alarm sound type.
siren_type_contentobjectSee Table 4 for details.
siren_type"Alarm1",
"Alarm2",
"User-defined1",
"User-defined2",
"User-defined3"
stringAlarm alarm station Choose Audio.
siren_file_namestring length: 0-127stringalarm file name.
Table 4
ParameterRangeTypeDescription
Alarm1object
Alarm2object
User-defined1objectSee Table 5 for details.
User-defined2objectSee Table 5 for details.
User-defined3objectSee Table 5 for details.
Table 5
ParameterRangeTypeDescription
delete_buttonboolWhether to display the delete button or import button.
siren_file_name0-127string
siren_file0-256kstringControl whether the widget for importing audio files is displayed.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_info": {
            "CH1": {
                "siren_switch": false,
                "siren_time": 10,
                "siren_value": 5,
                "siren_type_content": {
                    "Alarm1": {}
                },
                "siren_type": "Alarm1",
                "siren_file_name": ""
            },
            "CH2": {
                "status": "Offline",
                "reason": "Not support"
            },
            "CH3": {
                "status": "Offline",
                "reason": "Not support"
            },
            "CH4": {
                "status": "Offline",
                "reason": "Not support"
            },
            "CH6": {
                "status": "Offline",
                "reason": "Not support"
            },
            "CH7": {
                "status": "Offline",
                "reason": "Not support"
            },
            "CH8": {
                "status": "Offline",
                "reason": "Not support"
            },
            "CH9": {
                "status": "Offline",
                "reason": "Not support"
            },
            "CH10": {
                "status": "Offline",
                "reason": "Not support"
            },
            "CH11": {
                "status": "Offline",
                "reason": "Not support"
            },
            "CH12": {
                "status": "Offline",
                "reason": "Not support"
            },
            "CH13": {
                "reason": "Not configured"
            },
            "CH14": {
                "reason": "Not configured"
            },
            "CH15": {
                "reason": "Not configured"
            },
            "CH16": {
                "reason": "Not configured"
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set Alarm > Voice Alarm parameters.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
channel_infoobjectTotal channel information see Table 2.
Table 2
ParameterRangeTypeDescription
CH1objectSee Table 3.
object
IP_CH1object
object
WIFI_CH1object
object
Table 3
ParameterRangeTypeDescription
siren_switchboolSiren function switch.
siren_timeintWarning alarm time.
siren_valueintThe sound volume of the siren alarm.
siren_mode"Fixed_Volume"
"Gradual_Increasing_Volume"
stringAlarm alarm sound type
siren_type_contentJson ObjectAlarm types refer to Table 4
siren_type"Alarm1",
"Alarm2",
"User-defined1",
"User-defined2",
"User-defined3"
stringAlarm alarm station Choose Audio.
siren_file_name0-127stringAlarm file name
Table 4
ParameterRangeTypeDescription
delete_buttonboolDelete/import audio button
siren_file_name0-127stringAlarm file name
siren_file0-256kstringControls whether the imported audio file control is displayed

Sample:

POST /API/AlarmConfig/VoiceAlarm/Set HTTP/1.1
{
    "version": "1.0",
    "data": {
        "channel_info": {
            "CH1": {
                "siren_switch": true,
                "siren_time": 62,
                "siren_value": 62,
                "siren_type": "Alarm1"
            }
        }
    }
}

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Import

Function

This API is used to import alert audio files.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
channel"CH1"…"CHx",
"IP_CH1"…"IP_CHx",
"WIFI_CH1"…"WIFI_CHx"
Channels supported by the device.
string array
channel_infoobjectTotal channel information see Table 2.
Table 2
ParameterRangeTypeDescription
CH1objectSee Table 3
object
IP_CH1object
object
WIFI_CH1object
object
Table 3
ParameterRangeTypeDescription
siren_type"Alarm1",
"Alarm2",
"User-defined1",
"User-defined2",
"User-defined3"
stringAlarm alarm station Choose Audio.
siren_file_namestring length: 0-127stringalarm file name.
siren_file_typestring length: 0-127stringAudio file type.
file_datastring length: 0-512kstringfile data.
file_namestring length: 0-127stringfile name.

Sample:

POST /API/AlarmConfig/VoiceAlarm/Import HTTP/1.1
{
    "version": "1.0",
    "data": {
        "channel_info": {
            "CH1": {
                "siren_type": "Alarm1",
                "siren_file_name": "FILE.wav",
                "siren_file_type": ".wav",
                "file_data": "ADSD+ASD.ADASD"
            }
        }
    }
}

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Delete

Function

This API is used to delete imported audio files.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
channel_infoobjectTotal channel information see Table 2.
Table 2
ParameterRangeTypeDescription
CH1objectSee Table 3
object
IP_CH1object
object
WIFI_CH1object
object
Table 3
ParameterRangeTypeDescription
siren_type"Alarm1",
"Alarm2",
"User-defined1",
"User-defined2",
"User-defined3"
stringAlarm alarm station Select Audio("Alarm1", "Alarm2"
It is the system's own audio and cannot be deleted).

Sample:

POST /API/AlarmConfig/VoiceAlarm/Delete HTTP/1.1
{
    "version": "1.0",
    "data": {
        "channel_info": {
            "CH1": {
                "siren_type": "User-defined2"
            }
        }
    }
}

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Voice Prompts

Function

This API is used to get or set language broadcast configuration parameters.

URI

POST /API/AlarmConfig/VoicePrompts/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range, Get, Set.

Range

Function

This API is used to get Alarm > Voice Prompts configuration parameter range.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
control_type"Normal", "AiFace", "AiPlate"stringControl type:
Normal: non-AI face and non-AI license plate
AiFace: AI face
AiPlate: AI license plate

Sample:

POST /API/AlarmConfig/VoicePrompts/Get HTTP/1.1
{
    "version": "1.0",
    "data": {
        "control_type":"Normal"
    }
}

Response Message

Parameter Description

Table 2
ParameterRangeTypeDescription
language"Simplified Chinese",
"Traditional Chinese",
"ČEŠTINA",
"DANSK",
"ENGLISH",
"FINNISH",< br />"FRANÇAIS",
"DEUTSCH",
"ΕΛΛΗΝΙΚΑ",
"עברית",
"MAGYAR",
"ITALIANO",
>"Japanese",
"POLSKI",
"PORTUGUÊS",
"РУССКИЙ",
"ESPAÑOL",
"ไ ท ย",
"SLOVENIA",
"ROMANIAN",
"BULGARIAN",
"ARABIC",
"HINDI",
"VIETNAM",
"HOLLAND",
"TURKEY",
"PERSIAN",
"SVENSKA",
"KOREAN",
"INDONESIA",
"BRAZILE ",
"TFLEMISH",
"Українська",
"SLOVENSKY"
stringThe current system language, used to cut into the default language when the web server imports text.
command"Upload", "Remove", "Transform", "Exit", "Play"stringcommand.
control_type"Normal","AiFace","AiPlate"stringControl type.
file_namestring length:1-64stringfile name.
textstring length:1-200stringfile text.
index0-65535intfile index.
convert_mode"File","NetworkText"stringconversion mode.
packet_index0-65535intpacket index.
file_count1-65535intNumber of files.
package_size1-51200intpackage size.
download_mode"g711a","wav","mp3"stringThe format of the audio file to be downloaded when the remote end is listening.
urlstring length:1-128stringdownload link.
license_platestring length:1-15stringIt must be brought when the control_type is AiPlate, and it is not necessary when it is other. It corresponds to the "License Plate" on the interface.
tips_support_importboolWhether to support import tips.
tips_max_length0-16intthe longest tip length.
volume0-100intvolume.
file_datastring length:1-5242880stringfile data.
audio_liststring arraylist of audio files.
siren_type_contentJson Object
delete_buttonboolDelete/import audio button

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "language": {
            "type": "string",
            "items": [
                "简体中文",
                "繁體中文",
                "ČEŠTINA",
                "DANSK",
                "ENGLISH",
                "FINNISH",
                "FRANÇAIS",
                "DEUTSCH",
                "ΕΛΛΗΝΙΚΑ",
                "עברית",
                "MAGYAR",
                "ITALIANO",
                "日 本 語",
                "POLSKI",
                "PORTUGUÊS",
                "РУССКИЙ",
                "ESPAÑOL",
                "ไ ท ย",
                "SLOVENIA",
                "ROMANIAN",
                "BULGARIAN",
                "ARABIC",
                "HINDI",
                "VIETNAM",
                "HOLLAND",
                "TURKEY",
                "PERSIAN",
                "SVENSKA",
                "KOREAN",
                "INDONESIA",
                "BRAZILE",
                "TFLEMISH",
                "Українська",
                "SLOVENSKY"
            ],
            "hide_items": [
                "简体中文",
                "ČEŠTINA",
                "SLOVENIA",
                "VIETNAM",
                "SVENSKA",
                "INDONESIA",
                "BRAZILE",
                "TFLEMISH",
                "Українська",
                "SLOVENSKY"
            ]
        },
        "command": {
            "type": "string",
            "items": [
                "Upload",
                "Remove",
                "Transform",
                "Exit",
                "Play"
            ]
        },
        "control_type": {
            "type": "string",
            "items": [
                "Normal",
                "AiFace",
                "AiPlate"
            ]
        },
        "file_name": {
            "type": "string",
            "min_len": 1,
            "max_len": 64
        },
        "text": {
            "type": "string",
            "min_len": 1,
            "max_len": 200
        },
        "index": {
            "type": "int32",
            "min": 0,
            "max": 65535
        },
        "convert_mode": {
            "type": "string",
            "items": [
                "File",
                "NetworkText"
            ]
        },
        "packet_index": {
            "type": "int32",
            "min": 0,
            "max": 65535
        },
        "file_count": {
            "type": "int32",
            "min": 1,
            "max": 65535
        },
        "package_size": {
            "type": "int32",
            "min": 1,
            "max": 512000
        },
        "download_mode": {
            "type": "string",
            "items": [
                "g711a",
                "wav",
                "mp3"
            ]
        },
        "url": {
            "type": "string",
            "min_len": 1,
            "max_len": 128
        },
        "license_plate": {
            "type": "string",
            "min_len": 1,
            "max_len": 15
        },
        "tips_support_import": {
            "type": "bool"
        },
        "tips_max_length": {
            "type": "string",
            "min_len": 0,
            "max_len": 16
        },
        "volume": {
            "type": "int32",
            "min": 0,
            "max": 100
        },
        "file_data": {
            "type": "string",
            "min_len": 1,
            "max_len": 5242880
        },
        "audio_list": {
            "type": "array",
            "min_size": 0,
            "max_size": 100,
            "items": []
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get Alarm > Voice Prompts configuration parameters.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
control_type"Normal","AiFace","AiPlate"stringControl type:
Normal: non-AI face and non-AI license plate
AiFace: AI face
AiPlate: AI license plate
download_mode"g711a","aac","wav","mp4","mp3"stringThe format of the audio file to be downloaded when the remote end is listening.
license_platestringMust bring it when the control_type is AiPlate, and don't need it when it is other. It corresponds to "License Plate" on the interface.

Sample:

POST /API/AlarmConfig/VoicePrompts/Get HTTP/1.1
{
    "data": {
        "command": "GetAudioFilesList ",
    }
}

Response Message

Parameter Description

Table 2
ParameterRangeTypeDescription
infoobjectSee Table 3 for details.
audio_liststring arraylist of audio files.
Table 3
ParameterRangeTypeDescription
languagestringThe current system language, used to cut into the default language when the web server imports text.
ipc_channel_infostring arrayThe front-end supports language output channel list.
urlstringThe url of the remote audition download audio file. For example: http://IP:Port/VoicePromptsTransform/api/FileName, the remote should replace IP, Port, and FileName by itself, where FileName is the file corresponding to audio_list+ File format, this file format is the download_mode (http://127.0.0.1:80/VoicePromptsTransform/api/test.mp3) sent when requesting.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "audio_list": [
            "5_13227.mp3", //Each item in the list is divided into two parts by "_", the first half is the unique serial number assigned to the audio file by the system, and the second half is the audio file name.
            "6_9528.mp3",
            "7_AlienBoi.mp3"
        ]
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set Alarm > Voice Prompts configuration parameters.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
command"Upload", "Remove", "Transform", "Exit", "Play"stringControl command:
"Upload": upload audio file or text.

"Remove": Delete an audio file.

"Transform": Transform an audio file (if the remote end does not support G711A decoding during trial listening, you can issue this command to let the board end convert the audio file For the required format, note that if you have issued this command, you must issue the "Exit" command to let the board release resources when exiting the audio broadcast page).

"Exit": Tell the board to release The resources occupied by the "Transform" command (if the "Transform" command is not issued, it is not necessary to issue this command when exiting the audio broadcast page).

"Play": audition a certain audio.
control_type"Normal", "AiFace", "AiPlate"stringControl type.
"Normal": Non-AI face and non-AI license plate.
"AiFace": AI face.< br />"AiPlate": AI license plate.
To be issued in the "Upload" "Remove" "Transform" "Play" command.
convert_mode"File", "LocalText", "NetworkText"stringconversion mode.
"File": Convert audio files.
"LocalText": Locally convert text.
"NetworkText ": The web server converts text.
To be sent in the "Upload" command.
packet_index0~65535int"command" is "Upload" and "convert_mode" is "File", which means the index of the current package.
file_count0~65535intissued when "command" is "Upload" and "convert_mode" is "File", indicating the total number of packets.
file_name1~64stringSent when "command" is "Upload" and "convert_mode" is "File", it means the name of the uploaded audio file.
file_data"control_type" is "Normal" 1~5M
"control_type" is "AiFace" 1~500K
string"command" is "Upload" and "convert_mode" is "File", Indicates the uploaded audio file content.

When "control_type" is "Normal", the entire file size is 1~5M.

When "control_type" is "AiFace", the entire file size is 1~5M 500K (the total size of a single package cannot exceed 1.5M).
text1~1024stringSent when "command" is "Upload" and "convert_mode" is "Text".
index1~11int"command" is "Upload" and "convert_mode" is "File" and "control_type" is "AiFace" to issue, indicating the time period for import.

"command" is "Remove" and "control_type" is "Normal", which means to delete the index of which file in the audio list.

"command" is "Remove" and "control_type" is " AiFace" issued, indicating which time period of audio to delete.

Issued when "command" is "Transform" and "control_type" is "Normal", indicating which file index to transfer.


When "command" is "Transform" and "control_type" is "AiFace", it is issued, indicating which time period to turn.

"command" is "Play" and "control_type" When it is "Normal", it means the index of which file to play.

When "command" is "Play" and "control_type" is "AiFace", it means which time period to play.
languagestring"command" is "Upload" and "convert_mode" is "Text", indicating which language the text is in.
download_mode"g711a", "aac", "wav", "mp4"string"command" is issued when "Transform", indicating what format the audio file related to "index" should be converted into.
ipc_channel_infoint array"command" is issued when "Play", indicating which channels to use to play, 255 means local, others correspond to front-end channels, starting from 0.
license_platestringMust bring it when "control_type" is "AiPlate", and don't need it when it is other. Corresponds to "License Plate" on the interface.

Sample 1. delete audio file:

POST /API/AlarmConfig/VoicePrompts/Set HTTP/1.1
{
    "version": "1.0",
    "data": {
        "control_type": "Normal",
        "command": "Remove",
        "download_mode": "mp3",
        "index": 45
    }
}

Sample 2. import audio files:

POST /API/AlarmConfig/VoicePrompts/Set HTTP/1.1
{
    "version": "1.0",
    "data": {
        "fileIndex": 0,
        "fileName": "CC.mp3",
        "chunkSize": 1,
        "chunkIndex": 0,
        "data": "//MoxAAM+F...qqqqqqqqq",
        "control_type": "Normal",
        "command": "Upload",
        "convert_mode": "File",
        "download_mode": "mp3",
        "file_count": 1,
        "packet_index": 0,
        "package_size": 10560,
        "file_name": "CC.mp3",
        "file_data": "//MoxAq...qqqqqqq"
    }
}

Sample 3. server switch:

POST /API/AlarmConfig/VoicePrompts/Set HTTP/1.1
{
    "version": "1.0",
    "data": {
        "control_type": "Normal",
        "command": "Upload",
        "convert_mode": "NetworkText",
        "download_mode": "mp3",
        "language": "ENGLISH",
        "text": "test",
        "file_name": "name"
    }
}

Sample 4. audition audio:

POST /API/AlarmConfig/VoicePrompts/Set HTTP/1.1
{
    "version": "1.0",
    "data": {
        "control_type": "Normal",
        "command": "Transform",
        "download_mode": "mp3",
        "index": 46
    }
}

Response Message

Parameter Description

Table 2
ParameterRangeTypeDescription
audio_listarraylist of audio files.
infoobjectSee Table 3.
Table 3
ParameterRangeTypeDescription
languagestringThe current system language, used to cut into the default language when importing text from the web server.
ipc_channel_infoarrayThe front-end supports language output channel list.
urlstringThe url of the remote audition download audio file. For example: http://IP:Port/VoicePromptsTransform/api/FileName, the remote should replace IP, Port, and FileName by itself, where FileName is the file corresponding to audio_list+ File format, this file format is the download_mode (http://127.0.0.1:80/VoicePromptsTransform/api/test.mp3) sent when requesting.

Sample 1. delete audio file:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {"audio_list": []}
}

Sample 2. import audio files:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {"audio_list": ["46_CC"]}
}

Sample 3. Server conversion produces audio files:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {"audio_list": [
        "47_name",
        "46_CC"
    ]}
}

Sample 4. audition audio:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Storage

Configure device storage.

To be added.

Disk

Function

This API is used for get or set Disk page parameters.

URI

POST /API/StorageConfig/Disk/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action,including RangeGetSetControlFormatProgress

Range

Function

This API is used to get parameter range for Storage > Disk page.

Note:

The Range provides reference information for client UI input limits and API request limits. When sending Get and Set requests, the parameters must be strictly limited according to the Range, otherwise the request may be rejected by the device.

Request Message

None.

Sample:

POST /API/StorageConfig/Disk/Range HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 1

ParameterRangeTypeDescription
disk_infoJSON arrayDisk Info object, see Table 2 for detailed information
over_writeOff
Auto
1Day
3Days
7Days
14Days
30Days
90Days
stringDisk replication type
esata_recordboolE-SATA recording function switch
support_formatboolUsed to display the formatting button
default_timeout1~120000 unit: msintSession timeout field
hdd_format_typeAllHddData
OnlyHddRecord
OnlyHddData
stringHard disk format type
/* Format the entire hard disk /
/
Format only the video partition /
/
Format only the general partition*/

Table 2

Disk Info Object

ParameterRangeTypeDescription
idintDisk serial number
display_idintDisk display serial number (dedicated to NVR and DVR)
modelMax length: 40 bytestringDisk model
serial_noMax length: 20 bytestringdisk serial number
firmwareMax length: 8 bytestringDisk firmware model
device_typeNone
Normal
Esata
Sd
Usb
Network
Raid
All
stringdisk type
activeInactive
Active
stringDisk working status
statusNoHdd
Unformat
Normal
Full
ReadOnly
HddError
Connecting
Offline
Occupied
Oversized
Broken
Degrade
Rebuilding
Backup
RaidHdd
stringDisk status
total_sizeUnit: MegabytesintTotal capacity
free_sizeUnit: Megabytesintremaining capacity
total_timeUnit: secondsinttotal time
free_timeUnit: secondsintremaining time
format_enableboolCan I format it
delete_enableboolCan I delete it
disk_typeReadAndWriteDisk
RedundantDisk
ReadOnlyDisk
stringDisk group type
disk_group_idintDisk group serial number
NasMaxCountintMaximum number of supported NAS disks
nas_infoJson ObjectNas Info Object, see Table 3 for detailed information

Note: Except for disk in Table 2 Type, disk_ Group_ ID, NasMaxCount, nas_ Other fields of info are only allowed to be obtained and do not support setting

Table 3

Channel Object

ParameterRangeTypeDescription
Enableintenabled
IndexintNetwork disk serial number
TypeNFS
SMB/CIFS
stringProtocol(NFS SMB/CIFS)
Usernamestringusername
Passwordstringpassword
password_emptyboolDo you have a password
IpstringIP
Dirstringdirectory path
SizeIntHard disk capacity (GB)
TotalSize1~8192intTotal size
base_enc_passwordJson ObjectPlease refer to the table in the Syntax file under the Request pubkey or randbyte in the Login directory for encryption password details

Tips:

The response message of the Range request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "disk_info": {
            "type": "array",
            "min_size": 0,
            "max_size": 18,
            "items": [
                {
                    "id": {
                        "type": "int32",
                        "min": 1,
                        "max": 21
                    },
                    "display_id": {
                        "type": "int32",
                        "min": 1,
                        "max": 21
                    },
                    "model": {
                        "type": "string",
                        "min_len": 0,
                        "max_len": 40
                    },
                    "serial_no": {
                        "type": "string",
                        "min_len": 0,
                        "max_len": 20
                    },
                    "firmware": {
                        "type": "string",
                        "min_len": 0,
                        "max_len": 8
                    },
                    "device_type": {
                        "type": "string",
                        "items": [
                            "None",
                            "Normal",
                            "Esata",
                            "Sd",
                            "Usb",
                            "Network",
                            "Raid",
                            "All"
                        ]
                    },
                    "status": {
                        "type": "string",
                        "items": [
                            "NoHdd",
                            "Unformat",
                            "Normal",
                            "Full",
                            "ReadOnly",
                            "HddError",
                            "Connecting",
                            "Offline",
                            "Occupied",
                            "Oversized",
                            "Broken",
                            "Degrade",
                            "Rebuilding",
                            "Backup",
                            "RaidHdd"
                        ]
                    },
                    "total_size": {
                        "type": "int32",
                        "unit": "MB",
                        "min": 0,
                        "max": 2147483647
                    },
                    "free_size": {
                        "type": "int32",
                        "unit": "MB",
                        "min": 0,
                        "max": 2147483647
                    },
                    "total_time": {
                        "type": "int32",
                        "unit": "second",
                        "min": 0,
                        "max": 2147483647
                    },
                    "free_time": {
                        "type": "int32",
                        "unit": "second",
                        "min": 0,
                        "max": 2147483647
                    },
                    "format_enable": {
                        "type": "bool"
                    },
                    "delete_enable": {
                        "type": "bool"
                    },
                    "disk_type": {
                        "type": "string",
                        "items": [
                            "ReadAndWriteDisk",
                            "RedundantDisk",
                            "ReadOnlyDisk"
                        ]
                    },
                    "nas_info": {
                        "type": "array",
                        "min_size": 0,
                        "max_size": 8,
                        "items": [
                            {
                                "Enable": {
                                    "type": "int32",
                                    "min": 0,
                                    "max": 1
                                },
                                "Index": {
                                    "type": "int32",
                                    "min": 0,
                                    "max": 7
                                },
                                "Type": {
                                    "type": "string",
                                    "items": [
                                        "NFS",
                                        "SMB/CIFS"
                                    ]
                                },
                                "Username": {
                                    "type": "string",
                                    "min_len": 1,
                                    "max_len": 63
                                },
                                "Password": {
                                    "type": "string",
                                    "min_len": 1,
                                    "max_len": 63
                                },
                                "password_empty": {
                                    "type": "bool"
                                },
                                "Ip": {
                                    "type": "string",
                                    "min_len": 1,
                                    "max_len": 15
                                },
                                "Dir": {
                                    "type": "string",
                                    "min_len": 1,
                                    "max_len": 32
                                },
                                "Size": {
                                    "type": "int32",
                                    "unit": "GB",
                                    "min": 33,
                                    "max": 8192
                                },
                                "TotalSize": {
                                    "type": "int32",
                                    "unit": "GB",
                                    "min": 33,
                                    "max": 8192
                                }
                            }
                        ]
                    }
                }
            ]
        },
        "default_timeout": 60000,
        "NasMaxCount": {
            "type": "int32",
            "min": 1,
            "max": 8
        },
        "over_write": {
            "type": "string",
            "items": [
                "Off",
                "Auto",
                "1Day",
                "3Days",
                "7Days",
                "14Days",
                "30Days",
                "90Days"
            ]
        },
        "hdd_format_type": {
            "type": "string",
            "items": [
                "AllHddData",
                "OnlyHddRecord",
                "OnlyHddData"
            ]
        },
        "support_format": {
            "type": "bool"
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to set parameter for Storage > Disk page.

Request Message

None.

Sample:

POST /API/StorageConfig/Disk/Get HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

See Storage > Disk > Disk Configuration > Range > Parameter Description > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "disk_info": [
            {
                "id": 1,
                "display_id": 1,
                "model": "TOSHIBA MQ01ABD050V",
                "serial_no": "Z68ES299S",
                "firmware": "AX0U1Q",
                "device_type": "Normal",
                "status": "Full",
                "total_size": 476940,
                "free_size": 0,
                "total_time": 724487,
                "free_time": 0,
                "format_enable": true,
                "delete_enable": false,
                "disk_type": "ReadAndWriteDisk"
            }
        ],
        "NasMaxCount": 1,
        "over_write": "Auto",
        "hdd_format_type": "AllHddData",
        "support_format": true
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set parameter for Storage > Disk page.

Request Message

See Storage > Disk > Disk Configuration > Range > Parameter Description > Table 2 for parameter description.

Sample:

POST /API/StorageConfig/Disk/Set HTTP/1.1
{
    "version": "1.0",
    "data": {
        "NasMaxCount": 1,
        "diskArr": [

        ],
        "disk_info": [
            {
                "delete_enable": false,
                "device_type": "Normal",
                "disk_type": "ReadAndWriteDisk",
                "display_id": 1,
                "firmware": "AX0U1Q",
                "format_enable": true,
                "free_size": 0,
                "free_time": 0,
                "id": 1,
                "model": "TOSHIBA MQ01ABD050V",
                "serial_no": "Z68ES299S",
                "status": "Full",
                "total_size": 476940,
                "total_time": 724487
            }
        ],
        "hdd_format_type": "AllHddData",
        "over_write": "Auto",
        "support_format": true
    }
}

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Control

Function

This API is used to set parameter for Storage > Disk page.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
TypestringNetHdd、RaidHdd、Hdd
InfoJson ObjectNetHdd Object, see Table 2 for detailed information
Hdd object, see Table 3 for detailed information

Table 2

NetHdd Object

ParameterRangeTypeDescription
ModestringAdd、Test、Del
Enableintenable
IndexintNetwork disk serial number (not required for Add, not required for Test)
TypeNFS
SMB/CIFS
stringProtocol(NFS SMB/CIFS)
Usernamestringusername
Passwordstringpassword
IpstringIP
Dirstringdirectory path
SizeIntHard disk capacity (GB)
idinHard drive serial number
disk_typeReadAndWriteDisk
RedundantDisk
ReadOnlyDisk
stringDisk group type
disk_group_idintDisk group serial number
base_enc_passwordJson ObjectPlease refer to the table in the Syntax file under the Request pubkey or randbyte in the Login directory for encryption password details

Table 3

Channel Object

ParameterRangeTypeDescription
idintHard drive serial number
disk_typeReadAndWriteDisk
RedundantDisk
ReadOnlyDisk
stringDisk group type
disk_group_idintDisk group serial number

Table 4

ParameterRangeTypeDescription
resultstringsuccess
failed

Sample:

POST /API/StorageConfig/Disk/Control HTTP/1.1
{
    "version": "1.0",
    "data": {
        "Info": {
            "Enable": 1,
            "Mode": "Edit",
            "disk_type": "ReadAndWriteDisk",
            "id": 1
        },
        "Type": "Hdd"
    }
}

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Format

Function

This API is used to set parameter for Storage > Disk page.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
base_secondary_authenticationJson ObjectFor details of encrypted authentication, please refer to the table in the Syntax file under the Request pubkey or randbyte in the Login directory
hdd_idint arrayDisk serial number
hdd_format_typeAllHddData
OnlyHddRecord
OnlyHddData
stringHard disk format type
/* Format the entire hard disk /
/
Format only the video partition /
/
Format only the general partition*/

Sample:

POST /API/StorageConfig/Disk/Format HTTP/1.1
{
    "version": "1.0",
    "data": {
        "base_secondary_authentication": {
            "cipher": "oz+j5ICkAxtNjnxGInpxkOLHvsep6Fm5gruG6F0/PCE=",
            "seq": 1
        },
        "hdd_format_type": "AllHddData",
        "hdd_id": [
            1
        ]
    }
}

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Progress

Function

This API is used to set parameter for Storage > Disk page.

Request Message

None.

Sample:

POST /API/StorageConfig/Disk/Format/Progress HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 1

ParameterRangeTypeDescription
hdd_idint arrayDisk serial number
hdd_format_stateFormatting
Ok
stringHard drive status
hdd_format_percent0~100intFormat Progress
hdd_format_infojson arrayHddFormat Info Object, see Table 2 for detailed information

Table 2

NetHdd Object

ParameterRangeTypeDescription
hdd_idInthdd id
hdd_format_resultIdle
Ok
InvalidParam
NoExist
HwError
Failed
Oversized
stringFormat Result
/* Format Not Started /
/
Success /
/
Illegal Parameter /
/
No Hard Disk /
/
Hardware Error /
/
Failure /
/
Excessive Mount Capacity*/

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "hdd_id": 1,
        "hdd_format_state": "Formatting",
        "hdd_format_percent": 12
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Disk Group

Function

This API is used for get or set Disk Group page parameters.

URI

POST /API/StorageConfig/DiskGroup/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYesRequest action,including RangeGetSet

Range

Function

This API is used to get parameter for Storage > Disk Group page.

Note:

The Range provides reference information for client UI input limits and API request limits. When sending Get and Set requests, the parameters must be strictly limited according to the Range, otherwise the request may be rejected by the device.

Request Message

None.

Sample:

POST /API/StorageConfig/DiskGroup/Range HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 1

ParameterRangeTypeDescription
disk_group_infoJSON arrayDisk Group Info Object, see Table 2 for detailed information
limit_channel_maxintThe maximum number of channels that can be selected for a disk group

Table 2

Disk Group Info Object

ParameterRangeTypeDescription
disk_group_typeNone
RecordDiskGroup
RedundanceDiskGroup
stringDisk group type
group_num1~MAX_HDD_GROUP_NUMintDisk Group Type Video Disk Group Serial Number/Redundant Disk Group Serial Number
channel“CH1”…“CH1x”
“IP_CH1”…“IP_CH1x”
“WIFI_CH1”…“WIFI_CH1x”
stringDisc group recording channel
note: A channel can only be added to one disc group

Tips:

The response message of the Range request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "limit_channel_max": 32,
        "disk_group_info": [
            {
                "disk_group_type": "Record Disk Group",
                "group_array": [
                    {
                        "group_num": "Record Disk Group 1 (HDD5)",
                        "channel": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 64,
                            "items": {
                                "type": "string",
                                "items": [
                                    "CH1",
                                    "CH2",
                                    "CH3",
                                    "CH4",
                                    "CH5",
                                    "CH6",
                                    "CH7",
                                    "CH8",
                                    "CH9",
                                    "CH10",
                                    "CH11",
                                    "CH12",
                                    "CH13",
                                    "CH14",
                                    "CH15",
                                    "CH16"
                                ]
                            }
                        }
                    },
                    {
                        "group_num": "Record Disk Group 2 (HDD2 HDD4)",
                        "channel": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 64,
                            "items": {
                                "type": "string",
                                "items": [
                                    "CH1",
                                    "CH2",
                                    "CH3",
                                    "CH4",
                                    "CH5",
                                    "CH6",
                                    "CH7",
                                    "CH8",
                                    "CH9",
                                    "CH10",
                                    "CH11",
                                    "CH12",
                                    "CH13",
                                    "CH14",
                                    "CH15",
                                    "CH16"
                                ]
                            }
                        }
                    }
                ]
            }
        ]
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get parameter for Storage > Disk Group page.

Request Message

None.

Sample:

POST /API/StorageConfig/DiskGroup/Get HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

See Storage > Disk Group > Range > Parameter Description > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "disk_group_info": [
            {
                "disk_group_type": "Record Disk Group",
                "group_array": [
                    {
                        "group_num": "Record Disk Group 1 (HDD5)",
                        "channel": [
                            "CH1",
                            "CH2",
                            "CH3",
                            "CH4",
                            "CH5",
                            "CH6",
                            "CH7",
                            "CH8",
                            "CH9",
                            "CH10",
                            "CH11",
                            "CH12",
                            "CH13",
                            "CH14",
                            "CH15",
                            "CH16"
                        ]
                    },
                    {
                        "group_num": "Record Disk Group 2 (HDD2 HDD4)",
                        "channel": [
                            "CH33",
                            "CH34",
                            "CH35",
                            "CH36",
                            "CH37",
                            "CH38",
                            "CH39",
                            "CH40",
                            "CH41",
                            "CH42",
                            "CH43",
                            "CH44",
                            "CH45",
                            "CH46",
                            "CH47",
                            "CH48"
                        ]
                    }
                ]
            }
        ]
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to get parameter for Storage > Disk Group page.

Request Message

See Storage > Disk Group > Range > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/StorageConfig/DiskGroup/Set HTTP/1.1
{
    "result": "success",
    "data": {
        "disk_group_info": [
            {
                "disk_group_type": "Record Disk Group",
                "group_array": [
                    {
                        "group_num": "Record Disk Group 1",
                        "channel": [
                            "CH1",
                            "IP_CH1",
                            "IP_CH2"
                        ]
                    },
                    {
                        "group_num": "Record Disk Group 2",
                        "channel": [
                            "CH2",
                            "CH3",
                            "CH4"
                        ]
                    }
                ]
            }
        ]
    }
}

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Cloud

Function

This API is used for get or set Cloud page parameters.

URI

POST /API/StorageConfig/Cloud/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action,including RangeGetSetControlaccesstoken

Range

Function

This API is used to set parameter for Storage > Cloud page.

Note:

The Range provides reference information for client UI input limits and API request limits. When sending Get and Set requests, the parameters must be strictly limited according to the Range, otherwise the request may be rejected by the device.

Request Message

None.

Sample:

POST /API/StorageConfig/Cloud/Range HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 1

ParameterRangeTypeDescription
accesstoken1-128stringToken after Dropbox activation

Table 2

ParameterRangeTypeDescription
cloud_storageboolCloud storage function switch
cloud_typeDROPBOX
Google Drive
stringCloud storage type
cloud_statusActivated
CloudFull
Unactivated
NetworkBlocked
Disabled
stringCloud storage connection status (DVR/NVR only) Note: only access is allowed, and setting is not supported
total_sizeunit:byteunsigned
long
long
Total capacity (DVR/NVR dedicated) Note: Only allowed for acquisition, not supported for setting
used_sizeunit:byteunsigned
long
long
Used capacity (DVR/NVR dedicated) Note: Only allowed to obtain, not supported for setting
cloud_over_writeOff
Auto
1Day
3Days
7Days
14Days
30Days
90Days
stringCloud storage data overwrite time (DVR/NVR dedicated)
video_typeRF
AVI
MP4
stringVideo file type (DVR/NVR specific)
channel_infoJSON
array
Channel Info Object, please refer to Table 3 for details
channel_maxintThe total number of channels in the current device

Table 3

Channel Info Object

ParameterRangeTypeDescription
CH1Json ObjectChannel Object, see Table 4 for detailed information
IP_CH1Json Object
WIFI_CH1Json Object

Table 4

Channel Object

ParameterRangeTypeDescription
channel0 ~ Maximum number of channelsstringchannel number
folder_nameMax length:63 bytestringThe folder created by each channel on Cloud storage
Note: the folder name must conform to the file name specification, and illegal characters are not allowed

Table 5

ParameterRangeTypeDescription
cloud_typeDROPBOX
Google Drive
stringCloud storage type

Table 6

ParameterRangeTypeDescription
urlstringRequest Connection URL
codestringVerification code (for Google Drive Cloud storage)

Tips:

The response message of the Range request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "cloud_storage": {
            "type": "bool"
        },
        "cloud_type": {
            "type": "string",
            "items": [
                "DROPBOX",
                "Google Drive"
            ]
        },
        "cloud_status": {
            "type": "string",
            "items": [
                "Activated",
                "CloudFull",
                "Unactivated",
                "NetworkBlocked",
                "Disabled"
            ]
        },
        "total_size": {
            "type": "string",
            "min_len": 0,
            "max_len": 20
        },
        "used_size": {
            "type": "string",
            "min_len": 0,
            "max_len": 20
        },
        "progress": {
            "type": "int32",
            "min": 0,
            "max": 100
        },
        "cloud_over_write": {
            "type": "string",
            "items": [
                "OFF",
                "Auto",
                "1Day",
                "3Days",
                "7Days",
                "14Days",
                "30Days",
                "90Days"
            ]
        },
        "video_type": {
            "type": "string",
            "items": [
                "RF",
                "AVI",
                "MP4"
            ]
        },
        "channel_max": 16,
        "channel_info": {
            "type": "object",
            "items": {
                "CH1": {
                    "type": "object",
                    "items": {
                        "folder_name": {
                            "type": "string",
                            "min_len": 0,
                            "max_len": 62
                        }
                    }
                },
                "CH5": {
                    "type": "object",
                    "items": {
                        "folder_name": {
                            "type": "string",
                            "min_len": 0,
                            "max_len": 62
                        }
                    }
                },
                "CH6": {
                    "type": "object",
                    "items": {
                        "folder_name": {
                            "type": "string",
                            "min_len": 0,
                            "max_len": 62
                        }
                    }
                },
                "CH7": {
                    "type": "object",
                    "items": {
                        "folder_name": {
                            "type": "string",
                            "min_len": 0,
                            "max_len": 62
                        }
                    }
                },
                "CH11": {
                    "type": "object",
                    "items": {
                        "folder_name": {
                            "type": "string",
                            "min_len": 0,
                            "max_len": 62
                        }
                    }
                },
                "CH14": {
                    "type": "object",
                    "items": {
                        "folder_name": {
                            "type": "string",
                            "min_len": 0,
                            "max_len": 62
                        }
                    }
                },
                "CH15": {
                    "type": "object",
                    "items": {
                        "folder_name": {
                            "type": "string",
                            "min_len": 0,
                            "max_len": 62
                        }
                    }
                },
                "CH16": {
                    "type": "object",
                    "items": {
                        "folder_name": {
                            "type": "string",
                            "min_len": 0,
                            "max_len": 62
                        }
                    }
                }
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to set parameter for Storage > Cloud page.

Request Message

None.

Sample:

POST /API/StorageConfig/Cloud/Get HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

See Storage > Cloud > Range > Parameter Description > Table 2 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "cloud_storage": true,
        "cloud_type": "DROPBOX",
        "cloud_status": "NetworkBlocked",
        "total_size": "0.00B",
        "used_size": "0.00B",
        "progress": 0,
        "cloud_over_write": "OFF",
        "video_type": "RF",
        "channel_info": {
            "CH1": {
                "folder_name": "CH1"
            },
            "CH5": {
                "folder_name": "CH5"
            },
            "CH6": {
                "folder_name": "CH6"
            },
            "CH7": {
                "folder_name": "CH7"
            },
            "CH11": {
                "folder_name": "CH11"
            },
            "CH14": {
                "folder_name": "CH14"
            },
            "CH15": {
                "folder_name": "CH15"
            },
            "CH16": {
                "folder_name": "CH16"
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set parameter for Storage > Cloud page.

Request Message

See Storage > Cloud > Range > Parameter Description > Table 2 for parameter description.

Sample:

POST /API/StorageConfig/Cloud/Set HTTP/1.1
{
    "version": "1.0",
    "data": {
        "channel_info": {
            "CH1": {
                "folder_name": "CH1", 
                "chn_index": "CH1"
            },
            "CH5": {
                "folder_name": "CH5"
            },
            "CH6": {
                "folder_name": "CH6"
            },
            "CH7": {
                "folder_name": "CH7"
            },
            "CH11": {
                "folder_name": "CH11"
            },
            "CH14": {
                "folder_name": "CH14"
            },
            "CH15": {
                "folder_name": "CH15"
            },
            "CH16": {
                "folder_name": "CH16"
            }
        },
        "cloud_over_write": "OFF",
        "cloud_status": "NetworkBlocked",
        "cloud_storage": true,
        "cloud_type": "DROPBOX",
        "progress": 0,
        "total_size": "0.00B",
        "used_size": "0.00B",
        "video_type": "RF"
    }
}

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

accesstoken

Function

This API is used to set parameter for Storage > Cloud page.

Request Message

See Storage > Cloud > Range > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/action/accesstoken HTTP/1.1
{
    "result": "success",
    "data": {
        "accesstoken": "9cb768de6f3094faab02a6097192793661a844c74a87aa9621289d3e4304c5fb"
    }
}

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "version": "1.0",
    "data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Control

Function

This API is used to set parameter for Storage > Cloud page.

Request Message

See Storage > Cloud > Range > Parameter Description > Table 5 for parameter description.

Sample:

POST /API/StorageConfig/Cloud/Control HTTP/1.1
{
    "version": "1.0",
    "data": {
        "channel_info": {
            "CH1": {
                "folder_name": "CH1", 
                "chn_index": "CH1"
            },
            "CH5": {
                "folder_name": "CH5"
            },
            "CH6": {
                "folder_name": "CH6"
            },
            "CH7": {
                "folder_name": "CH7"
            },
            "CH11": {
                "folder_name": "CH11"
            },
            "CH14": {
                "folder_name": "CH14"
            },
            "CH15": {
                "folder_name": "CH15"
            },
            "CH16": {
                "folder_name": "CH16"
            }
        },
        "cloud_over_write": "OFF",
        "cloud_status": "NetworkBlocked",
        "cloud_storage": true,
        "cloud_type": "DROPBOX",
        "progress": 0,
        "total_size": "0.00B",
        "used_size": "0.00B",
        "video_type": "RF"
    }
}

Response Message

See Storage > Cloud > Range > Parameter Description > Table 6 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "url": "https://www.dropbox.com/oauth2/authorize?client_id=a9j3357whoj7r4h&redirect_uri=https://cloud.al8.co/dropbox&response_type=code&token_access_type=offline"
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Audio

Function

This API is used for get or set Audio page parameters.

URI

POST /API/DeviceConfig/Audio/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action,including RangeGetSet

Range

Function

This API is used to get parameter range for Storage > Audio page.

Note:

The Range provides reference information for client UI input limits and API request limits. When sending Get and Set requests, the parameters must be strictly limited according to the Range, otherwise the request may be rejected by the device.

Request Message

None.

Sample:

POST /API/DeviceConfig/Audio/Range HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 1

ParameterRangeTypeDescription
channelCH1
CH1x
IP_CH1
IP_CH1x
WIFI_CH1
WIFI_CH1x
The number of channels depends on the functionality of the device
string
array
Each array bit represents a channel with a string
channel_infoJSON ObjectChannel Info Object, see Table 2 for detailed information
channel_maxintCurrent device total channel
support_copyboolDoes the page support copy (dedicated to NVR and DVR)

Table 2

Channel Info object

ParameterRangeTypeDescription
CH1Json ObjectChannel Object, see Table 3 for detailed information
IP_CH1Json Object
WIFI_CH1Json Object

Table 3

Channel object

ParameterRangeTypeDescription
audio_enablebool
audio_typeG711AG711U
ADPCM
G726_16K
G726_24K
G726_32K
G726_40K
ACC
stringAudio Type
in_volume0-10intChannel devices in volume
out_volume0-10intChannel device output volume
audio_inMicIn
Lineln
stringAudio input type
audioin_enableboolAudio input sub switch
audioout_enableboolAudio output sub switch

Tips:

The response message of the Range request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_max": 16,
        "support_copy": true,
        "channel_info": {
            "type": "object",
            "items": {
                "CH1": {
                    "type": "object",
                    "items": {
                        "copy_ch": {
                            "type": "string",
                            "items": [
                                "digit",
                                "analog",
                                "wifi",
                                "local",
                                "all"
                            ]
                        },
                        "audio_type": {
                            "type": "string",
                            "items": [
                                "G711A",
                                "G711U"
                            ],
                            "hide_items": [

                            ]
                        },
                        "in_volume": {
                            "type": "int32",
                            "min": 0,
                            "max": 10
                        },
                        "out_volume": {
                            "type": "int32",
                            "min": 0,
                            "max": 10
                        }
                    }
                },
                "CH14": {
                    "type": "object",
                    "items": {
                        "copy_ch": {
                            "type": "string",
                            "items": [
                                "digit",
                                "analog",
                                "wifi",
                                "local",
                                "all"
                            ]
                        },
                        "audio_enable": {
                            "type": "bool"
                        },
                        "audio_type": {
                            "type": "string",
                            "items": [
                                "G711A",
                                "G711U"
                            ],
                            "hide_items": []
                        },
                        "in_volume": {
                            "type": "int32",
                            "min": 0,
                            "max": 10
                        },
                        "out_volume": {
                            "type": "int32",
                            "min": 0,
                            "max": 10
                        }
                    }
                }
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get parameter for Storage > Audio page.

Request Message

None.

Sample:

POST /API/DeviceConfig/Audio/Get HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

See Storage > Audio > Range > Parameter Description > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_info": {
            "CH1": {
                "copy_ch": "digit",
                "audio_type": "G711A",
                "in_volume": 9,
                "out_volume": 9
            },
            "CH2": {
                "reason": "Not support"
            },
            "CH3": {
                "reason": "Not support"
            },
            "CH4": {
                "reason": "Not support"
            },
            "CH5": {
                "reason": "Not support"
            },
            "CH6": {
                "reason": "Not support"
            },
            "CH7": {
                "reason": "Not support"
            },
            "CH8": {
                "reason": "Not support"
            },
            "CH9": {
                "reason": "Not support"
            },
            "CH10": {
                "reason": "Not support"
            },
            "CH11": {
                "reason": "Not support"
            },
            "CH12": {
                "reason": "Not support"
            },
            "CH13": {
                "reason": "Not support"
            },
            "CH14": {
                "copy_ch": "digit",
                "audio_enable": true,
                "audio_type": "G711A",
                "in_volume": 0,
                "out_volume": 0
            },
            "CH15": {
                "reason": "Not support"
            },
            "CH16": {
                "reason": "Not support"
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set parameter for Storage > Audio page.

Request Message

See Storage > Audio > Range > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/DeviceConfig/Audio/Set HTTP/1.1
{
    "version": "1.0",
    "data": {
        "channel_info": {
            "CH1": {
                "audio_type": "G711A",
                "chn_index": "CH1",
                "copy_ch": "digit",
                "in_volume": 9,
                "out_volume": 9,
                "page": "device_audio"
            },
            "CH14": {
                "audio_enable": true,
                "audio_type": "G711A",
                "copy_ch": "digit",
                "in_volume": 0,
                "out_volume": 0
            }
        },
        "page_type": "ChannelConfig"
    }
}

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

RAID

Function

This API is used for get or set RAID page parameters.

URI

POST /API/StorageConfig/Raid/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action,including RangeGetSet

Range

Function

This API is used to get parameter range for Storage > RAID page.

Note:

The Range provides reference information for client UI input limits and API request limits. When sending Get and Set requests, the parameters must be strictly limited according to the Range, otherwise the request may be rejected by the device.

Request Message

None.

Sample:

POST /API/StorageConfig/Raid/Range HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 1

ParameterRangeTypeDescription
disk_infoJSON ObjectDisk Info Object, see Table 2 for detailed information
raid_infoJSON ObjectRaid Info Object, see Table 3 for detailed information
about_raid_infoJSON ObjectAbout Raid Info Object, see Table 5 for detailed information
create_raidJSON ObjectCreate Info Object, see Table 6 for detailed information
ctrl_infoJSON ObjectCtrl Info Object, see Table 8 for detailed information

Table 2

Disk Info Object

ParameterRangeTypeDescription
No1~16int32The page displays the serial number of the hard drive
enableboolIs the hard drive in a configurable state, that is, it can be checked for hot backup or Raid reconstruction
checkboolUsed to select the current hard drive for hot backup or rebuild Raid
id0~16int32The ID number of the hard drive
disk_modelmax_length:40stringModel of hard drive
serial_nomax_length:20stringThe serial number of the hard drive
total_size2147483647int32The capacity of the hard drive, in GB
array_namemax_length:20stringWhich RAID disk does the hard disk belong to
disk_typeNormal Disk
HotDisk
Raid Disk
stringIndicates that the hard drive is a regular hard drive, set as a hot spare, and formed into a RAID disk
button_type"Add HotDisk"
"Remove HotDisk"
""
stringDisplay the button to set/release the hot spare operation. If the character is blank, it indicates that the operation is not supported and does not need to be displayed
slot_nomax_length:8stringThe slot number of the hard drive

Table 3

Raid Info Object

ParameterRangeTypeDescription
Noint32The page displays the serial number of the RAID disk
checkboolThe page displays the serial number of the RAID disk for selecting the current hard drive for rebuilding the current Raid or deleting operations
raid_id0~16int32The page displays the serial number of the RAID disk
raid_namemax_length:32stringThe page displays the name of the RAID disk
raid_typeRAID0
RAID1
RAID4
RAID5
RAID0
RAID10
stringRAID level type
total_size0~ 2147483647int32Capacity of RAID disk
raid_statusNormal
Degrade
Offline
stringRAID status, normal, degraded, offline
hot_disk0~16int32Number of hot spares for RAID disks
sub_disk_listarrayThe hard disk ID for building a RAID disk
rebuild_buttonRebuild RAIDint32The display operation reconstructs the current RAID disk button, and an empty string indicates that it does not need to be displayed
taskobjectTask Object,Refer to Table 4 for detailed information

Table 4

Task Object

ParameterRangeTypeDescription
statusNone
Rebuild
Sync
stringRAID disk operation progress, no operation progress, rebuilding RAID (taking very long hours, 3 days or more), synchronizing data
progress0~100int32Percentage of operation progress

Table 5

About Raid Info Object

ParameterRangeTypeDescription
max_raid_num0~16int32Support the number of RAID disks to be formed
raid_typeint32List of types that support building RAID
hotdisk_typePublic HotDiskstringThere is currently only one type of hot spare supported
support_rebuildNo
Yes
intDoes it support reconstruction operations

Table 6

Create Raid Object

ParameterRangeTypeDescription
itemOneKeyCreate
CreateRaid
DeleteRaid
AddHotDisk
RemoveHotDisk
Rebuild
stringSupported Actions
raid_typeRAID0
RAID1
RAID4
RAID5
RAID6
RAID10
stringSupported RAID types for creation
disk_infoarrayA hard disk that can be used to form RAID, Ctrl Disk Info Object, see Table 7 for detailed information

Table 7

Task Object

ParameterRangeTypeDescription
id0~16int32The ID of the hard drive
serial_nomax_length:20stringThe serial number of the hard drive
checkboolCheck the hard drive used to build RAID

Table 8

Ctrl Info Object

ParameterRangeTypeDescription
itemOneKeyCreate
CreateRaid
DeleteRaid
AddHotDisk
RemoveHotDisk
Rebuild
sringName of the RAID disk to be built

Table 9

ParameterRangeTypeDescription
ctrlOneKeyCreate
CreateRaid
DeleteRaid
AddHotDisk
RemoveHotDisk
Rebuild
stringCommand for operation (corresponding to JSON when the parameter is get, fill in and modify the parameters and return it)

Tips:

The response message of the Range request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "disk_info": {
            "type": "object",
            "items": {
                "No": {
                    "type": "int32",
                    "min": 0,
                    "max": 16
                },
                "enable": {
                    "type": "bool"
                },
                "check": {
                    "type": "bool"
                },
                "id": {
                    "type": "int32",
                    "min": 0,
                    "max": 16
                },
                "disk_model": {
                    "type": "string",
                    "min_len": 0,
                    "max_len": 40
                },
                "serial_no": {
                    "type": "string",
                    "min_len": 0,
                    "max_len": 20
                },
                "total_size": {
                    "type": "int32",
                    "unit": "GB",
                    "min": 0,
                    "max": 2147483647
                },
                "array_name": {
                    "type": "string",
                    "min_len": 0,
                    "max_len": 32
                },
                "disk_type": {
                    "type": "string",
                    "items": [
                        "Normal Disk",
                        "HotDisk",
                        "Raid Disk"
                    ]
                },
                "button_type": {
                    "type": "string",
                    "items": [
                        "",
                        "Add HotDisk",
                        "Remove HotDisk"
                    ]
                },
                "slot_no": {
                    "type": "string",
                    "min_len": 0,
                    "max_len": 8
                }
            }
        },
        "raid_info": {
            "type": "object",
            "items": {
                "No": {
                    "type": "int32",
                    "min": 0,
                    "max": 16
                },
                "check": {
                    "type": "bool"
                },
                "raid_id": {
                    "type": "int32",
                    "min": 0,
                    "max": 16
                },
                "raid_name": {
                    "type": "string",
                    "min_len": 1,
                    "max_len": 24
                },
                "raid_type": {
                    "type": "string",
                    "items": [
                        "RAID0",
                        "RAID1",
                        "RAID5",
                        "RAID6",
                        "RAID10"
                    ]
                },
                "total_size": {
                    "type": "int32",
                    "min": 0,
                    "max": 2147483647
                },
                "raid_status": {
                    "type": "string",
                    "items": [
                        "Normal",
                        "Degrade",
                        "Offline"
                    ]
                },
                "hot_disk": {
                    "type": "string",
                    "min_len": 0,
                    "max_len": 16
                },
                "sub_disk_list": {
                    "type": "array",
                    "min_size": 0,
                    "max_size": 16,
                    "items": [

                    ]
                },
                "rebuild_button": {
                    "type": "string",
                    "items": [
                        "",
                        "Rebuild RAID"
                    ]
                },
                "task": {
                    "type": "object",
                    "items": {
                        "status": {
                            "type": "string",
                            "items": [
                                "None",
                                "Rebuild",
                                "Sync"
                            ]
                        },
                        "progress": {
                            "type": "int32",
                            "min": 0,
                            "max": 100
                        }
                    }
                }
            }
        },
        "about_raid_info": {
            "type": "object",
            "items": {
                "max_raid_num": {
                    "type": "int32",
                    "min": 0,
                    "max": 16
                },
                "raid_type": {
                    "type": "object",
                    "items": {

                    }
                },
                "hotdisk_type": {
                    "type": "string",
                    "items": [
                        "Global Hot Spare Disk"
                    ]
                },
                "support_rebuild": {
                    "type": "string",
                    "items": [
                        "Not supported",
                        "Supported"
                    ]
                }
            }
        },
        "create_raid": {
            "type": "object",
            "items": {
                "raid_name": {
                    "type": "string",
                    "min_len": 1,
                    "max_len": 24
                },
                "raid_type": {
                    "type": "string",
                    "items": [
                        "RAID0",
                        "RAID1",
                        "RAID5",
                        "RAID6",
                        "RAID10"
                    ]
                },
                "slot_no": {
                    "type": "string",
                    "min_len": 0,
                    "max_len": 8
                },
                "enable": {
                    "type": "bool"
                },
                "disk_info": {
                    "type": "array",
                    "size": 0,
                    "items": [

                    ]
                }
            }
        },
        "ctrl": {
            "type": "string",
            "items": [
                "OneKeyCreate",
                "CreateRaid",
                "DeleteRaid",
                "AddHotDisk",
                "RemoveHotDisk",
                "Rebuild"
            ]
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get parameter for Storage > RAID page.

Request Message

None.

Sample:

POST /API/StorageConfig/Raid/Get HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

See Storage > RAID > Range > Parameter Description > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "disk_info": [
            {
                "No": 0,
                "id": 3,
                "enable": false,
                "check": false,
                "slot_no": "HDD4",
                "disk_model": "TOSHIBA DT01ABA100V",
                "serial_no": "878UUN4MS",
                "total_size": 931,
                "array_name": "-",
                "disk_type": "Normal Disk",
                "button_type": ""
            }
        ],
        "raid_info": [

        ],
        "about_raid_info": {
            "max_raid_num": 16,
            "raid_type": [
                0,
                1,
                5,
                6,
                10
            ],
            "hotdisk_type": "Global Hot Spare Disk",
            "support_rebuild": "Supported"
        },
        "create_raid": {
            "raid_type": "RAID0",
            "disk_info": [
                {
                    "id": 3,
                    "serial_no": "HDD4-878UUN4MS",
                    "slot_no": 1,
                    "enable": false,
                    "check": false
                }
            ]
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to get parameter for Storage > RAID page.

Request Message

See Storage > RAID > Range > Parameter Description > Table 9 for parameter description.

Sample:

POST /API/StorageConfig/Raid/Set HTTP/1.1
{
    "version": "1.0",
    "data": {
        "disk_info": [
            {
                "No": 0,
                "id": 3,
                "enable": false,
                "check": false,
                "slot_no": "HDD4",
                "disk_model": "TOSHIBA DT01ABA100V",
                "serial_no": "878UUN4MS",
                "total_size": 931,
                "array_name": "-",
                "disk_type": "Normal Disk",
                "button_type": "Add HotDisk"
            }
        ],
        "raid_info": [

        ],
        "about_raid_info": {
            "max_raid_num": 16,
            "raid_type": [
                0,
                1,
                5,
                6,
                10
            ],
            "hotdisk_type": "Global Hot Spare Disk",
            "support_rebuild": "Supported"
        },
        "create_raid": {
            "raid_type": "RAID0",
            "disk_info": [
                {
                    "id": 3,
                    "serial_no": "HDD4-878UUN4MS",
                    "slot_no": 1,
                    "enable": false,
                    "check": false
                }
            ]
        }
    }
}

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Record

Record Configuration

Function

This API is used for get or set Record Configuration page parameters.

URI

POST /API/RecordConfig/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range, Get, Set.

Range

Function

This API is used to get parameter range for Record > Record Configuration page.

Note:

The Range provides reference information for client UI input limits and API request limits. When sending Get and Set requests, the parameters must be strictly limited according to the Range, otherwise the request may be rejected by the device.

Request Message

None.

Sample:

POST /API/RecordConfig/Range HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 1

ParameterRangeTypeDescription
channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…” WIFI_CH1x”
The number of channels depends on the capabilities of the device.
string arrayEach array bit represents a channel with a string.

Table 2

ParameterRangeTypeDescription
channel_infoJSON ObjectChannel Information JSON show as follow Table 3

Table 3

ParameterRangeTypeDescription
CH1Json ObjectJSON show as follow Table 4
Json Object
IP_CH1Json Object
Json Object
WIFI_CH1Json Object
Json Object

Table 4

ParameterRangeTypeDescription
record_switchboolRecord function switch
stream_mode"Mainstream",
"DualStream"
stringStream type, only supports dual stream devices (for NVR/DVR only)
prerecordboolPre-recording switch
manual_recordboolIndicates the status of manual recording
net_break_recordboolNetwork disconnection record switch (for IPC only)
copy_ch"digit",
"analog",
"wifi"
stringSupport channel replication logo(for NVR, DVR only)
schedule_list0-8json arrayIPC recording schedule data (special for IPC POE package for consumer NVR),show as Table 5

Table 5

ParameterRangeTypeDescription
enableboolWhether the current schedule takes effect
start_time0 – 1439(23*60+59)intSchedule start time (minutes relative to 00:00)
end_time0 – 1439(23*60+59)intSchedule end time (minutes relative to 00:00)
weekday"Sunday",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"
arrayIndicates the day of the week when the current schedule takes effect, multiple choices are allowed

Tips:

The response message of the Range request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {
		"channel_max": 16,
		"support_copy": true,
		"channel_info": {
			"type": "object",
			"items": {
				"CH1": {
					"type": "object",
					"items": {
						"record_switch": {
							"type": "bool"
						},
						"stream_mode": {
							"type": "string",
							"items": [
								"Mainstream",
								"DualStream"
							]
						},
						"prerecord": {
							"type": "bool"
						},
						"anr": {
							"type": "bool"
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						}
					}
				},
				"CH2": {
					"type": "object",
					"items": {
						"record_switch": {
							"type": "bool"
						},
						"stream_mode": {
							"type": "string",
							"items": [
								"Mainstream",
								"DualStream"
							]
						},
						"prerecord": {
							"type": "bool"
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						}
					}
				},
				"CH3": {
					"type": "object",
					"items": {
						"record_switch": {
							"type": "bool"
						},
						"stream_mode": {
							"type": "string",
							"items": [
								"Mainstream",
								"DualStream"
							]
						},
						"prerecord": {
							"type": "bool"
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						}
					}
				},
				"CH4": {
					"type": "object",
					"items": {
						"record_switch": {
							"type": "bool"
						},
						"stream_mode": {
							"type": "string",
							"items": [
								"Mainstream",
								"DualStream"
							]
						},
						"prerecord": {
							"type": "bool"
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						}
					}
				},
				"CH5": {
					"type": "object",
					"items": {
						"record_switch": {
							"type": "bool"
						},
						"stream_mode": {
							"type": "string",
							"items": [
								"Mainstream",
								"DualStream"
							]
						},
						"prerecord": {
							"type": "bool"
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						}
					}
				},
				"CH6": {
					"type": "object",
					"items": {
						"record_switch": {
							"type": "bool"
						},
						"stream_mode": {
							"type": "string",
							"items": [
								"Mainstream",
								"DualStream"
							]
						},
						"prerecord": {
							"type": "bool"
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						}
					}
				},
				"CH7": {
					"type": "object",
					"items": {
						"record_switch": {
							"type": "bool"
						},
						"stream_mode": {
							"type": "string",
							"items": [
								"Mainstream",
								"DualStream"
							]
						},
						"prerecord": {
							"type": "bool"
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						}
					}
				},
				"CH8": {
					"type": "object",
					"items": {
						"record_switch": {
							"type": "bool"
						},
						"stream_mode": {
							"type": "string",
							"items": [
								"Mainstream",
								"DualStream"
							]
						},
						"prerecord": {
							"type": "bool"
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						}
					}
				},
				"CH9": {
					"type": "object",
					"items": {
						"record_switch": {
							"type": "bool"
						},
						"stream_mode": {
							"type": "string",
							"items": [
								"Mainstream",
								"DualStream"
							]
						},
						"prerecord": {
							"type": "bool"
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						}
					}
				},
				"CH10": {
					"type": "object",
					"items": {
						"record_switch": {
							"type": "bool"
						},
						"stream_mode": {
							"type": "string",
							"items": [
								"Mainstream",
								"DualStream"
							]
						},
						"prerecord": {
							"type": "bool"
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						}
					}
				},
				"CH11": {
					"type": "object",
					"items": {
						"record_switch": {
							"type": "bool"
						},
						"stream_mode": {
							"type": "string",
							"items": [
								"Mainstream",
								"DualStream"
							]
						},
						"prerecord": {
							"type": "bool"
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						}
					}
				},
				"CH12": {
					"type": "object",
					"items": {
						"record_switch": {
							"type": "bool"
						},
						"stream_mode": {
							"type": "string",
							"items": [
								"Mainstream",
								"DualStream"
							]
						},
						"prerecord": {
							"type": "bool"
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						}
					}
				},
				"CH13": {
					"type": "object",
					"items": {
						"record_switch": {
							"type": "bool"
						},
						"stream_mode": {
							"type": "string",
							"items": [
								"Mainstream",
								"DualStream"
							]
						},
						"prerecord": {
							"type": "bool"
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						}
					}
				},
				"CH14": {
					"type": "object",
					"items": {
						"record_switch": {
							"type": "bool"
						},
						"stream_mode": {
							"type": "string",
							"items": [
								"Mainstream",
								"DualStream"
							]
						},
						"prerecord": {
							"type": "bool"
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						}
					}
				},
				"CH15": {
					"type": "object",
					"items": {
						"record_switch": {
							"type": "bool"
						},
						"stream_mode": {
							"type": "string",
							"items": [
								"Mainstream",
								"DualStream"
							]
						},
						"prerecord": {
							"type": "bool"
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						}
					}
				},
				"CH16": {
					"type": "object",
					"items": {
						"record_switch": {
							"type": "bool"
						},
						"stream_mode": {
							"type": "string",
							"items": [
								"Mainstream",
								"DualStream"
							]
						},
						"prerecord": {
							"type": "bool"
						},
						"copy_ch": {
							"type": "string",
							"items": [
								"digit",
								"analog",
								"wifi",
								"local",
								"all"
							]
						}
					}
				}
			}
		}
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get parameter for Record > Record Configuration page.

Request Message

None.

Sample:

POST /API/RecordConfig/Get HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

See Record > Record Configuration > Parameter Description > Table 2 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {
		"channel_info": {
			"CH1": {
				"record_switch": true,
				"stream_mode": "DualStream",
				"prerecord": true,
				"anr": false,
				"copy_ch": "all"
			},
			"CH2": {
				"record_switch": true,
				"stream_mode": "DualStream",
				"prerecord": true,
				"copy_ch": "all"
			},
			"CH3": {
				"record_switch": true,
				"stream_mode": "DualStream",
				"prerecord": true,
				"copy_ch": "all"
			},
			"CH4": {
				"record_switch": true,
				"stream_mode": "DualStream",
				"prerecord": true,
				"copy_ch": "all"
			},
			"CH5": {
				"record_switch": true,
				"stream_mode": "DualStream",
				"prerecord": true,
				"copy_ch": "all"
			},
			"CH6": {
				"record_switch": true,
				"stream_mode": "DualStream",
				"prerecord": true,
				"copy_ch": "all"
			},
			"CH7": {
				"record_switch": true,
				"stream_mode": "DualStream",
				"prerecord": true,
				"copy_ch": "all"
			},
			"CH8": {
				"record_switch": true,
				"stream_mode": "DualStream",
				"prerecord": true,
				"copy_ch": "all"
			},
			"CH9": {
				"record_switch": true,
				"stream_mode": "DualStream",
				"prerecord": true,
				"copy_ch": "all"
			},
			"CH10": {
				"record_switch": true,
				"stream_mode": "DualStream",
				"prerecord": true,
				"copy_ch": "all"
			},
			"CH11": {
				"record_switch": true,
				"stream_mode": "DualStream",
				"prerecord": true,
				"copy_ch": "all"
			},
			"CH12": {
				"record_switch": true,
				"stream_mode": "DualStream",
				"prerecord": true,
				"copy_ch": "all"
			},
			"CH13": {
				"record_switch": true,
				"stream_mode": "DualStream",
				"prerecord": true,
				"copy_ch": "all"
			},
			"CH14": {
				"record_switch": true,
				"stream_mode": "DualStream",
				"prerecord": true,
				"copy_ch": "all"
			},
			"CH15": {
				"record_switch": true,
				"stream_mode": "DualStream",
				"prerecord": true,
				"copy_ch": "all"
			},
			"CH16": {
				"record_switch": true,
				"stream_mode": "DualStream",
				"prerecord": true,
				"copy_ch": "all"
			}
		}
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set parameter for Record > Record Configuration page.

Request Message

See Record > Record Configuration > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/RecordConfig/Set HTTP/1.1
{
	"version": "1.0",
	"data": {
		"channel_info": {
			"CH1": {
				"record_switch": true,
				"stream_mode": "DualStream",
				"prerecord": true,
				"anr": false,
				"copy_ch": "all",
				"chn_index": "CH1"
			},
			"CH2": {
				"record_switch": true,
				"stream_mode": "DualStream",
				"prerecord": true,
				"copy_ch": "all"
			},
			"CH3": {
				"record_switch": true,
				"stream_mode": "DualStream",
				"prerecord": true,
				"copy_ch": "all",
				"chn_index": "CH3"
			},
			"CH4": {
				"record_switch": true,
				"stream_mode": "DualStream",
				"prerecord": true,
				"copy_ch": "all"
			},
			"CH5": {
				"record_switch": true,
				"stream_mode": "DualStream",
				"prerecord": true,
				"copy_ch": "all"
			},
			"CH6": {
				"record_switch": true,
				"stream_mode": "DualStream",
				"prerecord": true,
				"copy_ch": "all"
			},
			"CH7": {
				"record_switch": true,
				"stream_mode": "DualStream",
				"prerecord": true,
				"copy_ch": "all"
			},
			"CH8": {
				"record_switch": true,
				"stream_mode": "DualStream",
				"prerecord": true,
				"copy_ch": "all"
			},
			"CH9": {
				"record_switch": true,
				"stream_mode": "DualStream",
				"prerecord": true,
				"copy_ch": "all"
			},
			"CH10": {
				"record_switch": true,
				"stream_mode": "DualStream",
				"prerecord": true,
				"copy_ch": "all"
			},
			"CH11": {
				"record_switch": true,
				"stream_mode": "DualStream",
				"prerecord": true,
				"copy_ch": "all"
			},
			"CH12": {
				"record_switch": true,
				"stream_mode": "DualStream",
				"prerecord": true,
				"copy_ch": "all"
			},
			"CH13": {
				"record_switch": true,
				"stream_mode": "DualStream",
				"prerecord": true,
				"copy_ch": "all"
			},
			"CH14": {
				"record_switch": true,
				"stream_mode": "DualStream",
				"prerecord": true,
				"copy_ch": "all"
			},
			"CH15": {
				"record_switch": true,
				"stream_mode": "DualStream",
				"prerecord": true,
				"copy_ch": "all"
			},
			"CH16": {
				"record_switch": true,
				"stream_mode": "DualStream",
				"prerecord": true,
				"copy_ch": "all"
			}
		}
	}
}

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Search Record

Function

This API is used to Search the Search Record page for playback data.

URI

POST /API/Playback/SearchRecord/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Search, Range.

Range

Function

This API is used to obtain the Record > Search Record page playback data range.

Request Message

Sample:

POST /API/Playback/SearchRecord/Range HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 1

ParameterRangeTypeDescription
channelstringChannel number
search_type"Record",
"Picture"
stringSearch type, used to distinguish between searching for videos or pictures
start_datestringVideo file start date
The date format is MM/DD/YYYY
end_datestringVideo file end date
The date format is MM/DD/YYYY
start_timestringVideo file start time
The time format is hh:mm:ss
end_timestringVideo file end time
The time format is hh:mm:ss
record_typeNormalRecord: 0x1,
AlarmRecord: 0x2,
MotionRecord: 0x4,
IORecord: 0x8,
PEARecord: 0x10,
PEALineRecord: 0x10,
AVDRecord: 0x20,
OSCRecord: 0x40,
AllIntelliRec: 0x80,
SensorRecord: 0x100,
PEAAreaRecord: 0x200,
OCCRecord: 0x400,//private zone
NetbreakRecord: 0x800,//netbreak
HDRecord: 0x1000, 4096
FDRecord: 0x2000, 8192
PCCRecord: 0x4000, 16384
MothionAndIo: 0x8000,
PIRRecord: 0x10000,
SoundRecord: 0x20000,
ManualRecord: 0x40000,
SmartRecord: 0x80000,//2018.05.30
OcclusionRecord: 0x100000,//occulusion detection
PersonRecord: 0x200000
FaceAttribute:0x400000
INE_ALL_RECORD: (0x10 | 0x20 | 0x40 | 0x200 |0x1000 | 0x2000 | 0x4000),
AlarmAssemble: 0x7FFFFFFF,//5.0 Use both
AllRecord: 0xFFFFFFFF,
intRecording type (only for NVR)
record_type_exFiredetRecord 0x100000000
MeasureRecord 0x200000000
MeasureRulesRecord 0x400000000
int arrayRecording type extension (for IPC only, since record_type cannot store types exceeding 32 bits, new types exceeding 32 bits are stored here; 12.1.2 Support_record_type_ex: true should also be passed where the device capability is) (Example: pass FiredetRecord: record_type_ex)
record_id0 - 0xFFFFFFFFunsigned intRecord ID
disk_event_id0 - 255unsigned intDisk event ID
size0 - 0x3FFFFFFFintFile size, unit bytes
unfinishedbool

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel": {
            "type": "string",
            "items": [
                "CH1"
            ]
        },
        "search_type": {
            "type": "string",
            "items": [
                "Record",
                "Picture"
            ]
        },
        "start_date": {
            "description": "The date format is MM/DD/YYYY",
            "type": "string",
            "len": 10
        },
        "end_date": {
            "description": "The date format is MM/DD/YYYY",
            "type": "string",
            "len": 10
        },
        "start_time": {
            "description": "The time format is hh:mm:ss",
            "type": "string",
            "len": 8
        },
        "end_time": {
            "description": "The time format is hh:mm:ss",
            "type": "string",
            "len": 8
        },
        "record_type": {
            "type": "uint32",
            "mode": "r",
            "min": 0,
            "max": 4294967295
        },
        "record_type_ex": {
            "type": "array",
            "min_size": 0,
            "max_size": 4,
            "items": []
        },
        "record_id": {
            "type": "uint32",
            "min": 0,
            "max": 4294967295
        },
        "disk_event_id": {
            "type": "int32",
            "min": 0,
            "max": 255
        },
        "size": {
            "type": "uint32",
            "mode": "r",
            "min": 0,
            "max": 2147483647
        },
        "unfinished": {
            "type": "bool",
            "mode": "r"
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Search

Function

This API is used to Search Record > Search Record page playback data.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
channel“CH1”…”CH1x”,
“IP_CH1”…” IP_CH1x”,
“WIFI_CH1”…” WIFI_CH1x”,
The number of channels depends on the capabilities of the device.
string arrayEach array bit represents a channel with a string.
start_datestringSearch startdate.
The date format is MM/DD/YYYY
end_datestringSearch enddate.
The date format is MM/DD/YYYY
start_timestringSearch start time.
The time format is hh:mm:ss
end_timestringSearch end time.
The time format is hh:mm:ss
record_typeintRecode type
record_type_exInt arrayRecord type expansion (bitwise)
stream_mode"Mainstream","Substream"stringStream type (IPC supports only primary streams)
smart_region18Int arrayThe size of the Smart playback filter area is 15 x 22.

Sample:

POST /API/Playback/SearchRecord/Search HTTP/1.1
{
	"version": "1.0",
	"data": {
		"channel": [
			"CH1"
		],
		"start_date": "06/28/2023",
		"start_time": "00:00:00",
		"end_date": "06/28/2023",
		"end_time": "23:59:59",
		"record_type": 4294967295,
		"smart_region": [],
		"enable_smart_search": 0,
		"record_type_ex": [
			4294967295
		],
		"stream_mode": "Substream"
	}
}

Response Message

Parameter Description

Table 2

ParameterRangeTypeDescription
recordJSON arraySingle Channel Record Information JSON show as follow Table3

Table 3

ParameterRangeTypeDescription
channelstringchannel number
stream_mode"Mainstream",
"Substream"
stringStream type (IPC supports only primary streams)
record_typeNormalRecord: 0x1,

AlarmRecord:0x1c06,
IORecord: 0x4,
PIRRecord: 0x400,
SoundRecord: 0x1000,
NetbreakRecord: 0x800,
MotionRecord: 0x2,
MotionAndIo: 0x6,

AllIntelliRec: 0x1c8,
PEARecord: 0x40,
PEALineRecord: 0x8,
HDRecord: 0x80,
FDRecord: 0x100,

PCCRecord: 0x4000,
SmartRecord: 0x80000,//2018.05.30
OcclusionRecord: 0x100000,//occulusion detection INE_ALL_RECORD: (0x10 | 0x20 | 0x40 | 0x200 |0x1000 | 0x2000 | 0x4000)
AlarmAssemble: 0x7FFFFFFF,//5.0 Use both
AllRecord: 0xFFFFFFFF,
PicAllRecord: 0x7FFFF
intRecord Type (for IPC only)
record_type_exFiredetRecord 0x100000000
MeasureRecord 0x200000000
MeasureRulesRecord 0x400000000
int arrayRecording type extension (for IPC only, since record_type cannot store types exceeding 32 bits, new types exceeding 32 bits are stored here; 12.1.2 Support_record_type_ex: true should also be passed where the device capability is) (Example: pass FiredetRecord: record_type_ex[1 ])
record_typeNormalRecord: 0x1, AlarmRecord: 0x2, MotionRecord: 0x4, IORecord: 0x8, PEARecord: 0x10, PEALineRecord: 0x10, AVDRecord: 0x20, OSCRecord: 0x40, AllIntelliRec: 0x80, SensorRecord: 0x100, PEAAreaRecord: 0x200, OCCRecord: 0x400,//private zone NetbreakRecord: 0x800,//netbreak HDRecord: 0x1000, 4096 FDRecord: 0x2000, 8192 PCCRecord: 0x4000, 16384 MothionAndIo: 0x8000, PIRRecord: 0x10000, SoundRecord: 0x20000, ManualRecord: 0x40000, SmartRecord: 0x80000,//2018.05.30 OcclusionRecord: 0x100000,//occulusion detection PersonRecord: 0x200000 FaceAttribute:0x400000 INE_ALL_RECORD: (0x10 | 0x20 | 0x40 | 0x200 |0x1000 | 0x2000 | 0x4000),
AlarmAssemble: 0x7FFFFFFF,//5.0 Use both
AllRecord: 0xFFFFFFFF,
intRecord Type (for NVR only)
start_datestringRecord file startdate.
The date format is MM/DD/YYYY
end_datestringRecord file end date.
The date format is MM/DD/YYYY
start_timestringRecord file start time.
The time format is hh:mm:ss
end_timestringRecord file end time.
The time format is hh:mm:ss
Sizeintfile size, unit byte
record_id0 - 0xFFFFFFFFunsigned int
disk_event_id0 - 0xFFFFFFFFunsigned int

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"version": "1.0",
	"result": "success",
	"data": {
		"record": [
			[
				{
					"channel": "CH1",
					"stream_mode": "Substream",
					"record_type": 8,
					"start_date": "06/28/2023",
					"start_time": "13:02:03",
					"end_date": "06/28/2023",
					"end_time": "13:29:07",
					"record_id": 605,
					"disk_event_id": 0,
					"size": 266215424,
					"lock": false,
					"new_record_type": "IN"
				},
				{
					"channel": "CH1",
					"stream_mode": "Substream",
					"record_type": 8,
					"start_date": "06/28/2023",
					"start_time": "13:29:07",
					"end_date": "06/28/2023",
					"end_time": "13:57:30",
					"record_id": 523,
					"disk_event_id": 0,
					"size": 266240000,
					"lock": false,
					"new_record_type": "IN"
				},
				{
					"channel": "CH1",
					"stream_mode": "Substream",
					"record_type": 8,
					"start_date": "06/28/2023",
					"start_time": "13:57:30",
					"end_date": "06/28/2023",
					"end_time": "14:20:32",
					"record_id": 596,
					"disk_event_id": 0,
					"size": 191094784,
					"lock": false,
					"new_record_type": "IN"
				},
				{
					"channel": "CH1",
					"stream_mode": "Substream",
					"record_type": 2147483647,
					"start_date": "06/28/2023",
					"start_time": "14:20:32",
					"end_date": "06/28/2023",
					"end_time": "14:21:04",
					"record_id": 596,
					"disk_event_id": 1,
					"size": 4653056,
					"lock": false,
					"new_record_type": "IMN"
				},
				{
					"channel": "CH1",
					"stream_mode": "Substream",
					"record_type": 8,
					"start_date": "06/28/2023",
					"start_time": "14:21:04",
					"end_date": "06/28/2023",
					"end_time": "14:22:18",
					"record_id": 596,
					"disk_event_id": 2,
					"size": 10436608,
					"lock": false,
					"new_record_type": "IN"
				},
				{
					"channel": "CH1",
					"stream_mode": "Substream",
					"record_type": 2147483647,
					"start_date": "06/28/2023",
					"start_time": "14:22:18",
					"end_date": "06/28/2023",
					"end_time": "14:22:52",
					"record_id": 596,
					"disk_event_id": 3,
					"size": 4882432,
					"lock": false,
					"new_record_type": "IMN"
				},
				{
					"channel": "CH1",
					"stream_mode": "Substream",
					"record_type": 8,
					"start_date": "06/28/2023",
					"start_time": "14:22:52",
					"end_date": "06/28/2023",
					"end_time": "14:29:31",
					"record_id": 596,
					"disk_event_id": 4,
					"size": 55169024,
					"lock": false,
					"new_record_type": "IN"
				},
				{
					"channel": "CH1",
					"stream_mode": "Substream",
					"record_type": 8,
					"start_date": "06/28/2023",
					"start_time": "14:29:31",
					"end_date": "06/28/2023",
					"end_time": "15:01:37",
					"record_id": 614,
					"disk_event_id": 0,
					"size": 266240000,
					"lock": false,
					"new_record_type": "IN"
				},
				{
					"channel": "CH1",
					"stream_mode": "Substream",
					"record_type": 8,
					"start_date": "06/28/2023",
					"start_time": "15:01:37",
					"end_date": "06/28/2023",
					"end_time": "15:33:44",
					"record_id": 611,
					"disk_event_id": 0,
					"size": 266227712,
					"lock": false,
					"new_record_type": "IN"
				},
				{
					"channel": "CH1",
					"stream_mode": "Substream",
					"record_type": 8,
					"start_date": "06/28/2023",
					"start_time": "15:33:44",
					"end_date": "06/28/2023",
					"end_time": "15:46:07",
					"record_id": 647,
					"disk_event_id": 0,
					"size": 102531072,
					"lock": false,
					"new_record_type": "IN"
				},
				{
					"channel": "CH1",
					"stream_mode": "Substream",
					"record_type": 2147483647,
					"start_date": "06/28/2023",
					"start_time": "15:46:07",
					"end_date": "06/28/2023",
					"end_time": "15:46:39",
					"record_id": 647,
					"disk_event_id": 1,
					"size": 4546560,
					"lock": false,
					"new_record_type": "IMN"
				},
				{
					"channel": "CH1",
					"stream_mode": "Substream",
					"record_type": 8,
					"start_date": "06/28/2023",
					"start_time": "15:46:39",
					"end_date": "06/28/2023",
					"end_time": "15:48:33",
					"record_id": 647,
					"disk_event_id": 2,
					"size": 15785984,
					"lock": false,
					"new_record_type": "IN"
				},
				{
					"channel": "CH1",
					"stream_mode": "Substream",
					"record_type": 2147483647,
					"start_date": "06/28/2023",
					"start_time": "15:48:33",
					"end_date": "06/28/2023",
					"end_time": "15:49:09",
					"record_id": 647,
					"disk_event_id": 3,
					"size": 5074944,
					"lock": false,
					"new_record_type": "IMN"
				},
				{
					"channel": "CH1",
					"stream_mode": "Substream",
					"record_type": 2147483647,
					"start_date": "06/28/2023",
					"start_time": "15:49:09",
					"end_date": "06/28/2023",
					"end_time": "15:50:35",
					"record_id": 647,
					"disk_event_id": 4,
					"size": 12128256,
					"lock": false,
					"new_record_type": "IMN"
				},
				{
					"channel": "CH1",
					"stream_mode": "Substream",
					"record_type": 8,
					"start_date": "06/28/2023",
					"start_time": "15:50:35",
					"end_date": "06/28/2023",
					"end_time": "16:05:47",
					"record_id": 647,
					"disk_event_id": 5,
					"size": 126181376,
					"lock": false,
					"new_record_type": "IN"
				},
				{
					"channel": "CH1",
					"stream_mode": "Substream",
					"record_type": 8,
					"start_date": "06/28/2023",
					"start_time": "16:05:47",
					"end_date": "06/28/2023",
					"end_time": "16:12:53",
					"record_id": 650,
					"disk_event_id": 0,
					"size": 59002880,
					"lock": false,
					"new_record_type": "IN"
				}
			]
		]
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Month Search

Function

This API is used to get month playback data for a specified date.

URI

POST /API/Playback/SearchMonth/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Get.

Get

Function

This API is used to get month playback data for a specified date.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
channel“CH1”…”CH1x”,
“IP_CH1”…” IP_CH1x”,
“WIFI_CH1”…” WIFI_CH1x”,

The number of channels depends on the capabilities of the device
string arrayEach array bit represents a channel with a string.
(An empty array means that all channels are searched)
search_type"Record",
"Picture",
"FD",
"PVD",
"PidLcd",
"Repeat",
"FaceAttendance"
stringMonthly search type
start_datestringSearch startdate.
The date format is MM/DD/YYYY
stream_type"Mainstream",
"Substream"
stringStream type

Sample:

POST /API/Playback/SearchMonth/Get HTTP/1.1
{
	"version": "1.0",
	"data": {
		"channel": [],
		"stream_type": "Substream",
		"start_date": "05/31/2023",
		"search_type": "Record"
	}
}

Response Message

Parameter Description

Table 2

ParameterRangeTypeDescription
is_has_recint array
record_typeint array

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"version": "1.0",
	"result": "success",
	"data": {
		"is_has_rec": [
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0
		],
		"record_type": [
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0
		]
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Pic Playback

Function

This API is used to get image information.

URI

POST /API/Playback/Picture/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including only Get,.

Get

Function

This API is used to get image information.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
channel“CH1”…”CH1x”,
“IP_CH1”…” IP_CH1x”,
“WIFI_CH1”…” WIFI_CH1x”,
The number of channels depends on the capabilities of the device.
string arrayEach array bit represents a channel with a string.
The parameter is passed when you search for the first time. If Internet Explorer already has a list of image information, this field is not passed.
start_datestringSearch startdate.
The date format is MM/DD/YYYY
The parameter is passed when you search for the first time. If Internet Explorer already has a list of image information, this field is not passed.
end_datestringSearch end date.
The date format is MM/DD/YYYY
The parameter is passed when you search for the first time. If Internet Explorer already has a list of image information, this field is not passed.
start_timestringSearch start time.
The time format is hh:mm:ss
The parameter is passed when you search for the first time. If Internet Explorer already has a list of image information, this field is not passed.
end_timestringSearch end time.
The time format is hh:mm:ss
The parameter is passed when you search for the first time. If Internet Explorer already has a list of image information, this field is not passed.
pic_infostringThe first time you search, IE does not have any pic_info information, so this field is not passed. The board does a search and returns all the information to IE. And return the data of the first image to IE.
pic_widthstring
pic_heightstring
pic_sortstring0: Sequence 1: reverse sequence
record_typeNormalRecord: 0x1,
MotionRecord: 0x4,
IORecord: 0x8,
PIRRecord: 0x10000,
ManualRecord: 0x40000
stringIt can be a single search type, or it can be a mixture of many types.
msg_typestringWhen this parameter is requested, the contents of the field are returned as-is.

Sample:

Tips:

Internet Explorer does not have a list of images when you first search. The following is an example of a request message.

POST /API/Playback/Picture/Get HTTP/1.1
{
	"version": "1.0",
	"data": {
		"record_type_ex": [
			4294967295
		],
		"start_date": "06/29/2023",
		"start_time": "00:00:00",
		"end_date": "06/29/2023",
		"end_time": "23:59:59",
		"record_type": 524287,
		"channel": [
			"CH1",
			"CH2",
			"CH3",
			"CH4",
			"CH5",
			"CH6",
			"CH7",
			"CH8",
			"CH9",
			"CH10",
			"CH11",
			"CH12",
			"CH13",
			"CH14",
			"CH15",
			"CH16"
		],
		"pic_sort": 0
	}
}

Tips:

The following is an example of a request message after IE obtains the image information list.

POST /API/Playback/Picture/Get HTTP/1.1
{
	"version": "1.0",
	"data": {
		"pic_info": "AQAAOQAAAABcAgAAAQAAAAAAAAAAAAAAAAQCAB0GFwAA0K4AKGECAEEAAAAAAAAA"
	}
}

Response Message

Parameter Description

Table 2

ParameterRangeTypeDescription
resultbool
overloadboolImages over 5000
msg_typestringWhen this parameter is requested, the contents of the field are returned as-is.
picturejsonReturns an image information and base64 image contents, as shown in Table 3.
all_pic_infostring arrayIf IE does not have the pic_info field, the board searches for the pic_info field and returns it.
all_pic_num0-500intIf IE does not have the pic_info field, the board searches for the pic_info field and returns it.

Table 3

ParameterRangeTypeDescription
channelstring
timestringThe format is yyyy/MM/dd hh:mm:ss.
imagestringPicture content

Sample:

Tips:

Internet Explorer does not have a list of images when you first search. The following is an example of a response message.

HTTP/1.1 200 OK
Content-Type: application/json
{
	"version": "1.0",
	"result": "success",
	"data": {
		"overload": false,
		"all_pic_num": 58,
		"all_pic_info": [
			{
				"pic_info": "AQAAOQAAAABcAgAAAQAAAAAAAAAAAAAAAAQCAB0GFwAA0K4AKGECAEEAAAAAAAAA"
			},
			{
				"pic_info": "AQAAOAEAAABcAgAAAQAAAAAAAAAAAAAAAAQMAB0GFwAAQLEACDgCAEIAAAAAAAAA"
			},
			{
				"pic_info": "AQAANwIAAABcAgAAAQAAAAAAAAAAAAAAAAQWAB0GFwAAgLMAWO0CAEMAAAAAAAAA"
			},
			{
				"pic_info": "AQAANgMAAABcAgAAAQAAAAAAAAAAAAAAAAQgAB0GFwAAcLYA+KoCAEQAAAAAAAAA"
			},
			{
				"pic_info": "AQAANQQAAABcAgAAAQAAAAAAAAAAAAAAAAQqAB0GFwAAILkAsHYCAEUAAAAAAAAA"
			},
			{
				"pic_info": "AQAANAUAAABcAgAAAQAAAAAAAAAAAAAAAAQ0AB0GFwAAoLsAIGQCAEYAAAAAAAAA"
			},
			{
				"pic_info": "AQAAMwYAAABcAgAAAQAAAAAAAAAAAAAAAAQCAR0GFwAAEL4AwM0CAEcAAAAAAAAA"
			},
			{
				"pic_info": "AQAAMgcAAABcAgAAAQAAAAAAAAAAAAAAAAUMAR0GFwAA4MAAoAYDAEgAAAAAAAAA"
			},
			{
				"pic_info": "AQAAMQgAAABcAgAAAQAAAAAAAAAAAAAAAAQWAR0GFwAA8MMA0NECAEkAAAAAAAAA"
			},
			{
				"pic_info": "AQAAMAkAAABcAgAAAQAAAAAAAAAAAAAAAAUgAR0GFwAA0MYA2NYCAEoAAAAAAAAA"
			},
			{
				"pic_info": "AQAALwoAAABcAgAAAQAAAAAAAAAAAAAAAAQqAR0GFwAAsMkAQH8CAEsAAAAAAAAA"
			},
			{
				"pic_info": "AQAALgsAAABcAgAAAQAAAAAAAAAgAAAAQAQ0AR0GFwAAMMwA8E4CAEwAAAAAAAAA"
			},
			{
				"pic_info": "AQAALQwAAABcAgAAAQAAAAAAAAAAAAIAAAQCAh0GFwAAgM4AwD4CAE0AAAAAAAAA"
			},
			{
				"pic_info": "AQAALA0AAABcAgAAAQAAAAAAAAAAAAAgAAUMAh0GFwAAwNAAAGsCAE4AAAAAAAAA"
			},
			{
				"pic_info": "AQAAKw4AAABcAgAAAQAAAAAAAAAAAAAAAAQWAh0GFwAAMNMA4NsCAE8AAAAAAAAA"
			},
			{
				"pic_info": "AQAAKg8AAABcAgAAAQAAAAAAAAABAQEBAwUgAh0GFwAAENYAsJ4CAFAAAAAAAAAA"
			},
			{
				"pic_info": "AQAAKRAAAABcAgAAAQAAAAAAAAAAAAAAAAUqAh0GFwAAsNgAGLICAFEAAAAAAAAA"
			},
			{
				"pic_info": "AQAAKBEAAABcAgAAAQAAAAAAAAAAAAAAAAU0Ah0GFwAAcNsA+IQCAFIAAAAAAAAA"
			},
			{
				"pic_info": "AQAAJxIAAABcAgAAAQAAAAAAAAAAAAAAAAUCAx0GFwAAAN4A2FwCAFMAAAAAAAAA"
			},
			{
				"pic_info": "AQAAJhMAAABcAgAAAQAAAAAAAAAAAAAAAAUMAx0GFwAAYOAA+GMCAFQAAAAAAAAA"
			},
			{
				"pic_info": "AQAAJRQAAABcAgAAAQAAAAAAAAAAAAAAAAUWAx0GFwAA0OIAWPQCAFUAAAAAAAAA"
			},
			{
				"pic_info": "AQAAJBUAAABcAgAAAQAAAAAAAAAAAAAAAAUgAx0GFwAA0OUAELsCAFYAAAAAAAAA"
			},
			{
				"pic_info": "AQAAIxYAAABcAgAAAQAAAAAAAAAAAAAAAAUqAx0GFwAAkOgAeC0CAFcAAAAAAAAA"
			},
			{
				"pic_info": "AQAAIhcAAABcAgAAAQAAAAAAAAAAAAAAAAU0Ax0GFwAAwOoAcFsCAFgAAAAAAAAA"
			},
			{
				"pic_info": "AQAAIRgAAABcAgAAAQAAAAAAAAAAAAAAAAUCBB0GFwAAIO0AmGACAFkAAAAAAAAA"
			},
			{
				"pic_info": "AQAAIBkAAABcAgAAAQAAAAAAAAAAAAAAAAUMBB0GFwAAkO8AQPMCAFoAAAAAAAAA"
			},
			{
				"pic_info": "AQAAHxoAAABcAgAAAQAAAAAAAAAAAAAAAAUWBB0GFwAAkPIAKNQCAFsAAAAAAAAA"
			},
			{
				"pic_info": "AQAAHhsAAABcAgAAAQAAAAAAAAAAAAAAAAUgBB0GFwAAcPUAGGECAFwAAAAAAAAA"
			},
			{
				"pic_info": "AQAAHRwAAABcAgAAAQAAAAAAAAAAAAAAAAUqBB0GFwAA4PcAmHgCAF0AAAAAAAAA"
			},
			{
				"pic_info": "AQAAHB0AAABcAgAAAQAAAAAAAAAAAAAAAAU0BB0GFwAAYPoA6AUDAF4AAAAAAAAA"
			},
			{
				"pic_info": "AQAAGx4AAABcAgAAAQAAAAAAAAAAAAAAAAUCBR0GFwAAcP0AUDQCAF8AAAAAAAAA"
			},
			{
				"pic_info": "AQAAGh8AAABcAgAAAQAAAAAAAAAAAAAAAAUMBR0GFwAAsP8AIGgCAGAAAAAAAAAA"
			},
			{
				"pic_info": "AQAAGSAAAABcAgAAAQAAAAAAAAAAAAAAAAUWBR0GFwAAIAIBmJkCAGEAAAAAAAAA"
			},
			{
				"pic_info": "AQAAGCEAAABcAgAAAQAAAAAAAAAAAAAAAAUgBR0GFwAAwAQBwG8CAGIAAAAAAAAA"
			},
			{
				"pic_info": "AQAAFyIAAABcAgAAAQAAAAAAAAAAAAAAAAUqBR0GFwAAMAcBiCwCAGMAAAAAAAAA"
			},
			{
				"pic_info": "AQAAFiMAAABcAgAAAQAAAAAAAAAAAAAAAAU0BR0GFwAAYAkBCEcCAGQAAAAAAAAA"
			},
			{
				"pic_info": "AQAAFSQAAABcAgAAAQAAAAAAAAAAAAAAAAUCBh0GFwAAsAsB2BQCAGUAAAAAAAAA"
			},
			{
				"pic_info": "AQAAFCUAAABcAgAAAQAAAAAAAAAAAAAAAAUMBh0GFwAA0A0BUPsBAGYAAAAAAAAA"
			},
			{
				"pic_info": "AQAAEyYAAABcAgAAAQAAAAAAAAAAAAAAAAUWBh0GFwAA0A8BkCYCAGcAAAAAAAAA"
			},
			{
				"pic_info": "AQAAEicAAABcAgAAAQAAAAAAAAAAAAAAAAUgBh0GFwAAABIB0A0CAGgAAAAAAAAA"
			},
			{
				"pic_info": "AQAAESgAAABcAgAAAQAAAAAAAAAAAAAAAAUqBh0GFwAAEBQBYAYCAGkAAAAAAAAA"
			},
			{
				"pic_info": "AQAAECkAAABcAgAAAQAAAAAAAAAAAAAAAAU0Bh0GFwAAIBYBUA8CAGoAAAAAAAAA"
			},
			{
				"pic_info": "AQAADyoAAABcAgAAAQAAAAAAAAAAAAAAAAUCBx0GFwAAMBgBcLUBAGsAAAAAAAAA"
			},
			{
				"pic_info": "AQAADisAAABcAgAAAQAAAAAAAAAAAAAAAAUMBx0GFwAA8BkBcPcBAGwAAAAAAAAA"
			},
			{
				"pic_info": "AQAADSwAAABcAgAAAQAAAAAAAAAAAAAAAAUWBx0GFwAA8BsBQPUBAG0AAAAAAAAA"
			},
			{
				"pic_info": "AQAADC0AAABcAgAAAQAAAAAAAAAAAAAAAAQgBx0GFwAA8B0B8OoBAG4AAAAAAAAA"
			},
			{
				"pic_info": "AQAACy4AAABcAgAAAQAAAAAAAAAAAAAAAAQqBx0GFwAA4B8B6O4BAG8AAAAAAAAA"
			},
			{
				"pic_info": "AQAACi8AAABcAgAAAQAAAAAAAAAAAAAAAAQ0Bx0GFwAA0CEB6NYBAHAAAAAAAAAA"
			},
			{
				"pic_info": "AQAACTAAAABcAgAAAQAAAAAAAAAAAAAAAAQCCB0GFwAAsCMB+A8CAHEAAAAAAAAA"
			},
			{
				"pic_info": "AQAACDEAAABcAgAAAQAAAAAAAAAAAAAAAAQMCB0GFwAAwCUBOCMCAHIAAAAAAAAA"
			},
			{
				"pic_info": "AQAABzIAAABcAgAAAQAAAAAAAAAAAAAAAAQWCB0GFwAA8CcBwBkCAHMAAAAAAAAA"
			},
			{
				"pic_info": "AQAABjMAAABcAgAAAQAAAAAAAAAAAAAAAAUgCB0GFwAAECoB8BcCAHQAAAAAAAAA"
			},
			{
				"pic_info": "AQAABTQAAABcAgAAAQAAAAAAAAAAAAAAAAQqCB0GFwAAMCwBoDACAHUAAAAAAAAA"
			},
			{
				"pic_info": "AQAABDUAAABcAgAAAQAAAAAAAAAAAAAAAAQ0CB0GFwAAcC4BUFQCAHYAAAAAAAAA"
			},
			{
				"pic_info": "AQAAAzYAAABcAgAAAQAAAAAAAAAAAAAAAAQCCR0GFwAA0DABqEgCAHcAAAAAAAAA"
			},
			{
				"pic_info": "AQAAAjcAAABcAgAAAQAAAAAAAAAAAAAAAAQMCR0GFwAAIDMBQEsCAHgAAAAAAAAA"
			},
			{
				"pic_info": "AQAAATgAAABcAgAAAQAAAAAAAAAAAAAAAAQWCR0GFwAAcDUB4E8CAHkAAAAAAAAA"
			},
			{
				"pic_info": "AQAAADkAAABcAgAAAQAAAAAAAAAAAAAAAAQgCR0GFwAAwDcBcFICAHoAAAAAAAAA"
			}
		]
	}
}

Tips:

The following is an example of a response message after IE obtains the image information list.

HTTP/1.1 200 OK
Content-Type: application/json
{
	"version": "1.0",
	"result": "success",
	"data": {
		"picture": {
			"channel": "CH1",
			"time": "2023/06/29 00:02:04",
			"image": "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"
		}
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Playback Page

Function

This API is used to get Playback page parameters.

URI

POST /API/Playback/PlaybackPage/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including only Range.

Range

Function

This API is used to get parameter range for Record > Playback Page page.

Request Message

None.

Sample:

POST API/Playback/PlaybackPage/Range HTTP/1.1
{
	"version": "1.0"
}

Response Message

Parameter Description

Table 1

ParameterRangeTypeDescription
FaceAttendancejson objectShow as followTable2
NormalJson objectShow as followTable3
PictureJson objectShow as followTable3
HumanVehicleJson objectShow as followTable3
PidLcdJson objectShow as followTable3
supportFaceAttrJson objectAI playback page with face attributes of the control.
param_limitJson objectShow as followTable3

Table 2

ParameterRangeTypeDescription
off_duty_timestringThe time format is “hh:mm:ss”
on_duty_timestringThe time format is “hh:mm:ss”
working_days"Sun",
"Mon",
"Tue",
"Wed",
"Thu",
"Fri",
"Sat"
string arrayworkday

Table 3

ParameterRangeTypeDescription
display_mode“Treelike”,
“Checkbox”
intUI display type
default_sort_of_resultsintSearch information in default or reverse order.
itemsintShow as followTable4
similarity_faceintControl the range and default value of the IE playback Face Detection similarity input box.
similarity_customerintControl the Fault-tolerant input field and the default value of the IE playback License Plate.
similarity_licenseintThe range and default value of the similarity input box controlling the IE playback of Repeat customer.

Table 4

ParameterRangeTypeDescription
record_typeJson objectPlayback Type
Show as followTable5
stream_mode“Mainstream”,
“Substream”
stringPrimary substream type (Normal only has this field)

Table 5

ParameterRangeTypeDescription
normalboolnormal
manualboolmanual
alarmJson objectShow as followTable6 (For IPC only)
smartJson objectShow as followTable7 (For IPC only)
HumanboolAI Human (For NVR only)
VehicleboolAI Vehicle (For NVR only)
IOboolIO alarm record type (For NVR only)
motionboolMotion alarm record type (For NVR only)
PIRboolPir (For NVR only)
SoundboolAudible alarm (For NVR only)
occulusionboolLens blocked (For NVR only)
Intelligentboolintelligent analysis (For NVR only)
PIDboolAI perimeter intrusion (For NVR only)
LCDboolAI Overline detection (For NVR only)
faceAttrboolFace attribute (For NVR only)

Table 6

ParameterRangeTypeDescription
IOJson objectIO alarm record type
motionJson objectMotion alarm record type
PIRJson objectPir
SoundJson objectAudible alarm
NetbreakJson objectdisconnected record

Table 7

ParameterRangeTypeDescription
PIDbool
LCDbool
SODbool
PDbool
FDbool
CCbool
intrusionbool
regionEntrancebool
regionExitingbool

Tips:

The response message of the Range request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"version": "1.0",
	"result": "success",
	"data": {
		"Normal": {
			"type": "object",
			"items": {
				"record_type": {
					"type": "object",
					"items": {
						"normal": {
							"type": "bool"
						},
						"event": {
							"type": "object",
							"items": {
								"manual": {
									"type": "bool"
								},
								"IO": {
									"type": "bool"
								},
								"motion": {
									"type": "bool"
								},
								"Sound": {
									"type": "bool"
								},
								"occulusion": {
									"type": "bool"
								}
							}
						},
						"ai": {
							"type": "object",
							"items": {
								"fd": {
									"type": "bool"
								},
								"pd&vd": {
									"type": "bool"
								},
								"pid": {
									"type": "bool"
								},
								"lcd": {
									"type": "bool"
								},
								"sod": {
									"type": "bool"
								},
								"cc": {
									"type": "bool"
								},
								"cd": {
									"type": "bool"
								},
								"qd": {
									"type": "bool"
								},
								"intrusion": {
									"type": "bool"
								},
								"regionEntrance": {
									"type": "bool"
								},
								"regionExiting": {
									"type": "bool"
								},
								"lpd": {
									"type": "bool"
								},
								"rsd": {
									"type": "bool"
								},
								"thermal": {
									"type": "bool"
								},
								"faceAttr": {
									"type": "bool"
								}
							}
						}
					}
				},
				"stream_mode": {
					"type": "string",
					"mode": "r",
					"items": [
						"Mainstream",
						"Substream"
					],
					"default_value": "Substream"
				}
			},
			"display_mode": "Treelike",
			"recordColorArr": [
				{
					"normal": 1
				},
				{
					"motion": 4
				},
				{
					"IO": 8
				},
				{
					"PIR": 65536
				},
				{
					"ai": 128
				},
				{
					"alarm": 2
				},
				{
					"manual": 16384
				}
			]
		},
		"Smart": {
			"type": "object",
			"items": {
				"record_type": {
					"type": "object",
					"items": {
						"normal": {
							"type": "bool"
						},
						"event": {
							"type": "object",
							"items": {
								"manual": {
									"type": "bool"
								},
								"IO": {
									"type": "bool"
								},
								"motion": {
									"type": "bool"
								},
								"Sound": {
									"type": "bool"
								},
								"occulusion": {
									"type": "bool"
								}
							}
						},
						"ai": {
							"type": "object",
							"items": {
								"fd": {
									"type": "bool"
								},
								"pd&vd": {
									"type": "bool"
								},
								"pid": {
									"type": "bool"
								},
								"lcd": {
									"type": "bool"
								},
								"sod": {
									"type": "bool"
								},
								"cc": {
									"type": "bool"
								},
								"cd": {
									"type": "bool"
								},
								"qd": {
									"type": "bool"
								},
								"intrusion": {
									"type": "bool"
								},
								"regionEntrance": {
									"type": "bool"
								},
								"regionExiting": {
									"type": "bool"
								},
								"lpd": {
									"type": "bool"
								},
								"rsd": {
									"type": "bool"
								},
								"thermal": {
									"type": "bool"
								},
								"faceAttr": {
									"type": "bool"
								}
							}
						}
					}
				},
				"stream_mode": {
					"type": "string",
					"items": [
						"Mainstream",
						"Substream"
					]
				}
			},
			"display_mode": "Treelike"
		},
		"Picture": {
			"type": "object",
			"items": {
				"record_type": {
					"type": "object",
					"items": {
						"normal": {
							"type": "bool"
						},
						"event": {
							"type": "object",
							"items": {
								"manual": {
									"type": "bool"
								},
								"motion": {
									"type": "bool"
								},
								"IO": {
									"type": "bool"
								},
								"PIR": {
									"type": "bool"
								}
							}
						}
					}
				}
			},
			"display_mode": "Treelike",
			"default_sort_of_results": 0
		},
		"HumanVehicle": {
			"type": "object",
			"items": {
				"record_type": {
					"type": "object",
					"items": {
						"Human": {
							"type": "bool"
						},
						"Vehicle": {
							"type": "bool"
						},
						"Non-Vehicle": {
							"type": "bool"
						}
					}
				}
			},
			"display_mode": "Checkbox"
		},
		"PidLcd": {
			"type": "object",
			"items": {
				"record_type": {
					"type": "object",
					"items": {
						"pid": {
							"type": "bool"
						},
						"lcd": {
							"type": "bool"
						}
					}
				}
			},
			"display_mode": "Checkbox"
		},
		"LicensePlate": {
			"type": "object",
			"items": {
				"plate_keys": {
					"type": "string",
					"min_len": 1,
					"max_len": 16
				},
				"max_error_char": {
					"type": "int32",
					"min": 0,
					"max": 5,
					"default_value": 3
				}
			}
		},
		"supportFaceAttr": true,
		"FaceAttendance": {
			"working_days": [
				"Mon.",
				"Tue.",
				"Wed.",
				"Thu.",
				"Fri."
			],
			"on_duty_time": "08:30:00",
			"off_duty_time": "17:30:00"
		},
		"param_limit": {
			"type": "object",
			"items": {
				"similarity_face": {
					"type": "int32",
					"mode": "rw",
					"min": 0,
					"max": 100,
					"default_value": 70
				},
				"similarity_customer": {
					"type": "int32",
					"mode": "rw",
					"min": 0,
					"max": 100,
					"default_value": 50
				},
				"similarity_license": {
					"type": "int32",
					"mode": "rw",
					"min": 0,
					"max": 5,
					"default_value": 3
				}
			}
		}
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Record Tag

Function

This API is used to get or add a Record Tag.

URI

POST  /API/Playback/Tag/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range, Get, Set.

Range

Function

This API is used to get parameter range for Record > Record Tag page.

Note:

The Range provides reference information for client UI input limits and API request limits. When sending Get and Set requests, the parameters must be strictly limited according to the Range, otherwise the request may be rejected by the device.

Request Message

None.

Sample:

POST API/Playback/Tag/Range HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 1 (Search Request JSON)

ParameterRangeTypeDescription
channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…” WIFI_CH1x”
The number of channels depends on the capabilities of the device.
string arrayEach array bit represents a channel with a string.
start_datestringSearch startdate.
The date format is MM/DD/YYYY
end_datestringSearch end date.
The date format is MM/DD/YYYY
start_timestringSearch start time.
The time format is hh:mm:ss
end_timestringSearch start time.
The time format is hh:mm:ss
Keyword0-39stringWhen you search for tags, you only search for tags that contain keywords

Table 2 (Response Information JSON)

ParameterRangeTypeDescription
Pre-playstringStart playing the video with the label time forward ("5s")("10s")("30s")("1Min")("2Min")("5Min")("10Min").
Post-playstringPlay the recording at the end of the tag time ("5s")("10s")("30s")("1Min")("2Min")("5Min")("10Min").
all_tag_infojsonshow as follow Table 3
all_tag_num0-5000intHow many matching tags are found.

Table 3 (all_tag_info Information JSON)

ParameterRangeTypeDescription
Tag_datestringThe date format is MM/DD/YYYY.
Tag_timestringThe time format is hh:mm:ss.
channelstringThe channel to which the label belongs.
chNumintChannel number
label_idintTag ID
record_idintRecord ID
Tag_name0-39stringTag name

Table 4 (Add Tag Information JSON)

ParameterRangeTypeDescription
Tag_datestringThe date format is MM/DD/YYYY.
Tag_timestringThe time format is hh:mm:ss.
channelstring arrayThe channel to which the label belongs.
chNumintChannel number
label_idintTag ID
record_idintRecord ID
Tag_name0-39stringTag name
operate0-2int0- Set, 1- Delete, 2- Change the name

Tips:

The response message of the Range request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"version": "1.0",
	"result": "success",
	"data": {
		"start_date": {
			"description": "The date format is MM/DD/YYYY",
			"type": "string",
			"len": 10
		},
		"end_date": {
			"description": "The date format is MM/DD/YYYY",
			"type": "string",
			"len": 10
		},
		"start_time": {
			"description": "The time format is hh:mm:ss",
			"type": "string",
			"len": 8
		},
		"end_time": {
			"description": "The time format is hh:mm:ss",
			"type": "string",
			"len": 8
		},
		"Keyword": {
			"type": "string",
			"min_len": 0,
			"max_len": 20
		},
		"all_tag_num": {
			"type": "int32",
			"min": 0,
			"max": 5000
		},
		"all_tag_info": {
			"type": "array",
			"min_size": 0,
			"max_size": 5000,
			"items": []
		},
		"Pre-play": {
			"type": "string",
			"items": [
				"5s",
				"10s",
				"30s",
				"1Min",
				"2Min",
				"5Min",
				"10Min"
			]
		},
		"Post-play": {
			"type": "string",
			"items": [
				"5s",
				"10s",
				"30s",
				"1Min",
				"2Min",
				"5Min",
				"10Min"
			]
		},
		"date": "06/29/2023",
		"time": "13:19:40",
		"Tag_name": {
			"default": "Tag",
			"type": "string",
			"mode": "rw",
			"min_len": 1,
			"max_len": 39
		},
		"tag": {
			"type": "object",
			"items": {
				"channel": {
					"type": "string",
					"items": [
						"CH1",
						"CH2",
						"CH3",
						"CH4",
						"CH5",
						"CH6",
						"CH7",
						"CH8",
						"CH9",
						"CH10",
						"CH11",
						"CH12",
						"CH13",
						"CH14",
						"CH15",
						"CH16"
					]
				}
			}
		}
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get parameter for Record > Record Tag page.

Request Message

See Record > Record Tag > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/Playback/Tag/Get HTTP/1.1
{
	"version": "1.0",
	"data": {
		"start_date": "06/29/2023",
		"start_time": "00:00:00",
		"end_date": "06/29/2023",
		"end_time": "23:59:59",
		"channel": [
			"CH1",
			"CH2",
			"CH3",
			"CH4",
			"CH5",
			"CH6",
			"CH7",
			"CH8",
			"CH9",
			"CH10",
			"CH11",
			"CH12",
			"CH13",
			"CH14",
			"CH15",
			"CH16"
		],
		"Keyword": ""
	}
}

Response Message

See Record > Record Tag > Parameter Description > Table 2 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"version": "1.0",
	"result": "success",
	"data": {
		"Pre-play": "30s",
		"Post-play": "30s",
		"all_tag_num": 1,
		"all_tag_info": [
			{
				"tag_info": {
					"Tag_date": "06/29/2023",
					"Tag_time": "13:19:40",
					"channel": "CH1",
					"chNum": 0,
					"label_id": 0,
					"record_id": 0,
					"Tag_name": "Tag1"
				}
			}
		]
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set parameter for Record > Record Tag page.

Request Message

See Record > Record Tag > Parameter Description > Table 4 for parameter description.

Sample:

POST /API/Playback/Tag/Set HTTP/1.1
{
	"version": "1.0",
	"data": {
		"Tag_name": "Tag1",
		"Tag_date": "06/29/2023",
		"Tag_time": "13:19:40",
		"label_id": 0,
		"record_id": 0,
		"operate": 0,
		"channel": [
			"CH1"
		]
	}
}

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"result": "success",
	"version": "1.0",
	"data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Playback rtsp url

Function

This API is used to play playback videos.

URI

Video playback uses the Rtsp protocol, and the url format is as follows:

Back-end Devices (NVR/DVR)

rtsp://ip:port/rtsp/playback?channel=1&subtype=0&starttime=2021-03-24T01:30:00Z&endtime=2021-03-24T07:30:59Z&localtime=true

Front-end Equipment (IPC)

327DE platform

rtsp://ip:port/rtsp/playback?channel=1&subtype=0&starttime=2021-03-24T01:30:00Z&endtime=2021-03-24T07:30:59Z

Other platforms

rtsp://ip:port/cam/playback?channel=1&starttime=2021-03-24T01:30:00Z&endtime=2021-03-24T07:30:59Z

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRangeTypeDescription
channelintChannel, starting at 1
subtype0: primary stream,
1: substream
intStream type
starttimestringPlay start time
endtimestringPlayback end time
localtimetrue: use the local time.
false: use the UTC time
boolWhether to use local time (do not include this field, do not use UTC time)
(note: this field is currently only supported by the back-end, front-end IPC does not support it)

Maintenance

Auto Reboot

Function

This API contains get and set to get auto restart page parameters.

URI

POST  /API/Maintenance/AutoReboot/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range,Get,Set.

Range

Function

This API is used to get the auto restart page parameter range.

Request Message

None.

Sample:

POST /API/Maintenance/AutoReboot/Range HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 1
ParameterRangeTypeDescription
auto_rebootboolAuto restart switch.Automatic maintenance switch..
period_mode"EveryDay",
"EveryWeek",
"EveryMonth"
stringThe model of the maintenance cycle.
week"Mon",
"Tue",
"Wed",
"Thu",
"Fri",
"Sat",
"Sun"
stringWeekdays of the week.(When MaintainPeriod is Week)
day1~31intDay of months.(When MaintainPeriod is Month)
timestringRestart time.Format: hours : minutes(Each digit must be written with two digits)

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "auto_reboot": {
            "type": "bool"
        },
        "period_mode": {
            "type": "string",
            "items": [
                "EveryDay",
                "EveryWeek",
                "EveryMonth"
            ]
        },
        "week": {
            "type": "string",
            "items": [
                "Mon",
                "Tue",
                "Wed",
                "Thu",
                "Fri",
                "Sat",
                "Sun"
            ]
        },
        "day": {
            "type": "int32",
            "min": 1,
            "max": 31
        },
        "time": {
            "type": "string",
            "min_len": 0,
            "max_len": 5
        },
        "secondary_authentication": {
            "type": "string",
            "min_len": 0,
            "max_len": 16
        },
        "show_tips": false
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get auto restart page parameters.

Request Message

None.

Sample:

POST /API/Maintenance/AutoReboot/Get HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

See Maintenance > Auto Reboot > Range > parameter description > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "auto_reboot": true,
        "period_mode": "EveryWeek",
        "week": "Sun",
        "time": "00:00"
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set auto restart page parameters.

Request Message

See Maintenance > Auto Reboot > Range > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/Maintenance/AutoReboot/Set HTTP/1.1
{
    "version":"1.0",
    "data":
    {
        "auto_reboot":false,
        "period_mode":"EveryWeek",
        "time":"00:00",
        "week":"Sun"
    }
}

Response Message

None.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

DefoggingFan

Function

This API is used for getting fan switch information and set fan switch.

URI

POST /API/Maintenance/DefoggingFan/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range, Get, Set.

Range

Range

Function

This API is used to get fan switch information range.

Request Message

None.

Sample:

POST /API/Maintenance/DefoggingFan/Range HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 1
ParameterRangeTypeDescription
defogging_fanboolDefogging Fan switch.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "defogging_fan":{
            "type": "bool"
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get fan switch information.

Request Message

None.

Sample:

POST /API/Maintenance/DefoggingFan/Get HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

See System > DefoggingFan > Range > Parameter Description > Table 1 for Parameter Description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "defogging_fan": true
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set fan switch.

Request Message

See System > DefoggingFan > Range > Parameter Description > Table 1 for Parameter Description.

Sample:

POST /API/Maintenance/DefoggingFan/Set HTTP/1.1
{
    "version": "1.0",
    "data": {
        "defogging_fan": true
    }
}

Response Message

None.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

DeveloperMode

Function

This API is used to get and set developer page parameters, clear and export log files.

URI

POST /API/Maintenance/DeveloperMode/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including
Range,
Get,
Set,
Clear,
Token,
Download.

Range

Function

This API is used to get the parameter range of the developer mode page.

Note:

The Range provides reference information for client UI input limits and API request limits. When sending Get and Set requests, the parameters must be strictly limited according to the Range, otherwise the request may be rejected by the device.

Request Message

None.

Sample:

POST /API/Maintenance/DeveloperMode/Range HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 1
ParameterRangeTypeDescription
telnet_switchboolTelnet switch.(Supported by 8.2.3 and earlier versions)
ssh_switchboolTelnet switch. (Version support after 8.2.3)
export_disk_switch"Shut Off", "Output To Terminal", "Output To Disk"stringPrint the log output location.
enable_exportboolWhether to show the export button.
enable_deleteboolWhether to show delete button.
support_ipc_log_exportboolWhether to show export IPC log button. NVR and IPC parameters
search_log_enableboolWhether to display the six elements export button, IPC parameters
support_ipc_log_packboolWhether to display the Pack Now button, IPC parameters
log_collect_tips"Server Address example:"
"protocol://hostname[:port]/path"
"ftp://192.168.1.100:23/device/log"
stringExample ftp path, IPC parameters
download_type"IPC_Local"stringDownload type, IPC parameters
support_ipc_log_deleteboolWhether to show delete IPC log button.
export_days"all","1","2","3","4","5"stringNumber of days to export logs.
channel_infoobjectObject members see Table 2.
Table 2
ParameterRangeTypeDescription
channel"CH1"…"CHx",
"IP_CH1"…"IP_CHx"
objectChannel object, see Table 3 for object members.
Table 3
ParameterRangeTypeDescription
log_collect_enableboolWhether log collection is enabled. NVR and IPC parameters
support_logcollectionboolWhether to support log collection.
log_collect_mode"NVR"
"SD_Card"
"FTP"
stringLog collection mode. IPC parameter
remote_serverJson ObjectObject member See also Table 4。IPC parameter
Table 4
ParameterRangeTypeDescription
usernamemaxlength 63 bytestringFTP user name
passwordmaxlength 63 bytestringFTP password
password_emptyboolWhether the password is empty
server_addressmaxlength 127 bytestringFTP address

Tips:

The response message of the Range request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "ssh_switch": {
            "type": "bool",
            "mode": "rw"
        },
        "export_disk_switch": {
            "type": "string",
            "mode": "rw",
            "items": [
                "Shut Off",
                "Output To Terminal",
                "Output To Disk"
            ]
        },
        "enable_export": {"type": "bool"},
        "enable_delete": {"type": "bool"},
        "support_ipc_log_export": {"type": "bool"},
        "support_ipc_log_delete": {"type": "bool"},
        "channel_info": {
            "type": "object",
            "items": {
                "CH1": {
                    "type": "object",
                    "items": {
                        "log_collect_enable": {"type": "bool"},
                        "support_logcollection": {"type": "bool"}
                    }
                },
                ...
                "CH16": {
                    "type": "object",
                    "items": {
                        "log_collect_enable": {"type": "bool"},
                        "support_logcollection": {"type": "bool"}
                    }
                }
            }
        },
        "export_days": {
            "type": "string",
            "mode": "rw",
            "items": [
                "all",
                "1",
                "2",
                "3",
                "4",
                "5"
            ]
        },
        "default_timeout": 1200000
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get the developer mode page parameters.

Request Message

None.

Sample:

POST /API/Maintenance/DeveloperMode/Get HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

See Maintenance > DeveloperMode > Range > Parameter Description > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "ssh_switch": false,
        "export_disk_switch": "Shut Off",
        "enable_export": true,
        "enable_delete": true,
        "support_ipc_log_export": true,
        "support_ipc_log_delete": true,
        "channel_info": {
            "CH1": {
                "log_collect_enable": true,
                "support_logcollection": false
            }, 
            ...
            "CH16": {
                "log_collect_enable": false,
                "support_logcollection": false
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set the Developer Mode configuration.

Request Message

See Maintenance > DeveloperMode > Range > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/Maintenance/DeveloperMode/Set HTTP/1.1
{
    "version":"1.0",
    "data":{
        "ssh_switch":false,
        "export_disk_switch":"Shut Off"
    }
}

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Clear

Function

This API is used to clear configuration file which in disk.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
base_secondary_authenticationobjectEncrypted information for authentication. See base_secondary_authentication information table for structure members details.
delete_type"NVR_Ipc", "NVR_Local"stringClear log type, default is NVR log.
"NVR_Ipc": the ipc log stored on the NVR.
"NVR_Local": NVR log.

Sample:

POST /API/Maintenance/DeveloperMode/Clear HTTP/1.1
{
    "version": "1.0",
    "data": {
        "base_secondary_authentication": {
            "seq": 1,
            "cipher": "CowFtnYJVzraDlE+OngLJfGaS7FXFjy6zXkILkSzB3A="
        },
        "delete_type": "NVR_Ipc"
    }
}

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Download

Function

This API is used to download configuration file.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
x-download-tokenstring
x-csrftokenstring

Sample:

POST /API/Maintenance/DeveloperMode/Download HTTP/1.1
X-csrftoken: 2c6efa5ea9342a52d607e2c17ea2abbeda339a2bb0cc257308fa57121412c9e4
x-download-token: f31b3914b5e4ea99052abf69ad117570

Response Message

None.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json

Error Code

See Response Messages Body and Common error_code for more information.

Token

Function

This API is used to get Token.

Request Message

Table 1
ParameterRangeTypeDescription
base_secondary_authenticationobjectEncrypted information for authentication. See base_secondary_authentication information table for structure members details.
export_days"all","1","2","3","4","5"stringNumber of days to export logs, which must be brought when exporting IPC logs.
download_type"NVR_Ipc", "NVR_Local"stringDownload log type, default is NVR log.
"NVR_Ipc": the ipc log stored on the NVR.
"NVR_Local": NVR log.
channel"CH1"…"CHx",
"IP_CH1"…"IP_CHx"
string arrayThe channel that needs to export IPC logs.

Sample:

POST  /API/Maintenance/DeveloperMode/Token HTTP/1.1
{
    "version": "1.0",
    "data": {
        "base_secondary_authentication": {
            "seq": 3,
            "cipher": "egLU4qef8erLd7RAfoYZ6q8pxe3EFYruonZhuceK4Pk="
        },
        "channel": [
            "CH1",
            "CH2",
            "CH3",
            "CH4",
            "CH5",
            "CH6",
            "CH7",
            "CH8",
            "CH9",
            "CH10",
            "CH11",
            "CH12",
            "CH13",
            "CH14",
            "CH15",
            "CH16"
        ],
        "export_days": "all",
        "download_type": "NVR_Ipc"
    }
}

Response Message

Parameter Description

Table 1
ParameterRangeTypeDescription
x-download-tokenstringin the message header.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "version": "1.0"
}

Error Code

See Response Messages Body and Common error_code for more information.

DeviceReboot

Function

This API is used for rebooting device API.

URI

POST  /API/Maintenance/DeviceReboot/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Set.

Set

Function

This API is used to reboot device.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
For the structure ofbase_secondary_authenticationobject

Sample:

POST /API/Maintenance/DeviceReboot/Set HTTP/1.1
{
    "version":"1.0",
    "data":
    {
        "cipher" : "0bjEvTI4Lr8jsytAHx8bSXPNk7cuvIFYGCQjIUH2S/sVPnNQO",
        "seq": 0
    }
}

Response Message

None.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

DeviceShutdown

Function

This API is used for device shutdown.

URI

POST /API/Maintenance/DeviceShutdown/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Set.

Set

Function

This API is used to device shutdown.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
base_secondary_authenticationobjectEncrypted information for authentication. See base_secondary_authentication information table for structure members details.

Sample:

POST /API/Maintenance/DeveloperMode/Clear HTTP/1.1
{
    "version": "1.0",
    "data": {
        "base_secondary_authentication":{
            "seq":2,
            "cipher":"FWRsfpB05p/NfdTleipoBR1d06/dZA2xO8cDJiF4CYM="
        }
    }
}

Response Message

None.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

FtpUpgrade

Function

This API contains APIs for obtaining online upgrade parameters, setting update parameters, checking for updates, performing upgrades, and obtaining upgrade progress.

URI

POST /API/Maintenance/FtpUpgrade/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including
Range,
Get,
Set,
Check,
Upgrade,
Progress.

Range

Function

This API is used to obtain the online upgrade parameter range.

Note:

The Range provides reference information for client UI input limits and API request limits. When sending Get and Set requests, the parameters must be strictly limited according to the Range, otherwise the request may be rejected by the device.

Request Message

None.

Sample:

POST /API/Maintenance/FtpUpgrade/Range HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 1
ParameterRangeTypeDescription
ftp_addrmin_len:0, max_len":64stringServer address.
ftp_portmin:1, max:65535intServer port.
usernamemin_len:0, max_len:64stringUsername.
user_pwdmin_len:0, max_len:32stringLogin password.
user_pwd_emptyboolWhether the password is empty.
online_upgrade_tipsstringRequest server URL sample.
ftp_pathmin_len:0, max_len:128stringftp upgrade file path.
ftp_buttons"Save","Refresh","Check","Upgrade"string arrayNames of the buttons in the button group.
online_upgradeboolIt is used for the compatibility of old and new APIs, and judges whether to use the function interface of FTP and HTTP online upgrade.
check_for_updatesboolWhether to check for updates.
cur_versionlen:0-64stringCurrent version number.
new_versionlen:0-64stringNew version number.
info_file_urlobjectSpecial for IPC, returns encrypted upgrade URL, please refer to Table 2.
Table 2
parameterrangetypedescription
cipherstringencrypted URL (use /API/Maintenance/FtpUpgrade/Get to send the secret key encryption), using base64 for transmission.
seq0-1000000intreturn /API/Maintenance/FtpUpgrade/Get seq sent by API .
keystringThe X25519 key encrypted by IPC, using base64 for transmission.

Tips:

The response message of the Range request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "ftp_addr": {
            "type": "string",
            "min_len": 0,
            "max_len": 64
        },
        "ftp_port": {
            "type": "int32",
            "mode": "r",
            "min": 1,
            "max": 65535,
            "default_value": 21
        },
        "username": {
            "type": "string",
            "min_len": 0,
            "max_len": 24
        },
        "user_pwd": {
            "type": "string",
            "min_len": 0,
            "max_len": 24
        },
        "user_pwd_empty": {
            "type": "bool"
        },
        "online_upgrade_tips": {
            "type": "string",
            "items": [
                "Server Address example:",
                "protocol://hostname[:port]/path",
                "ftp://192.168.1.100:23/device/upgradePackage",
                "http(s)://192.168.1.100:80/device/upgradePackage"
            ]
        },
        "support_onlineupgrade_edit": true,
        "ftp_path": {
            "type": "string",
            "min_len": 0,
            "max_len": 62
        },
        "online_upgrade": {
            "type": "bool"
        },
        "check_for_updates": {
            "type": "bool"
        },
        "cur_version": {
            "type": "string",
            "min_len": 0,
            "max_len": 64
        },
        "new_version": {
            "type": "string",
            "min_len": 0,
            "max_len": 64
        },
        "ftp_buttons": {
            "description": "Used to control whether the button is displayed!",
            "type": "string",
            "items": [
                "Save",
                "Refresh",
                "Check",
                "Upgrade"
            ]
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to obtain online upgrade parameters.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
url_keyobjectThe public key used to encrypt the url, see Table 2 for more information.
(NVR docking IPC online upgrade to obtain a complete encrypted url)
Table 2
ParameterRangeTypeDescription
seq0-1000000intThe seq returned using the Request pubkey or randbyte API.
peer_keylen:0-1024stringThe X25519 public key encrypted by the client, Use base64 transfer.
typestringPeer key type.

Sample 1. Obtain NVR online upgrade parameters:

POST /API/Maintenance/FtpUpgrade/Get HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Sample 2. Obtain IPC online upgrade URL :

POST /API/Maintenance/FtpUpgrade/Get HTTP/1.1
{
    "version": "1.0",
    "data": {
        "url_key": {
            "type": "base_x_public",
            "peer_key": "0uegOWQD2zcee4hnx4hFDN1bmul9ETG2uzX9ndpfo5nk=",
            "seq": 0
        }
    }
}

Response Message

See Maintenance > FtpUpgrade > Range > Parameter Description > Table 1 for parameter description.

Sample 1. Obtain NVR online upgrade parameters:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "ftp_addr": "ftp://192.168.1.100:23/device/upgradePackage",
        "ftp_port": 21,
        "username": "admin",
        "user_pwd_empty": false,
        "ftp_path": "ftp://192.168.1.100:23/device/upgradePackage",
        "check_for_updates": true,
        "online_upgrade": true,
        "Upgrade_button": false
    }
}

Sample 2. Obtain IPC Online Upgrade URL:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
    "username": "",
    "user_pwd_empty": true,
    "user_pwd": "",
    "ftp_path": "",
    "check_for_updates": false,
    "online_upgrade": true,
    "info_file_url": {
        "cipher": "02Lq9t9GQcIrf3wl8bB1Z45Hn9kSOe33yVKyVvunOa0xbiAxnkMW5DLhgJA1LVWUf",
        "seq": 0,
        "key": "0vZ71jO5s8+QKEAkhFByWDFh0YWrvPx2t8RDq9TbGolk="
    }
}
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set upgrade configuration.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
ftp_addrmin_len:0;max_len":64stringFtp address.
ftp_portmin:1;max:65535int
usernamemin_len:0;max_len:64stringUsername.
user_pwdmin_len:0;max_len:32stringpassword.
user_pwd_emptyboolWhether the password is empty.
ftp_pathmin_len:0;max_len:128stringFtp upgrade file path.
check_for_updatesboolWhether to check for updates.
base_enc_passwordobjectencrypted authentication information, see base_secondary_authentication information table for detailed information .

Sample:

POST /API/Maintenance/FtpUpgrade/Set HTTP/1.1
{
    "version":"1.0",
    "data":
    {
        "ftp_addr":"",
        "ftp_port":21,
        "username":"admin",
        "user_pwd_empty":true,
        "ftp_path":"ftp://192.168.1.100:23/device/upgradePackage",
        "check_for_updates":true,
        "online_upgrade":true,
        "Upgrade_button":false,
        "base_enc_password":
        {
            "seq":0,
            "peer_key":"0rD95mGwiZznl34bejOzwEOK+PZZZnOeLoKzw794TmSM=","cipher":"05XviOTKBMiUlzS5IL8P9CWATcxELsON78EdFHbpQ9qSA1umq"
        }
    }
}

Response Message

None.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Check

Function

This API is used to check for upgrade.

Request Message

None.

Sample:

POST /API/Maintenance/FtpUpgrade/Check HTTP/1.1
{
    "version":"1.0",
    "data":{}
}

Response Message

Parameter Description

Table 1
ParameterRangeTypeDescription
has_new_firmwareboolWhether has a new upgrade firmware.
current_verstringCurrent version.
new_versionstringNew version.
Upgrade_buttonboolWhether the update button can be clicked.
lang_strsstringUpdate package tips.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "Upgrade_button": true,
        "lang_strs": {},
        "has_new_firmware": true,
        "cur_version": "",
        "new_version": ""
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Progress

Function

This API is used to get upgrade progress.

Request Message

None.

Sample:

POST /API/Maintenance/FtpUpgrade/Progress HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 1
ParameterRangeTypeDescription
upgrade_percent0~100intProgress of upgrade processing.
upgrade_state"start",
"checkVersion",
"downloadStart",
"upgrade_download",
"upgrade_upgrade_succeed",
"downloadFailure",
"upgrade_upgrading"
stringUpgrade state.
upgrade_result"ok",
"finish"
stringUpgrade result.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "upgrade_percent": 100,
        "upgrade_state": "upgrade_upgrade_succeed",
        "upgrade_result": "ok"
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Upgrade

Function

This API is used for online upgrades.

Request Message

None.

Sample:

POST /API/Maintenance/FtpUpgrade/Upgrade HTTP/1.1
{
    "version":"1.0",
    "data":{
    }
}

Response Message

None.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data":{}
}

Error Code

See Response Messages Body and Common error_code for more information.

Import/Export Parameter

Function

This API is used for Importing and exporting configuration files.

URI

POST /API/Maintenance/ParamManagement/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Get,Set.

Get

Function

This API is used to export configuration files.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
base_secondary_authenticationobjectSee base_secondary_authentication information table for structure members details.

Sample:

POST /API/Maintenance/ParamManagement/Get HTTP/1.1
{
    "version":"1.0",
    "data":
    {
        "base_secondary_authentication":
        {
            "seq":1,
            "cipher":"EvATuCptX+3MBm+BWmKDpHBem0u4YmH4Z7Mf0Jk2gig="
        }
    }
}

Response Message

Parameter Description

Table 2
ParameterRangeTypeDescription
paramstringBase64,if no device is requested, there is no need to reply to this item.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "param":"kB9be+toauFV21fneBk45GHN018JxEmKIhq0l5CspWmS......HO/mHhE79z3w8XkDD+mzgvxNCMr40/Dq"
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to import and exporting configuration files.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
base_secondary_authenticationobjectSee Login > Request pubkey or randbyte > EncryptObjectTable > Table 4 for parameter description.
paramstringBase64

Sample:

POST /API/Maintenance/ParamManagement/Set HTTP/1.1
{
    "version":"1.0",
    "data":
    {
        "param":"kB9be+toauFV21fneBk45GHN018JxEmKIhq0l5CspWmS......HO/mHhE79z3w8XkDD+mzgvxNCMr40/Dq",
        "base_secondary_authentication":
        {
            "seq":2,
            "cipher":"GJF4i4o7nYahUGO16n8sqrMbGhx+NH7B6ehhxRVjOOs="
        }
    }
}

Response Message

Parameter Description

Table 1
ParameterRangeTypeDescription
state"Success",
"Failed"
stringStatus of the IPC.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "state": "Success"
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

FtpIpcUpgrade

Function

This API is used for getting IPC ftp update parameters,setting IPC ftp update parameters、Check for IPC upgrade, IPC ftp upgrade and get IPC update progress.

URI

POST /API/IPCMaintaint/FtpIpcUpgrade/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including
Range,
Get,
Set,
Check,
Upgrade,
Progress.

Range

Function

This API is used to get range of IPC ftp update parameters.

Note:

The Range provides reference information for client UI input limits and API request limits. When sending Get and Set requests, the parameters must be strictly limited according to the Range, otherwise the request may be rejected by the device.

Request Message

None.

Sample:

POST /API/IPCMaintaint/FtpIpcUpgrade/Range HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 1
ParameterRangeTypeDescription
channel_maxintThe maximum number of accessable channels.
online_upgradeboolA new interface to judge whether to use FTP or HTTP to upgrade IPC online.
ftp_auto_upgradeboolFtp auto upgrade IPC switch.
check_for_updatesboolFtp automatic upgrade IPC check prompt.
upgrade_resultlen:0-32stringUpdate result.
ftp_buttons"Save","Refresh","Check","Upgrade"string arrayFtp button group button name.
check_chnssize:0-16int arrayCheck the updated IPC index.
channel_infoobjectTotal channel information object, see Table 2 for details.
Table 2
ParameterRangeTypeDescription
CH1objectA channel information object, see Table 3 for details.
...object
IP_CH1object
...object
WIFI_CH1object
...object
Table 3
ParameterRangeTypeDescription
sup_ftp_auto_upgradeboolWhether the IPC supports automatic upgrade.
ftp_ipc_new_verboolWhether there is a new version of IPC.

Tips:

The response message of the Range request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_max": 16,
        "online_upgrade": {
            "type": "bool"
        },
        "ftp_auto_upgrade": {
            "type": "bool"
        },
        "check_for_updates": {
            "type": "bool"
        },
        "upgrade_result": {
            "type": "string",
            "min_len": 0,
            "max_len": 32
        },
        "ftp_buttons": {
            "description": "Used to control whether the button is displayed!",
            "type": "string",
            "items": [
                "Save",
                "Refresh",
                "Check",
                "Upgrade"
            ]
        },
        "check_chns": {
            "type": "array",
            "min_size": 0,
            "max_size": 16,
            "items": []
        },
        "channel_info": {
            "type": "object",
            "items": {
                "CH8": {
                    "type": "object",
                    "items": {
                        "sup_ftp_auto_upgrade": {
                            "type": "bool"
                        },
                        "ftp_ipc_new_ver": {
                            "type": "bool"
                        }
                    }
                },
                "CH11": {
                    "type": "object",
                    "items": {
                        "sup_ftp_auto_upgrade": {
                            "type": "bool"
                        },
                        "ftp_ipc_new_ver": {
                            "type": "bool"
                        }
                    }
                },
                "CH15": {
                    "type": "object",
                    "items": {
                        "sup_ftp_auto_upgrade": {
                            "type": "bool"
                        },
                        "ftp_ipc_new_ver": {
                            "type": "bool"
                        }
                    }
                },
                "CH16": {
                    "type": "object",
                    "items": {
                        "sup_ftp_auto_upgrade": {
                            "type": "bool"
                        },
                        "ftp_ipc_new_ver": {
                            "type": "bool"
                        }
                    }
                }
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get IPC ftp update parameters.

Request Message

None.

Sample:

POST /API/IPCMaintaint/FtpIpcUpgrade/Get HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 1
ParameterRangeTypeDescription
ftp_auto_upgradeboolftp auto upgrade IPC switch.
check_for_updatesboolftp automatic upgrade IPC prompt switch.
online_upgradeboolA new interface for judging whether to use FTP or HTTP to upgrade IPC online.
channel_infoobjectTotal channel information object, see Table 2 for details.
Table 2
ParameterRangeTypeDescription
CH1objectA channel information object, see Table 3 for details.
...object
IP_CH1object
...object
WIFI_CH1object
...object
Table 3
ParameterRangeTypeDescription
sup_ftp_auto_upgradeboolWhether the channel IPC supports automatic upgrade.
ftp_ipc_new_verboolWhether there is a new version of channel IPC.
upgrade_resultlen:0-32stringupdate result.

Tips:

The response message of the Get request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "online_upgrade": true,
        "ftp_auto_upgrade": false,
        "check_for_updates": false,
        "channel_info": {
            "CH3": {
                "reason": "Not support"
            },
            "CH7": {
                "reason": "Not support"
            },
            "CH8": {
                "sup_ftp_auto_upgrade": true,
                "upgrade_result": "cannot_upgrade",
                "ftp_ipc_new_ver": false
            },
            "CH10": {
                "reason": "Not support"
            },
            "CH11": {
                "sup_ftp_auto_upgrade": false
            },
            "CH14": {
                "reason": "Not support"
            },
            "CH15": {
                "sup_ftp_auto_upgrade": true,
                "upgrade_result": "cannot_upgrade",
                "ftp_ipc_new_ver": false
            },
            "CH16": {
                "sup_ftp_auto_upgrade": true,
                "upgrade_result": "",
                "ftp_ipc_new_ver": false
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set IPC ftp update parameters.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
ftp_auto_upgradeboolFtp auto upgrade IPC switch.
check_for_updatesboolFtp automatic upgrade IPC prompt switch.
online_upgradeboolA new interface for judging whether to use FTP or HTTP to upgrade IPC online.
channel_infoobjectTotal channel information object, see Table 2 for detailed information.
Table 2
ParameterRangeTypeDescription
CH1objectA channel information object, see Table 3 for details.
...object
IP_CH1object
...object
WIFI_CH1object
...object
Table 3
ParameterRangeTypeDescription
sup_ftp_auto_upgradeboolWhether the IPC supports automatic upgrade.
ftp_ipc_new_verboolWhether there is a new version of IPC.
upgrade_resultlen:0-32stringupgrade result.
reasonstringThe reason why IPC cannot obtain information.

Tips:

The response message of the Set request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

POST /API/IPCMaintaint/FtpIpcUpgrade/Set HTTP/1.1
{
    "version":"1.0",
    "data":{
        "online_upgrade":true,
        "ftp_auto_upgrade":false,
        "check_for_updates":false,
        "channel_info":{
            "CH3":{
                "reason":"Not support"
            },
            "CH7":{
                "reason":"Not support"
            },
            "CH8":{
                "sup_ftp_auto_upgrade":true,
                "upgrade_result":"cannot_upgrade",
                "ftp_ipc_new_ver":false
            },
            "CH10":{
                "reason":"Not support"
            },
            "CH11":{
                "sup_ftp_auto_upgrade":false
            },
            "CH14":{
                "reason":"Not support"
            },
            "CH15":{
                "sup_ftp_auto_upgrade":true,
                "upgrade_result":"cannot_upgrade",
                "ftp_ipc_new_ver":false
            },
            "CH16":{
                "sup_ftp_auto_upgrade":true,
                "upgrade_result":"",
                "ftp_ipc_new_ver":false
            }
        }
    }
}

Response Message

None.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Check

Function

This API is used to check for IPC upgrade.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
check_chnsstring arrayThe IPC that needs to be detected.

Sample:

POST /API/IPCMaintaint/FtpIpcUpgrade/Check HTTP/1.1
{
    "version":"1.0",
    "data":{
        "check_chns":[
            "CH8",
            "CH15",
            "CH16"
        ]
    }
}

Response Message

None.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Progress

Function

This API is used to get IPC update progress.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
upgrade_chnsstring arrayNeed to upgrade the IPCs.

Sample:

POST /API/Maintenance/FtpUpgrade/Progress HTTP/1.1
{
    "version": "1.0",
    "data": {
        "upgrade_chns":[
            "CH8",
            "CH15",
            "CH16"
        ]
    }
}

Response Message

Parameter Description

Table 2
ParameterRangeTypeDescription
cur_ipcstring arrayCurrently upgrading IPC.
upgrade_percentintFTP download IPC upgrade file progress.
upgrade_statestringFTP upgrade IPC status, see Maintenance > IPCMaintenance > IPCUpgrade_Code .
upgrade_resultstringFTP upgrade IPC result, see Maintenance > IPCMaintenance > IPCUpgrade_Code .

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "cur_ipc": [],
        "upgrade_percent": 100,
        "upgrade_state": "upgrade_upgrade_succeed",
        "upgrade_result": "ok"
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Upgrade

Function

This API is used to IPC ftp upgrade.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
upgrade_chnsstring arrayIPCs that need to be upgraded.

Sample:

POST /API/IPCMaintaint/FtpIpcUpgrade/Upgrade HTTP/1.1
{
    "version":"1.0",
    "data":{
        "upgrade_chns":[
            "CH8",
            "CH15",
            "CH16"
        ]
    }
}

Response Message

None.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

IPCParamManagement

Function

This API is used for getting IPC parameters for System > IPC Camera Maintain > Param Management page and import or export IPC configuration files.

URI

POST /API/IPCMaintaint/IPCParamManagement/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Get,Import,Export, Range.

Export

Function

This API is used to export IPC configuration files.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
channel_infoobjectTotal channel information object, see Table 2 for details.
base_secondary_authenticationobjectencrypted authentication object, see base_secondary_authentication information table for details information.
Table 2
ParameterRangeTypeDescription
CH1objectA channel information object, see Table 3 for details.
...object
IP_CH1object
...object
WIFI_CH1object
...object
Table 3
ParameterRangeTypeDescription
ImportExportSwitchboolParameter export and import switch. (This field is only used for IPC parameter export and import)

Sample:

POST /API/IPCMaintaint/IPCParamManagement/Export HTTP/1.1
{
    "version":"1.0",
    "data":
    {
        "base_secondary_authentication":
        {
            "seq":2,
            "cipher":"7RUcFX+UNep/faAvjE9k+ZcEwSl7WKIy2AS9YzDmRE8="
        },
        "channel_info":
        {
            "CH16":
            {
                "ImportExportSwitch":true
            }
        }
    }
}

Response Message

Parameter Description

Table 4
ParameterRangeTypeDescription
channel_infoobjectTotal channel information object, see Table 5 for details.
Table 5
ParameterRangeTypeDescription
CH1objectA channel information object, see Table 6 for details.
...object
IP_CH1object
...object
WIFI_CH1object
...object
Table 6
ParameterRangeTypeDescription
paramstringBase64.
state"Success",
"Failed"
stringOperation status of IPC.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_info": {
            "CH16": {
                "param": "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",
                "state": "Success"
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get IPC parameters for System > IPC Camera Maintain > Param Management page.

Request Message

None.

Sample:

POST /API/IPCMaintaint/IPCParamManagement/Get HTTP/1.1
{
    "version":"1.0",
    "data":
    {
    }
}

Response Message

Parameter Description

Table 1
ParameterRangeTypeDescription
channel_infoobjectTotal channel information object, see Table 2 for details.
Table 2
ParameterRangeTypeDescription
CH1objectA channel information object, see Table 3 for details.
...object
IP_CH1object
...object
WIFI_CH1object
...object
Table 3
ParameterRangeTypeDescription
ip_addressMax length:63stringIP address/domain name.
status"Offline","Online"stringIPC status.
software_versionMax length: 40stringFirmware version.
file_typeMax length: 64stringUpgrade file extension.
reasonstringThe reason why IPC cannot obtain information.

Tips:

The response message of the Get request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_info": {
            "CH1": {
                "reason": "Not configured"
            },
            "CH2": {
                "reason": "Not configured"
            },
            "CH3": {
                "reason": "Not configured"
            },
            "CH4": {
                "reason": "Not configured"
            },
            "CH5": {
                "reason": "Not configured"
            },
            "CH6": {
                "reason": "Not configured"
            },
            "CH7": {
                "reason": "Not configured"
            },
            "CH8": {
                "reason": "Not configured"
            },
            "CH9": {
                "reason": "Not configured"
            },
            "CH10": {
                "reason": "Not configured"
            },
            "CH11": {
                "reason": "Not configured"
            },
            "CH12": {
                "reason": "Not configured"
            },
            "CH13": {
                "reason": "Not configured"
            },
            "CH14": {
                "status": "Online",
                "ip_address": "172.16.11.201",
                "software_version": "V21.45.8.2.2_220705"
            },
            "CH15": {
                "reason": "Not configured"
            },
            "CH16": {
                "status": "Online",
                "ip_address": "172.16.11.162",
                "software_version": "V45.85.8.2.3_230620"
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Import

Function

This API is used to NVR import IPC configuration files.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
channel_infoobjectTotal channel information object, see Table 2 for details.
base_secondary_authenticationobjectencrypted authentication object, see base_secondary_authentication information table for details information.
Table 2
ParameterRangeTypeDescription
CH1objectA channel information object, see Table 3 for details.
...object
IP_CH1object
...object
WIFI_CH1object
...object
Table 3
ParameterRangeTypeDescription
ImportExportSwitchboolParameter export and import switch. (This field is only used for IPC parameter export and import)
paramstringBase64 (this field is only used when importing parameters)

Sample:

POST /API/IPCMaintaint/IPCParamManagement/Import HTTP/1.1
{
    "version":"1.0",
    "data":
    {
        "base_secondary_authentication":
        {
            "seq":2,
            "cipher":"7RUcFX+UNep/faAvjE9k+ZcEwSl7WKIy2AS9YzDmRE8="
        },
        "channel_info":
        {
            "CH16":
            {
                "ImportExportSwitch":true,
                "param": "qhEAAPkVAAAEAAAAORkAAElwY0V4cG9ydFBhcmFtAAAAAAAAAAAAAAAAAAAAAAAAL7s2H6TeV41deejHERf/HLkNAu+C6PAx0k1YU7HNduNJUENOVDk4NTI4X003NjhNAAAAAAAAAAAIZgQA/SMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACrAyBimRDV6zq3jtt83K2UfrIOQJfgvUTQIJvpIWuVTNH1TemcUVkibFQypQXEKlqxQAxTGULr48FS4aKLn0+0RQVDllsXEX4K9zwk4nMc+TCxgJgNXbHXHL6JvjAJPuE10CLbLV2XlZuL0ydGzwuGmgfdofw2tv1j3yr5Yj1QJG+k/7cIdZ34SYPn66oCPwwbqBw5EG6b5mOBoFowv80peWMUOQXDsHDYmVv7pQ976GF7GwIOtt4kj3Te3fWrYDggutytHaUm2/59whxESXjw31RlcjGFhSiLtkPjI1FZo7vSSoX/Kc4FyKxISn91vO9pbTZuAFCFJJTv78tCgzu+HOZjVYmqGPH7AEFQ45D8rxNNELoR62mxkJFmUPNCQ7D94+UL8M++Z8QrUVps78vU9yqbZfUft1MPnR+1LdK1ec6aNyxJFiH1N7WZDH/ywGszVEnhftepdeMm0vH0626d3Uh5qF+rhS7aY9ZCjn7CxsUPwi/6Ql5pdVeLKDFYYps7jzxc/x72k57hD66dkhG8KF0iEUlp2RXjTwk0hxjrD5hQ4nqjvL7QWmSTF8eh8APevTu1K8HTElHAXKaG9pOqZw5vssGZsuamfyaNLHPoZiMk9EEugRlMn94UBp9zUCZVRHfgOfLRdp0R9kX87zMRpqCOX45uNSAgFBFIdI4r9y3RrJ7UDVWdaFWb/kegsJpz1KTkCZKp49O5AyiqMk4lo63fT8YAuAIM/SyPVE2wuiiN//n64cVF2AlCvZ5xqUyPbwM1Otq1VhkvkShotoqyeAHhdsZOxUhcjNcpU5IcELEIoZg3y90JzkRdSV7CI/F7UKBSH/HQDKNbJ+OisEG0DFpeGmEuc5hQ5wWLETQrcyOHjEa37aE+BptHZ6grFxQ+O96tnems6MMBBYSXlQ2ZsfgE6/g9SfhJ7+k1eddQPRSEY8jSyqpcjgxENt8VXJKpsxQT44GHLGW1X30pF48jA+zsVTum6Z10ouxq0KVMwCY1sD6EXbmoaSiXk6TUg9dN9GRv7X41xSklL+Tza3xgN3oGt/NSQK16zFY+WZwSoLgCWRwt6l5wI6N9I3xUQg6HFur+HV11QNH5obKKHLkT68BmFFyCU8Bi2V5sIBf8QH7Qeht8YguhkNNKX53Q77kKTZ7XTP1ceAH3yA3TT+1xWCI5RQAdLIhvcmerP8ILRJI//SgeCo/BjxXlh36T2Spf/UAzqrOBkQL4WrHz9NEYfXsTvODr8VvYC+xHkzZqt2uz+lqCksdj3Di8I8Qp34Hcm9etCodQgotFaECCkFyYml8tZB19aPLr2f43zGFoqYMoUTpadtRl42eKIqtZi5l0XwL1gDpHdTFmfHxsyDsmWEev5ODXhCXbkUld5TQxGJfuYwXt3tuLFiAGUVb+avGuR3EAsvrEn+9ixkDtxG4diIPRp6zYlz0AlNgn9UqQp/B+kYURXsZxbJL+gbUUlKAsEVV8mby6yVRvMsbC3pWOEHsPzIV5A9rN0lbw2MG9eDD3k4nP1SSbqq11pFaSsdxa+xQSlFS0on5JR/LhRG570SDQfvYOTFyV1qnv0spc3ei+OHj3NiueLUsGoa4I/zPpkW/JVgh8uIy+sIVqcfljfnhvbaCQRXw+NB/MRBrQvAkuWOeT31S1+GWHlYHvRVgw02TU8ZD73NZPO+nvmJ2aDT2FeguVBv+0SnbZx6YUS+RRlTBM8iQjh3r/T/36VzdqErz6SvVZk7HAG9kzsvWfe9WuLKgqRmIfZvcbiiCBTMEL3mQhyhmyBmPJDkk8zFjkILREVvszi3AVOmm0ObVTGzrBTXJldSb/tibonqA210IBKSWol+F/nvmKVPYryxpZfO4i8oC1eYFCA9W+wsTfAwP6xcIKwtaLZDYfejZaW+Gu/vhuZsNhYrIYo9oasWGwKY1KFPoIqTCLPiZiZtEkJEJCe043RKp4BlVZlcHIH/XG1XhyBmiMa1ElTZPcVMVVevHk2tOggV329WmKk1I0wf2wIY5vPOEH5BDA9ILNACU59kHeqJJtU9srg5WYWDtpRPPtcxm6Ea+UIOQhMMOTfc0bzQPh/BuI2W/FbmoZnXt72AjFTuxOzQhCy3LDd+Ey6qQVUkQ4kpITCHEawxFqeZrakK8ZTEyUSdB2lyRlHegSreiSk6Sh4aok2Uv/XJKv6val8Gu6QXZzydmfHKu22RvYXWl5elZh0CtCpF16LM1+3SIc/9taVayxMR4T56cBIhxaLjQDhyOFVpWUgCxAOzE0odaQdXh1OJOKbIIAZ3WK/Is4hT202m0XopY13qtOLuZaQVIPKFo+ct3Qp6xXbj6Mu53fCSDkXtNUXXt1yGxRzNB8Es2AbtVxG3o9/TYIKsLFaRhdkYY2sdNcY+15AiknasgcrPLWKgrxJsTRqMFAzg3k/o+HvONjBWqA9GJZJjnJgzS9XeGsKDPBqwVWGhSajDrnBZoYqO6h1ScBWXN7KamDl3WOUvdEPtttIjgP8OZxoLsugn7WpfpI+5PPEAwueGN5QsmZvBoj2gIoxlRsxLkh7pPiDNEKgDSR6rK9pK40MY8RZa+ie8Si1SC54BhoxL51+k6LPIkn/EaQNu7f57T2WFTxQsTRxFjOuDmPakpvk3uamny6KM/t5HW3jFGvdImLQc3z7jz9X9NSIgINbDsla/fhxrdFP0a53yvVF/CTkU8kOOxWe5wBakZR9A5Xkoco3IxRPQ/RjTIEhdbrbEY24OP9NC0stBtcXxZc0HA9VHv+GN+2I4kImrs31xIVgitzr/Znuciyv+lYK1dGE1OXQgPnjxq6W68n6BOe1i4eqvz/Pe/YduxCS3WfUwD/i4wLbDluLnXGZG0DQA7QwHdMTReBhjZIm7Uf/YrmA447oBcBf3Oecf5Lhyg/zsPMxVRikOPVqo7RVXzV9FB00NFJV6/fgE8pBCSOM+1eiB8KO8x7eZchz6Dnk+CIyoNV5nE5mS8jwz/zU4/gD7kHciE45U3ODm6fj3LlM+BQg4xBvKqrxgbMlTdyrmrL8y5dyc6RU0eXCKQlxKH7rt04D6HMwn7t16ZtVdGNfsr2jhscEP0vKAUB+VYGwvH8O3Rp7fo6UlKxUzjyGH67G5t3zrOzX+QB5aWp/xivrdcRB6p7o/DqkQZWTbew+Tm7XAp8zhSKdm/rT9V9wPOF7Z30lAJCefii76BFjQGNorPzUiu/pF/AISWT+0td3FqKxmvfosggSJv+HknbwOYsMiRidpQB+arzeABOLqAm+cElREUuE+/aShNdkKv50EexfU5H9nEA9P6qbmj8PKeXFkR7++H1huxqikTGdD3foUHo7blVphTHKLSVX1HNy9f5FBOslZQg6zQ/79cF5eK1sDr/Eu7mAJF3lc35H5cV4yc0GP7Zpb9xJcThNfu+9StCmFsZiv6ZsnjG/5g9SJbmFVZIx0FdmBaTimVaxsGEvS8p+n04/y8+cp67K6L/hFZXf8i5DAHtugzMhS8dL70sqTdf4UB94x4zPv28cUDBhCYI4lzdJN0mX5mCfj3E3DOybGO4gv4TT/G6uXIEEkiGEN1tvXmlXqTBGTcSiLUkjSkBjCkj6iG+HB37HqDdWcgIDZNQ2yvwXO9DDPJig77vu1/PolbHIaKx51vrYfNZkMWXrAl+r8wLSu+ztmL6GvN5YMcbUMwdRMV75oQB1GAEN+fpccXcMTz8SH7hZOet70EyGX7FUhogbtsEcO7D4xXQ/X74MpkIto8LOIRryQgVWIQ+Hw4bLASLFQC3U22iabYpMHzm2Vk7ECFFjhdEmiWZrpsZYfvZvPQ1Pmhvd1cMLUyU5qNgbUm1Hr+zwiqez/o6n2EDpYwzFgU2k8vRDHjE+ktjY0xNGpyIaFZXzObvZV349Mo6H3Cb66TZKVV2bYALme3RHmsxpkVGH3c5RISDOm8NA6XdtIUzCjxBwpN+EHrqwVRNBEzdVoZyC4jbYMQHbzpSOrDkZPG4NCcJNghCiucAxMO74o8N+d0rm67+js3FHeVX+6VijoCguZH8Wh/8ltu58/5gexfRpPfhG2YlxzxXETMdmiCS/az8R/Z7HqTZ3Cn7nbi0H4xmVp9L4gJWGNBntNfXe7BoqPZ2BwvFKC/9IR29buQ0DkFtgGnVi4z/uuzdG5yqFJW5EF3hZxtz+hBt97B/QWPPsqnWfBQGkbnAwueRuG9RNBudZvTtgz1q1Qtulfo6z9KDYjvHXsf2Xbi3SSCgbaNmHAMA9e31NzPZ5ReDVVn/Frp7So0n6/VHIRLJO7c6SIn2wF61/xCgMtC3BAL25GnVNfFwl6oI21/xa8tFYLkDLlJU0RgSIH1XQJgekSTMQpac9jw4mhbo3qsTKBRsVig4QyBX1bmJRxJeS5c+A+goR1+QhGo7R0aZ2QL9rTR39SYREMbSm3nlqZ8K3hM/sXFIOkePh35Dc/Sr4EUk07NiHeNofXy1poujskX52VUA4ewtCPSYVZSfi96qHG3sEI3XOTs4EpI0xZtAJEAQRE3mMpsWgy3MUWTIvvqyiq4SDv6jGv7EAHDpxHSNnPmHjld3dEedDsePF994nqWCO6wG/r0NJFZXB06j9H9JMm83IrsukrXSoSoF+7waBwUN5w79ttZ6ehVJDkOQOYi4oEKJ5ENGisInoMQQ/TVx7xvteGYsOdkJUtQchyi85DMGcj0lx3WjysxrX46qME83hU9kSvjMTvEThfdf68hxQV26ZdaXvE4SGdMFIMPeRI3qOMpt65zlSmy+GG5mIPrKmwGn0MOfBm/bs/tlCKBkbUL4G+arMviBXC+9DQJa28F8Subq2uTR8MwQu2W1WkHUQRhUF64yzw6Wbk05OR3TAVIWn5R2XEt1FRooF6TofnEPmfL7ycvabm8Fn7ZacEvnzUk7Arn1GuEKIe7BS/oed9uHxFr4BM15ai7b0r3ezCk+Q2LOOfJp8KjSBb5ndtEIXVTXbzCce+EhwYdBsVl5c2K4qNbxDZerV4Z8V1P1xTIcHACMAfY3PIZjUDnqG8nG3q+FoQttmkDjjsdHfRc6M1VQ3l8ep75r8jvp06CELCBiR6PTeUNVDpECNyyXopJs62pYaO3Ez/R5OVDPSSIyLEIpTs9GBK8CQqRMRZytAncqf7b1ipcozxvK6QEeMnIgYRRHRClMprSDOAk+rjmp7/9J2fefnY3M2/YDFSvJnzEmrtLsbgL6AnLtc+wuB8tjtdldI4cl23Qms+vIiDra7idF2rTejNKxVOyhHIMiSROxuXXyGxETFFdxrZ7nI2bWrOqzvLf9M59yqw1RapPeG+s9PyRmyAuafbU6/t3wvCzLMpriwKh3IkAxOlewq/+Vb/KyPrjswB9LKcpOyPtogXyzWBT2MJi9S6fQ2rN/wtw+duTROI2Wdv3bO/iZdII/JsfGkekrm2YDZPFpwQzJdKPROwgaV/s0VXcg2dgYewv6G/aAS0LErcKfG+cb8mJw34gt24+GACC3ppueWmATcTlpqxtY6S+c+cm38mFPL2ThmeFtx6ONFSEeYsjxeocAR0K+F6DAEy6gCHdFdz51BmhYn7dmU0zo00KrNaVrC56L967BIQQlq6uR097i1XRlnnWB/GVIDuMU0dSx5tUPuw4ULWx/zonb0Im/LbrYxkk3RJ/JikXA8vmH2/rQQkf5Ui/1pHgcelPn2JZynNs8lc94ZAR1SkQfnfFZTkDugPekwasEdjc0BfUFdjevLBEd5upSZWZrGEBc9KFTheQLxqE87MKP/8G5wWm6U7UjPM9pCxTa9YMYSCbn7+S0P++jVsBf0bSXXkLYdE+u8WMPEuMKUxjUvWMizlXHxPC9cjIVZv1l46tL+v6FGURZPbMSr0YG/tW3jluKeIzPNxA+SnAgn/t/Y6TDhzRK3FC4daYs2lD/pG4zykmFhAsWmiwo5v4YAOgyZ/FNwNx71WhhNyiRABrkHSGVil8bsVZOBwnEXgbWYnS+ombXI5JNG3IBEfU5cQve2IgRpI9saeCr9Ggnz0YEjI2QTG/SQmr0NE+LY1V2ZpYSlUhhQSLf1ujUdcteYVCLvkOM6dPejQlY33+XIs5Y5U3ldsxDyksMHRah40bCgCFgBp0R7moyvHMeVDMjA4ruw8BUA2jxwPJlC5QYkmtLINoAqCYhYV/p39+ZtbYLWjVtTWd6LF5HIUsCBHPu/9RDKK2NVR/jOQw2UNOkCHeSbjuBXlwB1TcBfCT5+mofBYYZX/tncGZ5k2yTUvsZlzpjDpZY3cNt8l8kZY7rV3AXTNbP3yI/RPzjAPrjmaNM4rUgxHwGa+zZQ7CR7/PwXcc83dnV99X/PKqcXPjOkcw1duqy/qt2IcjUx0U4uOMHJtvU1eOWnpuWiD51+r/+wlOX77RUEziMs6d9CMkVEKhLqMB+42MUq8mZ5+z5taRrCa+10KVU9TSSJygayf+sncw6aqF3orPTOhA3rKfOkoBYQ3Rb1t1Ajrw5W1fMwqJabJCWfCTEHwMWTQJyybRqMwaMVvuXhKJnfzKnAco0x3ImY/AQX2dps68pjkyUG2fylV5Izjw+EsZ+bkmSCo3M4t4BfkHiU5hZRuOob1Pfqqv+eHpySCbl/t4GUy7AK1cxhTakG5DKS/2As8+uTvQFDcFP0hICBwj3su6p/HSAg62KQjJ361sV04CefIcY3luUMRlwXKOI3jUa9j/86FhZ/NLaUVk3qI58iI2jgymsIfZH8vNJ6wcnZiiy+jtDbEdlpVTri/ScaXa74Zb1fBKYLIigxmwsw8G/l8XdJnkTK7Ejm+51+/bKh3cwDrQCh49Rn7tDG8cx/tiAKIsNhjFuy3x8iABtc/jii5QDMRsrQFyVbJR69Ix5mMw8pHhy613ks66L5PG4z4U3DCjbQk/WCHi5jz3CGDBdwerRiaT8H0cxAB4mW8yk5vL44fYcEYgH0kt7MG7qGfDYawLDd6qwuk0tw6+r4KVpSxvfiDnbmA16yAEab7cI3TpuTAmAB3yIPMC/djBlk0Fshb+6HqZbJF4tYipb1WAsUrz+Yv9u0P92a7zUDeAbsT2tdlHn/EVC6n5TmLiaRGkLh4tM4vh9V56Gh0up/4bbz+1euR+oO2Tj4CrJsuDbH0F8h7vY1KCvuFKG/au71oBUj+CTzwa1MpaJs4l9kJ1BJ8m5Kj+uXG61H4ZZqD2ROdqV+kt9lyVB1ySWsAkzGruZeWwK3TfVk6aWgLT4SahJieVuvO/53dTq8rouJi4pk4B/FQrsBtBLL+EwLq6tP48ZxPa4jwPzohNXA/u8Vm/JiRXWsKbCQNR0KymdWQ8dPhjTX0ojE2YUn1VGw3qfNMdQa16l2fnsch6DgPOyywmlr2C/afuetHjUsJvy9x4asp324WUOtw6Xg1JtBepaCTT/dALHQTAx/vodSgMePzkg76IgDmvr98nB47IwuEB14dPy02B9T4eHLzV6QxAPUAB46qea4+4QYQGidPtTvuS8aZkp7b6xHbSKlyiS2o5rM9M/v+ihLyAm8VJuufpgnRgIqPgFF/pFyXp0RG1SESEsCw0mHpJRBJKRBxYoxX3294fkZ2nj6wGAx91f8a0oo0Ydm3ZPzEF5Fd3HskMoWER8xZepPBrFAfV7QmV5M/v6vfk2NvRgkRDBS/OOQLqncQjOhxyvGWPitkw6iXQicuK/kx7hp1UmdvO+9Ioi8j0ZmaTTyMQJG88sLuZqkFddoMbs6WAyL5XFdIk4p1qbdFTvPDqh1IJZcUXpnxiMq2cODv5+kPLDACGMCq6z1Fvfvl22OMmiRDuhSJXoJ2SPkb9dAUVKeTin/5bQb84YxALXxXlgxH1TzWfxpFMsjXgehwGH/6LKoCxDyo6PMnaAm1QijZ6tSqbQODK/JEF4F7ZcC2sdobq9Sc/WL7IEzJo/4SqBrcEGSuyIOCZHyS0WQ5SE1jsEXwTIHkgc+sDYei3mpXq3n7SDZFvdrBZV9X0AX7Dz5m0xyHKXZlDqKwgF3gvxSZFnM/Rxxg8e7hNBSRUmU1gv9BNnf4kAbjZPW4pUYvEd1izT3Ahowzkfbw3Cs4Esa7PCnDERFaYIsamSVVjw0aunHrrzNBCjxBBkdjZLSgCLOuE/nKWPKFIk1BMguxsh6taUuvlJG6aPVkqXXTE+/RJ7bIE2c7Qvb31D9ykdFhGtFWRTvmbsZ/lNoF9QP98v0luKJr7tk91aPTwZBYXHZGYjT6XrqROz+xhLahSg8ui4XVKgWD7mqM1nm9uouoq0XE3H1rEbpzuSl+sTpTg7uwwkcaAopB81rrEoIEnw5csfPGn/Q5HbZFaHKzIAX0JjXcR1j+i1Ajwg3vefCu5Faqc/NBYNE3f1qPvGCCckM5srP+sPyhL5tKcHR/HfkeZc1dQLATtY1yiWEfo6IYTAN3jjleBKw7xczDXrGtdAkM1+ZStMNomcFIulaEw2oCI4cfX+xUlT0sm2EeITVq6BQyROuZ7fwjarkqQjNjqRBL2PYckSL1pmFz2HL0mbgTvSV0nZu9z1TuXLNAhJwo9QK1BhJllfWTpPP8p7Fq1jto3bO5BsgVJF5i1f0qf/DUneXjgXafna33bNv2R9Xky7/IUY8B/KgD0WBVGoBT9vB/XGKR9Rmk78RFgEzUK/1om/hD2KiQ3FVhsvS8cM2iZs8pzjshAZ2nc+kFefjb4g3lBXrW/0nhh63NsJs0TOR/rLaT7X6UKtnQ2PNQMFXhvI+x9rBTp08eShFytrw/MulkENXwN+s3R90sQT72TZwoI4eB1GNRyk3NQAheISRYHHr1BBW9Gzn939dqy6nAxEK3cqzJQy+ci7Ct1ButZclKZB3BOr6jqTgFzqAqVT5bGaEGmxDZudOVqgm9n6RkT1k+54OmF4Fe1HD2CsXN+wiebT1J5EZmntJuKXSsho+/mzB9G+DjIwLZAadClFuxbNjj6S63b7z5dbw9oOvIy20sYVFbavaFg7XaAmNORKDzIKtMbNsnmf62zV6WAkVvbiBdl0wPnfT21g1wnsegiYOSCxEbLjTzRJ4xLQptT0bCGnVn5d3tdtEpAJW011c9Z4+HmW8FL/qkhzXsYo4iMWoTR0IGOFS8gOtAC9fu15VQ+NIT6T6zcGv7KRGkANXCI8r/CyxfOoxRQIcK0eT2N+bUWF2jZEnZn5+d3RNYJH5uJ2bdeyMgZOz90rTIc48BUu7yvE51q8EqpXcOJF4GR3m+2Fq28K59h0I+/OaWw0GFHXKC7QjUUbfv5KQIbmo8F7BzLCy5A3F7ginkenKierUZQ2ZSPm+UX3UMwNst5GED1g/yQ2gJrICUscUkmpNjW1cV3XhYpq2OwKC5bl3b1ZEesK0uzSpmwpVk3OLDSrpbV4bGlympljmrLoVnPq8w+j+d/l0iXjfR5FJgQEpTEy+b508gb4V29Ui5rsP+jXj1PRLu5KBDcrunbaetfY5EP/UxqzDVt4uE9j4ZlDTWcdMY3ncIR/ET0hZgQeApZQ4yIrs4GJwLWS1FTPXl2wbTa9Ci965hVsOSraH7vXqwsif8Kyoqaz2PUPr8/vH7MEa2yfYhwVhQpUA73XVQeTAM6M/NuDZy14ax22Q/xK8MvIIbYvEvZiwtg5pdCDZilnBkqBNbp2ZaKXTDQmhh/dn6sa622PsjDJXSMl41owsc11IVibnR4qzaNLFgj6SI+HlVHoTwnORPMP84LvjmwWtBavdYM/F/0aS40j97K13tIsAVAti8K5jPbWkccD/uyczKX9RXcz6td8R1d4epSk81gaKEDibtyDih3FybcsrMZ0gJneWnS7EgE+5zzCYeIJYD+cRNtWOtM8axQ0RznO+sTTJkugy/jw546Rei/1o0wyXe+7cKJcS5J15G3JwhWM62qK5JPMMfrmiLwyifsCHc9ZoVzTnSW3Ti6hV9+4nuLIY0yz7+emuEDypb+4ZICciMxCCJ3E7khjd/dz95vw0MrTbiTgq58YoXsH/xkncxH8jKN2UIenmrh1Husp9THrS1PSRe7UyslseuXIz2bn3TLcImxzG/bhclQQarnnXLYzCcT4aZ+Wy+u0dJnjAnVqRV+U2H+zR8miuEZ6ciyAgtTxBG/fgfmU3j6n2lpjSXgYUfeGARRhbdrBX0JNJ+VixFOSeJmM6Ha2I7ORQb8E5h4XdpjwP/20kvfPL9fcEDVY+iibZzWlcEYm8/nOri6ZRMNN8dwpLX+EQZUfIXW7EsVKvbdchhSI+bDlo9XH7MKNFMpuaojsZNcq1+npWHoIN+FWqWpbWDEvCfJtgOrPeTCBo1WIRaeGQlshXsOS7s1/61c8DpqPkupDmLQ9FFNTjAYV06GWkNffFTIFa36f4bD/A3Sz0mSKsJY3N9m3zmMH14F9KRH+fbtIGZf4s0Fh5ZYBWgqNsO3m1bynRitOA2bch5CAHbZuAYaAALR8fBo6ydxx7MV5a/taf17vpCqATY6skOOFSqBQCBi8kMVZBZEv4DFcRfB6Qyl/URG5U9oTEIjiA3wq+VzvlFq4dI54GhFV0t1OQuGXB9rcat3FC1dIDCR4mJP9aiuR/FcHeNiL/EQEifak4+uCazKuBJ52sAM2v0wmwJghiuLxIjT5oZvZiZzra0sOAlm/Gkd02UIOVfe/MSRG1D+eZ+6jmz9HxhwsX9N5UPz8V2O0rNlPbGs/GHljBS/Dxf1rHK8QVZX/JBAjCis5+4Y2kMiYsWJxV8LVMf/clt/r/Nj63Xrnyb5zObtULMKbC25oRxeVboexWE1m1OKXDQih/QWbOoasLx/OZbL/EMj6pFcTD7CJbsBclv42aj8gg+PT9z4CF2GNRso/iQdDmqiPpdSLHZjV8Z5jXUDMf5hW+8e2ynG5qAEbsYwXJClmw+xpD4zXzKg/TUfkRH+UYJD0MDluJ5BnKWwsVTX/t01FBX5T9WiNKGy9akqTpfoeZRwr51obIxntr3yBaKAU2oyrszmTyWNwUca8bDSnLKkZ5qszDAJb3qUu4VwuIzV7iTK5H9sg5wjk6bqve1tO1Hte7wElJeJeys+hikGiy7DnEHBOZTJLOwzzgFAQnU7ansmAfXWqc+TbLXgH5Z2SOTTY0Q9W9UX0goLAf4/qErpyL1UF74xrvJSAD4hevQsRuyYN+Nuxhp4Pj2fzN30Agu6ZG8WqGaRHSDNbqdn/6zvY0mLqlOB9+NWcnNhSFUxtjobzP03l/BIqjuEktSNa101s0aOLH0+TB7klbWZSBZWWS/CmwcupSMvlQvyxkVH1T39D4LSGqkbxbPQNZQub3X3u33N/Sc3qYrXeM/bbO02K6r7pMn5HP8hLkO3TMiK2x4pc/YmPkZT2IfWsMYvpA3UyRtXgjzQh5fmisfKew5z7YU5YT3rO/hAx+jzF7gBLbGnBS7wGjr1Qmo7LChp3xkb+ccXphoeOQl+SwlEcGDWuuqbVkuden5LM/HSXf/BBktih2wa30ZgNZq1hrbnPZjf6YPCSq7RFSUtja9k9eDN4Be+swHsVsZpVputwY5XB78whoE+Ze+8sAH09VIuxh/01lv+N82qJmxQYgi1/PKPPMEma61U7W3uEA/Y361pN/i6wvPb3vAzF/w3fhD5pdtXzzf8O7yJHVWz4muN+NF8wQb62BriaA6b+4IJ/rTUjpZtLUonW2vz5LSt5ygGklWJWzxQui2x2muuvZax1lntA1P0F93KhNCO09zwsh8g2AEfR0H41lHa9umks8jzTnJESPUAt7N9ixL7B5JaqbXyn2VUP50FJ8k1s9/yKsCKn2AyGHh7jkYuqfOv6RhKImBDeVpYGPX2Y8XWQbSg9fLk92KtS/1fQaPhM4eGNyQ+PVY4SkvrQpjqd13nNWWc8IBf4s3XCYAA0Ds10OL+yNR2l5vlfi0rv93lU3vdDlvcuW6gyCuB5EZ77eUTNOoVps5BnZTpeL/QT97hlDf9AsPxC93rPv2QyajCUr6m0QuJ6WnTJOF57uIvEtVqiopYxosSaitYsMD1RBc2Z90uY8qM8lcn1QLugXAeoZ+vkeI1WTItdaouZD3pOFifLz/+BS588o+TyAXl/YLkXMeScH/8dZvdLn7oS46wB5SvX/IC8IQxd9jWGrX5cNN2qO6bCEi4QJn4Rr/TLxvmqm6nADz2Cm65ITS+0plRC0UMRO0s1oiorBe9v4FPv04jrnu9qx165TaZJN5w1eASaguR6DCxvhT+EI9Zy0nPSTNS8mZ7uNtKeblbtSpUSxrJ700ZPkgD/omSrxFZr2WkosUS1fmMY2jwaM8W8x1FWcj3CULhHnVzHAZSIpnyMW4HoOztjbNkTC/QzA/RLpSIF/QTr76+wKT2gXbMOJniZkObGC7KN7EIQEMzsApZizgvogentGUPMjtKU6D/v17YIIcXQgFlnEbGOcc8cGb/Ca7sZd3VqpOwrmXb5GEXtmekVZemgPZpbNGOBF+/LwQkpjiVfZg0ESO70O1Kbrkq+3umbh6tlZugHq8j6LUCtN7aie107pIK+mTcWyVdOiJN3wwHVNe3x9SQvn0jyCVjP2ndCBv+2n0iJwY47BL+TcCe7zrdxeEqTD/wSiLhK9ISRcq1MtOeMGZSuebDOUuhHY465b5/TT791qbZb0P7xrN0L8uH1xmJGulnoDOnaAXrj9+QhUjiM5jOikC0EWbu3mO7JmwhKVw15l0kiRC2uti8SgxgYCTOKJLqY6hiUP/biQy52GkXnUbvuUNX4OnqxXVBpNvYmxA9RUuurH6HS2JOOK5rcPrsC9WinAKcDPIhkCdREb3pnOFgZSU7kdqzYpeX4ZjJLupNzy2Txiz5buV6Sdri/UuXzEys5yilzanN3ydt67LHugwzS+aoqhZlsuRVIACKapUYIe6tClN9DPzv59ob1TxN9O2mXeavxYO/FAgew9CViCtJZCr3nVfXbxi6e3IfimuaIYpVBJqFJ1d9k/SRwbc7dVngSqyESbLOVx3tG8a0TvcSyxlxZGHqeIoJPvoDfR1v6CybZDv9prYmOU8IdiINyLXOcA4bHK4z5prWy9Bs1KRMBLwCkBTw3IcjuQklUAxB4ky432VD9J7oIB0CYW+xNv1gRX1KlIahNABB6MLIL8KRP9m57GTLoF98fJmaN7VzzEz2tmBvvHu0NyhFNWPmqty3ugZx/Xjz9oITesFiJ2vNStJyfyYgYCrPvK8v9vTZgOfPETeLRekkDq8ZY67iXdULQowMY3jJooeAKqrcEEOz53rXAlBGTfJ356ODC5ZFHJ6FPn6jUnyhTl5nBlQsXqbGbM6NiqoKwRuIkmat7PqISvrU9abdFB6XjzcS2lhc+DO9aegghlHFI9Uyyp/NLERF1ghFlo/isQmITRbgCtRNj6tFG4yy3dlvTUAfRa0UPKCXlNs/EvDuNHzPOSVTWJJmXXcc9gOT9t+rR1IR1hHilOA0sjJdnGaefuFrsNB2AJU2b9+B06NZoRRgtjBwJ2wepIvq559WGIQwBT3Os1dUeo6j3nDhveER3vxRcjqcitxLoABrRnOQmzNrXFJzlbrcNd4Aefz3xDNUSHRYARmvwesYTid5zjE3y7Esf13pcW9oLlg6/6F/KPcwfBVscWV5t//UXvyswtfv7rGzJfpbIWkUtYTnBC01R9rId2tCS6+uz+CmQQHYx4z+TYxeqQilWdoAqGfnXgrtzvSIyO7IyyhGjaFq19Ird/J/Aql6yI2MovjTn/6PZHC90M0JU1BAfmRGiB0KKSO0o74qG7A/6t/2SW/vLoNd4Dxipk5jOfuazmCqc4dPTg+rcqok2GluC8lF8gmSAX7+34m18+FUjwbxgmu3T0sGsXwNXvuVIZGazC234MGkDNNPSytUGyfH4bpCDspH3j8bzAzuLznskHd/IlQSbhhg8xW2cVeYN3e8LZ5opC6dVjkAk+tQj5XwarRLCwkVWJNzSc8fMQS9e2B4+3bFDOvufRi/FPCbik2lPK2xR9LxbHLAW11EhKQdXK+jeQYE8hJ3wO75JGsb1tVqtX+KYjGRcezFMBkjnC0rbmouMw2nXjaFtUBO9+Gx2IrPOWT3Wk9QcKpJznLHmH40RfppsqYExwaN59wmI6VR+UbhDlnS5nG1Oh4RSD5UjH4FckjcRbshzuektvg9yy4obR+5kREkTJu+pDSIFe1zf9xWuJaprdbFYJkr5ZUqKrcAaoXfENh+lbrXK9aUJ2aebCquBRHXtXGnJdDB0YjNfhfa9XTkCqkjuNTbTKAoLHVMDbfd8NF7yqxH7ZKyMKsqP88bH6K00ttV7eOof2hfrgdjHi+Mtp8xcCf5kk54tnno7hwffpEWYtH14KKOKpXRRvhcxoeVD4DLoYxj6DifNPhm7cjWSZ4PUO9Itz3gvniIaDXlt5VCvoMpzPD17JZpUbh6JsH+z76uauailpt9bYXHFtwjDCVUic5COP11dJuz3CNDIvN/oT6sicUd9jClO96MLo3mPpF1qpndDXEkpEOxXuI5i9k+myFKSSS5gxZonTR8LqTwepqQKq7ELU0qFc4qcOnSJK80FHIuGiY/ewOWJB3Vhoc7BpFq2VipmOUCRIsdxI5j/g8kF4AM1qDEQuras72UGyyXaHEpcsjKGKYza8efDUVFoAO63vZZa4TgCoqdKSogky0yjbTqVEypnvxdmULjhHHpIMzMAZDJW3mm0T+obVRSJHtn1KpCKkIJHMMTZ1MvJrE1XpTq+s0iDcNkhnvVJHYn8FJ/YEqSQfncMU6NeZ2D1Me3jMJTWT3rmXZj9YfCq6yHfJP5scj4ZTqrehfzaZ7M5ZkeDwgiYWcW1ll2g0vLLpROVLqBw15HlMCNwaEHhJcCFt4od4KkvplZB7QkqsKV48UwR5YahAKzRxq+fTloWchJZeLBAUYbPX+7EnIALfClrxwKnb88GO9LaStMoaruwx2cImhtPnQivbgTYsLz+rL2eeY8yYra1be1jAfTGoTnua0+ALA2z8gvmDzkkXOtCV5bvi1eh7kF0zRrYsS+PK/zyc3y/1cbpQETLELON/Lulqrh75giST9kJA9HcBm1eq4XjRVYuGaYC4xk/8hRg8h3CDRQFsxKdntSu5mpvZNI445JG0pw6vTy12gvcY0mGaHMufEwYCqZGfizqQPINl8T5BsdJnH4uwanOzTVuR84eCCi16lrGzTfzgDt3WXZa5HPEBMHZCA5ywHdYfdB90RFswFE5xd9Eve+GCbzeKoXIXLsZrUnRsh2CoMIZ7CEegX3/M7Xqo80g4VnIu3ktKi+sZCrEEhK0iSti4JWMf6Ekkpu9xg0daqQjdyUbtHen/Kks2InxIHhgBOmiM4tLSqjn6XySRsLwN20ir7cew6dYbgls8/ixUexA51k9B6Ryt51JnvJB2yESkeoivV0nrV52z6rk4vIz/0jE5PGzQECUmoVOKJF/PAmGlaehEgXzD0ChV5KESg2QSn0hvtm6iltDIo75qPT36pZFNNpiur3nZWUfTMQRBpGJlNGig+4ILV10MQR6D4StHPaidzeT6Q2yAL3OP9XJT8jGlNby8IPKq/tE9JClNxO7luuTIQeNcFBpZ7AsLx8sYZXyOzxK/42vmybpEmPCaOX12K1lERLTSI3iY6bD1FwKzNvlfU4VPfMeeZuwY66SuIpGSza7LBryK+PJy2ibMlgpJ28V9ziQ9z7ZOdr+G8TbV/y5MAI7ULZPWdYw4xHsbq1xUd6k1WDqNxa6fWUt1tcKlICdJiCACIb4zyZfzaSAmc2N60sRNnRgcXCf7/Y6fNFjLD0cLOjMaDV8GxzGpif6pBWMi/rA1FA0DSYanZYUmhs0exKKlD8tD4wQLSpUOSrHe5hwK4+4BIRzEnd1Pudz9oYJn9qDAKdV3FVS4e0vowpC81JwLnis5Kl2Qb/ka9ip6BEbeeWmGY+YAkSBMA6i+7HD45PzWxtMca1dIlavnJ8KG+UInfZ80F3oNNEsehTXG0Y/k1dgt8ZqEHGwpLww9vB8Nr6gcyXA4PsLpowQOKEgKH0N/MsIyxv2FCuEqqq0Y06FZOO+QcucCHAQs/tPglkhM49oT7fA//Ih1cFNIGNxGfr/6ZTQ5LrnEAZ2JHSPYR1WvvpdNo3C/OMZl6WkIq4fHDYG530FIRXoK2gqQx0mLmsHJ8a9DPhVkSDJ0lVG"
            }
        }
    }
}

Response Message

Parameter Description

Table 4
ParameterRangeTypeDescription
state"Success",
"Failed"
stringThe status of the IPC operation.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "version":"1.0",
    "data":
    {
        "channel_info":
        {
            "CH1":
            {
                "state": "Success"
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Range

Function

This API is used to get IPC parameters range for [System > IPC Camera Maintain > Param Management* page.

Request Message

None.

Sample:

POST /API/IPCMaintaint/IPCParamManagement/Range HTTP/1.1
{
    "version":"1.0",
    "data":
    {
    }
}

Response Message

Table 1
ParameterRangeTypeDescription
channel_maxintThe maximum number of accessable channels.
passwordlen:0-16stringIPC authentication password.
channel_infoobject
Table 2
ParameterRangeTypeDescription
CH1objectA channel information object, see Table 3 for details.
...object
IP_CH1object
...object
WIFI_CH1object
...object
Table 3
ParameterRangeTypeDescription
ip_addressMax length:63stringIP address/domain name.
status"Offline","Online"stringIPC status.
software_versionMax length: 40stringFirmware version.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_max": 16,
        "password": {
            "type": "string",
            "min_len": 0,
            "max_len": 16
        },
        "channel_info": {
            "type": "object",
            "items": {
                "CH14": {
                    "type": "object",
                    "items": {
                        "status": {
                            "type": "string",
                            "items": [
                                "Offline",
                                "Online"
                            ]
                        },
                        "ip_address": {
                            "type": "string",
                            "min_len": 0,
                            "max_len": 63
                        },
                        "software_version": {
                            "type": "string",
                            "min_len": 0,
                            "max_len": 40
                        }
                    }
                },
                "CH16": {
                    "type": "object",
                    "items": {
                        "status": {
                            "type": "string",
                            "items": [
                                "Offline",
                                "Online"
                            ]
                        },
                        "ip_address": {
                            "type": "string",
                            "min_len": 0,
                            "max_len": 63
                        },
                        "software_version": {
                            "type": "string",
                            "min_len": 0,
                            "max_len": 40
                        }
                    }
                }
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

IPCReboot

Function

This API is used for get IPC parameter range, get IPC parameter and reboot IPC.

URI

POST  /API/IPCMaintaint/IPCReboot/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range,Get,Set.

Range

Function

This API is used to NVR get IPC parameter range.

Request Message

None.

Sample:

POST /API/IPCMaintaint/IPCReboot/Range HTTP/1.1
{
    "version":"1.0",
    "data":
    {
    }
}

Response Message

Parameter Description

Table 1
ParameterRangeTypeDescription
channel_maxintThe maximum number of accessable channels.
passwordlen:0-16stringIPC authentication password.
channel_infoobjectTotal channel information object, see Maintenance > IPCMaintenance > Load Default > Range > Parameter Description > Table 2 Get details.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_max": 16,
        "password": {
            "type": "string",
            "min_len": 0,
            "max_len": 16
        },
        "channel_info": {
            "type": "object",
            "items": {
                "CH14": {
                    "type": "object",
                    "items": {
                        "status": {
                            "type": "string",
                            "items": [
                                "Offline",
                                "Online"
                            ]
                        },
                        "ip_address": {
                            "type": "string",
                            "min_len": 0,
                            "max_len": 63
                        },
                        "software_version": {
                            "type": "string",
                            "min_len": 0,
                            "max_len": 40
                        },
                        "reboot_switch": {
                            "type": "bool"
                        }
                    }
                },
                "CH16": {
                    "type": "object",
                    "items": {
                        "status": {
                            "type": "string",
                            "items": [
                                "Offline",
                                "Online"
                            ]
                        },
                        "ip_address": {
                            "type": "string",
                            "min_len": 0,
                            "max_len": 63
                        },
                        "software_version": {
                            "type": "string",
                            "min_len": 0,
                            "max_len": 40
                        },
                        "reboot_switch": {
                            "type": "bool"
                        }
                    }
                }
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to NVR get IPC parameter.

Request Message

None.

Sample:

POST /API/IPCMaintaint/IPCReboot/Get HTTP/1.1
{
    "version":"1.0",
    "data":
    {
    }
}

Response Message

See Maintenance > IPCMaintenance > Load Default > Get > Parameter Description > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_info": {
            "CH14": {
                "status": "Online",
                "ip_address": "172.16.11.201",
                "software_version": "V21.45.8.2.2_220705"
            },
            "CH16": {
                "status": "Online",
                "ip_address": "172.16.11.162",
                "software_version": "V45.85.8.2.3_230620"
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to reboot IPC.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
passwordMax length: 16stringVerify the admin user password for secondary authentication.
channel_infoobjectTotal channel information object, see Table 2 for details.
base_secondary_authenticationobjectencrypted authentication object, see base_secondary_authentication information table for details information.
Table 2
ParameterRangeTypeDescription
CH1objectA channel information object, see Table 3 for details.
...object
IP_CH1object
...object
WIFI_CH1object
...object
Table 3
ParameterRangeTypeDescription
reboot_switchboolReboot switch. (This field is only used for IPC restart)

Sample:

POST /API/IPCMaintaint/IPCReset/Set HTTP/1.1
{
    "version":"1.0",
    "data":
    {
        "password": "1111qqqq",
        "channel_info":
        {
            "CH1":
            {
                "reboot_switch": true
            }
        },
        "base_secondary_authentication":
        {
            "seq":1,
            "cipher":"r8zCQd+EQpuhKY2bKSZhEK/mkpeEzTRVlgDwiepew8k="
        }
    }
}

Response Message

Parameter Description

Table 4
ParameterRangeTypeDescription
channel_infoobjectTotal channel information object, see Table 5 for details.
Table 5
ParameterRangeTypeDescription
CH1objectA channel information object, see Table 6 for details.
...object
IP_CH1object
...object
WIFI_CH1object
...object
Table 6
ParameterRangeTypeDescription
state"Success","Failed"stringThe status of the IPC operation.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_info":
        {
            "CH1":
            {
                "state": "Success"
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

IPCUpgrade

Function

This API is used for get parameter for Remote Setting > System > IP Camera Maintain > Upgrade page,get IPC upgrade token and IPC upgrade.

URI

POST /API/IPCMaintaint/IPCUpgrade/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including
Range,
Get,
Token,
Upgrade.

Range

Function

This API is used to get parameter range for Remote Setting > System > IP Camera Maintain > Upgrade page.

Note:

The Range provides reference information for client UI input limits and API request limits. When sending Get and Set requests, the parameters must be strictly limited according to the Range, otherwise the request may be rejected by the device.

Request Message

None.

Sample:

POST /API/IPCMaintaint/IPCUpgrade/Range HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 1
ParameterRangeTypeDescription
channel_infoobjectTotal channel information object, see Table 2 for details.
Table 2
ParameterRangeTypeDescription
CH1objectA channel information object, see Table 3 for details.
...object
IP_CH1object
...object
WIFI_CH1object
...object
Table 3
ParameterRangeTypeDescription
ip_addressMax length:63stringIP address/domain name.
state"Off-line","On-line"stringIPC status.
software_versionMax length: 40stringFirmware version.
ipc_upgradeboolUpgrade switch.
file_typeMax length: 64stringUpgrade file extension.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_max": 16,
        "password": {
            "type": "string",
            "min_len": 0,
            "max_len": 16
        },
        "channel_info": {
            "type": "object",
            "items": {
                "CH15": {
                    "type": "object",
                    "items": {
                        "state": {
                            "type": "string",
                            "items": [
                                "Off-line",
                                "On-line"
                            ]
                        },
                        "ip_address": {
                            "type": "string",
                            "min_len": 0,
                            "max_len": 63
                        },
                        "software_version": {
                            "type": "string",
                            "min_len": 0,
                            "max_len": 40
                        },
                        "ipc_upgrade": {
                            "type": "bool"
                        },
                        "file_type": {
                            "type": "string",
                            "min_len": 0,
                            "max_len": 64
                        }
                    }
                },
                "CH16": {
                    "type": "object",
                    "items": {
                        "state": {
                            "type": "string",
                            "items": [
                                "Off-line",
                                "On-line"
                            ]
                        },
                        "ip_address": {
                            "type": "string",
                            "min_len": 0,
                            "max_len": 63
                        },
                        "software_version": {
                            "type": "string",
                            "min_len": 0,
                            "max_len": 40
                        },
                        "ipc_upgrade": {
                            "type": "bool"
                        },
                        "file_type": {
                            "type": "string",
                            "min_len": 0,
                            "max_len": 64
                        }
                    }
                }
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get parameter for Remote Setting > System > IP Camera Maintain > Upgrade page.

Request Message

None.

Sample:

POST /API/IPCMaintaint/IPCUpgrade/Get HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 1
ParameterRangeTypeDescription
channel_infoobjectTotal channel information object, see Table 2 for details.
Table 2
ParameterRangeTypeDescription
CH1objectA channel information object, see Table 3 for details.
...object
IP_CH1object
...object
WIFI_CH1object
...object
Table 3
ParameterRangeTypeDescription
ip_addressMax length:63stringIP address/domain name.
state"Off-line","On-line"stringIPC status.
software_versionMax length: 40stringFirmware version.
file_typeMax length: 64stringUpgrade file extension.
reasonstringThe reason why IPC cannot obtain information.

Tips:

The response message of the Get request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_info": {
            "CH1": {
                "reason": "Not support"
            },
            "CH2": {
                "reason": "Not support"
            },
            "CH3": {
                "reason": "Not support"
            },
            "CH4": {
                "reason": "Not support"
            },
            "CH5": {
                "reason": "Not support"
            },
            "CH6": {
                "reason": "Not support"
            },
            "CH7": {
                "reason": "Not support"
            },
            "CH8": {
                "reason": "Not support"
            },
            "CH9": {
                "reason": "Not support"
            },
            "CH10": {
                "reason": "Not support"
            },
            "CH11": {
                "reason": "Not support"
            },
            "CH12": {
                "reason": "Not support"
            },
            "CH13": {
                "reason": "Not support"
            },
            "CH14": {
                "reason": "Not support"
            },
            "CH15": {
                "state": "On-line",
                "ip_address": "172.16.11.122",
                "software_version": "V26.34.8.2.4_230706",
                "file_type": "sw"
            },
            "CH16": {
                "state": "On-line",
                "ip_address": "172.16.11.162",
                "software_version": "V45.85.8.2.3_230620",
                "file_type": "sw"
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Token

Function

This API is used to get IPC upgrade token.

Request Message

Table 1
ParameterRangeTypeDescription
file_namelen:0-256stringUpgrade file name.
file_sizesize:100 << 20,(N88X,N88SX:200 << 20)intUpgrade file size.
ipc_channelssize:0-the maximum number of channelsint arrayChannels that need to be upgraded.
upgrade_headsize:3 * 1024int array1KB data before the upgrade file.
base_secondary_authenticationobjectEncrypted information for authentication. See base_enc_password information table for details on structure members.

Sample:

POST /API/IPCMaintaint/IPCUpgrade/Token HTTP/1.1
{
    "version":"1.0",
    "data":{
        "file_name":"CH56XN_F64M_SF_ENU_V1.0.1.1.B000170100130f_230104_r19922.sw",
        "file_size":74328284,
        "ipc_channels": [1, 2],
        "upgrade_head":[220,39,110,4,32,2,0,0,125,15,88,1,187,40,116,7,57,218,176,153,74,21,0,172,191,216,204,132,183,161,245,241,131,212,116,145,237,107,37,83,117,253,79,245,70,166,0,98,57,132,230,96,192,170,31,171,170,119,197,49,224,159,237,59,68,132,58,64,207,3,113,130,18,122,63,232,12,58,32,96,24,3,195,186,116,97,1,58,68,188,175,216,209,5,67,125,235,117,46,208,211,66,224,204,25,198,32,103,24,174,163,60,71,110,121,186,162,20,109,46,188,232,226,186,228,188,201,227,254,160,201,97,143,208,42,47,144,237,100,157,107,119,142,158,166,9,89,133,77,163,55,200,104,62,188,122,224,240,88,170,31,178,117,49,228,3,96,231,102,241,51,193,127,176,215,198,218,16,45,164,143,78,223,209,144,160,91,251,51,186,85,68,159,234,209,88,151,136,8,255,202,71,72,56,87,19,94,218,30,60,180,12,144,248,161,111,223,2,187,181,188,241,108,78,18,64,221,152,200,158,192,33,218,203,241,90,186,155,255,233,181,255,104,230,166,115,69,223,35,101,255,15,87,53,41,84,161,66,180,246,10,205,249,121,78,55,88,88,88,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,109,86,147,204,1,0,0,0,204,0,0,0,0,0,0,0,196,0,0,0,8,0,0,0,2,0,0,0,86,50,51,48,54,50,53,0,3,0,0,0,86,50,51,48,54,50,53,0,4,0,0,0,86,50,51,48,54,50,53,0,5,0,0,0,86,50,51,48,55,48,49,0,6,0,0,0,86,50,51,48,55,48,49,0,7,0,0,0,86,50,51,48,55,48,49,0,11,0,0,0,86,50,51,48,54,50,53,0,12,0,0,0,86,50,51,48,54,50,53,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,70,30,16,114,252,150,59,22,155,67,56,37,171,172,67,211,206,219,231,92,106,154,226,87,34,19,0,253,199,225,202,91,182,160,106,100,62,243,118,123,11,29,214,254,45,249,151,36,40,255,98,89,157,108,189,249,71,155,142,170,1,166,18,141,161,154,0,46,229,115,207,169,82,57,219,201,95,128,179,104,63,232,170,41,175,194,92,189,2,120,55,0,0,121,122,228,6,131,220,198,146,151,101,141,68,84,110,188,50,124,36,244,101,160,129,83,107,27,75,154,24,52,146,183,152,9,112,119,80,21,99,83,24,63,46,64,159,52,40,236,204,48,197,151,254,155,103,159,126,175,161,120,243,59,25,98,229,212,3,45,6,218,208,66,2,217,217,18,250,157,240,157,45,222,243,49,211,165,204,193,191,225,87,7,147,196,247,235,178,29,68,166,225,175,187,78,123,203,5,127,77,237,52,204,176,168,172,252,98,116,158,230,76,77,23,255,194,159,57,221,34,38,176,8,146,49,40,80,201,124,47,63,228,148,32,70,3,112,62,216,44,13,114,132,180,51,81,230,242,16,116,0,246,178,236,123,166,244,11,184,74,78,177,90,181,186,244,66,253,112,37,139,89,92,179,190,7,137,237,191,73,193,176,244,254,114,100,128,64,253,245,58,208,169,36,146,209,73,175,59,196,153,185,141,49,26,233,154,150,79,173,58,245,15,150,87,88,12,27,201,33,105,120,4,184,101,78,146,61,9,210,253,63,119,174,130,219,219,36,97,4,155,1,128,125,189,170,119,197,211,200,166,105,70,48,113,173,180,126,237,150,184,110,71,87,113,21,104,141,197,164,202,224,253,237,15,76,12,210,238,191,69,9,198,24,208,233,40,238,207,26,161,41,129,51,203,24,222,167,147,32,58,102,16,144,137,51,111,207,216,163,115,132,242,240,20,177,97,86,185,128,250,21,98,91,97,124,201,107,89,215,150,72,60,56,251,135,115,222,55,196,183,36,192,75,72,108,130,70,97,170,69,116,142,131,78,85,12,182,139,15,150,148,241,77,242,222,53,230,36,220,115,124,19,100,223,226,13,104,56,61,126,87,29,137,106,179,71,187,179,103,244,71,166,5,172,119,200,64,104,254,44,82,30,156,185,113,71,44,61,112,55,122,106,162,143,176,178,109,149,99,113,158,50,37,222,84,227,226,253,73,94,174,53,205,97,148,141,118,108,252,60,235,158,147,70,81,85,118,89,163,22,145,218,238,205,205,25,141,104,16,36,100,76,217,205,141,112,34,85,149,155,137,203,231,186,139,137,171,124,154,3,25,63,34,225,246,209,145,69,96,3,94,124,120,36,178,194,193,153,192,95,12,61,14,73,171,212,8,156,68,3,56,191,114,162,12,35,4,23,190,8,221,138,145,105,89,112,153,63,215,76,169,102,87,159,158,177,11,114,97,136,84,4,92,178,211,21,209,141,35,52,17,179,255,167,86,77,148,29,128,53,94,74,70,89,19,107,146,138,50,246,151,116,45,92,222,107,181,19,149,129,245,19,133,30,10,80,62,129,149,228,242,83,89,245,79,204,143,11,11,71,63,211,28,42,178,43,52,225,9,157,174,162,239,238,245,122,253,91,231,206,162,231,217,204,246,12,254,31,163,175,132,150,33,78,81,224,65,53,88,18,185,132,167,171,52,198,246,108,195,197,223,185,182,41,27,151,1,161,193,88,169,110,151,104,143,29,159,179,131,112,5,150,21,150,203,211,181,29,88,4,96,124,106,240,213,224,228,159,209,195,2,151,242,242,17,85,238,36,196,174,76,115,231,123,116,237,212,213,106,199,229,134,235,196,244,221,32,146,87,235,229,160,195,182,209,89,128,75,137,134,7,205,147,206,219,171,5,195,27,215,88,230,156,205,241,120,182,2,98,88,65,110,40,34,42,79,191,222,25,61,37,119,195,168,203,150,255,107,247,150,123,54,185,156,205,5,26,74,114,241,28,26,214,72,100,162,52,64,114,240,14,255,12,205,175,182,105,242,26,34,188,195,36,230,246,248,3,42,106,162,130,176,106,96,94,5,161,148,117,235,213,89,202,124,218,80,241,58,189,200,157,171,132,142,125,118,57,136,199,179,155,207,169,127,213,229,75,207,141,43,208,222,146,49,180,53,210,66,176,224,112,119,12,73,97,129,135,191,124,133,95,18,166,226,179,153,141,85,162,143,139,221,148,33,181,120,34,173,23,198,239,200,219,119,118,76,39,29,133,158,157,253,157,124,86,240,62,49,193,111,66,216,127,33,146,133,112,14,36,104,35,30,157,147,223,116,249,232,30,7,40,168,21,129,66,188,112,52,104,25,118,59,222,126,252,136,37,218,73,131,203,88,121,191,13,146,203,206,252,89,148,248,54,49,99,183,65,82,70,217,255,139,111,183,185,17,13,166,82,167,90,64,107,156,96,47,125,16,197,105,96,226,243,107,7,149,165,77,158,146,21,248,50,105,55,251,161,121,46,30,231,130,226,96,198,240,76,10,27,3,107,190,133,217,21,52,233,157,246,202,205,194,36,148,56,37,64,12,249,150,116,35,27,42,86,72,183,201,237,84,85,17,6,222,47,207,178,31,144,88,165,173,126,208,120,8,53,160,79,249,229,104,97,195,62,47,87,192,109,112,101,86,79,65,234,104,43,29,123,58,236,67,4,235,56,3,212,233,212,100,5,118,161,200,146,177,52,64,170,129,220,141,185,227,1,113,131,87,24,141,225,114,89,200,166,27,41,241,49,161,92,65,97,244,97,203,178,121,147,205,202,229,172,210,86,222,39,59,151,179,169,195,4,173,199,255,83,19,142,171,78,117,59,144,239,0,247,54,201,73,22,179,20,220,119,214,110,87,91,174,135,28,203,198,83,76,229,249,148,105,227,136,122,204,138,126,92,64,196,171,125,141,1,5,216,149,40,39,201,172,33,81,38,146,125,144,75,208,185,219,126,244,203,217,97,169,192,175,163,134,43,97,182,93,209,193,67,66,237,29,64,105,14,120,94,225,158,43,64,210,226,160,125,216,21,70,254,50,43,243,28,31,89,231,127,91,212,210,17,110,175,126,249,16,63,238,18,112,143,240,200,173,158,18,107,75,180,91,209,117,238,95,67,174,133,131,242,238,27,250,17,84,3,210,125,219,114,18,230,7,54,215,147,156,137,25,126,114,57,241,179,35,136,81,95,148,191,210,203,41,159,116,14,156,165,254,98,12,104,146,220,56,67,209,10,38,149,153,243,105,134,137,197,200,98,78,182,195,236,121,106,114,179,119,81,4,214,191,107,97,215,207,135,18,228,155,165,70,47,40,92,215,246,31,164,59,98,170,91,76,159,77,142,103,234,139,115,231,162,194,208,43,50,196,185,238,173,34,28,158,33,127,232,223,175,34,143,145,149,182,37,152,108,201,215,83,249,37,178,183,28,84,229,53,240,101,244,44,207,103,221,238,10,103,153,34,138,175,147,155,71,139,110,135,89,49,126,157,55,179,0,6,171,183,48,242,11,230,178,126,79,108,83,30,73,196,100,194,23,134,140,232,61,76,238,46,32,105,178,179,170,194,20,115,7,59,230,247,226,224,139,67,137,241,150,130,193,220,79,44,50,177,81,8,85,202,10,200,105,226,196,113,126,164,139,6,189,244,126,251,190,210,221,81,61,16,225,244,241,77,182,14,201,35,182,112,40,2,130,6,190,155,45,25,79,119,148,25,165,238,190,100,249,84,143,20,201,181,218,255,34,162,96,11,224,156,71,197,20,99,130,158,106,63,35,126,11,71,203,249,232,70,65,102,220,7,255,56,252,240,64,56,227,56,255,186,250,251,195,177,210,95,233,109,109,109,216,113,147,96,174,72,97,222,92,203,216,224,5,52,164,56,214,84,122,27,86,105,237,235,81,87,5,86,222,60,120,247,3,86,137,210,35,11,196,243,196,175,2,142,58,36,193,113,96,154,95,102,153,183,171,49,8,34,50,95,208,195,91,202,182,43,151,253,55,224,168,69,72,215,31,236,41,114,188,195,215,30,226,82,115,244,123,206,95,200,245,204,247,246,207,38,140,207,98,8,116,221,235,108,255,186,146,68,231,226,16,22,80,247,7,206,94,250,127,189,186,151,109,18,227,34,68,86,186,141,124,171,183,149,154,110,233,11,25,56,249,85,46,137,111,108,87,83,185,77,19,46,58,135,214,58,115,27,116,87,181,255,122,109,195,216,122,127,174,1,168,33,135,128,65,19,43,31,253,127,6,76,126,187,26,173,34,102,223,92,42,47,136,132,128,127,9,164,27,194,70,152,126,192,194,2,55,145,132,185,42,238,218,239,126,232,221,103,130,69,90,220,150,79,193,195,38,106,241,55,228,167,225,48,65,101,171,120,235,30,180,50,211,145,60,255,182,143,103,96,78,106,195,123,141,145,36,78,226,213,224,196,165,46,176,233,8,143,89,202,43,14,62,231,53,15,114,94,113,50,159,168,206,228,6,24,183,91,130,12,151,141,242,162,44,15,12,31,138,182,210,243,29,7,236,127,100,205,69,79,212,8,175,21,199,61,200,15,192,113,159,104,167,85,204,228,81,23,150,198,161,200,133,194,236,72,200,237,226,171,187,188,217,106,21,19,207,61,126,126,63,121,228,20,145,189,249,200,138,72,167,211,129,123,81,103,138,52,187,7,58,175,28,21,209,233,249,137,4,159,114,17,208,142,189,93,180,44,248,43,135,215,151,26,184,78,227,118,154,219,90,71,84,141,101,130,89,221,164,156,155,110,247,169,152,159,13,153,82,53,120,212,226,127,206,223,180,221,121,217,51,53,110,193,104,109,136,145,13,154,164,138,25,123,43,127,6,255,237,254,22,168,240,59,130,104,70,48,251,14,115,238,85,176,110,79,186,90,225,150,48,217,87,19,79,38,216,181,50,164,100,186,133,229,174,14,34,32,111,102,143,3,30,42,115,226,235,93,3,230,2,66,34,48,128,238,13,103,14,62,27,113,117,186,149,139,89,161,138,252,253,196,164,4,177,174,134,14,195,50,151,222,197,64,124,124,69,123,190,141,247,219,1,33,68,43,252,240,34,67,2,107,61,75,61,180,63,250,244,27,40,29,77,192,45,192,190,213,149,107,13,175,217,34,106,100,127,156,177,27,225,42,66,199,90,240,45,188,153,48,42,138,241,164,106,168,163,206,255,63,71,115,251,73,141,246,245,124,92,134,140,210,219,47,216,133,188,17,242,46,247,244,39,161,94,162,63,153,41,144,211,67,164,181,235,58,25,224,5,130,190,68,229,123,235,34,4,141,109,120,74,131,250,66,94,186,33,109,68,153,147,200,247,121,135,91,153,118,83,47,252,212,91,50,238,101,49,203,124,63,39,48,101,160,213,87,224,145,109,126,194,29,163,157,123,179,116,34,192,248,171,97,53,87,253,100,147,14,93,42,173,58,144,162,143,85,229,92,185,220,158,227,85,186,105,76,180,248,140,86,86,94,183,225,49,99,222,58,39,156,51,18,90,192,2,67,45,110,185,73,69,5,177,167,173,215,230,251,89,49,158,203,182,38,48,255,128,174,57,194,203,166,168,178,7,71,85,49,197,48,114,78,157,202,145,193,142,101,158,48,164,166,112,251,31,207,46,245,129,62,46,53,100,106,253,175,177,216,177,167],
        "base_secondary_authentication":{
            "seq":2,
            "cipher":"FWRsfpB05p/NfdTleipoBR1d06/dZA2xO8cDJiF4CYM="
        }
    }
}

Response Message

Parameter Description

Table 2
ParameterRangeTypeDescription
upgrade_tokenlen:0-32stringUpgrade token.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "upgrade_token": "7cIdZ34SYPn66oCPwwbqBw5EG6b5mOBoFowv80peWMUOQXDsHDYmVv7pQ976GF7GwIOtt4kj3Te3fWrYDggutytHaUm2"
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Upgrade

Function

This API is used to IPC upgrade.

Request Message

file data.

Sample:

POST /API/IPCMaintaint/IPCUpgrade/Upgrade HTTP/1.1
{
    "version":"1.0",
    "data":{
    }
}

Response Message

Parameter Description

Table 1
ParameterRangeTypeDescription
ChannelInfoobject arraySee Table 2 for more information.
Table 2
ParameterRangeTypeDescription
channelstringChannel number.
resultstringUpgradeResult.
reasonstringUpgrade error reason.
error_codestringThe error code corresponding to the cause of the upgrade error, see Maintenance > IPCMaintenance > IPCUpgrade_Code for more information.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result":"success",
    "data":
    {
        "upgrade_token":"39fed489f0c82094abbe536bc47eeac4",
        "upgrade_timeout":1800
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Load Default

Function

This API is used for NVR get IPC parameter Remote Setting > System > IP Camera Maintain > Load Default page and reset IPC default parameters.

URI

POST /API/IPCMaintaint/IPCReset/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range,Get,Set.

Range

Function

This API is used to get IPC parameter range for Remote Setting > System > IP Camera Maintain > Load Default page.

Note:

The Range provides reference information for client UI input limits and API request limits. When sending Get and Set requests, the parameters must be strictly limited according to the Range, otherwise the request may be rejected by the device.

Request Message

None.

Sample:

POST /API/IPCMaintaint/IPCReset/Range HTTP/1.1
{
    "version": "1.0",
    "data": {
    }
}

Response Message

Parameter Description

Table 1
ParameterRangeTypeDescription
channel_infoobjectTotal channel information object, see Table 2 for details.
Table 2
ParameterRangeTypeDescription
CH1objectA channel information object, see Table 3 for details.
...object
IP_CH1object
...object
WIFI_CH1object
...object
Table 3
ParameterRangeTypeDescription
ip_addressMax length:63stringIP address/domain name.
status"Offline","Online"stringIPC status.
software_versionMax length: 40stringFirmware version.
reset_switchboolRestore default switch.
file_typeMax length: 64stringUpgrade file extension.

Tips:

The response message of the Range request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_info": {
            "type": "object",
            "items": {
                "CH13": {
                    "type": "object",
                    "items": {
                        "status": {
                            "type": "string",
                            "items": [
                                "Offline",
                                "Online"
                            ]
                        },
                        "ip_address": {
                            "type": "string",
                            "min_len": 0,
                            "max_len": 63
                        },
                        "software_version": {
                            "type": "string",
                            "min_len": 0,
                            "max_len": 40
                        },
                        "reset_switch": {
                            "type": "bool"
                        }
                    }
                },
                "CH14": {
                    "type": "object",
                    "items": {
                        "status": {
                            "type": "string",
                            "items": [
                                "Offline",
                                "Online"
                            ]
                        },
                        "ip_address": {
                            "type": "string",
                            "min_len": 0,
                            "max_len": 63
                        },
                        "software_version": {
                            "type": "string",
                            "min_len": 0,
                            "max_len": 40
                        },
                        "reset_switch": {
                            "type": "bool"
                        }
                    }
                },
                "CH16": {
                    "type": "object",
                    "items": {
                        "status": {
                            "type": "string",
                            "items": [
                                "Offline",
                                "Online"
                            ]
                        },
                        "ip_address": {
                            "type": "string",
                            "min_len": 0,
                            "max_len": 63
                        },
                        "software_version": {
                            "type": "string",
                            "min_len": 0,
                            "max_len": 40
                        },
                        "reset_switch": {
                            "type": "bool"
                        }
                    }
                }
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get IPC parameter for Remote Setting > System > Maintenance > Load Default page.

Request Message

None.

Sample:

POST /API/IPCMaintaint/IPCReset/Get HTTP/1.1
{
    "version": "1.0",
    "data": {
    }
}

Response Message

Parameter Description

Table 1
ParameterRangeTypeDescription
channel_infoobjectTotal channel information object, see Table 2 for details.
Table 2
ParameterRangeTypeDescription
CH1objectA channel information object, see Table 3 for details.
...object
IP_CH1object
...object
WIFI_CH1object
...object
Table 3
ParameterRangeTypeDescription
ip_addressMax length:63stringIP address/domain name.
status"Offline","Online"stringIPC status.
software_versionMax length: 40stringFirmware version.
file_typeMax length: 64stringUpgrade file extension.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_info": {
            "CH13": {
                "status": "Online",
                "ip_address": "172.16.11.91",
                "software_version": "V40.45.8.2.3_230704"
            },
            "CH14": {
                "status": "Online",
                "ip_address": "172.16.11.201",
                "software_version": "V21.45.8.2.2_220705"
            },
            "CH16": {
                "status": "Online",
                "ip_address": "172.16.11.162",
                "software_version": "V45.85.8.2.3_230620"
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to reset IPC default parameters.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
passwordMax length: 16stringVerify the admin user password for secondary authentication.
channel_infoobjectTotal channel information object, see Table 2 for details.
base_secondary_authenticationobjectencrypted authentication object, see base_secondary_authentication information table for details information.
Table 2
ParameterRangeTypeDescription
CH1objectA channel information object, see Table 3 for details.
...object
IP_CH1object
...object
WIFI_CH1object
...object
Table 3
ParameterRangeTypeDescription
reset_switchboolReset default switch. (This field is only used when IPC resets to default)
Sample:
POST /API/IPCMaintaint/IPCReset/Set HTTP/1.1
{
    "version":"1.0",
    "data":
    {
        "password": "1111qqqq",
        "channel_info":
        {
            "CH1":
            {
                "reset_switch": true
            }
        },
        "base_secondary_authentication":
        {
            "seq":1,
            "cipher":"r8zCQd+EQpuhKY2bKSZhEK/mkpeEzTRVlgDwiepew8k="
        }
    }
}

Response Message

Parameter Description

Table 4
ParameterRangeTypeDescription
channel_infoobjectTotal channel information object, see Table 5 for details.
Table 5
ParameterRangeTypeDescription
CH1objectA channel information object, see Table 6 for details.
...object
IP_CH1object
...object
WIFI_CH1object
...object
Table 6
ParameterRangeTypeDescription
state"Success","Failed"stringThe status of the IPC operation.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_info":
        {
            "CH1":
            {
                "state": "Success"
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

UpgradeErrorCode

StatusDescription
upgradingThe IPC device is being upgraded.
ver_sameThe current version is already the latest version.
connet_closeThe device connection is abnormal.
read_file_failError reading file.
ver_errThe upgrade file does not match.
invalid_fileThe file is invalid, please upload a valid file.
file_errorError creating file.
not_existThe device is not online.
failedUpgrade failed.

UpgradeStatus

StatusDescription
IPC_UPGRADE_FILE_DOWNLOADINGDownloading upgrade file.
IPC_WAIT_FOT_UPGRADINGUpgrade file download is complete, waiting for upgrade.
IPC_UPGRADE_FILE_DOWNLOAD_FAILEDUpgrade file download failed.
IPC_UPGRADE_FINISHSingle IPC upgrade is complete.
IPC_UPGRADE_ALL_FINISHAll IPC upgrades completed.

UpgradeResult

StatusDescription
downloadingUpgrade file downloading.
wait_for_upgradingUpgrade file download is complete, waiting for upgrade.
download_failedUpgrade file download failed.
successIPC upgrade successful.
upgradingThe IPC device is being upgraded.
ver_sameThe current version is already the latest version.
connet_closeThe device connection is abnormal.
read_file_failError reading file.
invalid_fileThe file is invalid, please upload a valid file.
ver_errThe upgrade file does not match.
failedUpgrade failed.
param_errorParameter error.
file_too_longThe upgrade file is too large.
not_existThe device is not online.
all_finishUpgrade complete.

Load Default Parameter

Function

This API contains APIs for getting parameters for Load Default and loading the system default parameters.

URI

POST /API/Maintenance/Reset/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range,Set.

Range

Function

This API is used to get the parameter range for Load Default page.

Note:

The Range provides reference information for client UI input limits and API request limits. When sending Set requests, the parameters must be strictly limited according to the Range, otherwise the request may be rejected by the device.

Request Message

None.

Sample:

POST /API/Maintenance/Reset/Range HTTP/1.1
{
    "version": "1.0",
    "data": {
    }
}

Response Message

Parameter Description

Table 1
ParameterRangeTypeDescription
channelboolReset Channel related parameters.
recordboolReset record related parameters.Reset record related parameters
eventboolReset alarm related parameters.Reset alarm related parameters
aiboolReset AI related parameters.Reset ai related parameters
networkboolReset Network related parameters.Reset network related parameters
deviceboolReset Device related parameters.Reset device related parameters
systemboolReset System related parameters.Reset system related parameters
secondary_authenticationMax length: 16stringVerify admin user password for secondary authentication.
intelligentbool Reset Intellight related parameters.Reset intelligent related parameters
except_network_paramboolReset parameters except Network.
base_secondary_authenticationJson ObjectEncrypted authentication structure, see base_secondary_authentication information table for more information.
default_timeout1~120000msintSession timeout field, unit: ms

Tips:

The response message of the Range request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel": {
            "type": "bool"
        },
        "record": {
            "type": "bool"
        },
        "event": {
            "type": "bool"
        },
        "ai": {
            "type": "bool"
        },
        "network": {
            "type": "bool"
        },
        "except_network_param": {
            "type": "bool"
        },
        "device": {
            "type": "bool"
        },
        "system": {
            "type": "bool"
        },
        "secondary_authentication": {
            "type": "string",
            "min_len": 0,
            "max_len": 16
        },
        "default_timeout": 60000
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to reset system default configuration.

Request Message

See Maintenance > Load Default Parameter > Range > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/Maintenance/Reset/Set HTTP/1.1
{
    "version":"1.0",
    "data":
    {
        "base_secondary_authentication":
        {
            "seq":1,
            "cipher":"r8zCQd+EQpuhKY2bKSZhEK/mkpeEzTRVlgDwiepew8k="
        },
        "channel":true,
        "record":true,
        "alarm":false,
        "network":false,
        "storage":false,
        "system":false
    }
}

Response Message

None.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Log

Function

This API is used for getting the system log information.

URI

POST /API/Maintenance/Log/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Search, Range.

Range

Function

This API is used to get the range of system log information parameters.

Request Message

None.

Sample:

POST /API/Maintenance/Log/Range HTTP/1.1
{
    "version":"1.0",
    "data":{}
}

Response Message

Parameter Description

Table 1
ParameterRangeTypeDescription
start_dateDate format: MM/DD/YYYYstringSearch start date.
start_timeTime format: hh:mm:ssstringSearch start time.
end_dateDate format: MM/DD/YYYYstringSearch end date.
end_timeTime format: hh:mm:ssstringSearch end time.
main_type"System",
"Operate","Alarm",
"Account",
"Record",
"Storage",
"Network" ,
"All"
stringlog main type
channel_maxintThe maximum number of channels, IPC is 1.
channelstringThe channel to which the log is associated.
Note: Depending on the log type, this field is optional.
recordboolWhether there is a recording.
Note: Depending on the log type, this field is optional.
ai_main_type"Face Detection"
"Human & Vehicle"
"License Plate Detection"
stringThe main type of AI log
sub_typeSystem:
"SystemStartup",
"Shutdown",
"Reboot",
"SystemMaintain",
"Update",
" ChangeTime",
"NTP",
"DelayShutDown",
"PowerOn",
"PowerOff",
"AIStickPlugin",
"AIStickRemove" ,
"AIStickError",
"AIStickWarn",
"UpsPowerFail",
"CpuOverHeat",
"FanAbnormal",
"All"

Operate:
"RECParameters",
"ScheduleRecord",
"MainstreamSettings",
"NetworkSettings",
"SubstreamSettings",
"EmailSetting",
"EmailSchedule",
"DdnsSettings",
"ColorSettings",
"DisplaySettings",
"VideoSettings",
"VideoCover",
"Motion",
"I/O",
"HddSettings",
"PtzSettings",
"SerialPort"
" NtpSettings",
"DstSettings",
"GeneralSetup",
"MultiUser",
"Maintenance",
"AbnormalSettings",
"EmailSchedual" ,
"RtspSettings",
"IntelligentSchedual",
"IpcChannel"
"FtpSettings",
"ImageControl",
"MobileStream",
"ProtocolConfigure",
"CaptureSettings",
"CaptureSchedual"
"IntelligentSettings",
"IntelligentSettings2",
"IntelligentSettings3",
" AlarmLinkagePTZ",
"IntelligentSettings4",
"IntelligentSettings5",
"IntelligentSettings6",
"CloudStorage",
"PirAlarmSettings",
"AlarmStream" ,
"IpcPreviewCtrl"
"IPV6",
"ProtocolInfo",
"HttpsSettings",
"DeterrenceSettings",
"SdSetting",
"OdSetting",
"FtpSchedual"
"IpFilter",
"AlarmSchedule",
"EmailTest",
"ExportParam",
" ImportParam",
"LoadDefault",
"IpcReboot",
"IpcExport",
"IpcImport",
"IpcLoadDefault",
"IpcUpgrade" ,
"SearchLog",
"ChannelAdd",
"ChannelDelete",
"Modify",
"IpcSearch",
"PtzControl",
br />"ManualAlarm",
"BackupLog",
"CrosscountSearch",
"DefaultImgControl",
"DefaultColor",
"IpcChannelDelete",
>"DisplaySettings",
"MainstreamSettings",
"PlatformSettings",
"ChannelModify",
"AbnormalSettings",
"PosAdd",
" PosDelete",
"PosModify",
"PosSettings",
"SmartHomeSettings",
"VersionSettings",
"SNMPSettings",
"DisarmingModify" ,
"EventPushPlatform",
"CombinationAlarm",
"VoicePrompts",
"RTMPModify",
"Exception",
"Developer",
br />"Siren",
"All"

Alarm:
"MotionStart",
"MotionEnd",
"IoAlarmStart",
"IoAlarmEnd",
"VideoLoss",
"PidStart",
"PidEnd",
"LcdStart",
"LcdEnd",
"SodStart",
"SodEnd",
"PirStart",
"PirEnd",
"Pd&VdStart",
"Pd&VdEnd",
"FdStart ",
"FdEnd",
"CcStart",
"CcEnd",
"CdStart",
"CdEnd",
"QdStart",
"QdEnd",
"ShellBroken",
"SdStart",
"SdEnd",
"OdStart",
"OdEnd",
"PersonStart",
"PersonEnd",
"LowBattery",
"FAttrStart",
"FAttrEnd",
"CdStart",
"CdEnd",
"QdStart",
"QdEnd",
"LpdStart",
"LpdEnd",
"RsdStart",
"RsdEnd ",
"IntrusionStart",
"IntrusionEnd",
"RegionEntranceStart",
"RegionEntranceEnd",
"RegionExitingStart",
"RegionExitingEnd",
"TfdtStart",
"TfdtEnd",
"TmsStart",
"TmsEnd",
"All"

Account: < br />"Login",
"Logout",
"AddUser",
"DeleteUser",
"ModifyUser",
"LockScreen",
>"Unlock",
"UsernameError",
"PasswordError",
"All"

Record:
"ScheduleRecordStart",
"ManualRecordStart",
"RecordStop",
"RecordSearch",
"Playback",
"RecordBackup",
"PictureSearch",
"PicturePlayback ",
"PictureBackup",
"ManulCapture",
"InstantPlayback",
"All"

Storage:
"FormatHDD" ,
"NoSpaceOnDisk",
"DiskError",
"Auto",
"HddPartitionChanged",
"HddSmart",
"FormatRAID",
br />"RAIDCreate",
"RAIDDelete",
"RAIDRebuildStart",
"RAIDRebuildEnd",
"AddHotDisk",
"RemoveHotDisk",
>"All"

AI
Face Detection:
"Stranger",
"All"

Human & Vehicle:
>"Human",
"Vehicle",
"PID[Human]",
"LCD[Human]",
"PID[Vehicle]",
"LCD[Vehicle]",
"All"

Secure:
"LoginLock",
"PasswordInsecure",
"ReadUserParamFailed",
"ReadFactoryParamFailed",
"SessionBusy",
"UpgradeVerifyFailed",
"CustomCartExpired"

All:
"All"
stringlog Subtype
1. Only IPC supports subtype query, and NVR does not support this function;
2.In order to unify the interface, NVR reserves this interface, and the All subtype is also included in the query to facilitate future expansion.
unfinishedbool

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_max": 1,
        "start_date": {
            "description": "The date format is MM/DD/YYYY",
            "type": "string",
            "min_len": 0,
            "max_len": 10,
            "minYear": 2000,
            "maxYear": 2036,
            "format": "MM/DD/YYYY"
        },
        "start_time": {
            "description": "The time format is hh:mm:ss",
            "type": "string",
            "min_len": 0,
            "max_len": 8,
            "format": "hh:mm:ss"
        },
        "end_date": {
            "description": "The date format is MM/DD/YYYY",
            "type": "string",
            "min_len": 0,
            "max_len": 10,
            "minYear": 2000,
            "maxYear": 2036,
            "format": "MM/DD/YYYY"
        },
        "end_time": {
            "description": "The time format is hh:mm:ss",
            "type": "string",
            "min_len": 0,
            "max_len": 8,
            "format": "hh:mm:ss"
        },
        "main_type": {
            "type": "string",
            "items": [
                "System",
                "Operate",
                "Alarm",
                "Account",
                "Record",
                "Storage",
                "Network",
                "All"
            ]
        },
        "sub_type": {
            "description": "Each range corresponds to one main_type.",
            "type": "string",
            "mode": "r",
            "ranges": [
                [
                    "SystemStartup",
                    "Reboot",
                    "SystemMaintain",
                    "Update",
                    "ChangeTime",
                    "Ntp",
                    "All"
                ],
                [
                    "IpcPreviewCtrl",
                    "VideoCover",
                    "RECParameters",
                    "ScheduleRecord",
                    "MainstreamSettings",
                    "NetworkSettings",
                    "SubstreamSettings",
                    "EmailSetting",
                    "ColorSettings",
                    "Motion",
                    "HddSettings",
                    "MultiUser",
                    "NtpSettings",
                    "ImageControl",
                    "MobileStream",
                    "RtspSettings",
                    "IpFilter",
                    "LoadDefault",
                    "SdSetting",
                    "ExportParam",
                    "ImportParam",
                    "EventPush",
                    "Capture",
                    "Deterrence",
                    "Intelligent",
                    "FTP",
                    "DDNS",
                    "HTTPS",
                    "Audio",
                    "Siren",
                    "MaintenanceSettings",
                    "OdSetting",
                    "I/O",
                    "All"
                ],
                [
                    "MotionStart",
                    "MotionEnd",
                    "IoAlarmStart",
                    "IoAlarmEnd",
                    "OdStart",
                    "OdEnd",
                    "PidStart",
                    "PidEnd",
                    "LcdStart",
                    "LcdEnd",
                    "SodStart",
                    "SodEnd",
                    "Pd&VdStart",
                    "Pd&VdEnd",
                    "FdStart",
                    "FdEnd",
                    "CcStart",
                    "CcEnd",
                    "CdStart",
                    "CdEnd",
                    "QdStart",
                    "QdEnd",
                    "LpdStart",
                    "LpdEnd",
                    "RsdStart",
                    "RsdEnd",
                    "SdStart",
                    "SdEnd",
                    "IntrusionStart",
                    "IntrusionEnd",
                    "RegionEntranceStart",
                    "RegionEntranceEnd",
                    "RegionExitingStart",
                    "RegionExitingEnd",
                    "All"
                ],
                [
                    "Login",
                    "Logout",
                    "Lock",
                    "ModifyUser",
                    "All"
                ],
                [
                    "RecordSearch",
                    "Playback",
                    "RecordBackup",
                    "All"
                ],
                [
                    "FormatHDD",
                    "NoSpaceOnDisk",
                    "DiskError",
                    "All"
                ],
                [
                    "NetworkDown",
                    "NetworkConnect",
                    "NetworkError",
                    "NetworkChangeMode",
                    "All"
                ],
                ["All"]
            ]
        },
        "record": {"type": "bool"},
        "unfinished": {
            "type": "bool",
            "mode": "r"
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Search

Function

This API is used to get the system log information.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
start_dateDate format: MM/DD/YYYYstringSearch start date.
start_timeTime format: hh:mm:ssstringSearch start time.
end_dateDate format: MM/DD/YYYYstringSearch end date.
end_timetime format: hh:mm:ssstringsearch end time.
main_type"System",
"Operate",
"Alarm",
"Account",
"Record",
"Storage",
"Network" ,
"All"
stringlog main type
channel_maxIpc:1intMaximum number of channels

Sample:

POST /API/Maintenance/Log/Search HTTP/1.1
{
    "version":"1.0",
    "data":
    {
        "start_date":"07/05/2023",
        "end_date":"07/05/2023",
        "start_time":"00:00:00",
        "end_time":"23:59:59",
        "main_type":"All",
        "sub_type":"All"
    }
}

Response Message

Parameter Description

Table 2
ParameterRangeTypeDescription
logobject arrayArray of log structures, see Table 3 for details.
Table 3
ParameterRangeTypeDescription
start_datestringLog start date, format: MM/DD/YYYY.
start_timestringLog start time, format: hh:mm:ss.
end_timestringlog end time, format: hh:mm:ss.
main_type"System",
"Operate",
"Alarm",
"Account",
"Record",
"Storage",
"Network",
"All"
string
ai_main_type"Face Detection",
"Human & Vehicle",
"License Plate Detection"
stringThe main type of AI log.
sub_typeSystem:
"SystemStartup",
"Shutdown",
"Reboot",
"SystemMaintain",
"Update",
" ChangeTime",
"NTP",
"DelayShutDown",
"PowerOn",
"PowerOff",
"AIStickPlugin",
"AIStickRemove" ,
"AIStickError",
"AIStickWarn",
"UpsPowerFail",
"CpuOverHeat",
"FanAbnormal",
"All"

Operate:
"RECParameters",
"ScheduleRecord",
"MainstreamSettings",
"NetworkSettings",
"SubstreamSettings",
"EmailSetting",
"EmailSchedule",
"DdnsSettings",
"ColorSettings",
"DisplaySettings",
"VideoSettings",
"VideoCover",
"Motion",
"I/O",
"HddSettings",
"PtzSettings",
"SerialPort"
" NtpSettings",
"DstSettings",
"GeneralSetup",
"MultiUser",
"Maintenance",
"AbnormalSettings",
"EmailSchedual" ,
"RtspSettings",
"IntelligentSchedual",
"IpcChannel"
"FtpSettings",
"ImageControl",
"MobileStream",
"ProtocolConfigure",
"CaptureSettings",
"CaptureSchedual"
"IntelligentSettings",
"IntelligentSettings2",
"IntelligentSettings3",
" AlarmLinkagePTZ",
"IntelligentSettings4",
"IntelligentSettings5",
"IntelligentSettings6",
"CloudStorage",
"PirAlarmSettings",
"AlarmStream" ,
"IpcPreviewCtrl"
"IPV6",
"ProtocolInfo",
"HttpsSettings",
"DeterrenceSettings",
"SdSetting",
"OdSetting",
"FtpSchedual"
"IpFilter",
"AlarmSchedule",
"EmailTest",
"ExportParam",
" ImportParam",
"LoadDefault",
"IpcReboot",
"IpcExport",
"IpcImport",
"IpcLoadDefault",
"IpcUpgrade" ,
"SearchLog",
"ChannelAdd",
"ChannelDelete",
"Modify",
"IpcSearch",
"PtzControl",
"ManualAlarm",
"BackupLog",
"CrosscountSearch",
"DefaultImgControl",
"DefaultColor",
"IpcChannelDelete",
"DisplaySettings",
"MainstreamSettings",
"PlatformSettings",
"ChannelModify",
"AbnormalSettings",
"PosAdd",
" PosDelete",
"PosModify",
"PosSettings",
"SmartHomeSettings",
"VersionSettings",
"SNMPSettings",
"DisarmingModify" ,
"EventPushPlatform",
"CombinationAlarm",
"VoicePrompts",
"RTMPModify",
"Exception",
"Developer",
"Siren",
"All"

Alarm:
"MotionStart",
"MotionEnd",
"IoAlarmStart",
"IoAlarmEnd",
"VideoLoss",
"PidStart",
"PidEnd",
"LcdStart",
"LcdEnd",
"SodStart",
"SodEnd",
"PirStart",
"PirEnd",
"Pd&VdStart",
"Pd&VdEnd",
"FdStart ",
"FdEnd",
"CcStart",
"CcEnd",
"CdStart",
"CdEnd",
"QdStart",
"QdEnd",
"ShellBroken",
"SdStart",
"SdEnd",
"OdStart",
"OdEnd",
"PersonStart",
"PersonEnd",
"LowBattery",
"FAttrStart",
"FAttrEnd",
"CdStart",
"CdEnd",
"QdStart",
"QdEnd",
"LpdStart",
"LpdEnd",
"RsdStart",
"RsdEnd ",
"IntrusionStart",
"IntrusionEnd",
"RegionEntranceStart",
"RegionEntranceEnd",
"RegionExitingStart",
"RegionExitingEnd",
"TfdtStart",
"TfdtEnd",
"TmsStart",
"TmsEnd",
"All"
Account:
"Login",
"Logout",
"AddUser",
"DeleteUser",
"ModifyUser",
"LockScreen",
"Unlock",
"UsernameError",
"PasswordError",
"All"

Record:
"ScheduleRecordStart",
"ManualRecordStart",
"RecordStop",
"RecordSearch",
"Playback",
"RecordBackup",
"PictureSearch",
"PicturePlayback ",
"PictureBackup",
"ManulCapture",
"InstantPlayback",
"All"

Storage:
"FormatHDD" ,
"NoSpaceOnDisk",
"DiskError",
"Auto",
"HddPartitionChanged",
"HddSmart",
"FormatRAID",
br />"RAIDCreate",
"RAIDDelete",
"RAIDRebuildStart",
"RAIDRebuildEnd",
"AddHotDisk",
"RemoveHotDisk",
"All"

AI
Face Detection:
"Stranger",
"All"
Human & Vehicle:
"Human",
"Vehicle",
"PID[Human]",
"LCD[Human]",
"PID[Vehicle]",
"LCD[Vehicle]",
"All"

Secure:
"LoginLock",
"PasswordInsecure",
"ReadUserParamFailed",
"ReadFactoryParamFailed",
"SessionBusy",
"UpgradeVerifyFailed",
"CustomCartExpired"

All:
"All"
stringlog Subtype
1. Only IPC supports subtype query, and NVR does not support this function;
2. In order to unify the interface, NVR reserves this interface, and also bring the All subtype when querying, which is convenient for future expansion .
channelstringThe channel to which the log is associated.
Note: Depending on the log type, this field is optional.
recordboolWhether there is a recording.
Note: Depending on the log type, this field is optional.
result_code"operate_success",
"no_permission",
"lack_of_resource",
"network_error",
"exception_error",
"operate_failed",
"file_error",
"memory_not_enough",
"parameter_error",
"para_check_error",
"write_flash_error",
"no_hdd",
" auth_failed",
"no_support",
"unknown_error",
"no_udisk",
"no_upgrade_package",
"soft_is_new",
"software_packet_error" ,
"language_version_error",
"file_name_too_long",
"update_failed",
"event_coverd",
"backup_search_dir_too_long",
"backup_no_support_mjpeg",
"connect_close",
"file_invalid",
"sapce_shortage",
"data_error",
"user_not_exist",
"first_login",
"weak_password" ,
"time_abnormal",
"passwd_expired",
"version_incompatible",
"in_userinterface",
"in_upgrading",
"user_locked",
"part_success"
string
userstringThe username of the operating user.
ipstringOperating user's ip address.
time_srcstringWhen modifying the time, the old time.
time_dststringWhen modifying the time, the new time.
user_id0->administrator,1->user1 2->user2...6->user6intuser ID of the operating user.
ipc_ipstringThe ip address of the operated ipc.
dst_userstringThe username of the user being operated.
dest_userid0->administrator,1->user1 2->user2...6->user6intuser ID of the user being operated.
hddidintHDD serial number.
modelstringhard disk related.
serial_nostringhard disk related.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "max_num": 1000,
        "log": [
            {
                "sub_type": "Login",
                "result_code": "operate_success",
                "user": "admin",
                "user_id": 0,
                "ip": "172.16.8.120",
                "main_type": "Account",
                "start_date": "01/10/2024",
                "start_time": "11:10:34"
            },
            {
                "sub_type": "MotionEnd",
                "record": true,
                "main_type": "Alarm",
                "start_date": "01/10/2024",
                "start_time": "10:58:54"
            },
            {
                "sub_type": "MotionStart",
                "record": true,
                "main_type": "Alarm",
                "start_date": "01/10/2024",
                "start_time": "10:58:39"
            },
            {
                "sub_type": "MotionEnd",
                "record": true,
                "main_type": "Alarm",
                "start_date": "01/10/2024",
                "start_time": "10:41:20"
            },
            {
                "sub_type": "MotionStart",
                "record": true,
                "main_type": "Alarm",
                "start_date": "01/10/2024",
                "start_time": "10:41:09"
            },
            {
                "sub_type": "Login",
                "result_code": "operate_success",
                "user": "admin",
                "user_id": 0,
                "ip": "172.16.8.120",
                "main_type": "Account",
                "start_date": "01/10/2024",
                "start_time": "10:22:50"
            },
            {
                "sub_type": "Login",
                "result_code": "operate_success",
                "user": "admin",
                "user_id": 0,
                "ip": "172.16.8.120",
                "main_type": "Account",
                "start_date": "01/10/2024",
                "start_time": "10:12:30"
            },
            {
                "sub_type": "MotionEnd",
                "record": true,
                "main_type": "Alarm",
                "start_date": "01/10/2024",
                "start_time": "10:11:29"
            },
            {
                "sub_type": "MotionStart",
                "record": true,
                "main_type": "Alarm",
                "start_date": "01/10/2024",
                "start_time": "10:11:19"
            },
            {
                "sub_type": "MotionEnd",
                "record": true,
                "main_type": "Alarm",
                "start_date": "01/10/2024",
                "start_time": "09:52:35"
            },
            {
                "sub_type": "MotionStart",
                "record": true,
                "main_type": "Alarm",
                "start_date": "01/10/2024",
                "start_time": "09:52:24"
            },
            {
                "sub_type": "Login",
                "result_code": "operate_success",
                "user": "admin",
                "user_id": 0,
                "ip": "172.16.8.120",
                "main_type": "Account",
                "start_date": "01/10/2024",
                "start_time": "09:19:06"
            },
            {
                "sub_type": "ChangeTime",
                "main_type": "System",
                "start_date": "01/10/2024",
                "start_time": "09:18:44"
            },
            {
                "sub_type": "Ntp",
                "main_type": "System",
                "start_date": "01/10/2024",
                "start_time": "09:18:44"
            },
            {
                "sub_type": "SystemStartup",
                "main_type": "System",
                "start_date": "01/10/2024",
                "start_time": "09:18:24"
            },
            {
                "sub_type": "NetworkConnect",
                "main_type": "Network",
                "start_date": "01/10/2024",
                "start_time": "09:18:21"
            }
        ]
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

SystemUpgrade

Function

This API is used for getting system update token,upgrading system,system version check,system component version check,getting component upgrade token,upgrading component.

URI

POST /API/Maintenance/SystemUpgrade/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including
Token,
Upgrade,
VersionCheck,
ComponentVersionCheck,
ComponentToken,
ComponentUpgrade.

ComponentToken

Function

This API is used to get component update token.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
file_sizeintUpgrade file size.

Sample:

POST /API/Maintenance/SystemUpgrade/ComponentToken HTTP/1.1
{
    "version": "1.0",
    "data": {
        "file_size":74328284
    }
}

Response Message

Parameter Description

Table 2
ParameterRangeTypeDescription
upgrade_tokenstringUpgrade token.
upgrade_timeout0-3600intUpgrade timeout.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "upgrade_token": "f06f890cc1aed4a04528516c2d331df4",
        "upgrade_timeout": 1800
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

ComponentVersionCheck

Function

This API is used to component version check upgrade(NVR upgrade ipc component version date check).

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
file_sizeintComponent version detection file size.
file_dataint arrayComponent version detection file data.
url_keyobjectThe public key used to encrypt the url, see Table 2 for details.
Table 2
ParameterRangeTypeDescription
seq0-1000000intReturns the number of API encryption times using Request pubkey or randbyte.
peer_keylen:0-1024stringThe X25519 key encrypted by the client is converted using base64.
type"base_x_public"stringkey type.

Sample:

POST /API/Maintenance/SystemUpgrade/ComponentVersionCheck HTTP/1.1
{
    "version":"1.0",
    "data":{
        "file_size":74328284,
        "file_data":[220,39,110,4,32,2,0,0,125,15,88,1,187,40,116,7,57,218,176,153,74,21,0,172,191,216,204,132,183,161,245,241,131,212,116,145,237,107,37,83,117,253,79,245,70,166,0,98,57,132,230,96,192,170,31,171,170,119,197,49,224,159,237,59,68,132,58,64,207,3,113,130,18,122,63,232,12,58,32,96,24,3,195,186,116,97,1,58,68,188,175,216,209,5,67,125,235,117,46,208,211,66,224,204,25,198,32,103,24,174,163,60,71,110,121,186,162,20,109,46,188,232,226,186,228,188,201,227,254,160,201,97,143,208,42,47,144,237,100,157,107,119,142,158,166,9,89,133,77,163,55,200,104,62,188,122,224,240,88,170,31,178,117,49,228,3,96,231,102,241,51,193,127,176,215,198,218,16,45,164,143,78,223,209,144,160,91,251,51,186,85,68,159,234,209,88,151,136,8,255,202,71,72,56,87,19,94,218,30,60,180,12,144,248,161,111,223,2,187,181,188,241,108,78,18,64,221,152,200,158,192,33,218,203,241,90,186,155,255,233,181,255,104,230,166,115,69,223,35,101,255,15,87,53,41,84,161,66,180,246,10,205,249,121,78,55,88,88,88,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,109,86,147,204,1,0,0,0,204,0,0,0,0,0,0,0,196,0,0,0,8,0,0,0,2,0,0,0,86,50,51,48,54,50,53,0,3,0,0,0,86,50,51,48,54,50,53,0,4,0,0,0,86,50,51,48,54,50,53,0,5,0,0,0,86,50,51,48,55,48,49,0,6,0,0,0,86,50,51,48,55,48,49,0,7,0,0,0,86,50,51,48,55,48,49,0,11,0,0,0,86,50,51,48,54,50,53,0,12,0,0,0,86,50,51,48,54,50,53,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,70,30,16,114,252,150,59,22,155,67,56,37,171,172,67,211,206,219,231,92,106,154,226,87,34,19,0,253,199,225,202,91,182,160,106,100,62,243,118,123,11,29,214,254,45,249,151,36,40,255,98,89,157,108,189,249,71,155,142,170,1,166,18,141,161,154,0,46,229,115,207,169,82,57,219,201,95,128,179,104,63,232,170,41,175,194,92,189,2,120,55,0,0,121,122,228,6,131,220,198,146,151,101,141,68,84,110,188,50,124,36,244,101,160,129,83,107,27,75,154,24,52,146,183,152,9,112,119,80,21,99,83,24,63,46,64,159,52,40,236,204,48,197,151,254,155,103,159,126,175,161,120,243,59,25,98,229,212,3,45,6,218,208,66,2,217,217,18,250,157,240,157,45,222,243,49,211,165,204,193,191,225,87,7,147,196,247,235,178,29,68,166,225,175,187,78,123,203,5,127,77,237,52,204,176,168,172,252,98,116,158,230,76,77,23,255,194,159,57,221,34,38,176,8,146,49,40,80,201,124,47,63,228,148,32,70,3,112,62,216,44,13,114,132,180,51,81,230,242,16,116,0,246,178,236,123,166,244,11,184,74,78,177,90,181,186,244,66,253,112,37,139,89,92,179,190,7,137,237,191,73,193,176,244,254,114,100,128,64,253,245,58,208,169,36,146,209,73,175,59,196,153,185,141,49,26,233,154,150,79,173,58,245,15,150,87,88,12,27,201,33,105,120,4,184,101,78,146,61,9,210,253,63,119,174,130,219,219,36,97,4,155,1,128,125,189,170,119,197,211,200,166,105,70,48,113,173,180,126,237,150,184,110,71,87,113,21,104,141,197,164,202,224,253,237,15,76,12,210,238,191,69,9,198,24,208,233,40,238,207,26,161,41,129,51,203,24,222,167,147,32,58,102,16,144,137,51,111,207,216,163,115,132,242,240,20,177,97,86,185,128,250,21,98,91,97,124,201,107,89,215,150,72,60,56,251,135,115,222,55,196,183,36,192,75,72,108,130,70,97,170,69,116,142,131,78,85,12,182,139,15,150,148,241,77,242,222,53,230,36,220,115,124,19,100,223,226,13,104,56,61,126,87,29,137,106,179,71,187,179,103,244,71,166,5,172,119,200,64,104,254,44,82,30,156,185,113,71,44,61,112,55,122,106,162,143,176,178,109,149,99,113,158,50,37,222,84,227,226,253,73,94,174,53,205,97,148,141,118,108,252,60,235,158,147,70,81,85,118,89,163,22,145,218,238,205,205,25,141,104,16,36,100,76,217,205,141,112,34,85,149,155,137,203,231,186,139,137,171,124,154,3,25,63,34,225,246,209,145,69,96,3,94,124,120,36,178,194,193,153,192,95,12,61,14,73,171,212,8,156,68,3,56,191,114,162,12,35,4,23,190,8,221,138,145,105,89,112,153,63,215,76,169,102,87,159,158,177,11,114,97,136,84,4,92,178,211,21,209,141,35,52,17,179,255,167,86,77,148,29,128,53,94,74,70,89,19,107,146,138,50,246,151,116,45,92,222,107,181,19,149,129,245,19,133,30,10,80,62,129,149,228,242,83,89,245,79,204,143,11,11,71,63,211,28,42,178,43,52,225,9,157,174,162,239,238,245,122,253,91,231,206,162,231,217,204,246,12,254,31,163,175,132,150,33,78,81,224,65,53,88,18,185,132,167,171,52,198,246,108,195,197,223,185,182,41,27,151,1,161,193,88,169,110,151,104,143,29,159,179,131,112,5,150,21,150,203,211,181,29,88,4,96,124,106,240,213,224,228,159,209,195,2,151,242,242,17,85,238,36,196,174,76,115,231,123,116,237,212,213,106,199,229,134,235,196,244,221,32,146,87,235,229,160,195,182,209,89,128,75,137,134,7,205,147,206,219,171,5,195,27,215,88,230,156,205,241,120,182,2,98,88,65,110,40,34,42,79,191,222,25,61,37,119,195,168,203,150,255,107,247,150,123,54,185,156,205,5,26,74,114,241,28,26,214,72,100,162,52,64,114,240,14,255,12,205,175,182,105,242,26,34,188,195,36,230,246,248,3,42,106,162,130,176,106,96,94,5,161,148,117,235,213,89,202,124,218,80,241,58,189,200,157,171,132,142,125,118,57,136,199,179,155,207,169,127,213,229,75,207,141,43,208,222,146,49,180,53,210,66,176,224,112,119,12,73,97,129,135,191,124,133,95,18,166,226,179,153,141,85,162,143,139,221,148,33,181,120,34,173,23,198,239,200,219,119,118,76,39,29,133,158,157,253,157,124,86,240,62,49,193,111,66,216,127,33,146,133,112,14,36,104,35,30,157,147,223,116,249,232,30,7,40,168,21,129,66,188,112,52,104,25,118,59,222,126,252,136,37,218,73,131,203,88,121,191,13,146,203,206,252,89,148,248,54,49,99,183,65,82,70,217,255,139,111,183,185,17,13,166,82,167,90,64,107,156,96,47,125,16,197,105,96,226,243,107,7,149,165,77,158,146,21,248,50,105,55,251,161,121,46,30,231,130,226,96,198,240,76,10,27,3,107,190,133,217,21,52,233,157,246,202,205,194,36,148,56,37,64,12,249,150,116,35,27,42,86,72,183,201,237,84,85,17,6,222,47,207,178,31,144,88,165,173,126,208,120,8,53,160,79,249,229,104,97,195,62,47,87,192,109,112,101,86,79,65,234,104,43,29,123,58,236,67,4,235,56,3,212,233,212,100,5,118,161,200,146,177,52,64,170,129,220,141,185,227,1,113,131,87,24,141,225,114,89,200,166,27,41,241,49,161,92,65,97,244,97,203,178,121,147,205,202,229,172,210,86,222,39,59,151,179,169,195,4,173,199,255,83,19,142,171,78,117,59,144,239,0,247,54,201,73,22,179,20,220,119,214,110,87,91,174,135,28,203,198,83,76,229,249,148,105,227,136,122,204,138,126,92,64,196,171,125,141,1,5,216,149,40,39,201,172,33,81,38,146,125,144,75,208,185,219,126,244,203,217,97,169,192,175,163,134,43,97,182,93,209,193,67,66,237,29,64,105,14,120,94,225,158,43,64,210,226,160,125,216,21,70,254,50,43,243,28,31,89,231,127,91,212,210,17,110,175,126,249,16,63,238,18,112,143,240,200,173,158,18,107,75,180,91,209,117,238,95,67,174,133,131,242,238,27,250,17,84,3,210,125,219,114,18,230,7,54,215,147,156,137,25,126,114,57,241,179,35,136,81,95,148,191,210,203,41,159,116,14,156,165,254,98,12,104,146,220,56,67,209,10,38,149,153,243,105,134,137,197,200,98,78,182,195,236,121,106,114,179,119,81,4,214,191,107,97,215,207,135,18,228,155,165,70,47,40,92,215,246,31,164,59,98,170,91,76,159,77,142,103,234,139,115,231,162,194,208,43,50,196,185,238,173,34,28,158,33,127,232,223,175,34,143,145,149,182,37,152,108,201,215,83,249,37,178,183,28,84,229,53,240,101,244,44,207,103,221,238,10,103,153,34,138,175,147,155,71,139,110,135,89,49,126,157,55,179,0,6,171,183,48,242,11,230,178,126,79,108,83,30,73,196,100,194,23,134,140,232,61,76,238,46,32,105,178,179,170,194,20,115,7,59,230,247,226,224,139,67,137,241,150,130,193,220,79,44,50,177,81,8,85,202,10,200,105,226,196,113,126,164,139,6,189,244,126,251,190,210,221,81,61,16,225,244,241,77,182,14,201,35,182,112,40,2,130,6,190,155,45,25,79,119,148,25,165,238,190,100,249,84,143,20,201,181,218,255,34,162,96,11,224,156,71,197,20,99,130,158,106,63,35,126,11,71,203,249,232,70,65,102,220,7,255,56,252,240,64,56,227,56,255,186,250,251,195,177,210,95,233,109,109,109,216,113,147,96,174,72,97,222,92,203,216,224,5,52,164,56,214,84,122,27,86,105,237,235,81,87,5,86,222,60,120,247,3,86,137,210,35,11,196,243,196,175,2,142,58,36,193,113,96,154,95,102,153,183,171,49,8,34,50,95,208,195,91,202,182,43,151,253,55,224,168,69,72,215,31,236,41,114,188,195,215,30,226,82,115,244,123,206,95,200,245,204,247,246,207,38,140,207,98,8,116,221,235,108,255,186,146,68,231,226,16,22,80,247,7,206,94,250,127,189,186,151,109,18,227,34,68,86,186,141,124,171,183,149,154,110,233,11,25,56,249,85,46,137,111,108,87,83,185,77,19,46,58,135,214,58,115,27,116,87,181,255,122,109,195,216,122,127,174,1,168,33,135,128,65,19,43,31,253,127,6,76,126,187,26,173,34,102,223,92,42,47,136,132,128,127,9,164,27,194,70,152,126,192,194,2,55,145,132,185,42,238,218,239,126,232,221,103,130,69,90,220,150,79,193,195,38,106,241,55,228,167,225,48,65,101,171,120,235,30,180,50,211,145,60,255,182,143,103,96,78,106,195,123,141,145,36,78,226,213,224,196,165,46,176,233,8,143,89,202,43,14,62,231,53,15,114,94,113,50,159,168,206,228,6,24,183,91,130,12,151,141,242,162,44,15,12,31,138,182,210,243,29,7,236,127,100,205,69,79,212,8,175,21,199,61,200,15,192,113,159,104,167,85,204,228,81,23,150,198,161,200,133,194,236,72,200,237,226,171,187,188,217,106,21,19,207,61,126,126,63,121,228,20,145,189,249,200,138,72,167,211,129,123,81,103,138,52,187,7,58,175,28,21,209,233,249,137,4,159,114,17,208,142,189,93,180,44,248,43,135,215,151,26,184,78,227,118,154,219,90,71,84,141,101,130,89,221,164,156,155,110,247,169,152,159,13,153,82,53,120,212,226,127,206,223,180,221,121,217,51,53,110,193,104,109,136,145,13,154,164,138,25,123,43,127,6,255,237,254,22,168,240,59,130,104,70,48,251,14,115,238,85,176,110,79,186,90,225,150,48,217,87,19,79,38,216,181,50,164,100,186,133,229,174,14,34,32,111,102,143,3,30,42,115,226,235,93,3,230,2,66,34,48,128,238,13,103,14,62,27,113,117,186,149,139,89,161,138,252,253,196,164,4,177,174,134,14,195,50,151,222,197,64,124,124,69,123,190,141,247,219,1,33,68,43,252,240,34,67,2,107,61,75,61,180,63,250,244,27,40,29,77,192,45,192,190,213,149,107,13,175,217,34,106,100,127,156,177,27,225,42,66,199,90,240,45,188,153,48,42,138,241,164,106,168,163,206,255,63,71,115,251,73,141,246,245,124,92,134,140,210,219,47,216,133,188,17,242,46,247,244,39,161,94,162,63,153,41,144,211,67,164,181,235,58,25,224,5,130,190,68,229,123,235,34,4,141,109,120,74,131,250,66,94,186,33,109,68,153,147,200,247,121,135,91,153,118,83,47,252,212,91,50,238,101,49,203,124,63,39,48,101,160,213,87,224,145,109,126,194,29,163,157,123,179,116,34,192,248,171,97,53,87,253,100,147,14,93,42,173,58,144,162,143,85,229,92,185,220,158,227,85,186,105,76,180,248,140,86,86,94,183,225,49,99,222,58,39,156,51,18,90,192,2,67,45,110,185,73,69,5,177,167,173,215,230,251,89,49,158,203,182,38,48,255,128,174,57,194,203,166,168,178,7,71,85,49,197,48,114,78,157,202,145,193,142,101,158,48,164,166,112,251,31,207,46,245,129,62,46,53,100,106,253,175,177,216,177,167],
        "url_key":
        {
            "seq": 2,
            "peer_key": "0rD95mGwiZznl34bejOzwEOK+PZZZnOeLoKzw794TmSM=",
            "type": "base_x_public"
        }
    }
}

Response Message

Parameter Description

Table 3
ParameterRangeTypeDescription
new_version_componentobject arrayThe complete encrypted url information of the component file that needs to be upgraded, see Table 4 to get the detailed information of the member structure in the array.
Table 4
ParameterRangeTypeDescription
cipher0-1024stringciphertext derived from Request pubkey or randbyte API X25519 encryption, use base64 for character conversion.
key0-1024stringThe random number is a hexadecimal string and needs to be converted. The public key is in plain text. It is transmitted by Base64.
seq0-1000000intUse the seq returned by /API/*/TransKey/Get API .

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "new_version_component":[
            {
                "seq": 0,
                "peer_key" : "060kL4pXa9Br5Mt+/zsii4GllHfeXc/yR0jmP2Zfykzc=",
                "cipher" : "0bjEvTI4Lr8jsytAHx8bSXPNk7cuvIFYGCQjIUH2S/sVPnNQO"
            }
        ]
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Token

Function

This API is used to get system upgrade Token.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
file_namelen:0-256stringupgrade file name.
file_sizesize:100 << 20,(N88X,N88SX:200 << 20)intUpgrade file size.
upgrade_headsize:3 * 1024int array1KB data before the upgrade file.
base_secondary_authenticationobjectThe complete encrypted information of the file path. See base_secondary_authentication information table for more information.

Sample:

POST /API/Maintenance/SystemUpgrade/Token HTTP/1.1
{
    "version":"1.0",
    "data":{
        "file_name":"N7XXX_V230625V230625V230625V230701V230701V230701V230625V230625.sw",
        "file_size":74328284,
        "upgrade_head":[220,39,110,4,32,2,0,0,125,15,88,1,187,40,116,7,57,218,176,153,74,21,0,172,191,216,204,132,183,161,245,241,131,212,116,145,237,107,37,83,117,253,79,245,70,166,0,98,57,132,230,96,192,170,31,171,170,119,197,49,224,159,237,59,68,132,58,64,207,3,113,130,18,122,63,232,12,58,32,96,24,3,195,186,116,97,1,58,68,188,175,216,209,5,67,125,235,117,46,208,211,66,224,204,25,198,32,103,24,174,163,60,71,110,121,186,162,20,109,46,188,232,226,186,228,188,201,227,254,160,201,97,143,208,42,47,144,237,100,157,107,119,142,158,166,9,89,133,77,163,55,200,104,62,188,122,224,240,88,170,31,178,117,49,228,3,96,231,102,241,51,193,127,176,215,198,218,16,45,164,143,78,223,209,144,160,91,251,51,186,85,68,159,234,209,88,151,136,8,255,202,71,72,56,87,19,94,218,30,60,180,12,144,248,161,111,223,2,187,181,188,241,108,78,18,64,221,152,200,158,192,33,218,203,241,90,186,155,255,233,181,255,104,230,166,115,69,223,35,101,255,15,87,53,41,84,161,66,180,246,10,205,249,121,78,55,88,88,88,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,109,86,147,204,1,0,0,0,204,0,0,0,0,0,0,0,196,0,0,0,8,0,0,0,2,0,0,0,86,50,51,48,54,50,53,0,3,0,0,0,86,50,51,48,54,50,53,0,4,0,0,0,86,50,51,48,54,50,53,0,5,0,0,0,86,50,51,48,55,48,49,0,6,0,0,0,86,50,51,48,55,48,49,0,7,0,0,0,86,50,51,48,55,48,49,0,11,0,0,0,86,50,51,48,54,50,53,0,12,0,0,0,86,50,51,48,54,50,53,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,70,30,16,114,252,150,59,22,155,67,56,37,171,172,67,211,206,219,231,92,106,154,226,87,34,19,0,253,199,225,202,91,182,160,106,100,62,243,118,123,11,29,214,254,45,249,151,36,40,255,98,89,157,108,189,249,71,155,142,170,1,166,18,141,161,154,0,46,229,115,207,169,82,57,219,201,95,128,179,104,63,232,170,41,175,194,92,189,2,120,55,0,0,121,122,228,6,131,220,198,146,151,101,141,68,84,110,188,50,124,36,244,101,160,129,83,107,27,75,154,24,52,146,183,152,9,112,119,80,21,99,83,24,63,46,64,159,52,40,236,204,48,197,151,254,155,103,159,126,175,161,120,243,59,25,98,229,212,3,45,6,218,208,66,2,217,217,18,250,157,240,157,45,222,243,49,211,165,204,193,191,225,87,7,147,196,247,235,178,29,68,166,225,175,187,78,123,203,5,127,77,237,52,204,176,168,172,252,98,116,158,230,76,77,23,255,194,159,57,221,34,38,176,8,146,49,40,80,201,124,47,63,228,148,32,70,3,112,62,216,44,13,114,132,180,51,81,230,242,16,116,0,246,178,236,123,166,244,11,184,74,78,177,90,181,186,244,66,253,112,37,139,89,92,179,190,7,137,237,191,73,193,176,244,254,114,100,128,64,253,245,58,208,169,36,146,209,73,175,59,196,153,185,141,49,26,233,154,150,79,173,58,245,15,150,87,88,12,27,201,33,105,120,4,184,101,78,146,61,9,210,253,63,119,174,130,219,219,36,97,4,155,1,128,125,189,170,119,197,211,200,166,105,70,48,113,173,180,126,237,150,184,110,71,87,113,21,104,141,197,164,202,224,253,237,15,76,12,210,238,191,69,9,198,24,208,233,40,238,207,26,161,41,129,51,203,24,222,167,147,32,58,102,16,144,137,51,111,207,216,163,115,132,242,240,20,177,97,86,185,128,250,21,98,91,97,124,201,107,89,215,150,72,60,56,251,135,115,222,55,196,183,36,192,75,72,108,130,70,97,170,69,116,142,131,78,85,12,182,139,15,150,148,241,77,242,222,53,230,36,220,115,124,19,100,223,226,13,104,56,61,126,87,29,137,106,179,71,187,179,103,244,71,166,5,172,119,200,64,104,254,44,82,30,156,185,113,71,44,61,112,55,122,106,162,143,176,178,109,149,99,113,158,50,37,222,84,227,226,253,73,94,174,53,205,97,148,141,118,108,252,60,235,158,147,70,81,85,118,89,163,22,145,218,238,205,205,25,141,104,16,36,100,76,217,205,141,112,34,85,149,155,137,203,231,186,139,137,171,124,154,3,25,63,34,225,246,209,145,69,96,3,94,124,120,36,178,194,193,153,192,95,12,61,14,73,171,212,8,156,68,3,56,191,114,162,12,35,4,23,190,8,221,138,145,105,89,112,153,63,215,76,169,102,87,159,158,177,11,114,97,136,84,4,92,178,211,21,209,141,35,52,17,179,255,167,86,77,148,29,128,53,94,74,70,89,19,107,146,138,50,246,151,116,45,92,222,107,181,19,149,129,245,19,133,30,10,80,62,129,149,228,242,83,89,245,79,204,143,11,11,71,63,211,28,42,178,43,52,225,9,157,174,162,239,238,245,122,253,91,231,206,162,231,217,204,246,12,254,31,163,175,132,150,33,78,81,224,65,53,88,18,185,132,167,171,52,198,246,108,195,197,223,185,182,41,27,151,1,161,193,88,169,110,151,104,143,29,159,179,131,112,5,150,21,150,203,211,181,29,88,4,96,124,106,240,213,224,228,159,209,195,2,151,242,242,17,85,238,36,196,174,76,115,231,123,116,237,212,213,106,199,229,134,235,196,244,221,32,146,87,235,229,160,195,182,209,89,128,75,137,134,7,205,147,206,219,171,5,195,27,215,88,230,156,205,241,120,182,2,98,88,65,110,40,34,42,79,191,222,25,61,37,119,195,168,203,150,255,107,247,150,123,54,185,156,205,5,26,74,114,241,28,26,214,72,100,162,52,64,114,240,14,255,12,205,175,182,105,242,26,34,188,195,36,230,246,248,3,42,106,162,130,176,106,96,94,5,161,148,117,235,213,89,202,124,218,80,241,58,189,200,157,171,132,142,125,118,57,136,199,179,155,207,169,127,213,229,75,207,141,43,208,222,146,49,180,53,210,66,176,224,112,119,12,73,97,129,135,191,124,133,95,18,166,226,179,153,141,85,162,143,139,221,148,33,181,120,34,173,23,198,239,200,219,119,118,76,39,29,133,158,157,253,157,124,86,240,62,49,193,111,66,216,127,33,146,133,112,14,36,104,35,30,157,147,223,116,249,232,30,7,40,168,21,129,66,188,112,52,104,25,118,59,222,126,252,136,37,218,73,131,203,88,121,191,13,146,203,206,252,89,148,248,54,49,99,183,65,82,70,217,255,139,111,183,185,17,13,166,82,167,90,64,107,156,96,47,125,16,197,105,96,226,243,107,7,149,165,77,158,146,21,248,50,105,55,251,161,121,46,30,231,130,226,96,198,240,76,10,27,3,107,190,133,217,21,52,233,157,246,202,205,194,36,148,56,37,64,12,249,150,116,35,27,42,86,72,183,201,237,84,85,17,6,222,47,207,178,31,144,88,165,173,126,208,120,8,53,160,79,249,229,104,97,195,62,47,87,192,109,112,101,86,79,65,234,104,43,29,123,58,236,67,4,235,56,3,212,233,212,100,5,118,161,200,146,177,52,64,170,129,220,141,185,227,1,113,131,87,24,141,225,114,89,200,166,27,41,241,49,161,92,65,97,244,97,203,178,121,147,205,202,229,172,210,86,222,39,59,151,179,169,195,4,173,199,255,83,19,142,171,78,117,59,144,239,0,247,54,201,73,22,179,20,220,119,214,110,87,91,174,135,28,203,198,83,76,229,249,148,105,227,136,122,204,138,126,92,64,196,171,125,141,1,5,216,149,40,39,201,172,33,81,38,146,125,144,75,208,185,219,126,244,203,217,97,169,192,175,163,134,43,97,182,93,209,193,67,66,237,29,64,105,14,120,94,225,158,43,64,210,226,160,125,216,21,70,254,50,43,243,28,31,89,231,127,91,212,210,17,110,175,126,249,16,63,238,18,112,143,240,200,173,158,18,107,75,180,91,209,117,238,95,67,174,133,131,242,238,27,250,17,84,3,210,125,219,114,18,230,7,54,215,147,156,137,25,126,114,57,241,179,35,136,81,95,148,191,210,203,41,159,116,14,156,165,254,98,12,104,146,220,56,67,209,10,38,149,153,243,105,134,137,197,200,98,78,182,195,236,121,106,114,179,119,81,4,214,191,107,97,215,207,135,18,228,155,165,70,47,40,92,215,246,31,164,59,98,170,91,76,159,77,142,103,234,139,115,231,162,194,208,43,50,196,185,238,173,34,28,158,33,127,232,223,175,34,143,145,149,182,37,152,108,201,215,83,249,37,178,183,28,84,229,53,240,101,244,44,207,103,221,238,10,103,153,34,138,175,147,155,71,139,110,135,89,49,126,157,55,179,0,6,171,183,48,242,11,230,178,126,79,108,83,30,73,196,100,194,23,134,140,232,61,76,238,46,32,105,178,179,170,194,20,115,7,59,230,247,226,224,139,67,137,241,150,130,193,220,79,44,50,177,81,8,85,202,10,200,105,226,196,113,126,164,139,6,189,244,126,251,190,210,221,81,61,16,225,244,241,77,182,14,201,35,182,112,40,2,130,6,190,155,45,25,79,119,148,25,165,238,190,100,249,84,143,20,201,181,218,255,34,162,96,11,224,156,71,197,20,99,130,158,106,63,35,126,11,71,203,249,232,70,65,102,220,7,255,56,252,240,64,56,227,56,255,186,250,251,195,177,210,95,233,109,109,109,216,113,147,96,174,72,97,222,92,203,216,224,5,52,164,56,214,84,122,27,86,105,237,235,81,87,5,86,222,60,120,247,3,86,137,210,35,11,196,243,196,175,2,142,58,36,193,113,96,154,95,102,153,183,171,49,8,34,50,95,208,195,91,202,182,43,151,253,55,224,168,69,72,215,31,236,41,114,188,195,215,30,226,82,115,244,123,206,95,200,245,204,247,246,207,38,140,207,98,8,116,221,235,108,255,186,146,68,231,226,16,22,80,247,7,206,94,250,127,189,186,151,109,18,227,34,68,86,186,141,124,171,183,149,154,110,233,11,25,56,249,85,46,137,111,108,87,83,185,77,19,46,58,135,214,58,115,27,116,87,181,255,122,109,195,216,122,127,174,1,168,33,135,128,65,19,43,31,253,127,6,76,126,187,26,173,34,102,223,92,42,47,136,132,128,127,9,164,27,194,70,152,126,192,194,2,55,145,132,185,42,238,218,239,126,232,221,103,130,69,90,220,150,79,193,195,38,106,241,55,228,167,225,48,65,101,171,120,235,30,180,50,211,145,60,255,182,143,103,96,78,106,195,123,141,145,36,78,226,213,224,196,165,46,176,233,8,143,89,202,43,14,62,231,53,15,114,94,113,50,159,168,206,228,6,24,183,91,130,12,151,141,242,162,44,15,12,31,138,182,210,243,29,7,236,127,100,205,69,79,212,8,175,21,199,61,200,15,192,113,159,104,167,85,204,228,81,23,150,198,161,200,133,194,236,72,200,237,226,171,187,188,217,106,21,19,207,61,126,126,63,121,228,20,145,189,249,200,138,72,167,211,129,123,81,103,138,52,187,7,58,175,28,21,209,233,249,137,4,159,114,17,208,142,189,93,180,44,248,43,135,215,151,26,184,78,227,118,154,219,90,71,84,141,101,130,89,221,164,156,155,110,247,169,152,159,13,153,82,53,120,212,226,127,206,223,180,221,121,217,51,53,110,193,104,109,136,145,13,154,164,138,25,123,43,127,6,255,237,254,22,168,240,59,130,104,70,48,251,14,115,238,85,176,110,79,186,90,225,150,48,217,87,19,79,38,216,181,50,164,100,186,133,229,174,14,34,32,111,102,143,3,30,42,115,226,235,93,3,230,2,66,34,48,128,238,13,103,14,62,27,113,117,186,149,139,89,161,138,252,253,196,164,4,177,174,134,14,195,50,151,222,197,64,124,124,69,123,190,141,247,219,1,33,68,43,252,240,34,67,2,107,61,75,61,180,63,250,244,27,40,29,77,192,45,192,190,213,149,107,13,175,217,34,106,100,127,156,177,27,225,42,66,199,90,240,45,188,153,48,42,138,241,164,106,168,163,206,255,63,71,115,251,73,141,246,245,124,92,134,140,210,219,47,216,133,188,17,242,46,247,244,39,161,94,162,63,153,41,144,211,67,164,181,235,58,25,224,5,130,190,68,229,123,235,34,4,141,109,120,74,131,250,66,94,186,33,109,68,153,147,200,247,121,135,91,153,118,83,47,252,212,91,50,238,101,49,203,124,63,39,48,101,160,213,87,224,145,109,126,194,29,163,157,123,179,116,34,192,248,171,97,53,87,253,100,147,14,93,42,173,58,144,162,143,85,229,92,185,220,158,227,85,186,105,76,180,248,140,86,86,94,183,225,49,99,222,58,39,156,51,18,90,192,2,67,45,110,185,73,69,5,177,167,173,215,230,251,89,49,158,203,182,38,48,255,128,174,57,194,203,166,168,178,7,71,85,49,197,48,114,78,157,202,145,193,142,101,158,48,164,166,112,251,31,207,46,245,129,62,46,53,100,106,253,175,177,216,177,167],
        "base_secondary_authentication":{
            "seq":2,
            "cipher":"FWRsfpB05p/NfdTleipoBR1d06/dZA2xO8cDJiF4CYM="
        }
    }
}

Response Message

Parameter Description

Table 2
ParameterRangeTypeDescription
upgrade_tokenstringUpgrade token.
upgrade_timeout0-3600intUpgrade timeout.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "upgrade_token": "f06f890cc1aed4a04528516c2d331df4",
        "upgrade_timeout": 1800
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

ComponentUpgrade

Function

This API is used to upgrade component.

Request Message

File data.

Sample:

POST /API/Maintenance/SystemUpgrade/ComponentUpgrade HTTP/1.1
{
    "version":"1.0",
    "data":{
    }
}

Response Message

None.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Upgrade

Function

This API is used to upgrade system.

Request Message

File data.

Sample:

POST /API/Maintenance/SystemUpgrade/Upgrade HTTP/1.1
{
    "version":"1.0",
    "data":{
    }
}

Response Message

None.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

VersionCheck

Function

This API is used to check for upgrade.(NVR needs to verify the version information in the ftp and http upgrade configuration files of IPC)

Request Message

None.

Parameter Description

Table 1

ParameterRangeTypeDescription
FirewareVersionstringSoftware version
FirewarePackstringPackage name
url_keyJSON objectThe public key used to encrypt the url,(show as follow Table 2)

Table 2

ParameterRangeTypeDescription
seq0-1000000intThe seq returned using the Requst pubkey or randbyte API
peer_key0-1024stringThe X25519 public key encrypted by the client, Use base64 transfer
typestringPeer_key type

Sample:

POST /API/Maintenance/SystemUpgrade/VersionCheck HTTP/1.1
{
    "data": {
        "FirewareVersion": "V30.85.8.2.4_231030",
        "FirewarePack": "CH529N_F128M_SF_ENU_V30.85.8.2.4_231030_08d1defe_W.sw",
        "url_key": {
            "type": "base_x_public",
            "peer_key": "0VSd/xFlbwJk8LnAuLk4VxTEVYy0kQrp5csFzL3BKryU=",
            "seq": 0
        }
    },
    "version": "1.0"
}

Response Message

Parameter Description

Table 3

ParameterRangeTypeDescription
ComponentDectectFileJSON objectComplete encrypted URL information of the component detection file (show as follow Table 4)
FirewarePackJSON objectComplete encrypted URL information of the upgrade package(show as follow Table 4)

Table 4

ParameterRangeTypeDescription
cipher0-1024stringEncrypted password value (Encryption using the X25519 key derived by the Requst pubkey or randbyte API), Use base64 transfer
key0-1024stringThe random number is hex string, which needs to be converted. The public key is plaintext. Base64 transmission is adopted.
seq0-1000000intThe seq returned using the Requst pubkey or randbyte API

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "FirewarePack": {
            "cipher": "0xvx5APr8wQYQeJ9ANgD3RWMpBPnixdG+9aCOtPqANUZ9r42Mr+FZJABjEUEnbjGNVbQ4hklQ+2aY43qOk3vhd7GsEI6eWoZS0a1k6W8rmw7y+I5yS6xK5T9wvZuMNKobdntDD6V/cU40PmdirqWFlM/u7g==",
            "seq": 0,
            "key": "05onKMVt56UvedIUCKVVLUlOXaE0JbI287Gu7zyqcoSA="
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Function

ANR

Function

This API is used to obtain client Macs.

URI

POST /API/ANRConfig/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including GetClientMac, SetANRInfo, GetANRTimeInfo.

GetANRTimeInfo

Function

This API is used to get parameter for Function > ANR page.

Request Message

see Function > ANR > SetANRInfo > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/ANRConfig/GetANRTimeInfo HTTP/1.1
{
"data": {
        " device_flag ": "88-DF-58-18-4F-47 "
    }
}

Response Message

table 1

ParameterRangeTypeDescription
start_timeunsigned int
end_timeunsigned int

Sample:

HTTP/1.1 200 OK
{
    "result": "success",
    "data": {
        "start_time":1481290144,
        "end_time":1481290249
        }
}

Error Code

See Response Messages Body and Common error_code for more information.

GetClientMac

Function

This API is used to set parameter for Function > ANR page.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
mac_addressstringClient Mac

Sample:

POST /API/ANRConfig/GetClientMac HTTP/1.1
{
    "version": "1.0",
    "data": {
        "mac_address":"88-DF-58-18-4F-47 "
    }
}

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 40
{
    "result": "success",
    "data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

SetANRInfo

Function

This API is used to set parameter for Function > ANR page.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
enableintANR switch
device_flagstringClient Mac

Sample:

POST /API/ANRConfig/SetANRInfo HTTP/1.1
{
"data": {
        " device_flag ": "88-DF-58-18-4F-47 "
    }
}

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 40
{
    "result": "success",
    "data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

ETR

Function

This API is used to obtain client Mac

URI

POST /API/Function/ETR/ {Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Set.

Set

Function

This API is used to set parameter for Function > ETR page.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
EventStreamStateboolEvent stream status

Sample:

POST /API/StreamConfig/EventStreamState/Set HTTP/1.1
{
    "data": {
        "EventStreamState":true
    }
}

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 40
{
    "result": "success",
    "data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Request I Frame

Function

This API is used for get or setRequest I Frame page parameters.

URI

POST /API/RequestIDR/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range,

Range

Function

This API is used to get parameter range for Function > Request I Frame page.

Note:

The Range provides reference information for client UI input limits and API request limits.

Request Message

{ "chn_no": 0, “stream_type”:” Mainstream” }

Sample:

POST/API/RequestIDR HTTP/1.1
{
	“data”: {
    "chn_no": 0,
    “stream_type”:” Mainstream”
}
}

Response Message

{
“result”:”success”,
“data” : { }
}

Parameter Description

Table 1

ParameterRangeTypeDescription
chn_noint
stream_type"Mainstream","Substream","Mobilestream"string

Tips:

The response message of the Range request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

POST/API/RequestIDR HTTP/1.1
{
	“data”: {
"chn_no": 0,
“stream_type”:” Mainstream”
}
}

Error Code

See Response Messages Body and Common error_code for more information.

Snapshot

Function

This API is used for get the information of Snapshot

URI

POST /API/Snapshot/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range, Get.

Get

Function

This API is used to get parameter for Function > Snapshot page.

Request Message

See Function > Snapshot > Range > Parameter Description > Table 2 for parameter description.

Sample:

POST /API/Snapshot/Get
HTTP/1.1
{
    "version": "1.0",
    "data": {
        "channel":"CH1",
        "snapshot_resolution":"1280 x 720",
        "reset_session_timeout":false
    }
}

Response Message

Parameter Description

Table 1

ParameterRangeTypeDescription
channelstringchannel number
snapshot_resolutionThe maximum capture resolution should not exceed 1920 * 1080stringSnap resolution
img_timeintUTC Time
img_encodes“base64”stringcodec type
img_format"image/jpeg"stringimage type
img_datastringpicture data

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "ima_time":"1973912484",
        "img_encodes":"base64",
        "img_format":"image/jpeg",
        "ima_data":""
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Range

Function

This API is used to get parameter range for Function > Snapshot page.

Note:

The Range provides reference information for client UI input limits and API request limits. When sending Get requests, the parameters must be strictly limited according to the Range, otherwise the request may be rejected by the device.

Request Message

None.

Sample:

POST /API/Snapshot/Range HTTP/1.1
{
    "version": "1.0",
    "data":{"reset_session_timeout":false}
}

Response Message

Parameter Description

Table 1

ParameterRangeTypeDescription
channel_infoJSON arraySingle Channel Information JSON show as follow table 2

Table 2

ParameterRangeTypeDescription
channelstringchannel number
snapshot_resolutionThe maximum capture resolution should not exceed 1920 * 1080stringSnap resolution
reset_session_timeoutboolReset the session timeout to true by default. This field is only valid when the preview/playback session timeout option is turned on.

Tips:

The response message of the Range request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
Access-Control-Allow-Origin: *
Content-Length: xx
Connection: keep-alive
{
    "result": "success",
    "data": {
        "channel_info": {
            "type": "array",
            "min_size": 0,
            "max_size": 1,
            "items": [{
                "channel": "CH1",
                "snapshot_resolution": {
                    "description": "The resolution of the image is no more than 1920*1080",
                    "type": "string",
                    "items": [
                        "1280x720",
                        "640x480",
                        "320x240"
                    ]
                }
            }]
        },
        "img_encode": {
            "type": "string",
            "min_len": 0,
            "max_len": 128
        },
        "img_format": {
            "type": "string",
            "min_len": 0,
            "max_len": 128
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Event

event check

Event_check & Event_push

Function

Event check:

Used to poll to obtain device alarms.

Event push:

It is used for the device to actively push device alarms.

Explain

(1), alarm events and intelligent tweets are realized by requesting API interface /API/Event/Check in eventcheck mode; For compatibility reasons, the Smart Tweet API/ API/AI/processAlarm/Get and the event stream are retained and gradually removed in later major releases.

(2) Add screenshots for alarm events. Note:

Screenshot resolution: Support 640 * 480 and 1280 * 720, default 640 * 480; You can use the /API/Event/Check interface to specify the resolution for capturing snapshots. If multiple clients specify the resolution for capturing snapshots, the last resolution takes effect.

Alarm events that need screenshots: Motion, IO, PIR, Sound, Occlusion, and all AI alarms.

Because the screenshot uses the screenshot caching mechanism: capturing pictures with the same resolution shares a memory buffer, capturing pictures with the same resolution within 1 second will only trigger one screenshot, if the screenshot is taken across seconds, it will re-take the screenshot and update the screenshot memory buffer data. In this way, only the buffer of the screenshots is held, and no deep copy is made.

(3) If the push delay of the alarm event is large because of a network problem, the alarm event and the screenshot data will be different

(4). For alarms such as motion_alarm, the value can be true or false. If the value is true, an alarm is generated. If the value is false, no alarm is generated. The client handles the alarm as required.

URL

Event check:

POST /API/Event/Check

Event push:

POST/GET {user defined in Event > Http_listening}

Parameter Specification

Get alarms and push alarms: Get&Push

Get

Function

This API is used to get parameter for Event > event check page.

Request Message

Event_push

POST: Request message see table 1
GET: Request message see table 20

Event_check

Table 1

ParameterRangeTypeDescription
reader_idunsigned intOptional, when not input, the board checks all alarm information and outputs readerID
sequenceunsigned intOptional, when not input, the board checks all alarm information and outputs readerID
lap_numberunsigned intOptional, when not input, the board checks all alarm information and outputs readerID
plus_eventchk"eventAiPushPic"stringMust bring, subscription required
ext_dataJson arraySubscription method needs to be taken, carry the type of client needs to subscribe, see table 1.1
subscribe_idunsigned intCurrent reader index
data_posunsigned intIndex of current reader read events

table 1.1

ParameterRangeTypeDescription
subscribe_typeJson ArraySubscription Type For the type of subscription required by the client, see table 1.2
unsubscribe_typeJson ArrayUnsubscribed types Do not include certain types in already subscribed types, see table 1.2
snap_resolution"640x480"
"1280x720"
"no_snapshot"
stringOptional event carry picture resolution,no_snapshot: Without chart

table 1.2

ParameterRangeTypeDescription
event"all"
"motion"
"io"
"videoloss"
"videohide"
"int"
"sound_dectet"
Json ArrayOrdinary event type
aipushpic"all"Json arrayIntelligent tweet type

Sample:

POST /API/Event/Check
HTTP/1.1
{
    version": "1.0",
    "data": {
        "plus_eventchk": "eventAiPushPic",
        "ext_data": {
                        "subscribe_type": [{"event": ["all"]}]
                        },
        "reader_id": 1,
        "sequence": 9595,
        "lap_number": null
    }
}

Response Message

Parameter Description

Table 2

ParameterRangeTypeDescription
reader_idintOptional, when the request has no readerID, create a readerID and return it.
sequenceintCurrent latest sequence position
lap_numberunsigned intThe number of laps the current sequence position belongs to
subscribe_record_signboolOptional, the default is to subscribe to the recording flag .If the field passes true or does not pass this field, it means to subscribe to the recording flag, and if the field passes false, it means not to subscribe to the recording flag
subscribe_intelligenceboolOptional, subscribe to smart alarm events by default.If the field passes true or does not pass this field, it means subscription, and if the field passes false, it means not to subscribe to the smart alarm event
alarm_listJson arraySingle alarm show as table
log_collectJson ObjectOptional. When the log collection NVR mode is enabled, you can push log messages table 23
heat_alarm"HeatAlarm"stringOptional, when there is no alarm_list, output heartbeat alarm message
videoloss_statusboolDynamically display the video loss logo
alarm_snap_dataJson arrayFor the image data carried by the event (event push is not supported by udp), see table 15
ai_snap_pictureJson objectIntelligent map data, see table 16
ccCountJson arrayCc count statistics, see table 17
hmlistjson arrayHeat map statistics, see table 18
device_namestringdevicename
dev_net_infoJson arrayDevice information, see table 19
system_alarmJson arrayDevice alarm see table 3(optional)
channel_alarmJson arraySingle channel alarm see table 21(optional)
timestring"MM/DD/YYYYhh:mm:ss"

Table 3

ParameterRangeTypeDescription
device_nameMax_length:31stringEquipment name (optional)
hddjsonSee Table 4 (optional)

Table 4

ParameterRangeTypeDescription
hdd_alarm_type"Ok","Error"stringHard disk alarm type
hdd_alarm_info"Full"
"Bad"
"Unformat"
"Readonly"
"Warning"
"NoDisk"
stringHard disk error warning information

Table 5

ParameterRangeTypeDescription
channelstring
motion_alarmbool(optional)
record_flagjsonVideo logo (optional) See Table 6
camera_connect_statusjson(optional)Table 7
io_alarmbool(optional)
pir_alarmbool(optional)
channel_namestring(optional)
Floodlight_AudioAlarmjson(optional)Table 8
ptz_alarmjson(optional) Table 9
videolossbool(optional)
int_alarmJson Object(optional)Table 10
alarm_stateJson array(optional)Table 10
motion_smart_alarmJson ObjectTable 13
alarm_out_stateJson Array(NVR/DVR) See Table 14
wireless_ipc_typeint(wireless dedicated)Wireless IPC power supply type, battery 1, long-term power supply 2
remote_pair_stateMax_length:20string(wireless dedicated)Report the result of remote matching
Pair success:paired successfully
Pair fail:Pairing failed
Timeout:time out
Pair is not supported:pairing not supported
take_alarm_snapunsigned intCarry the id corresponding to the picture
chn_aliasstringFor channel

Table 6

ParameterRangeTypeDescription
m"R""G"stringMotion Alarm
"R":Alarm recording status "G":Alarm without recording state
i"R""G"stringIO Alarm
"R":Alarm recording status "G":Alarm without recording state
p"R""G"stringPIR Alarm
"R":Alarm recording status "G":Alarm without recording state
s"R""G"stringIntelligent Alarm
"R":Alarm recording status "G":Alarm without recording state
r"SR""MR"stringRecording
"SR":Alarm recording status,"MR":On-board manual recording status
h"R"stringSDcardAlarm
"R":Hard disk alarm
c"R""G"stringVideoTampering
"R":Alarm recording status "G":Alarm without recording state

Table 7

Parameter Range Type Description
connect_status "NotConfigured"
"Online"
"Offline"
"Sleep"
"NotPaired"
string Channel connection status
ability "Fisheye"
"Binoculars"
"Ptz"
"NewPtz"(NVR/DVR Need not)
"HkPtz"
"Iris"
"Mainstream"
"Substream"
"Mobilestream"
"FloodLight"
"AudioAlarm"
"AlarmOutNum"
"TalkHalf"
"TalkFull"
"Color"
"RedBlueLight"
"NotAutoReconnect"
"Pir"
"Cover"
string array
protocol Max length: 15byte string IPC access protocol
input_num Alarm input
output_num Alarm Output
intelligent_ability "CrossCount"
"HeatMap"
"SOD"
"LCD"
"PVD"
"FD"
"PID"
"CrowdDensity"
"LPD"
"RSD"
"QD"
"AttributeDetect"
"Intrusion"
"RegionEntrance"
"RegionExiting"
"FireDetection"
"TempMeas"

Table 8

ParameterRangeTypeDescription
floodlight_switchtrue falseboolWhite light real-time switch,false: close true: open
flood_light_value1 - 100intBrightness of white light
floodlight_value_range1 - 100ObjectWhite light brightness range
audioAlarm_switchtrue falseboolHorn real-time switch false: close true: open
audioAlarm_value1 - 10intSpeaker volume
audioAlarm_value_range1 - 10ObjectSpeaker volume range

Table 9

ParameterRangeTypeDescription
cur_zoom_valueintCurrent position of zoom (temporarily unused)
zoom_step0 - 2int0:1 step 1:5 Step 2:20 Step (temporarily unused)
cur_focus_valueintFocus Current location (temporarily unused)
focus_step0 - 2int0:1 Step 1:5 Step 2:20 Step (temporarily unused)
auto_focus_stateint0:Focus ends,1:Focusing (temporarily unused)
shift_rangeint(temporarily unused)
ptz_cruise_stateboolPreset point cruise state
ptz_line_scan_stateboolLine scan cruise state

Table 10

ParameterRangeTypeDescription
alarm_valtrue|falsebool
int_subtypevideo_tampersod
lcd
pid
pd
fd
sound
avd
pd_vd
cc
cd
qd
lpd
rsd
ad
intrusion
region_entrance
region_exiting
fireDetect
measure
string"video_tamper":Video tampering alarm
"sod":SOD object lost legacy
"lcd":LCD cable alarm
"pid":PID perimeter alarm
"pd":PD human body
"fd":FD face
"sound":Sound alarm
"avd":avd alarm
"pd_vd":pd_vd alarm
"cc":cc alarm
"cd":Crowd Density Detection
"qd":Queue length detection
"lpd":license plate detection
"rsd":Abnormal sound detection
"ad":Face attribute
"fireDetect":flame detection
"measure":temperature measurement

Table 11

Error CodeDescription
readerID_invalid
position_invalid

Table 12

ParameterRangeTypeDescription
channel1 - 127intIntercom channel number
talkback_closetrue|falseboolWhether to close the intercom
error_code"localuser_operating_cannot_talkback"
"localuser_close_talkback"
stringIntercom off reason
localuser_operating_cannot_talkback:The user is in the setting interface
localuser_close_talkback:User turns off intercom

Table 13

ParameterRangeTypeDescription
MDtimestring"MM/DD/YYYYhh:mm:ss"
MDStatestring array

Table 14

ParameterRangeTypeDescription
Local->1boolLocal->1 channel alarm switch
…………
Local->xboolLocal->x channel alarm switch
IP_CH1->1boolIP_CH1->1 channel alarm switch
…………
IP_CHx->xboolIP_CHx->x channel alarm switch

Table 15

ParameterRangeTypeDescription
chnnelstringdevicename
chn_aliasstringeventpush carry
img_idintThe id that the picture carries
img_encodestringPicture coding format
img_formatstringpicture format
img_datastringPicture data

Table 16

ParameterRangeTypeDescription
Chnintdevicename
strChnstringdevicename
Chn_aliasstringcarry
StartTimeunsigned intPicture coding format
EndTimeunsigned intPicture end time
SnapIdintPicture id
TypeintImage type
ImageAllInfobase64智能推图除图片外的全部信息
ObjectImagebase64Alarm graph
backGroundbase64background-image

Table 17

ParameterRangeTypeDescription
channelstringdevicename
chn_alaisstringeventpush carry
cc_typeinttype
cc_objNumintcc alarm count
cc_versionintversion
ccin_numintcc entry quantity
ccout_numintcc outgoing quantity
cc_in_sum_numintcc enters total number
cc_out_sun_numintcc out total quantity

Table 18

ParameterRangeTypeDescription
channelstringdevicename
chn_alaisstringeventpush carry
hm_typeinttype
map_numintnumber of alarm
hm_versionintversion number
hm_widthintThermogram width
hm_heightintHeat map height
map_lensintlength
hm_datatypeinttype of data
hm_objNumintThermogram quantity
hm_imgstringHeat map image data

Table 19

ParameterRangeTypeDescription
phystringthe Ethernet card
ipstringIP address
macstringmac address
ChnnelNamestringThe name of the page setting

eventpush is pushed by GET

URL

GET {user defined in Event > Http_listening}?EventType=xx&EventTime=xx&EventAction=xx&MACAddress=xx
table 20

Table 20

ParameterRangeTypeDescription
EventType"VideoMotion"
"VideoBlind"
"SoundDetect"
"SOD"
"LCD "
"PID "
"PD_VD"
"FD"
"CC"
"AD"
"CD"
"QD"
"LPD"
"RSD"
stringIPC alarm type
EventTimestringAlarm trigger time
EventAction"start"
"stop"
stringAlarm status of IPC
MACAddressstringMAC address of IPC ,like D094662C1A8D

Table 21

ParameterRangeTypeDescription
channelstringdevicename
motion_reportjson objectFor the motion alarm parameters, see table 22

Table 22

ParameterRangeTypeDescription
alarm_stateboolReport the motion alarm status to the remote. (Optional) true: start false: end
alarm_typesmdstringAlarm type

Table 23

ParameterRangeTypeDescription
dir_namestringName of the log storage directory
file_namestringLog file name

Sample1:
user defined url: /API/AlarmEvent/EventPush

GET /API/AlarmEvent/EventPush?EventType=VideoMotion&EventTime=2022-5-26 11:5:0&EventAction=start&MACAddress=5C-F2-07-49-0F-24 HTTP/1.1
Host: 172.16.8.63:123
Accept: */*
Content-Type: application/json;charset=UTF-8

Sample2:

POST /API/Event/Check?2020-10-17%2014:21:33 HTTP/1.1
Content-Type: application/json; charset=UTF-8
Accept: application/json, text/javascript, */*; q=0.01
X-csrftoken: 14559384d58d55d9d80bf4baf048684f366c77905d665d99ba1bde2cdcf81b08
Content-Length: 2438
Cookie: session=cc3ec99c6f1295489c86f8842e1dd719c194c637af5b965a23932c41188a3acc
{
version": "1.0",
    "data": {
        "plus_eventchk": "eventAiPushPic",
        "ext_data": {"subscribe_type": [{"event": ["all"]}]},
        "reader_id": 1,
        "sequence": 9595,
        "lap_number": null
    }
}
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 2976
{
    "result": "success",
    "data": {
        "alarm_list": [{
            "time": "2023-08-25T08:38:58Z+08:00",
            "system_alarm": [{
                "device_name": "RS-CH281M8ND-DF-WA2812PW",
                "hdd": {
                    "hdd_alarm_type": "Error",
                    "hdd_alarm_info": "NoDisk"
                }
            }],
            "channel_alarm": [{
                "channel": "CH1",
                "record_flag": {"h": "R"}
            }]
        }],
        "log_collect": {
             "dir_name":"2023_07_04",
             "file_name": "20230704_211532_ch1.log.tar.gz"
         },
        "reader_id": 1,
        "sequence": 9596
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Http listening

Function

It is used to get or set the ALL ALARM config parameters.

URI

POST /API/AlarmConfig/EventPush/{Action}

Table 1 describes the parameters.

parameter-description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range, Get, Set.

Get

Function

This API is used to get parameter for Event > Http listening page.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
paramsJson ObjectSingle Channel Information JSON show as followTable 2

Table 2

ParameterRangeTypeDescription
name0,127stringchannel number
tableJson ObjectSingle Channel Information JSON show as followTable 3

Table 3

ParameterRangeTypeDescription
usernamestringUsername, or empty if none
passwordstringPassword
addrstringserver address
port1-65535intserver port
url0-128stringServer api interface, if not empty
enabletrue, falseboolAlarm push function switch
methodGET
POST
StringHTTP push type
keep_alive_intervalOFF
1min
5min
10min
Stringkeepalive interval
push_wayHTTP
UDP
stringpush method
udp_methodUnicast
Multicast
Broadcast
stringUDP push type
udp_addrstringUDP server address
udp_port1-65535intUDP server port

Sample:

POST /API/AlarmConfig/EventPush/Get HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 4

ParameterRangeTypeDescription
EventTypeVideoMotion
VideoBlind
SoundDetect
SOD
LCD
PID
PD_VD
FD
CC
AD
CD
QD
LPD
RSD
stringIPC alarm type
EventTimestringAlarm trigger time
EventActionStart
stop
stringAlarm status of IPC
ChannelNamestringchannel name
DeviceNamestringIPC device name
IPAddressstringIP address of the IPC
MACAddressstringIPC MAC address
PicDataJson ObjectThe push data when the smart alarm is sent, as shown in the Table 5 below

Table 5

ParameterRangeTypeDescription
SnapedObjInfotJson ObjectPush data when Pd&vd, PID, LCD intelligent alarm, as shown in the Table 6 below
PlateInfoJson ObjectPush data when LPD intelligent alarm, as shown in the table Table 7 below
FaceInfoJson ObjectThe push data when FD intelligent alarm is shown in the Table 8 below

Table 6

ParameterRangeTypeDescription
Chn0intIPC only uses channel 0
StrChn"CH1"stringchannel name
StartTimelong longstart time, picture with
EndTimelong longend time, picture with
SnapIdintimage id
Typeinttype ACPT_Face = 0,
ACPT_HumanBody = 1,
ACPT_Vehicle = 2,
ACPT_PIDHumanBody = 3,
ACPT_PIDVehicle = 4,
ACPT_LCDHumanBody = 5,
ACPT_LCDVehicle = 6,
ObjectImagestringBase64 encoded image data
BackgroundstringBase64 encoded background image data

Table 7

ParameterRangeTypeDescription
Id1-15charactersstringLicense plate number, unique identification.
GrpIdintgroup ID
SnapIdunsigned intThe Id of the picture when the front-end IPC captures
Type0intTypes of face capture objects
StrChnstringchannel
StartTimeunsigned long longSnapshot start time, such as: 2018-10-25 13:08:36, Unix timestamp (displayed according to UTC time zone uniformly)
EndTimeunsigned long longThe capture end time, such as: 2018-10-25 13:08:46, Unix timestamp (when displayed, it will be displayed uniformly in UTC time zone)
BgImgWidthunsigned intCapture the width of the picture
BgImgHeightunsigned intCapture the height of the picture
Chnintchannel
PlateColor0-5intLicense plate color, the possible values are as follows:
enum AIPlateColor_e {
    APC_Blue = 0,// blue
    APC_Green = 1,// green
    APC_Yellow = 2,// yellow
    APC_Black = 3,// black
    APC_White = 4,// White
    APC_Other = 5,// other colours
    APC_Max
};
CarBrandstringcar brand
CarTypestringcar model
SexintOwner gender: 0-male, 1-female
Owner"Mike"stringowner name
IdCode"415025199203050916"stringidentification number
Job"Software"stringProfession
Phone"12345678902"stringtelephone number
Domicile"Guangdong,Zhuhai,Xiangzhou ..."stringLiving
Remark"Detail of this person ..."stringRemark
ImageAllInfostringLicense plate picture information
PlateImg"base64(imgData)"stringlicense plate image
BgImg"base64(imgData)"stringBackground picture

Table 8

ParameterRangeTypeDescription
IdintFace Id, unique identification (nvr only)
GrpIdintGroup Id (nvr only)
SnapIdunsigned intThe Id of the picture when the front-end IPC captures
MD5stringMD5 value of the face image
Type0intTypes of face capture objects
StartTimeunsigned long longSnapshot start time, such as: 2018-10-25 13:08:36, Unix timestamp (displayed according to UTC time zone uniformly)
EndTimeunsigned long longThe capture end time, such as: 2018-10-25 13:08:46, Unix timestamp (when displayed, it will be displayed uniformly in UTC time zone)
BgImgWidthunsigned intCapture the width of the picture
BgImgHeightunsigned intCapture the height of the picture
ScoreintImage Score (Confidence)
SexintGender: 0-male, 1-female
Ageintage
GenderintFace attribute gender: 0-male, 1-female
Beautyintface score
fAttrAgeintface attribute age
GlassesTypeintGlasses type, 0: no glasses, 1: wear glasses (currently there is no distinction between sunglasses and ordinary glasses, all glasses are defaulted)
ExpressionintExpression type, 0: no expression, 1: smiling, 2: laughing
MouthMaskintWhether to wear a mask, 0: no mask, 1: with a mask
RaceintRace, 0: Yellow, 1: Caucasian, 2: Black, 3: Arab
Chnintchannel
StrChn“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…”
WIFI_CH1x”

The number of channels depends on the capabilities of the device.
stringchannel
Similarityfloatsimilarity
ModifyCntintThe number of revisions, the upper layer is read-only, and is updated in real time by the device every time the face information is modified (nvr only)
ImageAllInfostringpicture information
Image1"base64(imgData)"stringImported ID photo
Image2"base64(imgData)"stringCapture face pictures
Image3"base64(imgData)"stringA snapshot of the human body
Image4"base64(imgData)"stringCapture background image
Name"Mike"stringName (for nvr only)
Country"China"stringNationality (nvr only)
Nation"Han"stringEthnic (nvr only)
NativePlace"Guangdong,Zhuhai"stringHometown (nvr only)
IdCode"415025199203050916"stringID card (nvr only)
Job"Software"stringwork (nvr only)
Phone"12345678902"stringPhone (nvr only)
Email"abcd@163.com"stringMail (for nvr only)
Domicile"Guangdong,Zhuhai,Xiangzhou ..."stringCurrent residence (nvr only)
Remark"Detail of this person ..."stringEvaluation (for nvr only)
Feature"base64(imgData)"stringeigenvalue
FtVersionintFeature value version, it is meaningful only when comparing feature values with the same version, if return feature value, please return this field

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {"params": {
        "name": "",
        "table": {
            "username": "",
            "password": "",
            "password_empty": true,
            "addr": "",
            "port": 123,
            "url": "API/AlarmEvent/EventPush",
            "enable": false,
            "method": "POST",
            "keep_alive_interval": "0",
            "push_way": "HTTP",
            "udp_method": "Broadcast",
            "udp_addr": "",
            "udp_port": 5000
        }
    }}
}

Error Code

See Response Messages Body and Common error_code for more information.

Range

Function

This API is used to get parameter range for Event > Http listening page.

Note:

The Range provides reference information for client UI input limits and API request limits. When sending Get and Set requests, the parameters must be strictly limited according to the Range, otherwise the request may be rejected by the device.

Request Message

None.

Sample:

POST /API/AlarmConfig/EventPush/Range HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 1

ParameterRangeTypeDescription
method"GET","POST"stringmethod of HTTP
paramsobjectSingle Channel Information JSON show as followTable 2
limit_character"?","&"," "stringlimit character

Table 2

ParameterRangeTypeDescription
name0,127stringchannel number
tableobjectSingle Channel Information JSON show as followTable 3

Table 3

ParameterRangeTypeDescription
push_wayHTTP,UDPstringPush way
username0,63stringusername
password0,63stringpassword.
password_empty0/1boolpassword empty
addr0,31stringserver address
addr_demo"192.168.1.168 or example.comstringserver address demo
port0,65535int32server port
url0,63stringServer api interface
enable0/1boolAlarm push function switch
alarm_precise0/1boolalarm precise
method"GET","POST"stringMode of pushing alarms
keep_alive_interval0,1,5,10stringKeepalive interval
udp_method"Unicast","Multicast","Broadcast"stringUDP Push type
udp_addr0,32stringUDP Server Address
udp_port1,65535int32UDP Server port

Tips:

The response message of the Range request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "method": {
            "type": "string",
            "mode": "r",
            "items": [
                "GET",
                "POST"
            ]
        },
        "params": {
            "type": "object",
            "items": {
                "name": {
                    "type": "string",
                    "min_len": 0,
                    "max_len": 127
                },
                "table": {
                    "type": "object",
                    "items": {
                        "push_way": {
                            "type": "string",
                            "items": [
                                "HTTP",
                                "UDP"
                            ]
                        },
                        "username": {
                            "type": "string",
                            "min_len": 0,
                            "max_len": 63
                        },
                        "password": {
                            "type": "string",
                            "min_len": 0,
                            "max_len": 63
                        },
                        "password_empty": {"type": "bool"},
                        "addr": {
                            "type": "string",
                            "min_len": 0,
                            "max_len": 31
                        },
                        "addr_demo": {
                            "type": "string",
                            "items": ["192.168.1.168 or example.com"]
                        },
                        "port": {
                            "type": "int32",
                            "min": 1,
                            "max": 65535
                        },
                        "url": {
                            "type": "string",
                            "min_len": 0,
                            "max_len": 63
                        },
                        "enable": {"type": "bool"},
                        "method": {
                            "type": "string",
                            "items": [
                                "GET",
                                "POST"
                            ]
                        },
                        "keep_alive_interval": {
                            "type": "string",
                            "items": [
                                "0",
                                "1",
                                "5",
                                "10"
                            ]
                        },
                        "udp_method": {
                            "type": "string",
                            "items": [
                                "Unicast",
                                "Multicast",
                                "Broadcast"
                            ]
                        },
                        "udp_addr": {
                            "type": "string",
                            "min_len": 0,
                            "max_len": 32
                        },
                        "udp_port": {
                            "type": "int32",
                            "min": 1,
                            "max": 65535
                        }
                    }
                }
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set parameter for Event > Http listening page.

Request Message

refer to Event > event check > Range > Parameter Description > table 1

Sample:

POST /API/AlarmConfig/EventPush/Set HTTP/1.1
{
    "version": "1.0",
    "data": {"params": {
        "name": "",
        "table": {
            "username": "",
            "password_empty": true,
            "addr": "",
            "port": 123,
            "url": "API/AlarmEvent/EventPush",
            "enable": false,
            "method": "POST",
            "keep_alive_interval": "0",
            "push_way": "HTTP",
            "udp_method": "Broadcast",
            "udp_addr": "255.255.255.255",
            "udp_port": 5000
        }
    }}
}

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Http listening Push related description

Function

This API pushes alarms by Get.

URI

Get /API/AlarmEvent/EventPush?EventType=xx&EventTime=xx&EventAction=xx&MACAddress=xx

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Get.

Get

Function

This API is used to get parameter for Event > Http listening Push related description page.

Request Param

None.

Sample:

GET /API/AlarmEvent/EventPush?EventType=VideoMotion&EventTime=2023-7-13 7:18:49&EventAction=start&ChannelName=senvi&MACAddress=00-23-63-69-23-6D HTTP/1.1
Host: 172.16.8.138:123
Accept: */*
Content-Type: application/json;charset=UTF-8

Response Message

Sample:

Successful Response

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result":"success",
    "data":{}
}

Response Failure

HTTP/1.1 400 Bad Request
Connection:close
Content-Length:48
Content-Security-Policy:default-src 'self'; style-src 'self' 'unsafe-inline; script-src 'self' 'unsafe-eval' 'unsafe-inline'; worker-src 'self' data; blob:; media-src 'self' data: blob:; img-src 'self' data:
Content-Type:application/json
{
    "version":"1.0",
    "error_code":"http_format_err"
} 

Error Code

See Response Messages Body and Common error_code for more information.

Http listening Push related description

Function

This API device sends a liveliness request to the client server.

URI

POST /API/HttpListening/{action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including KeepLive.

KeepLive

Function

This API is used to get parameter for Event > Http listening Push related description page.

Request Message

ParameterRangeTypeDescription
timestringThe current number of seconds obtained through time()

Sample:

POST /API/HttpListening/KeepLive HTTP/1.1
Host: 172.16.8.238:123
Accept: */*
Content-Type: application/json;charset=UTF-8
Content-Length: 30

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result":"success",
    "data":{}
}

Error Code

See Response Messages Body and Common error_code for more information.

Http listening Push related description

Function

This API pushes alarms by POST.

URI

POST /API/AlarmEvent/EventPush{action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including POST.

POST

Function

This API is used to push Event > Http listening Push related description alarm event requests.

Request Message

Table 1

ParameterRangeTypeDescription
EventTypeVideoMotion
VideoBlind
SoundDetect
SOD
LCD
PID
PD_VD
FD
CC
AD
CD
QD
LPD
RSD
stringIPC alarm type
EventTimestringAlarm trigger time
EventActionStart
stop
stringAlarm status of IPC
ChannelNamestringchannel name
DeviceNamestringIPC device name
IPAddressstringIP address of the IPC
MACAddressstringIPC MAC address
PicDataJson ObjectThe push data when the smart alarm is sent, as shown in the Table 2 below

Table 2

ParameterRangeTypeDescription
SnapedObjInfotJson ObjectPush data when Pd&vd, PID, LCD intelligent alarm, as shown in the Table 3 below
PlateInfoJson ObjectPush data when LPD intelligent alarm, as shown in the table Table 4 below
FaceInfoJson ObjectThe push data when FD intelligent alarm is shown in the Table 5 below

Table 3

ParameterRangeTypeDescription
Chn0intIPC only uses channel 0
StrChn"CH1"stringchannel name
StartTimelong longstart time, picture with
EndTimelong longend time, picture with
SnapIdintimage id
Typeinttype ACPT_Face = 0,
ACPT_HumanBody = 1,
ACPT_Vehicle = 2,
ACPT_PIDHumanBody = 3,
ACPT_PIDVehicle = 4,
ACPT_LCDHumanBody = 5,
ACPT_LCDVehicle = 6,
ObjectImagestringBase64 encoded image data
BackgroundstringBase64 encoded background image data

Table 4

ParameterRangeTypeDescription
Id1-15charactersstringLicense plate number, unique identification.
GrpIdintgroup ID
SnapIdunsigned intThe Id of the picture when the front-end IPC captures
Type0intTypes of face capture objects
StrChnstringchannel
StartTimeunsigned long longSnapshot start time, such as: 2018-10-25 13:08:36, Unix timestamp (displayed according to UTC time zone uniformly)
EndTimeunsigned long longThe capture end time, such as: 2018-10-25 13:08:46, Unix timestamp (when displayed, it will be displayed uniformly in UTC time zone)
BgImgWidthunsigned intCapture the width of the picture
BgImgHeightunsigned intCapture the height of the picture
Chnintchannel
PlateColor0-5intLicense plate color, the possible values are as follows:
enum AIPlateColor_e {
    APC_Blue = 0,// blue
    APC_Green = 1,// green
    APC_Yellow = 2,// yellow
    APC_Black = 3,// black
    APC_White = 4,// White
    APC_Other = 5,// other colours
    APC_Max
};
CarBrandstringcar brand
CarTypestringcar model
SexintOwner gender: 0-male, 1-female
Owner"Mike"stringowner name
IdCode"415025199203050916"stringidentification number
Job"Software"stringProfession
Phone"12345678902"stringtelephone number
Domicile"Guangdong,Zhuhai,Xiangzhou ..."stringLiving
Remark"Detail of this person ..."stringRemark
ImageAllInfostringLicense plate picture information
PlateImg"base64(imgData)"stringlicense plate image
BgImg"base64(imgData)"stringBackground picture

Table 5

ParameterRangeTypeDescription
IdintFace Id, unique identification (nvr only)
GrpIdintGroup Id (nvr only)
SnapIdunsigned intThe Id of the picture when the front-end IPC captures
MD5stringMD5 value of the face image
Type0intTypes of face capture objects
StartTimeunsigned long longSnapshot start time, such as: 2018-10-25 13:08:36, Unix timestamp (displayed according to UTC time zone uniformly)
EndTimeunsigned long longThe capture end time, such as: 2018-10-25 13:08:46, Unix timestamp (when displayed, it will be displayed uniformly in UTC time zone)
BgImgWidthunsigned intCapture the width of the picture
BgImgHeightunsigned intCapture the height of the picture
ScoreintImage Score (Confidence)
SexintGender: 0-male, 1-female
Ageintage
GenderintFace attribute gender: 0-male, 1-female
Beautyintface score
fAttrAgeintface attribute age
GlassesTypeintGlasses type, 0: no glasses, 1: wear glasses (currently there is no distinction between sunglasses and ordinary glasses, all glasses are defaulted)
ExpressionintExpression type, 0: no expression, 1: smiling, 2: laughing
MouthMaskintWhether to wear a mask, 0: no mask, 1: with a mask
RaceintRace, 0: Yellow, 1: Caucasian, 2: Black, 3: Arab
Chnintchannel
StrChn“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…”
WIFI_CH1x”

The number of channels depends on the capabilities of the device.
stringchannel
Similarityfloat相似度
ModifyCntintThe number of revisions, the upper layer is read-only, and is updated in real time by the device every time the face information is modified (nvr only)
ImageAllInfostringpicture information
Image1"base64(imgData)"stringImported ID photo
Image2"base64(imgData)"stringCapture face pictures
Image3"base64(imgData)"stringA snapshot of the human body
Image4"base64(imgData)"stringCapture background image
Name"Mike"stringName (for nvr only)
Country"China"stringNationality (nvr only)
Nation"Han"stringEthnic (nvr only)
NativePlace"Guangdong,Zhuhai"stringHometown (nvr only)
IdCode"415025199203050916"stringID card (nvr only)
Job"Software"stringwork (nvr only)
Phone"12345678902"stringPhone (nvr only)
Email"abcd@163.com"stringMail (for nvr only)
Domicile"Guangdong,Zhuhai,Xiangzhou ..."stringCurrent residence (nvr only)
Remark"Detail of this person ..."stringEvaluation (for nvr only)
Feature"base64(imgData)"stringeigenvalue
FtVersionintFeature value version, it is meaningful only when comparing feature values with the same version, if return feature value, please return this field

Sample:

POST /API/AlarmEvent/EventPush HTTP/1.1
Host: 172.16.8.138:123
Accept: */*
Content-Type: application/json;charset=UTF-8
Content-Length: 231

Response Message

Channel Information JSON show as follow table 1.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result":"success","data":{
        "EventType":"VideoMotion",
        "EventTime":"2023-7-13 7:28:10",
        "EventAction":"stop",
        "ChannelName":"senvi",
        "DeviceName":"RS-CH281M8ND-DF-WA2812PW",
        "IPAddress":"172.16.11.186",
        "MacAddress":"00-23-63-69-23-6D"
        }
}

Error Code

See Response Messages Body and Common error_code for more information.

Subscribe to api Design

1.Expound

After setting the parameters of the current IPC through the WEB, the backend NVR/APP still displays unmodified parameters. In order to achieve real-time updates of backend parameters, subscription APIs are adopted. Subscription API, the backend will inform the frontend of the API used for pages that require real-time parameter updates. If the frontend sets a parameter that matches the subscription content page, it will inform the backend to obtain the parameter for that page.

2.Subscription Content (Scalable)

Table 1
ModuleAPI InterfaceInterface DescriptionRemarks
recordStreamConfig/MainStream/Range(Get)Main stream page parameter acquisition
recordStreamConfig/SubStream/Range(Get)sub stream page parameter acquisition
recordStreamConfig/MobileStream/Range(Get)Mobiles stream page parameter acquisition
recordStreamConfig/EventStream/Range(Get)Event stream page parameter acquisition
recordDeviceConfig/Audio/Range(Get)Audio page parameter acquisition
.....

3.Interaction

{width="5.768055555555556in" height="5.174305555555556in"}

When IPC goes online to NVR, NVR calls Login/DeviceInfo/Get, and IPC responds with all subscription APIs currently supported by IPC. The NVR calls Login/SubscribeApi/Set, and its request body is accompanied by the required subscription API or all subscription strings. If the IPC responds OK, it indicates successful subscription. If IPC parameter settings occur, subscribed APIs will be pushed to the backend from/API/Event/Check, and the backend will request the API to obtain parameter data.

4.Protocol formulation

1. Login/DeviceInfo/Get

Response message

Table 2
ParameterRangeTypeDescription
support_subscribe_api"AlarmConfig/Deterrence/Range"
"AlarmConfig/Deterrence/Get"
"StreamConfig/MainStream/Range"
"StreamConfig/MainStream/Get"
"StreamConfig/SubStream/Range"
"StreamConfig/SubStream/Get"
"StreamConfig/MobileStream/Range"
"StreamConfig/MobileStream/Get"
"DeviceConfig/Audio/Range"
"DeviceConfig/Audio/Get"
string arrayCurrently supported API for subscription
device_main_menu"localSetting"
"remoteSetting"
"playback"
"preview"
string arrayControl the ability set displayed on the upper right side of the preview
encode_type_ability"H.264"
"H.265"
"H.264+"
"H.265+"
string arraySupported encoding types
concentrate_linkage_schedule_ability"FloodLight"string arrayCentralized linkage scheduling capability
ptz_abilityJson ObjectParameters can be found in Table 3
support_ai_pidlcdJson ObjectDoes it support the perimeter and trip lines of AI
support_face_configboolFace search in the playback interface Playback - AI - Face Detection
support_repeat_visitorboolDoes it support the function of returning customers
support_face_attendanceboolWhether to support the face attendance function
support_human_vehicle_searchboolWhether the pedestrian and vehicle search function is supported
support_PidLcd_searchboolWhether the Pid Lcd search function is supported
support_heat_mapboolWhether the heat map function is supported
support_license_plateboolWhether the license plate recognition function is supported
support_lpd_enhanceboolWhether the enhanced license plate detection function is supported
support_Intrusion_searchboolWhether the intrusion detection function is supported
support_RegionEntrance_searchboolWhether to support the area entry search function
support_RegionExiting_searchboolWhether the enhanced license plate detection function is supported
device_preview_AI_item"FR"
"Human"
"Vehicle"
"Non-Vehicle"
"PID_Human"
"PID_Vehicle"
"PID_Non-Vehicle"
"LCD_Human"
"LCD_Vehicle"
"LCD_Non-Vehicle"
"LPR"
"Intrusion_Human"
"Intrusion_Vehicle"
"Intrusion_Non-Vehicle"
"RegionEntrance_Human"
"RegionEntrance_Vehicle"
"RegionEntrance_Non-Vehicle"
"RegionExiting_Human"
"RegionExiting_Vehicle"
"RegionExiting_Non-Vehicle"
string arrayAfter the new version, this field value is used for sidebar push chart, playback intelligent search, database statistics interface type display judgment
support_occlusion_detectionboolWhether the occlusion detection function is supported
device_preview_ability"face" "manual_alarm"string arrayControl the capability set displayed on the preview side
dev_play_backcapint0: old playback mode, 1: fast forward fast rewind only I-frame mode, 2: fast forward fast rewind I-frame mode
dev_typeunsigned long longDevice type
device_typemaxlength:32bytestringEquipment model
soundboolPreview whether the page displays the horn switch
live_sound_disableJson ObjectWhether to make preview sound parameters see Table 4
check_ftp_upgradeboolCheck whether the FTP upgrade is required
support_screen_shotsboolWhether to support screenshots
channel_numintNumber of channels
stream_profileJson ObjectSupport for several stream switching parameters see Table 5
default_stream“Mainstream”
“Substream”
stringIE Default stream type
support_ftp_upgradeboolWhether to support ftp upgrade
support_http_upgradeboolWhether to support http upgrade
support_get_upgradeUrlpwboolWhether to obtain the ftp upgrade URL password
backup_video_encryption_pwd6-32boolBackup video encryption
support_backup_video_encryptionboolWhether video backup is supported
push_type"TutkPush" "VVPush"
“RSPush”"Baidu"
stringPush type
pushinfo_type“Motion”“Io”
“Videoloss””Pir”
string array
local_alarmin_numintBoard end alarm input
local_alarmout_numintBoard end alarm output
support_ie_down_snapboolWhether to support Internet Explorer download board capture
preview_numintNumber of previewing channels for the main stream
mac_addrstringmac address
p2p_idboolP2P ID
manufacturermaxlength:35bytestringDevice type
support_smartboolSupport intelligence
support_smart_recordboolWhether intelligent video recording is supported
support_substream_playbackboolWhether substream playback is supported
support_pir_recordboolWhether to support pir recording
support_flood_lightboolWhether white light is supported
support_record_tagboolWhether video labels are supported
support_aacboolWhether AAC audio format is supported
support_hls_serverboolWhether single-channel HLS streams are supported
support_voice_promptsboolWhether voice prompt is supported
support_speakerboolWhether to support intercom
talkback“TalkHalf”,“TalkFull”stringIntercom working mode
support_audio_volumeboolWhether to support volume adjustment
support_sound_recordboolsound alarm Display flag bits: 0 hidden and 1 displayed
support_manual_recordboolWhether to support manual video search
support_video_cover_recordboolWhether to display the video occlusion alarm video
support_more_chn_playbackboolWhether multiple playback is supported on the Internet Explorer playback page
support_ai_notification_subscribeboolWhether to support ai notification subscription
ishide_notification_intervalnew_8.2.4boolWhether to hide the push interval switch
support_playback_new_rec_detailboolSupport NewRecordDetailRsp (New_GetRecFileList) search
support_playback_new_rec_file_downloadboolSupport NewRecordDetailRsp (New_GetRecFileList) video download, lock query and lock settings for video files
support_io_recordboolWhether to support the total number of IO alarms on the front and rear end to determine whether the program with IO alarms
support_ANRbool
enable_encryptionboolPrivate protocol encryption
media_portintMedia port
media_external_portintMedia external interface
upgrade_file_max_size0-512intMaximum size of the upgrade file on the board, in MB
upgrade_head_trans_size0-3intThe value is the length of the update header information on the board. The unit is k
support_eventchk_snapboolWhether to support event capture
local_ipstring
stream_linkage"normal""none""custom2"stringCode parameter Indicates the rate linkage rule. If none is passed, bitrate_default is not required. custom2-- URMET Customer
FR_model_version0- 2147483647int
FD_model_version0- 2147483647int
support_param_import_exportboolWhether parameter import is supported
support_sound_detectionboolWhether sound detection is supported
support_ROIbool
support_record_type_exboolReplay the video and add
support_disarming_onlysetboolWhether the disarming function is supported, but it can only be set to IPC by a third party and cannot be gotten
support_recorder_smdbool
support_logcollectionbool
certificate_remain_time0-16intCertificate retention time
is_need_ftpurlboolDetermine whether the NVR requires a url with a plaintext password
support_camera_day_night_paramboolThe NVR supports two sets of IPC day and night parameters
support_box485bool485 The nvr does not support the analog mode
support_shortlive_acctokenboolWhether short tokens are supported
Table 3
ParameterRangeTypeDescription
ptz_version"1.0"
"2.0"
"3.0"
stringPtz version
iris_minus_addbool
quick_use"Ptz_QuickUse_3DPosition"
"Ptz_QuickUse_AutoFocus"
"Ptz_QuickUse_PtzReset"
"Ptz_QuickUse_LensReset"
"Ptz_QuickUse_WatchMode"
"Ptz_QuickUse_ManualHumanTrace"
string array
Table 4
ParameterRangeTypeDescription
Mainstreambool
Substreambool
Mobilestreambool
Table 5
ParameterRangeTypeDescription
"items""Mainstream"
"Substream"
"Mobilestream"
string

Request message

Sample:

POST /API/AlarmConfig/Combination/Get HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
"data": {
        "device_main_menu": [
            "localSetting",
            "remoteSetting",
            "playback",
            "preview"
        ],
        "encode_type_ability": [
            "H.264",
            "H.265",
            "H.264+",
            "H.265+"
        ],
        "concentrate_linkage_schedule_ability": ["FloodLight"],
        "ptz_ability": {"btn_autofocus": true},
        "support_subscribe_api": [
            "AlarmConfig/Deterrence/Range",
            "AlarmConfig/Deterrence/Get",
            "StreamConfig/MainStream/Range",
            "StreamConfig/MainStream/Get",
            "StreamConfig/SubStream/Range",
            "StreamConfig/SubStream/Get",
            "StreamConfig/MobileStream/Range",
            "StreamConfig/MobileStream/Get",
            "DeviceConfig/Audio/Range",
            "DeviceConfig/Audio/Get"
        ],
        "support_ai_pidlcd": true,
        "support_face_config": true,
        "support_repeat_visitor": true,
        "support_face_attendance": true,
        "support_human_vehicle_search": true,
        "support_PidLcd_search": true,
        "support_heat_map": true,
        "support_license_plate": true,
        "support_lpd_enhance": true,
        "support_Intrusion_search": true,
        "support_RegionEntrance_search": true,
        "support_RegionExiting_search": true,
        "device_preview_AI_item": [
            "FR",
            "Human",
            "Vehicle",
            "Non-Vehicle",
            "PID_Human",
            "PID_Vehicle",
            "PID_Non-Vehicle",
            "LCD_Human",
            "LCD_Vehicle",
            "LCD_Non-Vehicle",
            "LPR",
            "Intrusion_Human",
            "Intrusion_Vehicle",
            "Intrusion_Non-Vehicle",
            "RegionEntrance_Human",
            "RegionEntrance_Vehicle",
            "RegionEntrance_Non-Vehicle",
            "RegionExiting_Human",
            "RegionExiting_Vehicle",
            "RegionExiting_Non-Vehicle"
        ],
        "support_occlusion_detection": true,
        "device_preview_ability": [
            "face",
            "manual_alarm"
        ],
        "dev_play_backcap": 2,
        "dev_type": 5932089557994242000,
        "device_type": "30KQ+200AI 60FPS 何伟",
        "sound": true,
        "live_sound_disable": {
            "Mainstream": false,
            "Substream": false,
            "Mobilestream": false
        },
        "check_ftp_upgrade": false,
        "support_screen_shots": true,
        "channel_num": 1,
        "stream_profile": {
            "type": "string",
            "items": [
                "Mainstream",
                "Substream",
                "Mobilestream"
            ]
        },
        "default_stream": "Mainstream",
        "support_ftp_upgrade": true,
        "support_http_upgrade": true,
        "support_get_upgradeUrlpw": true,
        "backup_video_encryption_pwd": {
            "type": "string",
            "min_len": 6,
            "max_len": 32
        },
        "support_backup_video_encryption": true,
        "push_type": "RSPush",
        "pushinfo_type": {
            "type": "string",
            "items": []
        },
        "local_alarmin_num": 1,
        "local_alarmout_num": 1,
        "support_ie_down_snap": true,
        "preview_num": 0,
        "mac_addr": "A4-FC-CE-00-14-BE",
        "p2p_id": "DBC4S1NLRUXNHKWL111A",
        "manufacturer": "",
        "support_smart": true,
        "support_smart_record": true,
        "support_substream_playback": false,
        "support_pir_record": false,
        "support_flood_light": true,
        "support_record_tag": true,
        "support_aac": false,
        "support_hls_server": false,
        "support_voice_prompts": true,
        "support_speaker": true,
        "talkback": "TalkFull",
        "support_audio_volume": true,
        "support_sound_record": false,
        "support_manual_record": false,
        "support_video_cover_record": false,
        "support_more_chn_playback": false,
        "support_ai_notification_subscribe": true,
        "ishide_notification_intervalnew_8.2.4": false,
        "support_playback_new_rec_detail": true,
        "support_playback_new_rec_file_download": true,
        "support_io_record": true,
        "support_ANR": true,
        "enable_encryption": true,
        "media_port": 443,
        "media_external_port": 443,
        "upgrade_file_max_size": 128,
        "upgrade_head_trans_size": 3,
        "support_eventchk_snap": true,
        "local_ip": "192.168.1.11",
        "stream_linkage": "normal",
        "FR_model_version": 8388612,
        "FD_model_version": 8456194,
        "support_param_import_export": true,
        "support_sound_detection": true,
        "support_ROI": true,
        "support_record_type_ex": true,
        "support_disarming_onlyset": true,
        "support_recorder_smd": false,
        "support_logcollection": true
    }

2. Login/SubscribeApi/Set

This interface is used to subscribe to the API

Request message

Table 2
ParameterRangeTypeDescription
subscribe_apistring arrayRequest an API to subscribe to or subscribe to all supported apis, such as:"StreamConfig/MainStream/Range"
"StreamConfig/MainStream/Get"
"StreamConfig/SubStream/Get"
"All"

Sample:

POST /API/Login/SubscribeApi/Set HTTP/1.1
{
	"version": "1.0",
	"data" : {
" subscribe_api ":[
			"StreamConfig/MainStream/Range",
			"StreamConfig/MainStream/Get",
      "StreamConfig/SubStream/Get",
      "DeviceConfig/Audio/Get",
		]
	}
}

Response message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

3. /API/Event/Check

For details seeEvent > Event_check.

AI

Attribute Detection

Function

This API is used to get or set AI > Attribute Detection page parameters.

URI

POST /API/AI/Alarm/AttributeDetect/{Action}

Table 1 describes the parameters.

parameter-description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range, Get, Set.

Range

Function

This API is used to get parameter range for AI > Attribute Detection page.

Note:

The Range provides reference information for client UI input limits and API request limits. When sending Get and Set requests, the parameters must be strictly limited according to the Range, otherwise the request may be rejected by the device.

Request Message

None.

Sample:

POST /API/AI/Alarm/AttributeDetect/Range HTTP/1.1
{
    "result": "success",
    "data": {}
}

Response Message

Parameter Description

Table 1

ParameterRangeTypeDescription
channel_infoJSON objectChannel Information JSON show as follow Table 2
channel_maxintMaximum number of channels

Table 2

ParameterRangeTypeDescription
CH1Json ObjectJSON show as follow Table 3
Json Object
IP_CH1Json Object
Json Object
WIFI_CH1Json Object
Json Object

Table 3

ParameterRangeTypeDescription
status"Offline","Online",
“Nonsupport”
stringChannel online status, only for digital channels.
Note: When the channel is online, there is no such field
alarm_type"Close" "NO Mask" "Wear Mask"stringAlarm type, 0-off, 1-not wearing a mask, 2-wearing a mask
record_enabletrue, falseboolRecord channel switch
send_emailtrue, falseboolswitch to send Email
ftp_picture_uploadtrue, falseboolftp picture upload switch
picture_to_cloudtrue, falseboolpicture to cloud switch
http_listeningtrue, falseboolhttp listening switch
schedule"schedule_type", "week"arrayschedule

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_max": 1,
        "channel_info": {
            "type": "object",
            "items": {
                "CH1": {
                    "type": "object",
                    "items": {
                        "status": {
                            "description": "Only offline channel has this variable.",
                            "type": "string",
                            "mode": "r",
                            "items": [
                                "Offline",
                                "Online",
                                "Nonsupport"
                            ]
                        },
                        "alarm_type": {
                            "type": "string",
                            "items": [
                                "Close",
                                "NO Mask",
                                "Wear Mask"
                            ]
                        },
                        "record_enable": {
                            "type": "bool"
                        },
                        "post_recording": {
                            "type": "string",
                            "items": [
                                "0",
                                "5",
                                "10",
                                "20",
                                "30"
                            ]
                        },
                        "send_email": {
                            "type": "bool"
                        },
                        "ftp_picture_upload": {
                            "type": "bool"
                        },
                        "picture_to_cloud": {
                            "type": "bool"
                        },
                        "http_listening": {
                            "type": "bool"
                        },
                        "schedule": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 5,
                            "items": [
                                {
                                    "schedule_type": {
                                        "type": "string",
                                        "items": [
                                            "SendEmail",
                                            "FtpPicUpload",
                                            "CloudPicUpload",
                                            "Record"
                                        ]
                                    },
                                    "week": {
                                        "type": "array",
                                        "size": 7,
                                        "items": [
                                            {
                                                "day": {
                                                    "type": "string",
                                                    "items": [
                                                        "Sun",
                                                        "Mon",
                                                        "Tue",
                                                        "Wed",
                                                        "Thu",
                                                        "Fri",
                                                        "Sat"
                                                    ]
                                                },
                                                "time": {
                                                    "type": "array",
                                                    "size": 48,
                                                    "items": [
                                                        {
                                                            "type": "int32",
                                                            "items": [
                                                                0,
                                                                1
                                                            ]
                                                        }
                                                    ]
                                                }
                                            }
                                        ]
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get parameter for AI > Attribute Detection page.

Request Message

None.

Parameter Description

Table 1

ParameterRangeTypeDescription
channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…” WIFI_CH1x”
The number of channels depends on the capabilities of the device.
String arrayEach array bit represents a channel with a string.
DVR/NVR need;
IPC only use CH1

Sample:

POST /API/AI/Alarm/AttributeDetect/Get HTTP/1.1
{
    "version": "1.0",
    "data": {
        "channel": [
            "CH5"
        ]
    }
}

Response Message

Parameter Description

Table 2

ParameterRangeTypeDescription
channel_infoJSON objectChannel Information JSON show as follow Table 3
channel_maxintMaximum number of channels

Table 3

ParameterRangeTypeDescription
CH1Json ObjectJSON show as follow Table 4
Json Object
IP_CH1Json Object
Json Object
WIFI_CH1Json Object
Json Object

Table 4

ParameterRangeTypeDescription
status"Offline","Online",
“Nonsupport”
stringChannel online status, only for digital channels.
Note: When the channel is online, there is no such field
alarm_type"Close" "NO Mask" "Wear Mask"stringAlarm type, 0-off, 1-not wearing a mask, 2-wearing a mask
record_enabletrue, falseboolRecord channel switch
send_emailtrue, falseboolswitch to send Email
ftp_picture_uploadtrue, falseboolftp picture upload switch
picture_to_cloudtrue, falseboolpicture to cloud switch
http_listeningtrue, falseboolhttp listening switch
schedule"schedule_type", "week"arrayschedule

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_info": {
            "CH1": {
                "alarm_type": "Close",
                "record_enable": false,
                "post_recording": "5",
                "send_email": false,
                "ftp_picture_upload": false,
                "picture_to_cloud": false,
                "http_listening": false,
                "schedule": [
                    {
                        "schedule_type": "SendEmail",
                        "week": [
                            {
                                "day": "Sun",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            },
                            {
                                "day": "Mon",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            },
                            {
                                "day": "Tue",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            },
                            {
                                "day": "Wed",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            },
                            {
                                "day": "Thu",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            },
                            {
                                "day": "Fri",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            },
                            {
                                "day": "Sat",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            }
                        ]
                    },
                    {
                        "schedule_type": "FtpPicUpload",
                        "week": [
                            {
                                "day": "Sun",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            },
                            {
                                "day": "Mon",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            },
                            {
                                "day": "Tue",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            },
                            {
                                "day": "Wed",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            },
                            {
                                "day": "Thu",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            },
                            {
                                "day": "Fri",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            },
                            {
                                "day": "Sat",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            }
                        ]
                    },
                    {
                        "schedule_type": "CloudPicUpload",
                        "week": [
                            {
                                "day": "Sun",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            },
                            {
                                "day": "Mon",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            },
                            {
                                "day": "Tue",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            },
                            {
                                "day": "Wed",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            },
                            {
                                "day": "Thu",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            },
                            {
                                "day": "Fri",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            },
                            {
                                "day": "Sat",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            }
                        ]
                    },
                    {
                        "schedule_type": "Record",
                        "week": [
                            {
                                "day": "Sun",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            },
                            {
                                "day": "Mon",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            },
                            {
                                "day": "Tue",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            },
                            {
                                "day": "Wed",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            },
                            {
                                "day": "Thu",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            },
                            {
                                "day": "Fri",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            },
                            {
                                "day": "Sat",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            }
                        ]
                    }
                ]
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set parameter for AI > Attribute Detection page.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
channel_infoJSON objectChannel Information JSON show as follow Table 2
channel_maxintMaximum number of channels

Table 2

ParameterRangeTypeDescription
CH1Json ObjectJSON show as follow Table 3
Json Object
IP_CH1Json Object
Json Object
WIFI_CH1Json Object
Json Object

Table 3

ParameterRangeTypeDescription
status"Offline","Online",
“Nonsupport”
stringChannel online status, only for digital channels.
Note: When the channel is online, there is no such field
alarm_type"Close" "NO Mask" "Wear Mask"stringAlarm type, 0-off, 1-not wearing a mask, 2-wearing a mask
record_enabletrue, falseboolRecord channel switch
send_emailtrue, falseboolswitch to send Email
ftp_picture_uploadtrue, falseboolftp picture upload switch
picture_to_cloudtrue, falseboolpicture to cloud switch
http_listeningtrue, falseboolhttp listening switch
schedule"schedule_type", "week"arrayschedule

Sample:

POST /API/AI/Alarm/AttributeDetect/Set HTTP/1.1
{
    "result": "success",
    "data": {
        "channel_info": {
            "CH1": {
                "alarm_type": "Close",
                "record_enable": false,
                "post_recording": "5",
                "send_email": false,
                "ftp_picture_upload": false,
                "picture_to_cloud": false,
                "http_listening": false,
                "schedule": [
                    {
                        "schedule_type": "SendEmail",
                        "week": [
                            {
                                "day": "Sun",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            },
                            {
                                "day": "Mon",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            },
                            {
                                "day": "Tue",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            },
                            {
                                "day": "Wed",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            },
                            {
                                "day": "Thu",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            },
                            {
                                "day": "Fri",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            },
                            {
                                "day": "Sat",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            }
                        ]
                    },
                    {
                        "schedule_type": "FtpPicUpload",
                        "week": [
                            {
                                "day": "Sun",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            },
                            {
                                "day": "Mon",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            },
                            {
                                "day": "Tue",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            },
                            {
                                "day": "Wed",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            },
                            {
                                "day": "Thu",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            },
                            {
                                "day": "Fri",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            },
                            {
                                "day": "Sat",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            }
                        ]
                    },
                    {
                        "schedule_type": "CloudPicUpload",
                        "week": [
                            {
                                "day": "Sun",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            },
                            {
                                "day": "Mon",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            },
                            {
                                "day": "Tue",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            },
                            {
                                "day": "Wed",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            },
                            {
                                "day": "Thu",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            },
                            {
                                "day": "Fri",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            },
                            {
                                "day": "Sat",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            }
                        ]
                    },
                    {
                        "schedule_type": "Record",
                        "week": [
                            {
                                "day": "Sun",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            },
                            {
                                "day": "Mon",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            },
                            {
                                "day": "Tue",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            },
                            {
                                "day": "Wed",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            },
                            {
                                "day": "Thu",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            },
                            {
                                "day": "Fri",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            },
                            {
                                "day": "Sat",
                                "time": [
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
                                ]
                            }
                        ]
                    }
                ]
            }
        }
    }
}

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Config

Function

This API is used for get or set AI > Cross Counting Scenario > Config parameters.

URI

POST /API/AI/Scenario/CC/Config/{Action}

Table 1 describes the parameters.

Parameter-Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Get, Set.

Get

Function

This API is used to get AI > Cross Counting Scenario > Config configuration parameters.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…” WIFI_CH1x”
The number of channels depends on the capabilities of the device.
string arrayEach array bit represents a channel with a string.
DVR/NVR need;
IPC only use CH1

Sample:

POST /API/AI/Scenario/CC/Config/Get HTTP/1.1
{
    "result": "success",
    "data": {
        ["CH1"]
    }
}

Response Message

Parameter Description

Table 2

ParameterRangeTypeDescription
adSwitchboolAdvertising mode control switch
ad_displayModeboolKeep aspect ratio switch
ad_seqTimeintAd image polling time
channel_infoJSON objectChannel Information JSON show as follow Table 3
group_infoJSON objectGroup Information JSON show as follow Table 4

Table 3

ParameterRangeTypeDescription
channel_switchboolControl whether to open the CC scene application function
channel_groupintThe group number to which the channel belongs, and -1 if not in the group
channel_capacityintCapacity
chn_set_enableboolWhether the channel can be set or not is associated with the second-generation CC function
chn_buzzer"0","10","20","40","60"stringBuzzer sounding time
chn_alarm_out“Local->1”…
”Local->x”
“IP_CH1->1”…
“IP_CH1->2”…
” IP_CHx->1”
” IP_CHx->2”
The number of channels depends on the capabilities of the device.
arrayAlarm output channel
Each array bit represents aalarm output channel with a string.
Camera:
Local->1: open, empty value: close
chn_latch_time"10","20","40","60"stringAlarm output delay time

Table 4

ParameterRangeTypeDescription
group_switchboolControl whether to open the CC scene application function
group_capacityintCapacity
start_time8stringStarting time
end_time8stringEnd Time
alarm_type"Unuse","Person","Vehicle"stringalarm type:
1:Person,2:Vehicle
grp_buzzer"0","10","20","40","60"stringBuzzer sounding time
grp_alarm_out“Local->1”…
”Local->x”
“IP_CH1->1”…
“IP_CH1->2”…
” IP_CHx->1”
” IP_CHx->2”
The number of channels depends on the capabilities of the device.
arrayAlarm output channel
Each array bit represents aalarm output channel with a string.
Camera:
Local->1: open, empty value: close
grp_latch_time"10","20","40","60"stringAlarm output delay time

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "version": "success",
    "data": {
        "adSwitch": false,
        "ad_displayMode": false,
        "ad_seqTime": 1,
        "channel_info": {
            "CH1": {
                "channel_switch": false,
                "channel_group": -1,
                "channel_capacity": 11,
                "chn_set_enable": false,
                "chn_buzzer": "0",
                "chn_alarm_out": [],
                "chn_latch_time": "20"
            },
            "CH8": {
                "channel_switch": false,
                "channel_group": 4,
                "channel_capacity": 33,
                "chn_set_enable": false,
                "chn_buzzer": "0",
                "chn_alarm_out": [],
                "chn_latch_time": "10"
            }
        },
        "group_info": {
            "Group1": {
                "group_switch": false,
                "group_capacity": 30,
                "start_time": "00:00:00",
                "end_time": "23:59:59",
                "alarm_type": "Person",
                "grp_buzzer": "0",
                "grp_alarm_out": [],
                "grp_latch_time": "10"
            },
            "Group8": {
                "group_switch": false,
                "group_capacity": 10,
                "start_time": "00:00:00",
                "end_time": "23:59:29",
                "alarm_type": "Person",
                "grp_buzzer": "0",
                "grp_alarm_out": [],
                "grp_latch_time": "10"
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set AI > Cross Counting Scenario > Config configuration parameters.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
adSwitchboolAdvertising mode control switch
ad_displayModeboolKeep aspect ratio switch
ad_seqTimeintAd image polling time
channel_infoJSON objectChannel Information JSON show as follow Table 2
group_infoJSON objectGroup Information JSON show as follow Table 3

Table 2

ParameterRangeTypeDescription
channel_switchboolControl whether to open the CC scene application function
channel_groupintThe group number to which the channel belongs, and -1 if not in the group
channel_capacityintCapacity
chn_set_enableboolWhether the channel can be set or not is associated with the second-generation CC function
chn_buzzer"0","10","20","40","60"stringBuzzer sounding time
chn_alarm_out“Local->1”…
”Local->x”
“IP_CH1->1”…
“IP_CH1->2”…
” IP_CHx->1”
” IP_CHx->2”
The number of channels depends on the capabilities of the device.
arrayAlarm output channel
Each array bit represents aalarm output channel with a string.
Camera:
Local->1: open, empty value: close
chn_latch_time"10","20","40","60"stringAlarm output delay time

Table 3

ParameterRangeTypeDescription
group_switchboolControl whether to open the CC scene application function
group_capacityintCapacity
start_time8stringStarting time
end_time8stringEnd Time
alarm_type"Unuse","Person","Vehicle"stringalarm type:
1:Person,2:Vehicle
grp_buzzer"0","10","20","40","60"stringBuzzer sounding time
grp_alarm_out“Local->1”…
”Local->x”
“IP_CH1->1”…
“IP_CH1->2”…
” IP_CHx->1”
” IP_CHx->2”
The number of channels depends on the capabilities of the device.
arrayAlarm output channel
Each array bit represents aalarm output channel with a string.
Camera:
Local->1: open, empty value: close
grp_latch_time"10","20","40","60"stringAlarm output delay time

Sample:

POST /API/AI/Scenario/CC/Config/Set HTTP/1.1
{
    "version": "1.0",
    "data": {
        "adSwitch": false,
        "ad_displayMode": false,
        "ad_seqTime": 1,
        "channel_info": {
            "CH1": {
                "channel_switch": false,
                "channel_group": -1,
                "channel_capacity": 11,
                "chn_set_enable": false,
                "chn_buzzer": "0",
                "chn_alarm_out": [],
                "chn_latch_time": "20"
            },
            "CH8": {
                "channel_switch": false,
                "channel_group": 4,
                "channel_capacity": 33,
                "chn_set_enable": false,
                "chn_buzzer": "0",
                "chn_alarm_out": [],
                "chn_latch_time": "10"
            }
        },
        "group_info": {
            "Group1": {
                "group_switch": false,
                "group_capacity": 30,
                "start_time": "00:00:00",
                "end_time": "23:59:59",
                "alarm_type": "Person",
                "grp_buzzer": "0",
                "grp_alarm_out": [],
                "grp_latch_time": "10"
            },
            "Group8": {
                "group_switch": false,
                "group_capacity": 10,
                "start_time": "00:00:00",
                "end_time": "23:59:29",
                "alarm_type": "Person",
                "grp_buzzer": "0",
                "grp_alarm_out": [],
                "grp_latch_time": "10"
            }
        }
    }
}

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Image Manage

Function

This API is used for set AI > Cross Counting Scenario > Image Manage parameters.

URI

POST /API/AI/Scenario/CC/Config/{Action}

Table 1 describes the parameters.

Parameter-Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Set.

Set

Function

This API is used to set AI > Cross Counting Scenario > Image Manage configuration parameters.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
operate"GetImageList","GetImageData",
"AddImage","DeleteImage"
stringOperation type:
Get picture list
Get pictures (only one can be obtained at a time)
Add pictures
Delete pictures
image_namestringThe name of the picture that needs to be added/obtained
image_data"base64(imgData)"
2 * 1024 *1024
stringThe picture to be added supports JPG, PNG, BMP
image_listarrayDelete image name list

Sample 1:

POST /API/AI/Scenario/CC/Config/ImageManage HTTP/1.1
{
    "version": "1.0",
    "data": {
        "operate": "GetImageList"
    }
}

Sample 2:

POST /API/AI/Scenario/CC/Config/ImageManage HTTP/1.1
{
    "result": "success",
    "data": {
        "operate": "AddImage",
        "image_name": "eeeeee.jpg",
        "image_data": " base64(imgData)"
    }
}

Sample 3:

POST /API/AI/Scenario/CC/Config/ImageManage HTTP/1.1
{
    "version": "1.0",
    "data": {
        "operate": "DeleteImage",
        "image_list": [
            "c278.png",
            "c236.png",
            "c263.png"
        ]
    }
}

Sample 4:

POST /API/AI/Scenario/CC/Config/ImageManage HTTP/1.1
{
    "version": "1.0",
    "data": {
        "operate": "GetImageData",
        "image_name": "c70.png"
    }
}

Response Message

Parameter Description

Table 2

ParameterRangeTypeDescription
max_countintThe maximum number of images supported
image_namestringThe name of the picture, which will be returned after the picture is successfully obtained
image_data"base64(imgData)"stringGet image data
image_listarrayGet the list of image names

Sample 1:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "max_count": 16,
        "image_list": [
            "c278.png",
            "c236.png",
            "c263.png"
        ]
    }
}

Sample 2:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Sample 3:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "c278.png": "Delete success!",
        "c236.png": "Delete success!",
        "c263.png": "Delete success!"
    }
}

Sample 4:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "image_name": "c70.png",
        "image_data": " base64(imgData)"
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Map

Function

This API is used for get or set AI > Cross Counting Scenario > Map parameters.

URI

POST /API/AI/Scenario/CC/MapConfig/{Action}

Table 1 describes the parameters.

Parameter-Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Get, Set.

Get

Function

This API is used to get AI > Cross Counting Scenario > Map configuration parameters.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
GroupIdintNeed to search the group ID of the Map

Sample:

POST /API/AI/Scenario/CC/MapConfig/Get HTTP/1.1
{
    "data": {
        "GroupId": 0
    }
}

Response Message

Parameter Description

Table 2

ParameterRangeTypeDescription
GroupIdintgroup ID
RefWidth0~1920intcoordinate reference width
RefHeight0~1080intcoordinate reference height
CamPosObject arraycamera position
JSON show as follow Table 3
MapImage"base64(imgData)"
0~5 * 1024 * 1024
stringMap image, only supports png/jpg/bmp format

Table 3

ParameterRangeTypeDescription
ChnIdintchannel number
XPosintThe X-axis coordinate located in the map
YPosintThe Y-axis coordinate on the map

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "data": {
        "RefWidth": 1920,
		"RefHeight": 1080,
		"CamPos": [
            {
                "ChnId": 0,
                "XPos": 362,
                "YPos": 936
            },
            {
                "ChnId": 3,
                "XPos": 1830,
                "YPos": 289
            },
			......
        ],
		"MapImage": "base64"
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set AI > Cross Counting Scenario > Map configuration parameters.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
GroupIdintgroup ID
RefWidth0~1920intcoordinate reference width
RefHeight0~1080intcoordinate reference height
CamPosObject arraycamera position
JSON show as follow Table 2
MapImage"base64(imgData)"
0~5 * 1024 * 1024
stringMap image, only supports png/jpg/bmp format

Table 2

ParameterRangeTypeDescription
ChnIdintchannel number
XPosintThe X-axis coordinate located in the map
YPosintThe Y-axis coordinate on the map

Sample:

POST /API/AI/Scenario/CC/MapConfig/Set HTTP/1.1
{
    "data": {
        "GroupId": 0,
        "RefWidth": 1920,
        "RefHeight": 1080,
        "CamPos": [
            {
                "ChnId": 0,
                "XPos": 100,
                "YPos": 100
            },
            {
                "ChnId": 2,
                "XPos": 100,
                "YPos": 100
            }
        ],
		"MapImage": "base64"	//(选填)
    }
}

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

RealTime Info

Function

This API is used for get or set AI > Cross Counting Scenario > RealTime Info parameters.

URI

POST /API/AI/Scenario/CC/RealTime/{Action}

Table 1 describes the parameters.

Parameter-Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Get, Set.

Get

Function

This API is used to get AI > Cross Counting Scenario > RealTime Info configuration parameters.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
msgType"get_CCScenario_RTData"
"clear_CCScenario_RTData"
stringGet, clear CC RealTimeInfo
clear_type"Channel","Group","All Channels","All Groups"stringClearing Types for CC RealTimeInfo
chnIdintWhen clear_type selects Channel, the channel number needs to be passed
groupIdintWhen clear_type selects Group, the group number needs to be passed

Sample:

POST /API/AI/Scenario/CC/RealTime/Get HTTP/1.1
{
    "version": "1.0",
    "data": {
        "msgType": "get_CCScenario_RTData"
    }
}

Response Message

Parameter Description

Table 2

ParameterRangeTypeDescription
CCScenarioRTInfo“Channels”,“Groups”Object arrayCross Counting RealTime Information JSON show as follow Table 3

Table 3

ParameterRangeTypeDescription
ChannelsObject arrayJSON show as follow Table 4
GroupsObject arrayJSON show as follow Table 5

Table 4

ParameterRangeTypeDescription
ChnIdintchannel number
EnterCntintNumber of people entering
ExitCntintnumber of people leaving
StayCntintnumber of people staying
AvailableCntintcurrent capacity
ObjTypeintHow to trigger counting:
0:Motion 1:Person 2:Vehicle

Table 5

ParameterRangeTypeDescription
GroupIdintgroup ID
EnterCntintNumber of people entering
ExitCntintnumber of people leaving
StayCntintnumber of people staying
AvailableCntintcurrent capacity
ObjTypeintHow to trigger counting:
0:Motion 1:Person 2:Vehicle
ChnDetailObject arrayReal-time data of channels in the group
JSON show as follow Table 6

Table 6

ParameterRangeTypeDescription
ChnIdintchannel number
EnterCntintNumber of people entering
ExitCntintnumber of people leaving

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "CCScenarioRTInfo": [
            {
                "Channels": [
                    {
                        "ChnId": 1,
                        "EnterCnt": 0,
                        "ExitCnt": 0,
                        "StayCnt": 0,
                        "AvailableCnt": 10,
                        "ObjType": 0
                    }
                ],
                "Groups": [
                    {
                        "GroupId": 0,
                        "EnterCnt": 0,
                        "ExitCnt": 0,
                        "StayCnt": 0,
                        "AvailableCnt": 10,
                        "ObjType": 1,
                        "ChnDetail": [
                            {
                                "ChnId": 0,
                                "EnterCnt": 0,
                                "ExitCnt": 0
                            }
                        ]
                    }
                ]
            }
        ]
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set AI > Cross Counting Scenario > RealTime Info configuration parameters.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
msgType"get_CCScenario_RTData"
"clear_CCScenario_RTData"
stringGet, clear CC RealTimeInfo
clear_type"Channel","Group","All Channels","All Groups"stringClearing Types for CC RealTimeInfo
chnIdintWhen clear_type selects Channel, the channel number needs to be passed
groupIdintWhen clear_type selects Group, the group number needs to be passed

Sample:

POST /API/AI/Scenario/CC/RealTime/Set HTTP/1.1
{
    "version": "1.0",
    "data": {
        "msgType": "clear_CCScenario_RTData",
	    "clear_type": "Group",
        "groupId": 1
    }
}

Response Message

Parameter Description

Table 2

ParameterRangeTypeDescription
CCScenarioRTInfo“Channels”,“Groups”Object arrayCross Counting RealTime Information JSON show as follow Table 3

Table 3

ParameterRangeTypeDescription
ChannelsObject arrayJSON show as follow Table 4
GroupsObject arrayJSON show as follow Table 5

Table 4

ParameterRangeTypeDescription
ChnIdintchannel number
EnterCntintnumber of people entering
ExitCntintnumber of people leaving
StayCntintnumber of people staying
AvailableCntintcurrent capacity
ObjTypeintHow to trigger counting:
0:Motion 1:Person 2:Vehicle

Table 5

ParameterRangeTypeDescription
GroupIdintgroup ID
EnterCntintnumber of people entering
ExitCntintnumber of people leaving
StayCntintnumber of people staying
AvailableCntintcurrent capacity
ObjTypeintHow to trigger counting:
0:Motion 1:Person 2:Vehicle
ChnDetailObject arrayReal-time data of channels in the group
JSON show as follow Table 6

Table 6

ParameterRangeTypeDescription
ChnIdintchannel number
EnterCntintNumber of people entering
ExitCntintnumber of people leaving

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "CCScenarioRTInfo": [
            {
                "Channels": [
                    {
                        "ChnId": 1,
                        "EnterCnt": 0,
                        "ExitCnt": 0,
                        "StayCnt": 0,
                        "AvailableCnt": 10,
                        "ObjType": 0
                    }
                ],
                "Groups": [
                    {
                        "GroupId": 0,
                        "EnterCnt": 0,
                        "ExitCnt": 0,
                        "StayCnt": 0,
                        "AvailableCnt": 10,
                        "ObjType": 1,
                        "ChnDetail": [
                            {
                                "ChnId": 0,
                                "EnterCnt": 0,
                                "ExitCnt": 0
                            }
                        ]
                    }
                ]
            }
        ]
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Statistics

Function

This API is used for get or set AI > Cross Counting Scenario > Statistics parameters.

URI

POST /API/AI/Scenario/CC/Statistics/{Action}

Table 1 describes the parameters.

Parameter-Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Get, Set.

Get

Function

This API is used to get AI > Cross Counting Scenario > Statistics configuration parameters.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…” WIFI_CH1x”
The number of channels depends on the capabilities of the device.
String arrayEach array bit represents a channel with a string.
DVR/NVR need;
IPC only use CH1

Sample:

POST /API/AI/Scenario/CC/Statistics/Get HTTP/1.1
{
    "result": "success",
    "data": {
        ["CH1"]
    }
}

Response Message

Parameter Description

Table 2

ParameterRangeTypeDescription
ChannelsInt arrayquery channel
GroupsInt arrayqueryable group
ReportType"Day","Week","Month","Year"stringquery type
DetectionType"Motion","Person","Vehicle"stringdetection type
Date10stringcurrent date

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "version": "success",
    "data": {
        "Channels": [
            0,
            3
        ],
        "Groups": [],
        "ReportType": "Week",
        "DetectionType": "Person",
        "Date": "2021-01-14"
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set AI > Cross Counting Scenario > Statistics configuration parameters.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
ChannelsInt arrayQuery channel, when querying group, pass empty
GroupsInt arrayQuery group, pass null when querying channel
Date10stringquery date
ReportType"Day","Week","Month","Year"stringquery type
ChnObjType0~2Int arrayDetection type: (Only pass empty when querying groups, corresponding to Channels)
0:"Motion", 1:"Person", 2:"Vehicle"
GrpObjType0~2Int arrayDetection type: (Only pass empty when querying the channel, corresponding to Groups)
0:"Motion", 1:"Person", 2:"Vehicle"

Sample:

POST /API/AI/Scenario/CC/Statistics/Set HTTP/1.1
{
    "version": "1.0",
    "data": {
        "Channels": [
            0,
            3
        ],
        "Groups": [],
        "Date": "2021-01-14",
        "ReportType": "Week",
        "ChnObjType": [
            1,
            1
        ],
        "GrpObjType": []
    }
}

Response Message

Parameter Description

Table 2

ParameterRangeTypeDescription
ChannelsObject arraychannel statistics
JSON show as follow Table 3
GroupsObject arraygroup statistics
JSON show as follow Table 4

Table 3

ParameterRangeTypeDescription
ChnIdintchannel number
NumObject arrayStatistical data
JSON show as follow Table 5

Table 4

ParameterRangeTypeDescription
GroupIdintgroup ID
NumObject arrayStatistical data
JSON show as follow Table 5

Table 5

ParameterRangeTypeDescription
EnterCntintNumber of people entering
ExitCntintnumber of people leaving
StayCntintnumber of people staying

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "Channels": [
            {
                "ChnId": 0,
                "Num": [
                    {
                        "EnterCnt": 0,
                        "ExitCnt": 0,
                        "StayCnt": 0
                    },
                    {
                        "EnterCnt": 0,
                        "ExitCnt": 0,
                        "StayCnt": 0
                    },
                    {
                        "EnterCnt": 0,
                        "ExitCnt": 0,
                        "StayCnt": 0
                    },
                    {
                        "EnterCnt": 11,
                        "ExitCnt": 3,
                        "StayCnt": 8
                    },
                    {
                        "EnterCnt": 16,
                        "ExitCnt": 2,
                        "StayCnt": 14
                    },
                    {
                        "EnterCnt": 0,
                        "ExitCnt": 0,
                        "StayCnt": 0
                    },
                    {
                        "EnterCnt": 0,
                        "ExitCnt": 0,
                        "StayCnt": 0
                    }
                ]
            },
            {
                "ChnId": 3,
                "Num": [
                    {
                        "EnterCnt": 0,
                        "ExitCnt": 0,
                        "StayCnt": 0
                    },
                    {
                        "EnterCnt": 0,
                        "ExitCnt": 0,
                        "StayCnt": 0
                    },
                    {
                        "EnterCnt": 0,
                        "ExitCnt": 0,
                        "StayCnt": 0
                    },
                    {
                        "EnterCnt": 0,
                        "ExitCnt": 0,
                        "StayCnt": 0
                    },
                    {
                        "EnterCnt": 1,
                        "ExitCnt": 0,
                        "StayCnt": 1
                    },
                    {
                        "EnterCnt": 0,
                        "ExitCnt": 0,
                        "StayCnt": 0
                    },
                    {
                        "EnterCnt": 0,
                        "ExitCnt": 0,
                        "StayCnt": 0
                    }
                ]
            }
        ]
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Face Attendance

Function

This API is used to get or set AI > Face Attendance(NVR专用) parameters.

URI

POST /API/AI/FDAttendance/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range, Get, Set.

Range

Function

This API is used to get parameter range for Al > Face Attendance page.

Request Message

Sample:

POST /API/AI/FDAttendance/Range HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

See Al > Face Attendance > Get > Parameter Description > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {"fd_atd_info": {
        "type": "object",
        "items": {
            "enable": {"type": "bool"},
            "mode": {
                "type": "string",
                "items": [
                    "Day",
                    "Week",
                    "Month"
                ]
            },
            "mode_week": {
                "type": "string",
                "items": [
                    "Mon.",
                    "Tue.",
                    "Wed.",
                    "Thu.",
                    "Fri.",
                    "Sat.",
                    "Sun."
                ]
            },
            "mode_month_day": {
                "type": "string",
                "items": [
                    "1",
                    "2",
                    "3",
                    "4",
                    "5",
                    "6",
                    "7",
                    "8",
                    "9",
                    "10",
                    "11",
                    "12",
                    "13",
                    "14",
                    "15",
                    "16",
                    "17",
                    "18",
                    "19",
                    "20",
                    "21",
                    "22",
                    "23",
                    "24",
                    "25",
                    "26",
                    "27",
                    "28",
                    "29",
                    "30",
                    "31"
                ]
            },
            "send_email": {
                "type": "string",
                "len": 8
            },
            "on_duty_time": {
                "type": "string",
                "len": 8
            },
            "off_duty_time": {
                "type": "string",
                "len": 8
            },
            "working_days": {
                "type": "array",
                "min_size": 0,
                "max_size": 7,
                "items": {
                    "type": "string",
                    "items": [
                        "Mon.",
                        "Tue.",
                        "Wed.",
                        "Thu.",
                        "Fri.",
                        "Sat.",
                        "Sun."
                    ]
                }
            },
            "group": {
                "type": "array",
                "min_size": 0,
                "max_size": 16,
                "items": {
                    "type": "string",
                    "items": [
                        "1",
                        "2",
                        "3",
                        "4",
                        "5",
                        "6",
                        "7",
                        "8",
                        "9",
                        "10",
                        "11",
                        "12",
                        "13",
                        "14",
                        "15",
                        "16"
                    ]
                }
            }
        }
    }}
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get parameter for Al > Face Attendance page.

Request Message

None

Sample:

POST API/AI/FDAttendance/Get HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 1

ParameterRangeTypeDescription
fd_atd_infoJSON objectFace Attendance Configuration JSON(show as follow Table Table 2)

Table 2

ParameterRangeTypeDescription
enabletrue falseboolWhether to enable periodic sending of attendance forms
mode“Day””Week””Month”stringSending mode
mode_week“Mon.”“Tue.”“Wed.”“Thu.” “Fri.” “Sat.” “Sun.”stringDay of the week sending mode
mode_month_day“1” “2” “3” “4” “5” … “26” “27” “28” “29” “30” “31”stringA certain day in monthly sending mode
send_emailstringSending time
on_duty_timestringWorking hours
off_duty_timestringOff work time
working_days"Mon.", "Tue.", "Wed.", "Thu.", "Fri.", "Sat.", "Sun."arrayWorking days, corresponding to Monday ~ Sunday
channel"CH1","CH2","CH3"……"CHx"
The number of channels depends on the capabilities of the device.
arrayActive channel
group"1","2","3","4","5","6","7","8", "9","10","11","12","13", "14","15","16"arrayEffective group

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {"fd_atd_info": {
        "enable": false,
        "mode": "Day",
        "mode_week": "Mon.",
        "mode_month_day": "1",
        "send_email": "08:30:00",
        "on_duty_time": "08:30:00",
        "off_duty_time": "17:30:00",
        "working_days": [
            "Mon.",
            "Tue.",
            "Wed.",
            "Thu.",
            "Fri."
        ],
        "group": [
            "1",
            "2",
            "4",
            "5",
            "6",
            "7",
            "8",
            "9",
            "10",
            "11",
            "12",
            "13",
            "14",
            "15",
            "16"
        ]
    }}
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set parameter for Al > Face Attendance page.

Request Message

See Al > Face Attendance > Get > Parameter Description > Table 1 for parameter description.

Sample:

POST API/AI/FDAttendance/Set HTTP/1.1
{
    "version": "1.0",
    "data": {"fd_atd_info": {
        "enable": false,
        "mode": "Day",
        "mode_week": "Mon.",
        "mode_month_day": "1",
        "send_email": "08:30:00",
        "on_duty_time": "08:30:00",
        "off_duty_time": "17:30:00",
        "working_days": [
            "Mon.",
            "Tue.",
            "Wed.",
            "Thu.",
            "Fri."
        ],
        "group": [
            "1",
            "2",
            "4",
            "5",
            "6",
            "7",
            "8",
            "9",
            "10",
            "11",
            "12",
            "13",
            "14",
            "15",
            "16"
        ]
    }}
}

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Add Compare Face Image

Function

This API is used to add comparison faces

URI

POST /API/AI/CompareFaces/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESAdd

Add

Function

This API is used to add AI > Recognition > Add Compare Face Image to compare faces.

Request Message

Parameter Description

Table 1 |Parameter|Range|Type|Description| | ---- | ---- | ---- | ---- | |MsgId|null|||
|Count||int|Add the total number of face images for comparison| |FaceInfo||JSON array|Add CompareFaces JSON show as follow Table 2| |WithImage|0|int|Do you need a picture? 1- Yes, 0- No| |WithFeature|1|int|Whether the eigenvalue is required, 1- Yes, 0- no|

Table 2 |Parameter|Range|Type|Description| | ---- | ---- | ---- | ---- | |MsgId|null|||
|Id||int|64-bit signed face Id, unique identifier, Id field must be valid when Modify face information| |GrpId||int|Group ID| |Time||int|Start time| |Similarity||unsigned int|similarity| |Sex||int|Gender: 0-male, 1-female| |Age||int|age| |Chn||int|passage| |ModifyCnt||int|The number of modifications, the upper layer is read-only, and the device updates the face information in real time each time it is modified| |Image1|"base64(imgData)"|string|When adding must be given, is the main picture of the database face. When Modify, if "Image1" and "Feature" are given, the given "Image1" and "Feature" are used directly (note that the feature value version must also be given). If only "Image1" is given, "Feature" is recalculated, and if "Image1" is not given, only fields other than "Image1" and "Feature" are modified.| |Image2|null|string|This parameter is only useful for real-time alarms| |Image3|null|string|This parameter is only useful for real-time alarms| |Feature|"base64(feature)"|string|eigenvalue| |FtVersion||int|Version of the eigenvalue. This parameter is meaningful only when the eigenvalue of the same version is compared. If the eigenvalue is returned, this field is also returned| |Name|"Mike"|string|name| |Country|"China"|string|nationality| |Nation|"Han"|string|nation| |NativePlace|"Guangdong,Zhuhai"|string|Native place| |IdCode|"415025199203050916"|string|Identification card| |Job|"Software"|string|professional| |Phone|"12345678902"|string|telephone| |Email|"abcd@163.com"|string|mail| |Domicile|"Guangdong,Zhuhai,Xiangzhou ..."|string|Current residence| |Remark|"Detail of this person ..."|string|evaluate|

Sample:

POST /API/AI/CompareFaces/Add HTTP/1.1
{
	"data": {
		"MsgId": null,
		"Count": 2,
		"WithImage": 0,	
		"WithFeature": 1	
		"FaceInfo": [
			{
				"Image1": "base64(imgData)",	
				"Feature": "base64(feature)",
				"FtVersion": 0	
			},
			{
				"Image1": "base64(imgData)",	
				"Feature": null,
				"FtVersion": 0	
			}
		]
	}
}

Response Message

Parameter Description

Table 3 |Parameter|Range|Type|Description| | ---- | ---- | ---- | ---- | |MsgId|null|||
|Count||int|The total number of faces queried, GetByIndex, GetById This field is valid| |Result|[0, 0,…]|array|Result referenceTable x| |FaceInfo||JSON array|Add CompareFaces JSON show as followTable 4|

Table x | Result type | Description | | ---- | ---- | |AORT_SUCCESS = 0|succeed| |AORT_NO_DB = -1|No database| |AORT_DB_EXEC_FAILED = -2|Database execution failure| |AORT_CALC_FEATURE_FAILED = -3|Feature extraction failure| |AORT_CANCELED = -4|canceled| |AORT_NO_DISK = -5|No hard disk| |AORT_DISK_ERROR = -6|Hard disk error| |AORT_EXIST = -7|Already exist| |AORT_GROUP_INVALID = -8|Group invalid| |AORT_NOT_EXIST = -9|inexistence| |AORT_MORE_FILE_EXIST = -10|File already exists| |AORT_SEARCH_ERROR = -11|Search error| |AORT_OVER_MAX_COUNT = -12|upper limit exceeded| |AORT_UPDATING_FEATURE = -13|Updating feature values| |AORT_NO_USABLE_IPC = -14|There is no IPC vailable for eigenvalue calculation| |AORT_INVALID_PARAM = -15|invalid parameter| |AORT_INVALID_FORMAT = -16|malformed | |AORT_INVALID_RES = -17|resolution error| |AORT_INVALID_MEM = -18|File too large error| |AORT_CREAT_FAILED = -19|create failed| |AORT_MD5_NOT_MATCH = -20|MD5 mismatch| |AORT_POS_ERROR = -21|wrong location| |AORT_SIZE_ERROR = -22|size error| |AORT_NOT_READY = -23|not ready| |AORT_INVALID_DB = -24|invalid database|

Table 4 |Parameter|Range|Type|Description| | ---- | ---- | ---- | ---- | |Id||int|Face Id, unique Id,GetByIndex, GetById The ID field must be valid for face information. This field is unavailable for Search| |GrpId||int|Group ID| |StartTime||unsigned long long|Unix timestamp, such as 1540444116| |EndTime||unsigned long long|Unix timestamp, such as 1540444116| |Similarity||unsigned int|similarity| |Sex||int|Gender: 0-male, 1-female| |Age||int|age| |Chn||int|passage| |StrChn|“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…” WIFI_CH1x”
The number of channels depends on the capability of the device.|string|String channel number| |ModifyCnt||int|The number of modifications, the upper layer is read-only, and the device updates the face information in real time each time it is modified| |Image1|"base64(imgData)"|string|Database face main picture| |Feature|"base64(feature)"|string|eigenvalue| |FtVersion||int|Version of the eigenvalue. This parameter is meaningful only when the eigenvalue of the same version is compared. If the eigenvalue is returned, this field is also returned. GetByIndex and GetById Face information FtVersion is valid. This field is unavailable in Search| |Name|"Mike"|string|name| |Country|"China"|string|nationality| |Nation|"Han"|string|nation| |NativePlace|"Guangdong,Zhuhai"|string|Native place| |IdCode|"415025199203050916"|string|Identification card| |Job|"Software"|string|professional| |Phone|"12345678902"|string|telephone| |Email|"abcd@163.com"|string|mail| |Domicile|"Guangdong,Zhuhai,Xiangzhou ..."|string|Current residence| |Remark|"Detail of this person ..."|string|evaluate| |MD5|"F74C70ADB0B63B00E279E71B4143704D"|string|MD5, GetByIndex, and GetById The MD5 field is valid for face information, but does not exist in Search| |EnableChnAlarm| |array|Special permission control. Control the face allowed in which channels for alarm, according to the bit bit is used, the bit bit is set to indicate that the corresponding channel allows alarm. This field is absent or empty to indicate that the group's alarm channel Settings are used instead of using special permission controls.|

Tips:

Response messages and request messages may not contain all the fields in the table above. If no fields are included, the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"data": {
		"MsgId": null,
		"Result": [0, -3],	
		"Count": 3,
		"FaceInfo": [
			{
				"Id": 5,
				"GrpId": 0,	
				"Time": 0,
				"Similarity": 0,
				"Sex": 0,
				"Age": 0,
				"Chn": 0,
				"StrChn":"1",
				"ModifyCnt": 0,	
				"Image1": "base64(imgData)",	
				"Image2": null,
				"Image3": null,
				"Feature": "base64(feature)",
				"FtVersion": 0	,
				"Name": "",
				"Country": "",
				"Nation": "",
				"NativePlace": "",
				"IdCode": "",
				"Job": "",
				"Phone": "",
				"Email": "",
				"Domicile": "",
				"Remark": "",
				"MD5": "294C703DB05F3B00E279E71B41437E46"
			},
			{
				"Id": -1,
				"GrpId": 0,	
				"Time": 0,
				"Similarity": 0,
				"Sex": 0,
				"Age": 0,
				"Chn": 0,
				"StrChn":"1",
				"ModifyCnt": 0,	
				"Image1": null,	
				"Image2": null,
				"Image3": null,
				"Feature": null,
				"FtVersion": 0	,
				"Name": "",
				"Country": "",
				"Nation": "",
				"NativePlace": "",
				"IdCode": "",
				"Job": "",
				"Phone": "",
				"Email": "",
				"Domicile": "",
				"Remark": "",
				"MD5": "397E503DB05F3B00E279E71B41437E46"
			}
		]
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Additional Face Image

Function

This API is used to attach face images

URI

POST /API/AI/ExtraFaces/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including GetByIdAddRemoveGet

Add

Function

This API is used to add AI > Recognition > Additional Face Image face images.

Request Message

See AI > Recognition > Additional Face Image > Get > Parameter Description > Table 2for parameter description.

Sample:

POST /API/AI/ExtraFaces/Add HTTP/1.1
{
	{
	"data": {
		"MsgId": null,
		"Count": 2,
		"ExtFaceInfo": [
			{
				"Id": -1,	
				"FaceId": 1,		
				"Image": "base64(imgData)",	
				"Feature": "base64(feature)",
				"FtVersion": 0		
			},
			{
				"Id": -1,	
				"FaceId": 1,		
				"Image": "base64(imgData)",	
				"Feature": "base64(feature)",
				"FtVersion": 0	
			}
		]
	}
}

}

Response Message

See AI > Recognition > Additional Face Image > Get > Parameter Description > Table 2for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"data": {
		"MsgId": null,
		"Count": 2,
		"Result": [0, 0], 
		"Id": [1, 2]	
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get AI > Recognition > Additional Face Image face image parameters.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
MsgIdnull
FaceIdintNeed to request the face Id of the additional face, pay attention to the face Id of the additional face, this field is valid when Get,
IdintThe Id of the additional face that needs to be requested, note that it is not the face Id that it belongs to. This field is valid for GetById
WithImage1intDo you need a picture? 1- Yes, 0- No
WithFeature1intWhether the eigenvalue is required, 1- Yes, 0- no

Sample:

POST /API/AI/ExtraFaces/Get HTTP/1.1
{
	"data": {
		"MsgId": null,
		"FaceId": 1,
		"WithImage": 1,
		"WithFeature": 1
	}
}

Response Message

Parameter Description

Table 2

ParameterRangeTypeDescription
MsgIdnull
ResultintSee the resultTable x,This field is valid for Get or GetById, but not for Add or Remove
CountintThe total number of faces queried
ExtFaceInfoJSON arrayExtraFaces JSON show as follow Table 3

Table x | Result type | Description | | ---- | ---- | |AORT_SUCCESS = 0|succeed| |AORT_NO_DB = -1|No database| |AORT_DB_EXEC_FAILED = -2|Database execution failure| |AORT_CALC_FEATURE_FAILED = -3|Feature extraction failure| |AORT_CANCELED = -4|canceled| |AORT_NO_DISK = -5|No hard disk| |AORT_DISK_ERROR = -6|Hard disk error| |AORT_EXIST = -7|Already exist| |AORT_GROUP_INVALID = -8|Group invalid| |AORT_NOT_EXIST = -9|inexistence| |AORT_MORE_FILE_EXIST = -10|File already exists| |AORT_SEARCH_ERROR = -11|Search error| |AORT_OVER_MAX_COUNT = -12|upper limit exceeded| |AORT_UPDATING_FEATURE = -13|Updating feature values| |AORT_NO_USABLE_IPC = -14|There is no IPC vailable for eigenvalue calculation| |AORT_INVALID_PARAM = -15|invalid parameter| |AORT_INVALID_FORMAT = -16|malformed | |AORT_INVALID_RES = -17|resolution error| |AORT_INVALID_MEM = -18|File too large error| |AORT_CREAT_FAILED = -19|create failed| |AORT_MD5_NOT_MATCH = -20|MD5 mismatch| |AORT_POS_ERROR = -21|wrong location| |AORT_SIZE_ERROR = -22|size error| |AORT_NOT_READY = -23|not ready| |AORT_INVALID_DB = -24|invalid database|

Table 3 |Parameter|Range|Type|Description| | ---- | ---- | ---- | ---- | |Id||int|Attach the Id of the face, not the face Id to which it belongs| |FaceId||int|Attach the Id of the face, attach the face Id to which the face belongs| |Image|"base64(imgData)"|string|Attach face image,Remove attach face, just give the "Id" field, this field uses the default value| |Feature|"base64(feature)"|string|Attach face feature value,Remove attach face, just give the "Id" field, this field uses the default value| |FtVersion|0|int|Version of the eigenvalue. This parameter is meaningful only when the eigenvalue of the same version is compared. If the eigenvalue is returned, this field is also returned|

Tips:

Response messages and request messages may not contain all the fields in the table above. If no fields are included, the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"data": {
		"MsgId": null,
		"Result": [0, 0], 
		"Count": 2,
		"ExtFaceInfo": [
			{
				"Id": -1,	
				"FaceId": 1,		
				"Image": "base64(imgData)",	
				"Feature": "base64(feature)",
				"FtVersion": 0		
			},
			{
				"Id": -1,	
				"FaceId": 1,		
				"Image": "base64(imgData)",	
				"Feature": "base64(feature)",
				"FtVersion": 0	
			}
		]
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

GetById

Function

This API is used to get AI > Recognition > Additional Face Image face image ID.

Request Message

See AI > Recognition > Additional Face Image > Get > Parameter Description > Table 1for parameter description.

Sample:

POST /API/AI/ExtraFaces/GetById HTTP/1.1
{
	"data": {
		"MsgId": null,
		"FaceId": 1,
		"WithImage": 1,
		"WithFeature": 1
	}
}

Response Message

See AI > Recognition > Additional Face Image > Get > Parameter Description > Table 2for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"data": {
		"MsgId": null,
		"Result": [0, 0], 
		"Count": 2,
		"ExtFaceInfo": [
			{
				"Id": -1,	
				"FaceId": 1,		
				"Image": "base64(imgData)",	
				"Feature": "base64(feature)",
				"FtVersion": 0		
			},
			{
				"Id": -1,	
				"FaceId": 1,		
				"Image": "base64(imgData)",	
				"Feature": "base64(feature)",
				"FtVersion": 0	
			}
		]
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Remove

Function

This API is used to remove AI > Recognition > Additional Face Image face images.

Request Message

See AI > Recognition > Additional Face Image > Get > Parameter Description > Table 2for parameter description.

Sample:

POST /API/AI/ExtraFaces/Remove HTTP/1.1
{
	"data": {
		"MsgId": null,
		"Count": 2,
		"ExtFaceInfo": [
			{
				"Id": 1,	
				"FaceId": 0,		
				"Image": null,	
				"Feature": null,
				"FtVersion": 0		
			},
			{
				"Id": 2,	
				"FaceId": 0,		
				"Image": null,	
				"Feature": null,
				"FtVersion": 0			
			}
		]
	}
}

Response Message

See AI > Recognition > Additional Face Image > Get > Parameter Description > Table 2for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"data": {
		"MsgId": null,
		"Count": 2,
		"Result": [0, 0], 
		"Id": [1, 2]	
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Database face information query

Function

This API is used for AI > Recognition > Database face information query database face information query

URI

POST /API/AI/AddedFaces/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including SearchGetByIndexGetById,GetId

GetByIndex

Function

This API is used to get AI > Recognition > Database face information query face information.

Request Message

Parameter Description

Table 4 |Parameter|Range|Type|Description| | ---- | ---- | ---- | ---- | |MsgId|null|||
|StartIndex|0|int|If the start index of the request is 0-19 for the first time and 20-39 for the second time, the StartIndex is 0 and 20 respectively| |Count|20|int|The number of face information requested| |SimpleInfo|0|int|Get abbreviated information, each face information in the response message contains only Id, GrpId and Name fields, 1-abbreviated mode, 0-normal mode| |WithImage|1|int|Do you need a picture? 1- Yes, 0- No| |WithFeature|1|int|Whether the eigenvalue is required, 1- Yes, 0- no| |NeedMD5|0|int|If MD5 is required, MD5 is also given in non-abbreviated mode|

Sample:

POST /API/AI/AddedFaces/GetByIndex HTTP/1.1
{
	"data":{
		"Msgid":null,
		"StartIndex":0,
		"count":16,
		"SimpleInfo":0,
		"WithImage":1,
		"WithFeature":1,
		"NeedMD5":0	
	}
}

Response Message

See AI > Recognition > Database face information query > Search > Parameter Description > Table 1for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"data": {
			"MsgId": null,
			"FaceInfo": [
				{
					"GrpId": 1,		
					"Time": 0,
					"Similarity": 0,
					"Sex": 0,		
					"Age": 0,
					"Chn": 0,
					"ModifyCnt": 0,	
					"Name": "",
					"Country": "",
					"Nation": "",
					"NativePlace": "",
					"IdCode": "",
					"Job": "",
					"Phone": "",
					"Email": "",
					"Domicile": "",
					"Remark": ""
				}
			]
		}
}

Error Code

See Response Messages Body and Common error_code for more information.

GetById

Function

This API is used to get AI > Recognition > Database face information query face information.

Request Message

Parameter Description

Table 5 |Parameter|Range|Type|Description| | ---- | ---- | ---- | ---- | |MsgId|null||| |FacesId|[1, 5, 6, 20, 53, 25…]|array|List of face ids that need to be requested, with one integer for each array bit.| |FacesMD5|["F75C70ADB0B63B00E279E71B4143704D",
"B74C70ADB0B63B00E279B71B4193704F",
"A29B70ADB0B63B00E2793C1B4123504D",
"B34C70A3B0B53B00E279571B4143704F",
"AC3C70ADB3B63B40E279EE1B41F3C04D",
"B74A70ADB0B63400E279E71B4143804F"…]|array|Face MD5 value| |SimpleInfo|0|int|Get abbreviated information, each face information in the response message contains only Id, GrpId and Name fields, 1-abbreviated mode, 0-normal mode| |WithImage|1|int|Do you need a picture? 1- Yes, 0- No| |WithFeature|1|int|Whether the eigenvalue is required, 1- Yes, 0- no| |NeedMD5|0|int|Whether MD5 is required, 1- Yes, 0- no, MD5 is also given in non-abbreviated mode|

Sample:

POST /API/AI/AddedFaces/GetById HTTP/1.1
{
	"data": {
		"MsgId": null,
		"FacesId": [1, 5, 6, 20, 53, 25], 
		"FacesMD5": ["F75C70ADB0B63B00E279E71B4143704D", 
					 "B74C70ADB0B63B00E279B71B4193704F", 
					 "A29B70ADB0B63B00E2793C1B4123504D",
					 "B34C70A3B0B53B00E279571B4143704F", 
					 "AC3C70ADB3B63B40E279EE1B41F3C04D",
					 "B74A70ADB0B63400E279E71B4143804F"],
					
		"SimpleInfo": 0 
		"WithImage": 1, 
		"WithFeature": 1, 
		"NeedMD5": 0 
	}
}

Response Message

See AI > Recognition > Database face information query > Search > Parameter Description > Table 1for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"data": {
			"MsgId": null,
			"FaceInfo": [
				{
					"GrpId": 1,		
					"Time": 0,
					"Similarity": 0,
					"Sex": 0,		
					"Age": 0,
					"Chn": 0,
					"ModifyCnt": 0,	
					"Name": "",
					"Country": "",
					"Nation": "",
					"NativePlace": "",
					"IdCode": "",
					"Job": "",
					"Phone": "",
					"Email": "",
					"Domicile": "",
					"Remark": ""
				}
			]
		}
}

Error Code

See Response Messages Body and Common error_code for more information.

Search

Function

This API is used to search AI > Recognition > Database face information query face information.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
MsgIdnull
ResultintSee the resultTable x,GetByIndex, GetById This field is valid
channel_maxintMaximum number of channels
CountintThe total number of faces queried, GetByIndex, GetById This field is valid
FaceInfoJSON arrayAdd Faces JSON show as follow Table 2

Table 2 |Parameter|Range|Type|Description| | ---- | ---- | ---- | ---- | |Id||int|Face Id, unique Id,GetByIndex, GetById The ID field must be valid for face information. This field is unavailable for Search| |GrpId||int|Group ID| |StartTime||unsigned long long|Unix timestamp, such as 1540444116| |EndTime||unsigned long long|Unix timestamp, such as 1540444116| |Similarity||unsigned int|similarity| |Sex||int|Gender: 0-male, 1-female| |Age||int|age| |Chn||int|passage| |StrChn|“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…” WIFI_CH1x”
The number of channels depends on the capability of the device.|string|String channel number| |ModifyCnt||int|The number of modifications, the upper layer is read-only, and the device updates the face information in real time each time it is modified| |Image1|"base64(imgData)"|string|Database face main picture. GetByIndex and GetById The Image1 field is valid for face information, but does not exist in Search| |Image2|null|string|This field is valid only for real-time alarm, not for Search| |Image3|null|string|This field is valid only for real-time alarm, not for Search| |Feature|"base64(feature)"|string|Feature value: GetByIndex and GetById Face information Feature field is valid, but does not have this field in Search | |FtVersion||int|Version of the eigenvalue. This parameter is meaningful only when the eigenvalue of the same version is compared. If the eigenvalue is returned, this field is also returned. GetByIndex and GetById Face information FtVersion is valid. This field is unavailable in Search| |Name|"Mike"|string|name| |Country|"China"|string|nationality| |Nation|"Han"|string|nation| |NativePlace|"Guangdong,Zhuhai"|string|Native place| |IdCode|"415025199203050916"|string|Identification card| |Job|"Software"|string|professional| |Phone|"12345678902"|string|telephone| |Email|"abcd@163.com"|string|mail| |Domicile|"Guangdong,Zhuhai,Xiangzhou ..."|string|Current residence| |Remark|"Detail of this person ..."|string|evaluate| |EnableChnAlarm| |array|Special permission control. Control the face allowed in which channels for alarm, according to the bit bit is used, the bit bit is set to indicate that the corresponding channel allows alarm. This field is absent or empty to indicate that the group's alarm channel Settings are used instead of using special permission controls.|

Sample:

POST /API/AI/AddedFaces/Search HTTP/1.1
{
	"data": {
			"MsgId": null,
			"FaceInfo": [
				{
					"GrpId": 1,		
					"Time": 0,
					"Similarity": 0,
					"Sex": 0,		
					"Age": 0,
					"Chn": 0,
					"ModifyCnt": 0,	
					"Name": "",
					"Country": "",
					"Nation": "",
					"NativePlace": "",
					"IdCode": "",
					"Job": "",
					"Phone": "",
					"Email": "",
					"Domicile": "",
					"Remark": ""
				}
			]
		}
}

Response Message

Parameter Description

Table 3 |Parameter|Range|Type|Description| | ---- | ---- | ---- | ---- | |MsgId|null|||
|Result|[0, 0,…]|array|Result reference Table x| |channel_max||int|Maximum number of channels| |Count||int|Search for the total number of faces added|

Table x | Result type | Description | | ---- | ---- | |AORT_SUCCESS = 0|succeed| |AORT_NO_DB = -1|No database| |AORT_DB_EXEC_FAILED = -2|Database execution failure| |AORT_CALC_FEATURE_FAILED = -3|Feature extraction failure| |AORT_CANCELED = -4|canceled| |AORT_NO_DISK = -5|No hard disk| |AORT_DISK_ERROR = -6|Hard disk error| |AORT_EXIST = -7|Already exist| |AORT_GROUP_INVALID = -8|Group invalid| |AORT_NOT_EXIST = -9|inexistence| |AORT_MORE_FILE_EXIST = -10|File already exists| |AORT_SEARCH_ERROR = -11|Search error| |AORT_OVER_MAX_COUNT = -12|upper limit exceeded| |AORT_UPDATING_FEATURE = -13|Updating feature values| |AORT_NO_USABLE_IPC = -14|There is no IPC vailable for eigenvalue calculation| |AORT_INVALID_PARAM = -15|invalid parameter| |AORT_INVALID_FORMAT = -16|malformed | |AORT_INVALID_RES = -17|resolution error| |AORT_INVALID_MEM = -18|File too large error| |AORT_CREAT_FAILED = -19|create failed| |AORT_MD5_NOT_MATCH = -20|MD5 mismatch| |AORT_POS_ERROR = -21|wrong location| |AORT_SIZE_ERROR = -22|size error| |AORT_NOT_READY = -23|not ready| |AORT_INVALID_DB = -24|invalid database|

Table 4 |Parameter|Range|Type|Description| | ---- | ---- | ---- | ---- | |MsgId|null|||
|StartIndex|0|int|If the start index of the request is 0-19 for the first time and 20-39 for the second time, the StartIndex is 0 and 20 respectively| |Count|20|int|The number of face information requested| |SimpleInfo|0|int|Get abbreviated information, each face information in the response message contains only Id, GrpId and Name fields, 1-abbreviated mode, 0-normal mode| |WithImage|1|int|Do you need a picture? 1- Yes, 0- No| |WithFeature|1|int|Whether the eigenvalue is required, 1- Yes, 0- no| |NeedMD5|0|int|If MD5 is required, MD5 is also given in non-abbreviated mode|

Tips:

Response messages and request messages may not contain all the fields in the table above. If no fields are included, the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"data": {
		"MsgId": null,
		"Result": 0,	
		"Count": 153	
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

GetId

Function

This API is used to get added faces id.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
MsgIdnull
GrpId[2, 3, 7, 8, 9, 10, 11, 12, 13, 16, 17, 18, 19, 20, 21]int arrayThe group that needs to get the face ID.

Sample:

POST API/AI/AddedFaces/GetId HTTP/1.1
{
	"version": "1.0",
	"data": {
		"MsgId": "",
		"GrpId": [2, 3, 7, 8, 9, 10, 11, 12, 13, 16, 17, 18, 19, 20, 21]
	}
}

Response Message

Table 2

ParameterRangeTypeDescription
MsgIdnull
Result0intGet the results of all face Ids in a given group according to group Id, seeTable 3
CountintFace Id count in group
FaceIds[1,3,4,5,6,7,9,10,11,12,13,14,15,16,23,25]int arrayEach digit represents the unique identifier of a face in the group, which can be used to obtain all information about the face

Table 3

Result TypeCOMMENT
AORT_SUCCESS = 0Success
AORT_NO_DB = -1No database
AORT_DB_EXEC_FAILED = -2Database execution failed
AORT_CALC_FEATURE_FAILED = -3Feature extraction failed
AORT_CANCELED = -4Cancelled
AORT_NO_DISK = -5No hard drive
AORT_DISK_ERROR = -6Hard disk error
AORT_EXIST = -7Existed
AORT_GROUP_INVALID = -8Group invalid
AORT_NOT_EXIST = -9Does not exist
AORT_MORE_FILE_EXIST = -10File already exists
AORT_SEARCH_ERROR = -11Search error
AORT_OVER_MAX_COUNT = -12Limit exceeded
AORT_UPDATING_FEATURE = -13Updating feature values
AORT_NO_USABLE_IPC = -14No IPC available for eigenvalue calculation
AORT_INVALID_PARAM = -15Invalid parameter
AORT_INVALID_FORMAT = -16Wrong format
AORT_INVALID_RES = -17Wrong resolution
AORT_INVALID_MEM = -18File too large error
AORT_CREAT_FAILED = -19Creation failed
AORT_MD5_NOT_MATCH = -20MD5 mismatch
AORT_POS_ERROR = -21Location error
AORT_SIZE_ERROR = -22Wrong size
AORT_NOT_READY = -23Not ready
AORT_INVALID_DB = -24Invalid database

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"data": {
		"MsgId": "",
		"Result": 0,
		"Count": 16,
		"FaceIds": [
			1,
			3,
			4,
			5,
			6,
			7,
			9,
			10,
			11,
			12,
			13,
			14,
			15,
			16,
			23,
			25
		]
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Database license plate information query

Function

This API is used to query AI > Recognition > Database license plate information query the database license plate information

URI

POST /API/AI/AddedPlates/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including GetCountGetIdGetById

GetCount

Function

This API is used to get added license plates count.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
MsgIdnull
PlateInfoJSON arrayGet license plates count JSON show as follow TableTable 2When only the first element of the array, GetId, is used in the search, this field and the following GrpId field can be selected. This field has a higher priority than the GrpId field. If this field is provided, the GrpId field will be invalid.
GrpIdinteger arrayThis field is valid only when GetId

Table 2

ParameterRangeTypeDescription
MsgIdnull
Id1-15charactersstringLicense plate number, optional when searching
GrpIdintGroup Id, optional when searching, if the provided word is within the valid range (only -1 will be regarded as an invalid value), it will be used as an exact condition, otherwise this field will be ignored
PlateColor0-5intLicense plate color, the possible values are as follows:
enum AIPlateColor_e {
APC_Blue = 0, // blue
APC_Green = 1, // green
APC_Yellow = 2, // yellow
APC_Black = 3, // black
APC_White = 4, // white
APC_Other = 5, // other
APC_Max
};Optional when searching, if the provided word is within the valid range, it will be used as an exact condition, otherwise ignore this field
CarBrandstringCar brand, optional when searching
CarTypestringModel, optional when searching
SexintGender of car owner: 0-male, 1-female, optional when searching, if the provided word is within the valid range, it will be used as an exact condition, otherwise ignore this field
Owner"Mike"stringOwner's name, optional when searching
IdCode"415025199203050916"stringID number, optional when searching
Job"Software"stringOccupation, optional when searching
Phone"12345678902"stringPhone number, optional when searching
Domicile"Guangdong,Zhuhai,Xiangzhou ..."stringCurrent residence, optional when searching
Remark"Detail of this person ..."stringRemarks, optional when searching
EnableChnAlarm[255, 255, 255, 255]arraySpecial authority control, which controls which channels the face is allowed to be used for alarming. It is used by bit. The bit position indicates that the corresponding channel is allowed to alarm. If this field does not exist or is empty, it means that special authority control is not used. This field is not used when searching

Sample:

POST API/AI/AddedPlates/GetCount HTTP/1.1
{
    "version":"1.0",
	"data": {
        "PlateInfo": [
            {   
                "Id": "粤C"
            }
        ]
	}
}

Response Message

Table 3

|Parameter|Range|Type|Description| | ---- | ---- | ---- | ---- |
|Result| |int|The results are shown in the table Table 4| |Count| |int|The total number of qualified license plates in the searched database| |PlatesId| |string array|A list of license plate numbers that meet the conditions, only the result of GetId has this field| |PlateInfo| |JSON array|Only the result of GetById has this field|

Table 4

ParameterValueDescription
AORT_SUCCESS0Success
AORT_NO_DB-1No database
ORT_DB_EXEC_FAILED-2Database execution failed
AORT_CALC_FEATURE_FAILED-3Feature extraction failed
AORT_CANCELED-4Cancelled
AORT_NO_DISK-5No hard drive
AORT_DISK_ERROR-6Hard disk error
AORT_EXIST-7Existed
AORT_GROUP_INVALID-8Group invalid
AORT_NOT_EXIST-9Does not exist
AORT_MORE_FILE_EXIST-10Record already exists
AORT_SEARCH_ERROR-11Hard disk error
AORT_OVER_MAX_COUNT-12Limit exceeded
AORT_UPDATING_FEATURE-13Updating feature values
AORT_NO_USABLE_IPC-14No IPC available for eigenvalue calculation
AORT_INVALID_PARAM-15Invalid parameter
AORT_INVALID_FORMAT-16Wrong format
AORT_INVALID_RES-17Wrong resolution
AORT_INVALID_MEM-18File too large error
AORT_CREAT_FAILED-19Creation failed
AORT_MD5_NOT_MATCH-20MD5 mismatch
AORT_POS_ERROR-21Location error
AORT_SIZE_ERROR-22Wrong size
AORT_NOT_READY-23Not ready
AORT_INVALID_DB-24Invalid database
AORT_GRP_INVALID_OR_INTERNAL-25The group is invalid or the internal preset group is not allowed to be deleted
AORT_GRP_FACE_OVER_MAX-26The number of faces in the roster group has exceeded the limit
AORT_NO_PERMISSION-27No permission
AORT_GRP_PLATE_OVER_MAX-28The number of license plates in the license plate group has exceeded the limit

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "data": {
        "Result": 0,
        "Count": 2
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

GetById

Function

This API is used to obtain license plate information by license plate id.

Request Message

Parameter Description

Table 1 |Parameter|Range|Type|Description| | ---- | ---- | ---- | ---- | |MsgId|null| | |
|PlatesId| |string array|List of license plate numbers for details|

Sample:

POST API/AI/AddedPlates/GetById HTTP/1.1
{
    "version":"1.0",
    "data": {
        "PlatesId": [
            "粤CW2763",
            "粤CK3961"
        ]
    }
}

Response Message

See AI > Recognition > Database license plate information query > GetCount > Response Message > Table 3 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "data": {
        "Result": 0,
        "Count": 2,
        "PlateInfo": [
            {
                "Id": "粤CW2763",
                "GrpId": 1,
                "PlateColor": 0,
                "Sex": 1,
                "CarBrand": "大众",
                "CarType": "两厢车",
                "Owner": "张三",
                "IdCode": "12125180",
                "Job": "职业",
                "Phone": "15271859302",
                "Domicile": "居住地1",
                "Remark": "备注",
                "EnableChnAlarm": []
            },
            {
                "Id": "粤CK3961",
                "GrpId": 1,
                "PlateColor": 1,
                "Sex": 1,
                "CarBrand": "大众",
                "CarType": "三厢车",
                "Owner": "李四",
                "IdCode": "12125181",
                "Job": "职业",
                "Phone": "15271859303",
                "Domicile": "居住地2",
                "Remark": "备注",
                "EnableChnAlarm": []
            }
        ]
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

GetId

Function

This API is used to get license plate id.

Request Message

See AI > Recognition > Database license plate information query > GetCount > Parameter Description > Table 1 for parameter description.

Sample:

POST API/AI/AddedPlates/GetId HTTP/1.1

(1) Fuzzy query

{
    "version":"1.0",
	"data": {
        "PlateInfo": [
            {   
                "Id": "粤CW"
            }
        ]
	}
}

(2) Acquired according to the group Id list

{
    "version":"1.0",
	"data": {
        "GrpId": [1, 2, 6]
	}
}

Response Message

See AI > Recognition > Database license plate information query > GetCount > Response Message > Table 3 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json

(1) Fuzzy query

{
    "data": {
        "Result": 0,
        "Count": 1,
        "PlatesId": [
            "粤CW2763"
        ]
    }
}

(2) Acquired according to the group Id list

{
    "data": {
        "Result": 0,
        "Count": 2,
        "PlatesId": [
            "粤CW2763",
            "粤CK3961"
        ]
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Face

Function

This API is used for parameter manipulation of faces

URI

POST /API/AI/Faces/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including AddGetImagesFeatureModifyRemove

Add

Function

This API is used to add AI > Recognition > Faces faces.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
MsgIdnull
Countint添加多个人脸信息的计数
FaceInfoJSON arrayAdd Faces JSON show as followTable 2

Table 2 |Parameter|Range|Type|Description| | ---- | ---- | ---- | ---- | |MsgId|null|||
|Id||int|64-bit signed face Id, unique identifier, Id field must be valid when Modify face information| |GrpId||int|Group ID| |Time||int|Start time| |Similarity||unsigned int|similarity| |Sex||int|Gender: 0-male, 1-female| |Age||int|age| |Chn||int|channel| |ModifyCnt||int|The number of modifications, the upper layer is read-only, and the device updates the face information in real time each time it is modified| |Image1|"base64(imgData)"|string|When adding must be given, is the main picture of the database face. When Modify, if "Image1" and "Feature" are given, the given "Image1" and "Feature" are used directly (note that the feature value version must also be given). If only "Image1" is given, "Feature" is recalculated, and if "Image1" is not given, only fields other than "Image1" and "Feature" are modified.| |Image2|null|string|This parameter is only useful for real-time alarms| |Image3|null|string|This parameter is only useful for real-time alarms| |Feature|"base64(feature)"|string|eigenvalue| |FtVersion||int|Version of the eigenvalue. This parameter is meaningful only when the eigenvalue of the same version is compared. If the eigenvalue is returned, this field is also returned| |Name|"Mike"|string|name| |Country|"China"|string|nationality| |Nation|"Han"|string|nation| |NativePlace|"Guangdong,Zhuhai"|string|Native place| |IdCode|"415025199203050916"|string|Identification card| |Job|"Software"|string|professional| |Phone|"12345678902"|string|telephone| |Email|"abcd@163.com"|string|mail| |Domicile|"Guangdong,Zhuhai,Xiangzhou ..."|string|Current residence| |Remark|"Detail of this person ..."|string|evaluate| |EnableChnAlarm|[255, 255, 255, 255]|array|Special authority control, control the face is allowed in which channels for alarm, according to the bit bit position indicates that the corresponding channel allows alarm, the field does not exist or is empty means that special authority control is not used|

Sample:

POST /API/AI/Faces/Add HTTP/1.1
{
	"data": {
		"MsgId": null,
		"Count": 2,
		"FaceInfo": [
			{
				"Id": -1,		
				"GrpId": 1,		
				"Time": 0,
				"Similarity": 0,
				"Sex": 0,		
				"Age": 26,
				"Chn": 0,
				"ModifyCnt": 0,			
				"Image1": "base64(imgData)",		
				"Image2": null,			
				"Image3": null,			
				"Feature": "base64(feature)",
				"FtVersion": 0,	
				"Name": "Mike",
				"Country": "China",
				"Nation": "Han",
				"NativePlace": "Guangdong,Zhuhai",
				"IdCode": "415025199203050916",
				"Job": "Software",
				"Phone": "12345678902",
				"Email": "abcd@163.com",
				"Domicile": "Guangdong,Zhuhai,Xiangzhou ...",
				"Remark": "Detail of this person ...",
				"EnableChnAlarm": [255, 255, 255, 255] 
			}
		]
	}
}

Response Message

Parameter Description

Table 5

ParameterRangeTypeDescription
MsgIdnull
Countintgroup count
Result[0, 0,…]arrayresult show as follow Table x
Id[2, 3,…]arrayAdd the corresponding face Id after success
MD5["F74C70ADB0B63B00E279E71B4143704D", "0194F781438F2DE8FBE5B0469895036D"]arrayMD5 value of the face

Table x | Result type | Description | | ---- | ---- | |AORT_SUCCESS = 0|succeed| |AORT_NO_DB = -1|No database| |AORT_DB_EXEC_FAILED = -2|Database execution failure| |AORT_CALC_FEATURE_FAILED = -3|Feature extraction failure| |AORT_CANCELED = -4|canceled| |AORT_NO_DISK = -5|No hard disk| |AORT_DISK_ERROR = -6|Hard disk error| |AORT_EXIST = -7|Already exist| |AORT_GROUP_INVALID = -8|Group invalid| |AORT_NOT_EXIST = -9|inexistence| |AORT_MORE_FILE_EXIST = -10|File already exists| |AORT_SEARCH_ERROR = -11|Search error| |AORT_OVER_MAX_COUNT = -12|upper limit exceeded| |AORT_UPDATING_FEATURE = -13|Updating feature values| |AORT_NO_USABLE_IPC = -14|There is no IPC vailable for eigenvalue calculation| |AORT_INVALID_PARAM = -15|invalid parameter| |AORT_INVALID_FORMAT = -16|malformed | |AORT_INVALID_RES = -17|resolution error| |AORT_INVALID_MEM = -18|File too large error| |AORT_CREAT_FAILED = -19|create failed| |AORT_MD5_NOT_MATCH = -20|MD5 mismatch| |AORT_POS_ERROR = -21|wrong location| |AORT_SIZE_ERROR = -22|size error| |AORT_NOT_READY = -23|not ready| |AORT_INVALID_DB = -24|invalid database|

Tips:

Response messages and request messages may not contain all the fields in the table above. If no fields are included, the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"data": {
		"MsgId": null,
		"Count": 2,
		"Result": [0, 0],	
		"Id": [2, 3],	
		"MD5": ["F74C70ADB0B63B00E279E71B4143704D", "0194F781438F2DE8FBE5B0469895036D"]  
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

GetImagesFeature

Function

This API is used to get image feature values. AI > Recognition > Faces

Request Message

Parameter Description

Table 7 |Parameter|Range|Type|Description| | ---- | ---- | ---- | ---- | |Images||string array|Image data encoded in Base64|

Sample:

POST /API/AI/Faces/Modify HTTP/1.1
{
    "data": {
        "Images": "base64(imgData)"
    }
}

Response Message

Parameter Description

Table 8 |Parameter|Range|Type|Description| | ---- | ---- | ---- | ---- | |FeatureVersion||int|Version of the eigenvalue| |Features||string array|Get eigenvalue data| |Results||int array|The result of eigenvalue operation is obtained|

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    {
    "FeatureVersion": 0,
    "Features": "base64(feature)",
    "Results": [0,0] 
}
}

Error Code

See Response Messages Body and Common error_code for more information.

Modify

Function

This API is used to modify the AI > Recognition > Faces parameter.

Request Message

See AI > Recognition > Faces > Add > Parameter Description > Table 1for parameter description.

Sample:

POST /API/AI/Faces/Modify HTTP/1.1
{
	"data": {
		"MsgId": null,
		"Count": 2,
		"FaceInfo": [
			{
				"Id": -1,		
				"GrpId": 1,		
				"Time": 0,
				"Similarity": 0,
				"Sex": 0,		
				"Age": 26,
				"Chn": 0,
				"ModifyCnt": 0,			
				"Image1": "base64(imgData)",		
				"Image2": null,			
				"Image3": null,			
				"Feature": "base64(feature)",
				"FtVersion": 0	
				"Name": "Mike",
				"Country": "China",
				"Nation": "Han",
				"NativePlace": "Guangdong,Zhuhai",
				"IdCode": "415025199203050916",
				"Job": "Software",
				"Phone": "12345678902",
				"Email": "abcd@163.com",
				"Domicile": "Guangdong,Zhuhai,Xiangzhou ...",
				"Remark": "Detail of this person ...",
				"EnableChnAlarm": [255, 255, 255, 255] 
			}
		]
	}
}

Response Message

See AI > Recognition > Faces > Add > Parameter Description > Table 5for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"data": {
		"MsgId": null,
		"Count": 2,
		"Result": [0, 0],	
		"Id": [2, 3],	
		"MD5": ["F74C70ADB0B63B00E279E71B4143704D", "0194F781438F2DE8FBE5B0469895036D"]  
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Remove

Function

This API is used to remove the AI > Recognition > Faces parameter.

Request Message

Parameter Description

Table 1 |Parameter|Range|Type|Description| | ---- | ---- | ---- | ---- | |MsgId|null||| |Count||int|Modify the number of face groups to which a face belongs or delete the number of face groups| |FaceInfo||JSON array|Add Faces JSON see Table 2|

Table 2 |Parameter|Range|Type|Description| | ---- | ---- | ---- | ---- | |MsgId |null ||| |Id |-1| int |64-bit signed face Id| |MD5 |"F74C70ADB0B63B00E279E71B4143704D"| string |When deleting face information, you only need to set the "Id" or MD5 field. The MD5 field has a higher priority. If MD5 field exists, MD5 is used first|

Sample:

POST /API/AI/Faces/Remove HTTP/1.1
{
	"data": {
		"MsgId": null,
		"Count": 2,
		"FaceInfo": [
			{
				"Id": 2, 
				"MD5": "F74C70ADB0B63B00E279E71B4143704D"
			},
			{
				"Id": 3,
				"MD5": "0194F781438F2DE8FBE5B0469895036D"
			}
		]
	}
}

Response Message

Parameter Description

See AI > Recognition > Faces > Add > Parameter Description > Table 5for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "data": {
        "MsgId": null,
        "Count": 2,
        "Result": [0,0],
        "Id": [ 2,3],
        "MD5": [
            "F74C70ADB0B63B00E279E71B4143704D",
            "0194F781438F2DE8FBE5B0469895036D"
        ]
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Face Group

Function

This API is used to manipulate the Face Group parameter

URI

POST /API/AI/FDGroup/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including GetIdAddModifyRemoveGetChange

Add

Function

This API is used to add AI > Recognition > FDGroup page parameters.

Request Message

Parameter Description

Table 3 |Parameter|Range|Type|Description| | ---- | ---- | ---- | ---- | |MsgId|null|||
|Group||array|Add Face Group JSON show as followTable 4|

Table 4 |Parameter|Range|Type|Description| | ---- | ---- | ---- | ---- | |MsgId|null|||
|Id||int|Face group Id, add without giving| |Name||string|Face group name, add without giving| |DetectType|0|int|To detect the type and add a face group, just give the DetectType field, 0-DLDT_Face, 1-DLDT_Car|

Tips:

Response messages and request messages may not contain all the fields in the table above. If no fields are included, the device does not support this parameter configuration.

Sample:

POST /API/AI/FDGroup/Add HTTP/1.1
{
	"data": {
		"MsgId": null,					
		"Group": [
			{
				"DetectType": 0
			}
		]
	}
}

Response Message

See AI > Recognition > FDGroup > Get > Parameter Description > Table 2for parameter descriptions.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"data": {
		"MsgId": null,
		"Result": 0,
		"Count": 5,	
		"Group": [	
			{
				"Id": 2,
				"Name": "Block List",
				"DetectType": 0,
				"Policy": 0,
				"Enabled": 1,
				"CanDel": 0,
				"Similarity": 70,
				"PolicyConfigs": [
					{
						"ChnAlarmOut": [			
							[ [255, 255, 0, 255], [255, 255, 0, 255], [255, 255, 0, 255] ],
							[ [255, 255, 0, 255], [255, 255, 0, 255], [255, 255, 0, 255] ],
							...
							[ [255, 255, 0, 255], [255, 255, 0, 255], [255, 255, 0, 255] ]
						  ],
						  "ChnBuzzerOpt": [0, 1, 1, 2, 3, 4, 0, 1, 1, 3, 2, 2 ],
						  "LatchTimeOpt": [0, 1, 1, 2, 3, 4, 0, 1, 1, 3, 2, 2 ],
						  "SaveImg": [255, 255, 255, 255],
						  "SendEmail": [0, 0, 0, 0],
						  "UploadToFtp": [255, 255, 255, 255],
						  "UploadToCloud": [0, 0, 0, 0],
						  "ShowThumbnail": [255, 255, 255, 255],
						  "Record": [255, 255, 255, 255],
						  "Push": [0, 0, 0, 0],
						  "AlarmSchedule": [
							[				
								[255, 255, 255, 255, 255, 255],		
								...
							],
							[			
								[255, 255, 255, 255, 255, 255],
								...
							],
							...	
						]
					},
					{
						"ChnAlarmOut": [			
							[ [255, 255, 0, 255], [255, 255, 0, 255], [255, 255, 0, 255] ],	
							[ [255, 255, 0, 255], [255, 255, 0, 255], [255, 255, 0, 255] ],
							[ [255, 255, 0, 255], [255, 255, 0, 255], [255, 255, 0, 255] ],
							...
							[ [255, 255, 0, 255], [255, 255, 0, 255], [255, 255, 0, 255] ]
						  ],
						  "ChnBuzzerOpt": [0, 1, 1, 2, 3, 4, 0, 1, 1, 3, 2, 2 ],
						  "LatchTimeOpt": [0, 1, 1, 2, 3, 4, 0, 1, 1, 3, 2, 2 ],
						  "SaveImg": [255, 255, 255, 255],
						  "SendEmail": [0, 0, 0, 0],
						  "UploadToFtp": [255, 255, 255, 255],
						  "UploadToCloud": [0, 0, 0, 0],
						  "ShowThumbnail": [255, 255, 255, 255],
						  "Record": [255, 255, 255, 255],
						  "Push": [0, 0, 0, 0],
						  "AlarmSchedule": [
							[				
								[255, 255, 255, 255, 255, 255],		
								...
							],
							[				
								[255, 255, 255, 255, 255, 255],
								...
							],
							...				
						]
					}
				],
				"EnableChnAlarm": [255, 255, 255, 255],
				"AlarmOut": {
					"Local": ["Local->1"],
					"Ipc": [{
						"Channel": 1,
						"AlarmOutCnt": 1
					}, {
						"Channel": 4,
						"AlarmOutCnt": 1
					}, {
						"Channel": 5,
						"AlarmOutCnt": 1
					}]
				}		
			},
			...	

		]
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get AI > Recognition > FDGroup page parameters.

Request Message

Parameter Description

Table 1 |Parameter|Range|Type|Description| | ---- | ---- | ---- | ---- | |MsgId|null| |moot| |TypeFlags| |int|The detection type combination of the group to be obtained, such as: 1-face, 2-car, 3-person-car (0x1 << DLDT_Face | 0x1 << DLDT_Car), currently only faces are supported | |DefaultVal| |int|Get default alarm parameters or actual alarm parameters, 1- default parameters, 0- actual parameters | |WithInternal| |int|Internal group is not open for users to use, only for storing common faces, the client wants to obtain a list of common faces to use the internal group Id | |SimpleInfo| |int|Get simple information or complete information. Simple information only includes Group name, Id, DetectType, Policy, Enabled, CanDel, Similarity, and complete information includes all parameters of the group. 1- Get abbreviated information, 0- complete information | |GroupsId|[1,2,3….x]|array|Obtain the configuration information of the corresponding group. If the field is empty or does not exist, obtain all the information |

Sample:

POST /API/AI/FDGroup/Get HTTP/1.1
{
	"data": {
		"MsgId": null,
		"TypeFlags": 1,		
		"DefaultVal": 0,	
		"WithInternal": 1,
		"SimpleInfo": 0		
"GroupsId": [
2,
        ]		
	}
}

Response Message

Parameter Description

Table 2

ParameterRangeTypeDescription
MsgIdnull
Result0,-1,-2,….-23, -24intSee Table x for the return result of the request. This field is not required for Modify.
channel_maxintMaximum number of channels
Count1-16intNumber of groups, used when get
GroupintFace group,Face Group Information JSON See TableTable 5.

Table x

Result typeDescription
AORT_SUCCESS = 0succeed
AORT_NO_DB = -1No database
AORT_DB_EXEC_FAILED = -2Database execution failure
AORT_CALC_FEATURE_FAILED = -3Feature extraction failure
AORT_CANCELED = -4canceled
AORT_NO_DISK = -5No hard disk
AORT_DISK_ERROR = -6Hard disk error
AORT_EXIST = -7Already exist
AORT_GROUP_INVALID = -8Group invalid
AORT_NOT_EXIST = -9inexistence
AORT_MORE_FILE_EXIST = -10File already exists
AORT_SEARCH_ERROR = -11Search error
AORT_OVER_MAX_COUNT = -12upper limit exceeded
AORT_UPDATING_FEATURE = -13Updating feature values
AORT_NO_USABLE_IPC = -14There is no IPC vailable for eigenvalue calculation
AORT_INVALID_PARAM = -15invalid parameter
AORT_INVALID_FORMAT = -16malformed
AORT_INVALID_RES = -17resolution error
AORT_INVALID_MEM = -18File too large error
AORT_CREAT_FAILED = -19create failed
AORT_MD5_NOT_MATCH = -20MD5 mismatch
AORT_POS_ERROR = -21wrong location
AORT_SIZE_ERROR = -22size error
AORT_NOT_READY = -23not ready
AORT_INVALID_DB = -24invalid database

Table 5 |Parameter|Range|Type|Description| | ---- | ---- | ---- | ---- | |Id||int|Face group ID| |name|"Allow List"
"Block List"
……|string|Face group name, group name can be customized| |DetectType|0,1|int|Detection type 0: face 1: car| |Policy|0-4|int|Policy attributes, 0-Allow List, 1-Block List, 2-Stranger,3-Internal (Internal group is only used to store the most recent face for comparison, not for alarm and other functions), 4-Advance| |Enabled|0,1|int|Face alarm enable 0: off 1: on| |CanDel||int|A predefined group cannot be deleted and is identified by the CanDel field. 0 cannot be deleted| |Similarity|0-100|unsigned int|similarity| |PolicyConfigs||JSON array|Group alarm policy configuration, fixed to two elements, the common group uses the 0 element, advanced group 0 corresponds to Allow, the first corresponds to Deny. PolicyConfigs JSON, as shown in the table Table 6| |EnableChnAlarm|[255, 255, 255, 255]|array|Control the channels in which the corresponding group is allowed to alarm, according to the bit bit position indicates that the corresponding channel is allowed to alarm| |AlarmOut||Object|Alarm output association, Information JSON is shown in table Table 10|

Table 6 |Parameter|Range|Type|Description| | ---- | ---- | ---- | ---- | |ChnAlarmOut|[ [255, 255, 0, 255], [255, 255, 0, 255], [255, 255, 0, 255] ],
...
[ [255, 255, 0, 255], [255, 255, 0, 255], [255, 255,0,255] ]|array|Each element represents the alarm output associated with a channel, there are 3 main elements, the 0 th represents the local alarm output, the 1/2 represents the front-end alarm output 0/1, and each bit of the child element indicates whether the alarm output of the channel is associated| |ChnBuzzerOpt|[0, 1, 1, 2, 3, 4, 0, 1, 1, 3, 2, 2 …]|array|Each element indicates the buzzer configuration of a channel, 0-disable, 1-10s, 2-20s, 3-40s, 4-60s| |LatchTimeOpt|[0, 1, 1, 2, 3, 4, 0, 1, 1, 3, 2, 2 …]|array|Each element represents the alarm output duration of a channel, 0-0s, 1-1s, 2-2s, 3-3s, 4-5s, 5-10s, 6-20s, 7-40s, 8-60s| |SaveImg|[255, 255, 255, 255…]|array|Each element represents the configuration of whether a channel saves pictures, and the use of bits in each element indicates whether to save faces and backgrounds| |SendEmail|[0, 0, 0, 0]|array|Used in bits, each bit indicates whether a channel sends mail,0- not to send, 1- to send| |UploadToFtp|[255, 255, 255, 255]|array|Each bit indicates whether a channel uploads FTP| |UploadToCloud|[0, 0, 0, 0]|array|Used in bits, each bit indicates whether a channel is uploading to the Cloud, 0- not uploading, 1- uploading| |ShowThumbnail|[255, 255, 255, 255]|array|Used in bits, each bit represents a channel that is displayed as a thumbnail| |Record|[255, 255, 255, 255]|array|Used in bits, each bit indicates that a channel is recording| |Push|[0, 0, 0, 0]|array|Used by bit, each bit indicates whether a channel sends push, 0- no push, 1- push| |AlarmSchedule|[[255, 255, 255, 255, 255, 255], ...],
[[255, 255, 255, 255, 255, 255] ...]|array|Alarm schedule, each bit represents half an hour, a total of 48 bits, set indicates video, and vice versa| |event_push_platform|[0, 0, 0, 0]|array|Used in bits, each bit indicates whether a channel has event push enabled|

Table 10 |Parameter|Range|Type|Description| | ---- | ---- | ---- | ---- | |Local|"Local->1" "Local->2"
"Local->3"
……
The number of local's depends on the capability of the device.|string array|Local alarm linkage.| |Ipc| |JSON array|Front-end alarm linkage. IPC JSON is shown in table Table 11|

Table 11 |Parameter|Range|Type|Description| | ---- | ---- | ---- | ---- | |Channel| |int|Front-end alarm output associated channel| |AlarmOutCnt| |int|Indicates the number of front-end alarm outputs, front-end support 2 alarm outputs|

Tips:

Response messages and request messages may not contain all the fields in the table above. If no fields are included, the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"data": {
		"MsgId": null,
		"Result": 0,
		"Count": 5,	
		"Group": [	
			{
				"Id": 2,
				"Name": "Block List",
				"DetectType": 0,
				"Policy": 0,
				"Enabled": 1,
				"CanDel": 0,
				"Similarity": 70,
				"PolicyConfigs": [
					{
						"ChnAlarmOut": [			
							[ [255, 255, 0, 255], [255, 255, 0, 255], [255, 255, 0, 255] ],
							[ [255, 255, 0, 255], [255, 255, 0, 255], [255, 255, 0, 255] ],
							...
							[ [255, 255, 0, 255], [255, 255, 0, 255], [255, 255, 0, 255] ]
						  ],
						  "ChnBuzzerOpt": [0, 1, 1, 2, 3, 4, 0, 1, 1, 3, 2, 2 ],
						  "LatchTimeOpt": [0, 1, 1, 2, 3, 4, 0, 1, 1, 3, 2, 2 ],
						  "SaveImg": [255, 255, 255, 255],
						  "SendEmail": [0, 0, 0, 0],
						  "UploadToFtp": [255, 255, 255, 255],
						  "UploadToCloud": [0, 0, 0, 0],
						  "ShowThumbnail": [255, 255, 255, 255],
						  "Record": [255, 255, 255, 255],
						  "Push": [0, 0, 0, 0],
						  "AlarmSchedule": [
							[				
								[255, 255, 255, 255, 255, 255],		
								...
							],
							[			
								[255, 255, 255, 255, 255, 255],
								...
							],
							...	
						]
					},
					{
						"ChnAlarmOut": [			
							[ [255, 255, 0, 255], [255, 255, 0, 255], [255, 255, 0, 255] ],	
							[ [255, 255, 0, 255], [255, 255, 0, 255], [255, 255, 0, 255] ],
							[ [255, 255, 0, 255], [255, 255, 0, 255], [255, 255, 0, 255] ],
							...
							[ [255, 255, 0, 255], [255, 255, 0, 255], [255, 255, 0, 255] ]
						  ],
						  "ChnBuzzerOpt": [0, 1, 1, 2, 3, 4, 0, 1, 1, 3, 2, 2 ],
						  "LatchTimeOpt": [0, 1, 1, 2, 3, 4, 0, 1, 1, 3, 2, 2 ],
						  "SaveImg": [255, 255, 255, 255],
						  "SendEmail": [0, 0, 0, 0],
						  "UploadToFtp": [255, 255, 255, 255],
						  "UploadToCloud": [0, 0, 0, 0],
						  "ShowThumbnail": [255, 255, 255, 255],
						  "Record": [255, 255, 255, 255],
						  "Push": [0, 0, 0, 0],
						  "AlarmSchedule": [
							[				
								[255, 255, 255, 255, 255, 255],		
								...
							],
							[				
								[255, 255, 255, 255, 255, 255],
								...
							],
							...				
						]
					}
				],
				"EnableChnAlarm": [255, 255, 255, 255],
				"AlarmOut": {
					"Local": ["Local->1"],
					"Ipc": [{
						"Channel": 1,
						"AlarmOutCnt": 1
					}, {
						"Channel": 4,
						"AlarmOutCnt": 1
					}, {
						"Channel": 5,
						"AlarmOutCnt": 1
					}]
				}		
			},
			...	

		]
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

GetId

Function

This API is used to get the AI > Recognition > FDGroup id.

Request Message

Parameter Description

Table 12 |Parameter|Range|Type|Description| | ---- | ---- | ---- | ---- | |MsgId|null||moot| |TypeFlags||int|The combination of detection types of the group to be obtained, such as: 1- face, 2- car, 3- person car (0x1 < < DLDT_Face | 0x1 < < DLDT_Car), currently only faces are supported| |DefaultVal||int|Get default alarm parameters or actual alarm parameters, 1- default parameters, 0- actual parameters| |WithInternal||int|Internal group is not open for users to use, only for storing common faces, the client wants to obtain a list of common faces to use the internal group Id| |SimpleInfo||int|Get simple information or complete information. Simple information only includes Group name, Id, DetectType, Policy, Enabled, CanDel, Similarity, and complete information includes all parameters of the group. 1- Get abbreviated information, 0- complete information|

Sample:

POST /API/AI/FDGroup/GetId HTTP/1.1
{
    "version": "1.0",
    "data": {
        "MsgId": "",
        "DefaultVal": 0,
        "SimpleInfo": 0,
        "TypeFlags": 1,
        "WithInternal": 0
    }
}

Response Message

Parameter Description

Table 13 |Parameter|Range|Type|Description| | ---- | ---- | ---- | ---- | |MsgId|Nul||moot| |Result|0,-1,-2,….-23, -24|int|The return result of the request is shown at Table-17.x.x. This field is not required when Modify is used| |GroupsId|[1,2,3…x]|array|The ID of the obtained group|

Tips:

Response messages and request messages may not contain all the fields in the table above. If no fields are included, the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "data": {
    "MsgId": "",
    "Result": 0,
    "GroupsId": [
        2,
        3,
        4
    ]
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Modify

Function

This API is used to modify the AI > Recognition > FDGroup parameter.

Request Message

see AI > Recognition > FDGroup > Get > Parameter Description > Table 2for parameter description.

Sample:

POST /API/AI/Faces/Modify HTTP/1.1
{
	"data": {
		"MsgId": null,
		"Result": 0,
		"Count": 5,	
		"Group": [	
			{
				"Id": 2,
				"Name": "Block List",
				"DetectType": 0,
				"Policy": 0,
				"Enabled": 1,
				"CanDel": 0,
				"Similarity": 70,
				"PolicyConfigs": [
					{
						"ChnAlarmOut": [			
							[ [255, 255, 0, 255], [255, 255, 0, 255], [255, 255, 0, 255] ],
							[ [255, 255, 0, 255], [255, 255, 0, 255], [255, 255, 0, 255] ],
							...
							[ [255, 255, 0, 255], [255, 255, 0, 255], [255, 255, 0, 255] ]
						  ],
						  "ChnBuzzerOpt": [0, 1, 1, 2, 3, 4, 0, 1, 1, 3, 2, 2 ],
						  "LatchTimeOpt": [0, 1, 1, 2, 3, 4, 0, 1, 1, 3, 2, 2 ],
						  "SaveImg": [255, 255, 255, 255],
						  "SendEmail": [0, 0, 0, 0],
						  "UploadToFtp": [255, 255, 255, 255],
						  "UploadToCloud": [0, 0, 0, 0],
						  "ShowThumbnail": [255, 255, 255, 255],
						  "Record": [255, 255, 255, 255],
						  "Push": [0, 0, 0, 0],
						  "AlarmSchedule": [
							[				
								[255, 255, 255, 255, 255, 255],		
								...
							],
							[			
								[255, 255, 255, 255, 255, 255],
								...
							],
							...	
						]
					},
					{
						"ChnAlarmOut": [			
							[ [255, 255, 0, 255], [255, 255, 0, 255], [255, 255, 0, 255] ],	
							[ [255, 255, 0, 255], [255, 255, 0, 255], [255, 255, 0, 255] ],
							[ [255, 255, 0, 255], [255, 255, 0, 255], [255, 255, 0, 255] ],
							...
							[ [255, 255, 0, 255], [255, 255, 0, 255], [255, 255, 0, 255] ]
						  ],
						  "ChnBuzzerOpt": [0, 1, 1, 2, 3, 4, 0, 1, 1, 3, 2, 2 ],
						  "LatchTimeOpt": [0, 1, 1, 2, 3, 4, 0, 1, 1, 3, 2, 2 ],
						  "SaveImg": [255, 255, 255, 255],
						  "SendEmail": [0, 0, 0, 0],
						  "UploadToFtp": [255, 255, 255, 255],
						  "UploadToCloud": [0, 0, 0, 0],
						  "ShowThumbnail": [255, 255, 255, 255],
						  "Record": [255, 255, 255, 255],
						  "Push": [0, 0, 0, 0],
						  "AlarmSchedule": [
							[				
								[255, 255, 255, 255, 255, 255],		
								...
							],
							[				
								[255, 255, 255, 255, 255, 255],
								...
							],
							...				
						]
					}
				],
				"EnableChnAlarm": [255, 255, 255, 255],
				"AlarmOut": {
					"Local": ["Local->1"],
					"Ipc": [{
						"Channel": 1,
						"AlarmOutCnt": 1
					}, {
						"Channel": 4,
						"AlarmOutCnt": 1
					}, {
						"Channel": 5,
						"AlarmOutCnt": 1
					}]
				}		
			},
			...	

		]
	}
}

Response Message

Parameter Description

Table 9

ParameterRangeTypeDescription
MsgIdnull
Result0,-1,-2,….-23, -24intReturns a result or error code See AI > Recognition > FDGroup > Get > Parameter Description > Table x

Tips:

Response messages and request messages may not contain all the fields in the table above. If no fields are included, the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"data": {
		"MsgId": null,
		"Result": 0  
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Remove

Function

This API is used to remove AI > Recognition > FDGroup face groups.

Request Message

Parameter Description

Table 7 |Parameter|Range|Type|Description| | ---- | ---- | ---- | ---- | |MsgId|null|||
|Group|0-16|array|RemoveFace GroupJSON show as followTable 8|

Table 8 |Parameter|Range|Type|Description| | ---- | ---- | ---- | ---- | |MsgId|null|||
|Id||int|Delete a face group ID. A predefined group cannot be deleted|

Tips:

Response messages and request messages may not contain all the fields in the table above. If no fields are included, the device does not support this parameter configuration.

Sample:

POST /API/AI/FDGroup/Remove HTTP/1.1
{
	"data": {
		"MsgId": null,					
		"Group": [
			{
				"Id": 4,
			}
		]
	}
}

Response Message

See AI > Recognition > FDGroup > Modify> Parameter Description > Table 9for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"data": {
		"MsgId": null,
		"Result": 0  
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Change

Function

This API is used to change the group to which a face belongs AI > Recognition > Face Group

Request Message

Parameter Description

Table 3 |Parameter|Range|Type|Description| | ---- | ---- | ---- | ---- | |MsgId|null||| |Count||int|修改人脸所属组人脸组数或删除的人脸组数| |Group||int|将要移到的人脸组Id,仅Change时有此字段| |FaceInfo||JSON array|Add Faces JSON show as follow Table 4|

Table 4 |Parameter|Range|Type|Description| | ---- | ---- | ---- | ---- | |MsgId |null ||| |Id |-1| int |64-bit signed face Id| |MD5 |"F74C70ADB0B63B00E279E71B4143704D"| string |When deleting face information, you only need to set the "Id" or MD5 field. The MD5 field has a higher priority. If MD5 field exists, MD5 is used first|

Tips:

Response messages and request messages may not contain all the fields in the table above. If no fields are included, the device does not support this parameter configuration.

Sample:

POST /API/AI/FDGroup/Change HTTP/1.1
{
	"data": {
		"MsgId": null,
		"Count": 2,
		"Group": 1,
		"FaceInfo": [{
				"id": -1,
				"MD5":"F74C70ADB0B63B00E279E71B4143704D"
		}]
	}
}

Response Message

Parameter Description

Table 5 |Parameter|Range|Type|Description| | ---- | ---- | ---- | ---- | |MsgId|null|||
|Count||int|group count| |Result|[0, 0,…]|array|result show as follow Table x| |Id|[2, 3,…]|array|Add the corresponding face Id after success| |MD5|["F74C70ADB0B63B00E279E71B4143704D", "0194F781438F2DE8FBE5B0469895036D"]|array|MD5 value of the face|

Table x | Result type | Description | | ---- | ---- | |AORT_SUCCESS = 0|succeed| |AORT_NO_DB = -1|No database| |AORT_DB_EXEC_FAILED = -2|Database execution failure| |AORT_CALC_FEATURE_FAILED = -3|Feature extraction failure| |AORT_CANCELED = -4|canceled| |AORT_NO_DISK = -5|No hard disk| |AORT_DISK_ERROR = -6|Hard disk error| |AORT_EXIST = -7|Already exist| |AORT_GROUP_INVALID = -8|Group invalid| |AORT_NOT_EXIST = -9|inexistence| |AORT_MORE_FILE_EXIST = -10|File already exists| |AORT_SEARCH_ERROR = -11|Search error| |AORT_OVER_MAX_COUNT = -12|upper limit exceeded| |AORT_UPDATING_FEATURE = -13|Updating feature values| |AORT_NO_USABLE_IPC = -14|There is no IPC vailable for eigenvalue calculation| |AORT_INVALID_PARAM = -15|invalid parameter| |AORT_INVALID_FORMAT = -16|malformed | |AORT_INVALID_RES = -17|resolution error| |AORT_INVALID_MEM = -18|File too large error| |AORT_CREAT_FAILED = -19|create failed| |AORT_MD5_NOT_MATCH = -20|MD5 mismatch| |AORT_POS_ERROR = -21|wrong location| |AORT_SIZE_ERROR = -22|size error| |AORT_NOT_READY = -23|not ready| |AORT_INVALID_DB = -24|invalid database|

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"data": {
		"MsgId": null,
		"Count": 2,
		"Result": [0, 0],	
		"Id": [2, 3],	
		"MD5": ["F74C70ADB0B63B00E279E71B4143704D", "0194F781438F2DE8FBE5B0469895036D"]  
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

License Plate

Function

This API is used to add, delete, modify license plate and change the group to which the license plate belongs.

URI

POST /API/AI/Plates/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Add,Modify,Change,Remove.

Add

Function

This API is used to add license plate.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
MsgIdnull
PlateInfoJSON arrayAdd License Plates JSON show as follow Table Table 2

Table 2

ParameterRangeTypeDescription
MsgIdnull
Id1-15charactersstringLicense plate number, unique identification.
GrpIdintGroup ID
PlateColor0-5intLicense plate color, the possible values are as follows:
enum AIPlateColor_e {
APC_Blue = 0,// blue
APC_Green = 1,// green
APC_Yellow = 2, // yellow
APC_Black = 3,// black
APC_White = 4,// white
APC_Other = 5,// other
APC_Max
};
CarBrandstringCar brand
CarTypestringCar model
SexintOwner gender: 0-male, 1-female
Owner"Mike"stringOwner name
IdCode"415025199203050916"stringIdentification number
Job"Software"stringProfession
Phone"12345678902"stringTelephone number
Domicile"Guangdong,Zhuhai,Xiangzhou ..."stringLiving
Remark"Detail of this person ..."stringRemark
EnableChnAlarm[255, 255, 255, 255]arraySpecial permission control, which controls which channels the face is allowed to be used for alarming. It is used by bit. The bit position indicates that the corresponding channel allows alarming. If this field does not exist or is empty, it means that special permission control is not used.
VoicePromptsChn0~255intFile index, when there is no audio file, this pass 255
VoicePromptsSelarrayPlay channel, calculated by bit (bit0 is local, bit1 corresponds to front-end channel 1, bit2 corresponds to channel 2...)
VoicePromptsTmarrayTime period, there cannot be time conflicts among the 12 time periods

Sample:

POST API/AI/Plates/Add HTTP/1.1
{
    "version":"1.0",
    "data": {
        "PlateInfo": [
            {
                "Id": "粤CW2763",
                "GrpId": 6,
                "PlateColor": 0,
                "Sex": 1,
                "CarBrand": "大众",
                "CarType": "两厢车",
                "Owner": "张三",
                "IdCode": "12125180",
                "Job": "职业",
                "Phone": "15271859302",
                "Domicile": "居住地1",
                "Remark": "备注",
                "EnableChnAlarm": []
            },
            {
                "Id": "粤CK3961",
                "GrpId": 6,
                "PlateColor": 1,
                "Sex": 1,
                "CarBrand": "大众",
                "CarType": "三厢车",
                "Owner": "李四",
                "IdCode": "12125181",
                "Job": "职业",
                "Phone": "15271859303",
                "Domicile": "居住地2",
                "Remark": "备注",
                "EnableChnAlarm": []
            }
		]
    }
}

Response Message

Table 3

ParameterRangeTypeDescription
MsgIdnull
CountintNumber of groups
Result[0, 0,…]arrayResult reference table Table 4

Table 4

ParameterValueDescription
AORT_SUCCESS0Success
AORT_NO_DB-1No database
ORT_DB_EXEC_FAILED-2Database execution failed
AORT_CALC_FEATURE_FAILED-3Feature extraction failed
AORT_CANCELED-4Cancelled
AORT_NO_DISK-5No hard drive
AORT_DISK_ERROR-6Hard disk error
AORT_EXIST-7Existed
AORT_GROUP_INVALID-8Group invalid
AORT_NOT_EXIST-9Does not exist
AORT_MORE_FILE_EXIST-10Record already exists
AORT_SEARCH_ERROR-11Hard disk error
AORT_OVER_MAX_COUNT-12Limit exceeded
AORT_UPDATING_FEATURE-13Updating feature values
AORT_NO_USABLE_IPC-14No IPC available for eigenvalue calculation
AORT_INVALID_PARAM-15Invalid parameter
AORT_INVALID_FORMAT-16Wrong format
AORT_INVALID_RES-17Wrong resolution
AORT_INVALID_MEM-18File too large error
AORT_CREAT_FAILED-19Creation failed
AORT_MD5_NOT_MATCH-20MD5 mismatch
AORT_POS_ERROR-21Location error
AORT_SIZE_ERROR-22Wrong size
AORT_NOT_READY-23Not ready
AORT_INVALID_DB-24Invalid database
AORT_GRP_INVALID_OR_INTERNAL-25The group is invalid or the internal preset group is not allowed to be deleted
AORT_GRP_FACE_OVER_MAX-26The number of faces in the roster group has exceeded the limit
AORT_NO_PERMISSION-27No permission
AORT_GRP_PLATE_OVER_MAX-28The number of license plates in the license plate group has exceeded the limit

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "data": {
        "Count": 2,
        "Result": [
            0,
            0
        ]
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Change

Function

This API is used to change the group to which the license plate belongs.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
MsgIdnull
GroupintThe Id of the face group to be moved to, this field is only available for ChangeGroup
PlateInfoJSON arrayAdd License Plates JSON show as follow Table Table 2

Table 2

ParameterRangeTypeDescription
MsgIdnull
Id1-15 charactersstringNumber plate

Sample:

POST API/AI/Plates/ChangeGroup HTTP/1.1
{
    "version":"1.0",
    "data": {
        "Group": 1,
        "PlateInfo": [
            {
                "Id": "粤CW2763"
            },
            {
                "Id": "粤CK3961"
            }
		]
    }
}

Response Message

See AI > Recognition > License Plate > Add > Response Message > Table 3for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "data": {
        "Count": 2,
        "Result": [
            0,
            0
        ]
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Modify

Function

This API is used to modify the license plate.

Request Message

Table 1

See AI > Recognition > License Plate > Add > Parameter Description > Table 1 for parameter description.

Sample:

POST API/AI/Plates/Modify HTTP/1.1
{
    "version":"1.0",
    "data": {
        "PlateInfo": [
            {
                "Id": "粤CW2763",
                "GrpId": 6,
                "PlateColor": 1,
                "Sex": 1,
                "CarBrand": "大众",
                "CarType": "两厢车",
                "Owner": "张三三",
                "IdCode": "12125180",
                "Job": "职业",
                "Phone": "15271859302",
                "Domicile": "居住地1",
                "Remark": "备注",
                "EnableChnAlarm": []
            },
            {
                "Id": "粤CK3961",
                "GrpId": 6,
                "PlateColor": 2,
                "Sex": 1,
                "CarBrand": "大众",
                "CarType": "三厢车",
                "Owner": "李四四",
                "IdCode": "12125181",
                "Job": "职业",
                "Phone": "15271859303",
                "Domicile": "居住地2",
                "Remark": "备注",
                "EnableChnAlarm": []
            }
		]
    }
}

Response Message

See AI > Recognition > License Plate > Add > Response Message > Table 3 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "data": {
        "Count": 2,
        "Result": [
            0,
            0
        ]
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Remove

Function

This API is used to remove license plate.

Request Message

Table 1

See AI > Recognition > License Plate > Change > Parameter Description > Table 1 for parameter description.

Sample:

POST API/AI/Plates/Remove HTTP/1.1
{
    "version":"1.0",
    "data": {
        "PlateInfo": [
            {
                "Id": "粤CW2763"
            },
            {
                "Id": "粤CK3961"
            }
		]
    }
}

Response Message

See AI > Recognition > License Plate > Add > Response Message > Table 3 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "data": {
        "Count": 2,
        "Result": [
            0,
            0
        ]
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

License Plate Group

Function

This API is used for the operation of license plate groups

URI

POST /API/AI/PlateGroup/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, includingGetIdAddModifyRemoveGet

Add

Function

This API is used to add a AI > Recognition > PlateGroup license plate group.

Request Message

Parameter Description

Table 1 |Parameter|Range|Type|Description| | ---- | ---- | ---- | ---- | |MsgId |null ||| |Id || int |The license plate group Id is not specified when adding| |Name || string |License plate group name| |DetectType |2 |int |Detection type
enum DLDetectType
{
DLDT_Face,
DLDT_Object,
DLDT_Plate,
DLDT_All
};
The number Plate group is fixed as 2(DLDT Plate), and the modification is invalid|

Tips:

Response messages and request messages may not contain all the fields in the table above. If no fields are included, the device does not support this parameter configuration.

Sample:

POST /API/AI/PlateGroup/Add HTTP/1.1
{
	"data": {
        "Group": [	
			{
                "Name": "Test Group 1"
            },
            {
                "Name": "Test Group 2"
            }
       ]
	}
}

Response Message

See AI > Recognition > PlateGroup > Get > Parameter Description > Table 2for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "data": {
        "Result": [
            0,
            0
        ],
        "Group": [
            {
                "Id": 7,
                "Name": "Test Group 1",
                "Policy": 0,
                "DetectType": 2,
                "Similarity": 1,
                "CanDel": 1,
                "Enabled": 1,
                "EnableAlarm": 1,
				"PolicyConfigs": [...],
				"EnableChnAlarm": [...],
				"AlarmOut": {...}
            },
			{
                "Id": 8,
                "Name": "Test Group 2",
                "Policy": 0,
                "DetectType": 2,
                "Similarity": 1,
                "CanDel": 1,
                "Enabled": 1,
                "EnableAlarm": 1,
				"PolicyConfigs": [...],
				"EnableChnAlarm": [...],
				"AlarmOut": {...}
            }
		]
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used to get the AI > Recognition > PlateGroup license plate group.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
MsgIdnullmoot
DefaultValintGet default alarm parameters or actual alarm parameters, 1- default parameters, 0- actual parameters
SimpleInfointGet simple information or complete information. Simple information only includes Group name, Id, DetectType, Policy, Enabled, CanDel, Similarity, and complete information includes all parameters of the group. 1- Get abbreviated information, 0- complete information
GroupsId[1,2,3…x]arrayObtain the configuration information of the corresponding group. If the field is empty or absent, obtain the data of all groups

Sample:

POST /API/AI/PlateGroup/Get HTTP/1.1
{
	"data": {
		"MsgId": "",
		"DefaultVal": 0,
		"SimpleInfo": 1,
"GroupsId": [
            1,
            2,
            3,
			…
        ]
	}
}

Response Message

Parameter Description

Table 2

ParameterRangeTypeDescription
MsgIdnull
Result0,-1,-2,….-23, -24intRequest return results seeTable 3,This field is not required when Modify is used
channelstring arrayList of channel names. This field is not required when Modify is used
Count0-64intNumber of plates
GroupJSON arrayLicense Plate Group Information JSON show as follow Table 4

Table 3

Result typeDescription
AORT_SUCCESS = 0succeed
AORT_NO_DB = -1No database
AORT_DB_EXEC_FAILED = -2Database execution failure
AORT_CALC_FEATURE_FAILED = -3Feature extraction failure
AORT_CANCELED = -4canceled
AORT_NO_DISK = -5No hard disk
AORT_DISK_ERROR = -6Hard disk error
AORT_EXIST = -7Already exist
AORT_GROUP_INVALID = -8Group invalid
AORT_NOT_EXIST = -9inexistence
AORT_MORE_FILE_EXIST = -10File already exists
AORT_SEARCH_ERROR = -11Search error
AORT_OVER_MAX_COUNT = -12upper limit exceeded
AORT_UPDATING_FEATURE = -13Updating feature values
AORT_NO_USABLE_IPC = -14There is no IPC vailable for eigenvalue calculation
AORT_INVALID_PARAM = -15invalid parameter
AORT_INVALID_FORMAT = -16malformed
AORT_INVALID_RES = -17resolution error
AORT_INVALID_MEM = -18File too large error
AORT_CREAT_FAILED = -19create failed
AORT_MD5_NOT_MATCH = -20MD5 mismatch
AORT_POS_ERROR = -21wrong location
AORT_SIZE_ERROR = -22size error
AORT_NOT_READY = -23not ready
AORT_INVALID_DB = -24invalid database
AORT_GRP_INVALID_OR_INTERNAL-25
AORT_GRP_FACE_OVER_MAX-26
AORT_NO_PERMISSION-27
AORT_GRP_PLATE_OVER_MAX-28

Table 4 |Parameter|Range|Type|Description| | ---- | ---- | ---- | ---- | |Id || int |License plate group ID | |Name |" Allow List"
" Block List "
…... |string |License plate group name, the group name can be customized, cannot be the same name | |DetectType |2 |int |Fixed to 2 (DLDT_Plate) | |Policy| 0-2 |int |Policy attribute: 0-Allow List, 1-Block List, 2-Unknown | |Enabled| 0,1 |int |License plate alarm Enable 0: off 1: on | |CanDel |0,1| int |A predefined group cannot be deleted and is identified by the CanDel field. 0 cannot be deleted | |Similarity |0-4| unsigned int| Fault tolerance rate: indicates the maximum number of characters that are allowed to make errors. For example, 0 indicates zero tolerance. All characters must be matched | |PolicyConfigs ||JSON array |Group alarm policy configuration, fixed to 2 elements, only the 0th element is used, the first element is discarded. PolicyConfigs JSON show as followTable 5| |EnableChnAlarm| [255, 255, 255, 255]| array |Control the channels in which the corresponding group is allowed to alarm, according to the bit bit position indicates that the corresponding channel is allowed to alarm | |AlarmOut || Object|Alarm output association Information JSON show as follow Table 6|

Table 5 |Parameter|Range|Type|Description| | ---- | ---- | ---- | ---- | |ChnAlarmOut |[ [255, 255, 0, 255], [255, 255, 0, 255], [255, 255, 0, 255] ],
...
[ [255, 255, 0, 255], [255, 255, 0, 255], [255, 255,0,255] ] |array |Each element represents the alarm output associated with a channel, there are 3 main elements, the 0 th represents the local alarm output, the 1/2 represents the front-end alarm output 0/1, and each bit of the child element indicates whether the alarm output of the channel is associated | |ChnBuzzerOpt| [0, 1, 1, 2, 3, 4, 0, 1, 1, 3, 2, 2 …] |array |Each element indicates the buzzer configuration of a channel, 0-disable, 1-10s, 2-20s, 3-40s, 4-60s | |LatchTimeOpt |[0, 1, 1, 2, 3, 4, 0, 1, 1, 3, 2, 2 …]| array |Each element represents the alarm output duration of a channel, 0-0s, 1-1s, 2-2s, 3-3s, 4-5s, 5-10s, 6-20s, 7-40s, 8-60s | |SaveImg |[255, 255, 255, 255…] |array |Each element represents the configuration of whether a channel saves pictures, and the use of bits in each element indicates whether to save faces and backgrounds | |SendEmail |[0, 0, 0, 0] |array |Used in bits, each bit indicates whether a channel sends mail,0- not to send, 1- to send | |UploadToFtp |[255, 255, 255, 255]| array |Each bit indicates whether a channel uploads FTP | |UploadToCloud |[0, 0, 0, 0]| array |Used in bits, each bit indicates whether a channel is uploading to the Cloud, 0- not uploading, 1- uploading | |ShowThumbnail| [255, 255, 255, 255] |array |Used in bits, each bit represents a channel that is displayed as a thumbnail | |Record| [255, 255, 255, 255] |array |Used in bits, each bit indicates that a channel is recording | |Push |[0, 0, 0, 0]| array |Used by bit, each bit indicates whether a channel sends push, 0- no push, 1- push | |AlarmSchedule| [[255, 255, 255, 255, 255, 255],...],
[[255, 255, 255, 255, 255, 255] ...]|array |Alarm schedule, each bit represents half an hour, a total of 48 bits, set indicates video, and vice versa |

Table 6 |Parameter|Range|Type|Description| | ---- | ---- | ---- | ---- | |Local|"Local->1"
"Local->2"
"Local->3"
……
The number of local's depends on the capability of the device.| string array |Local alarm linkage.| |Ipc|| JSON array |Front-end alarm linkage. IPC JSON show as follow Table 7|

Table 7 |Parameter|Range|Type|Description| | ---- | ---- | ---- | ---- | |Channel || int| Front-end alarm output associated channel | |AlarmOutCnt || int| Indicates the number of front-end alarm outputs, front-end support 2 alarm outputs |

Tips:

Response messages and request messages may not contain all the fields in the table above. If no fields are included, the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "data": {
        "channel": [
            "CH1",
            "CH2",
            "CH3",
			...
        ],
        "Result": 0,
        "Count": 4,
        "Group": [
            {
                "Id": 1,
                "Name": "白名单",
                "Policy": 0,
                "DetectType": 2,
                "Similarity": 1,
                "CanDel": 0,
                "Enabled": 1,
                "EnableAlarm": 1
            },
            {
                "Id": 2,
                "Name": "黑名单",
                "Policy": 1,
                "DetectType": 2,
                "Similarity": 1,
                "CanDel": 0,
                "Enabled": 1,
                "EnableAlarm": 1
            },
            {
                "Id": 3,
                "Name": "未知",
                "Policy": 2,
                "DetectType": 2,
                "Similarity": 1,
                "CanDel": 0,
                "Enabled": 1,
                "EnableAlarm": 1
            },
			...
        ]
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

GetId

Function

This API is used to get the AI > Recognition > PlateGroup license plate group id.

Request Message

Parameter Description

Table 1 |Parameter|Range|Type|Description| | ---- | ---- | ---- | ---- | |MsgId|null||moot | |TypeFlags|1|int|Fixed to 1 | |DefaultVal||int|Get default alarm parameters or actual alarm parameters, 1- default parameters, 0- actual parameters | |WithInternal|0,1|int|Used to control whether to return the Id of the internal group. There is an internal group that is not open to the user. If you want to get the Id of this group, WithInternal gives 1. General give 0 | |SimpleInfo||int|Get simple information or complete information. Simple information only includes Group name, Id, DetectType, Policy, Enabled, CanDel, Similarity, and complete information includes all parameters of the group. 1- Get abbreviated information, 0- complete information |

Sample:

POST /API/AI/PlateGroup/GetId HTTP/1.1
{
    "version": "1.0",
    "data": {
        "MsgId": "",
        "DefaultVal": 0,
        "SimpleInfo": 0,
        "TypeFlags": 1,
        "WithInternal": 0
    }
}

Response Message

Parameter Description

Table 2 |Parameter|Range|Type|Description| | ---- | ---- | ---- | ---- | |MsgId|Nul||moot| |Result|0,-1,-2,….-23, -24|int|Request return results seeAI > Recognition > PlateGroup > Get > Parameter Description > Table 3,This field is not required for Modify| |GroupsId|[1,2,3…x]|array|The ID of the obtained group|

Tips:

Response messages and request messages may not contain all the fields in the table above. If no fields are included, the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	{"data": {
    "MsgId": "",
    "Result": 0,
    "GroupsId": [
        1,
        2,
        3,
        4,
        5,
        6,
       ]
}}
}

Error Code

See Response Messages Body and Common error_code for more information.

Modify

Function

This API is used to modify the AI > Recognition > PlateGroup license plate group.

Request Message

Parameter Description

Table 1 |Parameter|Range|Type|Description| | ---- | ---- | ---- | ---- | |MsgId |null|||
|Group || array |Add License Plate Group JSON show as followAI > Recognition > PlateGroup > Get > Parameter Description > Table 2|

Sample:

POST /API/AI/Faces/Modify HTTP/1.1
{
    "data": {
        "Group": [
            {
                "Id": 7,
                "Name": "测试组1",
                "Policy": 0,
                "DetectType": 2,
                "Similarity": 1,
                "CanDel": 1,
                "Enabled": 1,
                "EnableAlarm": 1,
				"PolicyConfigs": [...],
				"EnableChnAlarm": [...],
				"AlarmOut": {...}
            },
			{
                "Id": 8,
                "Name": "测试组2",
                "Policy": 0,
                "DetectType": 2,
                "Similarity": 1,
                "CanDel": 1,
                "Enabled": 1,
                "EnableAlarm": 1,
				"PolicyConfigs": [...],
				"EnableChnAlarm": [...],
				"AlarmOut": {...}
            }
		]
	}
}

Response Message

Parameter Description

Table 2

ParameterRangeTypeDescription
MsgIdnull
Resultinteger arrayReturn result or error code seeAI > Recognition > PlateGroup > Get > Parameter Description > Table 3

Tips:

Response messages and request messages may not contain all the fields in the table above. If no fields are included, the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "data": {
        "Result": [
            0,
            0
        ]
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Remove

Function

This API is used to remove the AI > Recognition > PlateGroup license plate group.

Request Message

Parameter Description

Table 1 |Parameter|Range|Type|Description| | ---- | ---- | ---- | ---- | |MsgId|null|||
|Group|0-16|array|RemoveFace Group JSON show as follow Table 2|

Table 2 |Parameter|Range|Type|Description| | ---- | ---- | ---- | ---- | |MsgId|null|||
|Id||int|Delete a face group ID. A predefined group cannot be deleted|

Sample:

POST /API/AI/PlateGroup/Remove HTTP/1.1
{
	"data": {
        "Group": [
            {
                "Id": 7
            },
            {
                "Id": 8
            }
        ]
	}
}

Response Message

See AI > Recognition > PlateGroup > Modify> Parameter Description > Table 2for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "data": {
        "Result": [
            0,
            0
        ]
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Model Configuratuon

Function

This API is used to get or set face model configuration parameters.

URI

POST /API/AI/Model/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Get, Set.

Get

Function

This API is used to get AI > Recognition > Model Configuratuon page parameters.

Request Message

None.

Sample:

POST /API/AI/Model/Get HTTP/1.1
{
    "version": "1.0",
}

Response Message

Parameter Description

Table 1

ParameterRangeTypeDescription
auto_select_enableboolWhether the model is automatically selected
rowsJSON arrayThe Model configuration JSON show as followTable 2

Table 2 |Parameter|Range|Type|Description| | ---- | ---- | ---- | ---- | |channel|“local” “CH1”…”CH1x”
The number of channels depends on the capability of the device.|string|Local model or front-end model flag| |face_recognition| |string|Face recognition model version display| |face_detection| |string|Face detection model version display| |enable_face_recognition|True false|bool|Face recognition model enable switch|

Tips:

Response messages and request messages may not contain all the fields in the table above. If no fields are included, the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
   {
    "result": "success",
    "data": {
        "rows": [
			{
                "channel": "local",
                "face_recognition": "------",
                "face_detection": "------",
                "enable_face_recognition": false
            },
            {
                "channel": "CH1",
                "face_recognition": "V0.2.0.0.1-release",
                "face_detection": "V0.2.1.2.1-release",
                "enable_face_recognition": true
            }
        ]
    }
}
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set AI > Recognition > Model Configuratuon page parameters.

Request Message

See AI > Recognition > Model Configuratuon > Get > Parameter Description > Table 1for parameter description.

Sample:

POST /API/AI/Model/Set HTTP/1.1
{
   {
    "result": "success",
    "data": {
        "rows": [
			{
                "channel": "local",
                "face_recognition": "------",
                "face_detection": "------",
                "enable_face_recognition": false
            },
            {
                "channel": "CH1",
                "face_recognition": "V0.2.0.0.1-release",
                "face_detection": "V0.2.1.2.1-release",
                "enable_face_recognition": true
            }
        ]
    }
}
}

Response Message

none.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result":"success",
    "data":{}
}

Error Code

See Response Messages Body and Common error_code for more information.

Snaped Faces and Objects Count Get (VHD)

Function

This API is used to get VHD log count.

URI

POST /API/AI/VhdLogCount/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Get

Get

Function

This API is used to get VHD log count.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
MsgIdnull
StartTime"2020-07-12 00:00:00"stringSearch start time
EndTime"2020-07-12 23:59:59"stringSearch end time
Chn0~MAX_PARA_CHN_NUMarrayThe channel to search, the value represents the channel (passing an empty array means searching all channels)
Type[0, 1, 2]arrayThe type to be searched, for example: 0-face, 1-human figure, 2-vehicle, 3-PID figure, 4-PID vehicle, 5-LCD figure, 6-LCD vehicle, 7-non-motor vehicle, 8-PID Non-motor vehicle, 9-LCD non-motor vehicle, 10-license plate
Engine0intSearch Engines (0 and 1)

Sample:

POST API/AI/VhdLogCount/Get HTTP/1.1
{
	"version":"1.0",
	"data": {
		"MsgId": null,
		"StartTime": "2018-10-20 00:00:00",
		"EndTime": "2018-10-28 23:59:59",
		"Chn": [0, 1, 2, 3, 4, 5, 6, 7, 8],
		"Type": [0, 2],
		"Engine": 0
	}
}

Response Message

Table 2

ParameterRangeTypeDescription
MsgIdnull
ResultintSearch results for captured objects (including people, cars, etc.),see resultsTable 3
Count[0, 0]int64 arrayThe actual number of corresponding types of captured objects

Table 3

Result TypeCOMMENT
AORT_SUCCESS = 0Success
AORT_NO_DB = -1No database
AORT_DB_EXEC_FAILED = -2Database execution failed
AORT_CALC_FEATURE_FAILED = -3Feature extraction failed
AORT_CANCELED = -4Cancelled
AORT_NO_DISK = -5No hard drive
AORT_DISK_ERROR = -6Hard disk error
AORT_EXIST = -7Existed
AORT_GROUP_INVALID = -8Group invalid
AORT_NOT_EXIST = -9Does not exist
AORT_MORE_FILE_EXIST = -10File already exists
AORT_SEARCH_ERROR = -11Search error
AORT_OVER_MAX_COUNT = -12Limit exceeded
AORT_UPDATING_FEATURE = -13Updating feature values
AORT_NO_USABLE_IPC = -14No IPC available for eigenvalue calculation
AORT_INVALID_PARAM = -15Invalid parameter
AORT_INVALID_FORMAT = -16Wrong format
AORT_INVALID_RES = -17Wrong resolution
AORT_INVALID_MEM = -18File too large error
AORT_CREAT_FAILED = -19Creation failed
AORT_MD5_NOT_MATCH = -20MD5 mismatch
AORT_POS_ERROR = -21Location error
AORT_SIZE_ERROR = -22Wrong size
AORT_NOT_READY = -23Not ready
AORT_INVALID_DB = -24Invalid database

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"data": {
		"MsgId": null,
		"Result": 0, 
		"Count": [300, 100] 
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Snaped Faces Search and Match

Function

This API is used for face search and matching of snapshots

URI

POST /API/AI/SnapedFaces/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including SearchStopSearchGetByIndexGetById

GetById

Function

This API is used to match AI > Recognition > SnapedFaces snapshot face information ID.

Request Message

Parameter Description

Table 5 |Parameter|Range|Type|Description| | ---- | ---- | ---- | ---- | |MsgId|null|||
|Result|0|int|See the resultAI > Recognition > SnapedFaces > Search > Parameter Description > Table x| |TotalCount||int|The total number of faces searched or matched. Only GetByIndex has this field| |Count||int|The total number of captured faces in this response| |SnapedFaceInfo||array|SnapedFaces JSON show as followTable 6|

Table 6 |Parameter|Range|Type|Description| | ---- | ---- | ---- | ---- | |UUId||string|The unique Id of the captured face information can be directly used to obtain the detailed information of the face| |MatchedFaceId||int|Matching face Id. If there is no match, there is no field. Only GetByIndex has this field| |MatchedMD5||string|Matching face MD5. If there is no match, this field is not available. Only GetByIndex has this field| |Chn||int|passage| |StrChn|“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…” WIFI_CH1x”
The number of channels depends on the capability of the device|string|passage| |Similarity||float|Similarity to the face on the match, if there is no match, there is no field, only GetByIndex has this field| |StartTime||unsigned long long|Unix timestamp, such as 1540444116| |EndTime||unsigned long long|Unix timestamp, such as 1540444116| |FaceImage|"base64(imgData)"|string|The front IPC sent over the captured face picture| |BodyImage|"base64(imgData)"|string|A snapshot of the body sent by the front-end IPC| |Background|"base64(imgData)"|string|Captured background image from the front-end IPC| |Feature|"base64(feature)"|string|eigenvalue| |FtVersion||int|Version of the eigenvalue. This parameter is meaningful only when the eigenvalue of the same version is compared. If the eigenvalue is returned, this field is also returned| |SnapId||unsigned int|Front-end IPC snap picture Id, 32-bit unsigned integer| |Type|0|int|Capture face type markers|
|Score||int|Picture score (confidence)| |Gender ||int|Gender, 0: male, 1: female| |fAttrAge||int|age| |Beauty||int|Appearance level| |GlassesType||int|Type of glasses, 0: no glasses, 1: wear glasses (currently no distinction between sunglasses, ordinary glasses, default to all glasses)| |Expression ||int|Expression type: 0: blank expression, 1: smile, 2: laugh| |MouthMask||int|Whether to wear a mask, 0: no mask, 1: wear a mask| |Race||int|Race: 0: Yellow, 1: White, 2: Black, 3: Arab|

Tips:

Response messages and request messages may not contain all the fields in the table above. If no fields are included, the device does not support this parameter configuration.

Sample:

POST /API/AI/SnapedFaces/GetById HTTP/1.1
{
	"data": {
		"MsgId": null,
		"Result": 0, 
		"TotalCount": 600,  
		"Count": 20,	
		"SnapedFaceInfo": [
			{
				"UUId": 103,			
				"MatchedFaceId": 5,		
				"MatchedMD5": "294C703DB05F3B00E279E71B41437E46",  
				"Chn": 3,
				"StrChn":"4",
				"Similarity": 89.39759,	
				"StartTime": 1540444116, 
				"EndTime": 1540444136, 
				"FaceImage": "base64(imgData)",	
				"BodyImage": "base64(imgData)",	
				"Background": "base64(imgData)",	
				"Feature": "base64(feature)",
				"FtVersion": 0	
				"SnapId": 2375,
				"Type": 0, 
				"Score": 60,
				"Gender": 0, 
				"fAttrAge": 25, 
				"Beauty": 51,
				"GlassesType": 1, 
				"Expression": 0, 
				"MouthMask": 1,
				"Race": 1
			},
			{
				"UUId": 126,			
				"MatchedFaceId": 2,		
				"MatchedMD5": "F74C70ADB0B63B00E279E71B4143704D", 
				"Chn": 3,
				"StrChn":"4",
				"Similarity": 96.87693, 
				"StartTime": 1540444116, 
				"EndTime": 1540444136, 
				"FaceImage": "base64(imgData)",	
				"BodyImage": "base64(imgData)",	
				"Background": "base64(imgData)",	
				"Feature": "base64(feature)",
				"FtVersion": 0	
				"SnapId": 2376,
				"Type": 0, 
				"Score": 60,
				"Gender": 0, 
				"fAttrAge": 25, 
				"Beauty": 51,
				"GlassesType": 1, 
				"Expression": 0, 
				"MouthMask": 1,
				"Race": 1
			},
			{
				...
			},
			...
		]
	}
}

Response Message

See AI > Recognition > SnapedFaces > Search > Parameter Description > Table 3for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"data": {
		"MsgId": null,
		"Result": 0,	
		"Count": 153	
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

GetByIndex

Function

This API is used to match AI > Recognition > SnapedFaces snapshot face information.

Request Message

Parameter Description

Table 4 |Parameter|Range|Type|Description| | ---- | ---- | ---- | ---- | |MsgId|null||| |Engine|0|int|Which search engine, 0 or 1, to use with the search interface| |MatchedFaces|1|int|Get a matched face or capture a face, 1- Get a matched face, 0- get a captured face, only GetByIndex has this field|
|StartIndex||int|The starting index of the request, for example, the first time: 0-19, the second time: 20-39, the StartIndex is 0, 20, and only GetByIndex has this field| |Count||int|The number of face information requested. Only GetByIndex has this field| |SimpleInfo|1|int|Get short information, or complete information. 1- Abbreviated information,0- complete information. Summary information contains only MatchedId, Similarity, UUId at most, and only UUId if no face is matched. Only GetByIndex has this field| |UUIds||array|The unique identification of the capture information to be obtained, only GetById has this field| |WithFaceImage|1|int|Do you need a face picture? 1- Yes, 0- No| |WithBodyImage|0|int|Do you want a body picture? 1- Yes, 0- No| |WithBackgroud|0|int|Do you need a background image? 1- Yes, 0- No| |WithFeature|1|int|Whether the eigenvalue is required, 1- Yes, 0- no|

Tips:

Response messages and request messages may not contain all the fields in the table above. If no fields are included, the device does not support this parameter configuration.

Sample:

POST /API/AI/SnapedFaces/GetByIndex HTTP/1.1
{
	"data": {
		"MsgId": null,
		"Engine": 0,		
		"MatchedFaces": 1,	
		"StartIndex": 0,
		"Count": 20,		
		"SimpleInfo": 1	,				
		"WithFaceImage": 1,	
		"WithBodyImage": 0, 
		"WithBackgroud": 0,	
		"WithFeature": 1	
	}
}

Response Message

SeeAI > Recognition > SnapedFaces > Search > Parameter Description > Table 3

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"data": {
		"MsgId": null,
		"Result": 0,	
		"Count": 153	
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Search

Function

This API is used to search AI > Recognition > SnapedFaces snapshot face information.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
MsgIdnull
StartTimestringSearch the start time, for example, 2020-07-12 00:00:00.
EndTimestringSearch end time, such as "2020-07-12 23:59:59"
Chn0~MAX_PARA_CHN_NUMarray
AlarmGrouparrayThe value represents the group Id of the selected group. If it is empty, all (including deleted groups) are displayed. If the given group is selected, the results will be filtered according to the given group Id.
Similarity0-100intIf the similarity is lower than the similarity, the face will be filtered [0, 100], which is the normal value range. If the face is not matched, the parameter can be -1
Engine0intConsidering that the search process and operation logic are superimposed (for example, after the search results of the matching page, you can open the face selection dialog box to add a new face, at this time the matched cache information will be overwritten by the results of a new search and become invalid), the device provides two search engines with equivalent functions (0 and 1), and the data and cache of the two engines are completely independent. Do not interfere with each other, how the division of labor is distributed by the client itself, for example, you can use No. 0 engine to achieve some temporary face selection tasks (for the selection dialog box to use), and use the data of No. 1 engine to display search or matching results.
CountintSearch for the number of matching images
GenderarrayGender, the value represents the selected gender, 0: male 1: female
fAttrAge[0, 1, 2, 3, 4, 5, 6]arrayAge range, the value represents the corresponding age. [[0, 17], [18, 25], [26, 30], [31 and 35], [36, 40], [41 to 50], [51, 127], [1, 0]]. [-1, 0] indicates the age of less than 1 year old
Beauty[0, 1, 2, 3, 4]arrayAppearance level, the value represents the corresponding value. [[0, 9], [10, 29], [30, 69], [70, 89], [90, 100]]
GlassesType[0, 1]arrayType of glasses, 0: no glasses, 1: wear glasses (currently no distinction between sunglasses, ordinary glasses, default to all glasses)
Expression[0, 1, 2]arrayExpression type: 0: blank expression, 1: smile, 2: laugh
MouthMask[0, 1]arrayThe value represents the search type, 0: no mask, 1: wearing a mask
Race[0, 1, 2, 3]arrayRace, the value represents the corresponding type, 0: yellow, 1: white, 2: black, 3: Arab
FaceInfoJSONarraysearch SnapedFaces JSON show as follow Table 2

Table 2

ParameterRangeTypeDescription
Idint
MD5"F74C70ADB0B63B00E279E71B4143704D"stringMD5 value
Feature"base64(feature)"stringeigenvalue
FtVersionintVersion of the eigenvalue. This parameter is meaningful only when the eigenvalue of the same version is compared. If the eigenvalue is returned, this field is also returned

Sample:

POST /API/AI/SnapedFaces/Search HTTP/1.1
{
	"msgType": "AI_searchSnapedFaces",
	"data": {
		"MsgId": null,
		"StartTime": "2018-10-20 00:00:00",
		"EndTime": "2018-10-28 23:59:59",
		"Chn": [0, 1, 2, 3, 4, 5, 6, 7, 8],  
		"AlarmGroup": [1, 2, 5, 9, 13],   
		"Similarity": 70,	
		"Engine": 0,	
		"Count": 2,
		"FaceInfo": [
			{
				"Id": 2,
				"MD5": "F74C70ADB0B63B00E279E71B4143704D",
				"Feature": "base64(feature)",
				"FtVersion": 0	
			},
			{
				"Id": 5,	
				"MD5": "294C703DB05F3B00E279E71B41437E46",
				"Feature": "base64(feature)",
				"FtVersion": 0	
			}
		]
	}
}

Response Message

Parameter Description

Table 3

ParameterRangeTypeDescription
MsgIdnull
Result0intSee the resultTable x
CountintThe total number of captured faces in this response

Table x

Result typeDescription
AORT_SUCCESS = 0succeed
AORT_NO_DB = -1No database
AORT_DB_EXEC_FAILED = -2Database execution failure
AORT_CALC_FEATURE_FAILED = -3Feature extraction failure
AORT_CANCELED = -4canceled
AORT_NO_DISK = -5No hard disk
AORT_DISK_ERROR = -6Hard disk error
AORT_EXIST = -7Already exist
AORT_GROUP_INVALID = -8Group invalid
AORT_NOT_EXIST = -9inexistence
AORT_MORE_FILE_EXIST = -10File already exists
AORT_SEARCH_ERROR = -11Search error
AORT_OVER_MAX_COUNT = -12upper limit exceeded
AORT_UPDATING_FEATURE = -13Updating feature values
AORT_NO_USABLE_IPC = -14There is no IPC vailable for eigenvalue calculation
AORT_INVALID_PARAM = -15invalid parameter
AORT_INVALID_FORMAT = -16malformed
AORT_INVALID_RES = -17resolution error
AORT_INVALID_MEM = -18File too large error
AORT_CREAT_FAILED = -19create failed
AORT_MD5_NOT_MATCH = -20MD5 mismatch
AORT_POS_ERROR = -21wrong location
AORT_SIZE_ERROR = -22size error
AORT_NOT_READY = -23not ready
AORT_INVALID_DB = -24invalid database

Tips:

Response messages and request messages may not contain all the fields in the table above. If no fields are included, the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"data": {
		"MsgId": null,
		"Result": 0,	
		"Count": 153	
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

StopSearch

Function

This API is used to stop searching for AI > Recognition > SnapedFaces snapshot face information.

Request Message

Parameter Description

Table 7 |Parameter|Range|Type|Description| | ---- | ---- | ---- | ---- | |MsgId|null|||
|Engine||array|List of engines to free cache| |Result|0|int|See the resultAI > Recognition > SnapedFaces > Search > Parameter Description > Table x|

Tips:

Response messages and request messages may not contain all the fields in the table above. If no fields are included, the device does not support this parameter configuration.

Sample:

POST /API/AI/SnapedFaces/StopSearch HTTP/1.1
{
    "data": {
        "MsgId": null,
        "Engine": 0,
        "Result": -9
    }
}

Response Message

See Table 7 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "data": {
        "MsgId": null,
        "Engine": 0,
        "Result": -9
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Snaped License Plates Search and Match

Function

This API is used to search and match license plates.

URI

POST /API/AI/SnapedObjects/{Action}

Note:

License plate retrieval is a subtype of Snaped Object. After the search is completed, subsequent operations share the API with Snaped Object. For the following APIs, please refer to Chapter 17.2.8:
POST /API/AI/SnapedObjects/GetByIndex
POST /API/AI/SnapedObjects/GetById
POST /API/AI/SnapedObjects/StopSearch

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including SearchPlate

SearchPlate

Function

This API is used to search and match license plates.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
MsgIdnull
StartTime"2020-07-12 00:00:00"stringSearch start time
EndTime"2020-07-1223:59:59"stringSearch end time
Chn0~MAX_PARA_CHN_NUMarrayThe channel to search, the value represents the channel
AlarmGroup[1, 2]integer arrayThe license plate group to which the comparison result belongs during real-time capture
PlatesIdstring arrayList of license plate numbers
MaxErrorCharCnt0-5intError tolerance rate, the maximum number of different strings allowed when searching for a matching string
SortTypeSort by
enum AIResultSortType {
ARST_Ascending = 0, // Ascending order
ARST_Descending = 1, //Descending order
ARST_None = 2,
ARST_Max
};
Engine0,1intSearch Engines (0 and 1)

Sample:

POST API/AI/SnapedObjects/SearchPlate HTTP/1.1
{
    "version":"1.0",
    "data": {
        "StartTime": "2021-08-15 00:00:00",
        "EndTime": "2021-08-17 23:59:59",
        "Chn": [2, 3],
        "AlarmGroup": [2, 3, 4],
        "PlatesId": ["3918K"],
        "MaxErrorCharCnt": 3,
        "SortType": 0,
        "Engine": 0
    }
}

Response Message

Table 2

ParameterRangeTypeDescription
MsgIdnull
Resultintlicense plate search results,SeeTable 3
Count0intThe actual number of captured objects

Table 3

Result TypeCOMMENT
AORT_SUCCESS = 0Success
AORT_NO_DB = -1No database
AORT_DB_EXEC_FAILED = -2Database execution failed
AORT_CALC_FEATURE_FAILED = -3Feature extraction failed
AORT_CANCELED = -4Cancelled
AORT_NO_DISK = -5No hard drive
AORT_DISK_ERROR = -6Hard disk error
AORT_EXIST = -7Existed
AORT_GROUP_INVALID = -8Group invalid
AORT_NOT_EXIST = -9Does not exist
AORT_MORE_FILE_EXIST = -10File already exists
AORT_SEARCH_ERROR = -11Search error
AORT_OVER_MAX_COUNT = -12Limit exceeded
AORT_UPDATING_FEATURE = -13Updating feature values
AORT_NO_USABLE_IPC = -14No IPC available for eigenvalue calculation
AORT_INVALID_PARAM = -15Invalid parameter
AORT_INVALID_FORMAT = -16Wrong format
AORT_INVALID_RES = -17Wrong resolution
AORT_INVALID_MEM = -18File too large error
AORT_CREAT_FAILED = -19Creation failed
AORT_MD5_NOT_MATCH = -20MD5 mismatch
AORT_POS_ERROR = -21Location error
AORT_SIZE_ERROR = -22Wrong size
AORT_NOT_READY = -23Not ready
AORT_INVALID_DB = -24Invalid database

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "data": {
        "Result": 0,
        "Count": 129
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Function

This API is used for snapshot object search

URI

POST /API/AI/SnapedObjects/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including SearchStopSearchGetByIndexGetById

GetById

Function

This API is used to match AI > Recognition > SnapedObjects snapshot objects.

Request Message

See AI > Recognition > SnapedObjects > GetByIndex > Parameter Description > Table 1for parameter description.

Sample:

POST /API/AI/SnapedObjects/GetById HTTP/1.1
{
	"data": {
		"MsgId": null,
		"Engine": 0,		
		"StartIndex": 0,	
		"Count": 20,		
		"SimpleInfo": 1,	
		"WithObjectImage": 0, 
		"WithBackgroud": 0 
	}
}

Response Message

See AI > Recognition > SnapedObjects > GetByIndex > Parameter Description > Table 2for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"data": {
		"MsgId": null,
		"Result": 0,	
		"TotalCount": 600,  
		"Count": 20,	
		"SnapedObjInfo": [
			{
				"UUId": 103,	
				"Chn": 3,
				"StrChn":"CH4",
				"StartTime": 1540444116, 
				"EndTime": 1540444137, 
				"ObjectImage": "base64(imgData)",	
				"Background": "base64(imgData)",	
				"SnapId": 2375,
				"Type": 1				
			},
			{
				"UUId": 105,	
				"Chn": 6,
				"StrChn":"CH7",
				"StartTime": 1540444116, 
				"EndTime": 1540444139, 
				"ObjectImage": "base64(imgData)",	
				"Background": "base64(imgData)",	
				"SnapId": 2375,
				"Type": 2		
			},
			{
				...
			},
			...
		]
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

GetByIndex

Function

This API is used to match AI > Recognition > SnapedObjects snapshot object ID.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
MsgIdnull
Engine0intWhich search engine, 0 or 1, to use with the search interface
StartIndexintThe starting index of the request, for example, the first time: 0-19, the second time: 20-39, the StartIndex is 0, 20, and only GetByIndex has this field
CountintThe requested number of passenger-vehicle information, only GetByIndex has this field
SimpleInfo1intGet short information, or complete information. 1- Abbreviated information,0- full information, abbreviated information contains only UUId, only GetByIndex has this field
UUIds[103, 105, 190, 129]arrayThe unique identification of the capture information to be obtained, only GetById has this field
WithObjectImage1intWhether a picture of an object (such as a pedestrian, a car) is required, 1- Yes, 0- No
WithBackgroud0intDo you need a background image? 1- Yes, 0- No

Tips:

Response messages and request messages may not contain all the fields in the table above. If no fields are included, the device does not support this parameter configuration.

Sample:

POST /API/AI/SnapedObjects/GetByIndex HTTP/1.1
{
	"data": {
		"MsgId": null,
		"Engine": 0,		
		"StartIndex": 0,	
		"Count": 20,		
		"SimpleInfo": 1,	
		"WithObjectImage": 0, 
		"WithBackgroud": 0 
	}
}

Response Message

Parameter Description

Table 2

ParameterRangeTypeDescription
MsgIdnull
Result0intSee the resultAI > Recognition > SnapedObjects > Search > Parameter Description > Table x
TotalCountintThe total number of objects searched, only GetByIndex has this field
CountintThe total number of objects in this response
SnapedObjInfoarraySnapedObjects JSON show as follow Table 3

Table 3 |Parameter|Range|Type|Description| | ---- | ---- | ---- | ---- | |UUId|| string| Unique Id of the captured object. You can use this ID to obtain detailed information about the object | |Chn|| int |passage | |StrChn| “CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…” WIFI_CH1x”
The number of channels depends on the capability of the device.| string| passage | |StartTime || unsigned long long |Unix timestamp, such as 1540444116 | |EndTime || unsigned long long |Unix timestamp, such as 1540444116 | |ObjectImage| "base64(imgData)" |string |The front IPC sent to capture the picture of people and cars | |Background |"base64(imgData)"| string |Captured background image from the front-end IPC | |SnapId || unsigned int| The Id of the picture taken by the front-end IPC | |Type |1 |int| The type of the captured object, such as: 0-face, 1-humanoid, 2-model, 3-PID humanoid, 4-PID model, 5-LCD humanoid, 6-LCD model |

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"data": {
		"MsgId": null,
		"Result": 0,	
		"TotalCount": 600,  
		"Count": 20,	
		"SnapedObjInfo": [
			{
				"UUId": 103,	
				"Chn": 3,
				"StrChn":"CH4",
				"StartTime": 1540444116, 
				"EndTime": 1540444137, 
				"ObjectImage": "base64(imgData)",	
				"Background": "base64(imgData)",	
				"SnapId": 2375,
				"Type": 1				
			},
			{
				"UUId": 105,	
				"Chn": 6,
				"StrChn":"CH7",
				"StartTime": 1540444116, 
				"EndTime": 1540444139, 
				"ObjectImage": "base64(imgData)",	
				"Background": "base64(imgData)",	
				"SnapId": 2375,
				"Type": 2		
			},
			{
				...
			},
			...
		]
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Search

Function

This API is used to search for AI > Recognition > SnapedObjects snapshot objects.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
MsgIdnull
StartTime"2020-07-12 00:00:00"stringSearch start time
EndTime"2020-07-1223:59:59"stringSearch end time
Chn0~MAX_PARA_CHN_NUMarrayThe channel to search for, the value represents the channel
Type[1, 2]arrayType to search for, for example: 1-Humanoid, 2-model, 3-PID humanoid, 4-PID model, 5-LCD humanoid, 6-LCD model
Engine0intSearch engines (0 and 1)

Sample:

POST /API/AI/SnapedObjects/Search HTTP/1.1
{
	"data": {
		"MsgId": null,
		"StartTime": "2018-10-20 00:00:00",
		"EndTime": "2018-10-28 23:59:59",
		"Chn": [0, 1, 2, 3, 4, 5, 6, 7, 8],  
		"Type": [1, 2],       				
		"Engine": 0,
	}
}

Response Message

Parameter Description

Table 2

ParameterRangeTypeDescription
MsgIdnull
ResultintSearch results for captured subjects (including people, cars, etc.),See the resultTable x
Count0intThe actual number of objects captured

Table x

Result typeDescription
AORT_SUCCESS = 0succeed
AORT_NO_DB = -1No database
AORT_DB_EXEC_FAILED = -2Database execution failure
AORT_CALC_FEATURE_FAILED = -3Feature extraction failure
AORT_CANCELED = -4canceled
AORT_NO_DISK = -5No hard disk
AORT_DISK_ERROR = -6Hard disk error
AORT_EXIST = -7Already exist
AORT_GROUP_INVALID = -8Group invalid
AORT_NOT_EXIST = -9inexistence
AORT_MORE_FILE_EXIST = -10File already exists
AORT_SEARCH_ERROR = -11Search error
AORT_OVER_MAX_COUNT = -12upper limit exceeded
AORT_UPDATING_FEATURE = -13Updating feature values
AORT_NO_USABLE_IPC = -14There is no IPC vailable for eigenvalue calculation
AORT_INVALID_PARAM = -15invalid parameter
AORT_INVALID_FORMAT = -16malformed
AORT_INVALID_RES = -17resolution error
AORT_INVALID_MEM = -18File too large error
AORT_CREAT_FAILED = -19create failed
AORT_MD5_NOT_MATCH = -20MD5 mismatch
AORT_POS_ERROR = -21wrong location
AORT_SIZE_ERROR = -22size error
AORT_NOT_READY = -23not ready
AORT_INVALID_DB = -24invalid database

Tips:

Response messages and request messages may not contain all the fields in the table above. If no fields are included, the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"data": {
		"MsgId": null,
		"Result": 0, 
		"Count": 600 
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

StopSearch

Function

This API is used to stop searching for AI > Recognition > SnapedObjects snapshot objects.

Request Message

Parameter Description

Table 1 |Parameter|Range|Type|Description| | ---- | ---- | ---- | ---- | |MsgId|null|||
|Engine||array|List of engines to free cache| |Result|0|int|See the resultAI > Recognition > SnapedObjects > Search > Parameter Description > Table x|

Tips:

Response messages and request messages may not contain all the fields in the table above. If no fields are included, the device does not support this parameter configuration.

Sample:

POST /API/AI/SnapedObjects/StopSearch HTTP/1.1
{
    "data": {
        "MsgId": null,
        "Engine": 0,
        "Result": -9
    }
}

Response Message

See AI > Recognition > SnapedObjects > StopSearch > Parameter Description > Table 1for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "data": {
        "MsgId": null,
        "Engine": 0,
        "Result": -9
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Repeat Customer

Function

This API is used to get AI > Repeat Customer:SnapedFeaturesId、AI > Repeat Customer:FilterSnapedFaces、AI > Repeat Customer:MatchAddedFaces parameters.

URI

POST /API/AI{Action}

Table 1 describes the parameters.

parameter-description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including SnapedFeaturesId/GetFilterSnapedFaces/GetMatchAddedFaces/Get

Get

Function

It is used to get the AI > Repeat Customer:FilterSnapedFaces parameters.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
Engine0intSearch engine, 0 or 1, should be consistent with /API/AI/SnapedFaces/Search
MinInterval5intThe time interval between face appearance, unit: second. If it is less than this value, it should not be included in the statistics, and the "bValid" field in the response result indicates whether it should be included in the statistics
Similarity70unsigned intSimilarity to use when filtering
FilterJson ObjectThe target face to be screened. JSON show as follow Table 2
FtIdSetJson ObjectThe collection to be filtered. JSON show as follow Table 3

Table 2

ParameterRangeTypeDescription
UUId200053unsigned intThe unique identifier of the captured face, corresponding to the UUId in /API/AI/SnapedFeaturesId/Get
FtId58unsigned intThe feature value Id of the captured face corresponds to FtId in /API/AI/SnapedFeaturesId/Get

Table 3

ParameterRangeTypeDescription
UUIds[200053, 200054, ...]unsigned int arrayThe elements in the array represent the unique identification of the captured face
FtIds[58, 59, ...]unsigned int arrayThe elements in the array represent the feature value Id of the captured face, which corresponds to the Id in "UUIds" one by one

Sample:

POST /API/AI/FilterSnapedFaces/Get HTTP/1.1
{
	"version": "1.0",
	"data": {
		"MsgId": "",
		"Engine": 0,
		"MinInterval": 0,
		"Similarity": 70,
		"Filter": {
			"UUId": 20402,
			"FtId": 20402
		},
		"FtIdSet": {
			"UUIds": [20402, 20403, 20408, 20404, 20405, ...],
			"FtIds": [20402, 20403, 20408, 20404, 20405, ...]
		}
	}
}

Response Message

Parameter Description

Table 4

ParameterRangeTypeDescription
MsgIdnull
Result0intReturns the result of the face ID matching the filter in the target collection, 0 means success. see Table 5 for details
Count6intThe number of faces filtered out
MatchedIds[200053, 200059, ...]unsigned int arrayThe elements in the array represent the unique identification of the captured face
Counting[1, 0, 0, 1, 1, ...]int arrayThe elements in the array indicate whether the corresponding face can be used for counting statistics. If the interval is less than the minimum interval, the value is 0 and should not be included in the statistics. Otherwise, it is 1 and should be included in the statistics.

Table 5

Result TypeCOMMENT
AORT_SUCCESS = 0success
AORT_NO_DB = -1no database
AORT_DB_EXEC_FAILED = -2Database execution failed
AORT_CALC_FEATURE_FAILED = -3feature extraction failed
AORT_CANCELED = -4Cancelled
AORT_NO_DISK = -5no hard drive
AORT_DISK_ERROR = -6hard disk error
AORT_EXIST = -7existed
AORT_GROUP_INVALID = -8group invalid
AORT_NOT_EXIST = -9does not exist
AORT_MORE_FILE_EXIST = -10File already exists
AORT_SEARCH_ERROR = -11search error
AORT_OVER_MAX_COUNT = -12limit exceeded
AORT_UPDATING_FEATURE = -13Updating feature values
AORT_NO_USABLE_IPC = -14No IPC available for eigenvalue calculation
AORT_INVALID_PARAM = -15invalid parameter
AORT_INVALID_FORMAT = -16wrong format
AORT_INVALID_RES = -17wrong resolution
AORT_INVALID_MEM = -18file too large error
AORT_CREAT_FAILED = -19Creation failed
AORT_MD5_NOT_MATCH = -20MD5 mismatch
AORT_POS_ERROR = -21location error
AORT_SIZE_ERROR = -22wrong size
AORT_NOT_READY = -23not ready
AORT_INVALID_DB = -24invalid database

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"data": {
		"MsgId": "",
		"Result": 0,
		"Count": 189,
		"MatchedIds": [20402, 20404, 20406, 20410, 20412,...],
		"Counting": [1, 1, 1, 1, 1, 1, 1, 1,...]
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

It is used to get the AI > Repeat Customer:MatchAddedFaces parameters.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
MsgIdnull
Engine0intSearch engine, 0 or 1, should be consistent with /API/AI/SnapedFaces/Search
Similarity70intSimilarity to use when matching
GrpIds[1, 2, 3, 5]int arrayWhich groups of faces in the bottom library are used to identify the identity, if not given or empty, it means that all groups (but not including Internal) are used, generally not given
UUIds[200053, 200059, 210010, ...]unsigned int arrayThe elements in the array represent the unique identification of the captured face

Sample:

POST /API/AI/MatchAddedFaces/Get HTTP/1.1
{
	"version": "1.0",
	"data": {
		"MsgId": "",
		"Similarity": 70,
		"GrpIds": [],
		"Engine": 1,
		"UUIds": [21411, 21409, 21408, 21407, 21405, ...]
	}
}

Response Message

Parameter Description

Table 2

ParameterRangeTypeDescription
MsgIdnull
Result0intGet the result of returning customer status, 0 means success. see table Table 3 details
FaceIds[3, -1, -1, 2, ...]long long arrayThe matched faces in the bottom library, the elements in this array correspond to the "UUIds" array in the request one by one, -1 means that there is no face matching it in the bottom library

Table 3

Result TypeCOMMENT
AORT_SUCCESS = 0success
AORT_NO_DB = -1no database
AORT_DB_EXEC_FAILED = -2Database execution failed
AORT_CALC_FEATURE_FAILED = -3feature extraction failed
AORT_CANCELED = -4Cancelled
AORT_NO_DISK = -5no hard drive
AORT_DISK_ERROR = -6hard disk error
AORT_EXIST = -7existed
AORT_GROUP_INVALID = -8group invalid
AORT_NOT_EXIST = -9does not exist
AORT_MORE_FILE_EXIST = -10File already exists
AORT_SEARCH_ERROR = -11search error
AORT_OVER_MAX_COUNT = -12limit exceeded
AORT_UPDATING_FEATURE = -13Updating feature values
AORT_NO_USABLE_IPC = -14No IPC available for eigenvalue calculation
AORT_INVALID_PARAM = -15invalid parameter
AORT_INVALID_FORMAT = -16wrong format
AORT_INVALID_RES = -17wrong resolution
AORT_INVALID_MEM = -18file too large error
AORT_CREAT_FAILED = -19Creation failed
AORT_MD5_NOT_MATCH = -20MD5 mismatch
AORT_POS_ERROR = -21location error
AORT_SIZE_ERROR = -22wrong size
AORT_NOT_READY = -23not ready
AORT_INVALID_DB = -24invalid database

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"data": {
		"MsgId": "",
		"Result": 0,
		"FaceIds": [25, 25, 25, -1, 25, ...]
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

It is used to get the AI > Repeat Customer:SnapedFeaturesId parameters.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
MsgIdnull
Engine0intSearch engine, 0 or 1, should be consistent with /API/AI/SnapedFaces/Search
StartIndex0intThe starting index of the request, for example, the first time: 0-9999, the second time: 10000-19999, then the StartIndex is 0, 10000 respectively
Count1000intThe number of requested items, if the number of data items is not much, you can request at one time

Sample:

POST /API/AI/SnapedFeaturesId/Get HTTP/1.1
{
	"version": "1.0",
	"data": {
		"MsgId": "",
		"StartIndex": 0,
		"Engine": 1,
		"Count": 1011
	}
}

Response Message

Parameter Description

Table 2

ParameterRangeTypeDescription
MsgIdnull
Result0intGet the results of all eligible Ids and feature Ids, 0 means success. see Table 3 for details
UUIds[200053, 200054, ...]unsigned int arrayThe elements in the array represent the unique identification of the captured face
FtIds[58, 59, ...]unsigned int arrayThe elements in the array represent the feature value Id of the captured face, which corresponds to the Id in "UUIds" one by one

Table 3

Result TypeCOMMENT
AORT_SUCCESS = 0success
AORT_NO_DB = -1no database
AORT_DB_EXEC_FAILED = -2Database execution failed
AORT_CALC_FEATURE_FAILED = -3feature extraction failed
AORT_CANCELED = -4Cancelled
AORT_NO_DISK = -5no hard drive
AORT_DISK_ERROR = -6hard disk error
AORT_EXIST = -7existed
AORT_GROUP_INVALID = -8group invalid
AORT_NOT_EXIST = -9does not exist
AORT_MORE_FILE_EXIST = -10File already exists
AORT_SEARCH_ERROR = -11search error
AORT_OVER_MAX_COUNT = -12limit exceeded
AORT_UPDATING_FEATURE = -13Updating feature values
AORT_NO_USABLE_IPC = -14No IPC available for eigenvalue calculation
AORT_INVALID_PARAM = -15invalid parameter
AORT_INVALID_FORMAT = -16wrong format
AORT_INVALID_RES = -17wrong resolution
AORT_INVALID_MEM = -18file too large error
AORT_CREAT_FAILED = -19Creation failed
AORT_MD5_NOT_MATCH = -20MD5 mismatch
AORT_POS_ERROR = -21location error
AORT_SIZE_ERROR = -22wrong size
AORT_NOT_READY = -23not ready
AORT_INVALID_DB = -24invalid database

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"data": {
		"MsgId": null,
		"Result": 0,
		"UUIds": [200053, 200054, ...],
		"FtIds": [58, 59, ...]
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

AI Func Schedule

Function

This API is used for get or set AI > Setup > AI Func Schedule page parameters.

URI

POST /API/AI/Setup/AISchedule/{Action}

Table 1 describes the parameters.

Parameter-Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range, Get, Set.

Get

Function

This API is used to get parameter for AI > Setup > AI Func Schedule page.

Request Message

None.

Sample:

POST /API/AI/Setup/AISchedule/Get HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

table 1

ParameterRangeTypeDescription
channel_infoJSONChannel Information JSON show as follow Table 2

Table 2

ParameterRangeTypeDescription
CH1Json ObjectJSON show as follow Table 3
Json Object
IP_CH1Json Object
Json Object
WIFI_CH1Json Object
Json Object

Table 3

ParameterRangeTypeDescription
categoryJSON arrayCategoryJSON show as follow Table 4
AI_ScheduleboolAI function schedule switch

Table 4

ParameterRangeTypeDescription
schedule_type"fd",
"pvd",
"pid",
"lcd",
"sod",
"cc",
"cd",
"qd",
"lpd",
"hm",
“rsd”
“intrusion”
“region_entrance”
“region_exiting”
stringConfigurable Schedule Types
Note: Depending on device capabilities, the actual schedule types may be less than the allowable configurable types
mutex_type"fd",
"pvd",
"pid",
"lcd",
"sod",
"cc",
"cd",
"qd",
"lpd",
"hm",
“rsd”
“intrusion”
“region_entrance”
“region_exiting”
stringThe smart type that is mutually exclusive with schedule_type
Note: According to the device capability, the actual mutual exclusion type is different
weekJSON arrayWeekJSON show as follow Table 5

Table 5

ParameterRangeTypeDescription
daySun,Mon,Tue,Wed,
Thu,Fri,Sat
stringidentify the day of the week
time0: close the time zone
1: open the time zone
arrayEach array bit (int) identifies a half-hour.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {"channel_info": {"CH1": {
        "AI_Schedule": false,
        "category": [
            {
                "schedule_type": "fd",
                "mutex_type": [
                    "pid",
                    "lcd",
                    "sod",
                    "pvd",
                    "cc",
                    "cd",
                    "qd",
                    "lpd"
                ],
                "week": [
                    {
                        "day": "Sun",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Mon",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Tue",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Wed",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Thu",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Fri",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Sat",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    }
                ]
            },
            {
                "schedule_type": "pvd",
                "mutex_type": [
                    "pid",
                    "lcd",
                    "sod",
                    "fd",
                    "cc",
                    "cd",
                    "qd",
                    "lpd"
                ],
                "week": [
                    {
                        "day": "Sun",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Mon",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Tue",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Wed",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Thu",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Fri",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Sat",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    }
                ]
            },
            {
                "schedule_type": "pid",
                "mutex_type": [
                    "sod",
                    "pvd",
                    "fd",
                    "cc",
                    "cd",
                    "qd",
                    "lpd"
                ],
                "week": [
                    {
                        "day": "Sun",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Mon",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Tue",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Wed",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Thu",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Fri",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Sat",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    }
                ]
            },
            {
                "schedule_type": "lcd",
                "mutex_type": [
                    "sod",
                    "pvd",
                    "fd",
                    "cc",
                    "cd",
                    "qd",
                    "lpd"
                ],
                "week": [
                    {
                        "day": "Sun",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Mon",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Tue",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Wed",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Thu",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Fri",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Sat",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    }
                ]
            },
            {
                "schedule_type": "sod",
                "mutex_type": [
                    "pid",
                    "lcd",
                    "pvd",
                    "fd",
                    "cc",
                    "cd",
                    "qd",
                    "lpd"
                ],
                "week": [
                    {
                        "day": "Sun",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Mon",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Tue",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Wed",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Thu",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Fri",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Sat",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    }
                ]
            },
            {
                "schedule_type": "cc",
                "mutex_type": [
                    "pid",
                    "lcd",
                    "sod",
                    "pvd",
                    "fd",
                    "cd",
                    "qd",
                    "lpd"
                ],
                "week": [
                    {
                        "day": "Sun",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Mon",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Tue",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Wed",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Thu",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Fri",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Sat",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    }
                ]
            },
            {
                "schedule_type": "cd",
                "mutex_type": [
                    "pid",
                    "lcd",
                    "sod",
                    "pvd",
                    "fd",
                    "cc",
                    "qd",
                    "lpd"
                ],
                "week": [
                    {
                        "day": "Sun",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Mon",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Tue",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Wed",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Thu",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Fri",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Sat",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    }
                ]
            },
            {
                "schedule_type": "qd",
                "mutex_type": [
                    "pid",
                    "lcd",
                    "sod",
                    "pvd",
                    "fd",
                    "cc",
                    "cd",
                    "lpd"
                ],
                "week": [
                    {
                        "day": "Sun",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Mon",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Tue",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Wed",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Thu",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Fri",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Sat",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    }
                ]
            },
            {
                "schedule_type": "lpd",
                "mutex_type": [
                    "pid",
                    "lcd",
                    "sod",
                    "pvd",
                    "fd",
                    "cc",
                    "cd",
                    "qd"
                ],
                "week": [
                    {
                        "day": "Sun",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Mon",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Tue",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Wed",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Thu",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Fri",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Sat",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    }
                ]
            },
            {
                "schedule_type": "hm",
                "mutex_type": [],
                "week": [
                    {
                        "day": "Sun",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Mon",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Tue",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Wed",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Thu",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Fri",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Sat",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    }
                ]
            },
            {
                "schedule_type": "rsd",
                "mutex_type": [],
                "week": [
                    {
                        "day": "Sun",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Mon",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Tue",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Wed",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Thu",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Fri",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Sat",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    }
                ]
            }
        ]
    }}}
}

Error Code

See Response Messages Body and Common error_code for more information.

Range

Function

This API is used to get parameter range for AI > Setup > AI Func Schedule page.

Note:

The Range provides reference information for client UI input limits and API request limits. When sending Get and Set requests, the parameters must be strictly limited according to the Range, otherwise the request may be rejected by the device.

Request Message

None.

Sample:

POST /API/AI/Setup/AISchedule/Range HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 1

ParameterRangeTypeDescription
channel_infoJSONChannel Information JSON show as follow Table 2

Table 2

ParameterRangeTypeDescription
CH1Json ObjectJSON show as follow Table 3
Json Object
IP_CH1Json Object
Json Object
WIFI_CH1Json Object
Json Object

Table 3

ParameterRangeTypeDescription
categoryJSON arrayCategoryJSON show as follow Table 4
AI_ScheduleboolAI function schedule switch

Table 4

ParameterRangeTypeDescription
schedule_type"fd",
"pvd",
"pid",
"lcd",
"sod",
"cc",
"cd",
"qd",
"lpd",
"hm",
“rsd”
“intrusion”
“region_entrance”
“region_exiting”
stringConfigurable Schedule Types
Note: Depending on device capabilities, the actual schedule types may be less than the allowable configurable types
mutex_type"fd",
"pvd",
"pid",
"lcd",
"sod",
"cc",
"cd",
"qd",
"lpd",
"hm",
“rsd”
“intrusion”
“region_entrance”
“region_exiting”
stringThe smart type that is mutually exclusive with schedule_type
Note: According to the device capability, the actual mutual exclusion type is different
weekJSON arrayWeekJSON show as follow Table 5
mutex_type_between_channelJSON array(Thermal imaging use)Intelligent type of the mutual exclusion between the schedule_type of other channels and the current channel
Note: The actual mutual exclusion type varies according to the device capabilityTable 6

Table 5

ParameterRangeTypeDescription
daySun,Mon,Tue,Wed,
Thu,Fri,Sat
stringidentify the day of the week
time0: close the time zone
1: open the time zone
arrayEach array bit (int) identifies a half-hour.

Table 6

ParameterRangeTypeDescription
channel“CH1”
“CH2”
...
stringExclusive channel
mutex_type"fd"
"pvd"
"pid"
"lcd"
"sod"
"cc"
"cd"
"qd"
"lpd"
"hm"
“rsd”
“intrusion”
“region_entrance”
“region_exiting”
Json arrayIntelligent type that is mutually exclusive with schedule_type
Note: The actual type varies according to the device capability

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {"channel_info": {
        "type": "object",
        "items": {"CH1": {
            "type": "object",
            "items": {
                "category": {
                    "type": "array",
                    "min_size": 0,
                    "max_size": 5,
                    "items": [{
                        "schedule_type": {
                            "type": "string",
                            "items": [
                                "fd",
                                "pvd",
                                "pid",
                                "lcd",
                                "sod",
                                "cc",
                                "cd",
                                "qd",
                                "lpd",
                                "hm",
                                "rsd"
                            ]
                        },
                        "week": {
                            "type": "array",
                            "size": 7,
                            "items": [{
                                "day": {
                                    "type": "string",
                                    "items": [
                                        "Sun",
                                        "Mon",
                                        "Tue",
                                        "Wed",
                                        "Thu",
                                        "Fri",
                                        "Sat"
                                    ]
                                },
                                "time": {
                                    "type": "array",
                                    "size": 48,
                                    "items": [{
                                        "type": "int32",
                                        "items": [
                                            0,
                                            1
                                        ]
                                    }]
                                }
                            }]
                        }
                    }]
                },
                "AI_Schedule": {"type": "bool"}
            }
        }}
    }}
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set parameter for AI > Setup > AI Func Schedule page.

Request Message

Parameter Description

table 1

ParameterRangeTypeDescription
channel_infoJSONChannel Information JSON show as follow Table 2

Table 2

ParameterRangeTypeDescription
CH1Json ObjectJSON show as follow Table 3
Json Object
IP_CH1Json Object
Json Object
WIFI_CH1Json Object
Json Object

Table 3

ParameterRangeTypeDescription
categoryJSON arrayCategoryJSON show as follow Table 4
AI_ScheduleboolAI function schedule switch

Table 4

ParameterRangeTypeDescription
schedule_type"fd",
"pvd",
"pid",
"lcd",
"sod",
"cc",
"cd",
"qd",
"lpd",
"hm",
“rsd”
“intrusion”
“region_entrance”
“region_exiting”
stringConfigurable Schedule Types
Note: Depending on device capabilities, the actual schedule types may be less than the allowable configurable types
mutex_type"fd",
"pvd",
"pid",
"lcd",
"sod",
"cc",
"cd",
"qd",
"lpd",
"hm",
“rsd”
“intrusion”
“region_entrance”
“region_exiting”
stringThe smart type that is mutually exclusive with schedule_type
Note: According to the device capability, the actual mutual exclusion type is different
weekJSON arrayWeekJSON show as follow Table 5

Table 5

ParameterRangeTypeDescription
daySun,Mon,Tue,Wed,
Thu,Fri,Sat
stringidentify the day of the week
time0: close the time zone
1: open the time zone
arrayEach array bit (int) identifies a half-hour.

Sample:

POST /API/AI/Setup/AISchedule/Set HTTP/1.1
{
    "version": "1.0",
    "data": {"channel_info": {"CH1": {
        "AI_Schedule": false,
        "category": [
            {
                "schedule_type": "fd",
                "mutex_type": [
                    "pid",
                    "lcd",
                    "sod",
                    "pvd",
                    "cc",
                    "cd",
                    "qd",
                    "lpd"
                ],
                "week": [
                    {
                        "day": "Sun",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Mon",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Tue",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Wed",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Thu",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Fri",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Sat",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    }
                ]
            },
            {
                "schedule_type": "pvd",
                "mutex_type": [
                    "pid",
                    "lcd",
                    "sod",
                    "fd",
                    "cc",
                    "cd",
                    "qd",
                    "lpd"
                ],
                "week": [
                    {
                        "day": "Sun",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Mon",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Tue",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Wed",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Thu",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Fri",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Sat",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    }
                ]
            },
            {
                "schedule_type": "pid",
                "mutex_type": [
                    "sod",
                    "pvd",
                    "fd",
                    "cc",
                    "cd",
                    "qd",
                    "lpd"
                ],
                "week": [
                    {
                        "day": "Sun",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Mon",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Tue",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Wed",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Thu",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Fri",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Sat",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    }
                ]
            },
            {
                "schedule_type": "lcd",
                "mutex_type": [
                    "sod",
                    "pvd",
                    "fd",
                    "cc",
                    "cd",
                    "qd",
                    "lpd"
                ],
                "week": [
                    {
                        "day": "Sun",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Mon",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Tue",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Wed",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Thu",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Fri",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Sat",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    }
                ]
            },
            {
                "schedule_type": "sod",
                "mutex_type": [
                    "pid",
                    "lcd",
                    "pvd",
                    "fd",
                    "cc",
                    "cd",
                    "qd",
                    "lpd"
                ],
                "week": [
                    {
                        "day": "Sun",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Mon",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Tue",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Wed",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Thu",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Fri",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Sat",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    }
                ]
            },
            {
                "schedule_type": "cc",
                "mutex_type": [
                    "pid",
                    "lcd",
                    "sod",
                    "pvd",
                    "fd",
                    "cd",
                    "qd",
                    "lpd"
                ],
                "week": [
                    {
                        "day": "Sun",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Mon",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Tue",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Wed",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Thu",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Fri",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Sat",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    }
                ]
            },
            {
                "schedule_type": "cd",
                "mutex_type": [
                    "pid",
                    "lcd",
                    "sod",
                    "pvd",
                    "fd",
                    "cc",
                    "qd",
                    "lpd"
                ],
                "week": [
                    {
                        "day": "Sun",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Mon",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Tue",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Wed",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Thu",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Fri",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Sat",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    }
                ]
            },
            {
                "schedule_type": "qd",
                "mutex_type": [
                    "pid",
                    "lcd",
                    "sod",
                    "pvd",
                    "fd",
                    "cc",
                    "cd",
                    "lpd"
                ],
                "week": [
                    {
                        "day": "Sun",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Mon",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Tue",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Wed",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Thu",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Fri",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Sat",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    }
                ]
            },
            {
                "schedule_type": "lpd",
                "mutex_type": [
                    "pid",
                    "lcd",
                    "sod",
                    "pvd",
                    "fd",
                    "cc",
                    "cd",
                    "qd"
                ],
                "week": [
                    {
                        "day": "Sun",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Mon",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Tue",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Wed",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Thu",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Fri",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Sat",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    }
                ]
            },
            {
                "schedule_type": "hm",
                "mutex_type": [],
                "week": [
                    {
                        "day": "Sun",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Mon",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Tue",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Wed",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Thu",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Fri",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Sat",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    }
                ]
            },
            {
                "schedule_type": "rsd",
                "mutex_type": [],
                "week": [
                    {
                        "day": "Sun",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Mon",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Tue",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Wed",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Thu",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Fri",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    },
                    {
                        "day": "Sat",
                        "time": [
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ]
                    }
                ]
            }
        ]
    }}}
}

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Cross Counting

Function

This API is used to get or set Cross Counting configuration parameters.

URI

POST /API/AI/Setup/CrossCount/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range, Get, Set.

Get

Function

This API is used to get parameter for AI > Setup > Cross Counting page.

Request Message

Table 1

ParameterRangeTypeDescription
channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…” WIFI_CH1x”
The number of channels depends on the capabilities of the device.
string arrayEach array bit represents a channel with a string.
DVR/NVR need;
IPC only use CH1
page_type“ChannelConfig”,
“AlarmConfig”
stringThe data used to distinguish whether it is a channel configuration page or an alarm configuration page

Sample:

POST API/AI/Setup/CrossCount/Get HTTP/1.1
{
    "version": "1.0",
    "data": {"page_type": "ChannelConfig"}
}

Response Message

Parameter Description

Table 2

ParameterRangeTypeDescription
channel_infoJSON objectSingle Channel Information JSON show as follow Table Table 3
page_type“ChannelConfig”,
“AarmConfig”
stringIt is used to distinguish whether it is the data of the channel configuration page or the alarm configuration page, it is only required when setting
channel_maxintMaximum number of channels

Table 3

ParameterRangeTypeDescription
CH1Json ObjectJSON show as follow Table Table 4
Json Object
IP_CH1Json Object
Json Object
WIFI_CH1Json Object
Json Object

Table 4

Parameter Range Type Description
status "Offline","Online",“Nonsupport” string Channel online status, only for digital channels.
Note: When the channel is online, there is no such field
alarm_out “Local->1”…
”Local->x”
“IP_CH1->1”…
“IP_CH1->2”…
” IP_CHx->1”
” IP_CHx->2”
The number of channels depends on the capabilities of the device.
array Alarm output channel
Each array bit represents alarm output channel with a string.
Camera:
Local->1:open,empty value: close
latch_time "10","20","40","60" string Alarm output time Ipc value 5 10 20 30
record_enable true, false bool Record channel switch
record_channel “CH1”…”CH1x”
“IP_CH1”…
“IP_CH1x”
“WIFI_CH1”…”
array Alarm output channel
Channel alarm linkage switch.
post_recording "30","60","120","300" string Video delay time, Ipc value 0 5 10 20 30
send_email true, false bool Send Email switch
ftp_picture_upload true, false bool Channel capture FTP upload switch (NVR dedicated)
ftp_video_upload true, false bool Channel video FTP upload switch (NVR dedicated)
picture_to_cloud true, false bool Picture upload switch (NVR dedicated)
video_to_cloud true, false bool Video cloud upload switch (NVR dedicated)
full_screen bool FullScreen switch (NVR dedicated)
buzzer "0","10","20","40","60" string Buzzer sounding time (NVR dedicated)
show_message bool Show Message switch (NVR dedicated)
switch true, false bool Switch, false: close true: open
type "Motion"
"Person"
"Vehicle"
string Rule type:0-motion 1- Person 2 veichle (Normal detection type)
"Motion"
“Pedestrian”
"Motor Vehicle"
"Non-motorized Vehicle"
string Detection type, human figure, motor vehicle, non-motor vehicle (machine is not human type)
detection_type “Pedestrian”
"Motor Vehicle"
"Non-motorized Vehicle"
array Detection type, human figure, motor vehicle, non-motor vehicle (machine is not human type)
alarm_num 1 - 255 int The number of alarms, if the number exceeds the number, an alarm will be issued
start_time string Effective start time
end_time string Effective end time
reset_count true, false bool true:clear the analysis data of passing line statistics
sensitivity 1-4 int Detection sensitivity
rule_info Object Information JSON show as follow TableTable 5
ptz_operation_support bool Ball machine use supports ptz operation
schedule_enable bool Schedule mode
iva_lines 0unlined1cross int Preview and play back whether lines will appear
light_linkage bool White light linkage alarm
enforcerlight_linkage bool Red and blue indicator linkage alarm
siren_linkage bool Alarm sound linkage alarm
http_listening bool http event push
default_timeout bool Session timeout(range use)
schedule Object The following table is displayed, as shown in the following Table 10
scene Indoor、Outdoor string scene

Table 5

ParameterRangeTypeDescription
rule_number1ObjectRule number 1,information JSON show as follow Table Table 6

Table 6

ParameterRangeTypeDescription
rule_switchboolRule switch
rule_type"A->B",
"B->A"
stringRule direction
rule_lineObjectRectangle,information JSON show as follow Table Table 7
rule_rectObjectRectangle,information JSON show as follow Table Table 8

Table 7

ParameterRangeTypeDescription
x10-704shortx1 coordinate points
y10-576shorty1 coordinate points
x20-704shortx2 coordinate points
y20-576shorty2 coordinate points

Table 8

ParameterRangeTypeDescription
x10-704shortx1 coordinate points(x-coordinate of the left vertex)
y10-576shorty1 coordinate points(y-coordinate of the left vertex)
x20-704shortx2 coordinate points(x-coordinate of the right vertex)
y20-576shorty2 coordinate points(y-coordinate of the right vertex)
X30-704shortX3 coordinate points(x-axis coordinate of the left bottom point)
Y30-576shortY3 coordinate points(x-axis coordinate of the left bottom point)
X40-704shortX4 coordinate points(x-axis coordinate of the right bottom point)
Y40-576shortY4 coordinate points(x-axis coordinate of the right bottom point)

Table 9

ParameterRangeTypeDescription
cloud_video_is_used0~MAX_PARA_CHN_NUMarrayThe channel number for which the cloud video upload function has been enabled
max_cloud_video_upload_numMAX_CLOUD_VIDEO_RECORD_NUMintThe maximum number of channels supported by cloud video upload

Table 10

ParameterRangeTypeDescription
schedule_type"SendEmail"
"FtpPicUpload"
"CloudPicUpload"
"Record"
"AlarmOut"
"FtpVdUpload"
"CloudVdUpload"
"FloodLight"
"Siren"
"EnforcerLight"
stringSchedule type
weekObejctWeekly information is shown in the table Table 11

Table 11

ParameterRangeTypeDescription
day"Sun"
"Mon"
"Tue"
"Wed"
"Thu"
"Fri"
"Sat"
stringday
timeinttime

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {"channel_info": {"CH1": {
        "status": "Online",
        "switch": false,
        "sensitivity": 2,
        "alarm_num": 1,
        "type": "Pedestrian",
        "reset_count": false,
        "start_time": "00:00:00",
        "end_time": "23:59:59",
        "rule_info": {"rule_number1": {
            "rule_type": "A->B",
            "rule_switch": false,
            "rule_line": {
                "x1": 0,
                "y1": 0,
                "x2": 0,
                "y2": 0
            },
            "rule_rect": {
                "x1": 0,
                "y1": 0,
                "x2": 0,
                "y2": 0,
                "x3": 0,
                "y3": 0,
                "x4": 0,
                "y4": 0
            }
        }}
    }}}
}

Error Code

See Response Messages Body and Common error_code for more information.

Range

Function

This API is used to get parameter range for AI > Setup > Cross Counting page.

Request Message

See AI > Setup > Cross Counting > Get > Table 1 for parameter description.

Sample:

POST /API/AI/Setup/CrossCount/Range HTTP/1.1
{
    "version": "1.0",
    "data": {"page_type": "ChannelConfig"}
}

Response Message

See AI > Setup > Cross Counting > Get > Parameter Description > Table 2 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_max": 1,
        "channel_info": {
            "type": "object",
            "items": {"CH1": {
                "type": "object",
                "items": {
                    "status": {
                        "description": "Only offline channel has this variable.",
                        "type": "string",
                        "mode": "r",
                        "items": [
                            "Offline",
                            "Online",
                            "Nonsupport"
                        ]
                    },
                    "switch": {"type": "bool"},
                    "sensitivity": {
                        "type": "int32",
                        "items": [
                            1,
                            2,
                            3,
                            4
                        ]
                    },
                    "alarm_num": {
                        "type": "int32",
                        "min": 1,
                        "max": 255
                    },
                    "rule_switch": {"type": "bool"},
                    "rule_type": {
                        "type": "string",
                        "items": [
                            "A->B",
                            "B->A"
                        ]
                    },
                    "type": {
                        "type": "string",
                        "items": [
                            "Motion",
                            "Pedestrian",
                            "Motor Vehicle",
                            "Non-motorized Vehicle"
                        ]
                    },
                    "start_time": {
                        "type": "string",
                        "len": 8
                    },
                    "end_time": {
                        "type": "string",
                        "len": 8
                    },
                    "reset_count": {"type": "bool"},
                    "rule_info": {
                        "type": "object",
                        "items": {"rule_number1": {
                            "type": "object",
                            "items": {
                                "rule_switch": {"type": "bool"},
                                "rule_type": {
                                    "type": "string",
                                    "items": [
                                        "A->B",
                                        "B->A"
                                    ]
                                },
                                "rule_line": {
                                    "type": "object",
                                    "items": {
                                        "x1": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "x2": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "y1": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        },
                                        "y2": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        }
                                    }
                                },
                                "rule_rect": {
                                    "type": "object",
                                    "items": {
                                        "x1": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "y1": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        },
                                        "x2": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "y2": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        },
                                        "x3": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "y3": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        },
                                        "x4": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "y4": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        }
                                    }
                                }
                            }
                        }}
                    }
                }
            }}
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set parameter for AI > Setup > Cross Counting page.

Request Message

See AI > Setup > Cross Counting > Get > Parameter Description > Table 2 for parameter description.

Sample:

POST API/AI/Setup/CrossCount/Set HTTP/1.1
{
    "version": "1.0",
    "data": {
        "channel_info": {"CH1": {
            "status": "Online",
            "switch": false,
            "sensitivity": 2,
            "alarm_num": 1,
            "type": "Pedestrian",
            "reset_count": false,
            "start_time": "00:00:00",
            "end_time": "23:59:59",
            "rule_info": {"rule_number1": {
                "rule_type": "A->B",
                "rule_switch": false,
                "rule_line": {
                    "x1": 0,
                    "y1": 0,
                    "x2": 0,
                    "y2": 0
                },
                "rule_rect": {
                    "x1": 0,
                    "y1": 0,
                    "x2": 0,
                    "y2": 0,
                    "x3": 0,
                    "y3": 0,
                    "x4": 0,
                    "y4": 0
                },
                "rule_number": "rule_number1"
            }},
            "chn_index": "CH1",
            "page": "chn_cc",
            "isAiPage": true,
            "rule": {
                "rule_type": "A->B",
                "rule_switch": false,
                "rule_line": {
                    "x1": 0,
                    "y1": 0,
                    "x2": 0,
                    "y2": 0
                },
                "rule_rect": {
                    "x1": 0,
                    "y1": 0,
                    "x2": 0,
                    "y2": 0,
                    "x3": 0,
                    "y3": 0,
                    "x4": 0,
                    "y4": 0
                },
                "rule_number": "rule_number1"
            }
        }},
        "page_type": "ChannelConfig"
    }
}

Response Message

Error_Code Response

Error Information JSON(show as follow Table Table 9)(cloud_video_upload_chn_limit the return information attached to the error code)

Table 9

ParameterRangeTypeDescription
cloud_video_is_used0~MAX_PARA_CHN_NUMarrayThe channel number for which the cloud video upload function has been enabled
max_cloud_video_upload_numMAX_CLOUD_VIDEO_RECORD_NUMintThe maximum number of channels supported by cloud video upload

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Crowd Density Detection

Function

This API is used for get or set Crowd Density Detection page parameters.

URI

POST /API/AI/Setup/CD/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range, Get, Set.

Get

Function

This API is used to get parameter for AI > Setup > Crowd Density Detection page.

Request Message

See AI > Setup > Crowd Density Detection > Range > Parameter Description > Table 1for parameter description.

Sample:

POST /API/AI/Setup/CD/Get HTTP/1.1
{
    "version": "1.0",
    "data": {"page_type": "ChannelConfig"}
}

Response Message

See AI > Setup > Crowd Density Detection > Range > Parameter Description > Table 2for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {"channel_info": {"CH1": {
        "status": "Online",
        "switch": true,
        "sensitivity": 2,
        "max_pixel": 640,
        "min_pixel": 32,
        "max_detection_num": 50,
        "detection_range": "Customize",
        "rule_info": {"rule_number1": {
            "rule_switch": true,
            "rule_rect": {
                "x1": 30,
                "y1": 175,
                "x2": 240,
                "y2": 30,
                "x3": 465,
                "y3": 30,
                "x4": 675,
                "y4": 175,
                "x5": 675,
                "y5": 400,
                "x6": 465,
                "y6": 545,
                "x7": 240,
                "y7": 545,
                "x8": 30,
                "y8": 400
            }
        }}
    }}}
}

Error Code

See Response Messages Body and Common error_code for more information.

Range

Function

This API is used to get parameter range for AI > Setup > Crowd Density Detection page.

Note:

The Range provides reference information for client UI input limits and API request limits. When sending Get and Set requests, the parameters must be strictly limited according to the Range, otherwise the request may be rejected by the device.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…” WIFI_CH1x”
The number of channels depends on the capability of the device.
string arrayEach array bit represents a channel with a string.
DVR/NVR need.
IPC only uses CH1
page_type“ChannelConfig”,
“AlarmConfig”
stringData used to distinguish between the channel configuration page and the alarm configuration page

Sample:

POST /API/AI/Setup/CD/Range HTTP/1.1
{
    "version": "1.0",
    "data": {"page_type": "ChannelConfig"}
}

Response Message

Parameter Description

Table 2

ParameterRangeTypeDescription
channel_infoJSON objectSingle Channel Information JSON show as follow Table x
page_type“ChannelConfig”,
“AarmConfig”
stringThe data used to distinguish between the channel configuration page and the alarm configuration page is only needed when setting
channel_maxintMaximum number of channels

Table x

ParameterRangeTypeDescription
CH1Json ObjectJSON show as followTable 3
...Json Object
IP_CH1Json Object
...Json Object
WIFI_CH1Json Object
...Json Object

Table 3

ParameterRangeTypeDescription
status"Offline","Online",
“Nonsupport”
stringChannel online status, only for digital channels.
Note:This field does not exist when the channel is online
alarm_out“Local->1”…
”Local->x”
“IP_CH1->1”…
“IP_CH1->2”…
” IP_CHx->1”
” IP_CHx->2”
The number of channels depends on the capability of the device.
arrayAlarm output channel
Each array bit represents aalarm output channel with a string.
Camera:
Local->1:open,NULL:close
latch_time"10","20","40",
"60"
stringAlarm output time
record_enableture,falseboolRecording channel switch
post_recording"30","60","120",
"300"
stringVideo delay time
send_emailtrue, falseboolOutgoing mail switch
ftp_picture_uploadtrue, falseboolSend mail switch Channel Capture FTP Upload switch (dedicated to NVR)
ftp_video_uploadtrue, falseboolChannel video FTP upload switch (NVR special)
picture_to_cloudtrue, falseboolImage upload switch (NVR only)
light_linkagetrue, falseboolAlarm linkage switch
switchtrue, falseboolswitch,false: close
true: open
sensitivity1-4intDetection sensitivity
min_pixel64-1080intMinimum pixel value
max_pixel320-1080intMaximum pixel value
iva_lines0 not draw lines
1 draw lines
intPreview and play back whether lines will appear
detection_range"FullScreen"
"Customize"
stringdetection range
/0:full screen mode,1:Custom mode/
rule_infoObjectInformation JSON show as followTable 4
schedule_enableboolSchedule mode
ptz_operation_supportboolBall machine use supports ptz operation
enforcerlight_linkageboolRed and blue indicator linkage alarm
siren_linkageboolAlarm sound linkage alarm
http_listeningboolhttp event push
scheduleObjectThe following table is displayed, as shown in the following Table 7
default_timeout1-120000intSession timeout(range use)

Table 4

ParameterRangeTypeDescription
rule_number1ObjectRule number 1,Information JSON show as followTable 5
rule_number2ObjectRule number 2,Information JSON show as followTable 5
rule_number3ObjectRule number 3,Information JSON show as followTable 5
rule_number4ObjectRule number 4,Information JSON show as followTable 5

Table 5

ParameterRangeTypeDescription
rule_switchtrue, falseboolRegular switch
rule_rectObjectoctagon,Information JSON show as followTable 6

Table 6

ParameterRangeTypeDescription
x10-704shortx1 coordinate point
y10-576shorty1 coordinate point
x20-704shortx2 coordinate point
y20-576shorty2 coordinate point
x30-704shortx3 coordinate point
y30-576shorty3 coordinate point
x40-704shortx4 coordinate point
y40-576shorty4 coordinate point
x50-704shortx5 coordinate point
y50-576shorty5 coordinate point
x60-704shortx6 coordinate point
y60-576shorty6 coordinate point
x70-704shortx7 coordinate point
y70-576shorty7 coordinate point
x80-704shortx8 coordinate point
y80-576shorty8 coordinate point

Table 7

ParameterRangeTypeDescription
schedule_type"SendEmail"
"FtpPicUpload"
"CloudPicUpload"
"Record"
"AlarmOut"
"FtpVdUpload"
"CloudVdUpload"
"FloodLight"
"Siren"
"EnforcerLight"
stringSchedule type
weekObejctWeekly information is shown in the table Table 8

Table 8

ParameterRangeTypeDescription
day"Sun"
"Mon"
"Tue"
"Wed"
"Thu"
"Fri"
"Sat"
stringday
timeinttime

Tips:

The response message of the Range request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_max": 1,
        "channel_info": {
            "type": "object",
            "items": {"CH1": {
                "type": "object",
                "items": {
                    "status": {
                        "description": "Only offline channel has this variable.",
                        "type": "string",
                        "mode": "r",
                        "items": [
                            "Offline",
                            "Online",
                            "Nonsupport"
                        ]
                    },
                    "switch": {"type": "bool"},
                    "sensitivity": {
                        "type": "int32",
                        "items": [
                            1,
                            2,
                            3,
                            4
                        ]
                    },
                    "min_pixel": {
                        "type": "int32",
                        "mode": "r",
                        "min": 32,
                        "max": 1080,
                        "default_value": 32
                    },
                    "max_pixel": {
                        "type": "int32",
                        "mode": "r",
                        "min": 320,
                        "max": 1080,
                        "default_value": 640
                    },
                    "max_detection_num": {
                        "type": "int32",
                        "mode": "r",
                        "min": 1,
                        "max": 500,
                        "default_value": 50
                    },
                    "detection_range": {
                        "type": "string",
                        "items": [
                            "FullScreen",
                            "Customize"
                        ]
                    },
                    "rule_info": {
                        "type": "object",
                        "items": {"rule_number1": {
                            "type": "object",
                            "items": {
                                "rule_switch": {"type": "bool"},
                                "rule_rect": {
                                    "type": "object",
                                    "items": {
                                        "x1": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "x2": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "x3": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "x4": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "x5": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "x6": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "x7": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "x8": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "y1": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        },
                                        "y2": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        },
                                        "y3": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        },
                                        "y4": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        },
                                        "y5": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        },
                                        "y6": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        },
                                        "y7": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        },
                                        "y8": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        }
                                    }
                                }
                            }
                        }}
                    }
                }
            }}
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set parameter for AI > Setup > Crowd Density Detection page.

Request Message

See AI > Setup > Crowd Density Detection > Range > Parameter Description > Table 2for parameter description.

Sample:

POST /API/AI/Setup/CD/Set
HTTP/1.1
{
    "version": "1.0",
    "data": {
        "channel_info": {"CH1": {
            "status": "Online",
            "switch": true,
            "sensitivity": 2,
            "max_pixel": 640,
            "min_pixel": 32,
            "max_detection_num": 50,
            "detection_range": "Customize",
            "rule_info": {"rule_number1": {
                "rule_switch": true,
                "rule_rect": {
                    "x1": 30,
                    "y1": 175,
                    "x2": 240,
                    "y2": 30,
                    "x3": 465,
                    "y3": 30,
                    "x4": 675,
                    "y4": 175,
                    "x5": 675,
                    "y5": 400,
                    "x6": 465,
                    "y6": 545,
                    "x7": 240,
                    "y7": 545,
                    "x8": 30,
                    "y8": 400
                },
                "rule_number": "rule_number1"
            }},
            "chn_index": "CH1",
            "page": "chn_ai_cd",
            "rule": {
                "rule_switch": true,
                "rule_rect": {
                    "x1": 30,
                    "y1": 175,
                    "x2": 240,
                    "y2": 30,
                    "x3": 465,
                    "y3": 30,
                    "x4": 675,
                    "y4": 175,
                    "x5": 675,
                    "y5": 400,
                    "x6": 465,
                    "y6": 545,
                    "x7": 240,
                    "y7": 545,
                    "x8": 30,
                    "y8": 400
                },
                "rule_number": "rule_number1"
            }
        }},
        "page_type": "ChannelConfig"
    }
}

Response Message

none.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result":"success",
    "data":{}
}

Error Code

See Response Messages Body and Common error_code for more information.

Face Detection

Function

This API is used for get or set Face Detection config parameters。

URI

POST /API/AI/Setup/FD/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range, Get, Set.

Get

Function

This API is used to get parameter for AI > Setup > Face Detection page.

Request Message

Table 1

ParameterRangeTypeDescription
channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…” WIFI_CH1x”
The number of channels depends on the capabilities of the device.
string arrayEach array bit represents a channel with a string.
DVR/NVR need;
IPC only use CH1
page_type“ChannelConfig”,
“AlarmConfig”
stringThe data used to distinguish whether it is a channel configuration page or an alarm configuration page

Sample:

POST API/AI/Setup/FD/Get HTTP/1.1
{
    "version": "1.0",
    "data": {"page_type": "ChannelConfig"}
}

Response Message

Parameter Description

Table 2

ParameterRangeTypeDescription
channel_infoJSON objectChannel Information JSON show as follow Table Table 3
page_type“ChannelConfig”
“AlarmConfig”
stringThe data used to distinguish whether it is a channel configuration page or an alarm configuration page
channel_maxintMaximum number of channels
agreed_to_agreementboolWhether to agree to the face protocol.
statement_file_namestringThe displayed face protocol file name.

Table 3

ParameterRangeTypeDescription
CH1Json ObjectJSON show as follow Table Table 4
Json Object
IP_CH1Json Object
Json Object
WIFI_CH1Json Object
Json Object

Table 4

ParameterRangeTypeDescription
status"Offline"
"Online"
“Nonsupport”
stringChannel online status, only for digital channels.
Note: When the channel is online, there is no such field
alarm_out“Local->1”…
”Local->x”
“IP_CH1->1”…
“IP_CH1->2”…
” IP_CHx->1”
” IP_CHx->2”
The number of channels depends on the capabilities of the device.
arrayAlarm output channel
Each array bit represents aalarm output channel with a string.
Camera::Local->1:open, null value: close
latch_time"5s","10s","20s","30s"stringAlarm output time Ipc value 5 10 20 30
record_enabletrue, falseboolRecording channel switching
record_channel“CH1”…”CH1x”
“IP_CH1”…
” IP_CH1x”
“WIFI_CH1”…”
arrayAlarm output channel
Channel alarm linkage switch.
post_recording"OFF","5s","10s","20s","30s"stringVideo delay time Ipc value 0 5 10 20 30
send_emailtrue, falseboolSend Email Switch
switchtrue, falseboolswitch,false: close true: open
snap_mode"RealTimeMode"
"OptimalMode"
"IntervalMode"
stringScreenshot mode,
intervalMode JSON show as follow Table Table 5
apply_mode"FrontalView"
"MultiAngle"
"Customize"
stringCustomize JSON show as follow Table Table 6
min_pixel32-1080intMinimum pixel value
max_pixel320-1080intMaximum pixel value
face_enhancetrue, falseboolFace_enhance switch
face_attributeboolFace_attribute switch
detection_mode"StaticMode"
"MotionMode"
stringDetection mode
iva_lines0 Don't draw a line
1 draw a line
intWhether there will be a line in the preview and playback
rule_infoObjectInformation JSON show as follow Table Table 7
snap_num"1"
"2"
"3"
"Unlimited"
stringNumber of screenshots
snap_frequencyintScreenshot interval, unit s/pic
roll_range0-180intThe following default value fields are only available in Range:
"default_value_frontal": frontal default value for mode
"default_value_multi":multi default value for mode
pitch_range0-180intThe following default value fields are only available in Range:
"default_value_frontal": frontal default value for mode
"default_value_multi":multi default value for mode
yaw_range0-180intThe following default value fields are only available in Range:
"default_value_frontal": frontal default value for mode
"default_value_multi":multi default value for mode
picture_quality0-100intThe following default value fields are only available in Range:
"default_value_frontal": frontal default value for mode
"default_value_multi":multi default value for mode
schedule_enableboolSchedule mode
ptz_operation_supportboolBall machine use supports ptz operation
ftp_picture_uploadboolSupports uploading pictures to ftp
picture_to_cloudboolSupports uploading pictures to cloud storage
ftp_video_uploadboolSupports uploading videos to ftp
video_to_cloudboolSupports uploading videos to cloud storage
light_linkageboolWhite light linkage alarm
enforcerlight_linkageboolRed and blue indicator linkage alarm
siren_linkageboolAlarm sound linkage alarm
http_listeningboolhttp event push
scheduleObjectThe following table is displayed, as shown in the following Table 5
default_timeout1-120000intSession timeout(range use)

Table 5

ParameterRangeTypeDescription
schedule_type"SendEmail"
"FtpPicUpload"
"CloudPicUpload"
"Record"
"AlarmOut"
"FtpVdUpload"
"CloudVdUpload"
"FloodLight"
"Siren"
"EnforcerLight"
stringSchedule type
weekObejctWeekly information is shown in the table Table 6

Table 6

ParameterRangeTypeDescription
day"Sun"
"Mon"
"Tue"
"Wed"
"Thu"
"Fri"
"Sat"
stringday
timeinttime

Table 7

ParameterRangeTypeDescription
rule_number1ObjectRule number 1,information JSON show as follow Table Table 8

Table 8

ParameterRangeTypeDescription
rule_type"A->B"
"B->A"
stringRule type
rule_kind"Rect"
"Line"
stringRule type
detection_range"FullScreen"
"Customize"
stringExamination range
rule_rectObjectRectangle,information JSON show as follow Table table 9
rule_lineObjectDraw a line,information JSON show as follow Table table 10
point_num[min:max]arrayThe number of points drawn in the area, minimum 3 points (min), maximum 8 points (max)

Table 9

ParameterRangeTypeDescription
x10-704shortx1 Coordinate points
y10-576shorty1 Coordinate points
x20-704shortx2 Coordinate points
y20-576shorty2 Coordinate points
x30-704shortx3 Coordinate points
y30-576shorty3 Coordinate points
x40-704shortx4 Coordinate points
y40-576shorty4 Coordinate points
x50-704shortx5 Coordinate points
y50-576shorty5 Coordinate points
x60-704shortx6 Coordinate points
y60-576shorty6 Coordinate points
x70-704shortx7 Coordinate points
y70-576shorty7 Coordinate points
x80-704shortx8 Coordinate points
y80-576shorty8 Coordinate points

Table 10

ParameterRangeTypeDescription
x10-704shortx1 Coordinate points
y10-576shorty1 Coordinate points
x20-704shortx2 Coordinate points
y20-576shorty2 Coordinate points

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {"channel_info": {"CH1": {
        "status": "Online",
        "switch": false,
        "face_attribute": false,
        "snap_mode": "OptimalMode",
        "snap_num": "1",
        "snap_frequency": 2,
        "apply_mode": "FrontalView",
        "roll_range": 30,
        "pitch_range": 30,
        "yaw_range": 45,
        "picture_quality": 100,
        "min_pixel": 64,
        "max_pixel": 640,
        "detection_mode": "StaticMode",
        "rule_info": {"rule_number1": {
            "detection_range": "FullScreen",
            "rule_kind": "Rect",
            "rule_line": {
                "x1": 322,
                "y1": 30,
                "x2": 322,
                "y2": 545
            },
            "rule_type": "A->B",
            "rule_rect": {
                "x1": 30,
                "y1": 30,
                "x2": 30,
                "y2": 545,
                "x3": 675,
                "y3": 545,
                "x4": 675,
                "y4": 30
            }
        }}
    }}}
}

Error Code

See Response Messages Body and Common error_code for more information.

Range

Function

This API is used to get parameter range for AI > Setup > Face Detection page.

Request Message

See AI > Setup > Face Detection > Get > Request Message > Table 1 for parameter description.

Sample:

POST /API/AI/Setup/FD/Range HTTP/1.1
{
    "version": "1.0",
    "data": {"page_type": "ChannelConfig"}
}

Response Message

See AI > Setup > Face Detection > Get > Parameter Description > Table 2 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_max": 1,
        "channel_info": {
            "type": "object",
            "items": {"CH1": {
                "type": "object",
                "items": {
                    "status": {
                        "description": "Only offline channel has this variable.",
                        "type": "string",
                        "mode": "r",
                        "items": [
                            "Offline",
                            "Online",
                            "Nonsupport"
                        ]
                    },
                    "switch": {"type": "bool"},
                    "face_attribute": {"type": "bool"},
                    "apply_mode": {
                        "type": "string",
                        "items": [
                            "FrontalView",
                            "MultiiView",
                            "Customize"
                        ]
                    },
                    "snap_mode": {
                        "type": "string",
                        "items": [
                            "OptimalMode",
                            "RealTimeMode",
                            "IntervalMode"
                        ]
                    },
                    "snap_num": {
                        "type": "string",
                        "items": [
                            "1",
                            "2",
                            "3",
                            "Unlimited"
                        ]
                    },
                    "snap_frequency": {
                        "type": "int32",
                        "min": 1,
                        "max": 255
                    },
                    "min_pixel": {
                        "type": "int32",
                        "mode": "r",
                        "min": 32,
                        "max": 1080,
                        "default_value": 64
                    },
                    "max_pixel": {
                        "type": "int32",
                        "mode": "r",
                        "min": 320,
                        "max": 1080,
                        "default_value": 640
                    },
                    "detection_mode": {
                        "type": "string",
                        "items": [
                            "StaticMode",
                            "MotionMode"
                        ]
                    },
                    "roll_range": {
                        "type": "int32",
                        "mode": "r",
                        "min": 0,
                        "max": 180,
                        "default_value": 30,
                        "default_value_frontal": 30,
                        "default_value_multi": 180
                    },
                    "pitch_range": {
                        "type": "int32",
                        "mode": "r",
                        "min": 0,
                        "max": 180,
                        "default_value": 30,
                        "default_value_frontal": 30,
                        "default_value_multi": 180
                    },
                    "yaw_range": {
                        "type": "int32",
                        "mode": "r",
                        "min": 0,
                        "max": 180,
                        "default_value": 45,
                        "default_value_frontal": 45,
                        "default_value_multi": 180
                    },
                    "picture_quality": {
                        "type": "int32",
                        "mode": "r",
                        "min": 0,
                        "max": 100,
                        "default_value": 100,
                        "default_value_frontal": 100,
                        "default_value_multi": 100
                    },
                    "rule_info": {
                        "type": "object",
                        "items": {"rule_number1": {
                            "type": "object",
                            "items": {
                                "rule_kind": {
                                    "type": "string",
                                    "items": [
                                        "Rect",
                                        "Line"
                                    ]
                                },
                                "detection_range": {
                                    "description": "Only rule_rect has this variable.",
                                    "type": "string",
                                    "mode": "r",
                                    "items": [
                                        "FullScreen",
                                        "Customize"
                                    ]
                                },
                                "rule_line": {
                                    "type": "object",
                                    "items": {
                                        "x1": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "y1": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        },
                                        "x2": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "y2": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        }
                                    }
                                },
                                "rule_type": {
                                    "description": "Only rule_line has this variable.",
                                    "type": "string",
                                    "mode": "r",
                                    "items": [
                                        "A->B",
                                        "B->A"
                                    ]
                                },
                                "rule_rect": {
                                    "type": "object",
                                    "items": {
                                        "x1": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "y1": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        },
                                        "x2": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "y2": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        },
                                        "x3": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "y3": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        },
                                        "x4": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "y4": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        }
                                    }
                                }
                            }
                        }}
                    }
                }
            }}
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set parameter for AI > Setup > Face Detection page.

Request Message

See AI > Setup > Face Detection > Get >Parameter Description > Table 2 for parameter description.

Sample:

POST /API/AI/Setup/FD/Set HTTP/1.1
{
    "version": "1.0",
    "data": {
        "channel_info": {"CH1": {
            "status": "Online",
            "switch": false,
            "face_attribute": false,
            "snap_mode": "OptimalMode",
            "snap_num": "1",
            "snap_frequency": 2,
            "apply_mode": "FrontalView",
            "roll_range": 30,
            "pitch_range": 30,
            "yaw_range": 45,
            "picture_quality": 100,
            "min_pixel": 64,
            "max_pixel": 640,
            "detection_mode": "StaticMode",
            "rule_info": {"rule_number1": {
                "detection_range": "FullScreen",
                "rule_kind": "Rect",
                "rule_line": {
                    "x1": 322,
                    "y1": 30,
                    "x2": 322,
                    "y2": 545
                },
                "rule_type": "A->B",
                "rule_rect": {
                    "x1": 30,
                    "y1": 30,
                    "x2": 30,
                    "y2": 545,
                    "x3": 675,
                    "y3": 545,
                    "x4": 675,
                    "y4": 30
                }
            }},
            "chn_index": "CH1",
            "page": "chn_fd",
            "rule": {
                "detection_range": "FullScreen",
                "rule_kind": "Rect",
                "rule_line": {
                    "x1": 322,
                    "y1": 30,
                    "x2": 322,
                    "y2": 545
                },
                "rule_type": "A->B",
                "rule_rect": {
                    "x1": 30,
                    "y1": 30,
                    "x2": 30,
                    "y2": 545,
                    "x3": 675,
                    "y3": 545,
                    "x4": 675,
                    "y4": 30
                }
            }
        }},
        "page_type": "ChannelConfig"
    }
}

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Heat Map

Function

This API is used to get or set Heat Map configuration parameters.

URI

POST /API/AI/Setup/HeatMap/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range, Get, Set.

Get

Function

This API is used to get parameter for AI > Setup > Heat Map page.

Request Message

Table 1

ParameterRangeTypeDescription
channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…” WIFI_CH1x”
The number of channels depends on the capabilities of the device.
string arrayEach array bit represents a channel with a string.
DVR/NVR need;
IPC only use CH1
page_type“ChannelConfig”,
“AlarmConfig”
stringThe data used to distinguish whether it is a channel configuration page or an alarm configuration page

Sample:

POST API/AI/Setup/HeatMap/Get HTTP/1.1
{
    "version": "1.0",
    "data": {"page_type": "ChannelConfig"}
}

Response Message

Parameter Description

Table 2

ParameterRangeTypeDescription
channel_infoJSON objectSingle Channel Information JSON show as follow Table Table 3
channel_maxintMaximum number of channels

Table 3

ParameterRangeTypeDescription
CH1Json ObjectJSON show as follow Table Table 4
Json Object
IP_CH1Json Object
Json Object
WIFI_CH1Json Object
Json Object

Table 4

ParameterRangeTypeDescription
status"Offline","Online",“Nonsupport”stringChannel online status, only for digital channels.
Note: When the channel is online, there is no such field
switchtrue, falseboolSwitch, false: close true: open
rule_infoObjectInformation JSON show as follow Table Table 5
schedule_enableboolSchedule mode
ptz_operation_supportbool(Ball machine use)Supports the ptz operation

Table 5

ParameterRangeTypeDescription
rule_number1ObjectRule number 1,information JSON show as follow Table Table 6

Table 6

ParameterRangeTypeDescription
rule_switchboolRule switch
rule_lineObjectRectangle,Information JSON show as follow Table Table 7
point_num[min:max]arrayThe number of points drawn in the area, minimum 3 points (min), maximum 8 points (max)

Table 7

ParameterRangeTypeDescription
x10-704shortx1 coordinate points
y10-576shorty1 coordinate points
x20-704shortx2 coordinate points
y20-576shorty2 coordinate points
x30-704shortx3 coordinate points
y30-576shorty3 coordinate points
x40-704shortx4 coordinate points
y40-576shorty4 coordinate points
x50-704shortx5 coordinate points
y50-576shorty5 coordinate points
x60-704shortx6 coordinate points
y60-576shorty6 coordinate points
x70-704shortx7 coordinate points
y70-576shorty7 coordinate points
x80-704shortx8 coordinate points
y80-576shorty8 coordinate points

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {"channel_info": {"CH1": {
        "status": "Online",
        "switch": false,
        "rule_info": {"rule_number1": {
            "rule_switch": true,
            "rule_rect": {
                "x1": 0,
                "y1": 0,
                "x2": 704,
                "y2": 0,
                "x3": 704,
                "y3": 576,
                "x4": 0,
                "y4": 576
            }
        }}
    }}}
}

Error Code

See Response Messages Body and Common error_code for more information.

Range

Function

This API is used to get parameter range for AI > Setup > Heat Map page.

Request Message

See AI > Setup > Heat Map > Get > Table 1 for parameter description.

Sample:

POST /API/AI/Setup/HeatMap/Range HTTP/1.1
{
    "version": "1.0",
    "data": {"page_type": "ChannelConfig"}
}

Response Message

See AI > Setup > Heat Map > Get > Parameter Description > Table 2 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_max": 1,
        "channel_info": {
            "type": "object",
            "items": {"CH1": {
                "type": "object",
                "items": {
                    "status": {
                        "description": "Only offline channel has this variable.",
                        "type": "string",
                        "mode": "r",
                        "items": [
                            "Offline",
                            "Online",
                            "Nonsupport"
                        ]
                    },
                    "switch": {"type": "bool"},
                    "rule_info": {
                        "type": "object",
                        "items": {"rule_number1": {
                            "type": "object",
                            "items": {
                                "rule_switch": {"type": "bool"},
                                "rule_rect": {
                                    "type": "object",
                                    "items": {
                                        "x1": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "x2": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "x3": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "x4": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "y1": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        },
                                        "y2": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        },
                                        "y3": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        },
                                        "y4": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        }
                                    }
                                }
                            }
                        }}
                    }
                }
            }}
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set parameter for AI > Setup > Heat Map page.

Request Message

See AI > Setup > Heat Map > Get > Parameter Description > Table 2 for parameter description.

Sample:

POST API/AI/Setup/HeatMap/Set HTTP/1.1
{
    "version": "1.0",
    "data": {
        "channel_info": {"CH1": {
            "status": "Online",
            "switch": false,
            "rule_info": {"rule_number1": {
                "rule_switch": true,
                "rule_rect": {
                    "x1": 0,
                    "y1": 0,
                    "x2": 704,
                    "y2": 0,
                    "x3": 704,
                    "y3": 576,
                    "x4": 0,
                    "y4": 576
                },
                "rule_number": "rule_number1"
            }},
            "chn_index": "CH1",
            "page": "chn_pd",
            "curPage": "chn_heat_map",
            "rule": {
                "rule_switch": true,
                "rule_rect": {
                    "x1": 0,
                    "y1": 0,
                    "x2": 704,
                    "y2": 0,
                    "x3": 704,
                    "y3": 576,
                    "x4": 0,
                    "y4": 576
                },
                "rule_number": "rule_number1"
            }
        }},
        "page_type": "ChannelConfig"
    }
}

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Human & Vehicle Detection

Function

This API is used for get or set PVD page parameters.

URI

POST /API/AI/Setup/PVD/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range, Get, Set.

Get

Function

This API is used to get parameter for AI > Setup > Human & Vehicle Detection page.

Request Message

See AI > Setup > Human & Vehicle Detection > Range > Parameter Description > Table 1for parameter description.

Sample:

POST /API/AI/Setup/PVD/Get HTTP/1.1
{
    "version": "1.0",
    "data": {"page_type": "ChannelConfig"}
}

Response Message

See AI > Setup > Human & Vehicle Detection > Range > Parameter Description > Table 2for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {"channel_info": {"CH1": {
        "status": "Online",
        "switch": true,
        "sensitivity": 60,
        "snap_mode": "Default",
        "snap_num": "1",
        "snap_frequency": 2,
        "max_pixel": 640,
        "min_pixel": 64,
        "detection_mode": "MotionMode",
        "detection_type": [
            "Pedestrian",
            "Motor Vehicle",
            "Non-motorized Vehicle"
        ],
        "rule_info": {"rule_number1": {
            "detection_range": "FullScreen",
            "rule_rect": {
                "x1": 30,
                "y1": 30,
                "x2": 30,
                "y2": 545,
                "x3": 675,
                "y3": 545,
                "x4": 675,
                "y4": 30
            }
        }}
    }}}
}

Error Code

See Response Messages Body and Common error_code for more information.

Range

Function

This API is used to get parameter range for AI > Setup > Human & Vehicle Detection page.

Note:

The Range provides reference information for client UI input limits and API request limits. When sending Get and Set requests, the parameters must be strictly limited according to the Range, otherwise the request may be rejected by the device.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…” WIFI_CH1x”
The number of channels depends on the capability of the device.
string arrayEach array bit represents a channel with a string.
DVR/NVR need.
IPC only uses CH1
page_type“ChannelConfig”,
“AlarmConfig”
stringData used to distinguish between the channel configuration page and the alarm configuration page

Sample:

POST /API/AI/Setup/PVD/Range HTTP/1.1
{
    "version": "1.0",
    "data": {"page_type": "ChannelConfig"}
}

Response Message

Parameter Description

Table 2

ParameterRangeTypeDescription
channel_infoJSON objectSingle Channel Information JSON show as follow Table x
page_type“ChannelConfig”,
“AarmConfig”
stringThe data used to distinguish between the channel configuration page and the alarm configuration page is only needed when setting
channel_maxintMaximum number of channels

Table x

ParameterRangeTypeDescription
CH1Json ObjectJSON show as followTable 3
...Json Object
IP_CH1Json Object
...Json Object
WIFI_CH1Json Object
...Json Object

Table 3

ParameterRangeTypeDescription
status"Offline","Online",
“Nonsupport”
stringChannel online status, only for digital channels.
Note:This field does not exist when the channel is online
alarm_out“Local->1”…
”Local->x”
“IP_CH1->1”…
“IP_CH1->2”…
” IP_CHx->1”
” IP_CHx->2”
The number of channels depends on the capability of the device.
arrayAlarm output channel
Each array bit represents aalarm output channel with a string.
Camera:
Local->1:open,NULL:close
latch_time"10","20","40",
"60"
stringAlarm output time
record_enableture,falseboolRecording channel switch
record_channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…”
arrayAlarm output channel
Channel alarm linkage switch
post_recording"30","60","120",
"300"
stringVideo delay time
send_emailtrue, falseboolOutgoing mail switch
ftp_picture_uploadtrue, falseboolSend mail switch Channel Capture FTP Upload switch (dedicated to NVR)
ftp_video_uploadtrue, falseboolChannel video FTP upload switch (NVR special)
picture_to_cloudtrue, falseboolImage upload switch (NVR only)
video_to_cloudtrue, falseboolVideo Cloud Upload Switch (NVR special)
full_screenboolFullScreen Switch (NVR only)
buzzer"0","10","20","40",
"60"
stringBuzzer time (NVR only)
show_messagetrue, falseboolDisplay information switch
switchtrue, falseboolswitch,false: close
true: open
sensitivity0-100intDetection sensitivity (IPC Smart 2)
sensitivity"Low","Medium","High"stringDetection sensitivity (IPC Smart Generation)
snap_mode"Default"
"RealTimeMode"
"IntervalMode"
stringScreenshot mode,
IntervalMode JSON show as followTable 4
min_pixel64-1080intMinimum pixel value
max_pixel320-1080intMaximum pixel value
detection_type"Off"
"Pedestrian"
"Vehicle"
"Pedestrian &Vehicle"
stringDetection type, Humanoid and car shape (normal detection type)
detection_type“Pedestrian”
"Motor Vehicle"
"Non-motorized Vehicle"
arrayDetection type, humanoid, motor vehicle, non-motor vehicle (machine non-human)
iva_lines0 not draw lines
1 draw lines
intPreview and play back whether lines will appear
rule_infoObjectInformation JSON show as followTable 5
schedule_list0-8json array(Consumer NVR interconnection IPC POE package) defense planning table data,show as followTable 9
mutual_exclusion"Intrusion"
"Region Entrance"
"Region Exiting"
"LCD"
json arrayThe set of mutually exclusive functions currently enabled,Note: If there is a mutual exclusion function that is already enabled, it is included in the Get. If it is not enabled or there is no mutual exclusion, it is not necessary to pass this field
schedule_enablebool计划表模式
ptz_operation_supportbool(球机使用)支持ptz操作
detection_modeStaticMode,MotionModestring检测模式
sceneIndoor,Outdoorstring场景
light_linkagebool白光联动告警
tracking_linkbool追踪联动开关(球机使用)
enforcerlight_linkagebool红蓝灯联动告警
siren_linkagebool警戒声联动告警
http_listeningboolhttp事件推送
scheduleObject计划表显示如表Table 10
default_timeout1-120000int会话超时(range使用)

Table 4

ParameterRangeTypeDescription
snap_num"1"
"2"
"3"
"Unlimited"
stringScreenshot count
snap_frequencyintScreenshot interval, unit s/pic

Table 5

ParameterRangeTypeDescription
rule_number1ObjectRule number 1,Information JSON show as followTable 6

Table 6

ParameterRangeTypeDescription
detection_range"FullScreen"
"Customize"
stringdetection range
rule_switchtrue, falsebool/* One byte per channel represents up to 4 rules, 0- off, 1- Use */ (IPC Smart Generation only)
rule_type"Normal"string/* One byte per channel for up to 4 rules, 0- off, 1- Use / (IPC Smart Generation Only) / One byte per channel for up to 4 - Rule type, 0- Regular mode, 1- Guest Mode/Other mode */ (IPC Smart Generation only)
rule_rectObjectrectangle,Information JSON show as followTable 7
point_num[min:max]arrayNumber of points drawn in the area, minimum 3 points (min), maximum 8 points (max)

Table 7

ParameterRangeTypeDescription
x10-704shortx1 coordinate point
y10-576shorty1 coordinate point
x20-704shortx2 coordinate point
y20-576shorty2 coordinate point
x30-704shortx3 coordinate point
y30-576shorty3 coordinate point
x40-704shortx4 coordinate point
y40-576shorty4 coordinate point
x50-704shortx5 coordinate point
y50-576shorty5 coordinate point
x60-704shortx6 coordinate point
y60-576shorty6 coordinate point
x70-704shortx7 coordinate point
y70-576shorty7 coordinate point
x80-704shortx8 coordinate point
y80-576shorty8 coordinate point

Table 8

ParameterRangeTypeDescription
cloud_video_is_used0~MAX_PARA_CHN_NUMarrayId of the channel where the cloud video upload function is enabled
max_cloud_video_upload_numMAX_CLOUD_VIDEO_RECORD_NUMintThe maximum number of channels supported for cloud video uploading

Table 9

ParameterRangeTypeDescription
enabletrue, falseboolWhether the current schedule takes effect
start_time0 – 1439(23*60+59)intSchedule start time (minutes relative to 00:00)
end_time0 – 1439(23*60+59)intSchedule end time (minutes relative to 00:00)
weekday"Sunday"
"Monday"
"Tuesday"
"Wednesday"
"Thursday"
"Friday"
"Saturday"
arrayIndicates the day of a week when the current schedule takes effect. You can select multiple days

Table 10

ParameterRangeTypeDescription
schedule_type"SendEmail"
"FtpPicUpload"
"CloudPicUpload"
"Record"
"AlarmOut"
"FtpVdUpload"
"CloudVdUpload"
"FloodLight"
"Siren"
"EnforcerLight"
stringSchedule type
weekObejctWeekly information is shown in the Table 11

Table 11

ParameterRangeTypeDescription
day"Sun"
"Mon"
"Tue"
"Wed"
"Thu"
"Fri"
"Sat"
stringday
timeinttime

Tips:

The response message of the Range request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_max": 1,
        "channel_info": {
            "type": "object",
            "items": {"CH1": {
                "type": "object",
                "items": {
                    "status": {
                        "description": "Only offline channel has this variable.",
                        "type": "string",
                        "mode": "r",
                        "items": [
                            "Offline",
                            "Online",
                            "Nonsupport"
                        ]
                    },
                    "switch": {"type": "bool"},
                    "sensitivity": {
                        "type": "int32",
                        "mode": "r",
                        "min": 1,
                        "max": 100,
                        "default_value": 60
                    },
                    "snap_mode": {
                        "type": "string",
                        "items": [
                            "Default",
                            "RealTimeMode",
                            "IntervalMode"
                        ]
                    },
                    "snap_num": {
                        "type": "string",
                        "items": [
                            "1",
                            "2",
                            "3",
                            "Unlimited"
                        ]
                    },
                    "snap_frequency": {
                        "type": "int32",
                        "mode": "r",
                        "min": 1,
                        "max": 255,
                        "default_value": 2
                    },
                    "max_pixel": {
                        "type": "int32",
                        "mode": "r",
                        "min": 320,
                        "max": 1080,
                        "default_value": 320
                    },
                    "min_pixel": {
                        "type": "int32",
                        "mode": "r",
                        "min": 64,
                        "max": 1080,
                        "default_value": 64
                    },
                    "detection_mode": {
                        "type": "string",
                        "items": [
                            "StaticMode",
                            "MotionMode"
                        ]
                    },
                    "detection_type": {
                        "type": "array",
                        "min_size": 0,
                        "max_size": 3,
                        "items": {
                            "type": "string",
                            "items": [
                                "Pedestrian",
                                "Motor Vehicle",
                                "Non-motorized Vehicle"
                            ]
                        }
                    },
                    "rule_info": {
                        "type": "object",
                        "items": {"rule_number1": {
                            "type": "object",
                            "items": {
                                "detection_range": {
                                    "description": "Only rule_rect has this variable.",
                                    "type": "string",
                                    "mode": "r",
                                    "items": [
                                        "FullScreen",
                                        "Customize"
                                    ]
                                },
                                "rule_rect": {
                                    "type": "object",
                                    "items": {
                                        "x1": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "y1": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        },
                                        "x2": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "y2": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        },
                                        "x3": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "y3": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        },
                                        "x4": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "y4": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        }
                                    }
                                }
                            }
                        }}
                    }
                }
            }}
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set parameter for AI > Setup > Human & Vehicle Detection page.

Request Message

See AI > Setup > Human & Vehicle Detection > Range > Parameter Description > Table 2for parameter description.

Sample:

POST /API/AI/Setup/PVD/Set
HTTP/1.1
{
    "version": "1.0",
    "data": {
        "channel_info": {"CH1": {
            "status": "Online",
            "switch": false,
            "sensitivity": 60,
            "snap_mode": "Default",
            "snap_num": "1",
            "snap_frequency": 2,
            "max_pixel": 640,
            "min_pixel": 64,
            "detection_mode": "MotionMode",
            "detection_type": [
                "Pedestrian",
                "Motor Vehicle",
                "Non-motorized Vehicle"
            ],
            "rule_info": {"rule_number1": {
                "detection_range": "FullScreen",
                "rule_rect": {
                    "x1": 30,
                    "y1": 30,
                    "x2": 30,
                    "y2": 545,
                    "x3": 675,
                    "y3": 545,
                    "x4": 675,
                    "y4": 30
                }
            }},
            "chn_index": "CH1",
            "page": "chn_pd",
            "curPage": "chn_ai_pvd",
            "rule": {
                "detection_range": "FullScreen",
                "rule_rect": {
                    "x1": 30,
                    "y1": 30,
                    "x2": 30,
                    "y2": 545,
                    "x3": 675,
                    "y3": 545,
                    "x4": 675,
                    "y4": 30
                }
            }
        }},
        "page_type": "ChannelConfig"
    }
}

Response Message

none.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result":"success",
    "data":{}
}

Error Code

See Response Messages Body and Common error_code for more information.

Intrusion

Function

This API is used for get or set AI > Setup > Intrusion parameters.

URI

POST /API/AI/Setup/Intrusion/{Action}

Table 1 describes the parameters.

Parameter-Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range, Get, Set.

Get

Function

This API is used to get AI > Setup > Intrusion configuration parameters.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…” WIFI_CH1x”
The number of channels depends on the capabilities of the device.
String arrayEach array bit represents a channel with a string.
DVR/NVR need;
IPC only use CH1
page_type“ChannelConfig”,
“AlarmConfig”
stringThe data used to distinguish whether it is a channel configuration page or an alarm configuration page

Sample:

POST /API/AI/Setup/Intrusion/Get HTTP/1.1
{
    "version":"1.0",
    "data":{
        "channel":["CH1"],
       "page_type":"ChannelConfig"
    }
}

Response Message

Parameter Description

Table 2

ParameterRangeTypeDescription
channel_infoJSON objectChannel Information JSON show as follow Table 3
page_type“ChannelConfig”,
“AarmConfig”
stringIt is used to distinguish whether it is the data of the channel configuration page or the alarm configuration page, it is only required when Set
channel_maxintMaximum number of channels

Table 3

ParameterRangeTypeDescription
CH1Json ObjectJSON show as follow Table 4
Json Object
IP_CH1Json Object
Json Object
WIFI_CH1Json Object
Json Object

Table 4

ParameterRangeTypeDescription
status"Offline","Online",
“Nonsupport”
stringChannel online status, only for digital channels.
Note: When the channel is online, there is no such field
alarm_out“Local->1”…
”Local->x”
“IP_CH1->1”…
“IP_CH1->2”…
” IP_CHx->1”
” IP_CHx->2”
The number of channels depends on the capabilities of the device.
arrayAlarm output channel
Each array bit represents aalarm output channel with a string.
Camera:
Local->1: open, null value: close
latch_time"10","20","40",
"60"
stringAlarm output time
record_enabletrue, falseboolRecording channel switching
record_channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…”
arrayAlarm output channel
Channel alarm linkage switch.
post_recording"30","60","120","300"stringVideo delay time
send_emailtrue, falseboolSend Email switch
ftp_picture_uploadtrue, falseboolChannel capture FTP upload switch (for NVR only)
ftp_video_uploadtrue, falseboolChannel recording FTP upload switch (for NVR only)
picture_to_cloudtrue, falseboolPicture upload switch (for NVR only)
video_to_cloudtrue, falseboolVideo cloud upload switch (for NVR only)
full_screenboolFullScreen switch (for NVR only)
buzzer"0","10","20","40","60"stringBuzzer sounding time (for NVR only)
show_messageboolShow Message switch (for NVR only)
switchtrue, falseboolPID enable switch, false: close
true: open
detection_type"Motion"
"Pedestrian"
"Vehicle"
"Pedestrian &Vehicle"
stringDetection type, human shape and vehicle shape (normal detection type)
detection_type“Pedestrian”
"Motor Vehicle"
"Non-motorized Vehicle"
arrayDetection type, human figure, motor vehicle, non-motor vehicle (machine is not human type)
sensitivity1-100intDetection sensitivity
time_threshold1-10inttime threshold
target_validity1-4intConfidence
min_pixel64-1080intMinimum pixel value
max_pixel320-1080intMaximum pixel value
rule_infoJSON objectSingle-channel information JSON is as follows Table 5
point_num[min:max]arrayThe number of points drawn in the area, minimum 3 points (min), maximum 8 points (max)

Table 5

ParameterRangeTypeDescription
rule_number1ObjectRule number 1, the information JSON is displayed as follows Table 6
rule_number2ObjectRule number 2, the information JSON is displayed as follows Table 6
rule_number3ObjectRule number 3, the information JSON is displayed as follows Table 6
rule_number4ObjectRule number 4, the information JSON is displayed as follows Table 6

Table 6

ParameterRangeTypeDescription
rule_switchboolrule switch
rule_rectObjectRectangle, the information JSON is as follows Table 7
point_num[min:max]arrayThe number of points drawn in the area, minimum 3 points (min), maximum 8 points (max)

Table 7

ParameterRangeTypeDescription
x10-704shortx1 coordinate point
y10-576shorty1 coordinate point
x20-704shortx2 coordinate point
y20-576shorty2 coordinate point
x30-704shortx3 coordinate point
y30-576shorty3 coordinate point
x40-704shortx4 coordinate point
y40-576shorty4 coordinate point
x50-704shortx5 coordinate point
y50-576shorty5 coordinate point
x60-704shortx6 coordinate point
y60-576shorty6 coordinate point
x70-704shortx7 coordinate point
y70-576shorty7 coordinate point
x80-704shortx8 coordinate point
y80-576shorty8 coordinate point

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {"channel_info": {"CH1": {
        "status": "Online",
        "switch": false,
        "sensitivity": 50,
        "detection_type": ["Motor Vehicle"],
        "time_threshold": 1,
        "target_validity": 2,
        "max_pixel": 640,
        "min_pixel": 64,
        "rule_info": {
            "rule_number1": {
                "rule_switch": true,
                "point_num": [
                    3,
                    8
                ],
                "rule_rect": {
                    "x1": 102,
                    "y1": 61,
                    "x2": 585,
                    "y2": 55,
                    "x3": 576,
                    "y3": 554,
                    "x4": 85,
                    "y4": 542,
                    "x5": 85,
                    "y5": 542,
                    "x6": 85,
                    "y6": 542,
                    "x7": 85,
                    "y7": 542,
                    "x8": 85,
                    "y8": 542
                }
            },
            "rule_number2": {
                "rule_switch": false,
                "point_num": [
                    3,
                    8
                ],
                "rule_rect": {
                    "x1": 0,
                    "y1": 0,
                    "x2": 0,
                    "y2": 0,
                    "x3": 0,
                    "y3": 0,
                    "x4": 0,
                    "y4": 0,
                    "x5": 0,
                    "y5": 0,
                    "x6": 0,
                    "y6": 0,
                    "x7": 0,
                    "y7": 0,
                    "x8": 0,
                    "y8": 0
                }
            },
            "rule_number3": {
                "rule_switch": false,
                "point_num": [
                    3,
                    8
                ],
                "rule_rect": {
                    "x1": 0,
                    "y1": 0,
                    "x2": 0,
                    "y2": 0,
                    "x3": 0,
                    "y3": 0,
                    "x4": 0,
                    "y4": 0,
                    "x5": 0,
                    "y5": 0,
                    "x6": 0,
                    "y6": 0,
                    "x7": 0,
                    "y7": 0,
                    "x8": 0,
                    "y8": 0
                }
            },
            "rule_number4": {
                "rule_switch": false,
                "point_num": [
                    3,
                    8
                ],
                "rule_rect": {
                    "x1": 0,
                    "y1": 0,
                    "x2": 0,
                    "y2": 0,
                    "x3": 0,
                    "y3": 0,
                    "x4": 0,
                    "y4": 0,
                    "x5": 0,
                    "y5": 0,
                    "x6": 0,
                    "y6": 0,
                    "x7": 0,
                    "y7": 0,
                    "x8": 0,
                    "y8": 0
                }
            }
        }
    }}}
}

Error Code

See Response Messages Body and Common error_code for more information.

Range

Function

This API is used to get AI > Setup > Intrusion configuration parameter scope.

Note:

The Range provides reference information for client UI input limits and API request limits. When sending Get and Set requests, the parameters must be strictly limited according to the Range, otherwise the request may be rejected by the device.

Request Message

Table 1

ParameterRangeTypeDescription
channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…” WIFI_CH1x”
The number of channels depends on the capabilities of the device.
String arrayEach array bit represents a channel with a string.
DVR/NVR need;
IPC only use CH1
page_type“ChannelConfig”,
“AlarmConfig”
stringThe data used to distinguish whether it is a channel configuration page or an alarm configuration page

Sample:

POST /API/AI/Setup/Intrusion/Range HTTP/1.1
{
    "version":"1.0",
    "data":{
        "channel":["CH1"],
        "page_type":"ChannelConfig"
    }
}

Response Message

Parameter Description

Table 2

ParameterRangeTypeDescription
channel_infoJSON objectChannel Information JSON show as follow Table 3
page_type“ChannelConfig”,
“AarmConfig”
stringIt is used to distinguish whether it is the data of the channel configuration page or the alarm configuration page, it is only required when Set
channel_maxintMaximum number of channels

Table 3

ParameterRangeTypeDescription
CH1Json ObjectJSON show as follow Table 4
Json Object
IP_CH1Json Object
Json Object
WIFI_CH1Json Object
Json Object

Table 4

ParameterRangeTypeDescription
status"Offline","Online",
“Nonsupport”
stringChannel online status, only for digital channels.
Note: When the channel is online, there is no such field
alarm_out“Local->1”…
”Local->x”
“IP_CH1->1”…
“IP_CH1->2”…
” IP_CHx->1”
” IP_CHx->2”
The number of channels depends on the capabilities of the device.
arrayAlarm output channel
Each array bit represents aalarm output channel with a string.
Camera:
Local->1: open, null value: close
latch_time"10","20","40",
"60"
stringAlarm output time
record_enabletrue, falseboolRecording channel switching
record_channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…”
arrayAlarm output channel
Channel alarm linkage switch.
post_recording"30","60","120","300"stringVideo delay time
send_emailtrue, falseboolSend Email switch
ftp_picture_uploadtrue, falseboolChannel capture FTP upload switch (for NVR only)
ftp_video_uploadtrue, falseboolChannel recording FTP upload switch (for NVR only)
picture_to_cloudtrue, falseboolPicture upload switch (for NVR only)
video_to_cloudtrue, falseboolVideo cloud upload switch (for NVR only)
full_screenboolFullScreen switch (for NVR only)
buzzer"0","10","20","40","60"stringBuzzer sounding time (for NVR only)
show_messageboolShow Message switch (for NVR only)
switchtrue, falseboolPID enable switch, false: close
true: open
detection_type"Motion"
"Pedestrian"
"Vehicle"
"Pedestrian &Vehicle"
stringDetection type, human shape and vehicle shape (normal detection type)
detection_type“Pedestrian”
"Motor Vehicle"
"Non-motorized Vehicle"
arrayDetection type, human figure, motor vehicle, non-motor vehicle (machine is not human type)
sensitivity1-100intDetection sensitivity
time_threshold1-10inttime threshold
target_validity1-4intConfidence
min_pixel64-1080intMinimum pixel value
max_pixel320-1080intMaximum pixel value
rule_infoJSON objectSingle-channel information JSON is as follows Table 5
point_num[min:max]arrayThe number of points drawn in the area, minimum 3 points (min), maximum 8 points (max)
schedule_enableboolSchedule mode
iva_lines0 Do not draw a line
1 Draw a line
boolPreview and play back whether lines will appear
ptz_operation_supportbool(Ball machine use)Supports the ptz operation
light_linkageboolWhite light linkage alarm
tracking_linkboolTracking linkage switch(Ball machine use)
enforcerlight_linkageboolRed and blue indicator linkage alarm
siren_linkageboolAlarm sound linkage alarm
http_listeningboolhttp event push
scheduleObjectThe schedule is shown in the Table 8
default_timeout1-120000intSession timeout (range usage)

Table 5

ParameterRangeTypeDescription
rule_number1ObjectRule number 1, the information JSON is displayed as follows Table 6
rule_number2ObjectRule number 2, the information JSON is displayed as follows Table 6
rule_number3ObjectRule number 3, the information JSON is displayed as follows Table 6
rule_number4ObjectRule number 4, the information JSON is displayed as follows Table 6

Table 6

ParameterRangeTypeDescription
rule_switchboolrule switch
rule_rectObjectRectangle, the information JSON is as follows Table 7
point_num[min:max]arrayThe number of points drawn in the area, minimum 3 points (min), maximum 8 points (max)

Table 7

ParameterRangeTypeDescription
x10-704shortx1 coordinate point
y10-576shorty1 coordinate point
x20-704shortx2 coordinate point
y20-576shorty2 coordinate point
x30-704shortx3 coordinate point
y30-576shorty3 coordinate point
x40-704shortx4 coordinate point
y40-576shorty4 coordinate point
x50-704shortx5 coordinate point
y50-576shorty5 coordinate point
x60-704shortx6 coordinate point
y60-576shorty6 coordinate point
x70-704shortx7 coordinate point
y70-576shorty7 coordinate point
x80-704shortx8 coordinate point
y80-576shorty8 coordinate point

Table 8

ParameterRangeTypeDescription
schedule_type"SendEmail"
"FtpPicUpload"
"CloudPicUpload"
"Record"
"AlarmOut"
"FtpVdUpload"
"CloudVdUpload"
"FloodLight"
"Siren"
"EnforcerLight"
stringSchedule type
weekObejctWeekly information is shown in the Table 9

Table 9

ParameterRangeTypeDescription
day"Sun"
"Mon"
"Tue"
"Wed"
"Thu"
"Fri"
"Sat"
stringday
timeinttime

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_max": 1,
        "channel_info": {
            "type": "object",
            "items": {
                "CH1": {
                    "type": "object",
                    "items": {
                        "status": {
                            "description": "Only offline channel has this variable.",
                            "type": "string",
                            "mode": "r",
                            "items": [
                                "Offline",
                                "Online",
                                "Nonsupport"
                            ]
                        },
                        "switch": {
                            "type": "bool"
                        },
                        "sensitivity": {
                            "type": "int32",
                            "min": 1,
                            "max": 100
                        },
                        "iva_lines": {
                            "type": "bool"
                        },
                        "detection_type": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 3,
                            "items": {
                                "type": "string",
                                "items": [
                                    "Pedestrian",
                                    "Motor Vehicle",
                                    "Non-motorized Vehicle"
                                ]
                            }
                        },
                        "time_threshold": {
                            "type": "int32",
                            "min": 0,
                            "max": 10
                        },
                        "target_validity": {
                            "type": "int32",
                            "items": [
                                1,
                                2,
                                3,
                                4
                            ]
                        },
                        "max_pixel": {
                            "type": "int32",
                            "min": 320,
                            "max": 1080
                        },
                        "min_pixel": {
                            "type": "int32",
                            "min": 64,
                            "max": 1080
                        },
                        "rule_info": {
                            "type": "object",
                            "items": {
                                "rule_number1": {
                                    "type": "object",
                                    "items": {
                                        "rule_switch": {
                                            "type": "bool"
                                        },
                                        "point_num": {
                                            "type": "array",
                                            "size": 2,
                                            "items": []
                                        },
                                        "rule_rect": {
                                            "type": "object",
                                            "items": {
                                                "x1": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x2": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x3": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x4": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x5": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x6": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x7": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x8": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "y1": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y2": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y3": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y4": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y5": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y6": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y7": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y8": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                }
                                            }
                                        }
                                    }
                                },
                                "rule_number2": {
                                    "type": "object",
                                    "items": {
                                        "rule_switch": {
                                            "type": "bool"
                                        },
                                        "point_num": {
                                            "type": "array",
                                            "size": 2,
                                            "items": []
                                        },
                                        "rule_rect": {
                                            "type": "object",
                                            "items": {
                                                "x1": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x2": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x3": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x4": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x5": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x6": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x7": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x8": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "y1": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y2": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y3": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y4": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y5": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y6": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y7": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y8": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                }
                                            }
                                        }
                                    }
                                },
                                "rule_number3": {
                                    "type": "object",
                                    "items": {
                                        "rule_switch": {
                                            "type": "bool"
                                        },
                                        "point_num": {
                                            "type": "array",
                                            "size": 2,
                                            "items": []
                                        },
                                        "rule_rect": {
                                            "type": "object",
                                            "items": {
                                                "x1": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x2": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x3": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x4": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x5": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x6": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x7": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x8": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "y1": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y2": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y3": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y4": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y5": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y6": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y7": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y8": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                }
                                            }
                                        }
                                    }
                                },
                                "rule_number4": {
                                    "type": "object",
                                    "items": {
                                        "rule_switch": {
                                            "type": "bool"
                                        },
                                        "point_num": {
                                            "type": "array",
                                            "size": 2,
                                            "items": []
                                        },
                                        "rule_rect": {
                                            "type": "object",
                                            "items": {
                                                "x1": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x2": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x3": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x4": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x5": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x6": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x7": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x8": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "y1": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y2": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y3": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y4": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y5": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y6": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y7": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y8": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set AI > Setup > Intrusion configuration parameters.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…” WIFI_CH1x”
The number of channels depends on the capabilities of the device.
String arrayEach array bit represents a channel with a string.
DVR/NVR need;
IPC only use CH1
page_type“ChannelConfig”,
“AlarmConfig”
stringThe data used to distinguish whether it is a channel configuration page or an alarm configuration page

Table 2

ParameterRangeTypeDescription
channel_infoJSON objectChannel Information JSON show as follow Table 3
page_type“ChannelConfig”,
“AarmConfig”
stringIt is used to distinguish whether it is the data of the channel configuration page or the alarm configuration page, it is only required when Set
channel_maxintMaximum number of channels

Table 3

ParameterRangeTypeDescription
CH1Json ObjectJSON show as follow Table 4
Json Object
IP_CH1Json Object
Json Object
WIFI_CH1Json Object
Json Object

Table 4

ParameterRangeTypeDescription
status"Offline","Online",
“Nonsupport”
stringChannel online status, only for digital channels.
Note: When the channel is online, there is no such field
alarm_out“Local->1”…
”Local->x”
“IP_CH1->1”…
“IP_CH1->2”…
” IP_CHx->1”
” IP_CHx->2”
The number of channels depends on the capabilities of the device.
arrayAlarm output channel
Each array bit represents aalarm output channel with a string.
Camera:
Local->1: open, null value: close
latch_time"10","20","40",
"60"
stringAlarm output time
record_enabletrue, falseboolRecording channel switching
record_channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…”
arrayAlarm output channel
Channel alarm linkage switch.
post_recording"30","60","120","300"stringVideo delay time
send_emailtrue, falseboolSend Email switch
ftp_picture_uploadtrue, falseboolChannel capture FTP upload switch (for NVR only)
ftp_video_uploadtrue, falseboolChannel recording FTP upload switch (for NVR only)
picture_to_cloudtrue, falseboolPicture upload switch (for NVR only)
video_to_cloudtrue, falseboolVideo cloud upload switch (for NVR only)
full_screenboolFullScreen switch (for NVR only)
buzzer"0","10","20","40","60"stringBuzzer sounding time (for NVR only)
show_messageboolShow Message switch (for NVR only)
switchtrue, falseboolPID enable switch, false: close
true: open
detection_type"Motion"
"Pedestrian"
"Vehicle"
"Pedestrian &Vehicle"
stringDetection type, human shape and vehicle shape (normal detection type)
detection_type“Pedestrian”
"Motor Vehicle"
"Non-motorized Vehicle"
arrayDetection type, human figure, motor vehicle, non-motor vehicle (machine is not human type)
sensitivity1-100intDetection sensitivity
time_threshold1-10inttime threshold
target_validity1-4intConfidence
min_pixel64-1080intMinimum pixel value
max_pixel320-1080intMaximum pixel value
rule_infoJSON objectSingle-channel information JSON is as follows Table 5
point_num[min:max]arrayThe number of points drawn in the area, minimum 3 points (min), maximum 8 points (max)

Table 5

ParameterRangeTypeDescription
rule_number1ObjectRule number 1, the information JSON is displayed as follows Table 6
rule_number2ObjectRule number 2, the information JSON is displayed as follows Table 6
rule_number3ObjectRule number 3, the information JSON is displayed as follows Table 6
rule_number4ObjectRule number 4, the information JSON is displayed as follows Table 6

Table 6

ParameterRangeTypeDescription
rule_switchboolrule switch
rule_rectObjectRectangle, the information JSON is as follows Table 7
point_num[min:max]arrayThe number of points drawn in the area, minimum 3 points (min), maximum 8 points (max)

Table 7

ParameterRangeTypeDescription
x10-704shortx1 coordinate point
y10-576shorty1 coordinate point
x20-704shortx2 coordinate point
y20-576shorty2 coordinate point
x30-704shortx3 coordinate point
y30-576shorty3 coordinate point
x40-704shortx4 coordinate point
y40-576shorty4 coordinate point
x50-704shortx5 coordinate point
y50-576shorty5 coordinate point
x60-704shortx6 coordinate point
y60-576shorty6 coordinate point
x70-704shortx7 coordinate point
y70-576shorty7 coordinate point
x80-704shortx8 coordinate point
y80-576shorty8 coordinate point

Sample:

POST /API/AI/Setup/Intrusion/Set HTTP/1.1
{
    "version": "1.0",
    "data": {
        "channel_info": {
            "CH1": {
                "switch": true,
                "sensitivity": 50,
                "max_pixel": 640,
                "min_pixel": 64,
                "time_threshold": 0,
                "target_validity": 3,
                "iva_lines": true,
                "detection_type": [],
                "rule_info": {
                    "rule_number1": {
                        "rule_switch": false,
                        "point_num": [
                            3,
                            8
                        ],
                        "rule_rect": {
                            "x1": 0,
                            "y1": 0,
                            "x2": 0,
                            "y2": 0,
                            "x3": 0,
                            "y3": 0,
                            "x4": 0,
                            "y4": 0,
                            "x5": 0,
                            "y5": 0,
                            "x6": 0,
                            "y6": 0,
                            "x7": 0,
                            "y7": 0,
                            "x8": 0,
                            "y8": 0
                        },
                        "rule_number": "rule_number1"
                    },
                    "rule_number2": {
                        "rule_switch": false,
                        "point_num": [
                            3,
                            8
                        ],
                        "rule_rect": {
                            "x1": 0,
                            "y1": 0,
                            "x2": 0,
                            "y2": 0,
                            "x3": 0,
                            "y3": 0,
                            "x4": 0,
                            "y4": 0,
                            "x5": 0,
                            "y5": 0,
                            "x6": 0,
                            "y6": 0,
                            "x7": 0,
                            "y7": 0,
                            "x8": 0,
                            "y8": 0
                        }
                    },
                    "rule_number3": {
                        "rule_switch": false,
                        "point_num": [
                            3,
                            8
                        ],
                        "rule_rect": {
                            "x1": 0,
                            "y1": 0,
                            "x2": 0,
                            "y2": 0,
                            "x3": 0,
                            "y3": 0,
                            "x4": 0,
                            "y4": 0,
                            "x5": 0,
                            "y5": 0,
                            "x6": 0,
                            "y6": 0,
                            "x7": 0,
                            "y7": 0,
                            "x8": 0,
                            "y8": 0
                        }
                    },
                    "rule_number4": {
                        "rule_switch": false,
                        "point_num": [
                            3,
                            8
                        ],
                        "rule_rect": {
                            "x1": 0,
                            "y1": 0,
                            "x2": 0,
                            "y2": 0,
                            "x3": 0,
                            "y3": 0,
                            "x4": 0,
                            "y4": 0,
                            "x5": 0,
                            "y5": 0,
                            "x6": 0,
                            "y6": 0,
                            "x7": 0,
                            "y7": 0,
                            "x8": 0,
                            "y8": 0
                        }
                    }
                },
                "chn_index": "CH1",
                "page": "chn_pid_split",
                "curPage": "chn_ai_intrusion",
                "rule": {
                    "rule_switch": false,
                    "point_num": [
                        3,
                        8
                    ],
                    "rule_rect": {
                        "x1": 0,
                        "y1": 0,
                        "x2": 0,
                        "y2": 0,
                        "x3": 0,
                        "y3": 0,
                        "x4": 0,
                        "y4": 0,
                        "x5": 0,
                        "y5": 0,
                        "x6": 0,
                        "y6": 0,
                        "x7": 0,
                        "y7": 0,
                        "x8": 0,
                        "y8": 0
                    },
                    "rule_number": "rule_number1"
                }
            }
        },
        "page_type": "ChannelConfig"
    }
}

Response Message

Error_Code Response

Error Information JSON (show as follow Table 8) (cloud_video_upload_chn_limit The return information attached to the error code)

Table 8

ParameterRangeTypeDescription
cloud_video_is_used0~MAX_PARA_CHN_NUMarrayThe channel number for which the cloud video upload function has been enabled
max_cloud_video_upload_numMAX_CLOUD_VIDEO_RECORD_NUMintThe maximum number of channels supported by cloud video upload

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

License Plate Detection

Function

This API is used for get or set LPD page parameters.

URI

POST /API/AI/Setup/LPD/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range, Get, Set.

Get

Function

This API is used to get parameter for AI > Setup > License Plate Detection page.

Request Message

See AI > Setup > License Plate Detection > Range > Parameter Description > Table 1for parameter description.

Sample:

POST /API/AI/Setup/LPD/Get HTTP/1.1
{
    "version": "1.0",
    "data": {"page_type": "ChannelConfig"}
}

Response Message

See AI > Setup > License Plate Detection > Range > Parameter Description > Table 2for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {"channel_info": {"CH1": {
        "status": "Online",
        "switch": true,
        "sensitivity": 60,
        "snap_mode": "Default",
        "snap_num": "1",
        "snap_frequency": 2,
        "max_pixel": 640,
        "min_pixel": 64,
        "detection_mode": "MotionMode",
        "detection_type": "EU_Plate",
        "lpd_enhance": false,
        "day_enhance_level": 60,
        "night_enhance_level": 50,
        "rule_info": {"rule_number1": {
            "detection_range": "FullScreen",
            "rule_rect": {
                "x1": 30,
                "y1": 30,
                "x2": 30,
                "y2": 545,
                "x3": 675,
                "y3": 545,
                "x4": 675,
                "y4": 30
            }
        }}
    }}}
}

Error Code

See Response Messages Body and Common error_code for more information.

Range

Function

This API is used to get parameter range for AI > Setup > License Plate Detection page.

Note:

The Range provides reference information for client UI input limits and API request limits. When sending Get and Set requests, the parameters must be strictly limited according to the Range, otherwise the request may be rejected by the device.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…” WIFI_CH1x”
The number of channels depends on the capability of the device.
string arrayEach array bit represents a channel with a string.
DVR/NVR need.
IPC only uses CH1
page_type“ChannelConfig”,
“AlarmConfig”
stringData used to distinguish between the channel configuration page and the alarm configuration page

Sample:

POST /API/AI/Setup/LPD/Range HTTP/1.1
{
    "version": "1.0",
    "data": {"page_type": "ChannelConfig"}
}

Response Message

Parameter Description

Table 2

ParameterRangeTypeDescription
channel_infoJSON objectSingle Channel Information JSON show as follow Table x
page_type“ChannelConfig”,
“AarmConfig”
stringThe data used to distinguish between the channel configuration page and the alarm configuration page is only needed when setting
channel_maxintMaximum number of channels

Table x

ParameterRangeTypeDescription
CH1Json ObjectJSON show as followTable 3
...Json Object
IP_CH1Json Object
...Json Object
WIFI_CH1Json Object
...Json Object

Table 3

ParameterRangeTypeDescription
status"Offline","Online",
“Nonsupport”
stringChannel online status, only for digital channels.
Note:This field does not exist when the channel is online
alarm_out“Local->1”…
”Local->x”
“IP_CH1->1”…
“IP_CH1->2”…
” IP_CHx->1”
” IP_CHx->2”
The number of channels depends on the capability of the device.
arrayAlarm output channel
Each array bit represents aalarm output channel with a string.
Camera:
Local->1:open,NULL:close
latch_time"10","20","40",
"60"
stringAlarm output time
record_enableture,falseboolRecording channel switch
record_channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…”
arrayAlarm output channel
Channel alarm linkage switch
post_recording"0","5","10",
"20","30"
stringVideo delay time
send_emailtrue, falseboolOutgoing mail switch
ftp_picture_uploadtrue, falseboolSend mail switch Channel Capture FTP Upload switch (dedicated to NVR)
ftp_video_uploadtrue, falseboolChannel video FTP upload switch (NVR special)
picture_to_cloudtrue, falseboolImage upload switch (NVR only)
video_to_cloudtrue, falseboolVideo Cloud Upload Switch (NVR special)
full_screenboolFullScreen Switch (NVR only)
buzzer"0","10","20","40",
"60"
stringBuzzer time (NVR only)
show_messagetrue, falseboolDisplay information switch
switchtrue, falseboolswitch,false: close
true: open
sensitivity0-100intDetection sensitivity
snap_mode"Default"
"RealTimeMode"
"IntervalMode"
stringScreenshot mode,
IntervalMode JSON show as followTable 4
min_pixel64-1080intMinimum pixel value
max_pixel320-1080intMaximum pixel value
detection_type"Off"
"Pedestrian"
"Vehicle"
"Pedestrian &Vehicle"
stringDetection type, Humanoid and car shape (normal detection type)
detection_mode"StaticMode"
"MotionMode"
stringDetection mode
iva_lines0 not draw lines
1 draw lines
intPreview and play back whether lines will appear
lpd_enhanceboolLicense plate recognition enhancement
day_enhance_level0-255intDaytime escalation
night_enhance_level0-255intNight increase level
rule_infoObjectInformation JSON show as followTable 5
point_num[min:max]array区域画点个数,最小3个点(min),最大8个点(max)
detection_type"EU_Plate"
"US_Plate"
stringdetection type
schedule_enableboolSchedule mode
ptz_operation_supportbool(Ball machine use )supports ptz operation
light_linkageboolWhite light linkage alarm
enforcerlight_linkageboolRed and blue indicator linkage alarm
siren_linkageboolAlarm sound linkage alarm
http_listeningboolhttp event push
scheduleObjectThe schedule is shown in the tableTable 9
default_timeout1-120000intSession timeout (range usage)

Table 4

ParameterRangeTypeDescription
snap_num"1"
"2"
"3"
"Unlimited"
stringScreenshot count
snap_frequencyintScreenshot interval, unit s/pic

Table 5

ParameterRangeTypeDescription
rule_number1ObjectRule number 1,Information JSON show as followTable 6

Table 6

ParameterRangeTypeDescription
detection_range"FullScreen"
"Customize"
stringdetection range
rule_rectObjectrectangle,Information JSON show as followTable 7

Table 7

ParameterRangeTypeDescription
x10-704shortx1 coordinate point
y10-576shorty1 coordinate point
x20-704shortx2 coordinate point
y20-576shorty2 coordinate point
x30-704shortx3 coordinate point
y30-576shorty3 coordinate point
x40-704shortx4 coordinate point
y40-576shorty4 coordinate point

Table 8

ParameterRangeTypeDescription
cloud_video_is_used0~MAX_PARA_CHN_NUMarrayId of the channel where the cloud video upload function is enabled
max_cloud_video_upload_numMAX_CLOUD_VIDEO_RECORD_NUMintThe maximum number of channels supported for cloud video uploading

Table 9

ParameterRangeTypeDescription
schedule_type"SendEmail"
"FtpPicUpload"
"CloudPicUpload"
"Record"
"AlarmOut"
"FtpVdUpload"
"CloudVdUpload"
"FloodLight"
"Siren"
"EnforcerLight"
stringSchedule type
weekObejctWeekly information is shown in the Table 10

Table 10

ParameterRangeTypeDescription
day"Sun"
"Mon"
"Tue"
"Wed"
"Thu"
"Fri"
"Sat"
stringday
timeinttime

Tips:

The response message of the Range request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_max": 1,
        "channel_info": {
            "type": "object",
            "items": {"CH1": {
                "type": "object",
                "items": {
                    "status": {
                        "description": "Only offline channel has this variable.",
                        "type": "string",
                        "mode": "r",
                        "items": [
                            "Offline",
                            "Online",
                            "Nonsupport"
                        ]
                    },
                    "switch": {"type": "bool"},
                    "sensitivity": {
                        "type": "int32",
                        "mode": "r",
                        "min": 1,
                        "max": 100,
                        "default_value": 60
                    },
                    "snap_mode": {
                        "type": "string",
                        "items": [
                            "Default",
                            "RealTimeMode",
                            "IntervalMode"
                        ]
                    },
                    "snap_num": {
                        "type": "string",
                        "items": [
                            "1",
                            "2",
                            "3",
                            "Unlimited"
                        ]
                    },
                    "snap_frequency": {
                        "type": "int32",
                        "mode": "r",
                        "min": 1,
                        "max": 255,
                        "default_value": 2
                    },
                    "max_pixel": {
                        "type": "int32",
                        "mode": "r",
                        "min": 320,
                        "max": 1080,
                        "default_value": 320
                    },
                    "min_pixel": {
                        "type": "int32",
                        "mode": "r",
                        "min": 64,
                        "max": 1080,
                        "default_value": 64
                    },
                    "detection_mode": {
                        "type": "string",
                        "items": [
                            "StaticMode",
                            "MotionMode"
                        ]
                    },
                    "detection_type": {
                        "type": "string",
                        "items": [
                            "EU_Plate",
                            "US_Plate"
                        ]
                    },
                    "lpd_enhance": {"type": "bool"},
                    "day_enhance_level": {
                        "type": "int32",
                        "min": 0,
                        "max": 150
                    },
                    "night_enhance_level": {
                        "type": "int32",
                        "min": 0,
                        "max": 150
                    },
                    "rule_info": {
                        "type": "object",
                        "items": {"rule_number1": {
                            "type": "object",
                            "items": {
                                "detection_range": {
                                    "description": "Only rule_rect has this variable.",
                                    "type": "string",
                                    "mode": "r",
                                    "items": [
                                        "FullScreen",
                                        "Customize"
                                    ]
                                },
                                "rule_rect": {
                                    "type": "object",
                                    "items": {
                                        "x1": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "y1": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        },
                                        "x2": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "y2": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        },
                                        "x3": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "y3": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        },
                                        "x4": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "y4": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        }
                                    }
                                }
                            }
                        }}
                    }
                }
            }}
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set parameter for AI > Setup > License Plate Detection page.

Request Message

See AI > Setup > License Plate Detection > Range > Parameter Description > Table 2for parameter description.

Sample:

POST /API/AI/Setup/LPD/Set
HTTP/1.1
{
    "version": "1.0",
    "data": {
        "channel_info": {"CH1": {
            "status": "Online",
            "switch": true,
            "sensitivity": 60,
            "snap_mode": "Default",
            "snap_num": "1",
            "snap_frequency": 2,
            "max_pixel": 640,
            "min_pixel": 64,
            "detection_mode": "MotionMode",
            "detection_type": "EU_Plate",
            "lpd_enhance": false,
            "day_enhance_level": 60,
            "night_enhance_level": 50,
            "rule_info": {"rule_number1": {
                "detection_range": "FullScreen",
                "rule_rect": {
                    "x1": 30,
                    "y1": 30,
                    "x2": 30,
                    "y2": 545,
                    "x3": 675,
                    "y3": 545,
                    "x4": 675,
                    "y4": 30
                }
            }},
            "chn_index": "CH1",
            "page": "chn_pd",
            "curPage": "chn_ai_lpd",
            "rule": {
                "detection_range": "FullScreen",
                "rule_rect": {
                    "x1": 30,
                    "y1": 30,
                    "x2": 30,
                    "y2": 545,
                    "x3": 675,
                    "y3": 545,
                    "x4": 675,
                    "y4": 30
                }
            }
        }},
        "page_type": "ChannelConfig"
    }
}

Response Message

none.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result":"success",
    "data":{}
}

Error Code

See Response Messages Body and Common error_code for more information.

Line Crossing Detection

Function

This API is used to get or set Line Crossing Detection configuration parameters.

URI

POST /API/AI/Setup/LCD/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range, Get, Set.

Get

Function

This API is used to get parameter for AI > Setup > Line Crossing Detection page.

Request Message

Table 1

ParameterRangeTypeDescription
channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…” WIFI_CH1x”
The number of channels depends on the capabilities of the device.
string arrayEach array bit represents a channel with a string.
DVR/NVR need;
IPC only use CH1
page_type“ChannelConfig”,
“AlarmConfig”
stringThe data used to distinguish whether it is a channel configuration page or an alarm configuration page

Sample:

POST API/AI/Setup/LCD/Get HTTP/1.1
{
    "version": "1.0",
    "data": {"page_type": "ChannelConfig"}
}

Response Message

Parameter Description

Table 2

ParameterRangeTypeDescription
channel_infoJSON objectChannel Information JSON show as follow Table Table 3
page_type“ChannelConfig”,
“AarmConfig”
stringIt is used to distinguish whether it is the data of the channel configuration page or the alarm configuration page, it is only required when setting
channel_maxintMaximum number of channels

Table 3

ParameterRangeTypeDescription
CH1Json ObjectJSON show as follow Table Table 4
Json Object
IP_CH1Json Object
Json Object
WIFI_CH1Json Object
Json Object

Table 4

ParameterRangeTypeDescription
status"Offline","Online",“Nonsupport”stringChannel online status, only for digital channels.
Note: When the channel is online, there is no such field
alarm_out“Local->1”…
”Local->x”
“IP_CH1->1”…
“IP_CH1->2”…
” IP_CHx->1”
” IP_CHx->2”
The number of channels depends on the capabilities of the device.
arrayAlarm output channel
Each array bit represents aalarm output channel with a string.
Camera:
Local->1:open, null value: close
latch_time"10","20","40","60"stringAlarm output time
record_enabletrue, falseboolRecording channel switching
record_channel“CH1”…”CH1x”
“IP_CH1”…
“IP_CH1x”
“WIFI_CH1”…”
arrayAlarm output channel
Channel alarm linkage switch.
post_recording"30","60","120","300"stringVideo delay time
send_emailtrue, falseboolSend email switch
ftp_picture_uploadtrue, falseboolChannel capture FTP upload switch(NVR dedicated)
ftp_video_uploadtrue, falseboolChannel video FTP upload switch(NVR dedicated)
picture_to_cloudtrue, falseboolPicture upload switch(NVR dedicated)
video_to_cloudtrue, falseboolVideo cloud upload switch(NVR dedicated)
full_screenboolFullScreen switch(NVR dedicated)
buzzer"0","10","20","40","60"stringBuzzer sounding time(NVR dedicated)
show_messageboolShow message switch(NVR dedicated)
switchtrue, falseboolswitch,false: close true: open
sensitivity1-4intDetection sensitivity
sensitivity_ex1-100intOptimized detection sensitivity
target_validity1-4intConfidence
min_pixel64-1080intMinimum pixel value
max_pixel320-1080intMaximum pixel value
detection_type"Motion"
"Pedestrian"
"Vehicle"
"Pedestrian &Vehicle"
stringDetection type, human shape and vehicle shape (normal detection type)
detection_type“Pedestrian”
"Motor Vehicle"
"Non-motorized Vehicle"
arrayDetection type, human figure, motor vehicle, non-motor vehicle (machine is not human type) (ipc intelligent second generation dedicated)
iva_lines0:no line
1:draw a line
intWhether there will be a line in the preview and playback (ipc smart second generation only)
rule_infoJSON objectSingle Channel Information JSON show as follow Tabl Table 5
schedule_list0-8json array(Consumer NVR docking IPC POE package only) Arming schedule data,show as Table Table 8 .
mutual_exclusion"PVD"json arrayThe collection of mutex functions that have been enabled at present. Note: If there is a mutex function that is already enabled, it will be brought when Get. If it is not enabled or there is no mutual exclusion, it is not necessary to pass this field
schedule_enableboolSchedule mode
ptz_operation_supportbool(Ball machine use)Supports the ptz operation
sceneIndoor,Outdoorstringscene
light_linkageboolWhite light linkage alarm
tracking_linkboolTracking linkage switch(Ball machine use)
enforcerlight_linkageboolRed and blue indicator linkage alarm
siren_linkageboolAlarm sound linkage alarm
http_listeningboolhttp event push
scheduleObjectThe schedule is displayed as followsTable 10
default_timeout1-120000intSession timeout (range usage)

Table 5

ParameterRangeTypeDescription
rule_number1ObjectRule number 1,Information JSON show as follow Table Table 6
rule_number2ObjectRule number 1,Information JSON show as follow Table Table 6
rule_number3ObjectRule number 1,Information JSON show as follow Table Table 6
rule_number4ObjectRule number 1,Information JSON show as follow Table Table 6

Table 6

ParameterRangeTypeDescription
rule_switchboolRule switch
rule_type"A->B",
"B->A",
"A<-->B"
stringRule direction
rule_lineObjectEach channel has a maximum of 64 point coordinates, that is, 32 lines. If it is an accompanying line, only the first line is used. If it is a perimeter, these 8 lines are connected in sequence to form a closed figure.Information JSON show as follow Table Table 7

Table 7

ParameterRangeTypeDescription
x10-704shortx1 Coordinate points
y10-576shorty1 Coordinate points
x20-704shortx2 Coordinate points
y20-576shorty2 Coordinate points

Table 8

ParameterRangeTypeDescription
cloud_video_is_used0~MAX_PARA_CHN_NUMarrayThe channel number for which the cloud video upload function has been enabled
max_cloud_video_upload_numMAX_CLOUD_VIDEO_RECORD_NUMintThe maximum number of channels supported by cloud video upload

Table 9

ParameterRangeTypeDescription
enabletrue, falseboolIs the current schedule in effect
start_time0 – 1439(23*60+59)intSchedule start time (minutes relative to 00:00)
end_time0 – 1439(23*60+59)intSchedule end time (minutes relative to 00:00)
weekday"Sunday"
"Monday"
"Tuesday"
"Wednesday"
"Thursday"
"Friday"
"Saturday"
arrayIndicates the day of the week when the current schedule takes effect, multiple choices are allowed

Table 10

ParameterRangeTypeDescription
schedule_type"SendEmail"
"FtpPicUpload"
"CloudPicUpload"
"Record"
"AlarmOut"
"FtpVdUpload"
"CloudVdUpload"
"FloodLight"
"Siren"
"EnforcerLight"
stringSchedule type
weekObejctWeekly information such as Table 11

Table 11

ParameterRangeTypeDescription
day"Sun"
"Mon"
"Tue"
"Wed"
"Thu"
"Fri"
"Sat"
stringday
timeinttime

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {"channel_info": {"CH1": {
        "status": "Online",
        "switch": true,
        "sensitivity": 2,
        "detection_type": [],
        "rule_info": {
            "rule_number1": {
                "rule_switch": true,
                "rule_type": "A<-->B",
                "rule_line": {
                    "x1": 406,
                    "y1": 165,
                    "x2": 396,
                    "y2": 482
                }
            },
            "rule_number2": {
                "rule_switch": true,
                "rule_type": "A<-->B",
                "rule_line": {
                    "x1": 263,
                    "y1": 171,
                    "x2": 254,
                    "y2": 483
                }
            },
            "rule_number3": {
                "rule_switch": false,
                "rule_type": "A->B",
                "rule_line": {
                    "x1": 0,
                    "y1": 0,
                    "x2": 0,
                    "y2": 0
                }
            },
            "rule_number4": {
                "rule_switch": false,
                "rule_type": "A->B",
                "rule_line": {
                    "x1": 0,
                    "y1": 0,
                    "x2": 0,
                    "y2": 0
                }
            }
        }
    }}}
}

Error Code

See Response Messages Body and Common error_code for more information.

Range

Function

This API is used to get parameter range for AI > Setup > Line Crossing Detection page.

Request Message

See AI > Setup > Line Crossing Detection > Get > Table 1 for parameter description.

Sample:

POST /API/AI/Setup/LCD/Range HTTP/1.1
{
    "version": "1.0",
    "data": {"page_type": "ChannelConfig"}
}

Response Message

See AI > Setup > Line Crossing Detection > Get > Parameter Description > Table 2 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_max": 1,
        "channel_info": {
            "type": "object",
            "items": {"CH1": {
                "type": "object",
                "items": {
                    "status": {
                        "description": "Only offline channel has this variable.",
                        "type": "string",
                        "mode": "r",
                        "items": [
                            "Offline",
                            "Online",
                            "Nonsupport"
                        ]
                    },
                    "switch": {"type": "bool"},
                    "sensitivity": {
                        "type": "int32",
                        "items": [
                            1,
                            2,
                            3,
                            4
                        ]
                    },
                    "detection_type": {
                        "type": "array",
                        "min_size": 0,
                        "max_size": 3,
                        "items": {
                            "type": "string",
                            "items": [
                                "Pedestrian",
                                "Motor Vehicle",
                                "Non-motorized Vehicle"
                            ]
                        }
                    },
                    "rule_info": {
                        "type": "object",
                        "items": {
                            "rule_number1": {
                                "type": "object",
                                "items": {
                                    "rule_switch": {"type": "bool"},
                                    "rule_type": {
                                        "type": "string",
                                        "items": [
                                            "A->B",
                                            "B->A",
                                            "A<-->B"
                                        ]
                                    },
                                    "rule_line": {
                                        "type": "object",
                                        "items": {
                                            "x1": {
                                                "type": "int32",
                                                "min": 0,
                                                "max": 704
                                            },
                                            "x2": {
                                                "type": "int32",
                                                "min": 0,
                                                "max": 704
                                            },
                                            "y1": {
                                                "type": "int32",
                                                "min": 0,
                                                "max": 576
                                            },
                                            "y2": {
                                                "type": "int32",
                                                "min": 0,
                                                "max": 576
                                            }
                                        }
                                    }
                                }
                            },
                            "rule_number2": {
                                "type": "object",
                                "items": {
                                    "rule_switch": {"type": "bool"},
                                    "rule_type": {
                                        "type": "string",
                                        "items": [
                                            "A->B",
                                            "B->A",
                                            "A<-->B"
                                        ]
                                    },
                                    "rule_line": {
                                        "type": "object",
                                        "items": {
                                            "x1": {
                                                "type": "int32",
                                                "min": 0,
                                                "max": 704
                                            },
                                            "x2": {
                                                "type": "int32",
                                                "min": 0,
                                                "max": 704
                                            },
                                            "y1": {
                                                "type": "int32",
                                                "min": 0,
                                                "max": 576
                                            },
                                            "y2": {
                                                "type": "int32",
                                                "min": 0,
                                                "max": 576
                                            }
                                        }
                                    }
                                }
                            },
                            "rule_number3": {
                                "type": "object",
                                "items": {
                                    "rule_switch": {"type": "bool"},
                                    "rule_type": {
                                        "type": "string",
                                        "items": [
                                            "A->B",
                                            "B->A",
                                            "A<-->B"
                                        ]
                                    },
                                    "rule_line": {
                                        "type": "object",
                                        "items": {
                                            "x1": {
                                                "type": "int32",
                                                "min": 0,
                                                "max": 704
                                            },
                                            "x2": {
                                                "type": "int32",
                                                "min": 0,
                                                "max": 704
                                            },
                                            "y1": {
                                                "type": "int32",
                                                "min": 0,
                                                "max": 576
                                            },
                                            "y2": {
                                                "type": "int32",
                                                "min": 0,
                                                "max": 576
                                            }
                                        }
                                    }
                                }
                            },
                            "rule_number4": {
                                "type": "object",
                                "items": {
                                    "rule_switch": {"type": "bool"},
                                    "rule_type": {
                                        "type": "string",
                                        "items": [
                                            "A->B",
                                            "B->A",
                                            "A<-->B"
                                        ]
                                    },
                                    "rule_line": {
                                        "type": "object",
                                        "items": {
                                            "x1": {
                                                "type": "int32",
                                                "min": 0,
                                                "max": 704
                                            },
                                            "x2": {
                                                "type": "int32",
                                                "min": 0,
                                                "max": 704
                                            },
                                            "y1": {
                                                "type": "int32",
                                                "min": 0,
                                                "max": 576
                                            },
                                            "y2": {
                                                "type": "int32",
                                                "min": 0,
                                                "max": 576
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }}
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set parameter for AI > Setup > Line Crossing Detection page.

Request Message

See AI > Setup > Line Crossing Detection > Get > Parameter Description > Table 2 for parameter description.

Sample:

POST API/AI/Setup/LCD/Set HTTP/1.1
{
    "version": "1.0",
    "data": {
        "channel_info": {"CH1": {
            "status": "Online",
            "switch": true,
            "sensitivity": 2,
            "detection_type": [],
            "rule_info": {
                "rule_number1": {
                    "rule_switch": true,
                    "rule_type": "A<-->B",
                    "rule_line": {
                        "x1": 406,
                        "y1": 165,
                        "x2": 396,
                        "y2": 482
                    }
                },
                "rule_number2": {
                    "rule_switch": true,
                    "rule_type": "A<-->B",
                    "rule_line": {
                        "x1": 263,
                        "y1": 171,
                        "x2": 254,
                        "y2": 483
                    },
                    "rule_number": "rule_number2"
                },
                "rule_number3": {
                    "rule_switch": false,
                    "rule_type": "A->B",
                    "rule_line": {
                        "x1": 0,
                        "y1": 0,
                        "x2": 0,
                        "y2": 0
                    }
                },
                "rule_number4": {
                    "rule_switch": false,
                    "rule_type": "A->B",
                    "rule_line": {
                        "x1": 0,
                        "y1": 0,
                        "x2": 0,
                        "y2": 0
                    }
                }
            },
            "chn_index": "CH1",
            "page": "chn_lcd",
            "rule": {
                "rule_switch": true,
                "rule_type": "A<-->B",
                "rule_line": {
                    "x1": 263,
                    "y1": 171,
                    "x2": 254,
                    "y2": 483
                },
                "rule_number": "rule_number2"
            }
        }},
        "page_type": "ChannelConfig"
    }
}

Response Message

Error_Code Response

Error Information JSON(show as follow Table AI > Setup > Line Crossing Detection > Get > Parameter Description > Table 8)(cloud_video_upload_chn_limit the return information attached to the error code)

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Queue Lenght Detection

Function

This API is used for get or set Queue Lenght Detection page parameters.

URI

POST /API/AI/Setup/QD/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range, Get, Set.

Get

Function

This API is used to get parameter for AI > Setup > Queue Lenght Detection page.

Request Message

See AI > Setup > Queue Lenght Detection > Range > Parameter Description > Table 1for parameter description.

Sample:

POST /API/AI/Setup/QD/Get HTTP/1.1
{
    "version": "1.0",
    "data": {"page_type": "ChannelConfig"}
}

Response Message

See AI > Setup > Queue Lenght Detection > Range > Parameter Description > Table 2for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {"channel_info": {"CH1": {
        "status": "Online",
        "switch": false,
        "sensitivity": 2,
        "max_pixel": 640,
        "min_pixel": 32,
        "max_detection_num": 10,
        "max_pro_time": 60,
        "detection_range": "Customize",
        "rule_info": {"rule_number1": {
            "rule_switch": true,
            "rule_rect": {
                "x1": 30,
                "y1": 175,
                "x2": 240,
                "y2": 30,
                "x3": 465,
                "y3": 30,
                "x4": 675,
                "y4": 175,
                "x5": 675,
                "y5": 400,
                "x6": 465,
                "y6": 545,
                "x7": 240,
                "y7": 545,
                "x8": 30,
                "y8": 400
            }
        }}
    }}}
}

Error Code

See Response Messages Body and Common error_code for more information.

Range

Function

This API is used to get parameter range for AI > Setup > Queue Lenght Detection page.

Note:

The Range provides reference information for client UI input limits and API request limits. When sending Get and Set requests, the parameters must be strictly limited according to the Range, otherwise the request may be rejected by the device.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…” WIFI_CH1x”
The number of channels depends on the capability of the device.
string arrayEach array bit represents a channel with a string.
DVR/NVR need.
IPC only uses CH1
page_type“ChannelConfig”,
“AlarmConfig”
stringData used to distinguish between the channel configuration page and the alarm configuration page

Sample:

POST /API/AI/Setup/QD/Range HTTP/1.1
{
    "version": "1.0",
    "data": {"page_type": "ChannelConfig"}
}

Response Message

Parameter Description

Table 2

ParameterRangeTypeDescription
channel_infoJSON objectSingle Channel Information JSON show as follow Table x
page_type“ChannelConfig”,
“AarmConfig”
stringThe data used to distinguish between the channel configuration page and the alarm configuration page is only needed when setting
channel_maxintMaximum number of channels

Table x

ParameterRangeTypeDescription
CH1Json ObjectJSON show as followTable 3
...Json Object
IP_CH1Json Object
...Json Object
WIFI_CH1Json Object
...Json Object

Table 3

ParameterRangeTypeDescription
status"Offline","Online",
“Nonsupport”
stringChannel online status, only for digital channels.
Note:This field does not exist when the channel is online
alarm_out“Local->1”…
”Local->x”
“IP_CH1->1”…
“IP_CH1->2”…
” IP_CHx->1”
” IP_CHx->2”
The number of channels depends on the capability of the device.
arrayAlarm output channel
Each array bit represents aalarm output channel with a string.
Camera:
Local->1:open,NULL:close
latch_time"10","20","40",
"60"
stringAlarm output time
record_enableture,falseboolRecording channel switch
post_recording"30","60","120",
"300"
stringVideo delay time
send_emailtrue, falseboolOutgoing mail switch
ftp_picture_uploadtrue, falseboolSend mail switch Channel Capture FTP Upload switch (dedicated to NVR)
ftp_video_uploadtrue, falseboolChannel video FTP upload switch (NVR special)
picture_to_cloudtrue, falseboolImage upload switch (NVR only)
light_linkagetrue, falseboolAlarm linkage switch
switchtrue, falseboolswitch,false: close
true: open
sensitivity1-4intDetection sensitivity
min_pixel64-1080intMinimum pixel value
max_pixel320-1080intMaximum pixel value
max_detection_num1-100intNumber of detecters alarm threshold
max_pro_time1-3600intSingle processing time alarm threshold
detection_range"FullScreen"
"Customize"
stringdetection range
/0: full-screen mode, 1: custom mode/
iva_lines0 not draw lines
1 draw lines
intPreview and play back whether lines will appear
rule_infoObjectInformation JSON show as followTable 4
schedule_enableboolschedule mode
ptz_operation_supportbool(Ball machine use)Supports the ptz operation
video_to_cloudboolUpload video to cloud storage
enforcerlight_linkageboolRed and blue indicator linkage alarm
siren_linkageboolAlarm sound linkage alarm
http_listeningboolhttp event push
scheduleObjectThe schedule is displayed as followsTable 7
default_timeout1-120000intSession timeout (range usage)

Table 4

ParameterRangeTypeDescription
rule_number1ObjectRule number 1,Information JSON show as followTable 5
rule_number2ObjectRule number 2,Information JSON show as followTable 5
rule_number3ObjectRule number 3,Information JSON show as followTable 5
rule_number4ObjectRule number 4,Information JSON show as followTable 5

Table 5

ParameterRangeTypeDescription
rule_switchtrue, falsebool/* One byte per channel represents up to 4 rules, 0- off, 1- Use */ (IPC Smart Generation only)
rule_rectObjectoctagon,Information JSON show as followTable 6

Table 6

ParameterRangeTypeDescription
x10-704shortx1 coordinate point
y10-576shorty1 coordinate point
x20-704shortx2 coordinate point
y20-576shorty2 coordinate point
x30-704shortx3 coordinate point
y30-576shorty3 coordinate point
x40-704shortx4 coordinate point
y40-576shorty4 coordinate point
x50-704shortx5 coordinate point
y50-576shorty5 coordinate point
x60-704shortx6 coordinate point
y60-576shorty6 coordinate point
x70-704shortx7 coordinate point
y70-576shorty7 coordinate point
x80-704shortx8 coordinate point
y80-576shorty8 coordinate point

Table 7

ParameterRangeTypeDescription
schedule_type"SendEmail"
"FtpPicUpload"
"CloudPicUpload"
"Record"
"AlarmOut"
"FtpVdUpload"
"CloudVdUpload"
"FloodLight"
"Siren"
"EnforcerLight"
stringSchedule type
weekObejctWeekly information such as Table 8

Table 8

ParameterRangeTypeDescription
day"Sun"
"Mon"
"Tue"
"Wed"
"Thu"
"Fri"
"Sat"
stringday
timeinttime

Tips:

The response message of the Range request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_max": 1,
        "channel_info": {
            "type": "object",
            "items": {"CH1": {
                "type": "object",
                "items": {
                    "status": {
                        "description": "Only offline channel has this variable.",
                        "type": "string",
                        "mode": "r",
                        "items": [
                            "Offline",
                            "Online",
                            "Nonsupport"
                        ]
                    },
                    "switch": {"type": "bool"},
                    "sensitivity": {
                        "type": "int32",
                        "items": [
                            1,
                            2,
                            3,
                            4
                        ]
                    },
                    "min_pixel": {
                        "type": "int32",
                        "mode": "r",
                        "min": 32,
                        "max": 1080,
                        "default_value": 32
                    },
                    "max_pixel": {
                        "type": "int32",
                        "mode": "r",
                        "min": 320,
                        "max": 1080,
                        "default_value": 640
                    },
                    "max_detection_num": {
                        "type": "int32",
                        "mode": "r",
                        "min": 1,
                        "max": 100,
                        "default_value": 10
                    },
                    "max_pro_time": {
                        "type": "int32",
                        "mode": "r",
                        "min": 1,
                        "max": 3600,
                        "default_value": 60
                    },
                    "detection_range": {
                        "type": "string",
                        "items": [
                            "FullScreen",
                            "Customize"
                        ]
                    },
                    "rule_info": {
                        "type": "object",
                        "items": {"rule_number1": {
                            "type": "object",
                            "items": {
                                "rule_switch": {"type": "bool"},
                                "rule_rect": {
                                    "type": "object",
                                    "items": {
                                        "x1": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "x2": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "x3": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "x4": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "x5": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "x6": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "x7": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "x8": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "y1": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        },
                                        "y2": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        },
                                        "y3": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        },
                                        "y4": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        },
                                        "y5": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        },
                                        "y6": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        },
                                        "y7": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        },
                                        "y8": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        }
                                    }
                                }
                            }
                        }}
                    }
                }
            }}
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set parameter for AI > Setup > Queue Lenght Detection page.

Request Message

See AI > Setup > Queue Lenght Detection > Range > Parameter Description > Table 2for parameter description.

Sample:

POST /API/AI/Setup/QD/Set
HTTP/1.1
{
    "version": "1.0",
    "data": {
        "channel_info": {"CH1": {
            "status": "Online",
            "switch": true,
            "sensitivity": 2,
            "max_pixel": 640,
            "min_pixel": 32,
            "max_detection_num": 10,
            "max_pro_time": 60,
            "detection_range": "Customize",
            "rule_info": {"rule_number1": {
                "rule_switch": true,
                "rule_rect": {
                    "x1": 30,
                    "y1": 175,
                    "x2": 240,
                    "y2": 30,
                    "x3": 465,
                    "y3": 30,
                    "x4": 675,
                    "y4": 175,
                    "x5": 675,
                    "y5": 400,
                    "x6": 465,
                    "y6": 545,
                    "x7": 240,
                    "y7": 545,
                    "x8": 30,
                    "y8": 400
                },
                "rule_number": "rule_number1"
            }},
            "chn_index": "CH1",
            "page": "chn_ai_qd",
            "rule": {
                "rule_switch": true,
                "rule_rect": {
                    "x1": 30,
                    "y1": 175,
                    "x2": 240,
                    "y2": 30,
                    "x3": 465,
                    "y3": 30,
                    "x4": 675,
                    "y4": 175,
                    "x5": 675,
                    "y5": 400,
                    "x6": 465,
                    "y6": 545,
                    "x7": 240,
                    "y7": 545,
                    "x8": 30,
                    "y8": 400
                },
                "rule_number": "rule_number1"
            }
        }},
        "page_type": "ChannelConfig"
    }
}

Response Message

none.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result":"success",
    "data":{}
}

Error Code

See Response Messages Body and Common error_code for more information.

Rare Sound Detection

Function

This API is used for get or set Rare Sound Detection page parameters.

URI

POST /API/AI/Setup/RSD/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range, Get, Set.

Get

Function

This API is used to get parameter for AI > Setup > Rare Sound Detection page.

Request Message

See AI > Setup > Rare Sound Detection > Range > Parameter Description > Table 1for parameter description.

Sample:

POST /API/AI/Setup/RSD/Get HTTP/1.1
{
    "version": "1.0",
    "data": {"page_type": "ChannelConfig"}
}

Response Message

See AI > Setup > Rare Sound Detection > Range > Parameter Description > Table 2for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {"channel_info": {"CH1": {
        "status": "Online",
        "switch": false,
        "sensitivity": 60,
        "detection_type": ["Baby Crying Sound"]
    }}}
}

Error Code

See Response Messages Body and Common error_code for more information.

Range

Function

This API is used to get parameter range for AI > Setup > Rare Sound Detection page.

Note:

The Range provides reference information for client UI input limits and API request limits. When sending Get and Set requests, the parameters must be strictly limited according to the Range, otherwise the request may be rejected by the device.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…” WIFI_CH1x”
The number of channels depends on the capability of the device.
string arrayEach array bit represents a channel with a string.
DVR/NVR need.
IPC only uses CH1
page_type“ChannelConfig”,
“AlarmConfig”
stringData used to distinguish between the channel configuration page and the alarm configuration page

Sample:

POST /API/AI/Setup/RSD/Range HTTP/1.1
{
    "version": "1.0",
    "data": {"page_type": "ChannelConfig"}
}

Response Message

Parameter Description

Table 2

ParameterRangeTypeDescription
channel_infoJSON objectSingle Channel Information JSON show as follow Table x
page_type“ChannelConfig”,
“AarmConfig”
stringThe data used to distinguish between the channel configuration page and the alarm configuration page is only needed when setting
channel_maxintMaximum number of channels

Table x

ParameterRangeTypeDescription
CH1Json ObjectJSON show as followTable 3
...Json Object
IP_CH1Json Object
...Json Object
WIFI_CH1Json Object
...Json Object

Table 3

ParameterRangeTypeDescription
status"Offline","Online",
“Nonsupport”
stringChannel online status, only for digital channels.
Note:This field does not exist when the channel is online
alarm_out“Local->1”…
”Local->x”
“IP_CH1->1”…
“IP_CH1->2”…
” IP_CHx->1”
” IP_CHx->2”
The number of channels depends on the capability of the device.
arrayAlarm output channel
Each array bit represents aalarm output channel with a string.
Camera:
Local->1:open,NULL:close
latch_time"10","20","40",
"60"
stringAlarm output time
record_enableture,falseboolRecording channel switch
record_channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…”
arrayAlarm output channel
Channel alarm linkage switch
post_recording"0","5","10",
"20","30"
stringVideo delay time
send_emailtrue, falseboolOutgoing mail switch
ftp_picture_uploadtrue, falseboolSend mail switch Channel Capture FTP Upload switch (dedicated to NVR)
ftp_video_uploadtrue, falseboolChannel video FTP upload switch (NVR special)
picture_to_cloudtrue, falseboolImage upload switch (NVR only)
video_to_cloudtrue, falseboolVideo Cloud Upload Switch (NVR special)
full_screenboolFullScreen Switch (NVR only)
buzzer"0","10","20","40",
"60"
stringBuzzer time (NVR only)
show_messagetrue, falseboolDisplay information switch
switchtrue, falseboolswitch,false: close
true: open
sensitivity1-100intDetection sensitivity
detection_type“Baby Crying Sound”
"Dog Barking"
"Gunshot"
arrayDetection type: baby crying, dog barking, gunshots
schedule_enableboolSchedule mode
light_linkageboolThe white light is associated with an alarm
enforcerlight_linkageboolRed and blue indicator linkage alarm
siren_linkageboolAlarm sound linkage alarm
http_listeningboolhttp event push
scheduleObjectThe schedule is shown in the Table 4

Table 4

ParameterRangeTypeDescription
schedule_type"SendEmail"
"FtpPicUpload"
"CloudPicUpload"
"Record"
"AlarmOut"
"FtpVdUpload"
"CloudVdUpload"
"FloodLight"
"Siren"
"EnforcerLight"
stringSchedule type
weekObejctWeekly information such as Table 5

Table 5

ParameterRangeTypeDescription
day"Sun"
"Mon"
"Tue"
"Wed"
"Thu"
"Fri"
"Sat"
stringday
timeinttime

Tips:

The response message of the Range request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_max": 1,
        "channel_info": {
            "type": "object",
            "items": {"CH1": {
                "type": "object",
                "items": {
                    "status": {
                        "description": "Only offline channel has this variable.",
                        "type": "string",
                        "mode": "r",
                        "items": [
                            "Offline",
                            "Online",
                            "Nonsupport"
                        ]
                    },
                    "switch": {"type": "bool"},
                    "sensitivity": {
                        "type": "int32",
                        "mode": "r",
                        "min": 1,
                        "max": 100,
                        "default_value": 60
                    },
                    "detection_type": {
                        "type": "array",
                        "min_size": 1,
                        "max_size": 3,
                        "items": {
                            "type": "string",
                            "items": [
                                "Baby Crying Sound",
                                "Dog Barking",
                                "Gunshot"
                            ]
                        }
                    }
                }
            }}
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set parameter for AI > Setup > Rare Sound Detection page.

Request Message

See AI > Setup > Rare Sound Detection > Range > Parameter Description > Table 2for parameter description.

Sample:

POST /API/AI/Setup/RSD/Set
HTTP/1.1
{
    "version": "1.0",
    "data": {
        "channel_info": {"CH1": {
            "status": "Online",
            "switch": false,
            "sensitivity": 60,
            "detection_type": ["Baby Crying Sound"],
            "chn_index": "CH1",
            "page": "chn_pid",
            "curPage": "chn_ai_rsd"
        }},
        "page_type": "ChannelConfig"
    }
}

Response Message

none.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result":"success",
    "data":{}
}

Error Code

See Response Messages Body and Common error_code for more information.

Region Entrance

Function

This API is used for get or set AI > Setup > Region Entrance parameters.

URI

POST /API/AI/Setup/RegionEntrance/{Action}

Table 1 describes the parameters.

Parameter-Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range, Get, Set.

Get

Function

This API is used to get AI > Setup > Region Entrance configuration parameters.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…” WIFI_CH1x”
The number of channels depends on the capabilities of the device.
String arrayString array
page_type“ChannelConfig”,
“AlarmConfig”
stringThe data used to distinguish whether it is a channel configuration page or an alarm configuration page

Sample:

POST /API/AI/Setup/RegionEntrance/Get HTTP/1.1
{
    "version": "1.0",
    "data": {
        "channel": ["CH1"],
        "page_type": "ChannelConfig"
    }
}

Response Message

Parameter Description

Table 2

ParameterRangeTypeDescription
channel_infoJSON objectChannel Information JSON show as follow Table 3
page_type“ChannelConfig”,
“AarmConfig”
stringIt is used to distinguish whether it is the data of the channel configuration page or the alarm configuration page, it is only required when Set
channel_maxintMaximum number of channels

Table 3

ParameterRangeTypeDescription
CH1Json ObjectJSON show as follow Table 4
Json Object
IP_CH1Json Object
Json Object
WIFI_CH1Json Object
Json Object

Table 4

ParameterRangeTypeDescription
status"Offline","Online",
“Nonsupport”
stringChannel online status, only for digital channels.
Note: When the channel is online, there is no such field
alarm_out“Local->1”…
”Local->x”
“IP_CH1->1”…
“IP_CH1->2”…
” IP_CHx->1”
” IP_CHx->2”
The number of channels depends on the capabilities of the device.
arrayAlarm output channel
Each array bit represents aalarm output channel with a string.
Camera:
Local->1: open, null value: close
latch_time"10","20","40","60"stringAlarm output time
record_enabletrue, falseboolRecording channel switching
record_channel“CH1”…”CH1x”
“IP_CH1”…”
IP_CH1x”
“WIFI_CH1”…”
arrayAlarm output channel
Channel alarm linkage switch.
post_recording"30","60","120","300"stringVideo delay time
send_emailtrue, falseboolSend Email switch
ftp_picture_uploadtrue, falseboolChannel capture FTP upload switch (for NVR only)
ftp_video_uploadtrue, falseboolChannel recording FTP upload switch (for NVR only)
picture_to_cloudtrue, falseboolPicture upload switch (for NVR only)
video_to_cloudtrue, falseboolVideo cloud upload switch (for NVR only)
full_screenboolFullScreen switch (for NVR only)
buzzer"0","10","20","40","60"stringBuzzer sounding time (for NVR only)
show_messageboolShow Message switch (for NVR only)
switchtrue, falseboolPID enable switch, false: close
true: open
detection_type"Motion"
"Pedestrian"
"Vehicle"
"Pedestrian &Vehicle"
stringDetection type, human shape and vehicle shape (normal detection type)
detection_type“Pedestrian”
"Motor Vehicle"
"Non-motorized Vehicle"
arrayDetection type, human figure, motor vehicle, non-motor vehicle (machine is not human type)
sensitivity1-100intDetection sensitivity
target_validity1-4intTarget validity
min_pixel64-1080intMinimum pixel value
max_pixel320-1080intMaximum pixel value
rule_infoJSON objectSingle-channel information JSON is as follows Table 5
point_num[min:max]arrayThe number of points drawn in the area, minimum 3 points (min), maximum 8 points (max)

Table 5

ParameterRangeTypeDescription
rule_number1ObjectRule number 1, the information JSON is displayed as follows Table 6
rule_number2ObjectRule number 2, the information JSON is displayed as follows Table 6
rule_number3ObjectRule number 3, the information JSON is displayed as follows Table 6
rule_number4ObjectRule number 4, the information JSON is displayed as follows Table 6

Table 6

ParameterRangeTypeDescription
rule_switchboolrule switch
rule_rectObjectRectangle, the information JSON is as follows Table 7
point_num[min:max]arrayThe number of points drawn in the area, minimum 3 points (min), maximum 8 points (max)

Table 7

ParameterRangeTypeDescription
x10-704shortx1 coordinate point
y10-576shorty1 coordinate point
x20-704shortx2 coordinate point
y20-576shorty2 coordinate point
x30-704shortx3 coordinate point
y30-576shorty3 coordinate point
x40-704shortx4 coordinate point
y40-576shorty4 coordinate point
x50-704shortx5 coordinate point
y50-576shorty5 coordinate point
x60-704shortx6 coordinate point
y60-576shorty6 coordinate point
x70-704shortx7 coordinate point
y70-576shorty7 coordinate point
x80-704shortx8 coordinate point
y80-576shorty8 coordinate point

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_info": {
            "CH1": {
                "status": "Online",
                "switch": false,
                "sensitivity": 50,
                "iva_lines": true,
                "detection_type": [],
                "target_validity": 3,
                "max_pixel": 640,
                "min_pixel": 64,
                "rule_info": {
                    "rule_number1": {
                        "rule_switch": false,
                        "point_num": [
                            3,
                            8
                        ],
                        "rule_rect": {
                            "x1": 0,
                            "y1": 0,
                            "x2": 0,
                            "y2": 0,
                            "x3": 0,
                            "y3": 0,
                            "x4": 0,
                            "y4": 0,
                            "x5": 0,
                            "y5": 0,
                            "x6": 0,
                            "y6": 0,
                            "x7": 0,
                            "y7": 0,
                            "x8": 0,
                            "y8": 0
                        }
                    },
                    "rule_number2": {
                        "rule_switch": false,
                        "point_num": [
                            3,
                            8
                        ],
                        "rule_rect": {
                            "x1": 0,
                            "y1": 0,
                            "x2": 0,
                            "y2": 0,
                            "x3": 0,
                            "y3": 0,
                            "x4": 0,
                            "y4": 0,
                            "x5": 0,
                            "y5": 0,
                            "x6": 0,
                            "y6": 0,
                            "x7": 0,
                            "y7": 0,
                            "x8": 0,
                            "y8": 0
                        }
                    },
                    "rule_number3": {
                        "rule_switch": false,
                        "point_num": [
                            3,
                            8
                        ],
                        "rule_rect": {
                            "x1": 0,
                            "y1": 0,
                            "x2": 0,
                            "y2": 0,
                            "x3": 0,
                            "y3": 0,
                            "x4": 0,
                            "y4": 0,
                            "x5": 0,
                            "y5": 0,
                            "x6": 0,
                            "y6": 0,
                            "x7": 0,
                            "y7": 0,
                            "x8": 0,
                            "y8": 0
                        }
                    },
                    "rule_number4": {
                        "rule_switch": false,
                        "point_num": [
                            3,
                            8
                        ],
                        "rule_rect": {
                            "x1": 0,
                            "y1": 0,
                            "x2": 0,
                            "y2": 0,
                            "x3": 0,
                            "y3": 0,
                            "x4": 0,
                            "y4": 0,
                            "x5": 0,
                            "y5": 0,
                            "x6": 0,
                            "y6": 0,
                            "x7": 0,
                            "y7": 0,
                            "x8": 0,
                            "y8": 0
                        }
                    }
                }
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Range

Function

This API is used to get AI > Setup > Region Entrance configuration parameter scope.

Note:

The Range provides reference information for client UI input limits and API request limits. When sending Get and Set requests, the parameters must be strictly limited according to the Range, otherwise the request may be rejected by the device.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…” WIFI_CH1x”
The number of channels depends on the capabilities of the device.
String arrayString array
page_type“ChannelConfig”,
“AlarmConfig”
stringThe data used to distinguish whether it is a channel configuration page or an alarm configuration page

Sample:

POST /API/AI/Setup/RegionEntrance/Range HTTP/1.1
{
    "version": "1.0",
    "data": {
        "channel": [
            "CH1"
        ],
        "page_type": "ChannelConfig"
    }
}

Response Message

Parameter Description

Table 2

ParameterRangeTypeDescription
channel_infoJSON objectChannel Information JSON show as follow Table 3
page_type“ChannelConfig”,
“AarmConfig”
stringIt is used to distinguish whether it is the data of the channel configuration page or the alarm configuration page, it is only required when Set
channel_maxintMaximum number of channels

Table 3

ParameterRangeTypeDescription
CH1Json ObjectJSON show as follow Table 4
Json Object
IP_CH1Json Object
Json Object
WIFI_CH1Json Object
Json Object

Table 4

ParameterRangeTypeDescription
status"Offline","Online",
“Nonsupport”
stringChannel online status, only for digital channels.
Note: When the channel is online, there is no such field
alarm_out“Local->1”…
”Local->x”
“IP_CH1->1”…
“IP_CH1->2”…
” IP_CHx->1”
” IP_CHx->2”
The number of channels depends on the capabilities of the device.
arrayAlarm output channel
Each array bit represents aalarm output channel with a string.
Camera:
Local->1: open, null value: close
latch_time"10","20","40","60"stringAlarm output time
record_enabletrue, falseboolRecording channel switching
record_channel“CH1”…”CH1x”
“IP_CH1”…”
IP_CH1x”
“WIFI_CH1”…”
arrayAlarm output channel
Channel alarm linkage switch.
post_recording"30","60","120","300"stringVideo delay time
send_emailtrue, falseboolSend Email switch
ftp_picture_uploadtrue, falseboolChannel capture FTP upload switch (for NVR only)
ftp_video_uploadtrue, falseboolChannel recording FTP upload switch (for NVR only)
picture_to_cloudtrue, falseboolPicture upload switch (for NVR only)
video_to_cloudtrue, falseboolVideo cloud upload switch (for NVR only)
full_screenboolFullScreen switch (for NVR only)
buzzer"0","10","20","40","60"stringBuzzer sounding time (for NVR only)
show_messageboolShow Message switch (for NVR only)
switchtrue, falseboolPID enable switch, false: close
true: open
detection_type"Motion"
"Pedestrian"
"Vehicle"
"Pedestrian &Vehicle"
stringDetection type, human shape and vehicle shape (normal detection type)
detection_type“Pedestrian”
"Motor Vehicle"
"Non-motorized Vehicle"
arrayDetection type, human figure, motor vehicle, non-motor vehicle (machine is not human type)
sensitivity1-100intDetection sensitivity
target_validity1-4intTarget validity
min_pixel64-1080intMinimum pixel value
max_pixel320-1080intMaximum pixel value
rule_infoJSON objectSingle-channel information JSON is as follows Table 5
point_num[min:max]arrayThe number of points drawn in the area, minimum 3 points (min), maximum 8 points (max)
schedule_enableboolSchedule mode
ptz_operation_supportbool(Ball machine use)Supports the ptz operation
iva_lines0 Do not draw a line
1 Draw a line
intPreview and play back whether lines will appear
light_linkageboolWhite light linkage alarm
tracking_linkboolTracking linkage switch(Ball machine use)
enforcerlight_linkageboolRed and blue indicator linkage alarm
siren_linkageboolAlarm sound linkage alarm
http_listeningboolhttp event push
scheduleObjectThe schedule is shown in the tableTable 8
default_timeout1-120000intSession timeout (range usage)

Table 5

ParameterRangeTypeDescription
rule_number1ObjectRule number 1, the information JSON is displayed as follows Table 6
rule_number2ObjectRule number 2, the information JSON is displayed as follows Table 6
rule_number3ObjectRule number 3, the information JSON is displayed as follows Table 6
rule_number4ObjectRule number 4, the information JSON is displayed as follows Table 6

Table 6

ParameterRangeTypeDescription
rule_switchboolrule switch
rule_rectObjectRectangle, the information JSON is as follows Table 7
point_num[min:max]arrayThe number of points drawn in the area, minimum 3 points (min), maximum 8 points (max)

Table 7

ParameterRangeTypeDescription
x10-704shortx1 coordinate point
y10-576shorty1 coordinate point
x20-704shortx2 coordinate point
y20-576shorty2 coordinate point
x30-704shortx3 coordinate point
y30-576shorty3 coordinate point
x40-704shortx4 coordinate point
y40-576shorty4 coordinate point
x50-704shortx5 coordinate point
y50-576shorty5 coordinate point
x60-704shortx6 coordinate point
y60-576shorty6 coordinate point
x70-704shortx7 coordinate point
y70-576shorty7 coordinate point
x80-704shortx8 coordinate point
y80-576shorty8 coordinate point

Table 8

ParameterRangeTypeDescription
schedule_type"SendEmail"
"FtpPicUpload"
"CloudPicUpload"
"Record"
"AlarmOut"
"FtpVdUpload"
"CloudVdUpload"
"FloodLight"
"Siren"
"EnforcerLight"
stringSchedule type
weekObejctWeekly information such as Table 9

Table 9

ParameterRangeTypeDescription
day"Sun"
"Mon"
"Tue"
"Wed"
"Thu"
"Fri"
"Sat"
stringday
timeinttime

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_max": 1,
        "channel_info": {
            "type": "object",
            "items": {
                "CH1": {
                    "type": "object",
                    "items": {
                        "status": {
                            "description": "Only offline channel has this variable.",
                            "type": "string",
                            "mode": "r",
                            "items": [
                                "Offline",
                                "Online",
                                "Nonsupport"
                            ]
                        },
                        "switch": {
                            "type": "bool"
                        },
                        "sensitivity": {
                            "type": "int32",
                            "min": 1,
                            "max": 100
                        },
                        "iva_lines": {
                            "type": "bool"
                        },
                        "detection_type": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 3,
                            "items": {
                                "type": "string",
                                "items": [
                                    "Pedestrian",
                                    "Motor Vehicle",
                                    "Non-motorized Vehicle"
                                ]
                            }
                        },
                        "target_validity": {
                            "type": "int32",
                            "items": [
                                1,
                                2,
                                3,
                                4
                            ]
                        },
                        "max_pixel": {
                            "type": "int32",
                            "min": 320,
                            "max": 1080
                        },
                        "min_pixel": {
                            "type": "int32",
                            "min": 64,
                            "max": 1080
                        },
                        "rule_info": {
                            "type": "object",
                            "items": {
                                "rule_number1": {
                                    "type": "object",
                                    "items": {
                                        "rule_switch": {
                                            "type": "bool"
                                        },
                                        "point_num": {
                                            "type": "array",
                                            "size": 2,
                                            "items": []
                                        },
                                        "rule_rect": {
                                            "type": "object",
                                            "items": {
                                                "x1": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x2": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x3": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x4": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x5": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x6": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x7": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x8": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "y1": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y2": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y3": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y4": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y5": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y6": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y7": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y8": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                }
                                            }
                                        }
                                    }
                                },
                                "rule_number2": {
                                    "type": "object",
                                    "items": {
                                        "rule_switch": {
                                            "type": "bool"
                                        },
                                        "point_num": {
                                            "type": "array",
                                            "size": 2,
                                            "items": []
                                        },
                                        "rule_rect": {
                                            "type": "object",
                                            "items": {
                                                "x1": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x2": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x3": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x4": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x5": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x6": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x7": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x8": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "y1": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y2": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y3": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y4": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y5": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y6": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y7": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y8": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                }
                                            }
                                        }
                                    }
                                },
                                "rule_number3": {
                                    "type": "object",
                                    "items": {
                                        "rule_switch": {
                                            "type": "bool"
                                        },
                                        "point_num": {
                                            "type": "array",
                                            "size": 2,
                                            "items": []
                                        },
                                        "rule_rect": {
                                            "type": "object",
                                            "items": {
                                                "x1": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x2": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x3": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x4": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x5": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x6": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x7": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x8": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "y1": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y2": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y3": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y4": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y5": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y6": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y7": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y8": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                }
                                            }
                                        }
                                    }
                                },
                                "rule_number4": {
                                    "type": "object",
                                    "items": {
                                        "rule_switch": {
                                            "type": "bool"
                                        },
                                        "point_num": {
                                            "type": "array",
                                            "size": 2,
                                            "items": []
                                        },
                                        "rule_rect": {
                                            "type": "object",
                                            "items": {
                                                "x1": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x2": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x3": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x4": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x5": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x6": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x7": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x8": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "y1": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y2": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y3": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y4": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y5": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y6": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y7": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y8": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set AI > Setup > Region Entrance configuration parameters.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
channel_infoJSON objectChannel Information JSON show as follow Table 2
page_type“ChannelConfig”,
“AarmConfig”
stringIt is used to distinguish whether it is the data of the channel configuration page or the alarm configuration page, it is only required when Set
channel_maxintMaximum number of channels

Table 2

ParameterRangeTypeDescription
CH1Json ObjectJSON show as follow Table 3
Json Object
IP_CH1Json Object
Json Object
WIFI_CH1Json Object
Json Object

Table 3

ParameterRangeTypeDescription
status"Offline","Online",
“Nonsupport”
stringChannel online status, only for digital channels.
Note: When the channel is online, there is no such field
alarm_out“Local->1”…
”Local->x”
“IP_CH1->1”…
“IP_CH1->2”…
” IP_CHx->1”
” IP_CHx->2”
The number of channels depends on the capabilities of the device.
arrayAlarm output channel
Each array bit represents aalarm output channel with a string.
Camera:
Local->1: open, null value: close
latch_time"10","20","40","60"stringAlarm output time
record_enabletrue, falseboolRecording channel switching
record_channel“CH1”…”CH1x”
“IP_CH1”…”
IP_CH1x”
“WIFI_CH1”…”
arrayAlarm output channel
Channel alarm linkage switch.
post_recording"30","60","120","300"stringVideo delay time
send_emailtrue, falseboolSend Email switch
ftp_picture_uploadtrue, falseboolChannel capture FTP upload switch (for NVR only)
ftp_video_uploadtrue, falseboolChannel recording FTP upload switch (for NVR only)
picture_to_cloudtrue, falseboolPicture upload switch (for NVR only)
video_to_cloudtrue, falseboolVideo cloud upload switch (for NVR only)
full_screenboolFullScreen switch (for NVR only)
buzzer"0","10","20","40","60"stringBuzzer sounding time (for NVR only)
show_messageboolShow Message switch (for NVR only)
switchtrue, falseboolPID enable switch, false: close
true: open
detection_type"Motion"
"Pedestrian"
"Vehicle"
"Pedestrian &Vehicle"
stringDetection type, human shape and vehicle shape (normal detection type)
detection_type“Pedestrian”
"Motor Vehicle"
"Non-motorized Vehicle"
arrayDetection type, human figure, motor vehicle, non-motor vehicle (machine is not human type)
sensitivity1-100intDetection sensitivity
target_validity1-4intTarget validity
min_pixel64-1080intMinimum pixel value
max_pixel320-1080intMaximum pixel value
rule_infoJSON objectSingle-channel information JSON is as follows Table 4
point_num[min:max]arrayThe number of points drawn in the area, minimum 3 points (min), maximum 8 points (max)

Table 4

ParameterRangeTypeDescription
rule_number1ObjectRule number 1, the information JSON is displayed as follows Table 5
rule_number2ObjectRule number 2, the information JSON is displayed as follows Table 5
rule_number3ObjectRule number 3, the information JSON is displayed as follows Table 5
rule_number4ObjectRule number 4, the information JSON is displayed as follows Table 5

Table 5

ParameterRangeTypeDescription
rule_switchboolrule switch
rule_rectObjectRectangle, the information JSON is as follows Table 6
point_num[min:max]arrayThe number of points drawn in the area, minimum 3 points (min), maximum 8 points (max)

Table 6

ParameterRangeTypeDescription
x10-704shortx1 coordinate point
y10-576shorty1 coordinate point
x20-704shortx2 coordinate point
y20-576shorty2 coordinate point
x30-704shortx3 coordinate point
y30-576shorty3 coordinate point
x40-704shortx4 coordinate point
y40-576shorty4 coordinate point
x50-704shortx5 coordinate point
y50-576shorty5 coordinate point
x60-704shortx6 coordinate point
y60-576shorty6 coordinate point
x70-704shortx7 coordinate point
y70-576shorty7 coordinate point
x80-704shortx8 coordinate point
y80-576shorty8 coordinate point

Sample:

POST /API/AI/Setup/RegionEntrance/Set HTTP/1.1
{
    "version": "1.0",
    "data": {
        "channel_info": {
            "CH1": {
                "switch": true,
                "sensitivity": 50,
                "max_pixel": 640,
                "min_pixel": 64,
                "target_validity": 3,
                "iva_lines": true,
                "detection_type": [],
                "rule_info": {
                    "rule_number1": {
                        "rule_switch": false,
                        "point_num": [
                            3,
                            8
                        ],
                        "rule_rect": {
                            "x1": 0,
                            "y1": 0,
                            "x2": 0,
                            "y2": 0,
                            "x3": 0,
                            "y3": 0,
                            "x4": 0,
                            "y4": 0,
                            "x5": 0,
                            "y5": 0,
                            "x6": 0,
                            "y6": 0,
                            "x7": 0,
                            "y7": 0,
                            "x8": 0,
                            "y8": 0
                        },
                        "rule_number": "rule_number1"
                    },
                    "rule_number2": {
                        "rule_switch": false,
                        "point_num": [
                            3,
                            8
                        ],
                        "rule_rect": {
                            "x1": 0,
                            "y1": 0,
                            "x2": 0,
                            "y2": 0,
                            "x3": 0,
                            "y3": 0,
                            "x4": 0,
                            "y4": 0,
                            "x5": 0,
                            "y5": 0,
                            "x6": 0,
                            "y6": 0,
                            "x7": 0,
                            "y7": 0,
                            "x8": 0,
                            "y8": 0
                        }
                    },
                    "rule_number3": {
                        "rule_switch": false,
                        "point_num": [
                            3,
                            8
                        ],
                        "rule_rect": {
                            "x1": 0,
                            "y1": 0,
                            "x2": 0,
                            "y2": 0,
                            "x3": 0,
                            "y3": 0,
                            "x4": 0,
                            "y4": 0,
                            "x5": 0,
                            "y5": 0,
                            "x6": 0,
                            "y6": 0,
                            "x7": 0,
                            "y7": 0,
                            "x8": 0,
                            "y8": 0
                        }
                    },
                    "rule_number4": {
                        "rule_switch": false,
                        "point_num": [
                            3,
                            8
                        ],
                        "rule_rect": {
                            "x1": 0,
                            "y1": 0,
                            "x2": 0,
                            "y2": 0,
                            "x3": 0,
                            "y3": 0,
                            "x4": 0,
                            "y4": 0,
                            "x5": 0,
                            "y5": 0,
                            "x6": 0,
                            "y6": 0,
                            "x7": 0,
                            "y7": 0,
                            "x8": 0,
                            "y8": 0
                        }
                    }
                },
                "chn_index": "CH1",
                "page": "chn_pid_split",
                "curPage": "chn_region_entrance",
                "rule": {
                    "rule_switch": false,
                    "point_num": [
                        3,
                        8
                    ],
                    "rule_rect": {
                        "x1": 0,
                        "y1": 0,
                        "x2": 0,
                        "y2": 0,
                        "x3": 0,
                        "y3": 0,
                        "x4": 0,
                        "y4": 0,
                        "x5": 0,
                        "y5": 0,
                        "x6": 0,
                        "y6": 0,
                        "x7": 0,
                        "y7": 0,
                        "x8": 0,
                        "y8": 0
                    },
                    "rule_number": "rule_number1"
                }
            }
        },
        "page_type": "ChannelConfig"
    }
}

Response Message

Error_Code Response

Error Information JSON (show as follow Table 7) (cloud_video_upload_chn_limit The return information attached to the error code)

Table 7

ParameterRangeTypeDescription
cloud_video_is_used0~MAX_PARA_CHN_NUMarrayThe channel number for which the cloud video upload function has been enabled
max_cloud_video_upload_numMAX_CLOUD_VIDEO_RECORD_NUMintThe maximum number of channels supported by cloud video upload

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Region Exiting

Function

This API is used for get or set AI > Setup > Region Exiting parameters.

URI

POST /API/AI/Setup/RegionExiting/{Action}

Table 1 describes the parameters.

Parameter-Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range, Get, Set.

Get

Function

This API is used to get AI > Setup > Region Exiting configuration parameters.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…” WIFI_CH1x”
The number of channels depends on the capabilities of the device.
String arrayEach array bit represents a channel with a string.
DVR/NVR need;
IPC only use CH1
page_type“ChannelConfig”,
“AlarmConfig”
stringThe data used to distinguish whether it is a channel configuration page or an alarm configuration page

Sample:

POST /API/AI/Setup/RegionExiting/Get HTTP/1.1
{
    "version": "1.0",
    "data": {
        "channel": [
            "CH1"
        ],
        "page_type": "ChannelConfig"
    }
}

Response Message

Parameter Description

Table 2

ParameterRangeTypeDescription
channel_infoJSON objectChannel Information JSON show as follow Table 3
page_type“ChannelConfig”,
“AarmConfig”
stringIt is used to distinguish whether it is the data of the channel configuration page or the alarm configuration page, it is only required when Set
channel_maxintMaximum number of channels

Table 3

ParameterRangeTypeDescription
CH1Json ObjectJSON show as follow Table 4
Json Object
IP_CH1Json Object
Json Object
WIFI_CH1Json Object
Json Object

Table 4

ParameterRangeTypeDescription
status"Offline","Online",
“Nonsupport”
stringChannel online status, only for digital channels.
Note: When the channel is online, there is no such field
alarm_out“Local->1”…
”Local->x”
“IP_CH1->1”…
“IP_CH1->2”…
” IP_CHx->1”
” IP_CHx->2”
The number of channels depends on the capabilities of the device.
arrayAlarm output channel
Each array bit represents aalarm output channel with a string.
Camera:
Local->1: open, null value: close
latch_time"10","20","40","60"stringAlarm output time
record_enabletrue, falseboolRecording channel switching
record_channel“CH1”…”CH1x”
“IP_CH1”…”
IP_CH1x”
“WIFI_CH1”…”
arrayAlarm output channel
Channel alarm linkage switch.
post_recording"30","60","120","300"stringVideo delay time
send_emailtrue, falseboolSend Email switch
ftp_picture_uploadtrue, falseboolChannel capture FTP upload switch (for NVR only)
ftp_video_uploadtrue, falseboolChannel recording FTP upload switch (for NVR only)
picture_to_cloudtrue, falseboolPicture upload switch (for NVR only)
video_to_cloudtrue, falseboolVideo cloud upload switch (for NVR only)
full_screenboolFullScreen switch (for NVR only)
buzzer"0","10","20","40","60"stringBuzzer sounding time (for NVR only)
show_messageboolShow Message switch (for NVR only)
switchtrue, falseboolPID enable switch, false: close
true: open
detection_type"Motion"
"Pedestrian"
"Vehicle"
"Pedestrian &Vehicle"
stringDetection type, human shape and vehicle shape (normal detection type)
detection_type“Pedestrian”
"Motor Vehicle"
"Non-motorized Vehicle"
arrayDetection type, human figure, motor vehicle, non-motor vehicle (machine is not human type)
sensitivity1-100intDetection sensitivity
target_validity1-4intTarget validity
min_pixel64-1080intMinimum pixel value
max_pixel320-1080intMaximum pixel value
rule_infoJSON objectSingle-channel information JSON is as follows Table 5
point_num[min:max]arrayThe number of points drawn in the area, minimum 3 points (min), maximum 8 points (max)

Table 5

ParameterRangeTypeDescription
rule_number1ObjectRule number 1, the information JSON is displayed as follows Table 6
rule_number2ObjectRule number 2, the information JSON is displayed as follows Table 6
rule_number3ObjectRule number 3, the information JSON is displayed as follows Table 6
rule_number4ObjectRule number 4, the information JSON is displayed as follows Table 6

Table 6

ParameterRangeTypeDescription
rule_switchboolrule switch
rule_rectObjectRectangle, the information JSON is as follows Table 7
point_num[min:max]arrayThe number of points drawn in the area, minimum 3 points (min), maximum 8 points (max)

Table 7

ParameterRangeTypeDescription
x10-704shortx1 coordinate point
y10-576shorty1 coordinate point
x20-704shortx2 coordinate point
y20-576shorty2 coordinate point
x30-704shortx3 coordinate point
y30-576shorty3 coordinate point
x40-704shortx4 coordinate point
y40-576shorty4 coordinate point
x50-704shortx5 coordinate point
y50-576shorty5 coordinate point
x60-704shortx6 coordinate point
y60-576shorty6 coordinate point
x70-704shortx7 coordinate point
y70-576shorty7 coordinate point
x80-704shortx8 coordinate point
y80-576shorty8 coordinate point

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_info": {
            "CH1": {
                "status": "Online",
                "switch": false,
                "sensitivity": 50,
                "iva_lines": true,
                "detection_type": [],
                "target_validity": 3,
                "max_pixel": 640,
                "min_pixel": 64,
                "rule_info": {
                    "rule_number1": {
                        "rule_switch": false,
                        "point_num": [
                            3,
                            8
                        ],
                        "rule_rect": {
                            "x1": 0,
                            "y1": 0,
                            "x2": 0,
                            "y2": 0,
                            "x3": 0,
                            "y3": 0,
                            "x4": 0,
                            "y4": 0,
                            "x5": 0,
                            "y5": 0,
                            "x6": 0,
                            "y6": 0,
                            "x7": 0,
                            "y7": 0,
                            "x8": 0,
                            "y8": 0
                        }
                    },
                    "rule_number2": {
                        "rule_switch": false,
                        "point_num": [
                            3,
                            8
                        ],
                        "rule_rect": {
                            "x1": 0,
                            "y1": 0,
                            "x2": 0,
                            "y2": 0,
                            "x3": 0,
                            "y3": 0,
                            "x4": 0,
                            "y4": 0,
                            "x5": 0,
                            "y5": 0,
                            "x6": 0,
                            "y6": 0,
                            "x7": 0,
                            "y7": 0,
                            "x8": 0,
                            "y8": 0
                        }
                    },
                    "rule_number3": {
                        "rule_switch": false,
                        "point_num": [
                            3,
                            8
                        ],
                        "rule_rect": {
                            "x1": 0,
                            "y1": 0,
                            "x2": 0,
                            "y2": 0,
                            "x3": 0,
                            "y3": 0,
                            "x4": 0,
                            "y4": 0,
                            "x5": 0,
                            "y5": 0,
                            "x6": 0,
                            "y6": 0,
                            "x7": 0,
                            "y7": 0,
                            "x8": 0,
                            "y8": 0
                        }
                    },
                    "rule_number4": {
                        "rule_switch": false,
                        "point_num": [
                            3,
                            8
                        ],
                        "rule_rect": {
                            "x1": 0,
                            "y1": 0,
                            "x2": 0,
                            "y2": 0,
                            "x3": 0,
                            "y3": 0,
                            "x4": 0,
                            "y4": 0,
                            "x5": 0,
                            "y5": 0,
                            "x6": 0,
                            "y6": 0,
                            "x7": 0,
                            "y7": 0,
                            "x8": 0,
                            "y8": 0
                        }
                    }
                }
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Range

Function

This API is used to get AI > Setup > Region Exiting configuration parameter scope.

Note:

The Range provides reference information for client UI input limits and API request limits. When sending Get and Set requests, the parameters must be strictly limited according to the Range, otherwise the request may be rejected by the device.

Request Message

Table 1

ParameterRangeTypeDescription
channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…” WIFI_CH1x”
The number of channels depends on the capabilities of the device.
String arrayEach array bit represents a channel with a string.
DVR/NVR need;
IPC only use CH1
page_type“ChannelConfig”,
“AlarmConfig”
stringThe data used to distinguish whether it is a channel configuration page or an alarm configuration page

Sample:

POST /API/AI/Setup/RegionExiting/Range HTTP/1.1
{
    "version": "1.0",
    "data": {
        "channel": [
            "CH1"
        ],
        "page_type": "ChannelConfig"
    }
}

Response Message

Parameter Description

Table 2

ParameterRangeTypeDescription
channel_infoJSON objectChannel Information JSON show as follow Table 3
page_type“ChannelConfig”,
“AarmConfig”
stringIt is used to distinguish whether it is the data of the channel configuration page or the alarm configuration page, it is only required when Set
channel_maxintMaximum number of channels

Table 3

ParameterRangeTypeDescription
CH1Json ObjectJSON show as follow Table 4
Json Object
IP_CH1Json Object
Json Object
WIFI_CH1Json Object
Json Object

Table 4

ParameterRangeTypeDescription
status"Offline","Online",
“Nonsupport”
stringChannel online status, only for digital channels.
Note: When the channel is online, there is no such field
alarm_out“Local->1”…
”Local->x”
“IP_CH1->1”…
“IP_CH1->2”…
” IP_CHx->1”
” IP_CHx->2”
The number of channels depends on the capabilities of the device.
arrayAlarm output channel
Each array bit represents aalarm output channel with a string.
Camera:
Local->1: open, null value: close
latch_time"10","20","40","60"stringAlarm output time
record_enabletrue, falseboolRecording channel switching
record_channel“CH1”…”CH1x”
“IP_CH1”…”
IP_CH1x”
“WIFI_CH1”…”
arrayAlarm output channel
Channel alarm linkage switch.
post_recording"30","60","120","300"stringVideo delay time
send_emailtrue, falseboolSend Email switch
ftp_picture_uploadtrue, falseboolChannel capture FTP upload switch (for NVR only)
ftp_video_uploadtrue, falseboolChannel recording FTP upload switch (for NVR only)
picture_to_cloudtrue, falseboolPicture upload switch (for NVR only)
video_to_cloudtrue, falseboolVideo cloud upload switch (for NVR only)
full_screenboolFullScreen switch (for NVR only)
buzzer"0","10","20","40","60"stringBuzzer sounding time (for NVR only)
show_messageboolShow Message switch (for NVR only)
switchtrue, falseboolPID enable switch, false: close
true: open
detection_type"Motion"
"Pedestrian"
"Vehicle"
"Pedestrian &Vehicle"
stringDetection type, human shape and vehicle shape (normal detection type)
detection_type“Pedestrian”
"Motor Vehicle"
"Non-motorized Vehicle"
arrayDetection type, human figure, motor vehicle, non-motor vehicle (machine is not human type)
sensitivity1-100intDetection sensitivity
target_validity1-4intTarget validity
min_pixel64-1080intMinimum pixel value
max_pixel320-1080intMaximum pixel value
rule_infoJSON objectSingle-channel information JSON is as follows Table 5
point_num[min:max]arrayThe number of points drawn in the area, minimum 3 points (min), maximum 8 points (max)
schedule_enableboolSchedule mode
ptz_operation_supportbool(Ball machine use)Supports the ptz operation
iva_lines0 Do not draw a line
1 Draw a line
intPreview and play back whether lines will appear
light_linkageboolWhite light linkage alarm
tracking_linkboolTracking linkage switch(Ball machine use)
enforcerlight_linkageboolRed and blue indicator linkage alarm
siren_linkageboolAlarm sound linkage alarm
http_listeningboolhttp event push
scheduleObjectThe schedule is displayed as followsTable 8
default_timeout1-120000intSession timeout (range usage)

Table 5

ParameterRangeTypeDescription
rule_number1ObjectRule number 1, the information JSON is displayed as follows Table 6
rule_number2ObjectRule number 2, the information JSON is displayed as follows Table 6
rule_number3ObjectRule number 3, the information JSON is displayed as follows Table 6
rule_number4ObjectRule number 4, the information JSON is displayed as follows Table 6

Table 6

ParameterRangeTypeDescription
rule_switchboolrule switch
rule_rectObjectRectangle, the information JSON is as follows Table 7
point_num[min:max]arrayThe number of points drawn in the area, minimum 3 points (min), maximum 8 points (max)

Table 7

ParameterRangeTypeDescription
x10-704shortx1 coordinate point
y10-576shorty1 coordinate point
x20-704shortx2 coordinate point
y20-576shorty2 coordinate point
x30-704shortx3 coordinate point
y30-576shorty3 coordinate point
x40-704shortx4 coordinate point
y40-576shorty4 coordinate point
x50-704shortx5 coordinate point
y50-576shorty5 coordinate point
x60-704shortx6 coordinate point
y60-576shorty6 coordinate point
x70-704shortx7 coordinate point
y70-576shorty7 coordinate point
x80-704shortx8 coordinate point
y80-576shorty8 coordinate point

Table 8

ParameterRangeTypeDescription
schedule_type"SendEmail"
"FtpPicUpload"
"CloudPicUpload"
"Record"
"AlarmOut"
"FtpVdUpload"
"CloudVdUpload"
"FloodLight"
"Siren"
"EnforcerLight"
stringSchedule type
weekObejctWeekly information such as Table 9

Table 9

ParameterRangeTypeDescription
day"Sun"
"Mon"
"Tue"
"Wed"
"Thu"
"Fri"
"Sat"
stringday
timeinttime

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_max": 1,
        "channel_info": {
            "type": "object",
            "items": {
                "CH1": {
                    "type": "object",
                    "items": {
                        "status": {
                            "description": "Only offline channel has this variable.",
                            "type": "string",
                            "mode": "r",
                            "items": [
                                "Offline",
                                "Online",
                                "Nonsupport"
                            ]
                        },
                        "switch": {
                            "type": "bool"
                        },
                        "sensitivity": {
                            "type": "int32",
                            "min": 1,
                            "max": 100
                        },
                        "iva_lines": {
                            "type": "bool"
                        },
                        "detection_type": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 3,
                            "items": {
                                "type": "string",
                                "items": [
                                    "Pedestrian",
                                    "Motor Vehicle",
                                    "Non-motorized Vehicle"
                                ]
                            }
                        },
                        "target_validity": {
                            "type": "int32",
                            "items": [
                                1,
                                2,
                                3,
                                4
                            ]
                        },
                        "max_pixel": {
                            "type": "int32",
                            "min": 320,
                            "max": 1080
                        },
                        "min_pixel": {
                            "type": "int32",
                            "min": 64,
                            "max": 1080
                        },
                        "rule_info": {
                            "type": "object",
                            "items": {
                                "rule_number1": {
                                    "type": "object",
                                    "items": {
                                        "rule_switch": {
                                            "type": "bool"
                                        },
                                        "point_num": {
                                            "type": "array",
                                            "size": 2,
                                            "items": []
                                        },
                                        "rule_rect": {
                                            "type": "object",
                                            "items": {
                                                "x1": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x2": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x3": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x4": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x5": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x6": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x7": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x8": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "y1": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y2": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y3": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y4": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y5": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y6": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y7": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y8": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                }
                                            }
                                        }
                                    }
                                },
                                "rule_number2": {
                                    "type": "object",
                                    "items": {
                                        "rule_switch": {
                                            "type": "bool"
                                        },
                                        "point_num": {
                                            "type": "array",
                                            "size": 2,
                                            "items": []
                                        },
                                        "rule_rect": {
                                            "type": "object",
                                            "items": {
                                                "x1": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x2": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x3": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x4": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x5": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x6": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x7": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x8": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "y1": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y2": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y3": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y4": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y5": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y6": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y7": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y8": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                }
                                            }
                                        }
                                    }
                                },
                                "rule_number3": {
                                    "type": "object",
                                    "items": {
                                        "rule_switch": {
                                            "type": "bool"
                                        },
                                        "point_num": {
                                            "type": "array",
                                            "size": 2,
                                            "items": []
                                        },
                                        "rule_rect": {
                                            "type": "object",
                                            "items": {
                                                "x1": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x2": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x3": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x4": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x5": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x6": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x7": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x8": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "y1": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y2": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y3": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y4": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y5": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y6": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y7": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y8": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                }
                                            }
                                        }
                                    }
                                },
                                "rule_number4": {
                                    "type": "object",
                                    "items": {
                                        "rule_switch": {
                                            "type": "bool"
                                        },
                                        "point_num": {
                                            "type": "array",
                                            "size": 2,
                                            "items": []
                                        },
                                        "rule_rect": {
                                            "type": "object",
                                            "items": {
                                                "x1": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x2": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x3": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x4": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x5": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x6": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x7": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "x8": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 704
                                                },
                                                "y1": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y2": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y3": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y4": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y5": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y6": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y7": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                },
                                                "y8": {
                                                    "type": "int32",
                                                    "min": 0,
                                                    "max": 576
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set AI > Setup > Region Exiting configuration parameters.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
channel_infoJSON objectChannel Information JSON show as follow Table 2
page_type“ChannelConfig”,
“AarmConfig”
stringIt is used to distinguish whether it is the data of the channel configuration page or the alarm configuration page, it is only required when Set
channel_maxintMaximum number of channels

Table 2

ParameterRangeTypeDescription
CH1Json ObjectJSON show as follow Table 3
Json Object
IP_CH1Json Object
Json Object
WIFI_CH1Json Object
Json Object

Table 3

ParameterRangeTypeDescription
status"Offline","Online",
“Nonsupport”
stringChannel online status, only for digital channels.
Note: When the channel is online, there is no such field
alarm_out“Local->1”…
”Local->x”
“IP_CH1->1”…
“IP_CH1->2”…
” IP_CHx->1”
” IP_CHx->2”
The number of channels depends on the capabilities of the device.
arrayAlarm output channel
Each array bit represents aalarm output channel with a string.
Camera:
Local->1: open, null value: close
latch_time"10","20","40","60"stringAlarm output time
record_enabletrue, falseboolRecording channel switching
record_channel“CH1”…”CH1x”
“IP_CH1”…”
IP_CH1x”
“WIFI_CH1”…”
arrayAlarm output channel
Channel alarm linkage switch.
post_recording"30","60","120","300"stringVideo delay time
send_emailtrue, falseboolSend Email switch
ftp_picture_uploadtrue, falseboolChannel capture FTP upload switch (for NVR only)
ftp_video_uploadtrue, falseboolChannel recording FTP upload switch (for NVR only)
picture_to_cloudtrue, falseboolPicture upload switch (for NVR only)
video_to_cloudtrue, falseboolVideo cloud upload switch (for NVR only)
full_screenboolFullScreen switch (for NVR only)
buzzer"0","10","20","40","60"stringBuzzer sounding time (for NVR only)
show_messageboolShow Message switch (for NVR only)
switchtrue, falseboolPID enable switch, false: close
true: open
detection_type"Motion"
"Pedestrian"
"Vehicle"
"Pedestrian &Vehicle"
stringDetection type, human shape and vehicle shape (normal detection type)
detection_type“Pedestrian”
"Motor Vehicle"
"Non-motorized Vehicle"
arrayDetection type, human figure, motor vehicle, non-motor vehicle (machine is not human type)
sensitivity1-100intDetection sensitivity
target_validity1-4intTarget validity
min_pixel64-1080intMinimum pixel value
max_pixel320-1080intMaximum pixel value
rule_infoJSON objectSingle-channel information JSON is as follows Table 4
point_num[min:max]arrayThe number of points drawn in the area, minimum 3 points (min), maximum 8 points (max)

Table 4

ParameterRangeTypeDescription
rule_number1ObjectRule number 1, the information JSON is displayed as follows Table 5
rule_number2ObjectRule number 2, the information JSON is displayed as follows Table 5
rule_number3ObjectRule number 3, the information JSON is displayed as follows Table 5
rule_number4ObjectRule number 4, the information JSON is displayed as follows Table 5

Table 5

ParameterRangeTypeDescription
rule_switchboolrule switch
rule_rectObjectRectangle, the information JSON is as follows Table 6
point_num[min:max]arrayThe number of points drawn in the area, minimum 3 points (min), maximum 8 points (max)

Table 6

ParameterRangeTypeDescription
x10-704shortx1 coordinate point
y10-576shorty1 coordinate point
x20-704shortx2 coordinate point
y20-576shorty2 coordinate point
x30-704shortx3 coordinate point
y30-576shorty3 coordinate point
x40-704shortx4 coordinate point
y40-576shorty4 coordinate point
x50-704shortx5 coordinate point
y50-576shorty5 coordinate point
x60-704shortx6 coordinate point
y60-576shorty6 coordinate point
x70-704shortx7 coordinate point
y70-576shorty7 coordinate point
x80-704shortx8 coordinate point
y80-576shorty8 coordinate point

Sample:

POST /API/AI/Setup/RegionExiting/Set HTTP/1.1
{
    "version": "1.0",
    "data": {
        "channel_info": {
            "CH1": {
                "switch": true,
                "sensitivity": 50,
                "max_pixel": 640,
                "min_pixel": 64,
                "target_validity": 3,
                "iva_lines": true,
                "detection_type": [],
                "rule_info": {
                    "rule_number1": {
                        "rule_switch": false,
                        "point_num": [
                            3,
                            8
                        ],
                        "rule_rect": {
                            "x1": 0,
                            "y1": 0,
                            "x2": 0,
                            "y2": 0,
                            "x3": 0,
                            "y3": 0,
                            "x4": 0,
                            "y4": 0,
                            "x5": 0,
                            "y5": 0,
                            "x6": 0,
                            "y6": 0,
                            "x7": 0,
                            "y7": 0,
                            "x8": 0,
                            "y8": 0
                        },
                        "rule_number": "rule_number1"
                    },
                    "rule_number2": {
                        "rule_switch": false,
                        "point_num": [
                            3,
                            8
                        ],
                        "rule_rect": {
                            "x1": 0,
                            "y1": 0,
                            "x2": 0,
                            "y2": 0,
                            "x3": 0,
                            "y3": 0,
                            "x4": 0,
                            "y4": 0,
                            "x5": 0,
                            "y5": 0,
                            "x6": 0,
                            "y6": 0,
                            "x7": 0,
                            "y7": 0,
                            "x8": 0,
                            "y8": 0
                        }
                    },
                    "rule_number3": {
                        "rule_switch": false,
                        "point_num": [
                            3,
                            8
                        ],
                        "rule_rect": {
                            "x1": 0,
                            "y1": 0,
                            "x2": 0,
                            "y2": 0,
                            "x3": 0,
                            "y3": 0,
                            "x4": 0,
                            "y4": 0,
                            "x5": 0,
                            "y5": 0,
                            "x6": 0,
                            "y6": 0,
                            "x7": 0,
                            "y7": 0,
                            "x8": 0,
                            "y8": 0
                        }
                    },
                    "rule_number4": {
                        "rule_switch": false,
                        "point_num": [
                            3,
                            8
                        ],
                        "rule_rect": {
                            "x1": 0,
                            "y1": 0,
                            "x2": 0,
                            "y2": 0,
                            "x3": 0,
                            "y3": 0,
                            "x4": 0,
                            "y4": 0,
                            "x5": 0,
                            "y5": 0,
                            "x6": 0,
                            "y6": 0,
                            "x7": 0,
                            "y7": 0,
                            "x8": 0,
                            "y8": 0
                        }
                    }
                },
                "chn_index": "CH1",
                "page": "chn_pid_split",
                "curPage": "chn_region_exiting",
                "rule": {
                    "rule_switch": false,
                    "point_num": [
                        3,
                        8
                    ],
                    "rule_rect": {
                        "x1": 0,
                        "y1": 0,
                        "x2": 0,
                        "y2": 0,
                        "x3": 0,
                        "y3": 0,
                        "x4": 0,
                        "y4": 0,
                        "x5": 0,
                        "y5": 0,
                        "x6": 0,
                        "y6": 0,
                        "x7": 0,
                        "y7": 0,
                        "x8": 0,
                        "y8": 0
                    },
                    "rule_number": "rule_number1"
                }
            }
        },
        "page_type": "ChannelConfig"
    }
}

Response Message

Error_Code Response

Error Information JSON (show as follow Table 7) (cloud_video_upload_chn_limit The return information attached to the error code)

Table 7

ParameterRangeTypeDescription
cloud_video_is_used0~MAX_PARA_CHN_NUMarrayThe channel number for which the cloud video upload function has been enabled
max_cloud_video_upload_numMAX_CLOUD_VIDEO_RECORD_NUMintThe maximum number of channels supported by cloud video upload

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Stationary Object Detection

Function

This API is used for get or set SOD page parameters.

URI

POST /API/AI/Setup/SOD/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range, Get, Set.

Get

Function

This API is used to get parameter for AI > Setup > Stationary Object Detection page.

Request Message

Table 1

ParameterRangeTypeDescription
channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…” WIFI_CH1x”
The number of channels depends on the capabilities of the device.
string arrayEach array bit represents a channel with a string.
DVR/NVR need;
IPC only use CH1
page_type“ChannelConfig”,
“AlarmConfig”
stringThe data used to distinguish whether it is a channel configuration page or an alarm configuration page

Sample:

POST API/AI/Setup/SOD/Get HTTP/1.1
{
    "version": "1.0",
    "data": {"page_type": "ChannelConfig"}
}

Response Message

Parameter Description

Table 2

ParameterRangeTypeDescription
channel_infoJSON objectChannel Information JSON show as follow Table Table 3
page_type“ChannelConfig”,
“AarmConfig”
stringIt is used to distinguish whether it is the data of the channel configuration page or the alarm configuration page, it is only required when setting
channel_maxintMaximum number of channels
support_copyboolWhether the page supports copy(for NVR and DVR only)

Table 3

ParameterRangeTypeDescription
CH1Json ObjectJSON show as follow Table Table 4
Json Object
IP_CH1Json Object
Json Object
WIFI_CH1Json Object
Json Object

Table 4

ParameterRangeTypeDescription
status"Offline",
"Online",
“Nonsupport”
stringChannel online status, only for digital channels.
Note: When the channel is online, there is no such field
alarm_out“Local->1”…
”Local->x”
“IP_CH1->1”…
“IP_CH1->2”…
” IP_CHx->1”
” IP_CHx->2”
The number of channels depends on the capabilities of the device.
arrayAlarm output channel
Each array bit represents aalarm output channel with a string.
Camera:Local->1: open, empty value: close
latch_time"10","20","40","60"stringAlarm output time
record_enabletrue, falseboolRecord channel switch
record_channel“CH1”…”CH1x”
“IP_CH1”…”
IP_CH1x”
“WIFI_CH1”…”
arrayAlarm output channel
Channel alarm linkage switch.
post_recording"30","60","120","300"stringVideo delay time
send_emailtrue, falseboolSend Email switch
ftp_picture_uploadtrue, falseboolChannel capture FTP upload switch (NVR dedicated)
ftp_video_uploadtrue, falseboolChannel video FTP upload switch (NVR dedicated)
picture_to_cloudtrue, falseboolPicture upload switch (NVR dedicated)
video_to_cloudtrue, falseboolVideo cloud upload switch (NVR dedicated)
full_screenboolFullScreen switch(NVR dedicated)
buzzer"0","10","20","40","60"stringBuzzer sounding time (NVR dedicated)
show_messageboolShow Message switch(NVR dedicated)
switchtrue, falseboolswitch,false: close,true: open
sensitivity1-4、0-100intDetection sensitivity
snap_mode"Default"
"RealTimeMode"
"IntervalMode"
stringScreenshot mode,IntervalMode JSON show as follow TableTable 5
min_pixel64-1080intMinimum pixel value
max_pixel320-1080intMaximum pixel value
detection_type"Pedestrian"
"Vehicle"
"Pedestrian &Vehicle"
stringDetection type, human shape and vehicle shape
detection_mode"StaticMode"
"MotionMode"
stringDetection mode
detection_range"FullScreen"
"Customize"
stringExamination range
rule_infoJSON arraySingle Channel Information JSON show as follow Table Table 5
iva_lines0:does not draw a line
1:draws a line
intWhether there will be a line in the preview and playback
copy_ch"digit""analog""wifi"stringFlags to support channel duplication(for NVR and DVR only)
schedule_enableboolSchedule mode
ptz_operation_supportbool(Ball machine use)Supports the ptz operation
sceneIndoor
Outdoor
stringscene
light_linkageboolWhite light linkage alarm
enforcerlight_linkageboolRed and blue indicator linkage alarm
siren_linkageboolAlarm sound linkage alarm
http_listeningboolhttp event push
scheduleObjectThe schedule is displayed as followsTable 8

Table 5

ParameterRangeTypeDescription
rule_number1ObjectRule number 1,Information JSON show as follow Table Table 6
rule_number2ObjectRule number 2,Information JSON show as follow Table Table 6
rule_number3ObjectRule number 3,Information JSON show as follow Table Table 6
rule_number4ObjectRule number 4,Information JSON show as follow Table Table 6

Table 6

ParameterRangeTypeDescription
rule_rectObjectEach channel has a maximum of 64 point coordinates, that is, 32 lines. If it is an accompanying line, only the first line is used. If it is a perimeter, these 8 lines are connected in turn to form a closed figure.
Information JSON show as follow Table Table 7
rule_switchboolRule switch
rule_type“Legacy”
“Lost”
“Lost&Legacy”
stringRule type

Table 7

ParameterRangeTypeDescription
x10-704shortx1 coordinate points
y10-576shorty1 coordinate points
x20-704shortx2 coordinate points
y20-576shorty2 coordinate points
x30-704shortx3 coordinate points
y30-576shorty3 coordinate points
x40-704shortx4 coordinate points
y40-576shorty4 coordinate points

Table 8

ParameterRangeTypeDescription
schedule_type"SendEmail"
"FtpPicUpload"
"CloudPicUpload"
"Record"
"AlarmOut"
"FtpVdUpload"
"CloudVdUpload"
"FloodLight"
"Siren"
"EnforcerLight"
stringSchedule type
weekObejctWeekly information such as Table 9

Table 9

ParameterRangeTypeDescription
day"Sun"
"Mon"
"Tue"
"Wed"
"Thu"
"Fri"
"Sat"
stringday
timeinttime

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {"channel_info": {"CH1": {
        "status": "Online",
        "switch": false,
        "sensitivity": 3,
        "rule_info": {
            "rule_number1": {
                "rule_switch": false,
                "rule_type": "Legacy",
                "rule_rect": {
                    "x1": 231,
                    "y1": 176,
                    "x2": 182,
                    "y2": 501,
                    "x3": 423,
                    "y3": 460,
                    "x4": 419,
                    "y4": 207
                }
            },
            "rule_number2": {
                "rule_switch": false,
                "rule_type": "Legacy",
                "rule_rect": {
                    "x1": 0,
                    "y1": 0,
                    "x2": 0,
                    "y2": 0,
                    "x3": 0,
                    "y3": 0,
                    "x4": 0,
                    "y4": 0
                }
            },
            "rule_number3": {
                "rule_switch": false,
                "rule_type": "Legacy",
                "rule_rect": {
                    "x1": 0,
                    "y1": 0,
                    "x2": 0,
                    "y2": 0,
                    "x3": 0,
                    "y3": 0,
                    "x4": 0,
                    "y4": 0
                }
            },
            "rule_number4": {
                "rule_switch": false,
                "rule_type": "Legacy",
                "rule_rect": {
                    "x1": 0,
                    "y1": 0,
                    "x2": 0,
                    "y2": 0,
                    "x3": 0,
                    "y3": 0,
                    "x4": 0,
                    "y4": 0
                }
            }
        }
    }}}
}

Error Code

See Response Messages Body and Common error_code for more information.

Range

Function

This API is used to get parameter range for AI > Setup > Stationary Object Detection page.

Request Message

See AI > Setup > Stationary Object Detection > Get > Table 1 for parameter description.

Sample:

POST /API/AI/Setup/SOD/Range HTTP/1.1
{
    "version": "1.0",
    "data": {"page_type": "ChannelConfig"}
}

esponse Message

See AI > Setup > Stationary Object Detection > Get > Parameter Description > Table 2 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_max": 1,
        "channel_info": {
            "type": "object",
            "items": {"CH1": {
                "type": "object",
                "items": {
                    "status": {
                        "description": "Only offline channel has this variable.",
                        "type": "string",
                        "mode": "r",
                        "items": [
                            "Offline",
                            "Online",
                            "Nonsupport"
                        ]
                    },
                    "switch": {"type": "bool"},
                    "sensitivity": {
                        "type": "int32",
                        "items": [
                            1,
                            2,
                            3,
                            4
                        ]
                    },
                    "rule_info": {
                        "type": "object",
                        "items": {
                            "rule_number1": {
                                "type": "object",
                                "items": {
                                    "rule_switch": {"type": "bool"},
                                    "rule_type": {
                                        "type": "string",
                                        "items": [
                                            "Legacy",
                                            "Lost",
                                            "Lost & Legacy"
                                        ]
                                    },
                                    "rule_rect": {
                                        "type": "object",
                                        "items": {
                                            "x1": {
                                                "type": "int32",
                                                "min": 0,
                                                "max": 704
                                            },
                                            "x2": {
                                                "type": "int32",
                                                "min": 0,
                                                "max": 704
                                            },
                                            "x3": {
                                                "type": "int32",
                                                "min": 0,
                                                "max": 704
                                            },
                                            "x4": {
                                                "type": "int32",
                                                "min": 0,
                                                "max": 704
                                            },
                                            "y1": {
                                                "type": "int32",
                                                "min": 0,
                                                "max": 576
                                            },
                                            "y2": {
                                                "type": "int32",
                                                "min": 0,
                                                "max": 576
                                            },
                                            "y3": {
                                                "type": "int32",
                                                "min": 0,
                                                "max": 576
                                            },
                                            "y4": {
                                                "type": "int32",
                                                "min": 0,
                                                "max": 576
                                            }
                                        }
                                    }
                                }
                            },
                            "rule_number2": {
                                "type": "object",
                                "items": {
                                    "rule_switch": {"type": "bool"},
                                    "rule_type": {
                                        "type": "string",
                                        "items": [
                                            "Legacy",
                                            "Lost",
                                            "Lost & Legacy"
                                        ]
                                    },
                                    "rule_rect": {
                                        "type": "object",
                                        "items": {
                                            "x1": {
                                                "type": "int32",
                                                "min": 0,
                                                "max": 704
                                            },
                                            "x2": {
                                                "type": "int32",
                                                "min": 0,
                                                "max": 704
                                            },
                                            "x3": {
                                                "type": "int32",
                                                "min": 0,
                                                "max": 704
                                            },
                                            "x4": {
                                                "type": "int32",
                                                "min": 0,
                                                "max": 704
                                            },
                                            "y1": {
                                                "type": "int32",
                                                "min": 0,
                                                "max": 576
                                            },
                                            "y2": {
                                                "type": "int32",
                                                "min": 0,
                                                "max": 576
                                            },
                                            "y3": {
                                                "type": "int32",
                                                "min": 0,
                                                "max": 576
                                            },
                                            "y4": {
                                                "type": "int32",
                                                "min": 0,
                                                "max": 576
                                            }
                                        }
                                    }
                                }
                            },
                            "rule_number3": {
                                "type": "object",
                                "items": {
                                    "rule_switch": {"type": "bool"},
                                    "rule_type": {
                                        "type": "string",
                                        "items": [
                                            "Legacy",
                                            "Lost",
                                            "Lost & Legacy"
                                        ]
                                    },
                                    "rule_rect": {
                                        "type": "object",
                                        "items": {
                                            "x1": {
                                                "type": "int32",
                                                "min": 0,
                                                "max": 704
                                            },
                                            "x2": {
                                                "type": "int32",
                                                "min": 0,
                                                "max": 704
                                            },
                                            "x3": {
                                                "type": "int32",
                                                "min": 0,
                                                "max": 704
                                            },
                                            "x4": {
                                                "type": "int32",
                                                "min": 0,
                                                "max": 704
                                            },
                                            "y1": {
                                                "type": "int32",
                                                "min": 0,
                                                "max": 576
                                            },
                                            "y2": {
                                                "type": "int32",
                                                "min": 0,
                                                "max": 576
                                            },
                                            "y3": {
                                                "type": "int32",
                                                "min": 0,
                                                "max": 576
                                            },
                                            "y4": {
                                                "type": "int32",
                                                "min": 0,
                                                "max": 576
                                            }
                                        }
                                    }
                                }
                            },
                            "rule_number4": {
                                "type": "object",
                                "items": {
                                    "rule_switch": {"type": "bool"},
                                    "rule_type": {
                                        "type": "string",
                                        "items": [
                                            "Legacy",
                                            "Lost",
                                            "Lost & Legacy"
                                        ]
                                    },
                                    "rule_rect": {
                                        "type": "object",
                                        "items": {
                                            "x1": {
                                                "type": "int32",
                                                "min": 0,
                                                "max": 704
                                            },
                                            "x2": {
                                                "type": "int32",
                                                "min": 0,
                                                "max": 704
                                            },
                                            "x3": {
                                                "type": "int32",
                                                "min": 0,
                                                "max": 704
                                            },
                                            "x4": {
                                                "type": "int32",
                                                "min": 0,
                                                "max": 704
                                            },
                                            "y1": {
                                                "type": "int32",
                                                "min": 0,
                                                "max": 576
                                            },
                                            "y2": {
                                                "type": "int32",
                                                "min": 0,
                                                "max": 576
                                            },
                                            "y3": {
                                                "type": "int32",
                                                "min": 0,
                                                "max": 576
                                            },
                                            "y4": {
                                                "type": "int32",
                                                "min": 0,
                                                "max": 576
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }}
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set parameter for AI > Setup > Stationary Object Detection page.

Request Message

See AI > Setup > Stationary Object Detection > Get > Parameter Description > Table 2 for parameter description.

Sample:

POST API/AI/Setup/SOD/Set HTTP/1.1
{
    "version": "1.0",
    "data": {
        "channel_info": {"CH1": {
            "status": "Online",
            "switch": false,
            "sensitivity": 3,
            "rule_info": {
                "rule_number1": {
                    "rule_switch": false,
                    "rule_type": "Legacy",
                    "rule_rect": {
                        "x1": 231,
                        "y1": 176,
                        "x2": 182,
                        "y2": 501,
                        "x3": 423,
                        "y3": 460,
                        "x4": 419,
                        "y4": 207
                    },
                    "rule_number": "rule_number1"
                },
                "rule_number2": {
                    "rule_switch": false,
                    "rule_type": "Legacy",
                    "rule_rect": {
                        "x1": 0,
                        "y1": 0,
                        "x2": 0,
                        "y2": 0,
                        "x3": 0,
                        "y3": 0,
                        "x4": 0,
                        "y4": 0
                    }
                },
                "rule_number3": {
                    "rule_switch": false,
                    "rule_type": "Legacy",
                    "rule_rect": {
                        "x1": 0,
                        "y1": 0,
                        "x2": 0,
                        "y2": 0,
                        "x3": 0,
                        "y3": 0,
                        "x4": 0,
                        "y4": 0
                    }
                },
                "rule_number4": {
                    "rule_switch": false,
                    "rule_type": "Legacy",
                    "rule_rect": {
                        "x1": 0,
                        "y1": 0,
                        "x2": 0,
                        "y2": 0,
                        "x3": 0,
                        "y3": 0,
                        "x4": 0,
                        "y4": 0
                    }
                }
            },
            "chn_index": "CH1",
            "page": "chn_sod",
            "rule": {
                "rule_switch": false,
                "rule_type": "Legacy",
                "rule_rect": {
                    "x1": 231,
                    "y1": 176,
                    "x2": 182,
                    "y2": 501,
                    "x3": 423,
                    "y3": 460,
                    "x4": 419,
                    "y4": 207
                },
                "rule_number": "rule_number1"
            }
        }},
        "page_type": "ChannelConfig"
    }
}

Response Message

Error_Code Response

Error Information JSON(show as follow Table AI > Setup > Stationary Object Detection > Set > Error_Code Response > Table 1)(cloud_video_upload_chn_limit the return information attached to the error code)

Table 1

ParameterRangeTypeDescription
cloud_video_is_used0~MAX_PARA_CHN_NUMarrayThe channel number for which the cloud video upload function has been enabled
max_cloud_video_upload_numMAX_CLOUD_VIDEO_RECORD_NUMintThe maximum number of channels supported by cloud video upload
analog_channel_is_used0~MAX_ANALOG_CHNarrayThe number of the analog channel with the smart switch turned on
max_intelligent_analog_channel_num1intThe maximum number of analog channels supported by the smart switch

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Snaped face or object

Function

Used to obtain AI > Snaped face or object alarm real-time appeal.

URI

POST /API/AI/processAlarm/{Action}

Table 1 describes the parameters.

parameter-description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Get.

Get

Function

This API is used to get AI > Snaped face or object alarm real-time appeal.

Request Message

None.

Sample:

POST /API/AI/processAlarm/Get HTTP/1.1
{}

Response Message

Parameter Description

Table 1

ParameterRangeTypeDescription
FaceInfoJSON arrayFaceInfo JSON show as follow Table 2
SnapedObjInfoJSON arraySnapedObjInfoJSON show as follow Table 3

Table 2

ParameterRangeTypeDescription
IdintFace Id, unique identification (nvr only)
GrpIdintGroup Id (nvr only)
SnapIdunsigned intThe Id of the picture when the front-end IPC captures
Type0intTypes of face capture objects
StartTimeunsigned long longSnapshot start time, such as: 2018-10-25 13:08:36, Unix timestamp (displayed according to UTC time zone uniformly)
EndTimeunsigned long longThe capture end time, such as: 2018-10-25 13:08:46, Unix timestamp (when displayed, it will be displayed uniformly in UTC time zone)
SimilarityfloatSimilarity, such as: 93.56932 (for nvr only)
ScoreintImage score (confidence) (nvr only)
SexintGender: 0-male, 1-female
AgeintAge
GenderintFace attribute gender: 0-male, 1-female
fAttrAgeintface attribute age
BeautyintBeauty
GlassesTypeintGlasses type, 0: no glasses, 1: wear glasses (currently there is no distinction between sunglasses and ordinary glasses, all glasses are defaulted)
ExpressionintExpression type, 0: no expression, 1: smiling, 2: laughing
MouthMaskintWhether to wear a mask, 0: no mask, 1: with a mask
RaceintRace, 0: Yellow, 1: Caucasian, 2: Black, 3: Arab
ChnintChannel
StrChn“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…” WIFI_CH1x”
The number of channels depends on the capabilities of the device.
stringChannel
ModifyCntintThe number of revisions, the upper layer is read-only, and is updated in real time by the device every time the face information is modified (nvr only)
Image1"base64(imgData)"stringImported face pictures
Image2"base64(imgData)"stringCapture face pictures
Image3"base64(imgData)"stringCapture human body pictures
Image4"base64(imgData)"stringCapture background image
Feature"base64(feature)"stringEigenvalues (nvr only)
Name"Mike"stringName (for nvr only)
Country"China"stringNationality (nvr only)
Nation"Han"stringEthnic (nvr only)
NativePlace"Guangdong,Zhuhai"stringHometown (nvr only)
IdCode"415025199203050916"stringID card (nvr only)
Job"Software"stringwork (nvr only)
Phone"12345678902"stringPhone (nvr only)
Email"abcd@163.com"stringMail (for nvr only)
Domicile"Guangdong,Zhuhai,Xiangzhou ..."stringCurrent residence (nvr only)
Remark"Detail of this person ..."stringEvaluation (for nvr only)

Table 3

ParameterRangeTypeDescription
chnstringChannel
StrChn“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…” WIFI_CH1x”
The number of channels depends on the capabilities of the device.
stringChannel
GrpIdintGroupId
StartTimeunsigned long longSnapshot start time, such as: 2018-10-25 13:08:36, Unix timestamp (displayed according to UTC time zone uniformly)
EndTimeunsigned long longThe capture end time, such as: 2018-10-25 13:08:46, Unix timestamp (when displayed, it will be displayed uniformly in UTC time zone)
ObjectImage"base64(imgData)"stringImported face pictures
Background"base64(imgData)"stringCapture face pictures
SnapIdunsigned intThe Id of the picture when the front-end IPC captures
TypeintTypes of captured objects, such as: 0-face, 1-figure, 2-vehicle, 3-PID figure, 4-PID vehicle, 5-LCD figure, 6-LCD vehicle

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"data": {
		"FaceInfo":[
			{
				"Id": 1,
				"GrpId": 1,
				"SnapId": 1250,
				"StartTime": 1540444116,
				"EndTime": 1540444126,
				"Similarity": 93.56932,
				"Score": 87,
				"Gender": 0,
				"fAttrAge": 26,
				"Chn": "CH1",
				"ModifyCnt": 0,
				"Image1": "base64(imgData)",
				"Image2": "base64(imgData)",
				"Image3": "base64(imgData)",
				"Image4": "base64(imgData)",
				"Feature": "base64(feature)",
				"Name": "Mike",
				"Country": "China",
				"Nation": "Han",
				"NativePlace": "Guangdong,Zhuhai",
				"IdCode": "415025199203050916",
				"Job": "Software",
				"Phone": "12345678902",
				"Email": "abcd@163.com",
				"Domicile": "Guangdong,Zhuhai,Xiangzhou ...",
				"Remark": "Detail of this person ..."
			},
		],"SnapedObjInfo":[
			{
				"Chn": "CH1",
				"StartTime": 1540444116,
				"EndTime": 1540444137,
				"ObjectImage": "base64(imgData)",
				"Background": "base64(imgData)",
				"SnapId": 2375,
				"Type": 1
			}
		]
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Cross Counting Statistics

Function

This API is used to get CC statistics and set CCt parameters.

URI

POST /API/AI/CCStatistics/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including GetSetRangeSearch

Get

Function

This API is used to get CC statistics.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…” WIFI_CH1x”
The number of channels depends on the capabilities of the device.
string arrayEach array bit represents a channel with a string.
DVR/NVR need;
IPC only use CH1

Sample:

POST API/AI/CCStatistics/Get HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

See AI > Statistics > Cross Counting Statistics > Set > Parameter Description > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {"channel_info": {"CH1": {
        "search_date": "2023-07-19",
        "ai_cross_count": true,
        "report_type": "Daily report",
        "detection_type": "Motion",
        "cross_type": "Cross In"
    }}}
}

Error Code

See Response Messages Body and Common error_code for more information.

Range

Function

This API is used to get parameter for AI > Statistics > Cross Counting Statistics page.

Request Message

Sample:

POST API/AI/CCStatistics/Range HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

See AI > Statistics > Cross Counting Statistics > Set > Parameter Description > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_max": 1,
        "channel_info": {
            "type": "object",
            "items": {"CH1": {
                "type": "object",
                "items": {
                    "status": {
                        "description": "Only offline channel has this variable.",
                        "type": "string",
                        "mode": "r",
                        "items": [
                            "Offline",
                            "Online",
                            "Notsupport"
                        ]
                    },
                    "search_date": {
                        "type": "string",
                        "len": 10
                    },
                    "report_type": {
                        "type": "string",
                        "items": [
                            "Daily report",
                            "Weekly report",
                            "Monthly report",
                            "Annual report"
                        ]
                    },
                    "detection_type": {
                        "type": "string",
                        "items": [
                            "Motion",
                            "Person",
                            "Vehicle",
                            "Non-Vehicle"
                        ]
                    },
                    "cross_type": {
                        "type": "string",
                        "items": [
                            "Cross In",
                            "Cross Out"
                        ]
                    },
                    "column_chart": {"type": "bool"},
                    "line_chart": {"type": "bool"},
                    "ai_cross_count": {"type": "bool"}
                }
            }}
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set CCt parameters.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
channel_infoJSON arraySingle Channel Information JSON show as follow Table Table 2
channel_maxintMaximum number of channels

Table 2

ParameterRangeTypeDescription
CH1Json ObjectWhen the URL is a Get request JSON show as follow Table Table 3
When the URL is a Get request JSON show as follow Table Table 4
Json Object
IP_CH1Json Object
Json Object
WIFI_CH1Json Object
Json Object

Table 3

ParameterRangeTypeDescription
status"Offline","Online",“Nonsupport”stringChannel online status, only for digital channels. Note: When the channel is online, there is no such field.
search_datestringQuery date
detection_type"Motion"
"Person"
"Vehicle"
"Non-Vehicle"
stringDetection type
cross_type"Cross In""Cross Out"stringWay to cross the line
ai_cross_countboolDistinguish between first-generation and second-generation CCs, here the default is true

Table 4

ParameterRangeTypeDescription
status"Offline","Online",“Nonsupport”stringChannel online status, only for digital channels. Note: When the channel is online, there is no such field
reportint arrayNumber of people crossing the line

Sample:

POST API/AI/FCCStatistics/Set HTTP/1.1
{
    "version": "1.0",
    "data": {"channel_info": {"CH1": {
        "search_date": "2023-07-20",
        "report_type": "Daily report",
        "cross_type": "Cross In",
        "detection_type": "Motion"
    }}}
}

Response Message

See AI > Statistics > Cross Counting Statistics > Set > Parameter Description > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {"channel_info": {"CH1": {"report": [
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        3,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0
    ]}}}
}

Error Code

See Response Messages Body and Common error_code for more information.

Search

Function

This API is used to search CC statistics.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
MsgIdnull
Engine0intWhich search engine to use, 0 or 1, used in conjunction with the search interface
StartTimestringStart time like:"2020-07-12 00:00:00"
EndTimestringEnd time such as:"2020-07-12 23:59:59"
Chn[0, 1, 2, 3, 4, 5, 6, 7, 8]arrayThe channel to search, the value represents the channel
Group[1, 2, 5, 9, 13….]arrayThe group to search, the value represents the group Id of the selected group, if it is empty, search all (including deleted groups)

Sample:

POST API/AI/CCStatistics/Search HTTP/1.1
{
    "version": "1.0",
    "data": {
        "MsgId": "",
        "Engine": 1,
        "StartTime": "2023-07-20  00:00:00",
        "EndTime": "2023-07-20  23:59:59",
        "Chn": [0],
        "Group": [
            2,
            3,
            4
        ]
    }
}

Response Message

Parameter Description

See Table 1

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{"data": {
    "MsgId": "",
    "Result": 0,
    "Count": 0,
    "channel_max": 1
}}

Error Code

See Response Messages Body and Common error_code for more information.

Face Search

Function

This API is used to get or search face statistics.

URI

POST /API/AI/FaceStatistics/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including SearchGet

Get

Function

This API is used to get face statistics.

Request Message

Table 1

ParameterRangeTypeDescription
MsgIdnull
Engine0intWhich search engine to use, 0 or 1, used with the search interface
StartIndex0intThe starting index of the request, for example, the first time: 0-9999, the second time: 10000-19999, then the StartIndex is 0, 10000 respectively
CountintThe number of pieces of face statistical information requested

Sample:

POST API/AI/FaceStatistics/Get HTTP/1.1
{
	"version":"1.0",
	"data": {
		"MsgId": null,
		"Engine": 0,		
		"StartIndex": 0,
		"Count": 10000 
	}
}

Response Message

Parameter Description

Table 2

ParameterRangeTypeDescription
MsgIdnull
Result0intSee the results AI > Face search > Search >Table 3
channel_maxintMaximum number of channels
CountintTotal number of objects for this response
StatisticsarrayFace statistics JSON (show as follow TableTable 3)

Table 3

ParameterRangeTypeDescription
GroupintThe group ID to which the face belongs
Timeunsigned long longUnix timestamp such as: 1540444116(When displaying, it will be displayed uniformly according to the UTC time zone, such as: 2020-07-12 00:00:00)
ChnintThe channel to which the face belongs
StrChn“CH1”…”CH1x”
The number of channels depends on the capabilities of the device.
stringThe channel to which the face belongs

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"data": {
		"MsgId": null,
		"Result": 0,	
		"Count": 10000,	
		"Statistics": [
			{
				"Group": 1,	
				"Time": 1540444116, 
				"Chn": 3,
				"StrChn":"CH4",
			},
			{
				"Group": 3,			
				"Time": 1540444119, 
				"Chn": 4,
				"StrChn":"CH5",
			},
			{
				...
			},
			...
		]
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Search

Function

This API is used to search face statistics。

Request Message

Table 1

ParameterRangeTypeDescription
MsgIdnull
Engine0intWhich search engine to use, 0 or 1, used in conjunction with the search interface
StartTimestringStart time like:"2020-07-12 00:00:00"
EndTimestringEnd time such as:"2020-07-12 23:59:59"
Chn[0, 1, 2, 3, 4, 5, 6, 7, 8]arrayThe channel to search, the value represents the channel
Group[1, 2, 5, 9, 13….]arrayThe group to search, the value represents the group Id of the selected group, if it is empty, search all (including deleted groups)

Sample:

POST API/AI/FaceStatistics/Search HTTP/1.1
{
	"version":"1.0",
	"data": {
		"MsgId": null,
		"Engine": 0,				
		"StartTime": "2018-10-20 00:00:00",
		"EndTime": "2018-10-28 23:59:59",
		"Chn": [0, 1, 2, 3, 4, 5, 6, 7, 8],  
		"Group": [1, 2, 5, 9, 13] 
	}
}

Response Message

Parameter Description

Table 2

ParameterRangeTypeDescription
MsgIdnull
Result0intFace statistical information search, see the results Table 3
channel_maxintMaximum number of channels
CountintThe actual number of face statistical information

Table 3

Result TypeCOMMENT
AORT_SUCCESS = 0Success
AORT_NO_DB = -1No database
AORT_DB_EXEC_FAILED = -2Database execution failed
AORT_CALC_FEATURE_FAILED = -3Feature extraction failed
AORT_CANCELED = -4Cancelled
AORT_NO_DISK = -5No hard drive
AORT_DISK_ERROR = -6Hard disk error
AORT_EXIST = -7Existed
AORT_GROUP_INVALID = -8Group invalid
AORT_NOT_EXIST = -9Does not exist
AORT_MORE_FILE_EXIST = -10File already exists
AORT_SEARCH_ERROR = -11Search error
AORT_OVER_MAX_COUNT = -12Limit exceeded
AORT_UPDATING_FEATURE = -13Updating feature values
AORT_NO_USABLE_IPC = -14No IPC available for eigenvalue calculation
AORT_INVALID_PARAM = -15Invalid parameter
AORT_INVALID_FORMAT = -16Wrong format
AORT_INVALID_RES = -17Wrong resolution
AORT_INVALID_MEM = -18File too large error
AORT_CREAT_FAILED = -19Creation failed
AORT_MD5_NOT_MATCH = -20MD5 mismatch
AORT_POS_ERROR = -21Location error
AORT_SIZE_ERROR = -22Wrong size
AORT_NOT_READY = -23Not ready
AORT_INVALID_DB = -24Invalid database

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "data": {
        "MsgId": null,
        "Result": 0,
        "Count": 160000
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Heat Map Statistics

Function

This API is used to get heat map statistics or set alarm attribute detection parameters.

URI

POST /API/AI/HeatMapStatistics/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including GetSet,Range,Search.

Get

Function

This API is used to get Heat Map statistics.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…” WIFI_CH1x”
The number of channels depends on the capabilities of the device.
string arrayEach array bit represents a channel with a string.
DVR/NVR need;
IPC only use CH1

Sample:

POST API/AI/HeatMapStatistics/Get HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

See AI >Statistics > Heat Map Statistics > Get > Parameter Description > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {"channel_info": {"CH1": {
        "date": "2023-07-20",
        "start_hour": 0,
        "end_hour": 23,
        "report_type": "Daily report",
        "detection_type": "Motion",
        "heat_map_type": 1
    }}}
}

Error Code

See Response Messages Body and Common error_code for more information.

Range

Function

This API is used to get parameter range for AI >Statistics > Heat Map Statistics page.

Request Message

Sample:

POST API/AI/HeatMapStatistics/Get HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

See AI >Statistics > Heat Map Statistics > Set > Parameter Description > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_max": 1,
        "channel_info": {
            "type": "object",
            "items": {"CH1": {
                "type": "object",
                "items": {
                    "status": {
                        "description": "Only offline channel has this variable.",
                        "type": "string",
                        "mode": "r",
                        "items": [
                            "Offline",
                            "Online",
                            "Notsupport"
                        ]
                    },
                    "date": {
                        "type": "string",
                        "len": 10
                    },
                    "report_type": {
                        "type": "string",
                        "items": [
                            "Daily report",
                            "Weekly report",
                            "Monthly report",
                            "Annual report"
                        ]
                    },
                    "start_hour": {
                        "type": "int32",
                        "min": 0,
                        "max": 23
                    },
                    "end_hour": {
                        "type": "int32",
                        "min": 0,
                        "max": 23
                    },
                    "detection_type": {
                        "type": "string",
                        "items": [
                            "Motion",
                            "face"
                        ]
                    }
                }
            }}
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set alarm attribute detection parameters.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
channel_infoJSON arraySingle Channel Information JSON show as follow Table Table 2
channel_maxintMaximum number of channels

Table 2

ParameterRangeTypeDescription
CH1Json ObjectWhen the URL is a Get request, the JSON is displayed in the following table Table 3
When the URL is a Set request, the JSON is displayed in the following table Table 4
Json Object
IP_CH1Json Object
Json Object
WIFI_CH1Json Object
Json Object

Table 3

ParameterRangeTypeDescription
status"Offline","Online",“Nonsupport”stringChannel online status, only for digital channels. Note: When the channel is online, there is no such field
datestringQuery date
start_hour0 - 23intStart hour, valid when reportType is "Daily report"
end_hour0 - 23intEnd hour, valid when reportType is "Daily report"
report_type"Daily report"
"Weekly report"
"Monthly report"
"Annual report"
stringReport type
detection_type"Motion" "face"stringDetection type
heat_map_typeintRequest display mode, 1- request space heat map, 0- request time heat map

Table 4

ParameterRangeTypeDescription
status"Offline","Online",“Nonsupport”stringChannel online status, only for digital channels. Note: When the channel is online, there is no such field
report_type"Daily report"
"Weekly report"
"Monthly report"
"Annual report"
stringReport type
detection_type"Motion" "face"stringDetection type
heat_map_typeintRequest display mode, 1- request space heat map, 0- request time heat map
time_heat_map0 - 31int arrayTime heat map data, valid when heat_map_type is 0
heat_map_width0 - 44intSpatial heat map width, valid when heat_map_type is 1
heat_map_height0 - 36intSpatial heat map height, valid when heat_map_type is 1
space_heat_map0 - 1583int arraySpatial heat map data (unsigned char gray value), valid when heat_map_type is 1
backgroundstringThe background image of the spatial heat map in jpg format, valid when heat_map_type is 1

Sample:

POST API/AI/HeatMapStatistics/Set HTTP/1.1
{
    "version": "1.0",
    "data": {"channel_info": {"CH1": {
        "date": "2023-07-20",
        "report_type": "Daily report",
        "start_hour": 0,
        "end_hour": 23,
        "detection_type": "Motion",
        "heat_map_type": 1
    }}}
}

Response Message

See AI >Statistics > Heat Map Statistics > Set > Parameter Description > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {"channel_info": {"CH1": {
        "report_type": "Daily report",
        "detection_type": "Motion",
        "heat_map_type": 1,
        "heat_map_width": 44,
        "heat_map_height": 36,
        "space_heat_map": [
            63,
            64,
            67,
            71,
            74,
            74,
            74,
            69,
            61,
            52,
            44,
            35,
            32,
            31,
            32,
            36,
            43,
            53,
            62,
            69,
            77,
            86,
            90,
            93,
            97,
            100,
            97,
            101,
            104,
            104,
            103,
            105,
            106,
            111,
            119,
            126,
            130,
            124,
            118,
            113,
            103,
            92,
            89,
            89,
            64,
            64,
            66,
            71,
            73,
            73,
            73,
            68,
            59,
            51,
            43,
            34,
            30,
            30,
            32,
            36,
            43,
            54,
            64,
            72,
            80,
            88,
            91,
            93,
            97,
            99,
            97,
            101,
            104,
            105,
            104,
            106,
            107,
            112,
            119,
            125,
            126,
            120,
            114,
            109,
            100,
            93,
            89,
            90,
            63,
            64,
            65,
            70,
            72,
            72,
            71,
            66,
            57,
            48,
            40,
            33,
            30,
            30,
            32,
            36,
            45,
            57,
            69,
            80,
            89,
            95,
            96,
            97,
            98,
            100,
            99,
            103,
            106,
            108,
            108,
            110,
            112,
            115,
            120,
            126,
            126,
            121,
            116,
            113,
            107,
            102,
            100,
            103,
            63,
            64,
            67,
            71,
            73,
            72,
            69,
            63,
            54,
            45,
            37,
            31,
            29,
            30,
            32,
            38,
            48,
            61,
            75,
            89,
            100,
            105,
            107,
            107,
            106,
            107,
            107,
            110,
            113,
            114,
            115,
            116,
            118,
            119,
            121,
            123,
            123,
            118,
            114,
            115,
            111,
            108,
            107,
            111,
            63,
            63,
            67,
            72,
            73,
            73,
            69,
            62,
            52,
            44,
            36,
            32,
            31,
            32,
            36,
            43,
            54,
            67,
            81,
            96,
            106,
            112,
            113,
            113,
            111,
            111,
            111,
            113,
            115,
            117,
            118,
            119,
            122,
            122,
            122,
            122,
            120,
            116,
            113,
            115,
            115,
            113,
            113,
            118,
            63,
            64,
            69,
            74,
            75,
            74,
            68,
            59,
            50,
            43,
            36,
            34,
            35,
            38,
            42,
            51,
            61,
            73,
            87,
            102,
            110,
            114,
            115,
            115,
            113,
            114,
            116,
            117,
            119,
            119,
            119,
            120,
            121,
            121,
            120,
            119,
            117,
            116,
            114,
            117,
            120,
            120,
            119,
            124,
            62,
            65,
            71,
            76,
            78,
            77,
            69,
            59,
            50,
            42,
            38,
            38,
            40,
            45,
            50,
            59,
            69,
            80,
            93,
            106,
            111,
            116,
            118,
            117,
            117,
            119,
            120,
            120,
            121,
            120,
            121,
            122,
            123,
            123,
            122,
            119,
            118,
            119,
            120,
            122,
            126,
            124,
            123,
            124,
            63,
            67,
            74,
            80,
            82,
            80,
            70,
            59,
            49,
            42,
            39,
            41,
            45,
            49,
            55,
            66,
            74,
            85,
            97,
            108,
            110,
            116,
            117,
            118,
            120,
            123,
            123,
            123,
            122,
            120,
            123,
            125,
            127,
            128,
            127,
            123,
            123,
            126,
            126,
            126,
            127,
            123,
            120,
            118,
            65,
            69,
            76,
            82,
            83,
            80,
            69,
            57,
            48,
            42,
            40,
            43,
            48,
            53,
            60,
            70,
            78,
            88,
            98,
            106,
            107,
            112,
            114,
            118,
            123,
            126,
            126,
            125,
            122,
            120,
            123,
            127,
            130,
            132,
            131,
            128,
            129,
            131,
            133,
            131,
            131,
            125,
            120,
            118,
            67,
            73,
            79,
            83,
            83,
            78,
            65,
            54,
            46,
            41,
            42,
            45,
            50,
            55,
            63,
            71,
            81,
            91,
            99,
            105,
            107,
            109,
            111,
            116,
            121,
            125,
            127,
            126,
            123,
            123,
            126,
            129,
            132,
            135,
            134,
            132,
            134,
            136,
            137,
            136,
            133,
            130,
            125,
            124,
            70,
            75,
            80,
            83,
            81,
            75,
            61,
            51,
            44,
            41,
            43,
            47,
            52,
            57,
            65,
            73,
            83,
            92,
            100,
            104,
            106,
            108,
            113,
            118,
            123,
            128,
            130,
            128,
            126,
            126,
            129,
            131,
            133,
            135,
            134,
            132,
            132,
            134,
            134,
            134,
            131,
            130,
            127,
            126,
            72,
            77,
            82,
            84,
            80,
            71,
            57,
            46,
            42,
            41,
            44,
            48,
            53,
            59,
            65,
            73,
            82,
            91,
            97,
            101,
            104,
            107,
            112,
            117,
            122,
            127,
            130,
            129,
            127,
            127,
            128,
            130,
            131,
            133,
            133,
            131,
            133,
            134,
            134,
            134,
            131,
            133,
            130,
            132,
            72,
            76,
            79,
            80,
            75,
            66,
            53,
            44,
            41,
            43,
            47,
            51,
            56,
            62,
            67,
            74,
            83,
            90,
            96,
            100,
            105,
            108,
            114,
            119,
            122,
            126,
            129,
            128,
            127,
            127,
            126,
            127,
            129,
            131,
            132,
            131,
            133,
            134,
            134,
            134,
            132,
            137,
            136,
            137,
            67,
            70,
            74,
            75,
            71,
            62,
            50,
            43,
            41,
            44,
            49,
            54,
            61,
            66,
            71,
            77,
            85,
            91,
            98,
            102,
            107,
            111,
            115,
            118,
            120,
            124,
            125,
            125,
            126,
            126,
            125,
            125,
            126,
            127,
            129,
            128,
            130,
            132,
            133,
            135,
            135,
            140,
            140,
            142,
            63,
            64,
            68,
            70,
            67,
            58,
            50,
            42,
            41,
            45,
            50,
            55,
            62,
            66,
            72,
            79,
            86,
            93,
            100,
            105,
            110,
            116,
            119,
            120,
            121,
            123,
            122,
            123,
            124,
            123,
            122,
            121,
            122,
            123,
            124,
            124,
            128,
            131,
            133,
            135,
            135,
            141,
            141,
            142,
            58,
            58,
            62,
            66,
            64,
            57,
            51,
            45,
            43,
            46,
            51,
            57,
            63,
            66,
            72,
            79,
            86,
            94,
            102,
            107,
            111,
            117,
            118,
            120,
            120,
            122,
            119,
            121,
            122,
            122,
            121,
            119,
            119,
            120,
            121,
            122,
            126,
            130,
            132,
            137,
            143,
            150,
            155,
            156,
            55,
            55,
            58,
            61,
            60,
            55,
            51,
            47,
            45,
            47,
            52,
            58,
            64,
            67,
            76,
            82,
            89,
            97,
            103,
            107,
            111,
            117,
            120,
            123,
            124,
            125,
            123,
            123,
            125,
            123,
            123,
            120,
            118,
            119,
            119,
            121,
            126,
            130,
            132,
            137,
            149,
            158,
            169,
            171,
            52,
            53,
            55,
            58,
            57,
            54,
            51,
            48,
            47,
            48,
            52,
            58,
            62,
            67,
            79,
            85,
            92,
            99,
            103,
            106,
            111,
            119,
            123,
            126,
            126,
            128,
            125,
            125,
            127,
            125,
            124,
            122,
            122,
            122,
            124,
            125,
            129,
            133,
            136,
            142,
            156,
            167,
            180,
            182,
            51,
            52,
            54,
            56,
            56,
            54,
            51,
            49,
            48,
            50,
            55,
            59,
            61,
            68,
            78,
            82,
            89,
            97,
            99,
            104,
            111,
            119,
            125,
            129,
            129,
            131,
            128,
            128,
            128,
            127,
            127,
            129,
            129,
            131,
            132,
            133,
            135,
            137,
            140,
            144,
            158,
            170,
            184,
            186,
            50,
            51,
            53,
            56,
            56,
            54,
            52,
            51,
            52,
            54,
            59,
            63,
            64,
            72,
            80,
            82,
            87,
            94,
            94,
            100,
            107,
            116,
            124,
            130,
            132,
            136,
            133,
            132,
            132,
            132,
            133,
            137,
            139,
            139,
            141,
            140,
            140,
            140,
            143,
            146,
            162,
            176,
            192,
            195,
            49,
            49,
            51,
            54,
            54,
            53,
            53,
            53,
            54,
            58,
            63,
            65,
            66,
            74,
            80,
            81,
            86,
            91,
            92,
            97,
            105,
            114,
            123,
            131,
            135,
            141,
            138,
            138,
            139,
            141,
            144,
            149,
            153,
            150,
            150,
            146,
            145,
            143,
            146,
            148,
            162,
            176,
            190,
            193,
            47,
            47,
            49,
            53,
            54,
            54,
            55,
            57,
            59,
            63,
            67,
            69,
            70,
            76,
            78,
            80,
            82,
            86,
            87,
            93,
            100,
            111,
            121,
            131,
            138,
            145,
            144,
            145,
            146,
            150,
            154,
            160,
            162,
            159,
            155,
            150,
            147,
            145,
            148,
            153,
            167,
            180,
            193,
            197,
            44,
            45,
            48,
            53,
            55,
            57,
            59,
            61,
            64,
            69,
            72,
            73,
            74,
            78,
            76,
            77,
            78,
            80,
            83,
            89,
            95,
            105,
            117,
            129,
            141,
            149,
            152,
            154,
            155,
            161,
            165,
            169,
            169,
            164,
            156,
            150,
            145,
            143,
            147,
            154,
            170,
            182,
            195,
            200,
            50,
            51,
            55,
            59,
            62,
            64,
            67,
            68,
            71,
            74,
            73,
            75,
            76,
            78,
            79,
            80,
            79,
            79,
            81,
            85,
            90,
            101,
            115,
            130,
            143,
            153,
            159,
            162,
            165,
            171,
            175,
            175,
            173,
            167,
            158,
            150,
            145,
            146,
            152,
            163,
            181,
            190,
            201,
            208,
            58,
            59,
            64,
            72,
            76,
            79,
            80,
            79,
            78,
            78,
            75,
            76,
            78,
            79,
            82,
            84,
            83,
            81,
            81,
            83,
            88,
            98,
            112,
            127,
            140,
            150,
            158,
            165,
            170,
            177,
            180,
            179,
            174,
            168,
            158,
            151,
            147,
            151,
            161,
            177,
            195,
            196,
            202,
            206,
            68,
            69,
            74,
            84,
            88,
            90,
            89,
            87,
            83,
            80,
            75,
            77,
            79,
            81,
            86,
            87,
            85,
            82,
            80,
            81,
            86,
            95,
            110,
            126,
            138,
            148,
            157,
            164,
            170,
            174,
            174,
            174,
            167,
            161,
            155,
            151,
            147,
            154,
            169,
            188,
            207,
            204,
            207,
            208,
            77,
            79,
            84,
            95,
            98,
            101,
            98,
            94,
            87,
            82,
            76,
            78,
            79,
            81,
            87,
            87,
            85,
            83,
            79,
            79,
            85,
            94,
            109,
            124,
            136,
            145,
            151,
            157,
            165,
            167,
            167,
            169,
            165,
            158,
            156,
            153,
            152,
            161,
            183,
            202,
            218,
            208,
            205,
            200,
            86,
            87,
            92,
            105,
            108,
            109,
            104,
            98,
            88,
            81,
            75,
            78,
            79,
            81,
            87,
            86,
            84,
            82,
            78,
            78,
            84,
            92,
            105,
            121,
            132,
            141,
            146,
            153,
            159,
            159,
            158,
            161,
            159,
            154,
            155,
            155,
            160,
            175,
            204,
            225,
            239,
            222,
            213,
            201,
            86,
            87,
            92,
            106,
            110,
            111,
            105,
            99,
            88,
            80,
            77,
            79,
            80,
            81,
            84,
            82,
            81,
            80,
            79,
            80,
            86,
            93,
            105,
            118,
            130,
            138,
            144,
            148,
            153,
            151,
            148,
            151,
            150,
            147,
            150,
            155,
            166,
            187,
            223,
            240,
            252,
            230,
            217,
            199,
            85,
            84,
            90,
            99,
            104,
            104,
            101,
            96,
            88,
            83,
            80,
            81,
            81,
            81,
            80,
            76,
            74,
            75,
            78,
            81,
            87,
            93,
            103,
            115,
            126,
            135,
            141,
            143,
            144,
            140,
            139,
            141,
            143,
            143,
            148,
            155,
            173,
            198,
            234,
            246,
            252,
            227,
            211,
            190,
            78,
            78,
            85,
            94,
            101,
            101,
            100,
            94,
            87,
            83,
            83,
            83,
            82,
            81,
            78,
            73,
            71,
            73,
            77,
            81,
            88,
            93,
            99,
            107,
            117,
            123,
            130,
            132,
            134,
            132,
            134,
            136,
            140,
            142,
            150,
            161,
            183,
            210,
            245,
            252,
            252,
            227,
            206,
            185,
            69,
            69,
            78,
            88,
            95,
            94,
            94,
            88,
            82,
            81,
            83,
            82,
            82,
            81,
            75,
            70,
            70,
            72,
            76,
            82,
            86,
            89,
            92,
            98,
            106,
            113,
            122,
            126,
            127,
            127,
            130,
            130,
            132,
            135,
            144,
            161,
            187,
            218,
            250,
            255,
            251,
            228,
            210,
            192,
            60,
            61,
            69,
            79,
            87,
            88,
            89,
            85,
            81,
            82,
            85,
            84,
            83,
            80,
            73,
            69,
            68,
            70,
            74,
            79,
            83,
            85,
            87,
            90,
            96,
            102,
            110,
            114,
            116,
            118,
            122,
            123,
            125,
            128,
            135,
            153,
            180,
            210,
            238,
            245,
            240,
            222,
            206,
            192,
            53,
            54,
            62,
            71,
            79,
            82,
            84,
            83,
            80,
            82,
            86,
            85,
            82,
            79,
            71,
            67,
            65,
            66,
            68,
            72,
            75,
            77,
            78,
            81,
            86,
            92,
            97,
            101,
            105,
            109,
            115,
            119,
            121,
            125,
            132,
            149,
            175,
            203,
            226,
            233,
            226,
            209,
            196,
            186,
            47,
            49,
            56,
            67,
            74,
            78,
            81,
            80,
            78,
            81,
            84,
            84,
            81,
            77,
            70,
            66,
            63,
            62,
            63,
            66,
            68,
            71,
            73,
            76,
            80,
            86,
            91,
            95,
            100,
            104,
            110,
            114,
            116,
            118,
            123,
            138,
            165,
            193,
            217,
            229,
            225,
            211,
            200,
            193,
            46,
            48,
            54,
            65,
            71,
            75,
            78,
            78,
            75,
            81,
            85,
            84,
            81,
            77,
            69,
            64,
            61,
            59,
            60,
            64,
            66,
            68,
            71,
            74,
            78,
            86,
            91,
            95,
            98,
            102,
            107,
            112,
            113,
            114,
            117,
            133,
            163,
            193,
            218,
            230,
            227,
            210,
            201,
            197
        ],
        "background": "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"
    }}}
}

Error Code

See Response Messages Body and Common error_code for more information.

Search

Function

This API is used to search alarm attribute detection parameters.

Request Message

Sample:

POST API/AI/HeatMapStatistics/Search HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success", 
    "data": {
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Hman & Vehicle Search

Function

This API is used to get object statistics.

URI

POST /API/AI/ObjectStatistics/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Get

Get

Function

This API is used to get object statistics.

Request Message

Table 1

ParameterRangeTypeDescription
MsgIdnull
Engine0intWhich search engine to use, 0 or 1, used in conjunction with the search interface
TimePoints["2020-07-06 00:00:00",
"2020-07-07 00:00:00",
"2020-07-08 00:00:00",
"2020-07-09 00:00:00",
"2020-07-10 00:00:00",
"2020-07-11 00:00:00",
"2020-07-12 00:00:00",
"2020-07-13 00:00:00"]
arrayThe time interval to search, for example,the example given is to search for the time point of the week of 2020.7.6,When searching, use the previous time point as the start time and the following time point as the end time (excluding the end time point) as the search interval to search,the number of time points is not limited and is determined by the search criteria. For example, the number of time points searched by day is 25.
Chn[0, 1, 2, 3, 4, 5, 6, 7, 8….]
The number of channels depends on the capabilities of the device.
arrayTo search for a channel, the numeric value represents the channel
Type[0, 1, 2, 3, 4, 5, 6]arrayThe type to be searched, each array bit uses an integer number to represent the image type.Such as 0-face, 1-figure, 2-vehicle, 3-PID figure, 4-PID vehicle, 5-LCD figure, 6-LCD vehicle

Sample:

POST API/AI/ObjectStatistics/Get HTTP/1.1
{"version":"1.0",
	"data": {
		"MsgId": null,
		"Engine": 0,			
		"TimePoints":[
			"2020-07-0600:00:00",		
			"2020-07-0700:00:00", 
			"2020-07-0800:00:00",		
			"2020-07-0900:00:00",
			"2020-07-1000:00:00",		
			"2020-07-1100:00:00",
			"2020-07-1200:00:00",		
			"2020-07-1300:00:00"
		],
		"Chn": [0, 1, 2, 3, 4, 5, 6, 7, 8],
		"Type": [1, 2] 
	}
}

Response Message

Parameter Description

Table 2

ParameterRangeTypeDescription
MsgIdnull
Result0intObtain the return result of people and vehicles statistics,see the results Table 3
ObjectCountint arrayObtain the statistics of people and vehicles, each bit represents the number searched in the corresponding time interval

Table 3

Result TypeCOMMENT
AORT_SUCCESS = 0Success
AORT_NO_DB = -1No database
AORT_DB_EXEC_FAILED = -2Database execution failed
AORT_CALC_FEATURE_FAILED = -3Feature extraction failed
AORT_CANCELED = -4Cancelled
AORT_NO_DISK = -5No hard drive
AORT_DISK_ERROR = -6Hard disk error
AORT_EXIST = -7Existed
AORT_GROUP_INVALID = -8Group invalid
AORT_NOT_EXIST = -9Does not exist
AORT_MORE_FILE_EXIST = -10File already exists
AORT_SEARCH_ERROR = -11Search error
AORT_OVER_MAX_COUNT = -12Limit exceeded
AORT_UPDATING_FEATURE = -13Updating feature values
AORT_NO_USABLE_IPC = -14No IPC available for eigenvalue calculation
AORT_INVALID_PARAM = -15Invalid parameter
AORT_INVALID_FORMAT = -16Wrong format
AORT_INVALID_RES = -17Wrong resolution
AORT_INVALID_MEM = -18File too large error
AORT_CREAT_FAILED = -19Creation failed
AORT_MD5_NOT_MATCH = -20MD5 mismatch
AORT_POS_ERROR = -21Location error
AORT_SIZE_ERROR = -22Wrong size
AORT_NOT_READY = -23Not ready
AORT_INVALID_DB = -24Invalid database

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
	"data": {
		"MsgId": null,
		"Result": 0,	
		"ObjectCount": [3650, 1230, 1980, 1002, 5000, 8900, 8897] 
	}
}

Error Code

See Response Messages Body and Common error_code for more information.

Extended Functionality

AIMutexRelation

Function

This API is used for get AIMutexRelation parameters.

URI

POST /API/AIMutexRelation/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Get

Get

Function

This API is used to get parameter for Extended Functionality > AIMutexRelation .

Request Message

None.

Sample:

POST /API/AIMutexRelation/Get HTTP/1.1
HTTP/1.1
{
    "version":"1.0",
    "data":{}
}

Response Message

Parameter Description

Table 1

ParameterRangeTypeDescription
channel_infoJSON objectChannel Information JSON show as followtable 2

Table 2

ParameterRangeTypeDescription
CH1Json ObjectChannel Information JSON show as followtable 3
Table 3
ParameterRangeTypeDescription
categoryJSON arrayChannel Information JSON show as followtable 4

Table 4

ParameterRangeTypeDescription
intelligent_type"fd"
"pvd"
"pid"
"lcd"
"sod"
"cc"
"cd"
"qd"
"lpd"
"hm"
"rsd"
"intrusion"
"region_entrance"
"region_exiting"
stringIntelligent types that can be configured
Note: Depending on the device functionality, the actual intelligent type may be less than the allowed configuration type
mutex_type"fd"
"pvd"
"pid"
"lcd"
"sod"
"cc"
"cd"
"qd"
"lpd"
"hm"
"rsd"
"intrusion"
"region_entrance"
"region_exiting"
stringintelligent type Indicates the intelligent type that is mutually exclusive with intelligent Type
Note: Actual mutex types vary depending on device capabilities
mutex_type_between_channelJSON array(Thermal imaging use)Intelligent type of the mutual exclusion between the schedule_type of other channels and the current channel
Note: The actual mutual exclusion type varies according to the device capabilityTable 5

Table 5

ParameterRangeTypeDescription
channel“CH1”
“CH2”
...
stringExclusive channel
mutex_type"fd"
"pvd"
"pid"
"lcd"
"sod"
"cc"
"cd"
"qd"
"lpd"
"hm"
“rsd”
“intrusion”
“region_entrance”
“region_exiting”
Json arrayIntelligent type that is mutually exclusive with schedule_type
Note: The actual type varies according to the device capability

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_info": {
            "CH1": {
                "category": [
                    {
                        "intelligent_type": "fd",
                        "mutex_type": [
                            "pid",
                            "lcd",
                            "sod",
                            "pvd",
                            "cc",
                            "cd",
                            "qd",
                            "lpd",
                            "hm"
                        ]
                    },
                    {
                        "intelligent_type": "pvd",
                        "mutex_type": [
                            "pid",
                            "lcd",
                            "sod",
                            "fd",
                            "cc",
                            "cd",
                            "qd",
                            "lpd",
                            "hm"
                        ]
                    },
                    {
                        "intelligent_type": "pid",
                        "mutex_type": [
                            "lcd",
                            "sod",
                            "pvd",
                            "fd",
                            "cc",
                            "cd",
                            "qd",
                            "lpd",
                            "hm"
                        ]
                    },
                    {
                        "intelligent_type": "lcd",
                        "mutex_type": [
                            "pid",
                            "sod",
                            "pvd",
                            "fd",
                            "cc",
                            "cd",
                            "qd",
                            "lpd",
                            "hm"
                        ]
                    },
                    {
                        "intelligent_type": "sod",
                        "mutex_type": [
                            "pid",
                            "lcd",
                            "pvd",
                            "fd",
                            "cc",
                            "cd",
                            "qd",
                            "lpd",
                            "hm"
                        ]
                    },
                    {
                        "intelligent_type": "cc",
                        "mutex_type": [
                            "pid",
                            "lcd",
                            "sod",
                            "pvd",
                            "fd",
                            "cd",
                            "qd",
                            "lpd",
                            "hm"
                        ]
                    },
                    {
                        "intelligent_type": "cd",
                        "mutex_type": [
                            "pid",
                            "lcd",
                            "sod",
                            "pvd",
                            "fd",
                            "cc",
                            "qd",
                            "lpd",
                            "hm"
                        ]
                    },
                    {
                        "intelligent_type": "qd",
                        "mutex_type": [
                            "pid",
                            "lcd",
                            "sod",
                            "pvd",
                            "fd",
                            "cc",
                            "cd",
                            "lpd",
                            "hm"
                        ]
                    },
                    {
                        "intelligent_type": "lpd",
                        "mutex_type": [
                            "pid",
                            "lcd",
                            "sod",
                            "pvd",
                            "fd",
                            "cc",
                            "cd",
                            "qd",
                            "hm"
                        ]
                    },
                    {
                        "intelligent_type": "hm",
                        "mutex_type": [
                            "pid",
                            "lcd",
                            "sod",
                            "pvd",
                            "fd",
                            "cc",
                            "cd",
                            "qd",
                            "lpd"
                        ]
                    },
                    {
                        "intelligent_type": "rsd",
                        "mutex_type": []
                    }
                ]
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

IPCVoice Prompt

Function

It is used to get or set the IPCVoice Prompt config parameters.

URI

POST /API/Extended/IPCVoicePrompts/{Action}

Table 1 describes the parameters.

parameter-description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Get, Set.

Get

Function

This API is used to get parameter for Extended Functionality > IPCVoice Prompt page.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
command"GetAudioFilesList",
"GetAudioIndex",
"ConfigureAudioIndex",
"PlayAudio",
"StopPlaying"
stringOperation command:
Get the list of audio files,
Get the audio configuration number of the IP channel,
Configure the audio number of the IP channel,
Start playing audio on IPC,
Stop playing on IPC audio
channel“IP_CH1”…” IP_CHx”
The number of channels depends on the capabilities of the device.
string arrayUsed to specify the IP channel to operate
(PlayAudio, StopPlaying)
channel_infoJSON objectChannel Information JSON show as follow Table 2(ConfigureAudioIndex)

Table 2

ParameterRangeTypeDescription
IP_CH1Json ObjectJSON show as follow Table 3
Json Object
IP_CHxJson Object

Table 3

ParameterRangeTypeDescription
state"Offline",
"Online"
stringIP channel online status
audio_indexintaudio file number

Sample:

POST /API/Extended/IPCVoicePrompts/Get HTTP/1.1

RequestGet Audio Files List

{
    "data": {
     "command": "GetAudioFilesList"
    }
}

RequestGet Audio Index List

{
    "data": {
     "command": "GetAudioIndex"
    }
}

Response Message

Parameter Description

Table 2

ParameterRangeTypeDescription
audio_liststring arrayaudio list
channel_infoJSON objectChannel Information JSON show as follow Table 2

Sample:

HTTP/1.1 200 OK
Content-Type: application/json

Get Audio Files List

{
    "result": "success",
    "data": {
        "audio_list": [
            "5_13227.mp3", //Each item in the list is divided into two parts by "_". The first half is the unique serial number assigned to the audio file by the system, and the second half is the audio file name.
            "6_9528.mp3",
            "7_AlienBoi.mp3"
        ]
    }
}

Get Audio Index List

{
    "result": "success",
    "data": {
        "channel_info": {
            "IP_CH1": {
                "status": "Online",
                "audio_index": 2
            },
            "IP_CH2": {
                "status": "Online",
                "audio_index": 3
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

功能介绍

It is used to operate the Extended Functionality > IPCVoice Prompt function of IPC.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
command"GetAudioFilesList",
"GetAudioIndex",
"ConfigureAudioIndex",
"PlayAudio",
"StopPlaying"
stringOperation command:
Get the list of audio files,
Get the audio configuration number of the IP channel,
Configure the audio number of the IP channel,
Start playing audio on IPC,
Stop playing on IPC audio
channel“IP_CH1”…” IP_CHx”
The number of channels depends on the capabilities of the device.
string arrayUsed to specify the IP channel to operate
(PlayAudio, StopPlaying)
channel_infoJSON objectChannel Information JSON show as follow Table 2(ConfigureAudioIndex)

Table 2

ParameterRangeTypeDescription
IP_CH1Json ObjectJSON show as follow Table 3
Json Object
IP_CHxJson Object

Table 3

ParameterRangeTypeDescription
state"Offline",
"Online"
stringIP channel online status
audio_indexintaudio file number

Sample:

POST /API/Extended/IPCVoicePrompts/Set HTTP/1.1

Request Configure Audio Index

{
    "data": {
        "command": "ConfigureAudioIndex",
        "channel_info": {
            "IP_CH1": {
                "audio_index": 2
            },
            "IP_CH2": {
                "audio_index": 3
            }
        }
    }
}

Request Playor Stop Audio

{
    "data": {
        "command": "PlayAudio",  //"StopPlaying"
        "channel": [
            "CH1", "CH2"
        ]
    }
}

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json

Configure Audio Index

{
    "result": "success",
    "data": {
        "channel_info": {
            "IP_CH1": {
                "status": "Online",
                "audio_index": 2
            },
            "IP_CH2": {
                "status": "Online",
                "audio_index": 3
            }
        }
    }
}

Playor Stop Audio

{
    "result": "success",
    "data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Mutex Relation

Function

This API is used to get MutexRelation parameter.

URI

POST /API/MutexRelation/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Get.

Get

Function

This API is used to get parameter for Extended Functionality > Mutex Relation page.

Request Message

None.

Sample:

POST /API/MutexRelation/Get HTTP/1.1
{
    "version":"1.0",
    "data":{}
}

Response Message

Parameter Description

Table 1

ParameterRangeTypeDescription
channel_infoJSON objectChannel Information JSON show as follow Tabletable 2

Table 2

ParameterRangeTypeDescription
CH1Json ObjectJSON show as follow Table table 3
Json Object
IP_CH1Json Object
Json Object
WIFI_CH1Json Object
Json Object

Table 3

ParameterRangeTypeDescription
categoryJSON arrayCategoryJSON show as follow Table table 4

Table 4

ParameterRangeTypeDescription
mutex_type"h264+"
"h265+"
"roi"
"exposure_compensation"
"shutter_manual"
"time_exposure"
"lpd_enhance"
stringThe feature types that are allowed to be configured.
Note: Depending on device capabilities, actual feature types may be less than allowable configurable types
mutex_relation"h264+"
"h265+"
"roi"
"exposure_compensation"
"shutter_manual"
"time_exposure"
"lpd_enhance"
stringFunction type that is mutually exclusive with mutex_type
Note: According to the device capability, the actual mutex type is different

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result":"success",
    "data":{
        "channel_info":{
            "CH1":{
                "category":[
                    {
                        "mutex_type":"lpd_enhance",
                        "mutex_relation":[
                            "exposure_compensation",
                            "shutter_manual",
                            "time_exposure"
                        ]
                    },
                    {
                        "mutex_type":"exposure_compensation",
                        "mutex_relation":[
                            "lpd_enhance"
                        ]
                    },
                    {
                        "mutex_type":"shutter_manual",
                        "mutex_relation":[
                            "lpd_enhance"
                        ]
                    },
                    {
                        "mutex_type":"time_exposure",
                        "mutex_relation":[
                            "lpd_enhance"
                        ]
                    }
                ]
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Push

Push

Function

This API is used for push messages.

URI

POST /API/Push/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYesRequest action, including GetToken, Query, Subscribe, Unsubscribe, QueryDefault.

GetToken

Function

This API is used to obtain Token when pushing.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
Tokenstring

Sample:

POST /API/Push/GetToken HTTP/1.1
{
    "version": "1.0",
    "data": {
        "Token":"f06214c1d9348dee11a513213c9a38d0b62c9ffd32d1c1b6f6485117d1f187b9"
    }
}

Response Message

Parameter Description

Table 2
ParameterRangeTypeDescription
AccessTokenstring

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
            "AccessToken": "eyJhbGciOiJFUzI1NiIsImtpZCI6InJzdHM4Mjg1NWI4MmNmNDk0YWM5OWNiZGM4OTQ2YTQ0YWYxNyJ9.eyJhdWQiOlsicHNfZGVsIl0sIlgtc3ViIjp7IlRva2VuIjoiZjA2MjE0YzFkOTM0OGRlZTExYTUxMzIxM2M5YTM4ZDBiNjJjOWZmZDMyZDFjMWI2ZjY0ODUxMTdkMWYxODdiOSIsIlVVSUQiOiI2ZTMzMjJjMy01MjFmLTQ0OWItYjk0Yy00MjE5ZGJiOTIwMmMifX0.ec_DrzO6AYidvJytmKADN9iW4sy3LqHBMJj9QEVaySquqlby43Oe5UvtqrU0y0t6o8cno6ypX9v4vzp5QGRbZw"
        }
}

Error Code

See Response Messages Body and Common error_code for more information.

Query

Function

This API is used to push query push parameters.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
Tokenstring

Sample:

POST /API/Push/Query HTTP/1.1
{
    "data": {
        "Token": "f06214c1d9348dee11a513213c9a38d0b62c9ffd32d1c1b6f6485117d1f187b9",
        "app_support_ai_notification_subscribe":true
    }
}

Response Message

Parameter Description

Table 2
ParameterRangeTypeDescription
DefaultobjectDefault parameters, see Table 3 for details.
Filterobjectsubscription parameters, see Table 6 for details.
Notificationobjectsubscription parameters, see Table 8 for details.
Table 3
ParameterRangeTypeDescription
notification_interval_max30intMaximum notification interval.
notification_interval_min1intThe minimum notification interval.
notification_intervalnotification_interval_min-notification_interval_maxintNotification interval.
notification_interval_switchboolPush switch.
StorageError"True", "False"string
StorageFull"True", "False"string
StorageUnformatted"True", "False"string
StorageNull"True", "False"string
Motion"True", "False"string
IOAlarm"True", "False"string
PIRAlarm"True", "False"string
Intellect"True", "False"string
AiHuman"True", "False"string
AiVehicle"True", "False"string
VideoLoss"True", "False"string
AiFaceDetectionobjectSee Table 4 for details.
LPRobjectSee Table 4 for details.
LCD"True", "False"string
PID"True", "False"string
PD&VD(PD)"True", "False"string
FD"True", "False"string
AD"True", "False"string
CC"True", "False"string
CD"True", "False"string
QD"True", "False"string
RSD"True", "False"string
LPD"True", "False"string
SOD"True", "False"string
VT"True", "False"string
SD"True", "False"string
Intrusion"True"、"False"string
RegionEntrance"True"、"False"string
RegionExiting"True"、"False"string
Table 4
ParameterRangeTypeDescription
GrouparraySee Table 5 for details.
Table 5
ParameterRangeTypeDescription
Namestring
AutoSubscribe"True"、"False"string
Table 6
ParameterRangeTypeDescription
IntellectobjectSee Table 7 for details.
IOAlarmobjectSee Table 7 for details.
MotionobjectSee Table 7 for details.
PIRAlarmobjectSee Table 7 for details.
VideoLossobjectSee Table 7 for details.
StorageErrorobject
StorageFullobject
StorageNullobject
StorageUnformattedobject
LCDobjectSee Table 7 for details.
PIDobjectSee Table 7 for details.
PD&VD(PD)objectSee Table 7 for details.
FDobjectSee Table 7 for details.
ADobjectSee Table 7 for details.
CCobjectSee Table 7 for details.
CDobjectSee Table 7 for details.
QDobjectSee Table 7 for details.
RSDobjectSee Table 7 for details.
LPDobjectSee Table 7 for details.
SODobjectSee Table 7 for details.
VTobjectSee Table 7 for details.
SDobjectSee Table 7 for details.
AiHumanobjectSee Table 7 for details.
AiVehicleobjectSee Table 7 for details.
IntrusionobjectSee Table 7 for details.
RegionEntranceobjectSee Table 7 for details.
RegionExitingobjectSee Table 7 for details.
AiFaceDetectionobject arraySee Table 9 for details.
LPRobject arraySee Table 9 for details.
Table 7
ParameterRangeTypeDescription
Channel0~maximum number of channelsint array
Table 8
ParameterRangeTypeDescription
notification_intervalnotification_interval_min-notification_interval_maxintNotification of push.
notification_interval_switchboolNotification switch.
Table 9
ParameterRangeTypeDescription
NamestringGroup name
Channel0~Max Channel Numberint array

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "Default": {
            "notification_interval_max": 30,
            "notification_interval_min": 1,
            "notification_interval": 1,
            "notification_interval_switch": false,
            "StorageError": "True",
            "StorageFull": "True",
            "StorageUnformatted": "True",
            "StorageNull": "True",
            "Motion": "True",
            "IOAlarm": "True",
            "PIRAlarm": "True",
            "LCD": "True",
            "PID": "True",
            "PD&VD": "True",
            "FD": "True",
            "AD": "True",
            "CC": "True",
            "CD": "True",
            "QD": "True",
            "RSD": "True",
            "LPD": "True",
            "SOD": "True",
            "VT": "True",
            "SD": "True",
            "Intrusion": "true",
            "RegionEntrance": "true",
            "RegionExiting": "true",
            "AiFaceDetection": {
            "Group": [
                {
                "Name": "Allow List",
                "AutoSubscribe": "True"
                },
                {
                "Name": "Block List",
                "AutoSubscribe": "True"
                },
                {
                "Name": "Stranger",
                "AutoSubscribe": "True"
                }
            ]
            },
            "LPR": {
            "Group": [
                {
                "Name": "Allow List",
                "AutoSubscribe": "True"
                },
                {
                "Name": "Block List",
                "AutoSubscribe": "True"
                },
                {
                "Name": "Unknown",
                "AutoSubscribe": "True"
                }
            ]
            },
            "AiHuman": "True",
            "AiVehicle": "True",
            "VideoLoss": "True"
        },
        "Filter": {
            "AD": {
            "Channel": [0,1,2,3,4,5,6,7,8]
            },
            "AiFaceDetection": {
            "Group": [
                {
                "Channel": [0,1,2,3,4,5,6,7,8],
                "Name": "Allow List"
                },
                {
                "Channel": [0,1,2,3,4,5,6,7,8],
                "Name": "Block List"
                },
                {
                "Channel": [0,1,2,3,4,5,6,7,8],
                "Name": "Stranger"
                }
            ]
            },
            "AiHuman": {
            "Channel": [0,1,2,3,4,5,6,7,8]
            },
            "AiVehicle": {
            "Channel": [0,1,2,3,4,5,6,7,8]
            },
            "CC": {
            "Channel": [0,1,2,3,4,5,6,7,8]
            },
            "CD": {
            "Channel": [0,1,2,3,4,5,6,7,8]
            },
            "FD": {
            "Channel": [0,1,2,3,4,5,6,7,8]
            },
            "Intrusion": {
            "Channel": [0,1,2,3,4,5,6,7,8]
            },
            "IOAlarm": {
            "Channel": [0,1,2,3,4,5,6,7,8]
            },
            "LCD": {
            "Channel": [0,1,2,3,4,5,6,7,8]
            },
            "LPD": {
            "Channel": [0,1,2,3,4,5,6,7,8]
            },
            "LPR": {
            "Group": [
                {
                "Channel": [0,1,2,3,4,5,6,7,8],
                "Name": "Allow List"
                },
                {
                "Channel": [0,1,2,3,4,5,6,7,8],
                "Name": "Block List"
                },
                {
                "Channel": [0,1,2,3,4,5,6,7,8],
                "Name": "Unknown"
                }
            ]
            },
            "Motion": {
            "Channel": [0,1,2,3,4,5,6,7,8]
            },
            "PID": {
            "Channel": [0,1,2,3,4,5,6,7,8]
            },
            "PIRAlarm": {
            "Channel": [0,1,2,3,4,5,6,7,8]
            },
            "PD&VD": {
            "Channel": [0,1,2,3,4,5,6,7,8]
            },
            "QD": {
            "Channel": [0,1,2,3,4,5,6,7,8]
            },
            "RegionEntrance": {
            "Channel": [0,1,2,3,4,5,6,7,8]
            },
            "RegionExiting": {
            "Channel": [0,1,2,3,4,5,6,7,8]
            },
            "RSD": {
            "Channel": [0,1,2,3,4,5,6,7,8]
            },
            "SD": {
            "Channel": [0,1,2,3,4,5,6,7,8]
            },
            "SOD": {
            "Channel": [0,1,2,3,4,5,6,7,8]
            },
            "StorageError": {},
            "StorageFull": {},
            "StorageNull": {},
            "StorageUnformatted": {},
            "VideoLoss": {
            "Channel": [0,1,2,3,4,5,6,7,8]
            },
            "VT": {
            "Channel": [0,1,2,3,4,5,6,7,8]
            }
        },
        "Notification": {
            "notification_interval": 1,
            "notification_interval_switch": false
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

QueryDefault

Function

This API is used to restore default push.

Request Message

None.

Sample:

POST /API/Push/QueryDefault HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 1
ParameterRangeTypeDescription
typesobjectDefault parameters, see Push > Query > Parameter Description > Table 3 for details.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "Types": {
            "StorageError": "True",
            "StorageFull": "True",
            "StorageUnformatted": "True",
            "StorageNull": "True",
            "StorageReadOnly": "True",
            "Motion": "True",
            "IOAlarm": "True",
            "PIRAlarm": "True",
            "LCD": "True",
            "PID": "True",
            "PD&VD": "True",
            "FD": "True",
            "AD": "True",
            "CC": "True",
            "CD": "True",
            "QD": "True",
            "RSD": "True",
            "LPD": "True",
            "SOD": "True",
            "VT": "True",
            "SD": "True",
            "VideoLoss": "True"
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Get

Function

This API is used for push subscriptions.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
Filterobjectsubscription parameters, see Push > Query > Parameter Description > Table 3 for details.
Mobileobjectsubscription parameters, see Table 2 for details.
NotificationobjectSubscription parameters, see Push > Query > Parameter Description > Table 8.
Table 2
ParameterRangeTypeDescription
AppIDstring
Languagestring
PushChannelstring
Tokenstring
UUIDstring
Table 3
ParameterRangeTypeDescription
notification_intervalintNotification interval.
notification_interval_maxintDisplays the maximum subscription interval for the mobile app.
notification_interval_minintThe minimum subscription interval to display for the mobile app.

Sample:

POST /API/Push/Subscribe HTTP/1.1
{
    "version": "1.0",
    "data": {
        "Filter": {
            "AD": {
            "Channel": [0,1,2,3,4,5,6,7,8]
            },
            "AiFaceDetection": {
            "Group": [
                {
                "Channel": [0,1,2,3,4,5,6,7,8],
                "Name": "Allow List"
                },
                {
                "Channel": [0,1,2,3,4,5,6,7,8],
                "Name": "Block List"
                },
                {
                "Channel": [0,1,2,3,4,5,6,7,8],
                "Name": "Stranger"
                }
            ]
            },
            "AiHuman": {
            "Channel": [0,1,2,3,4,5,6,7,8]
            },
            "AiVehicle": {
            "Channel": [0,1,2,3,4,5,6,7,8]
            },
            "CC": {
            "Channel": [0,1,2,3,4,5,6,7,8]
            },
            "CD": {
            "Channel": [0,1,2,3,4,5,6,7,8]
            },
            "FD": {
            "Channel": [0,1,2,3,4,5,6,7,8]
            },
            "Intrusion": {
            "Channel": [0,1,2,3,4,5,6,7,8]
            },
            "IOAlarm": {
            "Channel": [0,1,2,3,4,5,6,7,8]
            },
            "LCD": {
            "Channel": [0,1,2,3,4,5,6,7,8]
            },
            "LPD": {
            "Channel": [0,1,2,3,4,5,6,7,8]
            },
            "LPR": {
            "Group": [
                {
                "Channel": [0,1,2,3,4,5,6,7,8],
                "Name": "Allow List"
                },
                {
                "Channel": [0,1,2,3,4,5,6,7,8],
                "Name": "Block List"
                },
                {
                "Channel": [0,1,2,3,4,5,6,7,8],
                "Name": "Unknown"
                }
            ]
            },
            "Motion": {
            "Channel": [0,1,2,3,4,5,6,7,8]
            },
            "PID": {
            "Channel": [0,1,2,3,4,5,6,7,8]
            },
            "PIRAlarm": {
            "Channel": [0,1,2,3,4,5,6,7,8]
            },
            "PD&VD": {
            "Channel": [0,1,2,3,4,5,6,7,8]
            },
            "QD": {
            "Channel": [0,1,2,3,4,5,6,7,8]
            },
            "RegionEntrance": {
            "Channel": [0,1,2,3,4,5,6,7,8]
            },
            "RegionExiting": {
            "Channel": [0,1,2,3,4,5,6,7,8]
            },
            "RSD": {
            "Channel": [0,1,2,3,4,5,6,7,8]
            },
            "SD": {
            "Channel": [0,1,2,3,4,5,6,7,8]
            },
            "SOD": {
            "Channel": [0,1,2,3,4,5,6,7,8]
            },
            "StorageError": {},
            "StorageFull": {},
            "StorageNull": {},
            "StorageUnformatted": {},
            "VideoLoss": {
            "Channel": [0,1,2,3,4,5,6,7,8]
            },
            "VT": {
            "Channel": [0,1,2,3,4,5,6,7,8]
            }
        },
        "Notification": {
            "notification_interval": 1,
            "notification_interval_switch": false
        },
        "MobileInfo":[
            {
                "Mobile": {
                "AppID": "com.RXCamView.push",
                "Language": "zh-Hans",
                "PushChannel": "APNS",
                "Token": "eyJhbGciOiJFUzI1NiIsImtpZCI6InJzdHM4Mjg1NWI4MmNmNDk0YWM5OWNiZGM4OTQ2YTQ0YWYxNyJ9.eyJhdWQiOlsicHNfZGVsIl0sIlgtc3ViIjp7IlRva2VuIjoiZjA2MjE0YzFkOTM0OGRlZTExYTUxMzIxM2M5YTM4ZDBiNjJjOWZmZDMyZDFjMWI2ZjY0ODUxMTdkMWYxODdiOSIsIlVVSUQiOiI2ZTMzMjJjMy01MjFmLTQ0OWItYjk0Yy00MjE5ZGJiOTIwMmMifX0.ec_DrzO6AYidvJytmKADN9iW4sy3LqHBMJj9QEVaySquqlby43Oe5UvtqrU0y0t6o8cno6ypX9v4vzp5QGRbZw"
                },
                "UUID": "7c42cecc-7989-43df-8baf-86065abffac0"
            }
        ]
    }
}

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Unsubscribe

Function

This API is used to close push.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
Tokenstring
UUIDstring

Sample:

POST /API/Push/Unsubscribe HTTP/1.1
{
    "version": "1.0",
    "data": {
        "Token":"f06214c1d9348dee11a513213c9a38d0b62c9ffd32d1c1b6f6485117d1f187b9",
        "UUID": "7c42cecc-7989-43df-8baf-86065abffac0"
    }
}

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

PushSubscribe

Function

This API is used to get or set push subscriptions.

URI

POST /API/PushSubscribe/{Action}

Table 1 describes the parameter details.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Get,Set.

Get

Function

This API is used to get push subscriptions.

Request Message

Table 1
ParameterRangeTypeDescription
app_support_ai_notification_subscribeboolWhether the app supports ai notification push.

Sample:

POST /API/PushSubscribe/Get HTTP/1.1
{
    "data": {
        "app_support_ai_notification_subscribe":true
    }
}

Response Message

Parameter Description

Table 2
ParameterRangeTypeDescription
HddAlarmobjectsee Table 3 for more information.
IOAlarmobjectsee Table 4 for more information.
LowPowerobjectsee Table 4 for more information.
MotionAlarmobjectsee Table 4 for more information.
PIRAlarmobjectsee Table 4 for more information.
SmartAlarmobjectsee Table 4 for more information.
VideoLossobjectsee Table 4 for more information.
FaceAlarmobjectsee Table 5 for more information.
LCDAlarmobjectsee Table 4 for more information.
PIDAlarmobjectsee Table 4 for more information.
SODAlarmobjectsee Table 4 for more information.
PDAlarmobjectsee Table 4 for more information.
FDAlarmobjectsee Table 4 for more information.
CCAlarmobjectsee Table 4 for more information.
ADAlarmobjectsee Table 4 for more information.
CDAlarmobjectsee Table 4 for more information.
QDAlarmobjectsee Table 4 for more information.
LPDAlarmobjectsee Table 4 for more information.
RSDAlarmobjectsee Table 4 for more information.
VTAlarmobjectsee Table 4 for more information.
SDAlarmobjectsee Table 4 for more information.
IntrusionAlarmobjectsee Table 4 for more information.
RegionEntranceAlarmobjectsee Table 4 for more information.
RegionExitingAlarmobjectsee Table 4 for more information.
Humanobjectsee Table 4 for more information.
Vehicleobjectsee Table 4 for more information.
LPRAlarmobjectsee Table 5 for more information.
Table 3
ParameterRangeTypeDescription
Enabledint
TypeInt
Table 4
ParameterRangeTypeDescription
ChnFlagsint array
Table 5
ParameterRangeTypeDescription
Groupobject array
Table 6
ParameterRangeTypeDescription
Idint
Namestring
ChnFlagsint array

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "HddAlarm": {
            "Enabled": 0,
            "Type": 0
        },
        "IOAlarm": {
            "ChnFlags": [
                255,
                255
            ]
        },
        "LowPower": {
            "ChnFlags": [
                255,
                0
            ]
        },
        "MotionAlarm": {
            "ChnFlags": [
                255,
                255
            ]
        },
        "PIRAlarm": {
            "ChnFlags": [
                255,
                255
            ]
        },
        "LCDAlarm": {
            "ChnFlags": [
                255,
                255
            ]
        },
        "PIDAlarm": {
            "ChnFlags": [
                255,
                255
            ]
        },
        "SODAlarm": {
            "ChnFlags": [
                255,
                255
            ]
        },
        "PDAlarm": {
            "ChnFlags": [
                255,
                255
            ]
        },
        "FDAlarm": {
            "ChnFlags": [
                255,
                255
            ]
        },
        "CCAlarm": {
            "ChnFlags": [
                255,
                255
            ]
        },
        "ADAlarm": {
            "ChnFlags": [
                255,
                255
            ]
        },
        "CDAlarm": {
            "ChnFlags": [
                255,
                255
            ]
        },
        "QDAlarm": {
            "ChnFlags": [
                255,
                255
            ]
        },
        "LPDAlarm": {
            "ChnFlags": [
                255,
                255
            ]
        },
        "RSDAlarm": {
            "ChnFlags": [
                255,
                255
            ]
        },
        "VTAlarm": {
            "ChnFlags": [
                255,
                255
            ]
        },
        "SDAlarm": {
            "ChnFlags": [
                255,
                255
            ]
        },
        "VideoLoss": {
            "ChnFlags": [
                255,
                255
            ]
        },
        "Human": {
            "ChnFlags": [
                255,
                255
            ]
        },
        "Vehicle": {
            "ChnFlags": [
                255,
                255
            ]
        },
        "IntrusionAlarm": {
            "ChnFlags": [
                255,
                255
            ]
        },
        "RegionEntranceAlarm": {
            "ChnFlags": [
                255,
                255
            ]
        },
        "RegionExitingAlarm": {
            "ChnFlags": [
                255,
                255
            ]
        },
        "FaceAlarm": {
            "Group": [
                {
                    "Id": 2,
                    "Name": "Allow List",
                    "ChnFlags": [
                        0,
                        0
                    ]
                },
                {
                    "Id": 3,
                    "Name": "Block List",
                    "ChnFlags": [
                        0,
                        0
                    ]
                }
            ]
        },
        "LPRAlarm": {
            "Group": [
                {
                    "Id": 5,
                    "Name": "Allow List",
                    "ChnFlags": [
                        0,
                        0
                    ]
                },
                {
                    "Id": 6,
                    "Name": "Block List",
                    "ChnFlags": [
                        0,
                        0
                    ]
                }
            ]
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to setup push subscriptions.

Request Message

See Push > PushSubcribe > Get > Parameter Description > Table 2 for parameter description.

Sample:

POST /API/PushSubscribe/Set HTTP/1.1
{
    "data": {
        "HddAlarm": {
            "Enabled": 1,
            "Type": 0
        },
        "IOAlarm": {
            "ChnFlags": [
                255,
                255
            ]
        },
        "LowPower": {
            "ChnFlags": [
                255,
                0
            ]
        },
        "MotionAlarm": {
            "ChnFlags": [
                255,
                255
            ]
        },
        "PIRAlarm": {
            "ChnFlags": [
                255,
                255
            ]
        },
        "LCDAlarm": {
            "ChnFlags": [
                255,
                255
            ]
        },
        "PIDAlarm": {
            "ChnFlags": [
                255,
                255
            ]
        },
        "SODAlarm": {
            "ChnFlags": [
                255,
                255
            ]
        },
        "PDAlarm": {
            "ChnFlags": [
                255,
                255
            ]
        },
        "FDAlarm": {
            "ChnFlags": [
                255,
                255
            ]
        },
        "CCAlarm": {
            "ChnFlags": [
                255,
                255
            ]
        },
        "ADAlarm": {
            "ChnFlags": [
                255,
                255
            ]
        },
        "CDAlarm": {
            "ChnFlags": [
                255,
                255
            ]
        },
        "QDAlarm": {
            "ChnFlags": [
                255,
                255
            ]
        },
        "LPDAlarm": {
            "ChnFlags": [
                255,
                255
            ]
        },
        "RSDAlarm": {
            "ChnFlags": [
                255,
                255
            ]
        },
        "VTAlarm": {
            "ChnFlags": [
                255,
                255
            ]
        },
        "SDAlarm": {
            "ChnFlags": [
                255,
                255
            ]
        },
        "VideoLoss": {
            "ChnFlags": [
                255,
                255
            ]
        },
        "Human": {
            "ChnFlags": [
                255,
                255
            ]
        },
        "Vehicle": {
            "ChnFlags": [
                255,
                255
            ]
        },
        "IntrusionAlarm": {
            "ChnFlags": [
                255,
                255
            ]
        },
        "RegionEntranceAlarm": {
            "ChnFlags": [
                255,
                255
            ]
        },
        "RegionExitingAlarm": {
            "ChnFlags": [
                255,
                255
            ]
        },
        "FaceAlarm": {
            "Group": [
                {
                    "Id": 2,
                    "Name": "Allow List",
                    "ChnFlags": [
                        0,
                        0
                    ]
                },
                {
                    "Id": 3,
                    "Name": "Block List",
                    "ChnFlags": [
                        0,
                        0
                    ]
                }
            ]
        },
        "LPRAlarm": {
            "Group": [
                {
                    "Id": 5,
                    "Name": "Allow List",
                    "ChnFlags": [
                        0,
                        0
                    ]
                },
                {
                    "Id": 6,
                    "Name": "Block List",
                    "ChnFlags": [
                        0,
                        0
                    ]
                }
            ]
        }
    }
}

Response Message

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Thermal

Fire Detection(Thermal imaging channel CH2 support)

Function

This API is used to get or set for the Fire Detection parameter.

URI

POST /API/Thermal/Setup/FireDetection/{Action}

Table 1 Description Parameter details

Parameter Description

Table 1

ParameterRequiredDescription
ActionyesRequest actions, including Range, Get,Set, Add, Delete.

Add

Function

This API is used for adding Thermal > Fire Detection parameter

Request Message

Parameter Description

See Thermal > Fire Detection > Request Message >Parameter Description > Table 1 Get Parameter description

Sample:

POST /API/Thermal/Setup/FireDetection/Add HTTP/1.1
{
    "version": "1.0",
    "data": {
        "channel": "CH2",
        "page_type": "ChannelConfig"
    }
}

Response Message

none

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Error Code

See Response message body and general error_code for more information.

Delete

Function

This API is used for deletion Thermal > Fire Detection parameter

Request Message

Parameter Description

See Thermal > Fire Detection > Request Message >Parameter Description > Table 1 Get Parameter description

Sample:

POST /API/Thermal/Setup/FireDetection/Delete HTTP/1.1
{
    "version": "1.0",
    "data": {
        "channel": "CH2",
        "page_type": "ChannelConfig",
        "DeleteId": [2]
    }
}

Response Message

none.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Error Code

See Response message body and general error_code for more information.

Get

Function

This API is used for get Thermal > Fire Detection parameter

Request Message

Parameter Description

See Thermal > Fire Detection > Request Message >Parameter Description > Table 1 Get Parameter description

Sample:

POST /API/Thermal/Setup/FireDetection/Get HTTP/1.1
{
    "version": "1.0",
    "data":{
        "page_type":"ChannelConfig"
        }

}

Response Message

Parameter Description

See Thermal > Fire Detection > Response Message >Parameter Description > Table 2 Get Parameter description

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {"channel_info": {"CH2": {
        "status": "Online",
        "detection": {
            "switch": true,
            "sensitivity": 50
        },
        "region_shield": {"region_area_info": [{
            "id_switch": false,
            "area_id": 1,
            "area_name": "Fire Mark1",
            "point_num": [
                3,
                8
            ],
            "rule_area": {
                "x1": 0,
                "y1": 0,
                "x2": 0,
                "y2": 0,
                "x3": 0,
                "y3": 0,
                "x4": 0,
                "y4": 0,
                "x5": 0,
                "y5": 0,
                "x6": 0,
                "y6": 0,
                "x7": 0,
                "y7": 0,
                "x8": 0,
                "y8": 0
            }
        }]}
    }}}
}

Error Code

See Response message body and general error_code for more information.

Range

Function

This API is used for get Thermal > Fire Detection parameter scale

Request Message

Parameter Description

Table 1

ParameterRangeTypedescription
channel"CH1"…"CHx",
"IP_CH1"…"IP_CHx",
"WIFI_CH1"…"WIFI_CHx"
Channels supported by the device
string arrayIPC can only use "CH1".
page_type“ChannelConfig”
“AlarmConfig”
stringData used to distinguish between the channel configuration page and the alarm configuration page
DeleteIdint arrayid to be deleted (Currently supported id numbers 1 to 8)

Sample:

POST /API/Thermal/Setup/FireDetection/Range HTTP/1.1
{
    "version": "1.0",
    "data":{
        "page_type":"ChannelConfig"
        }

}

Response Message

Parameter Description

Table 2

ParameterRangeTypedescription
channel_infoJson ObjectChannel information see Table 3
page_type"ChannelConfig", "AlarmConfig"stringThe data used to distinguish between the channel configuration page and the alarm configuration page is only needed when setting.
channel_maxintTotal number of channels on the device

Table 3

ParameterRangeTypedescription
CH1Json ObjectJSON See Table 4
...Json Object
IP_CH1Json Object
...Json Object
WIFI_CH1Json Object
...Json Object

Table 4

ParameterRangeTypedescription
status"Offline"
"Online"
stringChannel online status, only for digital channels.
Note: This field does not exist when the channel is online
detectionJson ObjectJson For information see Table 5
region_shieldJson ObjectJson For information see Table 6
alarm_out“Local->1”
”Local->x”
“IP_CH1->1”
“IP_CH1->2”
” IP_CHx->1”
” IP_CHx->2”...
The number of channels depends on the performance of the device
arrayAlarm output channel
latch_time"5s","10s","20s","30s"stringAlarm output time Ipc value 5 10 20 30
record_enableboolSupports channel video switch
post_recording"OFF","5s","10s","20s","30s"stringVideo delay time Ipc value 0 5 10 20 30
send_emailtrue, falseboolSend Email switch
ftp_picture_uploadtrue, falseboolFTP upload switch of channel capture
ftp_video_uploadtrue, falseboolChannel video FTP upload switch
picture_to_cloudtrue, falseboolPicture upload switch
video_to_cloudtrue, falseboolVideo cloud upload switch
light_linkagetrue, falseboolLinkage switch of the white light. When motion is triggered, the linkage triggers the white light
enforcerlight_linkagetrue, falseboolRed and blue light alarm switch
siren_linkagetrue, falseboolsiren alarm switch
http_listeningtrue, falseboolPush switch
record_channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…”
WIFI_CH1x”
arrayVideo alarm output channel
ftp_picture_upload_channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…”
WIFI_CH1x”
arrayCapture image FTP upload alarm output channel
ftp_video_upload_channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…”
WIFI_CH1x”
arrayVideo FTP upload alarm output channel
picture_cloud_channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…”
WIFI_CH1x”
arrayImage upload alarm output channel
video_cloud_channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…”
WIFI_CH1x”
arrayVideo cloud upload alarm output channel
scheduleJSON arraySchedule see Table 7

Table 5

ParameterRangeTypedescription
switchtrue falseboolfunction switch
sensitivity[1,100]intsensitivity

Table 6

ParameterRangeTypedescription
region_area_infoJson arrayJson see Table 8

Table 7

ParameterRangeTypedescription
schedule_type“Record”stringtime schedule:Record,AlarmOut,SendEmail
weekJSON arrayweek json see Table 9

Table 8

ParameterRangeTypedescription
id_switchtrue falseboolZone function switch
area_id[0,8]intid of the current area
area_namestringEditable box, default name is Fire Mark with serial number
point_num[min,max]arrayThe number of points drawn in the area is a minimum of 3 points and a maximum of 8 points
rule_areaJson ObjectJson see Table 10

Table 9

ParameterRangeTypedescription
daySun,Mon,Tue,Wed
Thu,Fri,Sat
stringMark the day of the week
time0: disables the time range
1: enables the time range
arrayEach array bit identifies half an hour

Table 10

ParameterRangeTypedescription
x1[0,704]intx1 coordinate point
y1[0,576]inty1 coordinate point
x2[0,704]intx2 coordinate point
y2[0,576]inty2 coordinate point
x3[0,704]intx3 coordinate point
y3[0,576]inty3 coordinate point
x4[0,704]intx4 coordinate point
y4[0,576]inty4 coordinate point
x5[0,704]intx5 coordinate point
y5[0,576]inty5 coordinate point
x6[0,704]intx6 coordinate point
y6[0,576]inty6 coordinate point
x7[0,704]intx7 coordinate point
y7[0,576]inty7 coordinate point
x8[0,704]intx8 coordinate point
y8[0,576]inty8 coordinate point

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_max": 1,
        "channel_info": {
            "type": "object",
            "items": {"CH2": {
                "type": "object",
                "items": {
                    "status": {
                        "description": "Only offline channel has this variable.",
                        "type": "string",
                        "mode": "r",
                        "items": [
                            "Offline",
                            "Online"
                        ]
                    },
                    "detection": {
                        "type": "object",
                        "items": {
                            "switch": {"type": "bool"},
                            "sensitivity": {
                                "type": "int32",
                                "min": 1,
                                "max": 100
                            }
                        }
                    },
                    "region_shield": {
                        "type": "object",
                        "items": {"region_area_info": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 8,
                            "items": [{
                                "id_switch": {
                                    "type": "bool",
                                    "mode": "r"
                                },
                                "area_id": {
                                    "type": "int32",
                                    "mode": "r",
                                    "min": 0,
                                    "max": 8,
                                    "default_value": 0
                                },
                                "area_name": {
                                    "type": "string",
                                    "mode": "r",
                                    "min_len": 1,
                                    "max_len": 127,
                                    "default_value": "Fire Mark1"
                                },
                                "point_num": {
                                    "type": "array",
                                    "size": 2,
                                    "items": []
                                },
                                "rule_area": {
                                    "type": "object",
                                    "items": {
                                        "x1": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "x2": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "x3": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "x4": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "x5": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "x6": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "x7": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "x8": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "y1": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        },
                                        "y2": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        },
                                        "y3": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        },
                                        "y4": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        },
                                        "y5": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        },
                                        "y6": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        },
                                        "y7": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        },
                                        "y8": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        }
                                    }
                                }
                            }]
                        }}
                    }
                }
            }}
        }
    }
}

Error Code

See Response message body and general error_code for more information.

Set

Function

This API is used for setting Thermal > Fire Detection parameter.

Request Message

Parameter Description

See Thermal > Fire Detection > Request Message >Parameter Description > Table 2 Get Parameter description

Sample:

POST /API/Thermal/Setup/FireDetection/Set HTTP/1.1
{
    "version": "1.0",
    "data": {
        "channel_info": {"CH2": {
            "status": "Online",
            "detection": {
                "switch": true,
                "sensitivity": 50
            },
            "region_shield": {"region_area_info": [{
                "id_switch": true,
                "area_id": 1,
                "area_name": "Fire Mark1",
                "point_num": [
                    3,
                    8
                ],
                "rule_area": {
                    "x1": 0,
                    "y1": 0,
                    "x2": 0,
                    "y2": 0,
                    "x3": 0,
                    "y3": 0,
                    "x4": 0,
                    "y4": 0,
                    "x5": 0,
                    "y5": 0,
                    "x6": 0,
                    "y6": 0,
                    "x7": 0,
                    "y7": 0,
                    "x8": 0,
                    "y8": 0
                }
            }]},
            "chn_index": "CH2",
            "page": "chn_fire_detection",
            "selectEditRow": 0
        }},
        "page_type": "ChannelConfig"
    }
}

Response Message

none.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Error Code

See Response message body and general error_code for more information.

Image Control (IPC: Optical channel: CH1, thermal imaging channel: CH2)

Function

This API is used to get or set for ImageControl Thermal imaging channel parameters

URI

POST /API/ChannelConfig/ImageControl/{Action}

Table 1 Description Parameter details

Parameter Description

Table 1

ParameterRequiredDescription
ActionyesRequest actions, including Range, Get, Set, Default, InfraredCorr.

Default

Function

This API is used to restore defaults Thermal > ImageControl parameter

Request Message

Parameter Description

Table 1

ParameterRangeTypedescription
channel"CH1","CHx",
"IP_CH1","IP_CHx",
"WIFI_CH1","WIFI_CHx"
Channels supported by the device
stringDevice channel number

Sample:

POST /API/ChannelConfig/ImageControl/Default HTTP/1.1
{
    "version": "1.0",
    "data": {"channel": ["CH2"]}
}

Response Message

none

Sample:

{
    "result": "success",
    "data": {}
}

Error Code

See Response message body and general error_code for more information.

InfraredCorr

Function

This API is used for get InfrareCorr Thermal > ImageControl parameter

Request Message

Parameter Description

Table 1

ParameterRangeTypedescription
channel"CH1","CHx",
"IP_CH1","IP_CHx",
"WIFI_CH1","WIFI_CHx"
Channels supported by the device.
stringDevice channel number
infrared_corr_type"BackgroundCorr"
"ShutterCorr"
stringCorrection type

Sample:

POST /API/ChannelConfig/ImageControl/InfrareCorr HTTP/1.1
{
    "version": "1.0",
    "data": {
        "channel": "CH2",
        "infrared_corr_type": "ShutterCorr"
    }
}

Response Message

none

Sample:

POST /API/ChannelConfig/ImageControl/Set HTTP/1.1
{
    "result": "success",
    "data": {}
}

Error Code

See Response message body and general error_code for more information.

Get

Function

This API is used for get Thermal > ImageControl parameter

Request Message

none

Response Message

Parameter Description

See Thermal > ImageControl > Response Message > Parameter Description > Table 1 Obtain the parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {"channel_info": {
        "CH1": {
            "status": "Online",
            "image_setting": "DayNightMode",
            "DayNightMode": {
                "ir_cut_mode": "Image",
                "image_sensitivity": 1,
                "ir_led": "Manual",
                "low_beam_light": 100
            },
            "mirror_mode": "Close",
            "angle_rotation": "0",
            "Daylight": {
                "back_light": "Close",
                "blc_level": 2,
                "back_light_area": "Center",
                "denoising": "Auto",
                "white_balance": "Auto",
                "exposure_mode": "Auto",
                "shutter_limit": "1/8"
            },
            "support_default": true
        },
        "CH2": {
            "status": "Online",
            "mirror_mode": "Close",
            "angle_rotation": "0",
            "denoising_2dlevel": 50,
            "denoising_3dlevel": 50,
            "enhancement_level": 50,
            "enhance_regional": "Disable",
            "rule_info": [{
                "rule_no": 1,
                "rule_rect": {
                    "left": 0,
                    "top": 0,
                    "width": 0,
                    "height": 0
                }
            }],
            "palette": "Rainbow",
            "fusion": "Normal",
            "imagefusion_level": 50,
            "edgefusion_level": 50,
            "horizontal_trim": 0,
            "vertica_trim": 0,
            "fusion_distance": 2,
            "support_backgroundcorr": true,
            "support_shuttercorr": true,
            "support_default": true
        }
    }}
}

Error Code

See Response message body and general error_code for more information.

Range

Function

This API is used for get Thermal > ImageControl parameter scale

Request Message

none

Response Message

Parameter Description

Table 1

ParameterRangeTypedescription
channel_infoJson ObjectChannel information see Table 2
channel_maxintTotal number of channels on the device

Table 2

ParameterRangeTypedescription
CH1Json ObjectJSON see Table 3
...Json Object
IP_CH1Json Object
...Json Object
WIFI_CH1Json Object
...Json Object

Table 3

ParameterRangeTypedescription
status"Offline"
"Online"
stringChannel online status, only for digital channels.
Note: This field does not exist when the channel is online
support_defaultboolWhether to restore the default value
support_backgroundcorrboolWhether background correction is supported
support_shuttercorrboolWhether shutter correction is supported
mirror_mode"Close"
"VerticalMirroring"
"HorizontalMirroring"
"All"
stringMirror mode (synchronized with optical channel ch1)
angle_rotation"0","90","180","270"stringAngular rotation (synchronized with optical channel ch1)
denoising_2dlevel0~100int2D noise reduction
denoising_3dlevel0~100int3D noise reduction
enhancement_level0~100intdetail enhancement
enhance_regional"Center-25"
"Center-50"
"Center-75"
"Bottom"
"Middle Area"
"Top"
"Customizations"
"Full Screen"
"Disable"
stringImage area enhancement
palette"White Hot"
"Black Hot"
"Rainbow"
"Ice Fire"
"Red Hot"
"Green Hot"
"Fusion 1"
"Fusion 2"
"Hot Iron 1"
"Hot Iron 2"
"Puce"
"Color 1"
"Color 2"
"Rain"
"Dark Blue"
stringpseudo color
fusion"Normal"
"Details Overlay"
stringfusion
Normal:Fusion not on
Details Overlay Enable the fusion mode. For structure reference Table 4
rule_infoObject arrayCustom zone enhancement (Custom) mode line drawing information, structure reference Table 5

Table 4

ParameterRangeTypedescription
imagefusion_level1~100intImage fusion ratio
edgefusion_level1~100intEdge fusion ratio
horizontal_trim-100~100inthorizontal trim
vertica_trim-100~100intvertica trim
fusion_distance1~200doubleFusion distance

Table 5

ParameterRangeTypedescription
rule_no1intRule number
rule_recttrue, falseJson ObjectRectangle,Json parameters see Table 6

Table 6

ParameterRangeTypedescription
left0-704intX coordinate
top0-576intY coordinate
width0-704intwidth
height0-576intheight

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_max": 2,
        "channel_info": {
            "type": "object",
            "items": {
                "CH1": {
                    "type": "object",
                    "items": {
                        "status": {
                            "description": "Only offline channel has this variable.",
                            "type": "string",
                            "mode": "r",
                            "items": [
                                "Offline",
                                "Online"
                            ]
                        },
                        "image_setting": {
                            "type": "string",
                            "items": [
                                "FullColorMode",
                                "DayNightMode",
                                "Schedule"
                            ]
                        },
                        "white_light": {
                            "type": "string",
                            "items": [
                                "Auto",
                                "Manual",
                                "Schedule",
                                "OFF"
                            ]
                        },
                        "light_distance": {
                            "type": "int32",
                            "min": 0,
                            "max": 100
                        },
                        "image_setting_schedule": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 1,
                            "items": [{"week": {
                                "type": "array",
                                "size": 7,
                                "items": [{
                                    "day": {
                                        "type": "string",
                                        "items": [
                                            "Sun",
                                            "Mon",
                                            "Tue",
                                            "Wed",
                                            "Thu",
                                            "Fri",
                                            "Sat"
                                        ]
                                    },
                                    "time": {
                                        "type": "array",
                                        "size": 48,
                                        "items": [{
                                            "type": "int32",
                                            "items": [
                                                0,
                                                1
                                            ]
                                        }]
                                    }
                                }]
                            }}]
                        },
                        "whitelight_schedule": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 1,
                            "items": [{"week": {
                                "type": "array",
                                "size": 7,
                                "items": [{
                                    "day": {
                                        "type": "string",
                                        "items": [
                                            "Sun",
                                            "Mon",
                                            "Tue",
                                            "Wed",
                                            "Thu",
                                            "Fri",
                                            "Sat"
                                        ]
                                    },
                                    "time": {
                                        "type": "array",
                                        "size": 48,
                                        "items": [{
                                            "type": "int32",
                                            "items": [
                                                0,
                                                1
                                            ]
                                        }]
                                    }
                                }]
                            }}]
                        },
                        "ircut_schedule": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 1,
                            "items": [{"week": {
                                "type": "array",
                                "size": 7,
                                "items": [{
                                    "day": {
                                        "type": "string",
                                        "items": [
                                            "Sun",
                                            "Mon",
                                            "Tue",
                                            "Wed",
                                            "Thu",
                                            "Fri",
                                            "Sat"
                                        ]
                                    },
                                    "time": {
                                        "type": "array",
                                        "size": 48,
                                        "items": [{
                                            "type": "int32",
                                            "items": [
                                                0,
                                                1
                                            ]
                                        }]
                                    }
                                }]
                            }}]
                        },
                        "ir_cut_mode": {
                            "default": "Image",
                            "type": "string",
                            "mode": "rw",
                            "items": [
                                "Day",
                                "Night",
                                "Image",
                                "Schedule"
                            ]
                        },
                        "image_sensitivity": {
                            "type": "int32",
                            "mode": "rw",
                            "items": [
                                3,
                                2,
                                1,
                                0
                            ],
                            "default_value": 1,
                            "default_value_fullcolor": 1
                        },
                        "start_time": {
                            "description": "When ir_cut_mode is TimeSchedule has this variable.",
                            "default": "18:00",
                            "type": "string",
                            "mode": "rw",
                            "len": 5
                        },
                        "end_time": {
                            "description": "When ir_cut_mode is TimeSchedule has this variable.",
                            "default": "06:00",
                            "type": "string",
                            "mode": "rw",
                            "len": 5
                        },
                        "ir_led": {
                            "default": "Manual",
                            "type": "string",
                            "mode": "rw",
                            "items": [
                                "Manual",
                                "SmartIR",
                                "OFF"
                            ]
                        },
                        "low_beam_light": {
                            "type": "int32",
                            "mode": "r",
                            "min": 0,
                            "max": 100,
                            "default_value": 100
                        },
                        "angle_rotation": {
                            "chn_linkage": "CH2",
                            "default": "0",
                            "type": "string",
                            "mode": "rw",
                            "items": [
                                "0",
                                "180"
                            ]
                        },
                        "mirror_mode": {
                            "chn_linkage": "CH2",
                            "default": "Close",
                            "type": "string",
                            "mode": "rw",
                            "items": [
                                "Close",
                                "VerticalMirroring",
                                "HorizontalMirroring",
                                "All"
                            ]
                        },
                        "back_light": {
                            "default": "Close",
                            "type": "string",
                            "mode": "rw",
                            "items": [
                                "DWDR",
                                "HLC",
                                "BacklightCompensation",
                                "Close"
                            ]
                        },
                        "blc_level": {
                            "type": "int32",
                            "mode": "r",
                            "min": 1,
                            "max": 15,
                            "default_value": 2
                        },
                        "back_light_area": {
                            "default": "Center",
                            "type": "string",
                            "mode": "rw",
                            "items": [
                                "Top",
                                "Left",
                                "Down",
                                "Right",
                                "Center"
                            ]
                        },
                        "denoising": {
                            "default": "Auto",
                            "type": "string",
                            "mode": "rw",
                            "items": [
                                "Disable",
                                "Auto",
                                "Manual"
                            ]
                        },
                        "denoising_level": {
                            "type": "int32",
                            "mode": "r",
                            "min": 1,
                            "max": 255,
                            "default_value": 128
                        },
                        "wdr_coefficeient": {
                            "type": "int32",
                            "mode": "r",
                            "min": 1,
                            "max": 255,
                            "default_value": 128
                        },
                        "dwdr_coefficeient": {
                            "type": "int32",
                            "mode": "r",
                            "min": 1,
                            "max": 255,
                            "default_value": 128
                        },
                        "hlc_strength": {
                            "type": "int32",
                            "mode": "r",
                            "min": 1,
                            "max": 255,
                            "default_value": 128
                        },
                        "white_balance": {
                            "default": "Auto",
                            "type": "string",
                            "mode": "rw",
                            "items": [
                                "Auto",
                                "Manual"
                            ]
                        },
                        "red_tuning": {
                            "type": "int32",
                            "mode": "r",
                            "min": 1,
                            "max": 255,
                            "default_value": 44
                        },
                        "green_tuning": {
                            "type": "int32",
                            "mode": "r",
                            "min": 1,
                            "max": 255,
                            "default_value": 27
                        },
                        "blue_tuning": {
                            "type": "int32",
                            "mode": "r",
                            "min": 1,
                            "max": 255,
                            "default_value": 54
                        },
                        "exposure_mode": {
                            "default": "Auto",
                            "type": "string",
                            "mode": "rw",
                            "items": [
                                "Auto",
                                "Manual"
                            ]
                        },
                        "shutter_limit": {
                            "default": "1/8",
                            "type": "string",
                            "mode": "rw",
                            "items": [
                                "1/5",
                                "1/8",
                                "1/15",
                                "1/30",
                                "1/60",
                                "1/120",
                                "1/150",
                                "1/180",
                                "1/200",
                                "1/240",
                                "1/250",
                                "1/300",
                                "1/360",
                                "1/480",
                                "1/500",
                                "1/600",
                                "1/700",
                                "1/1000",
                                "1/1500",
                                "1/2500",
                                "1/5000",
                                "1/10000",
                                "1/12000",
                                "1/20000",
                                "Flickerless"
                            ]
                        },
                        "support_default": {"type": "bool"},
                        "support_flickerless_mode": {
                            "type": "string",
                            "items": ["Auto"]
                        }
                    }
                },
                "CH2": {
                    "type": "object",
                    "items": {
                        "status": {
                            "description": "Only offline channel has this variable.",
                            "type": "string",
                            "mode": "r",
                            "items": [
                                "Offline",
                                "Online"
                            ]
                        },
                        "angle_rotation": {
                            "chn_linkage": "CH1",
                            "default": "0",
                            "type": "string",
                            "mode": "rw",
                            "items": [
                                "0",
                                "180"
                            ]
                        },
                        "mirror_mode": {
                            "chn_linkage": "CH1",
                            "default": "Close",
                            "type": "string",
                            "mode": "rw",
                            "items": [
                                "Close",
                                "VerticalMirroring",
                                "HorizontalMirroring",
                                "All"
                            ]
                        },
                        "denoising_2dlevel": {
                            "type": "int32",
                            "mode": "r",
                            "min": 0,
                            "max": 100,
                            "default_value": 50
                        },
                        "denoising_3dlevel": {
                            "type": "int32",
                            "mode": "r",
                            "min": 0,
                            "max": 100,
                            "default_value": 50
                        },
                        "enhancement_level": {
                            "type": "int32",
                            "mode": "r",
                            "min": 0,
                            "max": 100,
                            "default_value": 50
                        },
                        "imagefusion_level": {
                            "type": "int32",
                            "mode": "r",
                            "min": 1,
                            "max": 100,
                            "default_value": 50
                        },
                        "edgefusion_level": {
                            "type": "int32",
                            "mode": "r",
                            "min": 1,
                            "max": 100,
                            "default_value": 50
                        },
                        "fusion": {
                            "default": "Normal",
                            "type": "string",
                            "mode": "rw",
                            "items": [
                                "Normal",
                                "Details Overlay"
                            ]
                        },
                        "horizontal_trim": {
                            "type": "int32",
                            "mode": "r",
                            "min": -100,
                            "max": 100,
                            "default_value": 0
                        },
                        "vertica_trim": {
                            "type": "int32",
                            "mode": "r",
                            "min": -100,
                            "max": 100,
                            "default_value": 0
                        },
                        "fusion_distance": {
                            "type": "double",
                            "mode": "r",
                            "min": 1,
                            "max": 200,
                            "default_value": 1
                        },
                        "palette": {
                            "default": "White Hot",
                            "type": "string",
                            "mode": "rw",
                            "items": [
                                "White Hot",
                                "Black Hot",
                                "Rainbow",
                                "Ice Fire",
                                "Red Hot",
                                "Green Hot",
                                "Fusion 1",
                                "Fusion 2",
                                "Hot Iron 1",
                                "Hot Iron 2",
                                "Puce",
                                "Color 1",
                                "Color 2",
                                "Rain",
                                "Dark Blue"
                            ]
                        },
                        "support_backgroundcorr": {"type": "bool"},
                        "support_shuttercorr": {"type": "bool"},
                        "enhance_regional": {
                            "default": "Full Screen",
                            "type": "string",
                            "mode": "rw",
                            "items": [
                                "Center-25",
                                "Center-50",
                                "Center-75",
                                "Bottom",
                                "Middle Area",
                                "Top",
                                "Customizations",
                                "Full Screen",
                                "Disable"
                            ]
                        },
                        "support_default": {"type": "bool"},
                        "rule_info": {
                            "type": "array",
                            "min_size": 0,
                            "max_size": 1,
                            "items": [{
                                "rule_no": 1,
                                "rule_rect": {
                                    "type": "object",
                                    "items": {
                                        "left": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "top": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        },
                                        "width": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 704
                                        },
                                        "height": {
                                            "type": "int32",
                                            "min": 0,
                                            "max": 576
                                        }
                                    }
                                }
                            }]
                        }
                    }
                }
            }
        }
    }
}

Error Code

See Response message body and general error_code for more information.

Set

Function

This API is used for set Thermal > ImageControl page.

Request Message

Parameter Description

See Thermal > ImageControl > Response Message > Parameter Description > Table 1 Obtain the parameter description.

Sample:

POST /API/ChannelConfig/ImageControl/Set HTTP/1.1
{
    "version": "1.0",
    "data": {"channel_info": {
        "CH1": {
            "status": "Online",
            "image_setting": "DayNightMode",
            "DayNightMode": {
                "ir_cut_mode": "Image",
                "image_sensitivity": 1,
                "ir_led": "Manual",
                "low_beam_light": 100
            },
            "mirror_mode": "Close",
            "angle_rotation": "0",
            "Daylight": {
                "back_light": "Close",
                "blc_level": 2,
                "back_light_area": "Center",
                "denoising": "Auto",
                "white_balance": "Auto",
                "exposure_mode": "Auto",
                "shutter_limit": "1/8"
            },
            "support_default": true
        },
        "CH2": {
            "status": "Online",
            "mirror_mode": "Close",
            "angle_rotation": "0",
            "denoising_2dlevel": 50,
            "denoising_3dlevel": 50,
            "enhancement_level": 50,
            "enhance_regional": "Disable",
            "rule_info": [{
                "rule_no": 1,
                "rule_rect": {
                    "left": 0,
                    "top": 0,
                    "width": 0,
                    "height": 0
                },
                "Select": 0
            }],
            "palette": "Rainbow",
            "fusion": "Normal",
            "imagefusion_level": 50,
            "edgefusion_level": 50,
            "horizontal_trim": 0,
            "vertica_trim": 0,
            "fusion_distance": 2,
            "support_backgroundcorr": true,
            "support_shuttercorr": true,
            "support_default": true,
            "chn_index": "CH2",
            "page": "chn_imgCtrl",
            "camera_param_mode": "Daylight",
            "Daylight": {}
        }
    }}
}

Response Message

none

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Error Code

See Response message body and general error_code for more information.

Measurement(Thermal imaging channel CH2 support)

Function

This API is used to get or set for Measurement parameter.

URL

POST /API/Thermal/Setup/Measurement/{Action}

Table 1 Description Parameter details

Parameter Description

Table 1

ParameterRequiredDescription
ActionyesRequest actions, including Range, Get, Set

Get

Function

This API is used to get Thermal > Measurement parameter.

Request Message

Parameter Description

See Thermal > Measurement > Request Message >Parameter Description > Table 1 Obtain the parameter description.

Sample:

POST /API/Thermal/Setup/Measurement/Get HTTP/1.1
{
    "version": "1.0",
    "data":{
        "page_type":"ChannelConfig"
        }

}

Response Message

Parameter Description

See Thermal > Measurement > Response Message >Parameter Description > Table 2 Obtain the parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {"channel_info": {"CH2": {
        "status": "Online",
        "switch": false,
        "colorbar_switch": false,
        "display_temp_on_optical": false,
        "display_temp_on_stream": true,
        "display_max_temp": true,
        "display_min_temp": false,
        "display_average_temp": false,
        "display_pos": "Near Target",
        "spot_measurement": false,
        "data_refresh_rate": "3",
        "temp_unit": "Degree Celsius",
        "emissivity": 0.96,
        "distance_unit": "Meter",
        "target_distance": 1,
        "reflective_temp": 25
    }}}
}

Error Code

See Response message body and general error_code for more information.

Range

Function

This API is used to get Thermal > Measurement parameter scale

Request Message

Parameter Description

Table 1

ParameterRangeTypedescription
channel"CH1"…"CHx",
"IP_CH1"…"IP_CHx",
"WIFI_CH1"…"WIFI_CHx"
Channels supported by the device
string arrayIPC can only be used "CH1"。
page_type“ChannelConfig”
“AlarmConfig”
stringData used to distinguish between the channel configuration page and the alarm configuration page

Sample:

POST /API/Thermal/Setup/Measurement/Range HTTP/1.1
{
    "version": "1.0",
    "data":{
        "page_type":"ChannelConfig"
        }

}

Response Message

Parameter Description

Table 2

ParameterRangeTypedescription
channel_infoJson ObjectChannel information see Table 3
page_type"ChannelConfig", "AlarmConfig"stringThe data used to distinguish between the channel configuration page and the alarm configuration page is only needed when setting.
channel_maxintTotal number of channels on the device

Table 3

ParameterRangeTypedescription
CH1Json ObjectJSON see Table 4
...Json Object
IP_CH1Json Object
...Json Object
WIFI_CH1Json Object
...Json Object

Table 4

ParameterRangeTypedescription
status"Offline"
"Online"
stringChannel online status, only for digital channels.
Note: This field does not exist when the channel is online
alarm_out“Local->1”
”Local->x”
“IP_CH1->1”
“IP_CH1->2”
” IP_CHx->1”
” IP_CHx->2”...
The number of channels depends on the performance of the device
arrayAlarm output channel
latch_time"5s","10s","20s","30s"stringAlarm output time Ipc value 5 10 20 30
record_enableboolchannel video switch
post_recording"OFF","5s","10s","20s","30s"stringVideo delay time Ipc value 0 5 10 20 30
send_emailtrue, falseboolSend Email switch
ftp_picture_uploadtrue, falseboolFTP upload switch of channel capture
ftp_video_uploadtrue, falseboolChannel video FTP upload switch
picture_to_cloudtrue, falseboolPicture upload switch
video_to_cloudtrue, falseboolVideo cloud upload switch
light_linkagetrue, falseboolLinkage switch of the white light. When motion is triggered, the linkage triggers the white light
enforcerlight_linkagetrue, falseboolRed and blue light alarm switch
siren_linkagetrue, falseboolsiren alarm switch
http_listeningtrue, falseboolPush switch
switchtrue, falseboolswitch
colorbar_switchtrue, falseboolTemperature color bar switch Switch
display_temp_on_streamtrue, falseboolThe temperature is displayed on the stream switch
display_temp_on_opticaltrue, falseboolThe temperature is displayed on the optical channel switch
display_max_temptrue, falseboolDisplays the maximum temperature switch
display_min_temptrue, falseboolDisplays the minimum temperature switch
display_average_temptrue, falseboolDisplays the average temperature switch
spot_measurementtrue, falseboolClick anywhere in the image to get a temperature reading for a specific location, which takes 5 seconds to display in the preview screen. Default off
display_pos"Near Target","Top Left"stringTemperature display location option
data_refresh_rate1~5int(original)Temperature measuring frame rate(Data Refresh Rate)
(now)Temperature measurement frame rate(Data Refresh Interval(s),Default value 3
temp_unit"Degree Celsius"
"Degree Fahrenheit"
"Degree Kelvin"
stringTemperature unit option
reflective_tempJson ObjectReflective Temperature value(rangeVaries with temperature units and gain options)
( high gain:
{C:-40~200 F: -40~392 K:233.15~473.15}
low gain:
{ C:-40~600 F: -40~1112 K:233.15~873.15})Json see Table 5
emissivity0.01~ 1doubleemissivity
distance_unit"Meter"
"Feet"
stringMeter and Feet, default Meter
target_distance0~100doubleTarget Distance unit m
record_channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…”
WIFI_CH1x”
arrayVideo alarm output channel
ftp_picture_upload_channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…”
WIFI_CH1x”
arrayCapture image FTP upload alarm output channel
ftp_video_upload_channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…”
WIFI_CH1x”
arrayVideo FTP upload alarm output channel
picture_cloud_channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…”
WIFI_CH1x”
arrayImage upload alarm output channel
video_cloud_channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…”
WIFI_CH1x”
arrayVideo cloud upload alarm output channel
scheduleJSON arraySchedule see Table 6

Table 5

ParameterRangeTypedescription
Degree Celsius[-40,200]double
Degree Fahrenheit[-40,392]double
Degree Kelvin[233.14999389648437,473.1499938964844]double

Table 6

ParameterRangeTypedescription
schedule_type“Record”stringtime schedule:Record,AlarmOut,SendEmail
weekJSON arrayweek json see Table 7

Table 7

ParameterRangeTypedescription
daySun,Mon,Tue,Wed
Thu,Fri,Sat
stringMark the day of the week
time0: disables the time range
1: enables the time range
arrayEach array bit identifies half an hour

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_max": 1,
        "channel_info": {
            "type": "object",
            "items": {"CH2": {
                "type": "object",
                "items": {
                    "status": {
                        "description": "Only offline channel has this variable.",
                        "type": "string",
                        "mode": "r",
                        "items": [
                            "Offline",
                            "Online"
                        ]
                    },
                    "switch": {"type": "bool"},
                    "colorbar_switch": {"type": "bool"},
                    "display_temp_on_stream": {"type": "bool"},
                    "display_temp_on_optical": {"type": "bool"},
                    "display_max_temp": {"type": "bool"},
                    "display_min_temp": {"type": "bool"},
                    "display_average_temp": {"type": "bool"},
                    "display_pos": {
                        "type": "string",
                        "items": [
                            "Near Target",
                            "Top Left"
                        ]
                    },
                    "spot_measurement": {"type": "bool"},
                    "data_refresh_rate": {
                        "type": "string",
                        "items": [
                            "1",
                            "2",
                            "3",
                            "4",
                            "5"
                        ]
                    },
                    "temp_unit": {
                        "type": "string",
                        "items": [
                            "Degree Celsius",
                            "Degree Fahrenheit",
                            "Degree Kelvin"
                        ]
                    },
                    "emissivity": {
                        "type": "double",
                        "mode": "r",
                        "min": 0.01,
                        "max": 1,
                        "default_value": 1
                    },
                    "distance_unit": {
                        "type": "string",
                        "items": [
                            "Meter",
                            "Feet"
                        ]
                    },
                    "target_distance": {
                        "type": "double",
                        "mode": "r",
                        "min": 0,
                        "max": 100,
                        "default_value": 1
                    },
                    "reflective_temp": {
                        "type": "object",
                        "items": {
                            "Degree Celsius": {
                                "type": "double",
                                "mode": "r",
                                "min": -40,
                                "max": 200,
                                "default_value": 25
                            },
                            "Degree Fahrenheit": {
                                "type": "double",
                                "mode": "r",
                                "min": -40,
                                "max": 392,
                                "default_value": 77
                            },
                            "Degree Kelvin": {
                                "type": "double",
                                "mode": "r",
                                "min": 233.14999389648437,
                                "max": 473.1499938964844,
                                "default_value": 298.1499938964844
                            }
                        }
                    }
                }
            }}
        }
    }
}

Error Code

See Response message body and general error_code for more information.

Set

Function

This API is used to set Thermal > Measurement parameter.

Request Message

Parameter Description

See Thermal > Measurement > Request Message >Parameter Description > Table 2 Obtain the parameter description.

Sample:

POST /API/Thermal/Setup/Measurement/Set HTTP/1.1
{
    "version": "1.0",
    "data": {
        "channel_info": {"CH2": {
            "status": "Online",
            "switch": true,
            "colorbar_switch": false,
            "display_temp_on_optical": false,
            "display_temp_on_stream": true,
            "display_max_temp": true,
            "display_min_temp": false,
            "display_average_temp": false,
            "display_pos": "Near Target",
            "spot_measurement": false,
            "data_refresh_rate": "3",
            "temp_unit": "Degree Celsius",
            "emissivity": 0.96,
            "distance_unit": "Meter",
            "target_distance": 1,
            "reflective_temp": 20,
            "chn_index": "CH2",
            "page": "chn_measurement"
        }},
        "page_type": "ChannelConfig"
    }
}

Response Message

none

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Error Code

See Response message body and general error_code for more information.

Measurement Rule(Thermal imaging channel CH2 support)

Function

This API is used to get or set for MeasurementRule parameter.

URL

POST /API/Thermal/Setup/MeasurementRules/{Action}

Table 1 Description Parameter details

Parameter Description

Table 1

ParameterRequiredDescription
ActionyesRequest actions, including Range, Get, Set, Add, Delete.

Add

Function

This API is used to add Thermal > Measurement Rule parameter

Request Message

Parameter Description

See Thermal > Measurement Rule > Request Message >Parameter Description > Table 1 Get Parameter description.

Sample:

POST /API/Thermal/Setup/MeasurementRules/Add HTTP/1.1
{
    "version": "1.0",
    "data": {"channel": "CH2"}
}

Response Message

none

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Error Code

See Response message body and general error_code for more information.

Delete

Function

This API is used to delete Thermal > Measurement Rule parameter

Request Message

Parameter Description

See Thermal > Measurement Rule > Request Message >Parameter Description > Table 1 Get Parameter description.

Sample:

POST /API/Thermal/Setup/MeasurementRules/Delete HTTP/1.1
{
    "version": "1.0",
    "data": {
        "channel": "CH2",
        "DeleteId": [1]
    }
}

Response Message

none

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Error Code

See Response message body and general error_code for more information.

Get

Function

This API is used to get parameter for Thermal > Measurement Rule page.

Request Message

Parameter Description

See Thermal > Measurement Rule > Request Message >Parameter Description > Table 1 Get Parameter description.

Sample:

POST /API/Thermal/Setup/MeasurementRules/Get HTTP/1.1
{
    "version": "1.0",
    "data":{
        "page_type":"ChannelConfig"
        }

}

Response Message

Parameter Description

see Thermal > Measurement Rule > Response Message >Parameter Description > Table 2 Get Parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {"channel_info": {"CH2": {
        "status": "Online",
        "id_info": [{
            "id_switch": false,
            "Id": 1,
            "rule_name": "1",
            "emissivity": 0.96,
            "target_distance": 1,
            "reflective_temp": 25,
            "alarm_temp": 40,
            "alarm_rules": "Above Max Temp",
            "duration_time": 3,
            "tolerance_temp": 3,
            "rule_info": {
                "rule_point": {
                    "x": -1,
                    "y": -1
                },
                "rule_type": "Point"
            }
        }]
    }}}
}

Error Code

See Response message body and general error_code for more information.

Range

Function

This API is used to get Thermal > Measurement Rule parameter scale

Request Message

Parameter Description

Table 1

ParameterRangeTypedescription
channel"CH1"…"CHx",
"IP_CH1"…"IP_CHx",
"WIFI_CH1"…"WIFI_CHx"
Channels supported by the device.
string arrayIPC can only be used "CH1".
page_type“ChannelConfig”
“AlarmConfig”
stringData used to distinguish between the channel configuration page and the alarm configuration page
DeleteIdint arrayid to be deleted (Currently supported id numbers 1 to 8)

Sample:

POST /API/Thermal/Setup/MeasurementRules/Range HTTP/1.1
{
    "version": "1.0",
    "data":{
        "page_type":"ChannelConfig"
        }

}

Response Message

Parameter Description

Table 2

ParameterRangeTypedescription
channel_infoJson ObjectChannel information see Table 3
page_type"ChannelConfig", "AlarmConfig"stringThe data used to distinguish between the channel configuration page and the alarm configuration page is only needed when setting.
channel_maxintTotal number of channels on the device

Table 3

ParameterRangeTypedescription
CH1Json ObjectJSON see Table 4
...Json Object
IP_CH1Json Object
...Json Object
WIFI_CH1Json Object
...Json Object

Table 4

ParameterRangeTypedescription
status"Offline"
"Online"
stringChannel online status, only for digital channels.
Note: This field does not exist when the channel is online
id_infoJson ArrayJson see Table 5
id_maxintMaximum id number

Table 5

ParameterRangeTypedescription
alarm_out“Local->1”
”Local->x”
“IP_CH1->1”
“IP_CH1->2”
” IP_CHx->1”
” IP_CHx->2”...
The number of channels depends on the performance of the device
arrayAlarm output channel
alarm_rulesJson ObjectSee Alarm rule Json information Table 6
alarm_tempdoubleAlarm threshold
(range varies with temperature units and gain options)
(high gain :
{C:-40~200 F: -40~392 K:233.15~473.15}
Low gain:
{ C:-40~600 F: -40~1112 K:233.15~873.15})
duration_time0~100intfiltration time
tolerance_temp0~ 5doubleTolerance temperature difference
latch_time"5s","10s","20s","30s"stringAlarm output time Ipc value 5 10 20 30
record_enableboolSupports channel video switch
post_recording"OFF","5s","10s","20s","30s"stringVideo delay time Ipc value 0 5 10 20 30
send_emailtrue, falseboolSend Email switch
ftp_picture_uploadtrue, falseboolFTP upload switch of channel capture
ftp_video_uploadtrue, falseboolChannel video FTP upload switch
picture_to_cloudtrue, falseboolPicture upload switch
video_to_cloudtrue, falseboolVideo cloud upload switch
light_linkagetrue, falseboolLinkage switch of the white light. When motion is triggered, the linkage triggers the white light
enforcerlight_linkagetrue, falseboolRed and blue light alarm switch
siren_linkagetrue, falseboolsiren alarm switch
http_listeningtrue, falseboolPush switch
id_switchtrue, falseboolswitch
rule_name0~127stringRule Name
rule_infoJSON objectJson see Table 7
emissivity0.01~ 1doubleemissivity
target_distance0~200doubleobject distance
reflective_temptrue, falsedoubleReflective Temperature values (range varies with temperature units and gain options)
(high gain :
{C:-40~200 F: -40~392 K:233.15~473.15}
Low gain:
{ C:-40~600 F: -40~1112 K:233.15~873.15})
Idtrue, falseintid of the current rule
record_channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…”
WIFI_CH1x”
arrayVideo alarm output channel
ftp_picture_upload_channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…”
WIFI_CH1x”
arrayCapture image FTP upload alarm output channel
ftp_video_upload_channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…”
WIFI_CH1x”
arrayVideo FTP upload alarm output channel
picture_cloud_channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…”
WIFI_CH1x”
arrayImage upload alarm output channel
video_cloud_channel“CH1”…”CH1x”
“IP_CH1”…” IP_CH1x”
“WIFI_CH1”…”
WIFI_CH1x”
arrayVideo cloud upload alarm output channel
scheduleJSON arraySchedule see Table 8

Table 6

ParameterRangeTypedescription
Point"Above Average Temp"
"Below Average Temp"
stringSelect the alarm temperature type of a temperature measurement rule whose rule type is Point
Line"Above Max Temp"
"Below Max Temp"
"Above Min Temp"
"Below Min Temp"
"Above Average Temp"
"Below Average Temp"
"Above Temp Diff"
"Below Temp Diff"
stringSelect the alarm temperature type of the temperature detection rule whose rule type is Line
Rect[1,100]stringSelect the alarm temperature type of the temperature measurement rule whose rule type is Rect

Table 7

ParameterRangeTypedescription
rule_type"Point"
"Line"
"Rect"
"Area"
stringRule type
rule_pointJson ObjectPoint Json information see Table 9
rule_lineJson ObjectSee Line Json information Table 10
rule_rectJson ObjectFor rectangular Json information see Table 11
rule_areaJson ObjectOctagon Json information see Table 12(Do not display if not implemented)

Table 8

ParameterRangeTypedescription
schedule_type“Record”stringtime schedule:Record,AlarmOut,SendEmail
weekJSON arrayweek json see Table 13

Table 9

ParameterRangeTypedescription
x-1-704intx coordinates
y-1-576inty coordinates

Table 10

ParameterRangeTypedescription
x10-704intx1 coordinates
y10-576inty1 coordinates
x20-704intx2 coordinates
y20-576inty2 coordinates

Table 11

ParameterRangeTypedescription
left0-704intx coordinates
top0-576inty coordinates
width0-704intwidth
height0-576intheight

Table 12

ParameterRangeTypedescription
x10-704intx1 coordinates
y10-576inty1 coordinates
x20-704intx2 coordinates
y20-576inty2 coordinates
x30-704intx3 coordinates
y30-576inty3 coordinates
x40-704intx4 coordinates
y40-576inty4 coordinates
x50-704intx5 coordinates
y50-576inty5 coordinates
x60-704intx6 coordinates
y60-576inty6 coordinates
x70-704intx7 coordinates
y70-576inty7 coordinates
x80-704intx8 coordinates
y80-576inty8 coordinates

Table 13

ParameterRangeTypedescription
daySun,Mon,Tue,Wed
Thu,Fri,Sat
stringMark the day of the week
time0: disables the time range
1: enables the time range
arrayEach array bit identifies half an hour

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_max": 1,
        "channel_info": {
            "type": "object",
            "items": {"CH2": {
                "type": "object",
                "items": {
                    "status": {
                        "description": "Only offline channel has this variable.",
                        "type": "string",
                        "mode": "r",
                        "items": [
                            "Offline",
                            "Online"
                        ]
                    },
                    "id_info": {
                        "type": "array",
                        "min_size": 0,
                        "max_size": 20,
                        "items": [{
                            "id_switch": {
                                "type": "bool",
                                "mode": "r"
                            },
                            "Id": {
                                "type": "int32",
                                "mode": "r",
                                "min": 0,
                                "max": 20,
                                "default_value": 0
                            },
                            "rule_name": {
                                "type": "string",
                                "mode": "r",
                                "min_len": 0,
                                "max_len": 127,
                                "default_value": "1"
                            },
                            "emissivity": {
                                "type": "double",
                                "mode": "r",
                                "min": 0.01,
                                "max": 1,
                                "default_value": 0.96
                            },
                            "target_distance": {
                                "type": "double",
                                "mode": "r",
                                "min": 0,
                                "max": 200,
                                "default_value": 1
                            },
                            "reflective_temp": {
                                "type": "double",
                                "mode": "r",
                                "min": -40,
                                "max": 200,
                                "default_value": 25
                            },
                            "alarm_temp": {
                                "type": "object",
                                "items": {
                                    "Above Max Temp": {
                                        "type": "double",
                                        "mode": "r",
                                        "min": -20,
                                        "max": 150,
                                        "default_value": 1.0496921113399777e+192
                                    },
                                    "Below Max Temp": {
                                        "type": "double",
                                        "mode": "r",
                                        "min": -20,
                                        "max": 150,
                                        "default_value": 1.0496921113399777e+192
                                    },
                                    "Above Min Temp": {
                                        "type": "double",
                                        "mode": "r",
                                        "min": -20,
                                        "max": 150,
                                        "default_value": 1.0496921113399777e+192
                                    },
                                    "Below Min Temp": {
                                        "type": "double",
                                        "mode": "r",
                                        "min": -20,
                                        "max": 150,
                                        "default_value": 1.0496921113399777e+192
                                    },
                                    "Above Average Temp": {
                                        "type": "double",
                                        "mode": "r",
                                        "min": -20,
                                        "max": 150,
                                        "default_value": 1.0496921113399777e+192
                                    },
                                    "Below Average Temp": {
                                        "type": "double",
                                        "mode": "r",
                                        "min": -20,
                                        "max": 150,
                                        "default_value": 1.0496921113399777e+192
                                    },
                                    "Above Temp Diff": {
                                        "type": "double",
                                        "mode": "r",
                                        "min": 1,
                                        "max": 170,
                                        "default_value": 1.0496921113399777e+192
                                    },
                                    "Below Temp Diff": {
                                        "type": "double",
                                        "mode": "r",
                                        "min": 1,
                                        "max": 170,
                                        "default_value": 1.0496921113399777e+192
                                    }
                                }
                            },
                            "alarm_rules": {
                                "type": "object",
                                "items": {
                                    "Point": {
                                        "type": "string",
                                        "items": [
                                            "Above Average Temp",
                                            "Below Average Temp"
                                        ]
                                    },
                                    "Line": {
                                        "type": "string",
                                        "items": [
                                            "Above Max Temp",
                                            "Below Max Temp",
                                            "Above Min Temp",
                                            "Below Min Temp",
                                            "Above Average Temp",
                                            "Below Average Temp",
                                            "Above Temp Diff",
                                            "Below Temp Diff"
                                        ]
                                    },
                                    "Rect": {
                                        "type": "string",
                                        "items": [
                                            "Above Max Temp",
                                            "Below Max Temp",
                                            "Above Min Temp",
                                            "Below Min Temp",
                                            "Above Average Temp",
                                            "Below Average Temp",
                                            "Above Temp Diff",
                                            "Below Temp Diff"
                                        ]
                                    }
                                }
                            },
                            "duration_time": {
                                "type": "int32",
                                "mode": "r",
                                "min": 0,
                                "max": 200,
                                "default_value": 3
                            },
                            "tolerance_temp": {
                                "type": "double",
                                "mode": "r",
                                "min": 0,
                                "max": 5,
                                "default_value": 3
                            },
                            "rule_info": {
                                "type": "object",
                                "items": {
                                    "rule_type": {
                                        "type": "string",
                                        "mode": "r",
                                        "items": [
                                            "Point",
                                            "Line",
                                            "Rect"
                                        ],
                                        "default_value": "Point"
                                    },
                                    "rule_point": {
                                        "type": "object",
                                        "items": {
                                            "x": {
                                                "type": "int32",
                                                "mode": "r",
                                                "min": -1,
                                                "max": 704,
                                                "default_value": -1
                                            },
                                            "y": {
                                                "type": "int32",
                                                "mode": "r",
                                                "min": -1,
                                                "max": 576,
                                                "default_value": -1
                                            }
                                        }
                                    },
                                    "rule_line": {
                                        "type": "object",
                                        "items": {
                                            "x1": {
                                                "type": "int32",
                                                "mode": "r",
                                                "min": 0,
                                                "max": 704,
                                                "default_value": 0
                                            },
                                            "y1": {
                                                "type": "int32",
                                                "mode": "r",
                                                "min": 0,
                                                "max": 576,
                                                "default_value": 0
                                            },
                                            "x2": {
                                                "type": "int32",
                                                "mode": "r",
                                                "min": 0,
                                                "max": 704,
                                                "default_value": 0
                                            },
                                            "y2": {
                                                "type": "int32",
                                                "mode": "r",
                                                "min": 0,
                                                "max": 576,
                                                "default_value": 0
                                            }
                                        }
                                    },
                                    "rule_rect": {
                                        "type": "object",
                                        "items": {
                                            "left": {
                                                "type": "int32",
                                                "mode": "r",
                                                "min": 0,
                                                "max": 704,
                                                "default_value": 0
                                            },
                                            "top": {
                                                "type": "int32",
                                                "mode": "r",
                                                "min": 0,
                                                "max": 576,
                                                "default_value": 0
                                            },
                                            "width": {
                                                "type": "int32",
                                                "mode": "r",
                                                "min": 0,
                                                "max": 704,
                                                "default_value": 0
                                            },
                                            "height": {
                                                "type": "int32",
                                                "mode": "r",
                                                "min": 0,
                                                "max": 576,
                                                "default_value": 0
                                            }
                                        }
                                    }
                                }
                            }
                        }]
                    }
                }
            }}
        }
    }
}

Error Code

See Response message body and general error_code for more information.

Set

Function

This API is used to set Thermal > Measurement Rule page

Request Message

Parameter Description

See Thermal > Measurement Rule > Response Message >Parameter Description > Table 2 Get Parameter description.

Sample:

POST /API/Thermal/Setup/MeasurementRules/Set HTTP/1.1
{
    "version": "1.0",
    "data": {
        "channel_info": {"CH2": {
            "status": "Online",
            "switch": true,
            "colorbar_switch": false,
            "display_temp_on_optical": false,
            "display_temp_on_stream": true,
            "display_max_temp": true,
            "display_min_temp": false,
            "display_average_temp": false,
            "display_pos": "Near Target",
            "spot_measurement": false,
            "data_refresh_rate": "3",
            "temp_unit": "Degree Celsius",
            "emissivity": 0.96,
            "distance_unit": "Meter",
            "target_distance": 1,
            "reflective_temp": 20,
            "chn_index": "CH2",
            "page": "chn_measurement"
        }},
        "page_type": "ChannelConfig"
    }
}

Response Message

none

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Error Code

See Response message body and general error_code for more information.

Spot Measurement

Function

This API is used to get for Spot Measurement parameter.

URL

POST /PreviewChannel/PreviewShowTempByPos/{Action}

Table 1 Description Parameter details

Parameter Description

Table 1

ParameterRequiredDescription
ActionyesRequest actions, including Get

Set

Function

This API is used to get Thermal > Spot Measurement parameter

Request Message

Parameter Description

Table 1

ParameterRangeTypedescription
channel"CH1"…"CHx",
"IP_CH1"…"IP_CHx",
"WIFI_CH1"…"WIFI_CHx"
Channels supported by the device.
string arrayIPC can only be used "CH1"。
x0-704intPreview click location, x
y0-576intPreview click position, y

Sample:

POST /API/PreviewChannel/PreviewShowTempByPos/Get HTTP/1.1
{
    "data": {
       "channel":"CH2",
       "x":10,
       "y":20
    }
}

Response Message

Parameter Description

Table 2

ParameterRangeTypedescription
channel"CH1"…"CHx",
"IP_CH1"…"IP_CHx",
"WIFI_CH1"…"WIFI_CHx"
Channels supported by the device.
string arrayIPC can only be used "CH1"。
temp_strstringA string that displays the temperature
show_time1- 60intDisplay time, unit: ms. This parameter is not displayed. The default display time is 5000ms
font_color0-704JSON arrayText color, temporarily do not pass, web default[r,g,b]==[0,0,0]
bg_color0-576JSON arrayBackground color, not uploaded for now, web default[r,g,b]==[0,255,0]
x0-704intPreview click location, x
y0-576intPreview click position, y

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel": "CH2",
        "x": 10,
        "y": 20,
        "temp_str": "25.66℃"
    }
}

Error Code

See Response message body and general error_code for more information.

Video Color (IPC: Optical channel: CH1, Thermal imaging channel: CH2)

Function

This API is used to get or set Video Color Thermal imaging channel parameters

URL

POST /API/ChannelConfig/Color/{Action}

Table 1 Description Parameter details

Parameter Description

Table 1

ParameterRequiredDescription
ActionyesRequest actions, including Range, Get, Set, Default.

Default

Function

This API is used to restore default parameter for Thermal > Video Color page.

Request Message

Parameter Description

Table 1

ParameterRangeTypedescription
channel"CH1","CHx",
"IP_CH1","IP_CHx",
"WIFI_CH1","WIFI_CHx"
Channels supported by the device.
stringDevice channel number

Sample:

POST /API/ChannelConfig/Color/Default HTTP/1.1
{
    "version": "1.0",
    "data": {"channel": ["CH1"]}
}

Response Message

none

Sample:

{
    "result": "success",
    "data": {}
}

Error Code

See Response message body and general error_code for more information.

Get

Function

This API is used to get Thermal > Video Color parameter

Request Message

none

Response Message

Parameter Description

See Thermal > Video Color > Response Message > Parameter Description > Table 1 Obtain the parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {"channel_info": {
        "CH1": {
            "status": "Online",
            "bright": 128,
            "contrast": 128,
            "support_default": true,
            "hue": 128,
            "saturation": 128,
            "sharpness": 128
        },
        "CH2": {
            "status": "Online",
            "bright": 128,
            "contrast": 128,
            "support_default": true,
            "text": "Thermal",
            "palette": "Hot Iron 2"
        }
    }}
}

Error Code

See Response message body and general error_code for more information.

Range

Function

This API is used to get Thermal > Video Color parameter scale

Request Message

none

Response Message

Parameter Description

Table 1

ParameterRangeTypedescription
channel_infoJson ObjectChannel information see Table 2

Table 2

ParameterRangeTypedescription
CH1Json ObjectJSON see Table 3
...Json Object
IP_CH1Json Object
...Json Object
WIFI_CH1Json Object
...Json Object

Table 3

ParameterRangeTypedescription
status"Offline"
"Online"
stringChannel online status, only for digital channels.
Note: This field does not exist when the channel is online
bright0-255intbright
contrast0-255intcontrast
palette"White Hot"
"Black Hot"
"Rainbow"
"Ice Fire"
"Red Hot"
"Green Hot"
"Fusion 1"
"Fusion 2"
"Hot Iron 1"
"Hot Iron 2"
"Puce"
"Color 1"
"Color 2"
"Rain"
"Dark Blue"
stringpseudo color
support_defaultboolWhether to restore the default value

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {"channel_info": {
        "type": "object",
        "items": {
            "CH1": {
                "type": "object",
                "items": {
                    "status": {
                        "description": "Only offline channel has this variable.",
                        "type": "string",
                        "mode": "r",
                        "items": [
                            "Offline",
                            "Online"
                        ]
                    },
                    "support_default": {"type": "bool"},
                    "bright": {
                        "description": "Brightness",
                        "type": "int32",
                        "mode": "r",
                        "min": 0,
                        "max": 255
                    },
                    "contrast": {
                        "type": "int32",
                        "min": 0,
                        "max": 255
                    },
                    "hue": {
                        "type": "int32",
                        "min": 0,
                        "max": 255
                    },
                    "saturation": {
                        "type": "int32",
                        "min": 0,
                        "max": 255
                    },
                    "sharpness": {
                        "type": "int32",
                        "min": 0,
                        "max": 255
                    }
                },
                "channel": "CH1"
            },
            "CH2": {
                "type": "object",
                "items": {
                    "status": {
                        "description": "Only offline channel has this variable.",
                        "type": "string",
                        "mode": "r",
                        "items": [
                            "Offline",
                            "Online"
                        ]
                    },
                    "support_default": {"type": "bool"},
                    "bright": {
                        "description": "Brightness",
                        "type": "int32",
                        "mode": "r",
                        "min": 0,
                        "max": 255
                    },
                    "contrast": {
                        "type": "int32",
                        "min": 0,
                        "max": 255
                    },
                    "palette": {
                        "type": "string",
                        "items": [
                            "White Hot",
                            "Black Hot",
                            "Rainbow",
                            "Ice Fire",
                            "Red Hot",
                            "Green Hot",
                            "Fusion 1",
                            "Fusion 2",
                            "Hot Iron 1",
                            "Hot Iron 2",
                            "Puce",
                            "Color 1",
                            "Color 2",
                            "Rain",
                            "Dark Blue"
                        ]
                    }
                },
                "channel": "CH2"
            }
        }
    }}
}

Error Code

See Response message body and general error_code for more information.

Set

Function

This API is used to Set Thermal > Video Color page.

Request Message

Parameter Description

See Thermal > Video Color >Response Message > Parameter Description > Table 1 Obtain the parameter description.

Sample:

POST /API/ChannelConfig/Color/Set HTTP/1.1
{
    "version": "1.0",
    "data": {"channel_info": {"CH1": {
        "status": "Online",
        "bright": 128,
        "contrast": 128,
        "support_default": true,
        "hue": 167,
        "saturation": 128,
        "sharpness": 128,
        "last_hue": 50,
        "last_bright": 50,
        "last_contrast": 50,
        "last_saturation": 50,
        "last_sharpness": 50,
        "SunRise_time": "00:00",
        "SunSet_time": "00:00",
        "palette": "Rainbow"
    }}}
}

Response Message

none

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Error Code

See Response message body and general error_code for more information.

ConsumerInfo

Get

Function

This API is used to get ConsumerInfo parameter。

Request Message

none

Response Message

Parameter Description

Table 1
ParameterRangeTypedescription
product_codestringConsumer product code
domain_namestringIndicates the domain name of the consumer server
customer_idstringThe customer number added by the consumer ID
cloud_idstringcustomer cloud id

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
"result":"success",
    "data":{
        "product_code":"W1P"
    }
}

Error Code

See Response message bodygeneral error_code for more information.

Set

Function

This API is used for setup ConsumerInfo parameter。

Request Message

Parameter Description

See ConsumerInfo > Response Message > Parameter Description > Table 1 Get Parameter description

Sample:

POST /API/ChannelConfig/ImageControl/Set HTTP/1.1
{
 "data":{
        "domain_name":"xxxx",
        "customer_id":"00",
        "cloud_id":"xxxx"
    }
}

Response Message

none

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Error Code

See Response message bodygeneral error_code for more information.

Login

Account Rules

Funtion

This API is used for get user rule restrictions parameters.

URI

POST /API/AccountRules/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Get.

Get

Function

Get user rule restrictions.

Request Message

None.

Sample:

POST /API/AccountRules/Get HTTP/1.1
{
    "version": "1.0",
    "data": {
    }
}

Response Message

Parameter Description

Table 1
ParameterRangeTypeDescription
usernameobjectRule restrictions of username,see Table 2 for more information.
passwordobjectRule restrictions of password,see Table 2 for more information.
Table 2
ParameterRangeTypeDescription
min_length1-8intMinimum length.
max_length16-16intMaximum length.
character_combinations_num1-4intAt least the number of character combinations.
character_combinations"ALPHA",
"alpha",
"Alpha",
"digit",
"special"
string arrayCharacter combination list.
specialstringSpecial character.
not_same_usernameboolCan be the same as the user name.
deny_passwordstring arrayThe password cannot be set the same as in the array.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "username": 
        {
            "min_length": 1,
            "character_combinations": 
            [
                "Alpha",
                "digit",
                "special"
            ],
            "special": "_"
        },
        
        "password": 
        {
            "min_length": 8,
            "not_same_username": true,
            "character_combinations_num": 2,
            "character_combinations": 
            [
                "ALPHA",
                "alpha",
                "digit",
                "special"
            ],
            "special": "`~!@#$%^&*()-_=+\\|[{}];:'\",<.>/?"
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

DevicePage

Funtion

This API is used for get Remote Setting page parameters.

URI

POST /API/Login/DevicePage/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYesRequest action, including Get.

Get

Function

This API is used for get Remote Setting page parameters.

Request Message

None.

Sample:

POST /API/Login/DevicePage/Get HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 1
ParameterRangeTypeDescription
mainobject arrayLevel 1 menu array,see Table 2 for more information of array member.
Table 2
ParameterRangeTypeDescription
titlelen:0-64stringLevel one menu title,
"Display",
"Record",
"Alarm",
"AI",
"Network",
"Storage",
"System",
"Intelligent".
subobject arrayLevel 2 menu array,see Table 3 for more information of array member.
Table 3
ParameterRangeTypeDescription
titlelen:0-64stringTitle of level 2 menu.
pagesobject arrayLevel 3 menu array,see Table 4 for more information of array member.
Table 4
ParameterRangeTypeDescription
titlelen:0-64stringTitle of level 3 menu.
pagelen:0-64stringPage name in level 3 menu, confirm this with the client.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "main":[  //Level 1 menu
        {
            "title":"Channel",
            "sub":
            [   //Level 2 menu
                {
                    "title":"Channel",
                    "pages":
                    [ //Level 3 menu, corresponding to a single page
                        {
                            "title":"IP Channels",//name
                            "page":"chn_ipChn"//web page
                        },
                        {
                            "title":"Protocol Manage",
                            "page":"chn_protocolMng"
                        }
                    ]
                },
                ...
            ]
        },
        {
            ...
        },
        ...
    ]
}

see Web Pages for more information.

Error Code

See Response Messages Body and Common error_code for more information.

Level 1 Menu

  • "Channel",
  • "Record",
  • "Alarm",
  • "AI",
  • "Network",
  • "Device",
  • "System",
  • "Intelligent"

Level 2 Menu

...

Level 3 Menu

TitlePage
Channel related, page chn_
Analog Channelschn_analogChn
IP Channelschn_ipChn
Wireless Camerachn_wireChn
Protocol Managechn_protocolMng
Livechn_osd
Image Controlchn_imgCtrl
Video Coverchn_videoCover
Video Cropchn_videoCrop
PTZchn_ptz
FloodLightchn_floodlight
PIRchn_pir
PIDchn_pid
LCDchn_lcd
SODchn_sod
PDchn_pd
FDchn_fd
CCchn_cc
Sound_Detectionchn_sound_detection
Occlusion_Detectionchn_occlusion_detection
Intelligent_Analysischn_intelligent_analysis
-
Stream related, page stm_
Mainstreamstm_main
Substreamstm_sub
Mobilestreamstm_mob
Capturestm_capture
-
Video related, page rec_
Record Parametersrec_param
-
Schedule related, page schedules_
Record Scheduleschedules_rec
Capture Scheduleschedules_capture
Email Scheduleschedules_email
Ftp Scheduleschedules_ftp
CloudScheduleschedules_cloud
Intelligent Scheduleschedule_intelligent
Ai_Schedulesai_schedules
-
Network related, page net_
Generalnet_general
PPPoenet_pppoe
Wirelessnet_wireless
Port Configurationnet_port_conf
DDNSnet_ddns
Emailnet_email
Ip Filternet_ipFilter
-
Alarm related, page alarm_
IOalarm_io
Motionalarm_motion
Exceptionalarm_exception
PTZLinkagealarm_ptzLinkage
PIRalarm_pir
PIDalarm_pid
LCDalarm_lcd
SODalarm_sod
PDalarm_pd
FDalarm_fd
CCalarm_cc
Sound Detectionalarm_sound_detection
Occlusion Detectionalarm_occlusion_detection
Alarm Scheduleschedules_alarm
File Managementvoice_prompts_file
FloodLightchn_floodlight
Sirenchn_siren
Event Pushalarm_event_push
Disarmingalarm_disarming
-
Event related,page Event(IPC)
Setup subpage
Motionchn_motion
PIRchn_pir
FloodLightchn_floodlight
Sound Detectionchn_sound_detection
Occlusion Detectionchn_occlusion_detection
Voice Alarmalarm_voice
Alarm subpage
Motionalarm_motion
IOalarm_io
PIRalarm_pir
Sound Detectionalarm_sound_detection
Occlusion Detectionalarm_occlusion_detection
-
AI related, page AI
FD(Face Detection)chn_ai_fd
PD&VD(Human & Vehicle Detection)chn_ai_pvd
PID(Perimeter Intrusion Detection)chn_ai_pid
LCD(Line Crossing Detection)chn_ai_lcd
CC(Cross Counting)chn_ai_cc
HM(Heat Map)chn_heat_map
SOD(Goods Lost Legacy)chn_ai_sod
CD(Crowd Density Detection)chn_ai_cd
QD(Queue Lenght Detection)chn_ai_qd
Model Configurationai_model_configuration
Database Managementai_database_management
FR(Face Recognition)alarm_ai_fr
AD(Attribute Detection)alarm_ai_attribute
PD&VD(Human&Vehicle Detection)alarm_ai_pvd
PID(Perimeter Intrusion Detection)alarm_ai_pid
LCD(Line Crossing Detection)alarm_ai_lcd
CC(Cross Counting)alarm_ai_cc
FD(Face Detection)alarm_ai_fd
FA(Face Attendance)alarm_ai_fa
SOD(Goods Lost Legacy)alarm_ai_sod
CD(Crowd Density Detection)alarm_ai_cd
QD(Queue Lenght Detection)alarm_ai_qd
LPD (License Plate Detection)alarm_ai_lpd
RSD(Rare Sound Detection)alarm_ai_rsd
Face Detectionai_fd_statistics
Human&Vehicle Detectionai_pvd_statistics
Heat Map Statisticsai_hm_statistics
Cross Counting Statisticsai_cc_statistics
Intrusionchn_ai_intrusion
Intrusionalarm_ai_intrusion
Region Entrancechn_region_entrance
Region Entrancealarm_region_entrance
Region Exitingchn_region_exiting
Region Exitingalarm_region_exiting
-
Storage related, page storage_
Diskstorage_disk
Disk Groupstorage_diskGroup
Cloudstorage_cloud
Ftpnet_ftp
-
System related, page sys_
Generalsys_general
Date and Timesys_date_time
Output Configurationsys_output_conf
Privacy Statementsys_pricacy_statement
Multi-Usersys_user
Upgradesys_upgrade
IPC Upgradesys_ipcUpgrade
IPC Load Defaultsys_ipcLoad_default
Reboot IPCsys_ipcAuto_reboot
InformationsysInfo_base
Channel InformationsysInfo_chn
Record InformationsysInfo_rec
Network StatesysInfo_net
-
Other
Auto Rebootsys_auto_reboot
Parameter Managementsys_param_mgt
Load Defaultsys_load_default
Logsys_maint_log
Sys Defogging Fansys_defogging_fan

FirstLogin

Function

This API includes the API for setting the password for the first login of the device.

URI

POST /API/FirstLogin/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including
Password/**.

Password

Function

This API includes the API for setting the password for the first login of the device.

URI

POST /API/FirstLogin/Password/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYesRequest action, including Set.

Set

Function

This API is used to set the password for the first login of the device.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
base_enc_passwordobjectEncrypted password object, see base_enc_password information Table for object members.
base_secondary_authenticationobjectAuthentication object, see base_secondary_authentication information Table for object members.
activation_pwdobjectEncrypted password object, used to activate ipc, object members see base_enc_password information Table . (for NVR only)
support_recover_pwdboolWhether to support password recovery settings.

Sample:

POST /API/FirstLogin/Password/Set HTTP/1.1
{
    "version": "1.0",
    "data": {
        "base_enc_password": {
            "seq": 0,
            "peer_key": "0z3+fzVXn/msq6ZagsHDY57sI29XtP3qIL+gVOW4hJH8=",
            "cipher": "075RisUMqoS9110GpXIoJhlJJQORLeWpmU12SZpcSFkDMLfIj"
        },
        "activation_pwd": {
            "seq": 0,
            "peer_key": "09BuUR966wl41vQIcS2WwAQRh3mATOABaq3TYSDfheh4=",
            "cipher": "0Cn8dz0BTQ0uM4BGHVRwuHXzeurPj2BeFKB8kOb2dkVmKr959sw=="
        }
    }
}

Response Message

None.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Login

Function

This API includes APIs such as heartbeat, getting device information before and after login, and getting channel information. Client login and subsequent process reference:

st=>start: Start

getInfoBeforeLogin=>operation: /API/Login/Range Getting information before login.
Login=>operation: Login
setAdminPwd=>operation: /API/FirstLogin/Password/Set Setting password of Admin.
heartBeat=>operation: /API/Login/Heartbeat Sent every 30s after login, used to keep the session alive.
getChn&DevInfo=>operation: /API/Login/ChannelInfo/Get /API/Login/DeviceInfo/Get Getting device and channel information.
optOtherAPI=>operation: Operate other APIs.
Logout=>operation: Logout

isFirstLogin=>condition: Is first login?
isLoginSuccess=>condition: Is login success?

e_1=>end: End
e_2=>end: End
e_3=>end: End

st->getInfoBeforeLogin->isFirstLogin
isFirstLogin(no)->Login->isLoginSuccess
isFirstLogin(yes)->setAdminPwd->e_1
isLoginSuccess(no)->e_2
isLoginSuccess(yes)->heartBeat->getChn&DevInfo->optOtherAPI->Logout->e_3

/API/Login/Range The interface is not authenticated, and returns whether the system login in for the first time (admin without a password), and some information for display. If it is the first login state of the system, the client calls /API/FirstLogin/Password/Set to set password of admin,after that it can be login.

URI

POST /API/Login/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including
Range,
Heartbeat,
DeviceInfo/*,
ChannelInfo/*.

Heartbeat

Function

This API is used to send heartbeat, and send a heartbeat request every 30s after login to ensure that the heartbeat does not expire after timeout.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
keep_aliveboolKeep session live.

Sample:

POST /API/Login/Heartbeat HTTP/1.1
{
    "version": "1.0",
    "data": {
        "keep_alive": true
    }
}

Response Message

None.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Range

Function

This API is used to get device information before login.

Request Message

None.

Sample:

POST /API/Login/Range HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 1
ParameterRangeTypeDescription
device_type"IPCstringUsed to determine the type of current device before login.
cur_langstringCurrent display language.
usernameMax length: 16 bytestringUsername.
passwordstringPassword
pwd_tip"ipc_tip",
"nvr_tip",
"dvr_tip"
stringTip of password panel.
password_tipsboolWhether to display the tip of password.
lang_strsobjectList of languages supported for selection, language types such as Table 2.
default_langstringDefault languages.
custom_nameintCustom name.
custom_logointCustom logo.
first_login_flagboolThe sign of logging in to IE with an empty password, that is, whether it is the first time to log in.
wifi_ipstringWifi ip.
web_titlestring"Web Viewer".
site_versionstringVersion.
support_recover_passwordboolwhether it support password retrieval function.
use_recover_passwordboolWhether to use the password retrieval function.
default_usernamestringDefault username,when there is no password, it is displayed when it is used to modify the password.
password_encboolWhether the password is encrypted for transmission.
http_api_versionstringThe currently supported API version, the current version is: V1.0. (Note: This field is only available in version 8.2.2)
Table 2

lang_strs

ParameterRangeTypeDescription
CHS中文string
CHT繁体中文string
CSYČEŠTINAstring
DANDANSKstring
ENUEnglishstring
FINFINNISHstring
FRAFRANÇAISstring
DEUDEUTSCHstring
ELLΕΛΛΗΝΙΚΑstring
HEBעבריתstring
HUNMAGYARstring
ITAITALIANOstring
JPN日本語string
PLKPOLSKIstring
PTGPORTUGUÊSstring
RUSРУССКИЙstring
ESNESPAÑOLstring
THAไทยstring
SLVSLOVENIAstring
ROMROMANIANstring
BRGBULGARIANstring
ARAARABICstring
HINHINDIstring
VIEVIETNAMstring
HOLHOLLANDstring
TURTURKEYstring
POSPERSIANstring
SVESVENSKAstring
KORKOREANstring
INDINDONESIANstring
PTBPORTUGUESEstring
FLMFLEMISHstring
UKAУкраїнськаstring
SLKSlovenskystring

Tips:

The response message of the Range request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "username":
        {
            "type": "string",
            "min_len": 1,
            "min_len": 16
        },
        "password":
        {
            "type": "string",
            "min_len": 8,//The minimum password length supported by the system
            "min_len": 16//Maximum password length supported by the system
        },
        "pwd_tip": "nvr_tip",
        "first_login_flag": true,
        "default_username": "abc",
        "password_enc": true,
        "http_api_version": "V1.026",
        "default_lang": "CHS",
        "custom_name": 0,
        "custom_logo": 0,
        "login_exclusivity": false,
        "lang_strs":
        {
            "CHS": "中文",
            "CHT": "繁体中文",
            "CSY": "ČEŠTINA",
            "DAN": "DANSK",
            ....
            "PTB": "PORTUGUESE",
            "FLM": "FLEMISH",
            "UKA": "Українська",
            "SLK": "Slovensky"
        },
        "support_recover_password": true,
        "use_recover_password": true,
        "syn_activation_pwd_enable": true,
        "activation_pwd": true,
        "site_version": "dayzip"
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

ChannelInfo

Function

This API includes APIs such as obtaining channel information after login.

URI

POST /API/Login/ChannelInfo/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Get.

Get

Function

This API is used to get channel information

Request Message

None.

Sample:

POST /API/Login/ChannelInfo/Get HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 1
ParameterRangeTypeDescription
channel_paramobject arrayChannel parameter object array, single channel object parameter see Table 2 for more information.
Table 2
ParameterRangeTypeDescription
channelstringChannel number.
channel_namestringChannel name.
channel_aliasstringChannel alias.
videolossboolSignal of video loss.
connect_status"NotConfigured",
"Online",
"Offline"
"Sleep",
"NotPaired"
stringStatus of channel connection.
ability"Fisheye",
"Binoculars",
"Ptz",
"NewPtz"(NVR/DVR not required),
"HkPtz"
"Iris",
"Mainstream",
"Substream",
"Mobilestream",
"FloodLight",
"AudioAlarm",
"AlarmOutNum",
"TalkHalf",
"TalkFull",
"Color",
"RedBlueLight",
"NotAutoReconnect",
"Pir",
"Cover",
"Eventstream"
string arrayChannel funtion.
alarm_in_numintAlarm input supported by IPC channel.
alarm_out_numintAlarm output supported by IPC channel.
show_ptz_settingboolControls the display of the PTZ setting button on the preview interface.
intelligent_ability"CrossCount",
"HeatMap",
"SOD",
"LCD",
"PVD",
"FD",
>"PID",
"CrowdDensity",
"LPD",
"RSD",
"QD",
"AttributeDetect",
"FireDetection",
"TempMeas"
string arraySmart function.
talk_audio_ability"G711_A",
"G726_16KBPS_ASF",
"G726_24KBPS_ASF",
"G726_32KBPS_ASF",
"G726_40KBPS_ASF",
"AAC"
string arrayThe intercom audio format supported by Ipc.(if this field is not passed, the default is g711a, and if multiple fields are passed, the first one is used by default. Currently, only wireless models are used, and subsequent dvr and nvr can be reused if necessary)
wireless_ipc_typeintWireless IPC power supply type, battery 1, long-term power supply 2.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel_param": {
            "type": "array",
            "min_size": 0,
            "max_size": 16,
            "items": [
                {
                    "channel": "CH1",
                    "connect_status": "FailConnectNetwork",
                    "channel_name": "Camera1",
                    "channel_alias": "CH1",
                    "ability": [],
                    "intelligent_ability": [],
                    "alarm_in_num": 0,
                    "alarm_out_num": 0,
                    "videoloss": true
                },
                {
                    "channel": "CH2",
                    "connect_status": "NotConfigured",
                    "channel_name": "",
                    "channel_alias": "",
                    "ability": [],
                    "intelligent_ability": [],
                    "alarm_in_num": 0,
                    "alarm_out_num": 0,
                    "videoloss": true
                },
                {
                    "channel": "CH3",
                    "connect_status": "NotConfigured",
                    "channel_name": "",
                    "channel_alias": "",
                    "ability": [],
                    "intelligent_ability": [],
                    "alarm_in_num": 0,
                    "alarm_out_num": 0,
                    "videoloss": true
                },
                {
                    "channel": "CH4",
                    "connect_status": "NotConfigured",
                    "channel_name": "",
                    "channel_alias": "",
                    "ability": [],
                    "intelligent_ability": [],
                    "alarm_in_num": 0,
                    "alarm_out_num": 0,
                    "videoloss": true
                },
                {
                    "channel": "CH5",
                    "connect_status": "NotConfigured",
                    "channel_name": "",
                    "channel_alias": "",
                    "ability": [],
                    "intelligent_ability": [],
                    "alarm_in_num": 0,
                    "alarm_out_num": 0,
                    "videoloss": true
                },
                {
                    "channel": "CH6",
                    "connect_status": "NotConfigured",
                    "channel_name": "",
                    "channel_alias": "",
                    "ability": [],
                    "intelligent_ability": [],
                    "alarm_in_num": 0,
                    "alarm_out_num": 0,
                    "videoloss": true
                },
                {
                    "channel": "CH7",
                    "connect_status": "NotConfigured",
                    "channel_name": "",
                    "channel_alias": "",
                    "ability": [],
                    "intelligent_ability": [],
                    "alarm_in_num": 0,
                    "alarm_out_num": 0,
                    "videoloss": true
                },
                {
                    "channel": "CH8",
                    "connect_status": "Online",
                    "channel_name": "Ccadq",
                    "channel_alias": "CH8",
                    "ability": [
                        "Mainstream",
                        "Substream",
                        "Mobilestream",
                        "Ptz",
                        "AudioAlarm",
                        "RedBlueLight",
                        "TalkFull",
                        "Color",
                        "Cover"
                    ],
                    "intelligent_ability": [
                        "CrossCount",
                        "HeatMap",
                        "SOD",
                        "LCD",
                        "PVD",
                        "FD",
                        "PID",
                        "CrowdDensity",
                        "LPD",
                        "RSD",
                        "QD",
                        "AttributeDetect"
                    ],
                    "alarm_in_num": 0,
                    "alarm_out_num": 0,
                    "videoloss": false
                },
                {
                    "channel": "CH9",
                    "connect_status": "NotConfigured",
                    "channel_name": "",
                    "channel_alias": "",
                    "ability": [],
                    "intelligent_ability": [],
                    "alarm_in_num": 0,
                    "alarm_out_num": 0,
                    "videoloss": true
                },
                {
                    "channel": "CH10",
                    "connect_status": "NotConfigured",
                    "channel_name": "",
                    "channel_alias": "",
                    "ability": [],
                    "intelligent_ability": [],
                    "alarm_in_num": 0,
                    "alarm_out_num": 0,
                    "videoloss": true
                },
                {
                    "channel": "CH11",
                    "connect_status": "NotConfigured",
                    "channel_name": "",
                    "channel_alias": "",
                    "ability": [],
                    "intelligent_ability": [],
                    "alarm_in_num": 0,
                    "alarm_out_num": 0,
                    "videoloss": true
                },
                {
                    "channel": "CH12",
                    "connect_status": "Online",
                    "channel_name": "Camera",
                    "channel_alias": "CH12",
                    "ability": [
                        "Mainstream",
                        "Substream",
                        "Mobilestream",
                        "AlarmOutNum",
                        "TalkHalf",
                        "TalkFull",
                        "Color",
                        "Cover"
                    ],
                    "intelligent_ability": [
                        "CrossCount",
                        "HeatMap",
                        "SOD",
                        "LCD",
                        "PVD",
                        "FD",
                        "PID"
                    ],
                    "alarm_in_num": 1,
                    "alarm_out_num": 1,
                    "videoloss": false
                },
                {
                    "channel": "CH13",
                    "connect_status": "FailConnectNetwork",
                    "channel_name": "Camera",
                    "channel_alias": "CH13",
                    "ability": [],
                    "intelligent_ability": [],
                    "alarm_in_num": 0,
                    "alarm_out_num": 0,
                    "videoloss": true
                },
                {
                    "channel": "CH14",
                    "connect_status": "FailConnectNetwork",
                    "channel_name": "Camera",
                    "channel_alias": "CH14",
                    "ability": [],
                    "intelligent_ability": [],
                    "alarm_in_num": 0,
                    "alarm_out_num": 0,
                    "videoloss": true
                },
                {
                    "channel": "CH15",
                    "connect_status": "NotConfigured",
                    "channel_name": "",
                    "channel_alias": "",
                    "ability": [],
                    "intelligent_ability": [],
                    "alarm_in_num": 0,
                    "alarm_out_num": 0,
                    "videoloss": true
                },
                {
                    "channel": "CH16",
                    "connect_status": "NotConfigured",
                    "channel_name": "",
                    "channel_alias": "",
                    "ability": [],
                    "intelligent_ability": [],
                    "alarm_in_num": 0,
                    "alarm_out_num": 0,
                    "videoloss": true
                }
            ]
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

DeviceInfo

Function

This API is used to get device information after login.

URI

POST /API/Login/DeviceInfo/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Get.

Get

Function

Get device information.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
requestor"NVR"stringSource of information requested: eg: NVR, etc.
front_chn_indexintThe requested channel number.
Usage scenario: When DVR/NVR is connected to multi-channel devices, this field is required to obtain front-end ipc device information. When the connected device receives this field, it will request the device information of the corresponding channel ipc and forward it to the connecter.
is_need_ftpurlboolIf there is a field, it means that there is no need to reply to the URL with a plaintext password (ftp upgrade http upgrade).
support_camera_day_night_paramboolWhether to support turning on the day and night switching mode.
To be compatible with 823NVR, 824IPC day and night mode switching capability is actively obtained by NVR.

Sample:

POST /API/Login/DeviceInfo/Get HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 2
ParameterRangeTypeDescription
channel_numintTotal number of channels.
analog_channel_numintTotal number of analog channels.
stream_profile"Mainstream",
"Substream",
"Mobilestream"
string arraySupport several stream switching.
support_ftp_upgradeboolWhether to support ftp upgrade.
support_http_upgradeboolWhether to support http upgrade.
ftp_upgrade_urlstringFtp upgrade url.
http_upgrade_urlstringhttp upgrade url.
support_cloud_upgradeboolWhether to support cloud upgrade.
push_type"VVPush",
"Baidu",
"RSPush",
"TutkPush"
stringPush type
default_stream"Mainstream",
"Substream"
stringIE default stream type.
client_logout_time"0s",
"30s",
"1m",
"5m",
"30m"
stringClient timeout.
pushinfo_type"Motion",
"Io",
"Videoloss",
"Pir"
string arrayPush message type.
ptz_supportboolWhether to support ptz
local_alarmin_numintBoard alarm input.
local_alarmout_numintBoard alarm output.
suggested_modify_pwdboolWhether it is recommended to change the password.
support_face_configboolWhether to support face parameter query and setting.
support_ie_down_snapboolWhether to support IE to download board snapshots.
support_human_vehicle_searchboolWhether to support pedestrian and vehicle search functions.
support_lpd_enhanceboolWhether to enhance the function of vehicle identification.
preview_numintMain stream preview channel number.
mac_addrMax length:35bytestringMAC address.
support_io_recordboolWhether to support determining whether the program has IO alarms based on the total number of IO alarms at the front and rear ends.
support_manual_recordboolWhether to support manual recording type search.
support_sound_recordboolSound alarm display flag: 0 hidden, 1: displayed.
support_playback_new_rec_detailboolSupport NewRecordDetailRsp(New_GetRecFileList) search.
support_playback_new_rec_file_downloadboolSupport NewRecordDetailRsp (New_GetRecFileList) video download, support video file lock query and lock setting.
support_more_chn_playbackboolSignal of IE playback page support multi-channel playback (more than 4 channels).
support_video_cover_recordboolWhether to display the video tampering alarm.
support_smart_recordboolWhether to display the intelligent analysis page.
support_substream_playbackboolWhether to support substream playback.
support_pir_recordboolWhether to support PIR.
support_flood_lightboolWhether to support floodlights.
support_speakerboolWhether to support speakers.
show_certificate_remain_timeboolWhether to display the validity period of the certificate,
true: the validity period of the custom certificate is less than 8 days.
certificate_remain_time0-10intValid days for custom certificates.
media_portSee Communication Matrix.
media_external_portSee Communication Matrix.
local_ipstringLocal ip.
upgrade_file_max_size0-100intThe maximum size of the board upgrade file, in MB.
upgrade_head_trans_size0-3intThe length of the upgrade header information on the board side, in units of k.
support_audio_volumeboolWhether to support volume adjustment.
talkback"TalkHalf",
"TalkFull"
string
soundboolThe sound switch is displayed.
enable_encryptionboolPrivate protocol encryption.
device_preview_ability"manual_alarm",
"face"
string arrayControls the set of capabilities displayed on the side of the preview.
device_preview_AI_item"FR",
"Human",
"Vehicle",
"PID_Human",
"PID_Vehicle",
"LCD_Human",
"LCD_Vehicle",
"Non-Vehicle",
"PID_Non-Vehicle",
"LCD_Non-Vehicle",
"Intrusion_Human",
"Intrusion_Vehicle",
"Intrusion_Non-Vehicle",
"RegionEntrance_Human",
"RegionEntrance_Vehicle",
"RegionEntrance_Non-Vehicle",
"RegionExiting_Human",
"RegionExiting_Vehicle",
"RegionExitng_Non-Vehicle"
string arrayControl the set of options displayed on the side of the AI preview (after the update, this field is also used to judge the type in the playback intelligent image search, and the intelligent type judgment in the intelligent data statistics interface).
device_main_menu"localSetting",
"remoteSetting",
"playback",
"preview"
string arrayControls the set of capabilities displayed on the upper right side of the preview.
support_ai_pic_reportboolWhether support the reporting of AI face, human and vehicle pictures.
support_repeat_visitorboolWhether to support repeat customer function (for NVR only).
support_face_attendanceboolWhether to support the face attendance function (only for NVR).
support_heat_mapboolWhether to support the heat map function (only for NVR).
support_fisheyeboolWhether to support fisheye function (only for NVR).
support_binocularsboolWhether to support binocular function (only for NVR).
support_cc_scenarioboolWhether to support over-the-line scene application.
support_attendance_scenarioboolWhether to support face-based real-time attendance scene application.
support_face_attributeboolWhether to support face attributes.
support_ai_pidlcdboolWhether to support AI perimeters and tripwires.
support_ai_ccboolWhether to support AI crossing count.
support_disarmingboolWhether it supports one-key disarm function.
dev_typeunsigned long longDev type.
device_typeMax length:24bytestringDevice type
dev_play_backcapunsigned charDev playback mode: 0-old playback mode, 1-fast forward and fast rewind only take one frame mode, 2-fast forward and fast rewind jump I frame mode.
support_PidLcd_searchboolWhether to support Pid Lcd search function.
support_aacboolWhether to support AAC audio format.
p2p_idstringP2P ID.
support_hls_serverboolSupport single-channel HLS stream.
videoloss_statusboolWhether to display the missing logo.
nocamera_displayboolWhether to display nocamera text.
FR_model_versionintIPC face recognition model version.
FD_model_versionintIPC face detection model version.
support_voice_promptsboolWhether to support voice broadcast.
support_ANRboolWhether to support offline supplementary recording.
support_siren_audioboolWhether to support white light alarm sound type selection.
support_floodlight_color_image_ctrlboolWhether to support floodlight color function.
support_param_import_exportboolWhether to support parameter import and export.
support_occlusion_detectionboolWhether to support occlusion alarm.
support_sound_detectionboolWhether to support sound detection.
support_osd_transparencyboolWhether to support osd transparency switch.
support_record_type_exboolWhether to support extended recording types.
encode_type_ability"H.264",
"H.265",
"MJPEG",
"H.264+",
"H.265+"
string arraySupported encoding types.
ptz_abilityobjectSupported ptz capabilities,see Table 3 for more information.
localsetobjectDefault format for local settings,see Table 4 for more information.
localsetRangeobjectFormat range for local settings,see Table 5 for more information.
support_get_fr_groupboolWhether to support face group acquisition, that is, support the GetId method.
support_get_lpr_groupboolWhether to support license plate group acquisition, that is, support the GetId method.
ManufacturerMax length:32byteStringManufacturer name.
wireless_devboolDetermine whether it is a wireless device, wireless device true, wired false.
support_top_onlineboolSupport online channel auto-completion function.
support_digitchannel_autofillboolSupport digital channel auto-completion function.
magic_channelstring arrayAn analog channel that has been converted to a digital channel.
accepted_compress_encodi"gzip"string arrayAPI body compression, support gzip compression.
support_partial_requestobjectAPI that supports paged data transfer,see Table 6 for more information.
support_record_type_exboolWhether to support record type expansion.
support_get_upgradeUrlpwboolWhether to support calling FtpUpgrade/Get API to get encrypted client server password.
Table 3
ParameterRangeTypeDescription
ptz_version"1.0",
"2.0"
stringPtz version.
btn_autofocusboolAuto focus.
quick_use"Ptz_QuickUse_3DPosition",
"Ptz_QuickUse_AutoFocus",
"Ptz_QuickUse_PtzReset",
"Ptz_QuickUse_WatchMode",
"Ptz_QuickUse_ManualHumanTrace",
"Ptz_QuickUse_LensReset"
string arrayShortcut function buttons.
iris_minus_addboolAperture increases and decreases.
Table 4
ParameterRangeTypeDescription
RecFileTypestringVideo download default format, neutral default is MP4.
CapFileTypestringThe default format of snapshots is neutral, and the default is JPG.
SwitchTimestringThe default interval is neutral, and the default interval is 10.
Table 5
ParameterRangeTypeDescription
RecFileType"RF",
"MP4",
"AVI"
stringVideo download format options.
CapFileType"JPG",
"BMP",
"PNG"
stringSnapshot format options.
SwitchTime1~60intInterval time range.
Table 6
ParameterRangeTypeDescription
/API/IPCMaintaint/IPCDisk/GetobjectAPI that supports page-by-page access to IPC SDK information, object member see Table 7 for more information.
/API/IPCMaintaint/IPCDisk/FormatobjectAPI that supports pagination formatting IPC SDK, object member see Table 7 for more information.
Table 7
ParameterRangeTypeDescription
type"channel_list"stringtype of data.
quota0-32intThe size of each page of data after paging.
totalintThe total size of the data.

Simple :

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "device_main_menu": [
            "localSetting",
            "remoteSetting",
            "playback",
            "preview"
        ],
        "intelligent_chn_arr": [
            "CH1",
            "CH2",
            "CH3",
            "CH4",
            "CH5",
            "CH6",
            "CH7",
            "CH8",
            "CH9",
            "CH10",
            "CH11",
            "CH12",
            "CH13",
            "CH14",
            "CH15",
            "CH16"
        ],
        "channel_num": 16,
        "analog_channel_num": 0,
        "sys_channel_num": 16,
        "stream_profile": {
            "type": "string",
            "items": [
                "Mainstream",
                "Substream",
                "Mobilestream"
            ]
        },
        "support_ftp_upgrade": true,
        "support_ftp_ipc_upgrade": true,
        "support_cloud_upgrade": false,
        "push_type": "RSPush",
        "default_stream": "SubStream",
        "pushinfo_type": {
            "type": "string",
            "items": [
                "Motion",
                "Io",
                "Videoloss",
                "Pir"
            ]
        },
        "local_alarmin_num": 8,
        "local_alarmout_num": 1,
        "suggested_modify_pwd": false,
        "support_ie_down_snap": true,
        "support_face_config": true,
        "support_face_attribute": true,
        "support_get_fr_group": true,
        "support_human_vehicle_search": true,
        "support_PidLcd_search": true,
        "support_Intrusion_search": true,
        "support_RegionEntrance_search": true,
        "support_RegionExiting_search": true,
        "support_eventchk_snap": true,
        "support_get_lpr_group": true,
        "support_license_plate": true,
        "support_lpd_enhance": true,
        "preview_num": 0,
        "mac_addr": "5C-F2-07-49-31-41",
        "support_smart_record": true,
        "support_substream_playback": true,
        "support_pir_record": true,
        "support_flood_light": true,
        "support_record_tag": true,
        "support_persian_calendar": false,
        "support_backward_play": true,
        "support_hls_server": true,
        "support_speaker": true,
        "talkback": "TalkFull",
        "support_sound_record": true,
        "support_manual_record": true,
        "support_video_cover_record": true,
        "support_more_chn_playback": false,
        "support_aac": false,
        "videoloss_status": true,
        "nocamera_display": true,
        "support_playback_new_rec_detail": true,
        "support_playback_new_rec_file_download": true,
        "support_io_record": true,
        "activation_password_weak": false,
        "upgrade_file_max_size": 100,
        "upgrade_head_trans_size": 3,
        "media_port": 9000,
        "media_external_port": 9000,
        "local_ip": "172.16.10.169",
        "enable_encryption": true,
        "support_ai_pic_report": true,
        "device_preview_ability": [
            "manual_alarm",
            "face"
        ],
        "device_preview_AI_item": [
            "FR",
            "Human",
            "Vehicle",
            "Non-Vehicle",
            "PID_Human",
            "PID_Vehicle",
            "LCD_Human",
            "LCD_Vehicle",
            "PID_Non-Vehicle",
            "LCD_Non-Vehicle",
            "Intrusion_Human",
            "Intrusion_Vehicle",
            "RegionEntrance_Human",
            "RegionEntrance_Vehicle",
            "RegionExiting_Human",
            "RegionExiting_Vehicle",
            "Intrusion_Non-Vehicle",
            "RegionEntrance_Non-Vehicle",
            "RegionExiting_Non-Vehicle",
            "LPR"
        ],
        "support_repeat_visitor": true,
        "support_face_attendance": true,
        "support_heat_map": true,
        "sound": true,
        "support_audio_volume": true,
        "support_fisheye": true,
        "support_cc_scenario": true,
        "support_attendance_scenario": true,
        "support_ai_pidlcd": true,
        "support_ai_cc": true,
        "support_disarming": true,
        "support_ai_notification_subscribe": true,
        "ishide_notification_interval": true,
        "ishide_notification_intervalnew_8.2.4": false,
        "support_measurement_area": true,
        "localset": {
            "RecFileType": "MP4",
            "CapFileType": "JPG",
            "SwitchTime": 10
        },
        "backup_video_encryption_pwd": {
            "type": "string",
            "min_len": 6,
            "max_len": 32
        },
        "support_backup_video_encryption": true,
        "localsetRange": {
            "type": "object",
            "items": {
                "RecFileType": {
                    "type": "string",
                    "items": [
                        "RF",
                        "MP4",
                        "AVI"
                    ]
                },
                "CapFileType": {
                    "type": "string",
                    "items": [
                        "JPG",
                        "BMP",
                        "PNG"
                    ]
                },
                "SwitchTime": {
                    "type": "int32",
                    "min": 1,
                    "max": 60
                }
            }
        },
        "dev_play_backcap": 2,
        "dev_type": 5932088454189811000,
        "device_type": "N7816",
        "wireless_dev": false,
        "p2p_id": "",
        "support_shortlive_acctoken": true,
        "cast_screen_google_url": "http://ip/hls/live/CHX/X/livetop.mp4",
        "cast_screen_aws_url": "http://ip/hls/live/CHX/X/livetop.mp4",
        "support_ai": true,
        "support_record_type_ex": true,
        "snapshot_size": "640x480",
        "date_format": "MM/DD/YYYY h:m:s"
    }
}

Partial request

{
    "result": "success",
    "data": {
                .
                .
                .
        "support_partial_request":
        {
            "/API/IPCMaintaint/IPCDisk/Get":
            {
                "type": "channel_list",
                "quota" : 16,
                "total" : 256
            },
            "/API/IPCMaintaint/IPCDisk/Format":
            {
                "type": "channel_list",
                "quota" : 16,
                "total" : 256
            }
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

PreviewChannel

Function

This API includes Get PTZ Information, Control PTZ, Get Light Siren Information, Control Light Siren, Get DualTalk Information, Control DualTalk, Get Manual Alarm Information, Control Manual Alarm.

URI

POST /API/PreviewChannel/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including
PTZ/*,
DualTalk/*,
Floodlight2AudioAlarm/*,
ManualAlarm.

DualTalk

Function

This API includes getting and setting two-way intercom information.

URI

POST /API/PreviewChannel/DualTalk/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Get,
Set.

Get

Function

This API is used to obtain two-way intercom information.

Request Message

Parameter Description

see PreviewChannel > PTZ > Get > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/PreviewChannel/DualTalk/Get HTTP/1.1
{
    "version": "1.0",
    "data":{
        "channel":"IP_CH4",
        "command_flag":false,
    }
}

Response Message

Parameter Description

Table 1
ParameterRangeTypeDescription
channel"CH1"…"CH1x",
"IP_CH1"…" IP_CH1x",
"WIFI_CH1"…" WIFI_CH1x"
The channel names supported by the device.
stringChannel name
action0-1int1:open, 0:close

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result":"success",
    "data":{
        "channel": "CH1",
        "action": 1
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to control two-way intercom.

Request Message

Parameter Description

See PreviewChannel > DualTalk > Get > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/PreviewChannel/DualTalk/Set HTTP/1.1
{
    "version": "1.0",
    "data":{
        "channel": "CH1",
        "action": 1
    }
}

Response Message

None.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result":"success",
    "data":{
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Floodlight2AudioAlarm

Function

This API includes getting and setting flood light to audio alarm parameter.

URI

POST /API/PreviewChannel/Floodlight2AudioAlarm/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Get,
Set.

Get

Function

This API is used to get light siren information.

Request Message

Parameter Description

See PreviewChannel > PTZ > Get > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/PreviewChannel/Floodlight2AudioAlarm/Get HTTP/1.1
{
    "version": "1.0",
    "data":{
        "channel":"IP_CH4",
        "command_flag":false,
    }
}

Response Message

Parameter Description

Table 1
ParameterRangeTypeDescription
channelstringChannel name.
floodlight_switchtrue,falseboolFlood light real-time switch,false: close;true: open.
floodlight_mode0-1intFlood light mode, 0: always on, 1: flashing.
floodlight_value1-100intBrightness of flood light.
floodlight_strobe_frequency0-2arrayEnabled in blinking mode, 0:low; 1:middle; 2:high.
floodlight_value_range1-100intFlood light brightness range.
audioAlarm _switchtrue,falseboolHorn real-time switch,false: close true: open.
audioAlarm _value1-10intAudio volume.
audioAlarm_value_range1-10intAudio volume range.
operation_type"Floodlight",
"AudioAlarm",
"RedBlueLight",
"All"
stringOperation type.
redBlueLight_switchboolRed and blue light switch.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result":"success",
    "data":{
        "channel": "CH8",
        "redBlueLight_switch": false,
        "audioAlarm_switch": false,
        "audioAlarm_value": 5,
        "audioAlarm_value_range": {
            "type": "int32",
            "min": 1,
            "max": 10
        },
        "audioAlarm_value_adjustable": true
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API contains parameters for setting light and sound sirens.

Request Message

Parameter Description

See PreviewChannel > Floodlight2AudioAlarm > Get > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/PreviewChannel/Floodlight2AudioAlarm/Set HTTP/1.1
{
    "version": "1.0",
    "data":{
        "channel":"CH8",
        "redBlueLight_switch":true,
        "audioAlarm_switch":false,
        "audioAlarm_value":5,
        "audioAlarm_value_range":
        {
            "type":"int32",
            "min":1,
            "max":10
        },
        "audioAlarm_value_adjustable":true,
        "operation_type":"RedBlueLight"
    }
}

Response Message

None.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result":"success",
    "data":{
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

ManualAlarm

Function

This API contains parameters for getting and setting lights and sounds for sirens.

URI

POST /API/PreviewChannel/ManualAlarm/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Get, Set.

Get

Function

This API contains parameters for setting light and sound sirens.

Request Message

None.

Sample:

POST /API/PreviewChannel/ManualAlarm/Get HTTP/1.1
{
    "version": "1.0",
    "data":{
    }
}

Response Message

Parameter Description

Table 1
ParameterRangeTypeDescription
Local->1boolLocal->1 channel alarm switch
......bool......
Loca->xboolLocal->x channel alarm switch
IP_CH1->1boolIP_CH1->1 channel alarm switch
......bool......
IP_CHx->xboolIP_CHx->x channel alarm switch

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result":"success",
    "data":{
        "Local->1": false,
        "IP_CH1->1": false,
        "IP_CH12->1": false
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to control manual alarms.

Request Message

Parameter Description

See PreviewChannel > ManualAlarm > Get > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/PreviewChannel/ManualAlarm/Set HTTP/1.1
{
    "version": "1.0",
    "data":{
        "Local->1": true,
        "Local->2": true,
        "IP_CH1->1": true
    }
}

Response Message

None.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result":"success",
    "data":{
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

PTZ

Function

This API is used for getting control PTZ and PTZ status information or controlling PTZ.

URI

POST /API/PreviewChannel/PTZ/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including
Get,
Control,
Control/Progress.

Get

Function

This API is used to get PTZ control information.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
channel"CH1"…"CHx",
"IP_CH1"…" IP_CHx",
"WIFI_CH1"…",WIFI_CHx",
The number of channels depends on the capabilities of the device.
stringChannel name.

Sample:

POST /API/PreviewChannel/PTZ/Get HTTP/1.1
{
    "version": "1.0",
    "data":{
        "channel": "CH1",
        "disable_ManualHumanTrace": false,
        "current_cruise_mode": "Mode_Default_Cruise",
        "zoom_step": 5,
        "focus_step": 5
    }
}

Response Message

Parameter Description

Table 2
ParameterRangeTypeDescription
channelstring
ptz_version"1.0","2.0","3.0"stringPtz version.
cmd"Ptz_Cmd_Up",
"Ptz_Cmd_Down",


"Ptz_Privacy_Mode",
"Ptz_Trace_Mode"
stringSee Table 3 for more information of cmd.
state"Stop","Start"stringFor button press and release.
zoom_step1,5,20intZoom adjust the number of steps.
focus_step1,5,20intFocus adjust the number of steps.
zoom_sliderDepending on the lensintZoom slider.
focus_sliderDepending on the lensintFocus slider.
isctlboolWhether gray screen; true: no gray screen; false: gray screen.
speed0-10
0-100(For DVR/NVR)
int(only control)
preset_point0-255int arrayThe maximum length of the array is 255, each bit represents a preset point, the value of each bit (0-255) represents the polling time of the corresponding preset point, 0 means no preset point is set for this bit.
line_scan_stateboolLine scan cruise state.
trace_preset_pointarrayPreset point set by TOUR.
preset_point_no1-255int(only control)
ctl_stopbooltrue:stop ctl operation(only control)
preset_point_time1-255intSingle preset point polling time.(only control)
preset_point_namelen:1-31stringPreset point name, ranging from 1 to 31 character.
zoom_minus_add"Ptz_Cmd_ZoomMinus"
"Ptz_Cmd_ZoomAdd"
objectRange used it to display the zoom button
focus_minus_add"Ptz_Cmd_FocusMinus",
"Ptz_Cmd_FocusAdd"
objectRange used it to display the focus button Range
iris_minus_add"Ptz_Cmd_IrisMinus",
"Ptz_Cmd_IrisAdd"
objectRange used it to display aperture buttons.
btn_autofocus"Ptz_Btn_AutoFocus"objectUsed to display the autofocus button.
btn_default"Ptz_Btn_Default"objectUsed to display the restore button.
btn_refresh"Ptz_Btn_Refresh"objectUsed to display the refresh button
preset_point_cruise_btn"Ptz_Cmd_Cruise"objectUsed to display the cruise buttons.
is_req_progressboolWhether to issue the progress polling command.
ptz_direction_control"Ptz_Cmd_Up"
"Ptz_Cmd_Down",
"Ptz_Cmd_Left",
"Ptz_Cmd_Right",
"Ptz_Cmd_UpLeft",
"Ptz_Cmd_UpRight",
"Ptz_Cmd_DownLeft",
"Ptz_Cmd_DownRight",
"Ptz_Cmd_CircleCenter"
objectRange used it to display direction control.
advanced_mode"Mode_Preset_Point",
"Mode_Watch_Mode",
"Mode_Line_Scan",
"Mode_Trace",
"Mode_Pattern_Scan"
objectRange used it to display each mode in the advanced mode.
trace_number0-3intTour 1-4 tracks.
pattern_scan_number0-3intPattern scan 1-4 tracks.
pattern_scan_number_isset0-3bool arrayWhether pattern scan 1-4 has been marked.
line_scan_speed"Low",
"Middle",
"High"
stringline scan speed
line_scan_areaboolWhether linear scan is set.
trace_interval"5s""6s""7s"….."59s""60s"stringTour time interval.
utc_protocolstringUtc Protocol.
utc_cmd"Coax_Cmd_Menu",
"Coax_Cmd_Up",
"Coax_Cmd_Left",
"Coax_Cmd_Right",
"Coax_Cmd_Down"
string
current_cruise_mode"Mode_Default_Cruise",
"Mode_Preset_Point",
"Mode_Watch_Mode",
"Mode_Line_Scan",
"Mode_Trace",
"Mode_Pattern_Scan",
"Mode_Restore_Btn"
stringCurrent pattern scan mode
belt_times_use0-100intBelt life, more than 90, prompt life is not enough, 100 can not cruise.
quick_use"Ptz_QuickUse_3DPosition",
"Ptz_QuickUse_AutoFocus",
"Ptz_QuickUse_PtzReset",
"Ptz_QuickUse_WatchMode",
"Ptz_QuickUse_ManualHumanTrace",
"Ptz_QuickUse_LensReset"
stringRange used it to display shortcut function buttons.
preset_point_obj0-256object arrayObject of the number of preset point arrays,see Table 4 for more information of member in array.
watch_mode_mode"Mode_Default_Cruise",
"Mode_Watch_Point",
"Mode_Line_Scan",
"Mode_Trace",
"Mode_Pattern_Scan"
stringMode of watch mode.
watch_mode_num0 - 255intNum of public modes in watch mode.(except linear scan)
watch_mode_num"low",
"middle",
"high"
stringLinear scan speed in watch mode.
Table 3
ParameterRangeTypeDescription
cmd"Ptz_Cmd_Up",
"Ptz_Cmd_Down",
"Ptz_Cmd_Left",
"Ptz_Cmd_Right",
"Ptz_Cmd_UpLeft",
"Ptz_Cmd_UpRight",
"Ptz_Cmd_DownLeft",
"Ptz_Cmd_DownRight",
"Ptz_Cmd_ZoomAdd",
"Ptz_Cmd_ZoomMinus",
"Ptz_Cmd_FocusAdd",
"Ptz_Cmd_FocusMinus",
"Ptz_Cmd_IrisAdd",
"Ptz_Cmd_IrisMinus",
"Ptz_Cmd_CircleCenter",
"Ptz_Cmd_Cruise",
"Ptz_Change_CruiseTime",
"Ptz_Cmd_AddPreset",
"Ptz_Cmd_ClearPreset",
"Ptz_Cmd_CallPreset",
"Ptz_Cmd_AuxiliartOpen",
"Ptz_Cmd_AuxiliartClose",
"Ptz_Cmd_LockFocus",
"Ptz_LineScan_StartPoint",
"Ptz_LineScan_EndPoint",
"Ptz_Cmd_LineScanSetSpeed",
"Ptz_LineScan_CruiseStart",
"Ptz_LineScan_CruiseStop",
"Ptz_Btn_Default",
"Ptz_Zoom_Position",
"Ptz_Focus_Position",
"Ptz_Zoom_Move",
"Ptz_Focus_Move",
"Ptz_Btn_AutoFocus",
"Ptz_AreaFocus",
"Ptz_Btn_Refresh",
"Ptz_CalibRationSetting",
"Ptz_Tour_Start",
"Ptz_Tour_Stop",
"Ptz_Pattern_CruiseStart",
"Ptz_Pattern_CruiseStop",
"Ptz_Pattern_RecordStart",
"Ptz_Pattern_RecordStop",
"Ptz_Net_Osd",
"Ptz_3Dposition",
"Ptz_Light",
"Ptz_Rain",
"Ptz_CalcpadNumSetting",
"Ptz_Cmd_NewSceneCalib",
"Ptz_Cmd_DefCruise_Start",
"Ptz_Cmd_DefCruise_Stop",
"Ptz_WatchPoint_Add",
"Ptz_Privacy_Mode",
"Ptz_Trace_Mode"
string(only control)
Table 4
ParameterRangeTypeDescription
no1-256intThe number of preset points can be set up to 255.
namelen:1-31stringArray preset point name: range 1 to 31 character.
addboolWhether the preset point has been set.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result":"success",
    "data":{
        "channel":"CH1",
        "preset_point":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
        "belt_times_use":0,
        "preset_point_obj":
        [
            {
                "no":1,
                "name":"point 1",
                "add":false
            },
            {
                "no":2,
                "name":"point 2",
                "add":false
            },
            {
                "no":3,
                "name":"point 3",
                "add":false
            },
            ...
            {
                "no":254,
                "name":"point 254",
                "add":false
            },
            {
                "no":255,
                "name":"point 255",
                "add":false
            }
        ],
        "watch_mode_time":20,
        "watch_mode_mode":"Mode_Default_Cruise",
        "watch_mode_num":0,
        "line_scan_area":false,
        "line_scan_speed":"low",
        "trace_interval":20,
        "trace_number":0,
        "trace_preset_point":[[],[],[],[]],
        "pattern_scan_number_isset":[true,false,false,false],
        "pattern_scan_number":0,
        "current_cruise_mode":"No_Cruise"
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Control

Function

This API is used to control PTZ.

Request Message

Parameter Description

See PreviewChannel > PTZ > Get > Parameter Description > Table 2 for parameter description.

Simple 1.Refresh ptz parameters:

POST /API/PreviewChannel/PTZ/Control HTTP/1.1
{
  "version": "1.0",
  "data": {
    "channel": "CH2",
    "cmd": "Ptz_Btn_Refresh",
    "speed": 50,
    "zoom_step": 5,
    "zoom_slider": 1,
    "focus_step": 1,
    "focus_slider": 180
  }
}

Simple 2.increase focus:

POST /API/PreviewChannel/PTZ/Control HTTP/1.1
{
  "version": "1.0",
  "data": {
    "channel": "CH2",
    "cmd": "Ptz_Cmd_FocusAdd",
    "state": "Stop",
    "speed": 50,
    "zoom_step": 5,
    "zoom_slider": 2,
    "focus_step": 1,
    "focus_slider": 126
  }
}

Simple 3.auto focus:

POST /API/PreviewChannel/PTZ/Control HTTP/1.1
{
  "version": "1.0",
  "data": {
    "channel": "CH2",
    "cmd": "Ptz_Btn_AutoFocus",
    "speed": 50,
    "zoom_step": 5,
    "zoom_slider": 2,
    "focus_step": 1,
    "focus_slider": 127
  }
}

Response Message

None.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result":"success",
    "data":{
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Progress

Function

This API is used to get PTZ status.

Request Message

Parameter Description

Table 1

ParameterRangeTypeDescription
channelstringChannel name.

Sample:

POST /API/PreviewChannel/PTZ/Control/Progress HTTP/1.1
{
    "version": "1.0",
    "data":{
        "channel": "CH1"
    }
}

Response Message

See PreviewChannel > PTZ > Get > Parameter Description > Table 2 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "channel": "CH2",
        "zoom_slider": 1,
        "focus_slider": 564,
        "isctl": false
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

RecoverPassword

Function

This API includes APIs such as getting password recovery configuration parameters, getting password recovery page parameters, setting passwords, password recovery question verification parameters, verifying password recovery question answers, exporting certificates, and sending verification codes by email.

URI

POST /API/RecoverPassword/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Range,
Get,
Set,
Authorization/*,
Certificate/*,
Email/*.

Get

Function

This API is used to obtain configuration parameters for retrieving passwords.

Request Message

None.

Sample:

POST /API/RecoverPassword/Get HTTP/1.1
{
    "version": "1.0",
    "data": {
    }
}

Response Message

Parameter Description

See Login > RecoverPassword > Range > Parameter Description > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "questions": 
        [
            5,
            4,
            3
        ]
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Functions

This API is used to set the RecoverPassword parameters.

Request Message

See Login > RecoverPassword > Range > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/RecoverPassword/Set HTTP/1.1
{
    "version": "1.0",
    "data": {
        "answer_flag": true,
        "email_flag": true,
        "certificate_flag": true,
        "super_pwd_flag": true,
        "questions": [5, 4, 3],
        "answers": ["111", "222", "333"],
        "email": "123456@qq.com"
    }
}

Response Message

None.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Range

Function

This API is used to get the range of RecoverPassword config parameters.

Note:

The Range provides reference information for client UI input limits and API request limits. When sending Get and Set requests, the parameters must be strictly limited according to the Range, otherwise the request may be rejected by the device.

Request Message

None.

Sample:

POST /API/RecoverPassword/Range HTTP/1.1
{
    "version": "1.0",
    "data": {

    }
}

Response Message

Parameter Description

Table 1
ParameterRangeTypeDescription
answer_flagboolWhether to support question and answer verification retrieval.
email_flagboolWhether to support email retrieval.
certificate_flagboolWhether to support certificate retrieval.
super_pwd_flagboolWhether to support super password.
emaillen:1-64stringEmail.
questionslen:1-15int arrayquestion number.
enc_answersarray_size:3,
string_size:1-64
string arrayQuestion answers.
mode"Answer",
"Email",
"Certificate",
"SuperPwd"
stringOnly display the selected password recovery method.
email_codelen:1-64stringEmail verification code.
certificatelen:1-128stringCertificate code.
super_pwdlen:1-16stringSuper password.
system_timelen:1-64stringDate time.
mac_addresslen:0-35stringMac address.

Tips:

The response message of the Range request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "answer_flag": {
            "type": "bool"
        },
        "email_flag": {
            "type": "bool"
        },
        "certificate_flag": {
            "type": "bool"
        },
        "super_pwd_flag": {
            "type": "bool"
        },
        "questions": {
            "type": "array",
            "size": 3,
            "items": [
                {
                    "type": "int32",
                    "items": [
                        1,
                        2,
                        3,
                        4,
                        5,
                        6,
                        7,
                        8,
                        9,
                        10,
                        11,
                        12,
                        13,
                        14,
                        15
                    ]
                }
            ]
        },
        "enc_answers": {
            "type": "array",
            "size": 3,
            "items": [
                {
                    "type": "string",
                    "min_len": 1,
                    "max_len": 64
                }
            ]
        },
        "email": {
            "type": "string",
            "min_len": 1,
            "max_len": 64
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Authorization

Function

This API is used for getting or setting the recover password authorization parameters.

URI

POST /API/RecoverPassword/Authorization/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including
Range,
Get,
Set.

Get

Function

This API is used to get parameter for Login > RecoverPassword > Authorization page.

Request Message

None.

Sample:

POST /API/RecoverPassword/Authorization/Get HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

See Login > RecoverPassword > Authorization > Range > Parameter Description > Table 1 for parameter description.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "mode": "Answer",
        "questions": [
            5,
            4,
            3
        ]
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Set

Function

This API is used to set the verification question for recovering the password.

Request Message

See Login > RecoverPassword > Range > Parameter Description > Table 1 for more information.

Sample:

POST /API/RecoverPassword/Authorization/Set HTTP/1.1
{
    "version": "1.0",
    "data": {
        "answer_flag": true,
        "questions": [
            1,
            2,
            3
        ],
        "email_flag": false,
        "certificate_flag": true,
        "super_pwd_flag": true,
        "enc_answers": {
            "seq": 0,
            "peer_key": "0ehkbgxtTrULIODyzNMAEISzRq86LqwzGdLMKWB5g+T8=",
            "cipher": [
                "0R6rrZLwivuja3Lg3yMl6TWY4wppC0eM/ECgV3sw=",
                "0RKrrZLwivuja3Lg3yEE5XXywwIoMzMM27Q3IAkw=",
                "0RarrZLwivuja3Lg3yDkHrXU3PoXJOCMxue6DScw="
            ]
        }
    }
}

Response Message

None.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Range

Function

This API is used to obtain the verification parameter range for password recovery.

Note:

The Range provides reference information for client UI input limits and API request limits. When sending Get and Set requests, the parameters must be strictly limited according to the Range, otherwise the request may be rejected by the device.

Request Message

None.

Sample:

POST /API/RecoverPassword/Authorization/Range HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 1
ParameterRangeTypeDescription
mode"Answer",
"Email",
"Certificate",
"SuperPwd"
stringOnly display the selected password recovery method.
questionslen:1-15int arrayquestion number.
enc_answersarray_size:3,
string_size:1-64
string arrayQuestion answers.
email_codelen:1-64stringEmail verification code.
certificatelen:1-128stringCertificate code.
super_pwdlen:1-16stringSuper password.
system_timelen:1-64stringDate time.
mac_addresslen:0-35stringMac address.
base_enc_passwordobjectEncrypted object. See Table 2 for details.
Table 2
ParameterRangeTypeDescription
peer_keylen:0-1024stringKey.
cipherlen:0-1024stringciphertext.
seq0-1000000intValid duration.

Tips:

The response message of the Range request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "answer_flag": {"type": "bool"},
        "certificate_flag": {"type": "bool"},
        "super_pwd_flag": {"type": "bool"},
        "questions": {
            "type": "array",
            "size": 3,
            "items": [{
                "type": "int32",
                "items": [
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                ]
            }]
        },
        "enc_answers": {
            "type": "array",
            "size": 3,
            "items": [{
                "type": "string",
                "min_len": 1,
                "max_len": 64
            }]
        },
        "email": {
            "type": "string",
            "min_len": 1,
            "max_len": 64
        }
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Certificate

Function

This API is used for exporting certificate API.

URI

POST /API/RecoverPassword/Certificate/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including
Export.

Export

Function

This API is used to export certificate API.

Request Message

None.

Sample:

POST /API/RecoverPassword/Certificate/Export HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 1
ParameterRangeTypeDescription
certificatelen:1-128stringCertificate code.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "version": "1.0",
    "data": {"certificate": "805902B2173498280FA1AEC4305D43"}
}

Error Code

See Response Messages Body and Common error_code for more information.

Email

Function

This API is used for sending verification code to email.

URI

POST /API/RecoverPassword/Email/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including
Send.

Send

Function

This API is used to send verification code to email.

Request Message

None.

Sample:

POST /API/RecoverPassword/Email/Send HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

None.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {}
}

Error Code

See Response Messages Body and Common error_code for more information.

Request pubkey or randbyte

Function

This API is used for requesting user password transmission encryption key and PBKDF2_SHA256 random number and user password transmission encryption key for logging in when the device is inactive.

URI

POST /API/{Action}/TransKey/Get

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including
Maintenance,
Login.

README

Password transmission exists in various scenarios. For example, when formatting the hard disk, enter the current password for secondary authentication, set user password, set email password, etc.

ScenarioRequest key typeAlgorithmRequest API
Secondary authenticationbase_saltPBKDF2_SHA256/API/Maintenance/TransKey/Get
Set admin password for the first timebase_x_publicRSA/API/Login/TransKey/Get,
/API/FirstLogin/Password/Set
Modify the initial password of ordinary usersbase_x_publicRSA/API/Maintenance/TransKey/Get,
/API/Login/Password/Set
Add user
Change user password
base_x_publicRSA/API/Maintenance/TransKey/Get,
/API/SystemConfig/User/Set

(1) The procedure for the client to use the PBKDF2_SHA256 encrypted password for secondary authentication is: salt = base64_decode(key); outlen = 32; enc = PBKDF2(salt, pwd, iter, outlen); --------> openssl PKCS5_PBKDF2_HMAC , and EVP_sha256() cipher = base64_encode(enc);

(2) The client adopts X25519 to encrypt and transmit the password process as follows: Encryption Algorithm: aes_256_gcm The source of Key and iv: the secret is calculated through X25519, and then the key and iv are obtained through hkdf expand

    evp_pkey = (my_pri, my_pub) = generate_X25519_key;
    key_1 = remove "0" from key;
    device_peer_key = base64_decode(key_1);
    secret = X25519_derive(device_peer_key, evp_pkey);
    aes_256_gcm_key = hkdf_expand(secret, label = "expand key", out_len = 16);
    aes_256_gcm_iv = hkdf_expand(secret, label = "expand iv", out_len = 12);

Output:

peer_key = "0" + base64(EVP_PKEY_get_raw_public_key (evp_pkey))  //Here is passing your own public key to the device.
cipher = base64( aes_256_gcm(password, key, iv) + aes_256_gcm_iv + tag )
// tag_len = 16, key_len = 16, iv_len = 12

The following is the web page for calculating cipher provided by us:

  1. Calculate the cipher for the secondary authentication pbkdf2.html
  2. Calculate the cipher of the password encrypted field x25519.html These pages are to assist you to judge whether the cipher calculation is correct.

Gadget Instructions:

1. pbkdf2.html
Open the widget webpage, input word, salt, and iter values in sequence, and click commit to start running. Among them, word is the password to be encrypted, salt is the random string used to disturb the real password, and iter is the number of iterations. The final result of the operation will be printed in result, and the encrypted value is the calculated ciphertext.
2. x25519.html
Open the widget webpage, input the values of word and peer public in turn, and click commit to start running. Among them, word is the password to be encrypted, and peer public is the public key obtained from nvr. The final result of the run will be printed in result. In encrypted, the value of public is the public key generated by the client, which will be sent to nvr for decryption, and the value of encrypted is the calculated ciphertext.

See Appendixes A.2 for development guidelines for specific scenarios of secondary authentication
See Appendixes A.3 for the development guide of specific scenarios of password encryption

Table 1

base_enc_password Table information:

ParameterRangeTypeDescription
cipher0-1024stringencrypted password using /API/*/TransKey/Get Derived X25519 encryption, using base64 for transmission.
seq0-1000000intreturn /API/*/TransKey/Get The seq returned by the API .
peer_key0-1024stringThe X25519 key encrypted by the client, using base64 for transmission.

Table 2

base_secondary_authentication Table information:

ParameterRangeTypeDescription
cipherlen:44stringencrypted password (using /API/*/TransKey/Get The returned secret key is encrypted), using base64 for transmission. PBKDF2 output length is 32, base64 is 44
seq0-1000000intUse the seq returned by /API/*/TransKey/Get API .

Login

Function

This API is used to transmit the user password to encrypted key, Used before login when device isnot activated.

Request Message

Parameter Description

See Login > Request pubkey or randbyte > Maintenance > Parameter Description > Table 1 for parameter description.

Sample:

POST /API/Login/TransKey/Get HTTP/1.1
{
    "version": "1.0",
    "data": {
        "type": [
            "base_salt",
            "base_x_public"
        ]
    }
}

Response Message

Parameter Description

Parameter Description

Table 2
ParameterRangeTypeDescription
key_listsobject arrayArray of key structures, see Table 3 for more details.
Table 3
ParameterRangeTypeDescription
type"base_salt ",
"base_x_public"
string"base_salt": PBKDF2_SHA256 secondary authentication; "base_x_public" password transmission.
keylen:0-1024stringhexadecimal random number string, which needs to be converted. The public key is in plain text and is transmitted by Base64.
iter0-1000000intNumber of iterations for PBKDF2_SHA256.
seq0-1000000intEach key corresponds to a seq, which must be passed in while transmitting encrypted data.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data":
    {
        "Key_lists": 
        [
            {
                "type": "base_salt",
                "key": "NZLNvhZyfhHdVsUGL8GfVbUifQHIDiJ3oueTLiAGN54=",
                "iter": 10086,
                "seq": 19
            },
            {
                "type": "base_x_public",
                "key": "0mkSa7soBJ/WewVVn3J8Y/TsI9+MvAY+8Elds6UqNTyw=",
                "seq": 0
            }
        ]
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Maintenance

Function

This API is used for requesting user password transmission encryption key and PBKDF2_SHA256 random number and user password transmission encryption key for logging in when the device is inactive.

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
type"base_salt"
"base_x_public"
maximum length: 5
string arrayThe maximum length is 5, and the members can only be "base_salt" and "base_x_public"

Sample:

POST /API/Maintenance/TransKey/Get HTTP/1.1
{
    "version": "1.0",
    "data": {
        "type": [
            "base_salt",
            "base_x_public"
        ]
    }
}

Response Message

Parameter Description

Table 2
ParameterRangeTypeDescription
key_listsobject arrayArray of key structures, see Table 3 for more details.
Table 3
ParameterRangeTypeDescription
type"base_salt ",
"base_x_public"
string"base_salt": PBKDF2_SHA256 secondary authentication; "base_x_public" password transmission.
keylen:0-1024stringhexadecimal random number string, which needs to be converted. The public key is in plain text and is transmitted by Base64.
iter0-1000000intNumber of iterations for PBKDF2_SHA256.
seq0-1000000intEach key corresponds to a seq, which must be passed in while transmitting encrypted data.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data":
    {
        "Key_lists":
        [
            {
                "type": "base_salt",
                "key": " NZLNvhZyfhHdVsUGL8GfVbUifQHIDiJ3oueTLiAGN54= ",
                "iter": 10086,
                "seq": 19
            },
            {
                "type": "base_x_public",
                "key": " 0mkSa7soBJ/WewVVn3J8Y/TsI9+MvAY+8Elds6UqNTyw= ",
                "seq": 0
            }
        ]
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

Web

Function

This API is used for login and logout API.

URI

POST /API/Web/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including
Login,
Logout.

Login

Function

This API is used for login functionality. The client uses digest authentication to login; when the login is successful, in the http header, two fields are returned, Set-cookie and X-csrftoken;such as:

Set-Cookie: session=54f47bdcec65156e41b51d945bdcb4b6a9c77fae237b1c40d74c08db4a5eeb8f;HttpOnly;path=/
X-csrftoken: 93e2a23d518767b646ffd9a58b24b48665923ed797dbbb6b1e9760ebb9335b14

After the client login, when accessing static files, you need to bring cookie in the http header;such as:

   Cookie: session=54f47bdcec65156e41b51d945bdcb4b6a9c77fae237b1c40d74c08db4a5eeb8f;

When accessing the API, you also need to include the X-csrftoken field in the http header;such as:

   X-csrftoken: 93e2a23d518767b646ffd9a58b24b48665923ed797dbbb6b1e9760ebb9335b14.

After successful login, the server maintains the session response, which is 5 minutes by default and can be configured. When the client accesses the server with a session, the server refreshes the session expiration time. The digest authentication algorithm currently uses rfc2617, and will be modified to rfc7616 in the future, and is compatible with rfc2617 See Table 2 for the return of successful login (NVR, DVR, IPC are not implemented temporarily)

Request Message

Parameter Description

Table 1
ParameterRangeTypeDescription
oem_typeintLogin isolation flag, corresponding to the value passed by the customer:114(B09)、144(B14)、148(B25)、298(B07)、221(B07)、309(B52-1)、310(B52)、313(B52-1\B52)

Sample:

POST /API/Web/Login HTTP/1.1
{
    "version": "1.0",
    "data": {
        "oem_type": 114
    }
}

Response Message

Parameter Description (NVR, DVR, IPC are not implemented temporarily)

Table 2(login success)
ParameterRangeTypeDescription
last_login_timeMax_length:64stringLast successful login time (time stamp).
last_login_ipMax_length: 64stringIP address of the last successful login.
fail_login_countintThe number of failed logins since the last successful login.
pwd_remain_timeintThe number of days remaining on the password (IPC defaults to 90 days).
Table 3(login failed)
ParameterRangeTypeDescription
block_remain_timeintIndicates the time when there are too many login errors and the system will be locked.

Please refer to error-code for login failure error code.

Tips:

The response message of the Range request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
    }
}

Error Code

Table 4
error_codeCOMMENT
no_permissionNo remote login permission
login_failed_or_blocklocked after five or more failed logins
black_ipThis IP is set as blacklist
verify_failedWrong username or password within five times - login failed
device_rebootThe system is rebooting

See Response Messages Body and Common error_code for more information.

Logout

Function

This API is used for logout.

Request Message

None.

Sample:

POST /API/Web/Logout HTTP/1.1
{
    "version": "1.0",
    "data": {
    }
}

Response Message

None.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

MutexParam

URI

POST /API/MutexParam/{Action}

Table 1 describes the parameters.

Parameter Description

Table 1

ParameterRequiredDescription
ActionYESRequest action, including Get.

Get

Request Message

None.

Sample:

POST /API/MutexParam/Get HTTP/1.1
{
    "version": "1.0",
    "data": {}
}

Response Message

Parameter Description

Table 2
ParameterRangeTypeDescription
cloud_video_is_usedlen:0~Maximum number of channelsarrayThe channel number to enable cloud video upload function.
max_cloud_video_upload_numintMaximum number of video uploads for cloud storage.

Tips:

The response message of the Get request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "result": "success",
    "data": {
        "cloud_video_is_used": [1, 0, 1, 0, 0],
        "max_cloud_video_upload_num": 5,
    }
}

Error Code

See Response Messages Body and Common error_code for more information.

References

[1] RFC2616 Hypertext Transfer Protocol-HTTP/1.1

[2] RFC7159 The JavaScript Object Notation (JSON) Data Interchange Format

[3] RFC 2396 Uniform Resource Identifiers (URI): Generic Syntax and Semantics

[4] RFC 2617 HTTP Authentication:Basic and Digest Access Authentication

[5]http://json-schema.org/