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 _
type | Naming Rule | replenish |
---|---|---|
KEY | The name is a combination of lowercase letters and underscores | Abbreviations always use capital letters |
VALUE | Unified use of big hump way (each word capitalized first letter) naming | Abbreviations always use capital letters |
Revision History
Software version | Change log | Author | Date |
---|---|---|---|
2.002 | 1. 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 zhuoyun | 2023-01-11 |
2.001 | 1.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. | zhengjiehong | 2024-01-10 |
2.000 | In 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 bangtao | 2024-01-09 |
1.0.58 | 1, Channel > Image Control > Range > Table 4: Add max_zoom_ratio field | jiang zhuoyun | 2023-01-09 |
1.057 | Network Add IEEE8021x function | Tan Tiantian | 2023-12-18 |
1.056 | 1.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 Tiantian | 2023-11-9 |
1.055 | 1.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 | qiudan | 2023-11-9 |
1.054 | 1.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 | qiudan | 2023-11-7 |
1.053 | 1.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 | qiudan | 2023-11-6 |
1.052 | 1. 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.051 | 1. 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 Tiantian | 2023-11-3 |
1.050 | In 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 bangtao | 2023-10-30 |
1.049 | 1. 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. Maintenance,Record,Storage,System:Make sure the form jumps correctly, fix translation problems and other detail errors | He xiurong | 2023-10-30 |
1.048 | AI > Recongnition > Database license plate information query > GetCount > Table 3: Delete MsgId field | Tan Tiantian | 2023-10-21 |
1.047 | Login > PreviewChannel > PTZ > Get > Table 2: Delete cruise_state field | Jiang Zhuoyun | 2023-10-20 |
1.046 | 1.Login > Login > DeviceInfo > Get > Table 1: Add the support_camera_day_night_param field to Table 1 of login Deviceinfo | Jiang Zhuoyun | 2023-10-13 |
1.045 | 1. Function > ANR > GetANRTimeInfo chapter omissions Table 1 2. ExtendedFunctionality > AI Mutex Relation > Get: Table 5, Table 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 Zhuoyun | 2023-10-10 |
1.0.44 | 1. 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” field | Tan Tiantian | 2023-10-09 |
1.043 | 1. 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 Wenlong | 2023-06-01 |
1.042 | 1. Alarm > VoiceAlarm > Get > Table 3 : Add siren_mode field | Li Wenlong | 2023-05-26 |
1.041 | 1. 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 Wenlong | 2023-05-25 |
1.040 | Add API>THERMAL thermal related API | Li Wenlong | 2023-05-24 |
Document update notice
serial number | keyword | content |
---|---|---|
1 | example | In 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. |
2 | example Authentication | In 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. |
3 | Revision History | The 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 |
4 | endorsement | Comments 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. |
5 | Flow | For 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. |
6 | Directory | Update 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:
Command | Description |
---|---|
System | Configure and operate the general system functions. |
Network | Configure network interfaces and parameters |
Channel | Configure channel parameters |
Stream | Configure and control the streaming media content |
Alarm | Configure and control alarm functions and parameter |
Storage | Configure device storage |
Schedules | Configure schedules |
Record | Configure and control record functions and parameter |
Maintenance | Configure 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 Code | Description |
---|---|
200 | The request has succeeded. |
400 | The request was badly formed. This is commonly used for creating or updating a resource, but the data was incomplete or incorrect. |
401 | The request requires user authentication to access this resource. If the request contains invalid authentication data, this code is sent. |
403 | The request is not allowed because the server is refusing to fill the request. |
404 | The requested resource does not exist. |
500 | An internal server error has occurred. |
501 | The requested is not implemented. |
Abbreviations
For the purposes of the present document, the following abbreviations apply:
Abbreviations | Description |
---|---|
IPC | IP Camera |
NVR | Network Video Recorder |
CH | Analog channel/Digital channel |
IP_CH | Digital channel |
WIFI_CH | Wireless channel |
Common error_code
Common error_code include channel Table-2.9.1
error_code | Description | |
---|---|---|
Common | param_error | The requested parameters are incorrect. |
no_permission | No permission. | |
first_login | First login, force to set a password. | |
part_failed | The parameters of some channels fail to be saved. | |
no_support | No support. | |
frequent_operation | Operate too frequently. | |
passwd_expired_login | The password has expired and needs to be changed. | |
default_failed | Failed to restore default values. | |
token_generation_failed | Failed to generate token. | |
token_invalid | Token is invalid. | |
device_busy | The number of requests being processed by the device reached the upper limit. | |
user_expired_login | Account login expired. | |
data_saving_busy | The device is busy saving. | |
user_locked_login | The user login is locked. | |
function_busy | Function busy. | |
network_port_conflict | The network port conflicts | |
group_name_error | The group name is incorrect. | |
Session | no_login | Not logged in. |
expired | Login expired. | |
one_IE | Only one user can log in to a browser. | |
logout | Log out. | |
login_at_other | This account has been logged in at another location. | |
device_reboot | Device reboot. | |
passwd_expired | Passwd expired. | |
param_changed | Parameters have changed. | |
network_changed | The network port is changed. | |
ssl_error | SSL certificate reissuance. | |
netip_limited | The logged IP address is added to the blacklist. | |
forced_offline | Forced logout. | |
user_expired | User has expired. | |
no_heartbeat | Heartbeat timeout. | |
disk_changed | The hard disk status or parameters are changed. | |
ipc_state_changed | On the IPC upgrade page, the IPC upgrade status has changed. | |
have_login | The number of current logins exceeds the maximum value. | |
Secondary certification | current_pwd_error_ntime | If the number of authentication failures exceeds the upper limit, "remain_locked_time" is included in the "data", indicating the remaining lock time. |
Save parameter | save_failed | Failed to save parameter. |
pwd_weak | The complexity of the IPC password is too low. (IPC) | |
modify_failed | Modification has failed. | |
modify_failed_pwd_err | The user name or password is incorrect when changing IPC's IP address. | |
modify_failed_syntax_err | A format error occurred when the IPC IP address, subnet mask, or gateway was modified. | |
Search | search_failed | The search has failed. "data" will contain "remain_locked_time", indicating the remaining lock time. |
Playback | device_play_locked | The device is playing back and rejecting the web request. |
Operation | operation_failed | Operation has failed. |
Modify the user name, password, and permission | session_invalid | |
illegal_request | Illegal request. | |
overreach | Subusers can only set their own information. | |
short_modify_time | The interval between password changes is too short. | |
current_pwd_error | Password error. | |
username_empty | The user name is empty. | |
username_repeat | The current user name is the same as the existing user name. | |
username_invalid | The user name can only contain letters, digits, and underscores. | |
unmatched_pwd | The two passwords are different. | |
pwd_empty | The password is empty. | |
pwd_length_err | Password length error. | |
pwd_equal_name | The password cannot be the same as the user name or the user name typed backwards. | |
pwd_equal_old | The new password cannot be the same as the previous passwords. "data" will contain "number", which represents the number of times. | |
pwd_repeated | The new password must be different from the old password by at least two characters. | |
pwd_weak_rule | The password must contain at least two of the following combinations: lowercase letters, uppercase letters, digits, special characters, and Spaces. | |
pwd_risk | The password belongs to the weak password dictionary. | |
pwd_invalid | Invalid password. | |
Email testing | user_auth_failed | User authentication failure. |
data_error | There are some errors in the data sent. | |
net_unreachable_or_dns_wrong | The network is unreachable or the DNS is wrong. | |
connect_server_err | Failed to connect to server. | |
check_smtp_port | The connection failed. Please check whether the port is correct. | |
tls_ssl_handshake_err | The TLS/SSL handshake failed. | |
email_connect_err | Connection error, please check the recipient account. | |
Upgrade | in_user_interface | The device is in operation. |
updating | The device is being upgraded. | |
lack_memory | The device lacks memory. | |
file_error | File error. | |
no_need_upgrade | The current version is the latest and does not need to be updated. | |
HTTP | not_modified | No modification. (304) |
http_redirect_https | http redirects to https. (307) | |
not_found | Not found.(404) | |
method_not_allowed | Request method does not allow. (405) | |
payload_too_large | Payload too large. (413) | |
uri_too_long | URI too long. (414) | |
internal_server_error | Internal server error. (500) | |
service_unavailable_error | The 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
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
Parameter | Range | Type | Description |
---|---|---|---|
device_name | Max length: 31byte | string | Device name |
menu_timeouts | 0,30,60,120,300,600 | int32 | Menu auto lock Time,in seconds. |
FisheyeOrAI | "Fisheye" "AI" | string | Only for NVR. AI and Fisheye are mutually exclusive. |
session_timeout | 5-1440 | int32 | Web session timeout time,in minutes. |
preview_session_timeout | boolean | boolean | Preview/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
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
Parameter | Range | Type | Description |
---|---|---|---|
date | The format is the same as described in the date_format field | string | System date |
time | The format is : hh:mm:ss | string | System time |
synchronize_computer_time | boolean | boolean | Only for IPC,synchronize computer time switch |
date_format | "MM/DD/YYYY" "YYYY-MM-DD" "DD/MM/YYYY" | string | Date format |
time_format | 12,24 | int32 | Time 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" | string | Time 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
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
Parameter | Range | Type | Description |
---|---|---|---|
ntp_enable | boolean | boolean | NTP switch |
server | "time.windows.com" "time.nist.gov" "pool.ntp.org" "UserDefined" | string | NTP server address |
custom_server | Max length: 63byte | string | Custom server address. Use this field when the server field is "UserDefined". |
sync_period | 0-65535 | int32 | NTP 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
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
Parameter | Range | Type | Description |
---|---|---|---|
output | object | Output object,see Table 2 for more information |
Table 2
Output object
Parameter | Range | Type | Description |
---|---|---|---|
LIVE-OUT | object | LIVE-OUT object,see Table 3 for more information |
Table 3
LIVE-OUT object
Parameter | Range | Type | Description |
---|---|---|---|
output_resolution | "1024x768" "1280x1024" "1440x900" "720P(1280x720)" "1080P(1920x1080)" "1600x1200" "1920x1200" "2K(2560x1440)" "4K(3840x2160)" | string | The 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
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
Parameter | Range | Type | Description |
---|---|---|---|
dst_enable | boolean | boolean | DST function switch |
support_crossyear | boolean | Whether to support of crossing year. | |
time_offset | 1,2 | int | DST offset value.Unit: hour |
dst_mode | "Week", "Date" | string | DST pattern |
start_date | string | DST startdate. The date format is MM/DD/YYYY | |
end_date | string | DST end date. The date format is MM/DD/YYYY | |
start_hour | string | DST start time. The time format is hh:mm:ss | |
end_hour | string | DST 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" | string | Start month |
end_month | Which in accordance with "start_month" | string | End month |
start_week | "1st", "2nd", "3rd", "4th", "Last" | string | The week of the month |
end_week | Which in accordance with "start_week" | string | The week of the month |
start_weekday | "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" | string | Which day start from. |
end_weekday | Which in accordance with "start_weekday" | string | Which 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
Parameter | Required | Description |
---|---|---|
Action | YES | Request 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | Json Object | Single Channel Information JSON show as follow Table 2 | |
channel_max | int | Maximum number of channels |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | JSON show as follow Table 3 | |
… | Json Object | ||
IP_CH1 | Json Object | ||
… | Json Object | ||
WIFI_CH1 | Json Object | ||
… | Json Object |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
channel | string | Channel number | |
alias | string | IP Camera alias. | |
state | "Offline", "Online" | string | IP Camera connection status. |
mainstream | "Resolution", FrameRate", "Bitrate" | string | IP Camera's mainstream information. |
substream | Same as "mainstream" field | string | IP Camera's mobile stream information. |
mobile_stream | Same as "mainstream" field | string | IP Camera's substream information. |
motion_detection | "Support", "Nonsupport" | string | Motion Detection. |
privacy_zone | "Support", " Nonsupport" | string | Privacy 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
Parameter | Required | Description |
---|---|---|
Action | YES | Request 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
Parameter | Range | Type | Description |
---|---|---|---|
device_id | string | DeviceID | |
device_name | string | DeviceName | |
device_type | string | DeviceType | |
hardware_version | string | HardwareVersion | |
software_version | string | SoftwareVersion | |
build_time | string | release time | |
ie_client_version | string | IE Client Version | |
mcu_software_version | string | MCU software version | |
video_format | “PAL”, “NTSC” | string | Video Format |
hdd_volume | string | HDD Volume | |
ip_address | string | IP Address | |
ipv6_address | string | IPv6 Address | |
web | string | Web Internal port ,Web external port | |
client | string | Client Internal port , Clientexternal port | |
mac_address | string | MAC Address | |
wireless_mac | string | Wireless MAC | |
p2p_id | string | P2P ID | |
p2p_switch | boolean | ||
network_state | “Connected”, “Unconnected” | string | Network connection status |
serialNum | string | Serial Number(B18) | |
language | string | The 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
Parameter | Required | Description |
---|---|---|
Action | YES | Request 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | object | channel_info object,see Table 2 for more information |
Channel info object
Parameter | Range | Type | Description |
---|---|---|---|
channel | CH1 IP_CH1 WIFI_CH1 | object | channel Table 3 for more information |
Channel object
Parameter | Range | Type | Description |
---|---|---|---|
channel | string | Channel Number | |
record_state | On Off | string | Record State |
record_switch | bool | Record Switch | |
stream_type | Mainstream Substream DualStream | string | Video stream type |
resolution | string | Resolution:Format: “Main Stream Resolution / Sub Stream Resolution” | |
fps | string | IP Camera's mainstream frame rate.(/Fps)Format:”Main Stream FPS / Sub Stream FPS” | |
bitrate | string | IP 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
Parameter | Required | Description |
---|---|---|
Action | YES | Request 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
Parameter | Range | Type | Description |
---|---|---|---|
wan | object | Wan object,see System > Network State > Get > Parameter Description > Table 2 for more information | |
lan | object | Lan object,see System > Network State > Get > Parameter Description > Table 3 for more information | |
port | object | Port object,see System > Network State > Get > Parameter Description > Table 4 for more information | |
bandwidth | object | Bandwidth object,see System > Network State > Get > Parameter Description > Table 5 for more information | |
lan1 | object | Lan1 object,see System > Network State > Get > Parameter Description > Table 6 for more information.(used in new network card mode) | |
lan2 | object | Lan2 object,see System > Network State > Get > Parameter Description > Table 7 for more information.(used in new network card mode) | |
poe | object | Poe object,see System > Network State > Get > Parameter Description > Table 8 for more information.(used in new network card mode) | |
pppoe | Enable Disable | string | PPPoE function switch |
3g | Enable Disable | string | 3G network function switch |
wifi | Enable Disable | string | WIFI function switch |
toe | Enable Disable | string | TOE Acceleration sign |
Table 2
Wan object
Parameter | Range | Type | Description |
---|---|---|---|
dhcp | Enable Disable | string | DHCP function switch |
ip_address | string | IP address, for example: 192.168.1.24 | |
subnet_mask | string | Subnet mask, for example: 255.255.255.0 | |
gateway | string | Default gateway, for example: 192.168.1.1 | |
mac_address | string | Physical address, such as 88-60-50-4E-87-29 | |
ipv6_address | Max length: 46 byte | string | Ipv6 address |
ipv6_gateway | Max length: 46 byte | string | IPv6 gateway |
Table 3
Lan object
Parameter | Range | Type | Description |
---|---|---|---|
ip_address | string | Switch IP address | |
subnet_mask | string | Switch Subnet Mask |
Table 4
Port object
Parameter | Range | Type | Description |
---|---|---|---|
web client rtsp https | Port,Export,ExportState,Upnp | string 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
Parameter | Range | Type | Description |
---|---|---|---|
Total_Bandwidth | string | Total bandwidth | |
Used_Bandwidth | string | Used bandwidth |
Table 6
Lan1 Object
Parameter | Range | Type | Description |
---|---|---|---|
Dhcp | Enable Disable | string | IPv4 DHCP function switch |
IP_Address | string | IP address, for example: 192.168.1.24 | |
Subnet_Mask | string | Subnet mask, for example: 255.255.255.0 | |
Gateway | string | Default gateway, for example: 192.168.1.1 | |
Dhcpv6 | Enable Disable | string | IPv6 DHCP function switch |
Ipv6_Address | string | IPv6 address | |
Ipv6_Prefixlen | int | ||
Ipv6_Gateway | string | IPv6 gateway | |
Mac_Address | string | Physical address, for example: 88-60-50-4E-87-29 |
Table 7
Lan2 Object
Parameter | Range | Type | Description |
---|---|---|---|
Dhcp | Enable Disable | string | IPv4 DHCP function switch |
IP_Address | string | IP address, for example: 192.168.1.24 | |
Subnet_Mask | string | Subnet mask, for example: 255.255.255.0 | |
Gateway | string | Default gateway, for example: 192.168.1.1 | |
Dhcpv6 | Enable Disable | string | IPv6 DHCP function switch |
Ipv6_Address | string | IPv6 address | |
Ipv6_Prefixlen | int | ||
Ipv6_Gateway | string | IPv6 gateway | |
Mac_Address | string | Physical address, for example: 88-60-50-4E-87-29 |
Table 8
Poe object
Parameter | Range | Type | Description |
---|---|---|---|
poe_dhcp | Enable Disable | string | Poe DHCP function switch |
poe_ip_address | string | POE IP address, for example: 192.168.1.24 | |
poe_subnet_mask | string | POE 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
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
Parameter | Range | Type | Description |
---|---|---|---|
statement_file_name | string | Files 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
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
Parameter | Range | Type | Description |
---|---|---|---|
ddns_enable | bool | Ddns funtion switch. | |
server | "DDNS_3322", "DYNDNS", "NO_IP", "CHANGEIP", "DNSEXIT" | string | DDNS server IP address or name |
domain | Max length: 35 byte | string | Host name of this device |
domain_suffix | string | Domain suffix | |
username | string length:0-32 | string | DDNS user name. |
password | string length:0-32 | string | DDNS user password.(Only indicate the range in Range, deprecated in Get, Set and Test, pass empty) |
password_empty | bool | Is the password empty | |
service_id | string | B03 dedicated | |
test_befault_save | bool | Do you need to test before saving? The default is FALSE. | |
base_enc_password | Json Object | Encrypted Password,see base_enc_password for more information. | |
api_key | string length:0-32 | string | dnsexit api-key. |
api_key_empty | bool | Whether the api-key can be empty | |
base_enc_api_key | Json Object | Encrypted api-key, same as base_enc_password, see base_enc_password for more information. | |
api_key_url | "https://dnsexit.com" | string | Official 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.
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
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
Parameter | Range | Type | Description |
---|---|---|---|
email_enable | bool | Enable email functionality. | |
encryption | "Disable", "SSL", "TLS", "Auto" | string | Encryption type. |
smtp_port | [1~65535] | int | SMTP port. |
smtp_server | Max length: 127byte | string | SMTP server. |
username | Max length: 127byte | string | Email username. |
password | Max length: 127byte | string | Email password.(Only indicate the range in Range, deprecated in Get, Set and Test, pass empty) |
sender | Max length: 127byte | string | Sender address. |
recvemail | recvemail JSON,Table 2 | ||
password_empty | bool | Is the password empty. | |
interval_time | 1,3,5,10 | int | Sending time interval, Unit:minute |
base_enc_password | Json Object | See base_enc_password. | |
report_button | Object | See Table 3. |
Table 2
recvemail JSON
Parameter | Range | Type | Description |
---|---|---|---|
recvemail_1 | Max length: 127 byte | string | Sender 1 Address |
recvemail_2 | Max length: 127 byte | string | Sender 2 Address |
recvemail_3 | Max length: 127 byte | string | Sender 3 Address |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
report_button_1 | "send_device_report" | string | Show 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
Parameter | Range | Type | Description |
---|---|---|---|
email_enable | bool | Enable email functionality | |
encryption | "Disable", "SSL", "TLS", "AUTO" | string | Encryption Type |
smtp_port | [1~65535] | int | SMTP port |
smtp_server | Max lenth:127 byte | string | SMTP server |
username | [1~65535] | int | Email user name |
password | [1~65535] | int | Email password |
password_empty | [1~65535] | int | Is the password empty |
sender | [1~65535] | int | sender address |
recvemail | JSON,see Table 2 for more information | ||
interval_time | 1.3.5.10 | int | Sending interval time. Unit: minutes |
test_id | 1~65535 | int | test id |
email_test_flag | "Start"、"Stop"、"Query” | string | Email test instructions (start testing, stop testing, obtain test results) |
base_enc_password | Json Object | encrypted password,see base_secondary_authentication for more information |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
recvemail_1 | Email 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
Parameter | Range | Type | Description |
---|---|---|---|
test_state | "Testing"(Testing) "Ok"(Tested) | string | Enable 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
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
Parameter | Range | Type | Description |
---|---|---|---|
ftp_enable | bool | FTP function switch | |
ftp_test | bool | Does it support FTP test | |
server_ip | Max length: 64 byte Note: The maximum input character for DVR is 15 | string | FTP IP address |
port | [1~65535] | int | FTP server port |
username | Max length: 64 byte Note: The maximum input character for DVR is 15 | string | Login user name |
password | Max length: 64 byte Note: The maximum input character for DVR is 15 | string | Login user password.(Only indicate the range in Range, deprecated in Get, Set and Test, pass empty) |
password_empty | bool | Is the password empty | |
upgrade_picture | bool | Upload Image Switch | |
picture_resolution | "1920x1080", "1280x720", "1024x768", "640x480", "320x240", "176x144" or "176x120" | string | Image resolution (NVR specific) |
picture | "Highest", "Higher", "Medium", "Low", "Lower", "Lowest" | string | Image quality (NVR specific) |
video_stream_type | "Mainstream","Substream" | string | Video stream type |
video_type | "RF","AVI","MP4" | string | Video file type |
max_package_interval | 10,20,30,45,60 | int | Maximum subcontracting interval.Unit:minutes |
directory_name | Max lenth:95byte | string | Upload Path |
upload_normal_video | JSON array | Upload video information JSON,see Table 2 for more information | |
enc_mode | "FTP", "SFTP", "FTPS", | string | FTP Type |
certpem | string | certificate | |
certpwd | string | secret key | |
privatekey | string | Private certificate | |
privatekeypwd | string | Private key | |
base_enc_passwod | Json Object | encrypted password,see base_enc_password for more information(Special for Set and Test). | |
upload_picture | bool | Whether to upload pictures through FTP | |
upload_video | bool | Whether to upload videos through FTP |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
enable | bool | Upload 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. | array | The 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
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
Parameter | Range | Type | Description |
---|---|---|---|
server_port | [1~65535] | int | Gb28181 platform port |
local_port | 5060 5061 5062 5063 5064 | int | Device port |
stream_port | 55550 55551 55552 55553 55554 | int | Stream port |
heart_beat_time | [5~255] | int | Heartbeat time |
expires | [30~10000] | int | Registration validity period |
enable_flag | bool | GB28181 function switch | |
max_timeouts | [3~255] | int | Number of timeouts |
stream_type | "Mainstream" "Substream" | string | Stream type |
server_ip | Max length: 32 byte | string | GB28181 server ip |
server_id | Max length: 20 byte | string | GB28181 server id |
device_id | Max length: 20 byte | string | Device id |
password | Max length: 31 byte | string | Gb28181 platform password |
password_empty | bool | Whether the password is empty | |
device_name | Max length: 31 byte | string | Device name |
server_domain | Max length: 11 byte | string | GB28181 Server domain |
link_status | "Not_Connect" "Register_success" "Network_error" "Password_deviceId_error" "GB28181_close" "GB28181_open" | string | Device name |
channel_nvr_id | JSON array | Single Channel Information JSON show as table2 |
table 2
Parameter | Range | Type | Description |
---|---|---|---|
channel_id | 0-20 | string | channel 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
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
Parameter | Range | Type | Description |
---|---|---|---|
https_enable | bool | Https switch | |
operate | "Install" "Uninstall" "Switch" | ||
file_type | "Default", "Custom" | string | Default: Default installation Custom: Custom installation Passed when switching. |
file_exist | int | 0: Does not exist, 1: Exists (only used, not set, required for customization). | |
ca_file | 0-10240 | string | (Only set, not used). |
key_file | 0-10240 | string | (Only set, not used). |
key_password | 0-128 | string | (Only set, not used). |
root_ca_file | 0-10240 | string | (Only set, not used). |
subject | string | Issued to (required by Custom). | |
issuer | string | Issuer(required by Custom). | |
not_before | string | Starting time(required by Custom). | |
not_after | string | End 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_code | commet |
---|---|
install_failed | Installation failed. |
uninstall_failed | Uninstall failed. |
uninstall_not_allow | In use, uninstallation is not allowed. |
switch_failed | Switching failed. |
upload_failed | Installation failed. |
length_too_long | The data is too large. |
unsafe_siganature | Unsafe certificate. |
cert_key_not_match | Certificate does not match. |
invalid_cert_time | Invalid certificate time. |
invalid_private_key | Invalid private key file. |
invalid_cert | Invalid certificate file. |
invalid_key_usage | Invalid certificate key usage. |
invalid_cert_chain | Invalid certificate chain. |
invalid_cacert | Invalid root certificate. |
invalid_cacert_time | Contains 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
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
Parameter | Range | Type | Description |
---|---|---|---|
enable | bool | Whether to enable IP filtering | |
choose | "Whitelist","Blacklist" | string | Enable blacklist or whitelist |
restricted_type | "Whitelist","Blacklist" | string | Restricted method |
whitelist | JSON array | Whitelist list, see Table 2 to get Parameter Description | |
blacklist | JSON array | Blacklist list, see Table 2 to get Parameter Description |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
start_address | Max length:16byte, 64byte (for NVR/DVR use) | string | Start filtering IP address |
end_address | Max length:16byte, 64byte (for NVR/DVR use) | string | End filtering IP address |
ip_type | "Ipv4","Ipv6" | string | IP 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_code | commet |
---|---|
ip_filter_list_empty | The 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
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
Parameter | Range | Type | Description |
---|---|---|---|
prefixlen | 1-128 | int | prefix length |
local_ipv6_addr | Max length: 40byte | string | local ipv6 ipaddr |
global_ipv6_addr | Max length: 40byte | string | global 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
Range
Function
This API is used to get the parameter range of Network > Network Configuration > Network Base.
Request Message
Parameter Description
Table 11
Parameter | Range | Type | Description |
---|---|---|---|
page_type | "net_general" | string | string 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
Parameter | Range | Type | Description |
---|---|---|---|
wan | JSON object | Single JSON,see Table 2 for more information | |
lan | JSON object | Single JSON,see Table 3 for more information(NVR exclusive) | |
pppoe | JSON object | Single JSON,see Table 4 for more information | |
3g | JSON object | Single JSON,see Table 5 for more information | |
wifi | JSON object | Single JSON,see Table 6 for more information | |
port | JSON object | Single JSON,see Table 7 for more information | |
extern_ip | string | External network IP, valid when external network is enabled | |
p2p_switch | bool | P2P function switch | |
ipeye_switch | bool | IPEYE switch(DVR、NVR exclusive) | |
device_instruction | “nvr”“xvr” “dvr” “ipc” | string | Device type description flag |
web_compatibility | bool | Web Compatibility mode switch | |
toe | bool | Switch 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 | array | Video encryption transmission channel Each array bit represents a channel with a string. |
lan1 | JSON Object | Single JSON,see Table 8 for more information(Using in new network card mode) | |
lan2 | JSON Object | Single JSON,see Table 9 for more information(Using in new network card mode) | |
poe | JSON Object | Single JSON,see Table 10 for more information(Using in new network card mode) | |
net_card_mode | "Single Address Mode" , "Double Address Mode" | sring array | Network card mode |
default_route | "WAN" " LAN1", "LAN2" | string array | Default route(Using in new network card mode) |
net_car_select | "WAN" " LAN1", "LAN2" | string array | Network card selection(Using in new network card mode) |
pppoe_net_card | "LAN1", "LAN2" | string array | PPPOE Network card selection(Using in new network card mode) |
dns1 | string | Preferred DNS Server, sample:8.8.8.8(Using in new network card mode) | |
dns2 | string | Alternate DNS server, sample:8.8.8.8(Using in new network card mode) | |
operation_type | "LanModify" "PoeModify" | string | Example Change the type of a network parameter. |
manual_ip_conflict | bool | Manual IP conflict |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
dhcp | bool | DHCP function switch | |
ip_address | string | IP address,sample:192.168.1.24 | |
subnet_mask | string | subnet mask,sample:255.255.255.0 | |
gateway | string | gateway,sample:192.168.1.1 | |
ipv6_address | string | IPv6 address | |
ipv6_prefixlen | int | ||
ipv6_gateway | string | IPv6 gateway | |
dns1 | string | Preferred DNS Server,sample:8.8.8.8 | |
dns2 | string | Alternate DNS server,sample:8.8.8.8 | |
ipv6_dns1 | string | ipv6 Preferred DNS Server, sample:8.8.8.8 | |
ipv6_dns2 | string | ipv6 Alternate DNS server, sample:8.8.8.8 | |
main_multicast_enable | bool | Main stream multicast switch(IPC exclusive) | |
main_multicast_address | (224.0.0.0-239.255.255.255) | string | Main stream multicast address(IPC exclusive) |
main_multicast_port | 1024-65535 | int | Main stream multicast port(IPC exclusive) |
sub_multicast_enable | bool | Subcode Stream Multicast switch(IPC exclusive) | |
sub_multicast_address | (224.0.0.0-239.255.255.255) | string | Subcode Stream Multicast Address(IPC only) |
dhcp_enable | bool | The Dhcp enable switch does not enable the DHCP switch after enabling PPPOE(NVR exclusive) | |
rtsp_url | string | The URL format when using the rtsp server(NVR、DVR exclusive) | |
encryption | bool | video encryption | |
connection_protocol | "svnp" "onvif" | string | Connection protocol |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
ip_address | string | Switch IP address | |
subnet_mask | string | Switch subnet mask | |
modify_field | "ip_address" "subnet_mask" | string | The specific parameter to be modified. This field is required only with operation_type. |
show_tips | bool | Whether a prompt is required. The response needs to include this field only if the request has operation_type on it. |
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
enable | bool | PPoE function switch | |
username | Max length: 35byte | string | PPPoE user name |
password | Max length: 35byte | string | PPPoE password |
password_empty | bool | Is the password empty | |
ip_address | string | IP address,sample:192.168.1.24 | |
subnet_mask | string | subnet mask,sample:8.8.8.8 | |
gateway | string | default gateway,sample:192.168.1.1 | |
dns1 | string | Preferred DNS Server,sample:8.8.8.8 | |
dns2 | string | Alternate DNS server,sample:8.8.8.8 | |
pppoenewstruct | bool | Whether to use two sets of range control | |
base_enc_password | Json Object | encrypted password,see base_secondary_authentication for more information |
Table 5
Parameter | Range | Type | Description |
---|---|---|---|
enable | bool | 3G network function switch | |
apn | Max length: 35byte | string | 3G apn |
dial_code | Max length: 35byte | string | 3G DialCode |
usename | Max length: 35byte | string | 3G user name |
password | Max length: 335byte | string | 3G password |
ip_address | string | IP address,sample:192.168.1.24 | |
subnet_mask | string | subnet mask,sample:8.8.8.8 | |
gateway | string | default gateway,sample:192.168.1.1 | |
dns1 | string | Preferred DNS Server,sample:8.8.8.8 | |
dns2 | string | Alternate DNS server,sample:8.8.8.8 | |
base_enc_password | Json Object | encrypted password,base_secondary_authentication |
Table 6
Parameter | Range | Type | Description |
---|---|---|---|
enable | bool | WIFI function switch | |
ssid | Max length: 35byte | string | WIFISSID |
password | Max length: 35byte | string | WIFI password |
ip_address | string | IP address obtained by connecting to WIFI(Get only) | |
status | "Unconnected" "Connected" | string | WIFI connection status(Get only) |
wifi_type | "MT7601" "WN650BT" | string | WIFI connection type |
network_mode_type | "Dhcp" "Static" | string | WIFI mode |
base_enc_password | Json Object | encrypted password,see base_secondary_authentication for more information |
Table 7
Parameter | Range | Type | Description |
---|---|---|---|
service | “Web”, “Client”, “Rtsp”, “Https”, | string | port type |
protocol | "TCP" | string | protocol type(Get only) |
internal | [1~65535] | int | Internal port number |
external_port | [1~65535] | int | external port number |
upnp_status | "Inactive" "Active" | string | Port UPnP function status(Get only) |
upnp | bool | Enable UPnP function on the port | |
maping_strategy | "Manual""Auto" | string | Mapping method |
Table 8
Parameter | Range | Type | Description |
---|---|---|---|
dhcp | bool | Ipv4 DHCP function switch | |
ip_address | string | IP address,sample:192.168.1.24 | |
subnet_mask | string | subnet mask,sample:255.255.255.0 | |
gateway | string | default gateway,sample:192.168.1.1 | |
dhcpv6 | bool | IPv6 DHCP function switch | |
ipv6_address | string | IPv6 address | |
ipv6_prefixlen | int | ||
ipv6_gateway | string | IPv6 gateway | |
dhcp_enable | bool | Dhcp enable switch,DHCP switch not enabled after enabling PPPOE(NVR exclusive) | |
mac_address | string | physical address,sample:88-60-50-4E-87-29 |
Table 9
Parameter | Range | Type | Description |
---|---|---|---|
dhcp | bool | Ipv4 DHCP function switch | |
ip_address | string | IP address,sample:192.168.1.24 | |
subnet_mask | string | subnet mask,sample:255.255.255.0 | |
gateway | string | defalt gateway,sample:192.168.1.1 | |
dhcpv6 | bool | IPv6 DHCP function switch | |
ipv6_address | string | IPv6 address | |
ipv6_prefixlen | int | ||
ipv6_gateway | string | IPv6 gateway | |
mac_address | string | physical address,sample:88-60-50-4E-87-29 |
Table 10
Parameter | Range | Type | description |
---|---|---|---|
poedhcp | bool | Poe DHCP function | |
poe_ip_address | string | POE Ip address,sample:192.168.1.24 | |
poe_sunnet_mask | string | POE subnet mask,sample:255.255.255.0 | |
modify_field | "poe_ip_address" "poe_subnet_mask" | string | The specific parameter to be modified. This field is required only with operation_type |
show_tips | bool | Whether 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
Parameter | Required | Description |
---|---|---|
Action | Yes | Request action,including Scan,MacthWiFiTypeSet,join,WifiStaParamSet。 |
join
Function
This API is used to add wifi parameter for Network > WLANScan.
Request Message
Parameter Description
Table 1
Parameter | Range | Type | Description |
---|---|---|---|
network_mode_type | "Dhcp" "Static" | string | network model |
ip_address | string | ip address | |
subnet_mask | string | subnet mask | |
gateway | string | gateway | |
ssid | Max length:35byte | string | WIFI SSID |
base_enc_password | Json Object | See 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
Parameter | Range | Type | Description |
---|---|---|---|
restart_to_match_wifitype | bool | Do you want to restart the board end | |
current_wifitype | int | wifi 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
Parameter | Range | Type | Description |
---|---|---|---|
wifi_info | JSON array | JSON,see Table 2 for more information |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
ssid | Max length:35byte | string | WIFI SSID |
signal_strength | 0-4 | int | WiFi Signal Strength tip:only use for ScanWlan |
security | Max length:128byte | string | WiFi Signal Strength tip:only use for ScanWlan |
password | Max length:35byte | string | WIFI password tip:only use for JoinWlan |
base_enc_password | Json Object | encrypted 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
Parameter | Range | Type | Description |
---|---|---|---|
ssid | string | route ssid | |
encryptionType | string | NONE/WEP/WPA-PSK/WPA2-PSK/WPA-NONE | |
cloudhost | string | ||
cloudport | int | ||
base_enc_password | Json Object | wifi 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
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
Parameter | Range | Type | Description |
---|---|---|---|
enable | bool | enable | |
authentication | "Digest_sha256", " Digest ", " Digest/WSSE" "WSSE", "None" | string | Encryption |
protocol | "HTTP/HTTPS", "HTTPS", "HTTP" | string | agreement |
usename | string | user name | |
password | string | password(Only indicate the range in Range, deprecated in Get and Set, pass empty). | |
password_empty | bool | password empty | |
base_enc_password | Json Object | encrypted 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
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
Parameter | Range | Type | Description |
---|---|---|---|
resp_enable | bool | ||
rtsp_check_flag | bool | Check symbol | |
anonymous_login | bool | No username or password required | |
rtsp_url | string | ||
notSupportMobile | bool | Mobile not supported (range use) | |
ipeye_enable | bool | ipeye enable | |
ipeye_link | string | ipeye link | |
metadata_platform | "None", "General", "Milestone" | string | Streaming 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
Parameter | Range | Type | Description |
---|---|---|---|
rtsp_enable | bool | ||
rtsp_check_flag | bool | ||
anonymous_login | bool | No user name or password is required | |
ipeye_enable | bool | ||
rtsp_url | string | ||
metadata_platform | "None", "General", "Milestone" | string | Streaming 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
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
Parameter | Range | Type | Description |
---|---|---|---|
snmp_port | int | ||
snmp_enable | bool | false:disable true:enable | |
trap_port | int | ||
snmp_versions | "V1", "V2", "V1,V2" "V3" | string | 0:snmp v1 1:snmp v2 2:snmp v1 v2 3:snmp v3 |
trap_ipaddr | Max length:32byte | string | Management Server Address |
read_community | Max length:16byte | string | Set IPC Read Community Name The server uses this common name and only reads snmp information on the IPC |
write_community | Max length:16byte | string | Set IPC Read Community Name The server uses this common name and only reads snmp information on the IPC |
authentication | object json | see Table 2 for more information | |
base_enc_authentication_password | object json | encrypted password,see base_enc_password Table information for more information | |
base_enc_encrypted_password | object json | encrypted password,see base_enc_password Table information for more information |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
readonly | object | Set Read User,see Table 3 for more information | |
readwrite_user | object | Set Write User,see Table 3 for more information |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
authentication_type | “MD5”, “SHA” | string | MD5 authentication method,SHA authentication method |
encrypted_type | “CBC-DES” | string | For encryption algorithm extension |
username | Max length:16byte | string | |
authentication_password | Max length:16byte | string | |
authentication_password_empty | bool | password empty | |
encrypted_password | Max length:16byte | string | |
encrypted_password_empty | bool | password 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
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
Parameter | Range | Type | Description |
---|---|---|---|
enable | bool | enable |
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
Range
Function
This API is used to get the parameter range of Network > Voice Assistant.
Request Message
Parameter Description
Table 1
Parameter | Range | Type | Description |
---|---|---|---|
SmartHomePage | "Amazon" "Google" | string | Voice assistant type. |
Sample:
POST /API/NetworkConfig/SMARTHOME/Range HTTP/1.1
{
"version": "1.0",
"data": {"SmartHomePage": "Amazon"}
}
Response Message
Parameter Description
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
SmartHomePage | "Amazon" "Google" | string | Voice assistant type. |
operate | "Bind" "UnBind" "Apply" | string | |
BindEnable | bool | ||
UserName | string length:0-128 | string | The account corresponding to the platform to be displayed. |
ScreenStream | "Mainstream" "Substream" | The stream of screen projection. | |
default_timeout | int | Default 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_code | commet |
---|---|
user_error | Invalid account. |
bind_fail | Binding failed. |
unbind_fail | Unbind failed. |
error_try_again | The request failed. |
Network_or_DNS_error | Network 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
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
Parameter | Range | Type | Description |
---|---|---|---|
ieee_enable | bool | false:disable true:enable | |
username | 0-127, 1-127 | string | username |
password | 0-127, 1-127 | string | password |
password_empty | bool | false:non-empty true:empty | |
authentication_type | "EAP-MD5", "EAP-MSCHAPv2", "EAP-MD5-Challenge", "EAP-PEAP/MSCHAPv2", "EAP-TTLS/EAP-MD5-Challenge", "EAP-TLS" | string | 0:EAP-MD5 1:EAP-MSCHAPv2 2:EAP-MD5-Challenge 3:EAP-PEAP/MSCHAPv2 4:EAP-TTLS/EAP-MD5-Challenge 5:EAP-TLS |
authentication | object | For authentication,see Table 2 for more information | |
base_enc_password | Json Object | See base_enc_password (Only set). |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
client_passwd_auth_only | object | ||
client_passwd_auth_server_certificate | object | No encryption is required during transmission,see Table 3 for more information | |
client_certificate_server_certificate | object | The private key delivered from the board is required for transmission,see Table 4 for more information |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
ca_cert | Max length:10240byte | string | CA Certificate Content |
install_button | bool | Certificate installed or not | |
delete_button | bool | Certificate uninstall or not |
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
ca_cert | Max length:10240byte | string | CA Certificate Content |
client_cert | Max length:10240byte | string | client certificate |
private_key | Max length:10240byte | string | Client key certificate |
private_key_password | Max length:127byte | string | private key password |
private_key_password_empty | bool | false:non-empty true:empty | |
install_button | bool | Certificate installed or not | |
delete_button | bool | Certificate 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
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
Parameter | Range | Type | description |
---|---|---|---|
schedule_tasks_enable | bool | Enable or disable cruise task schedule | |
tasks_recovery_times | [5,720] | int | Recovery time after the current cruise mission is interrupted |
belt_times_use | [1,100] | int | Percentage of belt life |
schedule | JSON array | Schedule information such as Table 2 |
Table 2
Parameter | Range | Type | description |
---|---|---|---|
schedule_type | "Close" "Line Scan" "Tour" "Pattern Scan" "Preset" | string | Cruise schedule type |
schedule_type_num | [0] [0] [1,2,3,4] [1,2,3,4] [1,2,3,4,5,6,7,8] | int array | Schedule subtask numbers for different cruises |
week | [1,100] | JSON array | week Parameter information is as follows Table 3 |
Table 3
Parameter | Range | Type | description |
---|---|---|---|
day | “Sun” “Mon” “Tue” “Wed” “Thu” “Fri” “Sat” | string | Mark the day of the week |
time | 0: disables the time range 1: enables the time range | array | Each 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
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
Parameter | Range | Type | Description |
---|---|---|---|
channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” The number of channels depends on the capabilities of the device. | string array | Each array bit represents a channel with a string. |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | JSON Object | Channel Information JSON show as follow Table 3 |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | JSON show as follow Table 4 | |
… | Json Object | ||
IP_CH1 | Json Object | ||
… | Json Object | ||
WIFI_CH1 | Json Object | ||
… | Json Object |
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
status | "Offline", "Online" | string | Channel online status, only for digital channels. Note: This field does not exist when the channel is online. |
channel_name | Max length: 31byte | string | Channel name |
switch | bool | true: 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
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
Parameter | Range | Type | Description |
---|---|---|---|
channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” The number of channels depends on the capabilities of the device. | string array | Each array bit represents a channel with a string. |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
device_info | JSON Object | Channel Information JSON show as follow Table 5 |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
operation_type | "AddOrEditChannel", "EditIPCParam", "EditIPCPwd" | string | Operation 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. | array | Each array bit represents a channel with a string. |
channel_info | JSON object | show as follow Table 4 |
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | JSON show as follow Table 5 | |
… | Json Object | ||
IP_CH1 | Json Object | ||
… | Json Object | ||
WIFI_CH1 | Json Object | ||
… | Json Object |
Table 5
Parameter | Range | Type | Description |
---|---|---|---|
No | 1~1000000 | int | |
activesign | 0~2 | int | |
channel_num | int | Number of channels supported by each device. | |
device_type | Max length: 35byte | string | Manufacturer |
device_type_flag | Max length: 32byte | string | Manufacturer flag, informing the third party IPC can broadcast protocol search, modify IP, but online still to ONVIF protocol online (only for NVR) |
dns1 | Max length: 15byte | string | Preferred DNS server, for example, 8.8.8.8. |
dns2 | Max length: 15byte | string | Standby DNS server, for example, 8.8.8.8. |
fmuti_devid | Max length: 1024byte | string | |
gateway | Max length: 15byte | string | Gateway |
ip_address | Max length: 63byte | string | IP address |
ismodify_dhcp | bool | ||
ismodify_ip | bool | Whether the ip address is changed. | |
ismodify_port | bool | Whether the port address is changed. | |
ismodify_username | bool | ||
mac_address | Max length: 35byte | string | MAC address |
manufacturer | Max length: 35byte | string | Device type |
network_mode | “Dhcp”, ”Static” | string | Network mode |
old_ip_address | Max length: 63byte | string | Old IP address |
password | Max length: 31byte | string | Password |
password_empty | bool | Whether the password is empty. | |
port | [1~65535] | int | Media port |
protocol | Max length: 15byte | string | IPC access protocol |
software_version | Max length: 40byte | string | Software version |
subnet_mask | Max length: 15byte | string | Subnet mask |
username | Max length: 31byte | string | |
version_flag | [0~255] | int | Version 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
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
Parameter | Range | Type | Description |
---|---|---|---|
channel | “CH1”…”CH1x” | string array | Each array bit represents a channel with a string. |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
channel_max | int Json Object | Maximum number of channels. | |
limit_wireless_max | int | Maximum number of wireless channels. | |
channel_info | Json Object | JSON shows as follow Table 3 |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | JSON shows as follow Table 4 | |
… | Json Object | ||
CHx | Json Object |
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
camera_type | "Digital" "Wireless" | string | Mode 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
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
Parameter | Range | Type | Description |
---|---|---|---|
channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” The number of channels depends on the capabilities of the device. | string array | Each array bit represents a channel with a string. |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
device_info | JSON Object | JSON show as follow Table 5 |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
operation_type | "AddOrEditChannel", "EditIPCParam", "EditIPCPwd" | string | Operation 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. | array | Each array bit represents a channel with a string. |
channel_info | JSON object | JSON show as follow Table 4 |
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | JSON show as follow Table 5 | |
… | Json Object | ||
IP_CH1 | Json Object | ||
… | Json Object | ||
WIFI_CH1 | Json Object | ||
… | Json Object |
Table 5
Parameter | Range | Type | Description |
---|---|---|---|
channel_num | int | Number of channels supported by each device. | |
state | "NotConfigured", "Offline", "Online" | string | A message is displayed when the channel is not configured. |
switch_mode | "ManualMode", "AutoMode" | string | Only POE channels have this variable." POE channel mode: "ManualMode" : manual mode "AutoMode" : automatic mode |
ip_address | Max length: 63byte | string | IP Adress |
subnet_mask | Max length: 15byte | string | Subnet mask |
gateway | Max length: 15byte | string | Gateway |
dns1 | Max length: 15byte | string | Preferred DNS server, for example, 8.8.8.8. |
dns2 | Max length: 15byte | string | Standby DNS server, for example, 8.8.8.8. |
port | [1~65535] | int | Media port |
web_port | [1~65535] | int | |
protocol | Max length: 15byte | string | IPC access protocol |
username | Max length: 31byte | string | |
password | Max length: 31byte | string | |
password_empty | bool | Whether the password is empty. | |
camera_mode | "Auto", "Normal", "Fisheye" | string | Camera mode |
manufacturer | Max length: 35byte | string | Device type |
device_type | Max length: 35byte | string | Manufacturer |
device_type_flag | Max length: 32byte | string | Manufacturer flag, informing the third party IPC can broadcast protocol search, modify IP, but online still to ONVIF protocol online (only for NVR) |
mac_address | Max length: 35byte | string | MAC adress |
software_version | Max length: 40byte | string | Software version |
version_flag | [0~255] | int | Version flag |
security | "Risk", "Weak", "Medium", "Strength" | string | Cryptographic security |
can_modify_pwd | bool | Whether the password can be changed. | |
new_password | Max length: 31byte | string | Change a new password. |
modify_all_chn_pwd | bool | Whether to change the passwords of all channels. | |
network_mode | “Dhcp”, ”Static” | string | Network model |
can_set_netmode | bool | The network mode can be selected. | |
main_url | Max length: 120byte | string | URL of the mainstream |
sub_url | Max length: 120byte | string | URL of the substream |
connect_method | "General", "Security" | string | When 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_password | Json Object | Encrypted Password | |
hide_network_mode | bool | Whether to hide the network mode option. | |
tips_ensure_ip_not_use | bool | Whether 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
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
Parameter | Range | Type | Description |
---|---|---|---|
protocol_info | JSON Object | JSON show as follow Table 2 |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
protocol1 | Json Object | JSON show as follow Table 3 | |
… | Json Object | ||
protocol16 | Json Object |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
protocol_name | Max length: 15byte | string | |
custom_stream | Json array | JSON show as follow Table 4 |
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
stream_name | “Mainstream” “Substream” | string | |
enable | bool | The Substream is available only when the code stream is enabled. | |
type | “Rtsp” | string | |
port | 1-65535 | int | |
source_path | Max length: 119byte | 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:
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
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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | JSON Object | JSON show as follow Table 2 | |
page_type | "ChannelConfig" | string |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | JSON show as follow Table 3 | |
… | Json Object | ||
IP_CH1 | Json Object | ||
… | Json Object | ||
WIFI_CH1 | Json Object | ||
… | Json Object |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
channel_name | Max length: 31byte | string | Channel name |
software_version | Max length: 40byte | string | Wireless channel version number, read only. |
switch | bool | true: 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 | |
battery | 0-100 | int | Electrical value |
post_recording | "Continuous" "10" "20" "30" | string | Recode delay time |
pair_state | -1 - 7 | int | Matching 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
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
Parameter | Range | Type | Description |
---|---|---|---|
channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” The number of channels depends on the capabilities of the device. | string array | Each array bit represents a channel with a string. |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | JSON Object | Channel Information JSON show as follow Table 3 | |
channel_max | int | Maximum number of channels. |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | JSON show as follow Table 4 | |
… | Json Object | ||
IP_CH1 | Json Object | ||
… | Json Object | ||
WIFI_CH1 | Json Object | ||
… | Json Object |
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
status | "Offline", "Online" | string | Channel online status, only for digital channels. Note: This field does not exist when the channel is online. |
support_default | bool | Whether to restore the default value. | |
camera_param_mode | “Daylight” “Night” | string | Supports only night and day. |
image_setting | "FullColorMode", "DayNightMode", "Schedule" | string | Mode selection under new full color logic. |
FullColorMode | Json Object | Full-color mode parameter structure. JSON show as follow Table 5 | |
DayNightMode | Json Object | Day-night mode parameter structure. JSON show as follow Table 6 | |
image_setting_schedule | JSON array | Schedule mode. | |
Daylight | Json Object | Daytime (or ordinary) parameter structure. JSON show as follow Table 7 | |
Night | Json Object | Night 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" | string | IR-CUT mode (not supported in full color). |
ir_cut_mode | "Auto" "Day", "Night", "Image" "Schedule" | string | IR-CUT mode (supports full color use). |
start_time | string | Start time | |
end_time | string | End time | |
ir_cut_delay | 1-36 | int | Ir switching delay. |
ir_led | "Off", "On", "Auto", "Manual", | string | Ir lamp |
low_beam_light | 1-100 | int | Low light intensity (Ir light manual mode). |
high_beam_light | 1-100 | int | High beam intensity (Ir lamp manual mode). |
mirror_mode | "Close", "VerticalMirroring", "HorizontalMirroring", "All" | string | Mirror Mode |
corridor_mode | “Close”,"Open" | string | Corridor mode |
angle_rotation | "0","90","180","270" | string | Angular rotation |
Table 5
Parameter | Range | Type | Description |
---|---|---|---|
white_light | "Auto", "Manual", "Schedule", "OFF" 1~100 | string int | Fill light mode image fusion ratio. |
light_distance | 0-100 | int | Brightness of the fill light, valid only when (white_light == "Manual"). |
whitelight_schedule | JSON array | Fill light schedule mode. |
Table 6
Parameter | Range | Type | Description |
---|---|---|---|
ir_cut_mode | "Auto", "Day", "Night", "Image", "Schedule" | string | IR-CUT mode |
ircut_schedule | JSON array | Schedule Mode | |
ir_cut_delay | 1-36 | int | Ir switching delay |
ir_led | "Manual", "SmartIR", "OFF", | string | Ir lamp |
low_beam_light | 0-100 | int | Low light intensity (Ir light manual mode). |
high_beam_light | 0-100 | int | High light intensity (Ir light manual mode). |
Table 7
Parameter | Range | Type | Description |
---|---|---|---|
exposure_mode | "Auto", "Manual", "ShutterFirst", "IrisFirst" | string | Exposure 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" | string | Aperture |
iris_max | 0-100 | Int | Maximum aperture |
iris_min | 0-100 | Int | Minimum 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", | string | Minimum 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", | string | Maximum shutter limit |
gain | 1-128(new)/ "Off", "Low","Middle","High"(old) | int/string(old) | Gain, IPC 1-128 |
angle_rotation | "0","90","180","270" | string | Angular 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", | string | Shutter Limit (s) |
back_light | "WDR","HLC","DWDR", "BacklightCompensation","Close" | string | Stand in the light |
wdr_hide_ai_area | bool | Whether the WDR display is mutually exclusive with the marking-off frame. | |
wdr_coefficeient | 0-100、1-255 | int | Wide dynamic coefficient. |
dwdr_coefficeient | 0-100、1-255 | int | Digital wide dynamic coefficient. |
hlc_strength | 1-255 | int | Strong light rejection factor. |
blc_level | 1-15 | Int | Backlight compensates for intensity. |
back_light_area | "Top","Left","Down","Right","Center" | string | Backlight compensation area. |
white_balance | "Auto","Manual", "AutoTracking", "OnePush", "Indoor","Outdoor", "FixedSodiumLamp", "FluorescentLamp1", "FluorescentLamp2", "IncandescentLamp", "Sunlight" | string | White balance Ipc value is "Auto", "Manual", "Indoor". |
red_tuning | 0-100、1-255 | int | Red emphasis quantity. |
blue_tuning | 0-100、1-255 | int | Blue emphasis quantity |
green_tuning | 1-255 | Int | Green emphasis quantity. |
defog_mode | "Disable","Auto","Manual" | string | Fog penetration mode. |
defogging_level | 0-100/(1-255) | int | Fog penetration rating,(IPC:1-255) |
denoising | "Close","CommonMode", "ExpertMode" or “Disable”“Auto”,“Manual” | string | Noise reduction switch. |
denoising_level | 0-100/(1-255) | int | Noise reduction order,(IPC: 1-255). |
distort_correct | “Close”,"Open" | string | Distortion correction. |
distort_correct_mode | "Auto","Manual" | string | Distortion correction mode. |
distort_correct_level | 0-100 | int | Distortion correction grade. |
Tips:
- The lower limit of color temperature cannot be greater than the upper limit of color temperature
- Manual exposure and wide dynamic, strong light suppression, background frequency, backlight compensation mutually exclusive
- Automatic exposure mode: wide dynamic and strong light suppression mutually exclusive, slow shutter and wide dynamic, strong light suppression mutually exclusive
Table 8
Parameter | Range | Type | Description |
---|---|---|---|
mirror_mode | "Close", "VerticalMirroring", "HorizontalMirroring", "All" | string | Mirror Mode |
corridor_mode | “Close”, "Open" | string | Corridor mode |
ir_cut_mode | "AutoMode" "ColorMode", "BlackWhiteMode", "VideoMode"/"ImageMode" "TimeSchedule" | string | IR-CUT Mode show as follow Table 9 Note: No photosensitive IPC translates VideoMode to ImageMode |
ir_cut_delay | 1-36 | int | Ir switching delay |
ir_led | "Off", "On", "Auto", "Manual", | string | Ir lamp, show as follow Table 10 |
image_sensitivity | "Low", "Middle", "High" | string | Non-photosensitive control sensitivity, support non-photosensitive equipment use. |
exposure_mode | "Auto", "Manual", "ShutterFirst", "IrisFirst" | string | exposure 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" | string | Aperture |
iris_max | 0-100 | Int | Maximum aperture |
iris_min | 0-100 | Int | Minimum aperture (Less than the maximum aperture) |
gain | 1-128(new)/ "Off", "Low","Middle","High"(old) | int/string(old) | Gain, IPC 1-128 |
angle_rotation | "0","90","180","270" | string | Angular 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", | string | Shutter limit |
back_light | "WDR", "HLC", "BacklightCompensation", "Close" | string | Backlight |
wdr_coefficeient | 0-100、1-255 | int | Wide dynamic coefficient. |
hlc_coefficeient | 1-255 | string /int | IPC is 1-255. |
hlc_strength | 1-255 | int | Strong light rejection factor. |
blc_level | 1-15 | Int | Backlight compensates for intensity. |
back_light_area | "Top","Left","Down","Right","Center" | string | Backlight compensation area. |
white_balance | "Auto","Manual", "AutoTracking", "OnePush", "Indoor","Outdoor", "FixedSodiumLamp", "FluorescentLamp1", "FluorescentLamp2", "IncandescentLamp", "Sunlight" | string | White balance Ipc value is "Auto", "Manual", "Indoor" |
red_tuning | 0-100、1-255 | int | Red emphasis quantity |
green_tuning | 1-255 | Int | Green emphasis quantity |
defog_mode | "Disable","Auto","Manual" | string | Fog penetration mode |
defogging_level | 0-100/(1-255) | int | Fog penetration rating,(IPC:1-255) |
denoising | "Close","CommonMode", "ExpertMode" or “Disable”“Auto”,“Manual” | string | Noise reduction switch. |
denoising_level | 0-100/(1-255) | int | Noise reduction order,(IPC: 1-255). |
distort_correct | “Close”,"Open" | string | Distortion correction. |
distort_correct_mode | "Auto","Manual" | string | Distortion correction mode. |
distort_correct_level | 0-100 | int | Distortion correction grade. |
support_default | bool | Whether to restore the default value. |
Tips:
- The lower limit of color temperature cannot be greater than the upper limit of color temperature
- Manual exposure and wide dynamic, strong light suppression, background frequency, backlight compensation mutually exclusive
- Automatic exposure mode: wide dynamic and strong light suppression mutually exclusive, slow shutter and wide dynamic, strong light suppression mutually exclusive
Table 9
Parameter | Range | Type | Description |
---|---|---|---|
start_time | string | Start time | |
end_time | string | End time |
Table 10
Parameter | Range | Type | Description |
---|---|---|---|
low_beam_light | 1-100 | int | Low light intensity |
high_beam_light | 1-100 | int | High 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
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
Parameter | Range | Type | Description |
---|---|---|---|
channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” The number of channels depends on the capabilities of the device. | string array | Each array bit represents a channel with a string. |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | JSON Object | Channel Information JSON show as follow Table 3 |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | JSON show as follow Table 4 | |
… | Json Object | ||
IP_CH1 | Json Object | ||
… | Json Object | ||
WIFI_CH1 | Json Object | ||
… | Json Object |
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
status | "Offline", "Online" | string | Channel online status, only for digital channels. Note: This field does not exist when the channel is online. |
name | JSON Object | JSON show as follow Table 5 | |
datetime | JSON Object | JSON show as follow Table 6 | |
alarm | JSON Object | JSON show as follow Table 7 | |
covert | bool | Preview switch (NVR/DVR only) | |
refresh_rate | "50Hz", "60Hz" | string | Refresh frequency. Note: Analog channels are not supported. |
alpha | 1-128 | int | OSD transparency Note: Analog channels are not supported. |
camera_type | "AUTO" "AHD" "TVI" "CVI" | string | Image Type (dvr specific). |
eq_level | "AUTO" "1(0~50m)" "2(50~150m)" "3(150~250m)" "4(250~350m)" "5(350~450m)" | string | EQ rating (dvr only). |
opy_ch | "digit" "analog" "wifi" | string | Support channel replication logo (NVR, DVR special). |
channel_enable | bool | Check whether the parameters of the current channel can be configured. | |
osd_invert | bool | OSD Reverse color switch. |
Table 5
Parameter | Range | Type | Description |
---|---|---|---|
show | bool | OSD Specifies whether to display the channel name. | |
text | Max length: 31byte | string | OSD text (DVR/NVR/IPC). |
pos | JSON array | JSON show as follow Table 8 |
Table 6
Parameter | Range | Type | Description |
---|---|---|---|
show | bool | Whether the video window displays a date. | |
date_format | "MM/DD/YYYY", "YYYY-MM-DD", "DD/MM/YYYY" | string | Date Format Note: Analog channels are not supported. |
time_format | 24,12 | int | Time mode, unit: hour Note: Analog channel is not supported. |
time | int | Current board time. | |
pos | JSON array | JSON show as follow Table 8 |
Table 7
Parameter | Range | Type | Description |
---|---|---|---|
show | bool | Alarm Pos Specifies whether to support mobile. | |
text | Max length: 31byte | string | Alarm OSD text. The maximum value of the IPC is 32 bytes. |
pos | JSON array | JSON show as follow Table 8 |
Table 8
Parameter | Range | Type | Description |
---|---|---|---|
x | [0-704] | int | x Coordinate |
y | [0-576] | int | y 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
Parameter | Required | Description |
---|---|---|
Action | YES | Request 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
Parameter | Range | Type | Description |
---|---|---|---|
channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” The number of channels depends on the capabilities of the device. | string array | Each array bit represents a channel with a string. |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | JSON Object | Channel Information JSON show as follow Table 3 | |
actual_power | string | Used power | |
surplus_power | string | Surplus power | |
total_power | string | Total power | |
channel_min_power | string | Minimum power per channel. | |
channel_max_power | string | Maximum power per channel. | |
channel_max | int | Channel total |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | JSON show as follow Table 4 | |
… | Json Object | ||
IP_CH1 | Json Object | ||
… | Json Object | ||
WIFI_CH1 | Json Object | ||
… | Json Object |
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
channel_current_power | Max length: 7byte | string | Power 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
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
Parameter | Range | Type | Description |
---|---|---|---|
channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” The number of channels depends on the capabilities of the device. | string array | Each array bit represents a channel with a string. |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | JSON Object | Channel Information JSON show as follow Table 3 | |
channel_max | int | Maximum number of channels. | |
support_copy | bool | Page support copy (NVR, DVR dedicated). |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | JSON show as follow Table 4 | |
… | Json Object | ||
IP_CH1 | Json Object | ||
… | Json Object | ||
WIFI_CH1 | Json Object | ||
… | Json Object |
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
status | "Offline", "Online" | string | Channel online status, only for digital channels. Note: This field does not exist when the channel is online. |
signal_type | “Analog” “Digital” | string | Signal type. |
protocol | "PelcoD", "PelcoP", "COAX1", "COAX2" | string | PTZ protocol. |
baudrate | "1200", "2400", "4800", "9600" | string | Baud rate. |
databit | "8", "7", "6", "5" | string | Data bit. |
stopbit | "1", "2" | string | Stop bit. |
parity | "None", "Odd", "Even", "Mark", "Space" | string | Parity check bit. |
address | 1-255. | int | Address code |
copy_ch | "digit" "analog" "wifi" | string | Support 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
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
Parameter | Range | Type | Description |
---|---|---|---|
channel | int | Channel number for remote pairing. | |
pair_status | int | Remote pair operation command, 1: pair, 0: unpair. |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
state | Max_length:20 | string | Status 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
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
Parameter | Range | Type | Description |
---|---|---|---|
channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” The number of channels depends on the capabilities of the device. | string array | Each array bit represents a channel with a string. |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | Json Object | JSON shows as follow Table 3 |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | JSON shows as follow Table 4 | |
… | Json Object | ||
IP_CH1 | Json Object | ||
… | Json Object | ||
WIFI_CH1 | Json Object | ||
… | Json Object |
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
main_stream_info | Json Object | JSON shows as follow Table 5 | |
sub_stream_info | Json Object | JSON shows as follow Table 5 | |
mobile_stream_info | Json Object | JSON shows as follow Table 5 |
Table 5
Parameter | Range | Type | Description |
---|---|---|---|
region_id_1 | Json Object | JSON shows as follow Table 6 | |
… | Json Object | ||
region_id_8 | Json Object |
Table 6
Parameter | Range | Type | Description |
---|---|---|---|
roi_switch | bool | ROI Enable | |
roi_level | “Lowest”, "Lower" "Low", "Medium" "Higher", "Highest" | string | ROI Level |
main_non_roi_fps | string | Non ROI Zone Fps | |
rect | Json Object | ROI Zone Rection JSON shows as follow Table 9 |
Table 7
Parameter | Range | Type | Description |
---|---|---|---|
roi_switch | bool | ROI Enable | |
roi_level | “Lowest”, "Lower" "Low", "Medium" "Higher", "Highest" | string | ROI Level |
sub_non_roi_fps | string | Non ROI Zone Fps | |
rect | Json Object | ROI Zone Rection JSON shows as follow Table 9 |
Table 8
Parameter | Range | Type | Description |
---|---|---|---|
roi_switch | bool | ROI Enable | |
roi_level | “Lowest”, "Lower" "Low", "Medium" "Higher", "Highest" | string | ROI Level |
mobile_non_roi_fps | string | Non ROI Zone Fps | |
rect | Json Object | ROI Zone Rection JSON shows as follow Table 9 |
Table 9
Parameter | Range | Type | Description |
---|---|---|---|
left | 0-704 | int | Left |
top | 0-576 | int | Top |
width | 0-704 | int | Width |
height | 0-576 | int | Height |
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
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
Parameter | Range | Type | Description |
---|---|---|---|
channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” The number of channels depends on the capabilities of the device. | string array | Each array bit represents a channel with a string. |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | JSON Object | Channel Information JSON show as follow Table 3 |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | JSON show as follow Table 4 | |
… | Json Object | ||
IP_CH1 | Json Object | ||
… | Json Object | ||
WIFI_CH1 | Json Object | ||
… | Json Object |
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
status | "Offline", "Online" | string | Channel online status, only for digital channels. Note: This field does not exist when the channel is online. |
hue | 0-255 | int | Hue |
bright | 0-255 | int | Bright |
contrast | 0-255 | int | Contrast |
saturation | 0-255 | int | Saturation |
sharpness | 0-255 | int | Sharpness |
support_default | bool | Whether 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
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
Parameter | Range | Type | Description |
---|---|---|---|
channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” The number of channels depends on the capabilities of the device. | string array | Each array bit represents a channel with a string. |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | JSON Object | Channel Information JSON show as follow Table 3 | |
channel_max | Int | Maximum number of channels | |
support_copy | bool | Page support copy (NVR, DVR dedicated). |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | JSON show as follow Table 4 | |
… | Json Object | ||
IP_CH1 | Json Object | ||
… | Json Object | ||
WIFI_CH1 | Json Object | ||
… | Json Object |
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
status | "Offline", "Online" | string | Channel online status, only for digital channels. Note: This field does not exist when the channel is online. |
privacy_zone_enable | Bool | Video block switch. | |
zone_info_p | JSON array | JSON show as follow Table 5 Note: The onvif protocol supports up to four occlusion areas. | |
copy_ch | "digit""analog""wifi" | string | Support channel replication logo (NVR, DVR special). |
Table 5
Parameter | Range | Type | Description |
---|---|---|---|
zone_no | 1-8 | int | Occluded area number. |
zone_enable | bool | Occluded area switch. | |
point | JSON array | JSON show as follow Table 6 |
Table 6
Parameter | Range | Type | Description |
---|---|---|---|
left | 0-704 | int | X Coordinate |
top | 0-576 | int | Y Coordinate |
width | 0-704 | int | Width |
height | 0-576 | int | Height |
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
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
Parameter | Range | Type | Description |
---|---|---|---|
channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” The number of channels depends on the capabilities of the device. | string array | Each array bit represents a channel with a string. |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | JSON Object | Channel Information JSON show as follow Table 3 | |
channel_max | int | Maximum number of channels. |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | JSON show as follow Table 4 | |
… | Json Object | ||
IP_CH1 | Json Object | ||
… | Json Object | ||
WIFI_CH1 | Json Object | ||
… | Json Object |
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
status | "Offline", "Online" | string | Channel online status, only for digital channels. Note: This field does not exist when the channel is online. |
enable | bool | Enable switch. | |
fps | 1-10 | int | Crop Fps |
zone_info | JSON array | JSON show as follow Table 5 Note: Currently only two regions are supported. |
Table 5
Parameter | Range | Type | Description |
---|---|---|---|
zone_no | 1-2 | int | Zone number |
rect | JSON object | JSON show as follow Table 6 |
Table 6
Parameter | Range | Type | Description |
---|---|---|---|
left | 0-704 | int | Left |
top | 0-576 | int | Top |
width | 0-704 | int | Width |
height | 0-576 | int | Height |
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
Parameter | Required | Description |
---|---|---|
Page | YES | Page name, including "MainStream", "SubStream", "MobileStream", "EventStream" |
Action | YES | Request 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
Parameter | Range | Type | Description |
---|---|---|---|
channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” The number of channels depends on the capabilities of the device. | string array | Each array bit represents a channel with a string. |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | JSON Object | Channel Information JSON show as follow Table 3 | |
channel_max | int | Total number of channels on the device. | |
support_copy | bool | Whether the page support copy (only for NVR and DVR) | |
analog_max | int | Maximum number of analog channels on the device. | |
bandwidth | object | Information show as follow Table 8 |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | Information show as follow Table 4 | |
… | Json Object | ||
IP_CH1 | Json Object | ||
… | Json Object | ||
WIFI_CH1 | Json Object | ||
… | Json Object |
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
status | "Offline", "Online" | string | Channel 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" | string | Resolution 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. |
fps | int | Frame rate | |
video_encode_type | "H.264",| "H.265", "H.264+", "H.265+", “MJPEG” | string | Video coding type |
bitrate_control | "CBR", "VBR" | string | Stream type |
video_quality | "Lowest", "Lower", "Low", "Medium", "Higher", "Highest" | string | Image Quality Note: This parameter is supported only when Type is the VBR option. |
bitrate_mode | "Predefined", "UserDefined" | string | Stream mode |
bitrate | 8,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 | int | Default stream size |
bitrate_default | JSON Object | JSON show as follow Table 5 | |
custom_bitrate | int | Custom stream size | |
audio | bool | Audio switch. | |
i_frame_interval | int | I-frame rate interval | |
i_frame_interval_rate | int | The I-frame interval is changed to x times the frame rate | |
etr | bool | Dynamic 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" | string | Dynamic video resolution (only for NVR) |
etr_fps | int | The frame rate of dynamic video recording.(only for NVR) | |
etr_bitrate | 8,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 | int | Default stream size for motion recording.(only for NVR) |
etr_custom_bitrate | int | Custom stream size for dynamic video recording.(only for NVR) | |
etr_stream_type | “Alarm” | string | Stream type of dynamic video recording.(only for NVR) |
etr_video_encode_type | "H.264", "H.265", "H.264+", "H.265+", “MJPEG” | string | Video encoding type of dynamic recording.(only for NVR) |
etr_bitrate_control | "CBR", "VBR" | string | Type of dynamic video stream.(only for NVR) |
etr_video_quality | "Lowest", "Lower", "Low", "Medium", "Higher", "Highest" | string | Image 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" | string | Stream mode of dynamic video recording.(only for NVR) |
etr_audio | bool | Audio switch.(only for NVR) | |
etr_i_frame_interval | string | I-frame rate interval of dynamic video recording.(only for NVR) | |
copy_ch | "digit", "analog", "wifi" | string | Flag that supports channel replication.(only for NVR, DVR) |
enable_stream | bool | Mobile stream or fourth stream - switch. | |
video_encode_level | “Baseline”, “MainProfile”, “HighProfile” | string | Video 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“, | string | Simulated gun mode. Copy can be performed only when the mode is consistent. Digital channels are not supported. |
rtsp_enable | bool | Determine the ipc parameters of the Rtsp protocol online and set them to grey. | |
video_encode_type_resolution_range | string | Resolution range | |
codeparam_setting_notice | "noticeRule_1", "noticeRule_2" | string | Two rules indicate whether to prompt a restart |
Table 5
Parameter | Range | Type | Description |
---|---|---|---|
“1280 * 720” | JSON Object | Resolution value,JSON show as Table 6 | |
... | JSON Object | Resolution value,JSON show as Table 6 |
Table 6
Parameter | Range | Type | Description |
---|---|---|---|
“1” | JSON Object | Frame rate value,JSON show as Table 7 | |
... | JSON Object | Frame rate value,JSON show as Table 7 |
Table 7
Parameter | Range | Type | Description |
---|---|---|---|
default_value | 256,320,384,448,512,640,768, 896,1024,1280,1536,1792,2048, 3072,4096,5120,6144,8192 | int | Each fps corresponds to one bitrate default value. |
Table 8
Parameter | Range | Type | Description |
---|---|---|---|
total_bandwidth | int | Total bandwidth (unit: kpbs) | |
remaining_bandwidth | int | Remaining 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
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
Parameter | Range | Type | Description |
---|---|---|---|
channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” The number of channels depends on the capabilities of the device. | string array | Each array bit represents a channel with a string. |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | JSON Object | Channel Information JSON show as follow Table 3 |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | Information show as follow Table 4 | |
… | Json Object | ||
IP_CH1 | Json Object | ||
… | Json Object | ||
WIFI_CH1 | Json Object | ||
… | Json Object |
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
auto_capture | false:off, true:on | bool | Automatic capture switch |
stream_type | "Mainstream", "Substream" | string | Stream type |
normal_interval | 5,10,30,60,600,1800,3600 | int | Normal Image capture interval Unit: Second |
alarm_interval | Same as normal_interval field | int | Parameter Description Value Alarm Indicates the alarm type capture interval. Unit: Second |
alarm_resolution | string | Picture resolution | |
alarm_quality | “Highest", "Higher", "Medium", "Low", "Lower", "Lowest" | string | Picture quality |
copy_ch | "digit", "analog", "wifi" | string | Support channel replication logo (noly for NVR, DVR) |
Table 5
Parameter | Range | Type | Description |
---|---|---|---|
auto_capture_used | 0~MAX_PARA_CHN_NUM | array | Id of the channel where the automatic capture function is enabled. |
max_auto_capture_num | 16 | int | The 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
Parameter | Required | Description |
---|---|---|
Action | YES | Request action, including only Get . |
Get
Function
This API is used to get parameter for Stream > Rtsp Url page.
Request Message
Parameter Description
Table 1
Parameter | Range | Type | Description |
---|---|---|---|
channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” The number of channels depends on the capabilities of the device. | string array | Each 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | JSON Object | Channel Information JSON show as follow Table 3 |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” | string | Channel number |
mainstream_url | Max length: 63 byte | string | MainStream URL |
substream_url | Max length: 63 byte | string | SubStream URL |
mobilestream_url | Max length: 63 byte | string | MobileStream 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
Range
Function
This API is used to get the combined alarm parameter range.
Request Message
Parameter Description
Table 1
Parameter | Range | Type | Description |
---|---|---|---|
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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | object | Total channel information see Table 3. |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | object | See Table 4 | |
… | object | ||
IP_CH1 | object | ||
… | object | ||
WIFI_CH1 | object | ||
… | 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. |
enable_alarm | "Disable", "Enable" | string | joint alarm enable switch. |
combination_configure | object array | combination 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 array | alarm 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 | Alarm output time. |
record_enable | bool | record enable. | |
record_channel | "CH1"…"CHx" "IP_CH1"…"IP_CHx" "WIFI_CH1"…"WIFI_CHx" | string array | Channel of linkage recording. |
post_recording | "30","60","120","300" | string | Recording delay time. |
send_email | bool | ||
full_screen | bool | FullScreen switch (for NVR only). | |
buzzer | "0","10","20","40","60" | string | Buzzer buzzing time (for NVR only). |
show_message | bool | Show Message switch (for NVR only). | |
ftp_picture_upload | bool | Channel snapshot FTP upload switch. | |
ftp_video_upload | bool | Channel video FTP upload switch (for NVR/DVR only). | |
picture_to_cloud | bool | Picture upload switch. | |
video_to_cloud | bool | Video cloud upload switch (for NVR/DVR only). | |
voice_prompts_index | int array | File 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_select | int array | Play channel, counted by bit (bit0 is local, bit1 corresponds to front-end channel 1, bit2 corresponds to channel 2...). | |
voice_prompts_time | object array | Broadcasting time period setting, there can be no time conflict in the 12 time periods, see Table 6 for details. | |
copy_ch | "digit", "analog", "wifi" | string | Support channel copy flag (for NVR and DVR only). |
Table 5
Parameter | Range | Type | Description |
---|---|---|---|
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 " | string | Configure the alarm combination type. |
alarm_source | "IP Camera" "Analog Channels" "Local->1"…"Local->x" | string | |
support_ipc_io | bool | Whether the IPC channel supports front-end IO. |
Table 6
Parameter | Range | Type | Description |
---|---|---|---|
start_hour | 0~23 | int | Start time h. |
start_minute | 0~59 | int | start time m. |
start_second | 0~59 | int | start time s. |
end_hour | 0~23 | int | end time h. |
end_minute | 0~59 | int | end time m. |
end_second | 0~59 | int | end 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
Range
Function
This API is used to get the Alarm > Cross Counting configuration parameter range.
Request Message
Parameter Description
Table 1
Parameter | Range | Type | Description |
---|---|---|---|
channel | "CH1"…"CHx", "IP_CH1"…"IP_CHx", "WIFI_CH1"…"WIFI_CHx" The channels supported by the device. | string array | IPC can only Use "CH1". |
page_type | "ChannelConfig", "AlarmConfig" | string | It 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | object | Total channel information see Table 3. | |
channel_max | int | The maximum number of channels. | |
support_copy | bool | Whether to support copy. |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | object | See Table 4 | |
… | object | ||
IP_CH1 | object | ||
… | object | ||
WIFI_CH1 | object | ||
… | object |
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
status | "Offline","Online","Nonsupport" | string | Online 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 array | alarm 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 array | Alarm output time, IPC: 5 10 20 30 |
record_enable | true, false | bool | Channel recording switch. |
record_channel | "CH1"…"CHx" "IP_CH1"…"IP_CHx" "WIFI_CH1"…"WIFI_CHx" | string array | Channel of linkage recording. |
post_recording | "30","60","120","300" | string | Recording delay time, IPC: 0 5 10 20 30. |
send_email | true, false | bool | Send Email switch. |
ftp_picture_upload | true, false | bool | Channel snapshot FTP upload switch (for NVR only). |
ftp_video_upload | true, false | bool | Channel video FTP upload switch (for NVR only). |
picture_to_cloud | true, false | bool | Picture upload switch (for NVR only). |
video_to_cloud | true, false | bool | Video cloud upload switch (for NVR only). |
full_screen | bool | FullScreen switch (for NVR only). | |
http_listening | bool | Push switch. | |
buzzer | "0","10","20","40","60" | string | Buzzer buzzing time (for NVR only). |
show_message | bool | Show Message switch (for NVR only). | |
switch | true, false | bool | |
sensitivity | 1-4 | int | Detection sensitivity. |
iva_lines | 0,1 | int | Whether there will be lines in preview and playback, 0 does not draw lines, 1 draws lines. |
voice_prompts | int | Alarm sound (only for NVR). | |
rule_info | object | See Table 5 for details. | |
voice_prompts_index | 0~4294967295 | int | File 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_select | size: 0-12 | int array | Playing channel, calculated by bit (bit0 is local, bit1 corresponds to front channel 1, bit2 corresponds to channel 2...). |
voice_prompts_time | size: 0-12 | object array | time period. |
copy_ch | "digit", "analog", "wifi" | string | Support channel copy flag (for NVR and DVR only). |
is_ai_param | bool | Distinguish between ordinary CC and intelligent CC, true: intelligent CC, false: ordinary CC. | |
detection_type | "Motion","Person","Vehicle" | string | detection type. |
alarm_num | 1-255 | Number of alarms. | |
start_time | string length: 8 | string | start time. |
end_time | string length: 8 | string | end time. |
reset_count | bool | Reset warning count. | |
schedule_enable | bool | Scheduled start. | |
ptz_operation_support | bool | ptz control support. |
Table 5
Parameter | Range | Type | Description |
---|---|---|---|
rule_number1 | object | rule number 1, see Table 6. |
Table 6
Parameter | Range | Type | Description |
---|---|---|---|
rule_switch | bool | rule switch. | |
rule_type | "Normal","A->B","B->A" | string | rule type. |
rule_line | object | Strike a line, see Table 7. | |
rule_rect | object | Rectangle, see Table 8. |
Table 7
Parameter | Range | Type | Description |
---|---|---|---|
x1 | 0-704 | short | x1 coordinate point. |
y1 | 0-576 | short | y1 coordinate point. |
x2 | 0-704 | short | x2 coordinate point. |
y2 | 0-576 | short | y2 coordinate point. |
Table 8
Parameter | Range | Type | Description |
---|---|---|---|
x1 | 0-704 | short | x1 coordinate point. |
y1 | 0-576 | short | y1 coordinate point. |
x2 | 0-704 | short | x2 coordinate point. |
y2 | 0-576 | short | y2 coordinate point. |
x3 | 0-704 | short | x3 coordinate point. |
y3 | 0-576 | short | y3 coordinate point. |
x4 | 0-704 | short | x4 coordinate point. |
y4 | 0-576 | short | y4 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
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
Parameter | Range | Type | Description |
---|---|---|---|
disarming | bool | disarming switch. | |
action | object | See Table 2 for details. | |
disarming_channel | "CH1"…"CHx", "IP_CH1"…"IP_CHx", "WIFI_CH1"…"WIFI_CHx" The channel supported by the device. | string array | disarming channel . |
channel_info | object | See Table 3. |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
buzzer | bool | Whether to disarm the buzzer switch. | |
alarm_out | bool | Whether to disarm the alarm output switch. | |
show_message | bool | Whether to disarm the alarm icon switch. | |
send_email | bool | Whether to disarm email switch. | |
full_screen | bool | Whether to disarm the full screen switch. | |
voice_prompts | bool | Whether to disarm the voice broadcast switch. | |
event_push_platform | bool | Whether to disarm event push switch. |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | object | See Table 4. | |
… | object | ||
IP_CH1 | object | ||
… | object | ||
WIFI_CH1 | object | ||
… | object |
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
disarming_schedule | object array | See Table 5. |
Table 5
Parameter | Range | Type | Description |
---|---|---|---|
schedule_type | "Disarming" | string | Schedule type. |
week | object array | See Table 6 for details. |
Table 6
Parameter | Range | Type | Description |
---|---|---|---|
day | "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" | string | |
time | 0: close the time period 1: open the time period | array | Each 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
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
Parameter | Range | Type | Description |
---|---|---|---|
exception_info | Json Object | Json object see Table 2 for more information |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
video_loss | Json Object | Json see Table 3 | |
disk_error | Json Object | Json see Table 3 | |
no_space_on_disk | Json Object | Json see Table 3 | |
fan_abnormal | Json Object | Json see Table 3 |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
switch | bool | Enable switch | |
Buzzer | "0","10", "20","40","60" | string | Buzzer beeping time |
alarm_out | “Local->1” ”Local->x” “IP_CH1->1” ”IP_CH1->x” “IP_CHx->1” ”IP_CHx->1” | array | Alarm output channel switch Each array bit is represented by a string representing the alarm output channel |
latch_time | "10","20","40","60" | string | Alarm output time |
show_message | bool | Display message switch | |
send_email | bool | Send email switch | |
voice_prompts_index | 0~4294967295 | int | File 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_select | array | Playback channel, calculated by bit (bit0 is local, bit1 corresponds to front-end channel 1, and bit2 corresponds to channel 2) | |
voice_prompts_tiome | array | Time 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
Range
Function
This API is used to get Alarm > Face Detection parameter range.
Request Message
Parameter Description
Table 1
Parameter | Range | Type | Description |
---|---|---|---|
channel | "CH1"…"CHx", "IP_CH1"…"IP_CHx", "WIFI_CH1"…"WIFI_CHx" The channels supported by the device. | string array | IPC can only Use "CH1". |
page_type | "ChannelConfig", "AlarmConfig" | string | It 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | object | Total channel information see Table 3. | |
channel_max | int | The maximum number of channels. | |
support_copy | bool | Whether to support copy. | |
agreed_to_agreement | bool | Agreed to the agreement. | |
statement_file_name | string length:1-48 | string | protocol file name. |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | object | See Table 4 | |
… | object | ||
IP_CH1 | object | ||
… | object | ||
WIFI_CH1 | object | ||
… | object |
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
status | "Offline","Online","Nonsupport" | string | Online 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 array | alarm 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 array | Alarm output time, IPC: 5 10 20 30 |
record_enable | true, false | bool | Channel recording switch. |
record_channel | "CH1"…"CHx" "IP_CH1"…"IP_CHx" "WIFI_CH1"…"WIFI_CHx" | string array | Channel of linkage recording. |
post_recording | "30","60","120","300" | string | Recording delay time, IPC: 0 5 10 20 30. |
send_email | true, false | bool | Send Email switch. |
ftp_picture_upload | true, false | bool | Channel snapshot FTP upload switch (for NVR only). |
ftp_video_upload | true, false | bool | Channel video FTP upload switch (for NVR only). |
picture_to_cloud | true, false | bool | Picture upload switch (for NVR only). |
video_to_cloud | true, false | bool | Video cloud upload switch (for NVR only). |
full_screen | bool | FullScreen switch (for NVR only). | |
buzzer | "0","10","20","40","60" | string | Buzzer buzzing time (for NVR only). |
show_message | bool | Show Message switch (for NVR only). | |
switch | true, false | bool | |
is_ai_param | bool | Used to distinguish between ordinary face detection and deep learning face detection (NVR dedicated). | |
face_enhance | true, false | bool | face enhance switch |
detection_mode | "StaticMode" "MotionMode" | string | |
snap_mode | "RealTimeMode" "OptimalMode" "IntervalMode" | string | |
apply_mode | "FrontalView" "MultiAngle" "Customize" | string | |
min_pixel | 32-1080 | int | |
max_pixel | 320-1080 | int | |
iva_lines | 0,1 | int | Set whether the line should appear during preview and playback, 0:no, 1:yes. |
rule_info | object | See Table 5 for details. | |
voice_prompts_index | 0~4294967295 | int | File 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_select | size: 0-12 | int array | Playing channel, calculated by bit (bit0 is local, bit1 corresponds to front channel 1, bit2 corresponds to channel 2...). |
voice_prompts_time | size: 0-12 | object array | time period. |
copy_ch | "digit", "analog", "wifi" | string | Support channel copy flag (for NVR and DVR only). |
snap_num | "1" "2" "3" "Unlimited" | string | Number of screenshots |
snap_frequency | int | Screenshot interval, unit s/pic | |
http_listening | bool | http event push | |
roll_range | 0-180 | int | The 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_range | 0-180 | int | The 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_range | 0-180 | int | The 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_quality | 0-100 | int | The 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
Parameter | Range | Type | Description |
---|---|---|---|
rule_number1 | object | Rule number 1,information JSON show as follow Table Table 6 |
Table 6
Parameter | Range | Type | Description |
---|---|---|---|
rule_switch | bool | ||
rule_type | "Normal","A->B","B->A" | string | |
rule_kind | "Rect", "Line" | string | |
detection_range | "FullScreen", "Customize" | string | |
rule_rect | object | Rectangle,information JSON show as follow Table Table 7 | |
rule_line | object | Line,information JSON show as follow Table Table 8 |
Table 7
Parameter | Range | Type | Description |
---|---|---|---|
x1 | 0-704 | short | x1 Coordinate points。 |
y1 | 0-576 | short | y1 Coordinate points。 |
x2 | 0-704 | short | x2 Coordinate points。 |
y2 | 0-576 | short | y2 Coordinate points。 |
x3 | 0-704 | short | x3 Coordinate points。 |
y3 | 0-576 | short | y3 Coordinate points。 |
x4 | 0-704 | short | x4 Coordinate points。 |
y4 | 0-576 | short | y4 Coordinate points。 |
Table 8
Parameter | Range | Type | Description |
---|---|---|---|
x1 | 0-704 | short | x1 Coordinate points。 |
y1 | 0-576 | short | y1 Coordinate points。 |
x2 | 0-704 | short | x2 Coordinate points。 |
y2 | 0-576 | short | y2 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
Range
Function
This API is used to get the parameter range of Alarm > Floodlight.
Request Message
Parameter Description
Table 1
Parameter | Range | Type | Description |
---|---|---|---|
channel | "CH1"…"CHx", "IP_CH1"…"IP_CHx", "WIFI_CH1"…"WIFI_CHx" The channels supported by the device. | string array | IPC only use "CH1"。 |
Sample:
POST /API/AlarmConfig/Deterrence/Range HTTP/1.1
{
"version": "1.0",
"data": {}
}
Response Message
Parameter Description
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
channel_max | int | Maximum number of channels | |
channel_info | Json Object | Channel information see Table 3 for more information |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | Json see Table 4 | |
... | Json Object | ||
IP_CH1 | Json Object | ||
... | Json Object | ||
WIFI_CH1 | Json Object | ||
... | Json Object |
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
status | "Offline","Online" | string | Channel online status, only for digital channels. Note: This field is not available when the channel is online |
flood_light_switch | bool | White light switch | |
flood_light_disable | bool | Full color machine only | |
flood_light_mode | "Warninglight" "Strobe" | string | White 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_value | 1-100 | int | White brightness |
bright_time | 5-180 | int | White light duration |
strobe_frequency | "Low","Middle","High" | string | Enable in flashing mode,0:low; 1:middle; 2:high |
sensitivity | 1-8 | int | 8 levels: 8-high, 7-high, 1-low sensitivity for detecting triggered white light in areas |
siren_switch | true false | bool | siren switch false: close true: open |
siren_value | 1-10 | int | siren volume |
siren_time | 5-180 | int | siren time last |
color_image_ctrl | bool | 0: 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_setting | 200*8 | array | Divide 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. |
mbcol | 44 | int | Divide the area into row * col blocks |
mbrow | 30 | int | Divide the area into row * col blocks |
dualtalk_volume | 1-10 | int | Intercom volume control. |
enforcer_light_switch | true false | bool | Red and blue light switch false: close true: open |
enforcer_bright_time | 5-180 | int | Duration of red and blue lights |
warning_light_disable | bool | Full color machine only | |
button_control | Json Object | Controls whether the save and default buttons are displayed or hidden | |
save_visible | bool | Save button | |
default_visible | bool | Restore default button | |
param_video | Json Object | Page small window video box, do not pass this field default display | |
show | bool | show | |
disable | bool | disable | |
time_schedule | Json array | Json object see Table 5 | |
deterrence_mode | " Normal "," Full Color "," Alarm " | string | Used 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_time | int | (Dedicated for consumer NVR docking with IPC POE package) Sound and light linkage alarm working interval time | |
deterrence_schedule | Json array | (Dedicated to Consumer NVR Docking IPC POE Package) Sound and Light Linkage Schedule Data,see Table 7 for more information |
Table 5
Parameter | Range | Type | Description |
---|---|---|---|
schedule_type | “Deterrence” | string | White Light Time Schedule |
week | Json array | WeekJson see Table 6 for more information |
Table 6
Parameter | Range | Type | Description |
---|---|---|---|
day | Sun,Mon,Tue,Wed,Thu,Fri,Sat | string | Identify the day of the week |
time | 0: Close time period 1: Enable this time period | array | Each array bit (int) identifies half an hour. |
Table 7
Parameter | Range | Type | Description |
---|---|---|---|
schedule_type | "white_light","enforcer_light","siren" | string | The alarm type represented by the current schedule data |
schedule_list | string | Current alarm linkage schedule data,see Table 8 for more information |
Table 8
Parameter | Range | Type | Description |
---|---|---|---|
enable | true false | bool | Is the current schedule effective |
start_time | 0 – 1439(23*60+59) | int | Schedule start time (minutes relative to 00:00) |
end_time | 0 – 1439(23*60+59) | int | Schedule end time (minutes relative to 00:00) |
weekday | "Sunday""Monday""Tuesday""Wednesday""Thursday""Friday""Saturday" | ||
array | Indicates 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
Parameter | Range | Type | Description |
---|---|---|---|
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
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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | object | Total channel information see Table 2. | |
page_type | "ChannelConfig", "AarmConfig" | string | It is used to distinguish the data of channel configuration page or alarm configuration page. |
channel_max | int | The maximum number of channels. |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | object | See Table 3 | |
… | object | ||
IP_CH1 | object | ||
… | object | ||
WIFI_CH1 | object | ||
… | object |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
"status" | "Offline", "Online", "Notsupport" | string | status. |
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" | string | crossing type. |
search_date | string length:10 | string | Search date. |
ai_cross_count | bool | Distinguish between first-generation and second-generation CC, here the default is true. | |
detection_type | "Motion", "Person", "Vehicle", "Non-motorized Vehicle" | string | detection 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
Parameter | Range | Type | Description |
---|---|---|---|
channel | "CH1"…"CHx", "IP_CH1"…"IP_CHx", "WIFI_CH1"…"WIFI_CHx" The channels supported by the device. | string array | IPC 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | object | Total channel information see Table 2. |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | object | See Table 3 | |
… | object | ||
IP_CH1 | object | ||
… | object | ||
WIFI_CH1 | object | ||
… | object |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
report | unsigned int array | Statistical 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
Range
Function
This API is used to get the parameter range of Alarm > IO Alarm.
Request Message
Parameter Description
Table 1
Parameter | Range | Type | Description |
---|---|---|---|
alarm_in | "Local<-1"..."Local<-x" "IP_CH1<-1"..."IP_CHx<-x" The number of channels depends on the functionality of the device. | string array | Each 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | Json Object | Channel information see Table 3 for more information | |
channel_max | int | The total number of channels in the current device |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
Local<-1 | Json Object | Json object see Table 4 for more information | |
... | Json Object | ||
IP_CH1<-1 | Json Object | ||
... | Json Object |
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
alarm_type | "NormallyOpen", "NormallyClose", "Off" | string | I/O status alarm |
latch_time | "10","20","40","60"or“5”“10”“20”“30” | string | Alarm output time |
buzzer | "0","10","20","40","60" | string | Buzzer 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. | array | Alarm 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” | string | Recording delay time |
send_email | bool | Send email switch | |
ftp_picture_upload | bool | Channel video FTP upload switch | |
picture_to_cloud | bool | Image upload switch | |
video_to_cloud | bool | Video cloud upload switch (dedicated to NVR/DVR) | |
ftp_video_upload | bool | Channel video FTP upload switch (dedicated to NVR/DVR) | |
show_message | bool | Display message switch (dedicated to NVR/DVR) | |
full_screen | bool | Full screen switch (dedicated to NVR/DVR) | |
channel | “CH1” ”CH1x” “IP_CH1” ” IP_CH1x”“WIFI_CH1”…” WIFI_CH1x” | array | Channel alarm linkage switch Channel alarm linkage switch, each value represents a channel switch. |
voice_prompts_index | 0~4294967295 | int | File 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_select | array | Playback channel, calculated by bit (bit0 is local, bit1 corresponds to front-end channel 1, and bit2 corresponds to channel 2) | |
voice_prompts_time | array | Time period, there cannot be time conflicts among 12 time periods | |
record_enable | bool | record switch | |
light_linkage | bool | White light linkage switch | |
enforcerlight_linkage | bool | Alarm light linkage switch | |
siren_linkage | bool | Alarm linkage switch | |
http_listening | bool | eventpush linkage switch | |
schedule | Json array | Json See Table 5. |
Table 5
Parameter | Range | Type | Description |
---|---|---|---|
schedule_type | "IO" | string | IO Linkage schedule |
week | Json array | WeekJson See Table 6 |
Table 6
Parameter | Range | Type | Description |
---|---|---|---|
day | "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" | string | |
time | 0:Disable Time range 1: The time range is enabled | array | Each 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
Range
Function
This API is used to get the parameter range of Alarm > Line Crossing Detection.
Request Message
Parameter Description
Table 1
Parameter | Range | Type | Description |
---|---|---|---|
channel | “CH1” ”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. DVR/NVR need;IPC only use CH1 |
page_type | "FloodLight" "Siren" "EnforcerLight" | string | Used 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | Json Object | Channel information see Table 3 for more information | |
page_type | "FloodLight" "Siren" "EnforcerLight" | string | Used to distinguish the type of the schedule. |
channel_max | int | Maximum number of channels | |
support_copy | bool | Does the page support copy (dedicated to NVR and DVR) |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | Json onject see Table 4 for more information | |
... | Json Object | ||
IP_CH1 | Json Object | ||
... | Json Object | ||
WIFI_CH1 | Json Object | ||
... | Json Object |
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
status | "Offline","Online",“Nonsupport” | string | Channel 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. | array | Alarm 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" | string | Alarm output time |
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 | Recording delay time |
send_email | true false | bool | Send email switch |
ftp_picture_upload | true false | bool | Channel capture FTP upload switch |
ftp_video_upload | true false | bool | Channel video FTP upload switch |
picture_to_cloud | true false | bool | Image upload switch (dedicated to NVR) |
video_to_cloud | true false | bool | Video cloud upload switch (dedicated to NVR/DVR) |
full_screen | bool | Full screen switch (NVR specific) | |
buzzer | "0","10","20","40","60" | string | Buzzer beep time (NVR specific) |
show_message | bool | Display message switch (NVR specific) | |
switch | true false | bool | switch,false: close true: open |
sensitivity | 1-4 | int | Test sensitivity |
detection_type | "Off" "Pedestrian" "Vehicle" "Pedestrian &Vehicle" | string | Detection types, human and vehicle shapes |
iva_lines | 0:do not draw a line,1:draw a line | int | Will there be dashes in preview and playback |
rule_info | Json object | see Table 5 for more information | |
copy_ch | "digit""analog""wifi" | string | Flag supporting channel replication (dedicated to NVR and DVR) |
voice_prompts_index | 0~4294967295 | int | File 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_select | array | Playback channel, calculated by bit (bit0 is local, bit1 corresponds to front-end channel 1, and bit2 corresponds to channel 2) | |
voice_prompts_time | array | Time period, there cannot be time conflicts among 12 time periods |
Table 5
Parameter | Range | Type | Description |
---|---|---|---|
rule_number1 | Object | Rule number1,see Table 6 for more information | |
rule_number2 | Object | Rule number2,see Table 6 for more information | |
rule_number3 | Object | Rule number3,see Table 6 for more information | |
rule_number4 | Object | Rule number4,see Table 6 for more information |
Table 6
Parameter | Range | Type | Description |
---|---|---|---|
rule_switch | bool | rule switch | |
rule_type | "A->B","B->A","A<->B" | string | Rule direction |
rule_line | object | 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 for more information |
Table 7
Parameter | Rabge | Type | Description |
---|---|---|---|
x1 | 0-704 | short | x1 Coordinate points |
y2 | 0-576 | short | y1 Coordinate points |
x2 | 0-704 | short | x2 Coordinate points |
y2 | 0-576 | short | y2 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
Range
Function
This API is used to get Alarm > Linkage Schedule parameter range.
Request Message
Parameter Description
Table 1
Parameter | Range | Type | Description |
---|---|---|---|
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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | object | Total channel information see Table 3. | |
page_type | "FloodLight", "Siren" | string | The schedule used to distinguish the alarm linkage type. |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | object | See Table 4. | |
… | object | ||
IP_CH1 | object | ||
… | object | ||
WIFI_CH1 | object | ||
… | object |
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
schedule | object array | See Table 5. |
Table 5
Parameter | Range | Type | Description |
---|---|---|---|
schedule_type | "Motion", "IO", "PIR", "FD", "PVD", "PID", "LCD", "SOD", "CC", "CD", "QD", "LPD", "RSD", "VT", "Intrusion", "RegionEntrance", "RegionExiting" "FireDetect", "TempMeas" | string | alarm schedule type. |
week | object array | See Table 6 for details. | |
switch | bool | Current alarm type alarm linkage switch (new in 8.2.3). |
Table 6
Parameter | Range | Type | Description |
---|---|---|---|
day | "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" | string | |
time | 0: close the time period 1: open the time period | int | each 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
Range
Function
This API is used to get the parameter range of Alarm > MOtion Alarm.
Request Message
Parameter Description
Table 1
Parameter | Range | Type | Description |
---|---|---|---|
channel | “CH1” ”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. |
page_type | “ChannelConfig”,“AlarmConfig” “AllConfig” | string | Data 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | Json Object | Channel information see Table 3 for more information | |
page_type | “ChannelConfig”,“AarmConfig” | string | Used to distinguish between channel configuration page and alarm configuration page data, only required when set |
channel_max | int | The total number of channels in the current device | |
support_copy | bool | Does the page support copy (dedicated to NVR and DVR) |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | Json see Table 4 | |
... | Json Object | ||
IP_CH1 | Json Object | ||
... | Json Object | ||
WIFI_CH1 | Json Object | ||
... | Json Object |
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
status | "Offline","Online","Nonsupport" | string | Channel online status, only for digital channels. Note: This field is not available when the channel is online |
switch | bool | Request switch | |
mbcol | 1 - 44(onvif) | int | Motion The area is divided into row * col blocks, which are determined by camera. Set does not require |
mbrow | 1 - 30(onvif) | int | Motion The area is divided into row * col blocks, which are determined by camera. Set does not require |
copy_ch | "digit""analog""wifi" | string | Flag supporting channel replication (dedicated to NVR and DVR) |
sensitivity | 1-5、1-8 | int | motion detection sensitivity |
intervals | 1-256 | int | Motion Alarm detection time interval (s) |
smart_motion_detection | bool | ||
buzzer | "0","10","20","40","60" | string | Buzzer 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. | array | Alarm channels Each array bit is represented by a string representing the alarm output channel. |
latch_time | "10","20","40","60" | string | Alarm output time |
record_enable | 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 | Recording delay time |
region_setting | array | The 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_message | bool | Display message switch (dedicated to NVR/DVR) | |
send_email | bool | Send email switch | |
full_screen | bool | Full screen switch (dedicated to NVR/DVR) | |
ftp_picture_upload | bool | Channel capture FTP upload switch | |
ftp_video_upload | true false | bool | Channel video FTP upload switch (dedicated to NVR/DVR) |
picture_to_cloud | bool | Image upload switch | |
video_to_cloud | true false | bool | Video cloud upload switch (dedicated to NVR/DVR) |
light_linkage | bool | White light linkage switch, when the motion is triggered, the linkage triggers white light | |
multiple_switch | "Disable" "Motion" "PIR_and_Motion" "Person" "PIR_and_Person" | string | Motion switch with multiple options |
voice_prompts_index | 0~4294967295 | int | File 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_select | array | Playback channel, calculated by bit (bit0 is local, bit1 corresponds to front-end channel 1, and bit2 corresponds to channel 2) | |
voice_prompts_time | array | Time period, there cannot be time conflicts among 12 time periods | |
schedule_list | 0-8 | json array | (Dedicated to consumer NVR docking with IPC POE packages) deployment plan data,see Table 5 for more information |
smart_moiton_detection | bool | SMD switch | |
target_type | "Motion","Pedestrian","Vehicle","Pedestrian & Vehicle" | string | Detection types with multiple options |
enforcerlight_linkage | bool | Alarm light linkage switch. | |
siren_linkage | bool | Alarm linkage switch. | |
http_listening | bool | eventpushlinkage switch | |
schedule | Json array | Json See Table 6。 |
Table 5
Parameter | Range | Type | Description |
---|---|---|---|
enable | true false | bool | Is the current schedule effective |
start_time | 0 – 1439(23*60+59) | int | Schedule start time (minutes relative to 00:00) |
end_time | 0 – 1439(23*60+59) | int | Schedule end time (minutes relative to 00:00) |
weekday | "Sunday" "Monday" "Tuesday" "Wednesday" "Thursday" "Friday" "Saturday" | array | Indicates the day of the week on which the current schedule takes effect, with multiple options available |
Table 6
Parameter | Range | Type | Description |
---|---|---|---|
schedule_type | "Motion" | string | motion linkage schedule. |
week | Json array | WeekJson See Table 7. |
Table 7
Parameter | Range | Type | Description |
---|---|---|---|
day | "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" | string | |
time | 0:Disable Time range 1: The time range is enabled | array | Each 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
Range
Function
This API is used to get the parameter range of Alarm > Occlusion Detection.
Request Message
Parameter Description
Table 1
Parameter | Range | Type | Description |
---|---|---|---|
channel | "CH1"…"CHx", "IP_CH1"…"IP_CHx", "WIFI_CH1"…"WIFI_CHx" The channels supported by the device. | string array | only use "CH1"。 |
page_type | "ChannelConfig", "AlarmConfig" | string | Data 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | Json Object | Channel information see Table 3 for more information | |
page_type | “ChannelConfig”,“AarmConfig” | string | Used to distinguish between channel configuration page and alarm configuration page data, only required when set |
channel_max | int | Maximum number of channels | |
support_copy | bool | Does the page support copy (dedicated to NVR and DVR) |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | Json see Table 4 for more information | |
... | Json Object | ||
IP_CH1 | Json Object | ||
... | Json Object | ||
WIFI_CH1 | Json Object | ||
... | Json Object |
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
status | "Offline","Online",“Nonsupport” | string | Channel 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. | array | Alarm 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" | string | Alarm output time |
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 | Recording delay time |
send_email | true false | bool | Send email switch |
ftp_picture_upload | true false | bool | Channel capture FTP upload switch |
ftp_video_upload | true false | bool | Channel video FTP upload switch |
picture_to_cloud | true false | bool | Image upload switch (dedicated to NVR) |
video_to_cloud | true false | bool | Video cloud upload switch (dedicated to NVR/DVR) |
full_screen | bool | Full screen switch (NVR specific) | |
buzzer | "0","10","20","40","60" | string | Buzzer beep time (NVR specific) |
show_message | bool | Display message switch (NVR specific) | |
switch | true false | bool | switch,false: close true: open |
sensitivity | 1-6 | int | Test sensitivity |
copy_ch | "digit""analog""wifi" | string | Flag supporting channel replication (dedicated to NVR and DVR) |
voice_prompts_index | 0~4294967295 | int | File 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_select | array | Playback channel, calculated by bit (bit0 is local, bit1 corresponds to front-end channel 1, and bit2 corresponds to channel 2) | |
voice_prompts_time | array | Time period, there cannot be time conflicts among 12 time periods | |
record_enable | bool | record switch | |
light_linkage | bool | White light linkage switch | |
enforcerlight_linkage | bool | Alarm light linkage switch | |
siren_linkage | bool | Alarm linkage switch | |
http_listening | bool | eventpush linkage switch | |
schedule | Json array | Json See Table 5. |
Table 5
Parameter | Range | Type | Description |
---|---|---|---|
schedule_type | "Occlusion Detection" | string | Occlusion Detection Linkage schedule |
week | Json array | WeekJson See Table 6 |
Table 6
Parameter | Range | Type | Description |
---|---|---|---|
day | "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" | string | |
time | 0:Disable Time range 1: The time range is enabled | array | Each 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
Range
Function
This API is used to get Alarm > Pedestrian Detection configuration parameters range.
Request Message
Table 1
Parameter | Range | Type | Description |
---|---|---|---|
channel | "CH1"…"CHx", "IP_CH1"…"IP_CHx", "WIFI_CH1"…"WIFI_CHx" The channels supported by the device. | string array | IPC can only Use "CH1". |
page_type | "ChannelConfig", "AlarmConfig" | string | It 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | object | Total channel information see Table 3. | |
page_type | "ChannelConfig", "AlarmConfig" | string | It is used to distinguish the data of channel configuration page or alarm configuration page. |
channel_max | int | The maximum number of channels. |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | object | See Table 4 | |
… | object | ||
IP_CH1 | object | ||
… | object | ||
WIFI_CH1 | object | ||
… | object |
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
status | "Offline","Online","Nonsupport" | string | Online 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 array | alarm 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 | Alarm output time, IPC: 5 10 20 30 |
record_enable | true, false | bool | Channel recording switch. |
record_channel | "CH1"…"CHx" "IP_CH1"…"IP_CHx" "WIFI_CH1"…"WIFI_CHx" | string array | Channel of linkage recording. |
post_recording | "30","60","120","300" | string | Recording delay time, IPC: 0 5 10 20 30. |
send_email | true, false | bool | Send Email switch. |
ftp_picture_upload | true, false | bool | Channel snapshot FTP upload switch (for NVR only). |
ftp_video_upload | true, false | bool | Channel video FTP upload switch (for NVR only). |
picture_to_cloud | true, false | bool | Picture upload switch (for NVR only). |
video_to_cloud | true, false | bool | Video cloud upload switch (for NVR only). |
full_screen | bool | FullScreen switch (for NVR only). | |
buzzer | "0","10","20","40","60" | string | Buzzer buzzing time (for NVR only). |
show_message | bool | Show Message switch (for NVR only). | |
switch | true, false | bool | switch, false: close;true: open. |
is_ai_param | true, false | bool | Distinguish between ordinary humanoid and intelligent humanoid models (only for NVR). |
level | "Low", "Middle", "High" | string | Detection sensitivity. |
sensitivity | 0-100 | int | Detection sensitivity. |
snap_mode | "Default","RealTimeMode","IntervalMode" | string | "IntervalMode". |
min_pixel | 64-1080 | int | minimum pixel value. |
max_pixel | 320-1080 | int | maximum pixel value. |
detection_type | "Pedestrian", "Vehicle", "Pedestrian & Vehicle" | string | Detection type, human and vehicle. |
detection_mode | "StaticMode","MotionMode" | string | detection mode. |
detection_range | "FullScreen","Customize" | string | detection range. |
iva_lines | 0,1 | int | Whether there will be lines in preview and playback, 0 does not draw lines, 1 draws lines. |
rule_info | object | See Table 5 for details. | |
voice_prompts_index | 0~4294967295 | int | File 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_select | int array | Play channel, counted by bit (bit0 is local, bit1 corresponds to front-end channel 1, bit2 corresponds to channel 2...). | |
voice_prompts_time | object array | Time period, there can be no time conflict among the 12 time periods, see Table 8. | |
copy_ch | "digit", "analog", "wifi" | string | Support channel copy flag (for NVR and DVR only). |
Table 5
Parameter | Range | Type | Description |
---|---|---|---|
rule_number1 | object | rule number 1, see Table 6. |
Table 6
Parameter | Range | Type | Description |
---|---|---|---|
rule_switch | bool | rule switch. | |
rule_type | "Normal" | string | rule type. |
rule_rect | object | Rectangle, see Table 7 for details. |
Table 7
Parameter | Range | Type | Description |
---|---|---|---|
x1 | 0-704 | short | x1 coordinate point. |
y1 | 0-576 | short | y1 coordinate point. |
x2 | 0-704 | short | x2 coordinate point. |
y2 | 0-576 | short | y2 coordinate point. |
x3 | 0-704 | short | x3 coordinate point. |
y3 | 0-576 | short | y3 coordinate point. |
x4 | 0-704 | short | x4 coordinate point. |
y4 | 0-576 | short | y4 coordinate point. |
Table 8
Parameter | Range | Type | Description |
---|---|---|---|
start_hour | 0-23 | int | |
start_minute | 0-59 | int | |
start_second | 0-59 | int | |
end_hour | 0-23 | int | |
end_minute | 0-59 | int | |
end_second | 0-59 | int |
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
Range
Function
This API is used to get the parameter range of Alarm > Perimeter Intrusion Detection.
Request Message
Parameter Description
Table 1
Parameter | Range | Type | Description |
---|---|---|---|
channel | "CH1"…"CHx", "IP_CH1"…"IP_CHx", "WIFI_CH1"…"WIFI_CHx" The channels supported by the device. | string array | only use "CH1"。 |
page_type | "ChannelConfig", "AlarmConfig" | string | Data 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | Json Object | Channel information see Table 3 for more information | |
page_type | “ChannelConfig”,“AarmConfig” | string | Used to distinguish between channel configuration page and alarm configuration page data, only required when set |
channel_max | int | Maximum number of channels | |
support_copy | bool | Does the page support copy (dedicated to NVR and DVR) |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | Json see Table 4 for information | |
... | Json Object | ||
IP_CH1 | Json Object | ||
... | Json Object | ||
WIFI_CH1 | Json Object | ||
... | Json Object |
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
status | "Offline","Online",“Nonsupport” | string | Channel 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. | array | Alarm 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" | string | Alarm output time |
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 | Recording delay time |
send_email | true false | bool | Send email switch |
ftp_picture_upload | true false | bool | Channel capture FTP upload switch |
ftp_video_upload | true false | bool | Channel video FTP upload switch |
picture_to_cloud | true false | bool | Image upload switch (dedicated to NVR) |
video_to_cloud | true false | bool | Video cloud upload switch (dedicated to NVR/DVR) |
full_screen | bool | Full screen switch (NVR specific) | |
buzzer | "0","10","20","40","60" | string | Buzzer beep time (NVR specific) |
show_message | bool | Display message switch (NVR specific) | |
switch | true false | bool | switch,false: close true: open |
sensitivity | 1-4 | int | Test sensitivity |
copy_ch | "digit""analog""wifi" | string | Flag supporting channel replication (dedicated to NVR and DVR) |
voice_prompts_index | 0~4294967295 | int | File 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_select | array | Playback channel, calculated by bit (bit0 is local, bit1 corresponds to front-end channel 1, and bit2 corresponds to channel 2) | |
voice_prompts_time | array | Time period, there cannot be time conflicts among 12 time periods | |
detection_type | "Off" "Pedestrian" "Vehicle" "Pedestrian &Vehicle" | string | Detection type, used by intelligent second-generation IPC for humanoid and vehicular shapes) |
iva_lines | 0: No lines drawn, 1: Lines drawn | bool | Will there be dashes in preview and playback (used by intelligent second-generation IPC) |
rule_info | Json object | see Table 5 for more information | |
scene | "Indoor", "Outdoor" | string | Scenario 0 Indoor 1 Outdoor (for Intelligent Generation IPC) |
Table 5
Parameter | Range | Type | Description |
---|---|---|---|
rule_number1 | object | rule number1,see Table 6 for more information | |
rule_number2 | object | rule number2,see Table 6 for more information | |
rule_number3 | object | rule number3,see Table 6 for more information | |
rule_number4 | object | rule number4,see Table 6 for more information |
Table 6
Parameter | Range | Type | Description |
---|---|---|---|
rule_switch | bool | rule switch | |
rule_type | "A->B","B->A","A<->B" | string | rule type |
rule_rect | object | rule rect,see Table 7 for more information |
Table 7
Parameter | Range | Type | Description |
---|---|---|---|
x1 | 0-704 | short | x1 Coordinate points |
y1 | 0-576 | short | y1 Coordinate points |
x2 | 0-704 | short | x2 Coordinate points |
y2 | 0-576 | short | y2 Coordinate points |
x3 | 0-704 | short | x3 Coordinate points |
y3 | 0-576 | short | y3 Coordinate points |
x4 | 0-704 | short | x4 Coordinate points |
y4 | 0-576 | short | y4 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
Range
Function
This API is used to get the parameter range of Alarm > PIR.
Request Message
Parameter Description
Table 1
Parameter | Range | Type | Description |
---|---|---|---|
channel | “CH1” ”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. DVR/NVR requirements; IPC only uses CH1 |
page_type | “ChannelConfig”,“AlarmConfig” “AllConfig” | string | Data 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
Parameter | Range | Type | Descripton |
---|---|---|---|
channel_info | Json Object | Channel information refer to Table 3 | |
page_type | “ChannelConfig”,“AarmConfig” | string | Used to distinguish between channel configuration page and alarm configuration page data, only required when set |
channel_max | int | Maximum number of channels | |
support_copy | bool | Does the page support copy (dedicated to NVR and DVR) |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | Json see Table 4 for more information | |
... | Json Object | ||
IP_CH1 | Json Object | ||
... | Json Object | ||
WIFI_CH1 | Json Object | ||
... | Json Object |
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
status | "Offline","Online",“Nonsupport” | string | Channel 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. | array | Alarm 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" | string | Alarm output time |
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 | Recording delay time |
send_email | true false | bool | Send email switch |
ftp_picture_upload | true false | bool | Channel image FTP upload switch |
ftp_video_upload | true false | bool | Channel video FTP upload switch |
picture_to_cloud | true false | bool | Image upload switch (dedicated to NVR) |
video_to_cloud | true false | bool | Video cloud upload switch (dedicated to NVR/DVR) |
full_screen | bool | Full screen switch (NVR specific) | |
buzzer | "0","10","20","40" | string | Buzzer beep time (NVR specific) |
show_message | bool | Display message switch (NVR specific) | |
switch | true false | bool | switch,false: close true: open |
sensitivity | 1-8 | int | Test sensitivity |
copy_ch | "digit""analog""wifi" | string | Flag supporting channel replication (dedicated to NVR and DVR) |
voice_prompts_index | 0~4294967295 | int | File 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_select | array | Playback channel, calculated by bit (bit0 is local, bit1 corresponds to front-end channel 1, and bit2 corresponds to channel 2) | |
voice_prompts_time | array | Time period, there cannot be time conflicts among 12 time periods | |
mbcol | 1-44 | int | The Pir area is divided into row * col blocks, which are determined by camera. Set does not need to be consistent with motion |
mbrow | 1-30 | int | The Pir area is divided into row * col blocks, which are determined by camera. Set does not need to be consistent with motion |
region_setting | 200*8 | int array | The 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_area | 8 | json array | see Table 5 for more information |
light_linkage | bool | White light linkage switch, when PIR is triggered, the linkage triggers white light | |
enforcerlight_linkage | bool | Alarm light linkage switch | |
siren_linkage | bool | Alarm linkage switch | |
http_listening | bool | eventpush linkage switch | |
schedule | Json array | Json See Table 6. |
Table 5
detect_area JSON
Parameter | Range | Type | Description |
---|---|---|---|
x | 0-704 | short | Abscissa point |
y | 0-576 | short | Ordinate point |
Table 6
Parameter | Range | Type | Description |
---|---|---|---|
schedule_type | "PIR" | string | PIR Linkage schedule |
week | Json array | WeekJson See Table 7 |
Table 7
Parameter | Range | Type | Description |
---|---|---|---|
day | "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" | string | |
time | 0:Disable Time range 1: The time range is enabled | array | Each 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
Range
Function
This API is used to get the parameter range of Alarm > PTZ Linkage.
Request Message
Parameter Description
Table 1
Parameter | Range | Type | Description |
---|---|---|---|
channel | "CH1"…"CHx", "IP_CH1"…"IP_CHx", "WIFI_CH1"…"WIFI_CHx" The channels supported by the device. | string array | IPC only use "CH1"。 |
Sample:
POST /API/AlarmConfig/PTZLinkage/Range HTTP/1.1
{
"version":"1.0",
"data":{}
}
Response Message
Parameter Description
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | Json Object | Channel information refer to Table 3 | |
channel_max | int | Maximum number of channels | |
support_copy | bool | Does the page support copy (dedicated to NVR and DVR) |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | Json Object | Channel information refer to Table 4 | |
channel_max | int | Maximum number of channels | |
support_copy | bool | Does the page support copy (dedicated to NVR and DVR) |
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | Json see Table 5 for more information | |
... | Json Object | ||
IP_CH1 | Json Object | ||
... | Json Object | ||
WIFI_CH1 | Json Object | ||
... | Json Object |
Table 5
Parameter | Range | Type | Description |
---|---|---|---|
switch | true false | bool | Channel Enable Switch |
motion | bool | Motion alarm trigger switch | |
pir | bool | PIR linkage switch | |
io | bool | Alarm input switch | |
ptz_info | array | see Table 6 for more information | |
all_alarm | json object | Alarm type switch, see Table 7 for information | |
copy_ch | "digit""analog""wifi" | string | Flag supporting channel replication (dedicated to NVR and DVR) |
Table 6
Channel Information JSON
Parameter | Range | Type | Description |
---|---|---|---|
ptz_chn | “CH1” ”CH1x”“IP_CH1” ” IP_CH1x”“WIFI_CH1”…” WIFI_CH1x” | string | Channel alarm linkage The channel to which the alarm is linked. |
linkage_ptz_point_index | 0,1,2,3....255 | int | Indication 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_switch | bool | Alarm linkage group switch (4 sets) |
Table 7
Channel Information JSON
Parameter | Range | Type | Description |
---|---|---|---|
ptz_motion | bool | Motion alarm trigger switch | |
pir | bool | PIRgang switch | |
io | bool | Alarm 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_lcd | bool | LCD gang switch | |
linkage_pid | bool | PID gang switch | |
linkage_sod | bool | SOD gang switch | |
linkage_pd | bool | PD gang switch | |
linkage_pdvd | bool | PDVD gang switch | |
linkage_fd | bool | FD gang switch | |
linkage_cc | bool | CC gang switch | |
linkage_sound | bool | Sound gang switch | |
linkage_vt | bool | Vt gang switch | |
linkage_ad | bool | AD gang switch | |
linkage_cd | bool | CD gang switch | |
linkage_qd | bool | QD gang switch | |
linkage_lpd | bool | LPD gang switch | |
linkage_rsd | bool | RSD gang switch | |
linkage_lpr | bool | LPR gang switch | |
linkage_fr | bool | FR gang switch | |
linkage_ai_pid | bool | AI PID gang switch | |
linkage_ai_lcd | bool | AI LCD gang switch | |
linkage_ai_pdvd | bool | AI 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
Range
Function
This API is used to get the parameter range of Alarm > Sound Detection .
Request Message
Parameter Description
Table 1
Parameter | Range | Type | Description |
---|---|---|---|
channel | "CH1"…"CHx", "IP_CH1"…"IP_CHx", "WIFI_CH1"…"WIFI_CHx" The channels supported by the device. | string array | IPC only use "CH1"。 |
page_type | "ChannelConfig", "AlarmConfig" | string | Data 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | Json Object | Channel information refer to Table 3 | |
page_type | “ChannelConfig”,“AarmConfig” | string | Used to distinguish between channel configuration page and alarm configuration page data, only required when set |
channel_max | int | Maximum number of channels | |
support_copy | bool | Does the page support copy (dedicated to NVR and DVR) |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | Json see Table 4 for more information | |
... | Json Object | ||
IP_CH1 | Json Object | ||
... | Json Object | ||
WIFI_CH1 | Json Object | ||
... | Json Object |
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
status | "Offline","Online",“Nonsupport” | string | Channel 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. | array | Alarm 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" | string | Alarm output time |
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 | Recording delay time |
send_email | true false | bool | Send email switch |
ftp_picture_upload | true false | bool | Channel capture FTP upload switch |
ftp_video_upload | true false | bool | Channel video FTP upload switch |
picture_to_cloud | true false | bool | Image upload switch (dedicated to NVR) |
video_to_cloud | true false | bool | Video cloud upload switch (dedicated to NVR/DVR) |
full_screen | bool | Full screen switch (NVR only)) | |
buzzer | "0","10","20","40","60" | string | Buzzer beep time (NVR specific) |
show_message | bool | Display message switch (NVR specific) | |
switch | true false | bool | switch,false: close true: open |
rise_sensitivity | 1-100 | int | Sound detection threshold sensitivity (only for sound amplification detection) |
sound_intensity | 1-100 | int | Sound increases detection sensitivity |
decline_switch | true false | bool | Sound reduction detection switch |
rise_switch | true false | bool | Sound rise detection switch |
decline_sensitivity | 1-100 | int | Sound reduces sensitivity |
copy_ch | "digit""analog""wifi" | string | Flag supporting channel replication (dedicated to NVR and DVR) |
voice_prompts_index | 0~4294967295 | int | File 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_select | array | Playback channel, calculated by bit (bit0 is local, bit1 corresponds to front-end channel 1, and bit2 corresponds to channel 2) | |
voice_prompts_time | array | Time period, there cannot be time conflicts among 12 time periods | |
http_listening | bool | eventpush linkage switch | |
time_schedule | Json array | see Table 5 for more information |
Table 5
Time_schedule JSON
Parameter | Range | Type | Description |
---|---|---|---|
schedule_type | "SD" | string | Sound alarm time schedule |
week | json array | see Table 6 for more information |
Table 6
detect_area JSON
Parameter | Range | Type | Description |
---|---|---|---|
day | Sun,Mon,Tue,Wed,Thu,Fri,Sa | string | Identify the day of the week |
time | 0: Close time period 1: Opening time period | array | Each 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
Range
Function
This API is used to get the parameter range of Alarm > Stationary Object Detection.
Request Message
Parameter Description
Table 1
Parameter | Range | Type | Description |
---|---|---|---|
channel | "CH1"…"CHx", "IP_CH1"…"IP_CHx", "WIFI_CH1"…"WIFI_CHx" The number of channels depends on the functionality of the device. | string array | Each array bit represents a channel with a string. DVR/NVR requirements; IPC only uses CH1 |
page_type | "ChannelConfig","AlarmConfig" | string | Data 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | Json Object | Channel information refer to Table 3 | |
page_type | “ChannelConfig”,“AarmConfig” | string | Used to distinguish between channel configuration page and alarm configuration page data, only required when set |
channel_max | int | Maximum number of channels | |
support_copy | bool | Does the page support copy (dedicated to NVR and DVR) |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | Json see Table 4 for more information | |
... | Json Object | ||
IP_CH1 | Json Object | ||
... | Json Object | ||
WIFI_CH1 | Json Object | ||
... | Json Object |
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
status | "Offline","Online",“Nonsupport” | string | Channel 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. | array | Alarm 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" | string | Alarm output time |
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 | Recording delay time |
send_email | true false | bool | Send email switch |
ftp_picture_upload | true false | bool | Channel capture FTP upload switch |
ftp_video_upload | true false | bool | Channel video FTP upload switch |
picture_to_cloud | true false | bool | Image upload switch (dedicated to NVR) |
video_to_cloud | true false | bool | Video cloud upload switch (dedicated to NVR/DVR) |
full_screen | bool | Full screen switch (NVR specific) | |
buzzer | "0","10","20","40","60" | string | Buzzer beep time (NVR specific) |
show_message | bool | Display message switch (NVR specific) | |
switch | true false | bool | switch,false: close true: open |
sensitivity | 1-4 | int | Test sensitivity |
copy_ch | "digit""analog""wifi" | string | Flag supporting channel replication (dedicated to NVR and DVR) |
voice_prompts_index | 0~4294967295 | int | File 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_select | array | Playback channel, calculated by bit (bit0 is local, bit1 corresponds to front-end channel 1, and bit2 corresponds to channel 2) | |
voice_prompts_time | array | Time period, there cannot be time conflicts among 12 time periods | |
detection_type | "Off" "Pedestrian" "Vehicle" "Pedestrian &Vehicle" | string | Detection type, used by intelligent second-generation IPC for humanoid and vehicular shapes) |
detection_mode | "StaticMode" "MotionMode" | string | detection mode |
detection_range | "FullScreen" "Customize" | string | detection range |
iva_lines | 0 does not draw a line 1 draws a line | bool | Will there be dashes in preview and playback (used by intelligent second-generation IPC) |
rule_info | Json object | Individual channel information see Table 5 | |
scene | "Indoor", "Outdoor" | string | Scenario 0 Indoor 1 Outdoor (for Intelligent Generation IPC) |
snap_mode | "Default" "RealTimeMode""IntervalMode" | string | Screenshot mode, see Table 8 for more information |
min_pixel | 64-1080 | int | min pixel |
max_pixel | 320-1080 | int array | max pixel |
Table 5
Error Information JSON
Parameter | Range | Type | Description |
---|---|---|---|
rule_number1 | object | rule number 1,see Table 6 for more information | |
rule_number2 | object | rule number 2,see Table 6 for more information | |
rule_number3 | object | rule number 3,see Table 6 for more information | |
rule_number4 | object | rule number 4,see Table 6 for more information |
Table 6
detect_area JSON
Parameter | Range | Type | Description |
---|---|---|---|
rule_rect | object | ,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_switch | bool | rule switch | |
rule_type | “Legacy” “Lost” “Lost &Legacy” | string | rule type |
Table 7
detect_area JSON
Parameter | Range | Type | Description |
---|---|---|---|
x1 | 0-704 | short | x1 Abscissa point |
y1 | 0-576 | short | y1 Ordinate point |
x2 | 0-704 | short | x2 Abscissa point |
y2 | 0-576 | short | y2 Ordinate point |
x3 | 0-704 | short | x3 Abscissa point |
y3 | 0-576 | short | y3 Ordinate point |
x4 | 0-704 | short | x4 Abscissa point |
y4 | 0-576 | short | y4 Ordinate point |
Table 8
detect_area JSON
Parameter | Range | Type | Description |
---|---|---|---|
snap_num | "1" "2" "3" "Unliimited" | string | Number of screenshots |
snap_frequency | int | Screenshot 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
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
Parameter | Range | Type | Description |
---|---|---|---|
channel | "CH1"…"CHx", "IP_CH1"…"IP_CHx", "WIFI_CH1"…"WIFI_CHx" Channels supported by the device. | string array | |
channel_max | int | The maximum number of channels. | |
channel_info | object | Total channel information see Table 2. |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | object | See Table 3 | |
… | object | ||
IP_CH1 | object | ||
… | object | ||
WIFI_CH1 | object | ||
… | object |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
status | "Offline", "Online" | string | channel status. |
siren_switch | bool | Siren function switch. | |
siren_time | int | Warning alarm time. | |
siren_value | int | The sound volume of the siren alarm. | |
siren_type | "Alarm1", "Alarm2", "User-defined1", "User-defined2", "User-defined3" | string | Alarm alarm station Choose Audio. |
siren_file_name | string length: 0-127 | string | alarm file name. |
siren_file | string length: 0-256k | string | Control whether the control of importing audio files is displayed. |
siren_file_type | string length: 0-127 | string | Audio file type. |
siren_support_format | ".wav", ".pcm" | string array | Siren support file type. |
support_siren_schedule_hub | bool | Show 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | object | Total channel information see Table 2. |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | object | See Table 3 | |
… | object | ||
IP_CH1 | object | ||
… | object | ||
WIFI_CH1 | object | ||
… | object |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
siren_switch | bool | Siren function switch. | |
siren_time | 5-180 | int | Warning alarm time. |
siren_value | 1-10 | int | The sound volume of the siren alarm. |
siren_mode | "Fixed_Volume" - fixed volume, "Gradual_Increasing_Volume" - gradual volume | string | Siren alarm sound type. |
siren_type_content | object | See Table 4 for details. | |
siren_type | "Alarm1", "Alarm2", "User-defined1", "User-defined2", "User-defined3" | string | Alarm alarm station Choose Audio. |
siren_file_name | string length: 0-127 | string | alarm file name. |
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
Alarm1 | object | ||
Alarm2 | object | ||
User-defined1 | object | See Table 5 for details. | |
User-defined2 | object | See Table 5 for details. | |
User-defined3 | object | See Table 5 for details. |
Table 5
Parameter | Range | Type | Description |
---|---|---|---|
delete_button | bool | Whether to display the delete button or import button. | |
siren_file_name | 0-127 | string | |
siren_file | 0-256k | string | Control 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | object | Total channel information see Table 2. |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | object | See Table 3. | |
… | object | ||
IP_CH1 | object | ||
… | object | ||
WIFI_CH1 | object | ||
… | object |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
siren_switch | bool | Siren function switch. | |
siren_time | int | Warning alarm time. | |
siren_value | int | The sound volume of the siren alarm. | |
siren_mode | "Fixed_Volume" "Gradual_Increasing_Volume" | string | Alarm alarm sound type |
siren_type_content | Json Object | Alarm types refer to Table 4。 | |
siren_type | "Alarm1", "Alarm2", "User-defined1", "User-defined2", "User-defined3" | string | Alarm alarm station Choose Audio. |
siren_file_name | 0-127 | string | Alarm file name |
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
delete_button | bool | Delete/import audio button | |
siren_file_name | 0-127 | string | Alarm file name |
siren_file | 0-256k | string | Controls 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
Parameter | Range | Type | Description |
---|---|---|---|
channel | "CH1"…"CHx", "IP_CH1"…"IP_CHx", "WIFI_CH1"…"WIFI_CHx" Channels supported by the device. | string array | |
channel_info | object | Total channel information see Table 2. |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | object | See Table 3 | |
… | object | ||
IP_CH1 | object | ||
… | object | ||
WIFI_CH1 | object | ||
… | object |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
siren_type | "Alarm1", "Alarm2", "User-defined1", "User-defined2", "User-defined3" | string | Alarm alarm station Choose Audio. |
siren_file_name | string length: 0-127 | string | alarm file name. |
siren_file_type | string length: 0-127 | string | Audio file type. |
file_data | string length: 0-512k | string | file data. |
file_name | string length: 0-127 | string | file 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | object | Total channel information see Table 2. |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | object | See Table 3 | |
… | object | ||
IP_CH1 | object | ||
… | object | ||
WIFI_CH1 | object | ||
… | object |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
siren_type | "Alarm1", "Alarm2", "User-defined1", "User-defined2", "User-defined3" | string | Alarm 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
Range
Function
This API is used to get Alarm > Voice Prompts configuration parameter range.
Request Message
Parameter Description
Table 1
Parameter | Range | Type | Description |
---|---|---|---|
control_type | "Normal", "AiFace", "AiPlate" | string | Control 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
Parameter | Range | Type | Description |
---|---|---|---|
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" | string | The current system language, used to cut into the default language when the web server imports text. |
command | "Upload", "Remove", "Transform", "Exit", "Play" | string | command. |
control_type | "Normal","AiFace","AiPlate" | string | Control type. |
file_name | string length:1-64 | string | file name. |
text | string length:1-200 | string | file text. |
index | 0-65535 | int | file index. |
convert_mode | "File","NetworkText" | string | conversion mode. |
packet_index | 0-65535 | int | packet index. |
file_count | 1-65535 | int | Number of files. |
package_size | 1-51200 | int | package size. |
download_mode | "g711a","wav","mp3" | string | The format of the audio file to be downloaded when the remote end is listening. |
url | string length:1-128 | string | download link. |
license_plate | string length:1-15 | string | It 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_import | bool | Whether to support import tips. | |
tips_max_length | 0-16 | int | the longest tip length. |
volume | 0-100 | int | volume. |
file_data | string length:1-5242880 | string | file data. |
audio_list | string array | list of audio files. | |
siren_type_content | Json Object | ||
delete_button | bool | Delete/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
Parameter | Range | Type | Description |
---|---|---|---|
control_type | "Normal","AiFace","AiPlate" | string | Control type: Normal: non-AI face and non-AI license plate AiFace: AI face AiPlate: AI license plate |
download_mode | "g711a","aac","wav","mp4","mp3" | string | The format of the audio file to be downloaded when the remote end is listening. |
license_plate | string | Must 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
Parameter | Range | Type | Description |
---|---|---|---|
info | object | See Table 3 for details. | |
audio_list | string array | list of audio files. |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
language | string | The current system language, used to cut into the default language when the web server imports text. | |
ipc_channel_info | string array | The front-end supports language output channel list. | |
url | string | The 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
Parameter | Range | Type | Description |
---|---|---|---|
command | "Upload", "Remove", "Transform", "Exit", "Play" | string | Control 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" | string | Control 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" | string | conversion mode. "File": Convert audio files. "LocalText": Locally convert text. "NetworkText ": The web server converts text. To be sent in the "Upload" command. |
packet_index | 0~65535 | int | "command" is "Upload" and "convert_mode" is "File", which means the index of the current package. |
file_count | 0~65535 | int | issued when "command" is "Upload" and "convert_mode" is "File", indicating the total number of packets. |
file_name | 1~64 | string | Sent 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). |
text | 1~1024 | string | Sent when "command" is "Upload" and "convert_mode" is "Text". |
index | 1~11 | int | "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. |
language | string | "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_info | int 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_plate | string | Must 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
Parameter | Range | Type | Description |
---|---|---|---|
audio_list | array | list of audio files. | |
info | object | See Table 3. |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
language | string | The current system language, used to cut into the default language when importing text from the web server. | |
ipc_channel_info | array | The front-end supports language output channel list. | |
url | string | The 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
Parameter | Required | Description |
---|---|---|
Action | YES | Request action,including Range,Get,Set,Control,Format,Progress。 |
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
Parameter | Range | Type | Description |
---|---|---|---|
disk_info | JSON array | Disk Info object, see Table 2 for detailed information | |
over_write | Off Auto 1Day 3Days 7Days 14Days 30Days 90Days | string | Disk replication type |
esata_record | bool | E-SATA recording function switch | |
support_format | bool | Used to display the formatting button | |
default_timeout | 1~120000 unit: ms | int | Session timeout field |
hdd_format_type | AllHddData OnlyHddRecord OnlyHddData | string | Hard disk format type /* Format the entire hard disk / / Format only the video partition / / Format only the general partition*/ |
Table 2
Disk Info Object
Parameter | Range | Type | Description |
---|---|---|---|
id | int | Disk serial number | |
display_id | int | Disk display serial number (dedicated to NVR and DVR) | |
model | Max length: 40 byte | string | Disk model |
serial_no | Max length: 20 byte | string | disk serial number |
firmware | Max length: 8 byte | string | Disk firmware model |
device_type | None Normal Esata Sd Usb Network Raid All | string | disk type |
active | Inactive Active | string | Disk working status |
status | NoHdd Unformat Normal Full ReadOnly HddError Connecting Offline Occupied Oversized Broken Degrade Rebuilding Backup RaidHdd | string | Disk status |
total_size | Unit: Megabytes | int | Total capacity |
free_size | Unit: Megabytes | int | remaining capacity |
total_time | Unit: seconds | int | total time |
free_time | Unit: seconds | int | remaining time |
format_enable | bool | Can I format it | |
delete_enable | bool | Can I delete it | |
disk_type | ReadAndWriteDisk RedundantDisk ReadOnlyDisk | string | Disk group type |
disk_group_id | int | Disk group serial number | |
NasMaxCount | int | Maximum number of supported NAS disks | |
nas_info | Json Object | Nas 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
Parameter | Range | Type | Description |
---|---|---|---|
Enable | int | enabled | |
Index | int | Network disk serial number | |
Type | NFS SMB/CIFS | string | Protocol(NFS SMB/CIFS) |
Username | string | username | |
Password | string | password | |
password_empty | bool | Do you have a password | |
Ip | string | IP | |
Dir | string | directory path | |
Size | Int | Hard disk capacity (GB) | |
TotalSize | 1~8192 | int | Total size |
base_enc_password | Json Object | Please 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
Parameter | Range | Type | Description |
---|---|---|---|
Type | string | NetHdd、RaidHdd、Hdd | |
Info | Json Object | NetHdd Object, see Table 2 for detailed information Hdd object, see Table 3 for detailed information |
NetHdd Object
Parameter | Range | Type | Description |
---|---|---|---|
Mode | string | Add、Test、Del | |
Enable | int | enable | |
Index | int | Network disk serial number (not required for Add, not required for Test) | |
Type | NFS SMB/CIFS | string | Protocol(NFS SMB/CIFS) |
Username | string | username | |
Password | string | password | |
Ip | string | IP | |
Dir | string | directory path | |
Size | Int | Hard disk capacity (GB) | |
id | in | Hard drive serial number | |
disk_type | ReadAndWriteDisk RedundantDisk ReadOnlyDisk | string | Disk group type |
disk_group_id | int | Disk group serial number | |
base_enc_password | Json Object | Please refer to the table in the Syntax file under the Request pubkey or randbyte in the Login directory for encryption password details |
Channel Object
Parameter | Range | Type | Description |
---|---|---|---|
id | int | Hard drive serial number | |
disk_type | ReadAndWriteDisk RedundantDisk ReadOnlyDisk | string | Disk group type |
disk_group_id | int | Disk group serial number |
Parameter | Range | Type | Description |
---|---|---|---|
result | string | success 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
Parameter | Range | Type | Description |
---|---|---|---|
base_secondary_authentication | Json Object | For details of encrypted authentication, please refer to the table in the Syntax file under the Request pubkey or randbyte in the Login directory | |
hdd_id | int array | Disk serial number | |
hdd_format_type | AllHddData OnlyHddRecord OnlyHddData | string | Hard 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
Parameter | Range | Type | Description |
---|---|---|---|
hdd_id | int array | Disk serial number | |
hdd_format_state | Formatting Ok | string | Hard drive status |
hdd_format_percent | 0~100 | int | Format Progress |
hdd_format_info | json array | HddFormat Info Object, see Table 2 for detailed information |
NetHdd Object
Parameter | Range | Type | Description |
---|---|---|---|
hdd_id | Int | hdd id | |
hdd_format_result | Idle Ok InvalidParam NoExist HwError Failed Oversized | string | Format 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
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
Parameter | Range | Type | Description |
---|---|---|---|
disk_group_info | JSON array | Disk Group Info Object, see Table 2 for detailed information | |
limit_channel_max | int | The maximum number of channels that can be selected for a disk group |
Table 2
Disk Group Info Object
Parameter | Range | Type | Description |
---|---|---|---|
disk_group_type | None RecordDiskGroup RedundanceDiskGroup | string | Disk group type |
group_num | 1~MAX_HDD_GROUP_NUM | int | Disk Group Type Video Disk Group Serial Number/Redundant Disk Group Serial Number |
channel | “CH1”…“CH1x” “IP_CH1”…“IP_CH1x” “WIFI_CH1”…“WIFI_CH1x” | string | Disc 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
Parameter | Required | Description |
---|---|---|
Action | YES | Request action,including Range,Get,Set,Control,accesstoken。 |
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
Parameter | Range | Type | Description |
---|---|---|---|
accesstoken | 1-128 | string | Token after Dropbox activation |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
cloud_storage | bool | Cloud storage function switch | |
cloud_type | DROPBOX Google Drive | string | Cloud storage type |
cloud_status | Activated CloudFull Unactivated NetworkBlocked Disabled | string | Cloud storage connection status (DVR/NVR only) Note: only access is allowed, and setting is not supported |
total_size | unit:byte | unsigned long long | Total capacity (DVR/NVR dedicated) Note: Only allowed for acquisition, not supported for setting |
used_size | unit:byte | unsigned long long | Used capacity (DVR/NVR dedicated) Note: Only allowed to obtain, not supported for setting |
cloud_over_write | Off Auto 1Day 3Days 7Days 14Days 30Days 90Days | string | Cloud storage data overwrite time (DVR/NVR dedicated) |
video_type | RF AVI MP4 | string | Video file type (DVR/NVR specific) |
channel_info | JSON array | Channel Info Object, please refer to Table 3 for details | |
channel_max | int | The total number of channels in the current device |
Table 3
Channel Info Object
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | Channel Object, see Table 4 for detailed information | |
IP_CH1 | Json Object | ||
WIFI_CH1 | Json Object |
Table 4
Channel Object
Parameter | Range | Type | Description |
---|---|---|---|
channel | 0 ~ Maximum number of channels | string | channel number |
folder_name | Max length:63 byte | string | The 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
Parameter | Range | Type | Description |
---|---|---|---|
cloud_type | DROPBOX Google Drive | string | Cloud storage type |
Table 6
Parameter | Range | Type | Description |
---|---|---|---|
url | string | Request Connection URL | |
code | string | Verification 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
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
Parameter | Range | Type | Description |
---|---|---|---|
channel | CH1 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_info | JSON Object | Channel Info Object, see Table 2 for detailed information | |
channel_max | int | Current device total channel | |
support_copy | bool | Does the page support copy (dedicated to NVR and DVR) |
Table 2
Channel Info object
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | Channel Object, see Table 3 for detailed information | |
IP_CH1 | Json Object | ||
WIFI_CH1 | Json Object |
Table 3
Channel object
Parameter | Range | Type | Description |
---|---|---|---|
audio_enable | bool | ||
audio_type | G711AG711U ADPCM G726_16K G726_24K G726_32K G726_40K ACC | string | Audio Type |
in_volume | 0-10 | int | Channel devices in volume |
out_volume | 0-10 | int | Channel device output volume |
audio_in | MicIn Lineln | string | Audio input type |
audioin_enable | bool | Audio input sub switch | |
audioout_enable | bool | Audio 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
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
Parameter | Range | Type | Description |
---|---|---|---|
disk_info | JSON Object | Disk Info Object, see Table 2 for detailed information | |
raid_info | JSON Object | Raid Info Object, see Table 3 for detailed information | |
about_raid_info | JSON Object | About Raid Info Object, see Table 5 for detailed information | |
create_raid | JSON Object | Create Info Object, see Table 6 for detailed information | |
ctrl_info | JSON Object | Ctrl Info Object, see Table 8 for detailed information |
Table 2
Disk Info Object
Parameter | Range | Type | Description |
---|---|---|---|
No | 1~16 | int32 | The page displays the serial number of the hard drive |
enable | bool | Is the hard drive in a configurable state, that is, it can be checked for hot backup or Raid reconstruction | |
check | bool | Used to select the current hard drive for hot backup or rebuild Raid | |
id | 0~16 | int32 | The ID number of the hard drive |
disk_model | max_length:40 | string | Model of hard drive |
serial_no | max_length:20 | string | The serial number of the hard drive |
total_size | 2147483647 | int32 | The capacity of the hard drive, in GB |
array_name | max_length:20 | string | Which RAID disk does the hard disk belong to |
disk_type | Normal Disk HotDisk Raid Disk | string | Indicates 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" "" | string | Display 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_no | max_length:8 | string | The slot number of the hard drive |
Table 3
Raid Info Object
Parameter | Range | Type | Description |
---|---|---|---|
No | int32 | The page displays the serial number of the RAID disk | |
check | bool | The page displays the serial number of the RAID disk for selecting the current hard drive for rebuilding the current Raid or deleting operations | |
raid_id | 0~16 | int32 | The page displays the serial number of the RAID disk |
raid_name | max_length:32 | string | The page displays the name of the RAID disk |
raid_type | RAID0 RAID1 RAID4 RAID5 RAID0 RAID10 | string | RAID level type |
total_size | 0~ 2147483647 | int32 | Capacity of RAID disk |
raid_status | Normal Degrade Offline | string | RAID status, normal, degraded, offline |
hot_disk | 0~16 | int32 | Number of hot spares for RAID disks |
sub_disk_list | array | The hard disk ID for building a RAID disk | |
rebuild_button | Rebuild RAID | int32 | The display operation reconstructs the current RAID disk button, and an empty string indicates that it does not need to be displayed |
task | object | Task Object,Refer to Table 4 for detailed information |
Table 4
Task Object
Parameter | Range | Type | Description |
---|---|---|---|
status | None Rebuild Sync | string | RAID disk operation progress, no operation progress, rebuilding RAID (taking very long hours, 3 days or more), synchronizing data |
progress | 0~100 | int32 | Percentage of operation progress |
Table 5
About Raid Info Object
Parameter | Range | Type | Description |
---|---|---|---|
max_raid_num | 0~16 | int32 | Support the number of RAID disks to be formed |
raid_type | int32 | List of types that support building RAID | |
hotdisk_type | Public HotDisk | string | There is currently only one type of hot spare supported |
support_rebuild | No Yes | int | Does it support reconstruction operations |
Table 6
Create Raid Object
Parameter | Range | Type | Description |
---|---|---|---|
item | OneKeyCreate CreateRaid DeleteRaid AddHotDisk RemoveHotDisk Rebuild | string | Supported Actions |
raid_type | RAID0 RAID1 RAID4 RAID5 RAID6 RAID10 | string | Supported RAID types for creation |
disk_info | array | A hard disk that can be used to form RAID, Ctrl Disk Info Object, see Table 7 for detailed information |
Table 7
Task Object
Parameter | Range | Type | Description |
---|---|---|---|
id | 0~16 | int32 | The ID of the hard drive |
serial_no | max_length:20 | string | The serial number of the hard drive |
check | bool | Check the hard drive used to build RAID |
Table 8
Ctrl Info Object
Parameter | Range | Type | Description |
---|---|---|---|
item | OneKeyCreate CreateRaid DeleteRaid AddHotDisk RemoveHotDisk Rebuild | sring | Name of the RAID disk to be built |
Table 9
Parameter | Range | Type | Description |
---|---|---|---|
ctrl | OneKeyCreate CreateRaid DeleteRaid AddHotDisk RemoveHotDisk Rebuild | string | Command 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
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
Parameter | Range | Type | Description |
---|---|---|---|
channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” The number of channels depends on the capabilities of the device. | string array | Each array bit represents a channel with a string. |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | JSON Object | Channel Information JSON show as follow Table 3 |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | JSON show as follow Table 4 | |
… | Json Object | ||
IP_CH1 | Json Object | ||
… | Json Object | ||
WIFI_CH1 | Json Object | ||
… | Json Object |
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
record_switch | bool | Record function switch | |
stream_mode | "Mainstream", "DualStream" | string | Stream type, only supports dual stream devices (for NVR/DVR only) |
prerecord | bool | Pre-recording switch | |
manual_record | bool | Indicates the status of manual recording | |
net_break_record | bool | Network disconnection record switch (for IPC only) | |
copy_ch | "digit", "analog", "wifi" | string | Support channel replication logo(for NVR, DVR only) |
schedule_list | 0-8 | json array | IPC recording schedule data (special for IPC POE package for consumer NVR),show as Table 5 |
Table 5
Parameter | Range | Type | Description |
---|---|---|---|
enable | bool | Whether the current schedule takes effect | |
start_time | 0 – 1439(23*60+59) | int | Schedule start time (minutes relative to 00:00) |
end_time | 0 – 1439(23*60+59) | int | Schedule end time (minutes relative to 00:00) |
weekday | "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" | array | Indicates 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
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
Parameter | Range | Type | Description |
---|---|---|---|
channel | string | Channel number | |
search_type | "Record", "Picture" | string | Search type, used to distinguish between searching for videos or pictures |
start_date | string | Video file start date The date format is MM/DD/YYYY | |
end_date | string | Video file end date The date format is MM/DD/YYYY | |
start_time | string | Video file start time The time format is hh:mm:ss | |
end_time | string | Video file end time The time format is hh:mm:ss | |
record_type | NormalRecord: 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, | int | Recording type (only for NVR) |
record_type_ex | FiredetRecord 0x100000000 MeasureRecord 0x200000000 MeasureRulesRecord 0x400000000 | int array | Recording 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_id | 0 - 0xFFFFFFFF | unsigned int | Record ID |
disk_event_id | 0 - 255 | unsigned int | Disk event ID |
size | 0 - 0x3FFFFFFF | int | File size, unit bytes |
unfinished | bool |
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
Parameter | Range | Type | Description |
---|---|---|---|
channel | “CH1”…”CH1x”, “IP_CH1”…” IP_CH1x”, “WIFI_CH1”…” WIFI_CH1x”, The number of channels depends on the capabilities of the device. | string array | Each array bit represents a channel with a string. |
start_date | string | Search startdate. The date format is MM/DD/YYYY | |
end_date | string | Search enddate. The date format is MM/DD/YYYY | |
start_time | string | Search start time. The time format is hh:mm:ss | |
end_time | string | Search end time. The time format is hh:mm:ss | |
record_type | int | Recode type | |
record_type_ex | Int array | Record type expansion (bitwise) | |
stream_mode | "Mainstream","Substream" | string | Stream type (IPC supports only primary streams) |
smart_region | 18 | Int array | The 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
Parameter | Range | Type | Description |
---|---|---|---|
record | JSON array | Single Channel Record Information JSON show as follow Table3 |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
channel | string | channel number | |
stream_mode | "Mainstream", "Substream" | string | Stream type (IPC supports only primary streams) |
record_type | NormalRecord: 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 | int | Record Type (for IPC only) |
record_type_ex | FiredetRecord 0x100000000 MeasureRecord 0x200000000 MeasureRulesRecord 0x400000000 | int array | Recording 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_type | NormalRecord: 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, | int | Record Type (for NVR only) |
start_date | string | Record file startdate. The date format is MM/DD/YYYY | |
end_date | string | Record file end date. The date format is MM/DD/YYYY | |
start_time | string | Record file start time. The time format is hh:mm:ss | |
end_time | string | Record file end time. The time format is hh:mm:ss | |
Size | int | file size, unit byte | |
record_id | 0 - 0xFFFFFFFF | unsigned int | |
disk_event_id | 0 - 0xFFFFFFFF | unsigned 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
Parameter | Required | Description |
---|---|---|
Action | YES | Request action, including Get. |
Get
Function
This API is used to get month playback data for a specified date.
Request Message
Parameter Description
Table 1
Parameter | Range | Type | Description |
---|---|---|---|
channel | “CH1”…”CH1x”, “IP_CH1”…” IP_CH1x”, “WIFI_CH1”…” WIFI_CH1x”, The number of channels depends on the capabilities of the device | string array | Each 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" | string | Monthly search type |
start_date | string | Search startdate. The date format is MM/DD/YYYY | |
stream_type | "Mainstream", "Substream" | string | Stream 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
Parameter | Range | Type | Description |
---|---|---|---|
is_has_rec | int array | ||
record_type | int 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
Parameter | Required | Description |
---|---|---|
Action | YES | Request action, including only Get,. |
Get
Function
This API is used to get image information.
Request Message
Parameter Description
Table 1
Parameter | Range | Type | Description |
---|---|---|---|
channel | “CH1”…”CH1x”, “IP_CH1”…” IP_CH1x”, “WIFI_CH1”…” WIFI_CH1x”, The number of channels depends on the capabilities of the device. | string array | Each 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_date | string | Search 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_date | string | Search 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_time | string | Search 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_time | string | Search 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_info | string | The 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_width | string | ||
pic_height | string | ||
pic_sort | string | 0: Sequence 1: reverse sequence | |
record_type | NormalRecord: 0x1, MotionRecord: 0x4, IORecord: 0x8, PIRRecord: 0x10000, ManualRecord: 0x40000 | string | It can be a single search type, or it can be a mixture of many types. |
msg_type | string | When 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
Parameter | Range | Type | Description |
---|---|---|---|
result | bool | ||
overload | bool | Images over 5000 | |
msg_type | string | When this parameter is requested, the contents of the field are returned as-is. | |
picture | json | Returns an image information and base64 image contents, as shown in Table 3. | |
all_pic_info | string array | If IE does not have the pic_info field, the board searches for the pic_info field and returns it. | |
all_pic_num | 0-500 | int | If IE does not have the pic_info field, the board searches for the pic_info field and returns it. |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
channel | string | ||
time | string | The format is yyyy/MM/dd hh:mm:ss. | |
image | string | Picture 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
Parameter | Required | Description |
---|---|---|
Action | YES | Request 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
Parameter | Range | Type | Description |
---|---|---|---|
FaceAttendance | json object | Show as followTable2 | |
Normal | Json object | Show as followTable3 | |
Picture | Json object | Show as followTable3 | |
HumanVehicle | Json object | Show as followTable3 | |
PidLcd | Json object | Show as followTable3 | |
supportFaceAttr | Json object | AI playback page with face attributes of the control. | |
param_limit | Json object | Show as followTable3 |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
off_duty_time | string | The time format is “hh:mm:ss” | |
on_duty_time | string | The time format is “hh:mm:ss” | |
working_days | "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" | string array | workday |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
display_mode | “Treelike”, “Checkbox” | int | UI display type |
default_sort_of_results | int | Search information in default or reverse order. | |
items | int | Show as followTable4 | |
similarity_face | int | Control the range and default value of the IE playback Face Detection similarity input box. | |
similarity_customer | int | Control the Fault-tolerant input field and the default value of the IE playback License Plate. | |
similarity_license | int | The range and default value of the similarity input box controlling the IE playback of Repeat customer. |
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
record_type | Json object | Playback Type Show as followTable5 | |
stream_mode | “Mainstream”, “Substream” | string | Primary substream type (Normal only has this field) |
Table 5
Parameter | Range | Type | Description |
---|---|---|---|
normal | bool | normal | |
manual | bool | manual | |
alarm | Json object | Show as followTable6 (For IPC only) | |
smart | Json object | Show as followTable7 (For IPC only) | |
Human | bool | AI Human (For NVR only) | |
Vehicle | bool | AI Vehicle (For NVR only) | |
IO | bool | IO alarm record type (For NVR only) | |
motion | bool | Motion alarm record type (For NVR only) | |
PIR | bool | Pir (For NVR only) | |
Sound | bool | Audible alarm (For NVR only) | |
occulusion | bool | Lens blocked (For NVR only) | |
Intelligent | bool | intelligent analysis (For NVR only) | |
PID | bool | AI perimeter intrusion (For NVR only) | |
LCD | bool | AI Overline detection (For NVR only) | |
faceAttr | bool | Face attribute (For NVR only) |
Table 6
Parameter | Range | Type | Description |
---|---|---|---|
IO | Json object | IO alarm record type | |
motion | Json object | Motion alarm record type | |
PIR | Json object | Pir | |
Sound | Json object | Audible alarm | |
Netbreak | Json object | disconnected record |
Table 7
Parameter | Range | Type | Description |
---|---|---|---|
PID | bool | ||
LCD | bool | ||
SOD | bool | ||
PD | bool | ||
FD | bool | ||
CC | bool | ||
intrusion | bool | ||
regionEntrance | bool | ||
regionExiting | bool |
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
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)
Parameter | Range | Type | Description |
---|---|---|---|
channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” The number of channels depends on the capabilities of the device. | string array | Each array bit represents a channel with a string. |
start_date | string | Search startdate. The date format is MM/DD/YYYY | |
end_date | string | Search end date. The date format is MM/DD/YYYY | |
start_time | string | Search start time. The time format is hh:mm:ss | |
end_time | string | Search start time. The time format is hh:mm:ss | |
Keyword | 0-39 | string | When you search for tags, you only search for tags that contain keywords |
Table 2 (Response Information JSON)
Parameter | Range | Type | Description |
---|---|---|---|
Pre-play | string | Start playing the video with the label time forward ("5s")("10s")("30s")("1Min")("2Min")("5Min")("10Min"). | |
Post-play | string | Play the recording at the end of the tag time ("5s")("10s")("30s")("1Min")("2Min")("5Min")("10Min"). | |
all_tag_info | json | show as follow Table 3 | |
all_tag_num | 0-5000 | int | How many matching tags are found. |
Table 3 (all_tag_info Information JSON)
Parameter | Range | Type | Description |
---|---|---|---|
Tag_date | string | The date format is MM/DD/YYYY. | |
Tag_time | string | The time format is hh:mm:ss. | |
channel | string | The channel to which the label belongs. | |
chNum | int | Channel number | |
label_id | int | Tag ID | |
record_id | int | Record ID | |
Tag_name | 0-39 | string | Tag name |
Table 4 (Add Tag Information JSON)
Parameter | Range | Type | Description |
---|---|---|---|
Tag_date | string | The date format is MM/DD/YYYY. | |
Tag_time | string | The time format is hh:mm:ss. | |
channel | string array | The channel to which the label belongs. | |
chNum | int | Channel number | |
label_id | int | Tag ID | |
record_id | int | Record ID | |
Tag_name | 0-39 | string | Tag name |
operate | 0-2 | int | 0- 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
Parameter | Range | Type | Description |
---|---|---|---|
channel | int | Channel, starting at 1 | |
subtype | 0: primary stream, 1: substream | int | Stream type |
starttime | string | Play start time | |
endtime | string | Playback end time | |
localtime | true: use the local time. false: use the UTC time | bool | Whether 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
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
Parameter | Range | Type | Description |
---|---|---|---|
auto_reboot | bool | Auto restart switch.Automatic maintenance switch.. | |
period_mode | "EveryDay", "EveryWeek", "EveryMonth" | string | The model of the maintenance cycle. |
week | "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun" | string | Weekdays of the week.(When MaintainPeriod is Week) |
day | 1~31 | int | Day of months.(When MaintainPeriod is Month) |
time | string | Restart 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
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
Parameter | Range | Type | Description |
---|---|---|---|
defogging_fan | bool | Defogging 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
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
Parameter | Range | Type | Description |
---|---|---|---|
telnet_switch | bool | Telnet switch.(Supported by 8.2.3 and earlier versions) | |
ssh_switch | bool | Telnet switch. (Version support after 8.2.3) | |
export_disk_switch | "Shut Off", "Output To Terminal", "Output To Disk" | string | Print the log output location. |
enable_export | bool | Whether to show the export button. | |
enable_delete | bool | Whether to show delete button. | |
support_ipc_log_export | bool | Whether to show export IPC log button. NVR and IPC parameters | |
search_log_enable | bool | Whether to display the six elements export button, IPC parameters | |
support_ipc_log_pack | bool | Whether 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" | string | Example ftp path, IPC parameters |
download_type | "IPC_Local" | string | Download type, IPC parameters |
support_ipc_log_delete | bool | Whether to show delete IPC log button. | |
export_days | "all","1","2","3","4","5" | string | Number of days to export logs. |
channel_info | object | Object members see Table 2. |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
channel | "CH1"…"CHx", "IP_CH1"…"IP_CHx" | object | Channel object, see Table 3 for object members. |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
log_collect_enable | bool | Whether log collection is enabled. NVR and IPC parameters | |
support_logcollection | bool | Whether to support log collection. | |
log_collect_mode | "NVR" "SD_Card" "FTP" | string | Log collection mode. IPC parameter |
remote_server | Json Object | Object member See also Table 4。IPC parameter |
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
username | maxlength 63 byte | string | FTP user name |
password | maxlength 63 byte | string | FTP password |
password_empty | bool | Whether the password is empty | |
server_address | maxlength 127 byte | string | FTP 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
Parameter | Range | Type | Description |
---|---|---|---|
base_secondary_authentication | object | Encrypted information for authentication. See base_secondary_authentication information table for structure members details. | |
delete_type | "NVR_Ipc", "NVR_Local" | string | Clear 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
Parameter | Range | Type | Description |
---|---|---|---|
x-download-token | string | ||
x-csrftoken | string |
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
Parameter | Range | Type | Description |
---|---|---|---|
base_secondary_authentication | object | Encrypted information for authentication. See base_secondary_authentication information table for structure members details. | |
export_days | "all","1","2","3","4","5" | string | Number of days to export logs, which must be brought when exporting IPC logs. |
download_type | "NVR_Ipc", "NVR_Local" | string | Download 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 array | The 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
Parameter | Range | Type | Description |
---|---|---|---|
x-download-token | string | in 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
Parameter | Required | Description |
---|---|---|
Action | YES | Request action, including Set. |
Set
Function
This API is used to reboot device.
Request Message
Parameter Description
Table 1
Parameter | Range | Type | Description |
---|---|---|---|
For the structure of | base_secondary_authentication | object |
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
Parameter | Required | Description |
---|---|---|
Action | YES | Request action, including Set. |
Set
Function
This API is used to device shutdown.
Request Message
Parameter Description
Table 1
Parameter | Range | Type | Description |
---|---|---|---|
base_secondary_authentication | object | Encrypted 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
Parameter | Required | Description |
---|---|---|
Action | YES | Request 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
Parameter | Range | Type | Description |
---|---|---|---|
ftp_addr | min_len:0, max_len":64 | string | Server address. |
ftp_port | min:1, max:65535 | int | Server port. |
username | min_len:0, max_len:64 | string | Username. |
user_pwd | min_len:0, max_len:32 | string | Login password. |
user_pwd_empty | bool | Whether the password is empty. | |
online_upgrade_tips | string | Request server URL sample. | |
ftp_path | min_len:0, max_len:128 | string | ftp upgrade file path. |
ftp_buttons | "Save","Refresh","Check","Upgrade" | string array | Names of the buttons in the button group. |
online_upgrade | bool | It 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_updates | bool | Whether to check for updates. | |
cur_version | len:0-64 | string | Current version number. |
new_version | len:0-64 | string | New version number. |
info_file_url | object | Special for IPC, returns encrypted upgrade URL, please refer to Table 2. |
Table 2
parameter | range | type | description |
---|---|---|---|
cipher | string | encrypted URL (use /API/Maintenance/FtpUpgrade/Get to send the secret key encryption), using base64 for transmission. | |
seq | 0-1000000 | int | return /API/Maintenance/FtpUpgrade/Get seq sent by API . |
key | string | The 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
Parameter | Range | Type | Description |
---|---|---|---|
url_key | object | The 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
Parameter | Range | Type | Description |
---|---|---|---|
seq | 0-1000000 | int | The seq returned using the Request pubkey or randbyte API. |
peer_key | len:0-1024 | string | The X25519 public key encrypted by the client, Use base64 transfer. |
type | string | Peer 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
Parameter | Range | Type | Description |
---|---|---|---|
ftp_addr | min_len:0;max_len":64 | string | Ftp address. |
ftp_port | min:1;max:65535 | int | |
username | min_len:0;max_len:64 | string | Username. |
user_pwd | min_len:0;max_len:32 | string | password. |
user_pwd_empty | bool | Whether the password is empty. | |
ftp_path | min_len:0;max_len:128 | string | Ftp upgrade file path. |
check_for_updates | bool | Whether to check for updates. | |
base_enc_password | object | encrypted 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
Parameter | Range | Type | Description |
---|---|---|---|
has_new_firmware | bool | Whether has a new upgrade firmware. | |
current_ver | string | Current version. | |
new_version | string | New version. | |
Upgrade_button | bool | Whether the update button can be clicked. | |
lang_strs | string | Update 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
Parameter | Range | Type | Description |
---|---|---|---|
upgrade_percent | 0~100 | int | Progress of upgrade processing. |
upgrade_state | "start", "checkVersion", "downloadStart", "upgrade_download", "upgrade_upgrade_succeed", "downloadFailure", "upgrade_upgrading" | string | Upgrade state. |
upgrade_result | "ok", "finish" | string | Upgrade 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
Get
Function
This API is used to export configuration files.
Request Message
Parameter Description
Table 1
Parameter | Range | Type | Description |
---|---|---|---|
base_secondary_authentication | object | See 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
Parameter | Range | Type | Description |
---|---|---|---|
param | string | Base64,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
Parameter | Range | Type | Description |
---|---|---|---|
base_secondary_authentication | object | See Login > Request pubkey or randbyte > EncryptObjectTable > Table 4 for parameter description. | |
param | string | Base64 |
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
Parameter | Range | Type | Description |
---|---|---|---|
state | "Success", "Failed" | string | Status 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
Parameter | Required | Description |
---|---|---|
Action | YES | Request 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_max | int | The maximum number of accessable channels. | |
online_upgrade | bool | A new interface to judge whether to use FTP or HTTP to upgrade IPC online. | |
ftp_auto_upgrade | bool | Ftp auto upgrade IPC switch. | |
check_for_updates | bool | Ftp automatic upgrade IPC check prompt. | |
upgrade_result | len:0-32 | string | Update result. |
ftp_buttons | "Save","Refresh","Check","Upgrade" | string array | Ftp button group button name. |
check_chns | size:0-16 | int array | Check the updated IPC index. |
channel_info | object | Total channel information object, see Table 2 for details. |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | object | A channel information object, see Table 3 for details. | |
... | object | ||
IP_CH1 | object | ||
... | object | ||
WIFI_CH1 | object | ||
... | object |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
sup_ftp_auto_upgrade | bool | Whether the IPC supports automatic upgrade. | |
ftp_ipc_new_ver | bool | Whether 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
Parameter | Range | Type | Description |
---|---|---|---|
ftp_auto_upgrade | bool | ftp auto upgrade IPC switch. | |
check_for_updates | bool | ftp automatic upgrade IPC prompt switch. | |
online_upgrade | bool | A new interface for judging whether to use FTP or HTTP to upgrade IPC online. | |
channel_info | object | Total channel information object, see Table 2 for details. |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | object | A channel information object, see Table 3 for details. | |
... | object | ||
IP_CH1 | object | ||
... | object | ||
WIFI_CH1 | object | ||
... | object |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
sup_ftp_auto_upgrade | bool | Whether the channel IPC supports automatic upgrade. | |
ftp_ipc_new_ver | bool | Whether there is a new version of channel IPC. | |
upgrade_result | len:0-32 | string | update 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
Parameter | Range | Type | Description |
---|---|---|---|
ftp_auto_upgrade | bool | Ftp auto upgrade IPC switch. | |
check_for_updates | bool | Ftp automatic upgrade IPC prompt switch. | |
online_upgrade | bool | A new interface for judging whether to use FTP or HTTP to upgrade IPC online. | |
channel_info | object | Total channel information object, see Table 2 for detailed information. |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | object | A channel information object, see Table 3 for details. | |
... | object | ||
IP_CH1 | object | ||
... | object | ||
WIFI_CH1 | object | ||
... | object |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
sup_ftp_auto_upgrade | bool | Whether the IPC supports automatic upgrade. | |
ftp_ipc_new_ver | bool | Whether there is a new version of IPC. | |
upgrade_result | len:0-32 | string | upgrade result. |
reason | string | The 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
Parameter | Range | Type | Description |
---|---|---|---|
check_chns | string array | The 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
Parameter | Range | Type | Description |
---|---|---|---|
upgrade_chns | string array | Need 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
Parameter | Range | Type | Description |
---|---|---|---|
cur_ipc | string array | Currently upgrading IPC. | |
upgrade_percent | int | FTP download IPC upgrade file progress. | |
upgrade_state | string | FTP upgrade IPC status, see Maintenance > IPCMaintenance > IPCUpgrade_Code . | |
upgrade_result | string | FTP 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
Parameter | Range | Type | Description |
---|---|---|---|
upgrade_chns | string array | IPCs 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
Export
Function
This API is used to export IPC configuration files.
Request Message
Parameter Description
Table 1
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | object | Total channel information object, see Table 2 for details. | |
base_secondary_authentication | object | encrypted authentication object, see base_secondary_authentication information table for details information. |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | object | A channel information object, see Table 3 for details. | |
... | object | ||
IP_CH1 | object | ||
... | object | ||
WIFI_CH1 | object | ||
... | object |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
ImportExportSwitch | bool | Parameter 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | object | Total channel information object, see Table 5 for details. |
Table 5
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | object | A channel information object, see Table 6 for details. | |
... | object | ||
IP_CH1 | object | ||
... | object | ||
WIFI_CH1 | object | ||
... | object |
Table 6
Parameter | Range | Type | Description |
---|---|---|---|
param | string | Base64. | |
state | "Success", "Failed" | string | Operation 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | object | Total channel information object, see Table 2 for details. |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | object | A channel information object, see Table 3 for details. | |
... | object | ||
IP_CH1 | object | ||
... | object | ||
WIFI_CH1 | object | ||
... | object |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
ip_address | Max length:63 | string | IP address/domain name. |
status | "Offline","Online" | string | IPC status. |
software_version | Max length: 40 | string | Firmware version. |
file_type | Max length: 64 | string | Upgrade file extension. |
reason | string | The 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | object | Total channel information object, see Table 2 for details. | |
base_secondary_authentication | object | encrypted authentication object, see base_secondary_authentication information table for details information. |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | object | A channel information object, see Table 3 for details. | |
... | object | ||
IP_CH1 | object | ||
... | object | ||
WIFI_CH1 | object | ||
... | object |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
ImportExportSwitch | bool | Parameter export and import switch. (This field is only used for IPC parameter export and import) | |
param | string | Base64 (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": "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"
}
}
}
}
Response Message
Parameter Description
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
state | "Success", "Failed" | string | The 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_max | int | The maximum number of accessable channels. | |
password | len:0-16 | string | IPC authentication password. |
channel_info | object |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | object | A channel information object, see Table 3 for details. | |
... | object | ||
IP_CH1 | object | ||
... | object | ||
WIFI_CH1 | object | ||
... | object |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
ip_address | Max length:63 | string | IP address/domain name. |
status | "Offline","Online" | string | IPC status. |
software_version | Max length: 40 | string | Firmware 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
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
Parameter | Range | Type | Description |
---|---|---|---|
channel_max | int | The maximum number of accessable channels. | |
password | len:0-16 | string | IPC authentication password. |
channel_info | object | Total 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
Parameter | Range | Type | Description |
---|---|---|---|
password | Max length: 16 | string | Verify the admin user password for secondary authentication. |
channel_info | object | Total channel information object, see Table 2 for details. | |
base_secondary_authentication | object | encrypted authentication object, see base_secondary_authentication information table for details information. |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | object | A channel information object, see Table 3 for details. | |
... | object | ||
IP_CH1 | object | ||
... | object | ||
WIFI_CH1 | object | ||
... | object |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
reboot_switch | bool | Reboot 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | object | Total channel information object, see Table 5 for details. |
Table 5
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | object | A channel information object, see Table 6 for details. | |
... | object | ||
IP_CH1 | object | ||
... | object | ||
WIFI_CH1 | object | ||
... | object |
Table 6
Parameter | Range | Type | Description |
---|---|---|---|
state | "Success","Failed" | string | The 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
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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | object | Total channel information object, see Table 2 for details. |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | object | A channel information object, see Table 3 for details. | |
... | object | ||
IP_CH1 | object | ||
... | object | ||
WIFI_CH1 | object | ||
... | object |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
ip_address | Max length:63 | string | IP address/domain name. |
state | "Off-line","On-line" | string | IPC status. |
software_version | Max length: 40 | string | Firmware version. |
ipc_upgrade | bool | Upgrade switch. | |
file_type | Max length: 64 | string | Upgrade 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | object | Total channel information object, see Table 2 for details. |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | object | A channel information object, see Table 3 for details. | |
... | object | ||
IP_CH1 | object | ||
... | object | ||
WIFI_CH1 | object | ||
... | object |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
ip_address | Max length:63 | string | IP address/domain name. |
state | "Off-line","On-line" | string | IPC status. |
software_version | Max length: 40 | string | Firmware version. |
file_type | Max length: 64 | string | Upgrade file extension. |
reason | string | The 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
Parameter | Range | Type | Description |
---|---|---|---|
file_name | len:0-256 | string | Upgrade file name. |
file_size | size:100 << 20,(N88X,N88SX:200 << 20) | int | Upgrade file size. |
ipc_channels | size:0-the maximum number of channels | int array | Channels that need to be upgraded. |
upgrade_head | size:3 * 1024 | int array | 1KB data before the upgrade file. |
base_secondary_authentication | object | Encrypted 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
Parameter | Range | Type | Description |
---|---|---|---|
upgrade_token | len:0-32 | string | Upgrade 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
Parameter | Range | Type | Description |
---|---|---|---|
ChannelInfo | object array | See Table 2 for more information. |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
channel | string | Channel number. | |
result | string | UpgradeResult. | |
reason | string | Upgrade error reason. | |
error_code | string | The 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
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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | object | Total channel information object, see Table 2 for details. |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | object | A channel information object, see Table 3 for details. | |
... | object | ||
IP_CH1 | object | ||
... | object | ||
WIFI_CH1 | object | ||
... | object |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
ip_address | Max length:63 | string | IP address/domain name. |
status | "Offline","Online" | string | IPC status. |
software_version | Max length: 40 | string | Firmware version. |
reset_switch | bool | Restore default switch. | |
file_type | Max length: 64 | string | Upgrade 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | object | Total channel information object, see Table 2 for details. |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | object | A channel information object, see Table 3 for details. | |
... | object | ||
IP_CH1 | object | ||
... | object | ||
WIFI_CH1 | object | ||
... | object |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
ip_address | Max length:63 | string | IP address/domain name. |
status | "Offline","Online" | string | IPC status. |
software_version | Max length: 40 | string | Firmware version. |
file_type | Max length: 64 | string | Upgrade 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
Parameter | Range | Type | Description |
---|---|---|---|
password | Max length: 16 | string | Verify the admin user password for secondary authentication. |
channel_info | object | Total channel information object, see Table 2 for details. | |
base_secondary_authentication | object | encrypted authentication object, see base_secondary_authentication information table for details information. |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | object | A channel information object, see Table 3 for details. | |
... | object | ||
IP_CH1 | object | ||
... | object | ||
WIFI_CH1 | object | ||
... | object |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
reset_switch | bool | Reset 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | object | Total channel information object, see Table 5 for details. |
Table 5
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | object | A channel information object, see Table 6 for details. | |
... | object | ||
IP_CH1 | object | ||
... | object | ||
WIFI_CH1 | object | ||
... | object |
Table 6
Parameter | Range | Type | Description |
---|---|---|---|
state | "Success","Failed" | string | The 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
Status | Description |
---|---|
upgrading | The IPC device is being upgraded. |
ver_same | The current version is already the latest version. |
connet_close | The device connection is abnormal. |
read_file_fail | Error reading file. |
ver_err | The upgrade file does not match. |
invalid_file | The file is invalid, please upload a valid file. |
file_error | Error creating file. |
not_exist | The device is not online. |
failed | Upgrade failed. |
UpgradeStatus
Status | Description |
---|---|
IPC_UPGRADE_FILE_DOWNLOADING | Downloading upgrade file. |
IPC_WAIT_FOT_UPGRADING | Upgrade file download is complete, waiting for upgrade. |
IPC_UPGRADE_FILE_DOWNLOAD_FAILED | Upgrade file download failed. |
IPC_UPGRADE_FINISH | Single IPC upgrade is complete. |
IPC_UPGRADE_ALL_FINISH | All IPC upgrades completed. |
UpgradeResult
Status | Description |
---|---|
downloading | Upgrade file downloading. |
wait_for_upgrading | Upgrade file download is complete, waiting for upgrade. |
download_failed | Upgrade file download failed. |
success | IPC upgrade successful. |
upgrading | The IPC device is being upgraded. |
ver_same | The current version is already the latest version. |
connet_close | The device connection is abnormal. |
read_file_fail | Error reading file. |
invalid_file | The file is invalid, please upload a valid file. |
ver_err | The upgrade file does not match. |
failed | Upgrade failed. |
param_error | Parameter error. |
file_too_long | The upgrade file is too large. |
not_exist | The device is not online. |
all_finish | Upgrade 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
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
Parameter | Range | Type | Description |
---|---|---|---|
channel | bool | Reset Channel related parameters. | |
record | bool | Reset record related parameters.Reset record related parameters | |
event | bool | Reset alarm related parameters.Reset alarm related parameters | |
ai | bool | Reset AI related parameters.Reset ai related parameters | |
network | bool | Reset Network related parameters.Reset network related parameters | |
device | bool | Reset Device related parameters.Reset device related parameters | |
system | bool | Reset System related parameters.Reset system related parameters | |
secondary_authentication | Max length: 16 | string | Verify admin user password for secondary authentication. |
intelligent | bool Reset Intellight related parameters. | Reset intelligent related parameters | |
except_network_param | bool | Reset parameters except Network. | |
base_secondary_authentication | Json Object | Encrypted authentication structure, see base_secondary_authentication information table for more information. | |
default_timeout | 1~120000ms | int | Session 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
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
Parameter | Range | Type | Description |
---|---|---|---|
start_date | Date format: MM/DD/YYYY | string | Search start date. |
start_time | Time format: hh:mm:ss | string | Search start time. |
end_date | Date format: MM/DD/YYYY | string | Search end date. |
end_time | Time format: hh:mm:ss | string | Search end time. |
main_type | "System", "Operate","Alarm", "Account", "Record", "Storage", "Network" , "All" | string | log main type |
channel_max | int | The maximum number of channels, IPC is 1. | |
channel | string | The channel to which the log is associated. Note: Depending on the log type, this field is optional. | |
record | bool | Whether there is a recording. Note: Depending on the log type, this field is optional. | |
ai_main_type | "Face Detection" "Human & Vehicle" "License Plate Detection" | string | The main type of AI log |
sub_type | System: "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" | string | log 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. |
unfinished | bool |
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
Parameter | Range | Type | Description |
---|---|---|---|
start_date | Date format: MM/DD/YYYY | string | Search start date. |
start_time | Time format: hh:mm:ss | string | Search start time. |
end_date | Date format: MM/DD/YYYY | string | Search end date. |
end_time | time format: hh:mm:ss | string | search end time. |
main_type | "System", "Operate", "Alarm", "Account", "Record", "Storage", "Network" , "All" | string | log main type |
channel_max | Ipc:1 | int | Maximum 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
Parameter | Range | Type | Description |
---|---|---|---|
log | object array | Array of log structures, see Table 3 for details. |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
start_date | string | Log start date, format: MM/DD/YYYY. | |
start_time | string | Log start time, format: hh:mm:ss. | |
end_time | string | log 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" | string | The main type of AI log. |
sub_type | System: "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" | string | log 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 . |
channel | string | The channel to which the log is associated. Note: Depending on the log type, this field is optional. | |
record | bool | Whether 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 | |
user | string | The username of the operating user. | |
ip | string | Operating user's ip address. | |
time_src | string | When modifying the time, the old time. | |
time_dst | string | When modifying the time, the new time. | |
user_id | 0->administrator,1->user1 2->user2...6->user6 | int | user ID of the operating user. |
ipc_ip | string | The ip address of the operated ipc. | |
dst_user | string | The username of the user being operated. | |
dest_userid | 0->administrator,1->user1 2->user2...6->user6 | int | user ID of the user being operated. |
hddid | int | HDD serial number. | |
model | string | hard disk related. | |
serial_no | string | hard 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
Parameter | Required | Description |
---|---|---|
Action | YES | Request 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
Parameter | Range | Type | Description |
---|---|---|---|
file_size | int | Upgrade file size. |
Sample:
POST /API/Maintenance/SystemUpgrade/ComponentToken HTTP/1.1
{
"version": "1.0",
"data": {
"file_size":74328284
}
}
Response Message
Parameter Description
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
upgrade_token | string | Upgrade token. | |
upgrade_timeout | 0-3600 | int | Upgrade 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
Parameter | Range | Type | Description |
---|---|---|---|
file_size | int | Component version detection file size. | |
file_data | int array | Component version detection file data. | |
url_key | object | The public key used to encrypt the url, see Table 2 for details. |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
seq | 0-1000000 | int | Returns the number of API encryption times using Request pubkey or randbyte. |
peer_key | len:0-1024 | string | The X25519 key encrypted by the client is converted using base64. |
type | "base_x_public" | string | key 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
Parameter | Range | Type | Description |
---|---|---|---|
new_version_component | object array | The 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
Parameter | Range | Type | Description |
---|---|---|---|
cipher | 0-1024 | string | ciphertext derived from Request pubkey or randbyte API X25519 encryption, use base64 for character conversion. |
key | 0-1024 | string | The random number is a hexadecimal string and needs to be converted. The public key is in plain text. It is transmitted by Base64. |
seq | 0-1000000 | int | Use 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
Parameter | Range | Type | Description |
---|---|---|---|
file_name | len:0-256 | string | upgrade file name. |
file_size | size:100 << 20,(N88X,N88SX:200 << 20) | int | Upgrade file size. |
upgrade_head | size:3 * 1024 | int array | 1KB data before the upgrade file. |
base_secondary_authentication | object | The 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
Parameter | Range | Type | Description |
---|---|---|---|
upgrade_token | string | Upgrade token. | |
upgrade_timeout | 0-3600 | int | Upgrade 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
Parameter | Range | Type | Description |
---|---|---|---|
FirewareVersion | string | Software version | |
FirewarePack | string | Package name | |
url_key | JSON object | The public key used to encrypt the url,(show as follow Table 2) |
Parameter | Range | Type | Description |
---|---|---|---|
seq | 0-1000000 | int | The seq returned using the Requst pubkey or randbyte API |
peer_key | 0-1024 | string | The X25519 public key encrypted by the client, Use base64 transfer |
type | string | Peer_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
Parameter | Range | Type | Description |
---|---|---|---|
ComponentDectectFile | JSON object | Complete encrypted URL information of the component detection file (show as follow Table 4) | |
FirewarePack | JSON object | Complete encrypted URL information of the upgrade package(show as follow Table 4) |
Parameter | Range | Type | Description |
---|---|---|---|
cipher | 0-1024 | string | Encrypted password value (Encryption using the X25519 key derived by the Requst pubkey or randbyte API), Use base64 transfer |
key | 0-1024 | string | The random number is hex string, which needs to be converted. The public key is plaintext. Base64 transmission is adopted. |
seq | 0-1000000 | int | The 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
Parameter | Required | Description |
---|---|---|
Action | YES | Request 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
Parameter | Range | Type | Description |
---|---|---|---|
start_time | unsigned int | ||
end_time | unsigned 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
Parameter | Range | Type | Description |
---|---|---|---|
mac_address | string | Client 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
Parameter | Range | Type | Description |
---|---|---|---|
enable | int | ANR switch | |
device_flag | string | Client 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
Parameter | Required | Description |
---|---|---|
Action | YES | Request action, including Set. |
Set
Function
This API is used to set parameter for Function > ETR page.
Request Message
Parameter Description
Table 1
Parameter | Range | Type | Description |
---|---|---|---|
EventStreamState | bool | Event 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
Parameter | Required | Description |
---|---|---|
Action | YES | Request 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
Parameter | Range | Type | Description |
---|---|---|---|
chn_no | int | ||
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
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
Parameter | Range | Type | Description |
---|---|---|---|
channel | string | channel number | |
snapshot_resolution | The maximum capture resolution should not exceed 1920 * 1080 | string | Snap resolution |
img_time | int | UTC Time | |
img_encodes | “base64” | string | codec type |
img_format | "image/jpeg" | string | image type |
img_data | string | picture 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | JSON array | Single Channel Information JSON show as follow table 2 |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
channel | string | channel number | |
snapshot_resolution | The maximum capture resolution should not exceed 1920 * 1080 | string | Snap resolution |
reset_session_timeout | bool | Reset 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
Parameter | Range | Type | Description |
---|---|---|---|
reader_id | unsigned int | Optional, when not input, the board checks all alarm information and outputs readerID | |
sequence | unsigned int | Optional, when not input, the board checks all alarm information and outputs readerID | |
lap_number | unsigned int | Optional, when not input, the board checks all alarm information and outputs readerID | |
plus_eventchk | "eventAiPushPic" | string | Must bring, subscription required |
ext_data | Json array | Subscription method needs to be taken, carry the type of client needs to subscribe, see table 1.1 | |
subscribe_id | unsigned int | Current reader index | |
data_pos | unsigned int | Index of current reader read events |
table 1.1
Parameter | Range | Type | Description |
---|---|---|---|
subscribe_type | Json Array | Subscription Type For the type of subscription required by the client, see table 1.2 | |
unsubscribe_type | Json Array | Unsubscribed types Do not include certain types in already subscribed types, see table 1.2 | |
snap_resolution | "640x480" "1280x720" "no_snapshot" | string | Optional event carry picture resolution,no_snapshot: Without chart |
table 1.2
Parameter | Range | Type | Description |
---|---|---|---|
event | "all" "motion" "io" "videoloss" "videohide" "int" "sound_dectet" | Json Array | Ordinary event type |
aipushpic | "all" | Json array | Intelligent 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
Parameter | Range | Type | Description |
---|---|---|---|
reader_id | int | Optional, when the request has no readerID, create a readerID and return it. | |
sequence | int | Current latest sequence position | |
lap_number | unsigned int | The number of laps the current sequence position belongs to | |
subscribe_record_sign | bool | Optional, 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_intelligence | bool | Optional, 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_list | Json array | Single alarm show as table | |
log_collect | Json Object | Optional. When the log collection NVR mode is enabled, you can push log messages table 23 | |
heat_alarm | "HeatAlarm" | string | Optional, when there is no alarm_list, output heartbeat alarm message |
videoloss_status | bool | Dynamically display the video loss logo | |
alarm_snap_data | Json array | For the image data carried by the event (event push is not supported by udp), see table 15 | |
ai_snap_picture | Json object | Intelligent map data, see table 16 | |
ccCount | Json array | Cc count statistics, see table 17 | |
hmlist | json array | Heat map statistics, see table 18 | |
device_name | string | devicename | |
dev_net_info | Json array | Device information, see table 19 | |
system_alarm | Json array | Device alarm see table 3(optional) | |
channel_alarm | Json array | Single channel alarm see table 21(optional) | |
time | string | "MM/DD/YYYYhh:mm:ss" |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
device_name | Max_length:31 | string | Equipment name (optional) |
hdd | json | See Table 4 (optional) |
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
hdd_alarm_type | "Ok","Error" | string | Hard disk alarm type |
hdd_alarm_info | "Full" "Bad" "Unformat" "Readonly" "Warning" "NoDisk" | string | Hard disk error warning information |
Table 5
Parameter | Range | Type | Description |
---|---|---|---|
channel | string | ||
motion_alarm | bool | (optional) | |
record_flag | json | Video logo (optional) See Table 6 | |
camera_connect_status | json | (optional)Table 7 | |
io_alarm | bool | (optional) | |
pir_alarm | bool | (optional) | |
channel_name | string | (optional) | |
Floodlight_AudioAlarm | json | (optional)Table 8 | |
ptz_alarm | json | (optional) Table 9 | |
videoloss | bool | (optional) | |
int_alarm | Json Object | (optional)Table 10 | |
alarm_state | Json array | (optional)Table 10 | |
motion_smart_alarm | Json Object | Table 13 | |
alarm_out_state | Json Array | (NVR/DVR) See Table 14 | |
wireless_ipc_type | int | (wireless dedicated)Wireless IPC power supply type, battery 1, long-term power supply 2 | |
remote_pair_state | Max_length:20 | string | (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_snap | unsigned int | Carry the id corresponding to the picture | |
chn_alias | string | For channel |
Table 6
Parameter | Range | Type | Description |
---|---|---|---|
m | "R""G" | string | Motion Alarm "R":Alarm recording status "G":Alarm without recording state |
i | "R""G" | string | IO Alarm "R":Alarm recording status "G":Alarm without recording state |
p | "R""G" | string | PIR Alarm "R":Alarm recording status "G":Alarm without recording state |
s | "R""G" | string | Intelligent Alarm "R":Alarm recording status "G":Alarm without recording state |
r | "SR""MR" | string | Recording "SR":Alarm recording status,"MR":On-board manual recording status |
h | "R" | string | SDcardAlarm "R":Hard disk alarm |
c | "R""G" | string | VideoTampering "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
Parameter | Range | Type | Description |
---|---|---|---|
floodlight_switch | true false | bool | White light real-time switch,false: close true: open |
flood_light_value | 1 - 100 | int | Brightness of white light |
floodlight_value_range | 1 - 100 | Object | White light brightness range |
audioAlarm_switch | true false | bool | Horn real-time switch false: close true: open |
audioAlarm_value | 1 - 10 | int | Speaker volume |
audioAlarm_value_range | 1 - 10 | Object | Speaker volume range |
Table 9
Parameter | Range | Type | Description |
---|---|---|---|
cur_zoom_value | int | Current position of zoom (temporarily unused) | |
zoom_step | 0 - 2 | int | 0:1 step 1:5 Step 2:20 Step (temporarily unused) |
cur_focus_value | int | Focus Current location (temporarily unused) | |
focus_step | 0 - 2 | int | 0:1 Step 1:5 Step 2:20 Step (temporarily unused) |
auto_focus_state | int | 0:Focus ends,1:Focusing (temporarily unused) | |
shift_range | int | (temporarily unused) | |
ptz_cruise_state | bool | Preset point cruise state | |
ptz_line_scan_state | bool | Line scan cruise state |
Table 10
Parameter | Range | Type | Description |
---|---|---|---|
alarm_val | true|false | bool | |
int_subtype | video_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 Code | Description |
---|---|
readerID_invalid | |
position_invalid |
Table 12
Parameter | Range | Type | Description |
---|---|---|---|
channel | 1 - 127 | int | Intercom channel number |
talkback_close | true|false | bool | Whether to close the intercom |
error_code | "localuser_operating_cannot_talkback" "localuser_close_talkback" | string | Intercom off reason localuser_operating_cannot_talkback:The user is in the setting interface localuser_close_talkback:User turns off intercom |
Table 13
Parameter | Range | Type | Description |
---|---|---|---|
MDtime | string | "MM/DD/YYYYhh:mm:ss" | |
MDState | string array |
Table 14
Parameter | Range | Type | Description |
---|---|---|---|
Local->1 | bool | Local->1 channel alarm switch | |
…… | …… | ||
Local->x | bool | Local->x channel alarm switch | |
IP_CH1->1 | bool | IP_CH1->1 channel alarm switch | |
…… | …… | ||
IP_CHx->x | bool | IP_CHx->x channel alarm switch |
Table 15
Parameter | Range | Type | Description |
---|---|---|---|
chnnel | string | devicename | |
chn_alias | string | eventpush carry | |
img_id | int | The id that the picture carries | |
img_encode | string | Picture coding format | |
img_format | string | picture format | |
img_data | string | Picture data |
Table 16
Parameter | Range | Type | Description |
---|---|---|---|
Chn | int | devicename | |
strChn | string | devicename | |
Chn_alias | string | carry | |
StartTime | unsigned int | Picture coding format | |
EndTime | unsigned int | Picture end time | |
SnapId | int | Picture id | |
Type | int | Image type | |
ImageAllInfo | base64 | 智能推图除图片外的全部信息 | |
ObjectImage | base64 | Alarm graph | |
backGround | base64 | background-image |
Table 17
Parameter | Range | Type | Description |
---|---|---|---|
channel | string | devicename | |
chn_alais | string | eventpush carry | |
cc_type | int | type | |
cc_objNum | int | cc alarm count | |
cc_version | int | version | |
ccin_num | int | cc entry quantity | |
ccout_num | int | cc outgoing quantity | |
cc_in_sum_num | int | cc enters total number | |
cc_out_sun_num | int | cc out total quantity |
Table 18
Parameter | Range | Type | Description |
---|---|---|---|
channel | string | devicename | |
chn_alais | string | eventpush carry | |
hm_type | int | type | |
map_num | int | number of alarm | |
hm_version | int | version number | |
hm_width | int | Thermogram width | |
hm_height | int | Heat map height | |
map_lens | int | length | |
hm_datatype | int | type of data | |
hm_objNum | int | Thermogram quantity | |
hm_img | string | Heat map image data |
Table 19
Parameter | Range | Type | Description |
---|---|---|---|
phy | string | the Ethernet card | |
ip | string | IP address | |
mac | string | mac address | |
ChnnelName | string | The 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
Parameter | Range | Type | Description |
---|---|---|---|
EventType | "VideoMotion" "VideoBlind" "SoundDetect" "SOD" "LCD " "PID " "PD_VD" "FD" "CC" "AD" "CD" "QD" "LPD" "RSD" | string | IPC alarm type |
EventTime | string | Alarm trigger time | |
EventAction | "start" "stop" | string | Alarm status of IPC |
MACAddress | string | MAC address of IPC ,like D094662C1A8D |
Table 21
Parameter | Range | Type | Description |
---|---|---|---|
channel | string | devicename | |
motion_report | json object | For the motion alarm parameters, see table 22 |
Table 22
Parameter | Range | Type | Description |
---|---|---|---|
alarm_state | bool | Report the motion alarm status to the remote. (Optional) true: start false: end | |
alarm_type | smd | string | Alarm type |
Table 23
Parameter | Range | Type | Description |
---|---|---|---|
dir_name | string | Name of the log storage directory | |
file_name | string | Log 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
Get
Function
This API is used to get parameter for Event > Http listening page.
Request Message
Parameter Description
Table 1
Parameter | Range | Type | Description |
---|---|---|---|
params | Json Object | Single Channel Information JSON show as followTable 2 |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
name | 0,127 | string | channel number |
table | Json Object | Single Channel Information JSON show as followTable 3 |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
username | string | Username, or empty if none | |
password | string | Password | |
addr | string | server address | |
port | 1-65535 | int | server port |
url | 0-128 | string | Server api interface, if not empty |
enable | true, false | bool | Alarm push function switch |
method | GET POST | String | HTTP push type |
keep_alive_interval | OFF 1min 5min 10min | String | keepalive interval |
push_way | HTTP UDP | string | push method |
udp_method | Unicast Multicast Broadcast | string | UDP push type |
udp_addr | string | UDP server address | |
udp_port | 1-65535 | int | UDP server port |
Sample:
POST /API/AlarmConfig/EventPush/Get HTTP/1.1
{
"version": "1.0",
"data": {}
}
Response Message
Parameter Description
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
EventType | VideoMotion VideoBlind SoundDetect SOD LCD PID PD_VD FD CC AD CD QD LPD RSD | string | IPC alarm type |
EventTime | string | Alarm trigger time | |
EventAction | Start stop | string | Alarm status of IPC |
ChannelName | string | channel name | |
DeviceName | string | IPC device name | |
IPAddress | string | IP address of the IPC | |
MACAddress | string | IPC MAC address | |
PicData | Json Object | The push data when the smart alarm is sent, as shown in the Table 5 below |
Table 5
Parameter | Range | Type | Description |
---|---|---|---|
SnapedObjInfo | t | Json Object | Push data when Pd&vd, PID, LCD intelligent alarm, as shown in the Table 6 below |
PlateInfo | Json Object | Push data when LPD intelligent alarm, as shown in the table Table 7 below | |
FaceInfo | Json Object | The push data when FD intelligent alarm is shown in the Table 8 below |
Table 6
Parameter | Range | Type | Description |
---|---|---|---|
Chn | 0 | int | IPC only uses channel 0 |
StrChn | "CH1" | string | channel name |
StartTime | long long | start time, picture with | |
EndTime | long long | end time, picture with | |
SnapId | int | image id | |
Type | int | type ACPT_Face = 0, ACPT_HumanBody = 1, ACPT_Vehicle = 2, ACPT_PIDHumanBody = 3, ACPT_PIDVehicle = 4, ACPT_LCDHumanBody = 5, ACPT_LCDVehicle = 6, | |
ObjectImage | string | Base64 encoded image data | |
Background | string | Base64 encoded background image data |
Table 7
Parameter | Range | Type | Description |
---|---|---|---|
Id | 1-15characters | string | License plate number, unique identification. |
GrpId | int | group ID | |
SnapId | unsigned int | The Id of the picture when the front-end IPC captures | |
Type | 0 | int | Types of face capture objects |
StrChn | string | channel | |
StartTime | unsigned long long | Snapshot start time, such as: 2018-10-25 13:08:36, Unix timestamp (displayed according to UTC time zone uniformly) | |
EndTime | unsigned long long | The capture end time, such as: 2018-10-25 13:08:46, Unix timestamp (when displayed, it will be displayed uniformly in UTC time zone) | |
BgImgWidth | unsigned int | Capture the width of the picture | |
BgImgHeight | unsigned int | Capture the height of the picture | |
Chn | int | channel | |
PlateColor | 0-5 | int | License 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 }; |
CarBrand | string | car brand | |
CarType | string | car model | |
Sex | int | Owner gender: 0-male, 1-female | |
Owner | "Mike" | string | owner name |
IdCode | "415025199203050916" | string | identification number |
Job | "Software" | string | Profession |
Phone | "12345678902" | string | telephone number |
Domicile | "Guangdong,Zhuhai,Xiangzhou ..." | string | Living |
Remark | "Detail of this person ..." | string | Remark |
ImageAllInfo | string | License plate picture information | |
PlateImg | "base64(imgData)" | string | license plate image |
BgImg | "base64(imgData)" | string | Background picture |
Table 8
Parameter | Range | Type | Description |
---|---|---|---|
Id | int | Face Id, unique identification (nvr only) | |
GrpId | int | Group Id (nvr only) | |
SnapId | unsigned int | The Id of the picture when the front-end IPC captures | |
MD5 | string | MD5 value of the face image | |
Type | 0 | int | Types of face capture objects |
StartTime | unsigned long long | Snapshot start time, such as: 2018-10-25 13:08:36, Unix timestamp (displayed according to UTC time zone uniformly) | |
EndTime | unsigned long long | The capture end time, such as: 2018-10-25 13:08:46, Unix timestamp (when displayed, it will be displayed uniformly in UTC time zone) | |
BgImgWidth | unsigned int | Capture the width of the picture | |
BgImgHeight | unsigned int | Capture the height of the picture | |
Score | int | Image Score (Confidence) | |
Sex | int | Gender: 0-male, 1-female | |
Age | int | age | |
Gender | int | Face attribute gender: 0-male, 1-female | |
Beauty | int | face score | |
fAttrAge | int | face attribute age | |
GlassesType | int | Glasses type, 0: no glasses, 1: wear glasses (currently there is no distinction between sunglasses and ordinary glasses, all glasses are defaulted) | |
Expression | int | Expression type, 0: no expression, 1: smiling, 2: laughing | |
MouthMask | int | Whether to wear a mask, 0: no mask, 1: with a mask | |
Race | int | Race, 0: Yellow, 1: Caucasian, 2: Black, 3: Arab | |
Chn | int | channel | |
StrChn | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” The number of channels depends on the capabilities of the device. | string | channel |
Similarity | float | similarity | |
ModifyCnt | int | The 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) | |
ImageAllInfo | string | picture information | |
Image1 | "base64(imgData)" | string | Imported ID photo |
Image2 | "base64(imgData)" | string | Capture face pictures |
Image3 | "base64(imgData)" | string | A snapshot of the human body |
Image4 | "base64(imgData)" | string | Capture background image |
Name | "Mike" | string | Name (for nvr only) |
Country | "China" | string | Nationality (nvr only) |
Nation | "Han" | string | Ethnic (nvr only) |
NativePlace | "Guangdong,Zhuhai" | string | Hometown (nvr only) |
IdCode | "415025199203050916" | string | ID card (nvr only) |
Job | "Software" | string | work (nvr only) |
Phone | "12345678902" | string | Phone (nvr only) |
"abcd@163.com" | string | Mail (for nvr only) | |
Domicile | "Guangdong,Zhuhai,Xiangzhou ..." | string | Current residence (nvr only) |
Remark | "Detail of this person ..." | string | Evaluation (for nvr only) |
Feature | "base64(imgData)" | string | eigenvalue |
FtVersion | int | Feature 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
Parameter | Range | Type | Description |
---|---|---|---|
method | "GET","POST" | string | method of HTTP |
params | object | Single Channel Information JSON show as followTable 2 | |
limit_character | "?","&"," " | string | limit character |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
name | 0,127 | string | channel number |
table | object | Single Channel Information JSON show as followTable 3 |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
push_way | HTTP,UDP | string | Push way |
username | 0,63 | string | username |
password | 0,63 | string | password. |
password_empty | 0/1 | bool | password empty |
addr | 0,31 | string | server address |
addr_demo | "192.168.1.168 or example.com | string | server address demo |
port | 0,65535 | int32 | server port |
url | 0,63 | string | Server api interface |
enable | 0/1 | bool | Alarm push function switch |
alarm_precise | 0/1 | bool | alarm precise |
method | "GET","POST" | string | Mode of pushing alarms |
keep_alive_interval | 0,1,5,10 | string | Keepalive interval |
udp_method | "Unicast","Multicast","Broadcast" | string | UDP Push type |
udp_addr | 0,32 | string | UDP Server Address |
udp_port | 1,65535 | int32 | UDP 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
Parameter | Required | Description |
---|---|---|
Action | YES | Request 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
Parameter | Required | Description |
---|---|---|
Action | YES | Request action, including KeepLive. |
KeepLive
Function
This API is used to get parameter for Event > Http listening Push related description page.
Request Message
Parameter | Range | Type | Description |
---|---|---|---|
time | string | The 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
Parameter | Required | Description |
---|---|---|
Action | YES | Request action, including POST. |
POST
Function
This API is used to push Event > Http listening Push related description alarm event requests.
Request Message
Table 1
Parameter | Range | Type | Description |
---|---|---|---|
EventType | VideoMotion VideoBlind SoundDetect SOD LCD PID PD_VD FD CC AD CD QD LPD RSD | string | IPC alarm type |
EventTime | string | Alarm trigger time | |
EventAction | Start stop | string | Alarm status of IPC |
ChannelName | string | channel name | |
DeviceName | string | IPC device name | |
IPAddress | string | IP address of the IPC | |
MACAddress | string | IPC MAC address | |
PicData | Json Object | The push data when the smart alarm is sent, as shown in the Table 2 below |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
SnapedObjInfo | t | Json Object | Push data when Pd&vd, PID, LCD intelligent alarm, as shown in the Table 3 below |
PlateInfo | Json Object | Push data when LPD intelligent alarm, as shown in the table Table 4 below | |
FaceInfo | Json Object | The push data when FD intelligent alarm is shown in the Table 5 below |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
Chn | 0 | int | IPC only uses channel 0 |
StrChn | "CH1" | string | channel name |
StartTime | long long | start time, picture with | |
EndTime | long long | end time, picture with | |
SnapId | int | image id | |
Type | int | type ACPT_Face = 0, ACPT_HumanBody = 1, ACPT_Vehicle = 2, ACPT_PIDHumanBody = 3, ACPT_PIDVehicle = 4, ACPT_LCDHumanBody = 5, ACPT_LCDVehicle = 6, | |
ObjectImage | string | Base64 encoded image data | |
Background | string | Base64 encoded background image data |
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
Id | 1-15characters | string | License plate number, unique identification. |
GrpId | int | group ID | |
SnapId | unsigned int | The Id of the picture when the front-end IPC captures | |
Type | 0 | int | Types of face capture objects |
StrChn | string | channel | |
StartTime | unsigned long long | Snapshot start time, such as: 2018-10-25 13:08:36, Unix timestamp (displayed according to UTC time zone uniformly) | |
EndTime | unsigned long long | The capture end time, such as: 2018-10-25 13:08:46, Unix timestamp (when displayed, it will be displayed uniformly in UTC time zone) | |
BgImgWidth | unsigned int | Capture the width of the picture | |
BgImgHeight | unsigned int | Capture the height of the picture | |
Chn | int | channel | |
PlateColor | 0-5 | int | License 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 }; |
CarBrand | string | car brand | |
CarType | string | car model | |
Sex | int | Owner gender: 0-male, 1-female | |
Owner | "Mike" | string | owner name |
IdCode | "415025199203050916" | string | identification number |
Job | "Software" | string | Profession |
Phone | "12345678902" | string | telephone number |
Domicile | "Guangdong,Zhuhai,Xiangzhou ..." | string | Living |
Remark | "Detail of this person ..." | string | Remark |
ImageAllInfo | string | License plate picture information | |
PlateImg | "base64(imgData)" | string | license plate image |
BgImg | "base64(imgData)" | string | Background picture |
Table 5
Parameter | Range | Type | Description |
---|---|---|---|
Id | int | Face Id, unique identification (nvr only) | |
GrpId | int | Group Id (nvr only) | |
SnapId | unsigned int | The Id of the picture when the front-end IPC captures | |
MD5 | string | MD5 value of the face image | |
Type | 0 | int | Types of face capture objects |
StartTime | unsigned long long | Snapshot start time, such as: 2018-10-25 13:08:36, Unix timestamp (displayed according to UTC time zone uniformly) | |
EndTime | unsigned long long | The capture end time, such as: 2018-10-25 13:08:46, Unix timestamp (when displayed, it will be displayed uniformly in UTC time zone) | |
BgImgWidth | unsigned int | Capture the width of the picture | |
BgImgHeight | unsigned int | Capture the height of the picture | |
Score | int | Image Score (Confidence) | |
Sex | int | Gender: 0-male, 1-female | |
Age | int | age | |
Gender | int | Face attribute gender: 0-male, 1-female | |
Beauty | int | face score | |
fAttrAge | int | face attribute age | |
GlassesType | int | Glasses type, 0: no glasses, 1: wear glasses (currently there is no distinction between sunglasses and ordinary glasses, all glasses are defaulted) | |
Expression | int | Expression type, 0: no expression, 1: smiling, 2: laughing | |
MouthMask | int | Whether to wear a mask, 0: no mask, 1: with a mask | |
Race | int | Race, 0: Yellow, 1: Caucasian, 2: Black, 3: Arab | |
Chn | int | channel | |
StrChn | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” The number of channels depends on the capabilities of the device. | string | channel |
Similarity | float | 相似度 | |
ModifyCnt | int | The 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) | |
ImageAllInfo | string | picture information | |
Image1 | "base64(imgData)" | string | Imported ID photo |
Image2 | "base64(imgData)" | string | Capture face pictures |
Image3 | "base64(imgData)" | string | A snapshot of the human body |
Image4 | "base64(imgData)" | string | Capture background image |
Name | "Mike" | string | Name (for nvr only) |
Country | "China" | string | Nationality (nvr only) |
Nation | "Han" | string | Ethnic (nvr only) |
NativePlace | "Guangdong,Zhuhai" | string | Hometown (nvr only) |
IdCode | "415025199203050916" | string | ID card (nvr only) |
Job | "Software" | string | work (nvr only) |
Phone | "12345678902" | string | Phone (nvr only) |
"abcd@163.com" | string | Mail (for nvr only) | |
Domicile | "Guangdong,Zhuhai,Xiangzhou ..." | string | Current residence (nvr only) |
Remark | "Detail of this person ..." | string | Evaluation (for nvr only) |
Feature | "base64(imgData)" | string | eigenvalue |
FtVersion | int | Feature 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
Module | API Interface | Interface Description | Remarks |
---|---|---|---|
record | StreamConfig/MainStream/Range(Get) | Main stream page parameter acquisition | |
record | StreamConfig/SubStream/Range(Get) | sub stream page parameter acquisition | |
record | StreamConfig/MobileStream/Range(Get) | Mobiles stream page parameter acquisition | |
record | StreamConfig/EventStream/Range(Get) | Event stream page parameter acquisition | |
record | DeviceConfig/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
Parameter | Range | Type | Description |
---|---|---|---|
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 array | Currently supported API for subscription |
device_main_menu | "localSetting" "remoteSetting" "playback" "preview" | string array | Control the ability set displayed on the upper right side of the preview |
encode_type_ability | "H.264" "H.265" "H.264+" "H.265+" | string array | Supported encoding types |
concentrate_linkage_schedule_ability | "FloodLight" | string array | Centralized linkage scheduling capability |
ptz_ability | Json Object | Parameters can be found in Table 3 | |
support_ai_pidlcd | Json Object | Does it support the perimeter and trip lines of AI | |
support_face_config | bool | Face search in the playback interface Playback - AI - Face Detection | |
support_repeat_visitor | bool | Does it support the function of returning customers | |
support_face_attendance | bool | Whether to support the face attendance function | |
support_human_vehicle_search | bool | Whether the pedestrian and vehicle search function is supported | |
support_PidLcd_search | bool | Whether the Pid Lcd search function is supported | |
support_heat_map | bool | Whether the heat map function is supported | |
support_license_plate | bool | Whether the license plate recognition function is supported | |
support_lpd_enhance | bool | Whether the enhanced license plate detection function is supported | |
support_Intrusion_search | bool | Whether the intrusion detection function is supported | |
support_RegionEntrance_search | bool | Whether to support the area entry search function | |
support_RegionExiting_search | bool | Whether 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 array | After the new version, this field value is used for sidebar push chart, playback intelligent search, database statistics interface type display judgment |
support_occlusion_detection | bool | Whether the occlusion detection function is supported | |
device_preview_ability | "face" "manual_alarm" | string array | Control the capability set displayed on the preview side |
dev_play_backcap | int | 0: old playback mode, 1: fast forward fast rewind only I-frame mode, 2: fast forward fast rewind I-frame mode | |
dev_type | unsigned long long | Device type | |
device_type | maxlength:32byte | string | Equipment model |
sound | bool | Preview whether the page displays the horn switch | |
live_sound_disable | Json Object | Whether to make preview sound parameters see Table 4 | |
check_ftp_upgrade | bool | Check whether the FTP upgrade is required | |
support_screen_shots | bool | Whether to support screenshots | |
channel_num | int | Number of channels | |
stream_profile | Json Object | Support for several stream switching parameters see Table 5 | |
default_stream | “Mainstream” “Substream” | string | IE Default stream type |
support_ftp_upgrade | bool | Whether to support ftp upgrade | |
support_http_upgrade | bool | Whether to support http upgrade | |
support_get_upgradeUrlpw | bool | Whether to obtain the ftp upgrade URL password | |
backup_video_encryption_pwd | 6-32 | bool | Backup video encryption |
support_backup_video_encryption | bool | Whether video backup is supported | |
push_type | "TutkPush" "VVPush" “RSPush”"Baidu" | string | Push type |
pushinfo_type | “Motion”“Io” “Videoloss””Pir” | string array | |
local_alarmin_num | int | Board end alarm input | |
local_alarmout_num | int | Board end alarm output | |
support_ie_down_snap | bool | Whether to support Internet Explorer download board capture | |
preview_num | int | Number of previewing channels for the main stream | |
mac_addr | string | mac address | |
p2p_id | bool | P2P ID | |
manufacturer | maxlength:35byte | string | Device type |
support_smart | bool | Support intelligence | |
support_smart_record | bool | Whether intelligent video recording is supported | |
support_substream_playback | bool | Whether substream playback is supported | |
support_pir_record | bool | Whether to support pir recording | |
support_flood_light | bool | Whether white light is supported | |
support_record_tag | bool | Whether video labels are supported | |
support_aac | bool | Whether AAC audio format is supported | |
support_hls_server | bool | Whether single-channel HLS streams are supported | |
support_voice_prompts | bool | Whether voice prompt is supported | |
support_speaker | bool | Whether to support intercom | |
talkback | “TalkHalf”,“TalkFull” | string | Intercom working mode |
support_audio_volume | bool | Whether to support volume adjustment | |
support_sound_record | bool | sound alarm Display flag bits: 0 hidden and 1 displayed | |
support_manual_record | bool | Whether to support manual video search | |
support_video_cover_record | bool | Whether to display the video occlusion alarm video | |
support_more_chn_playback | bool | Whether multiple playback is supported on the Internet Explorer playback page | |
support_ai_notification_subscribe | bool | Whether to support ai notification subscription | |
ishide_notification_intervalnew_8.2.4 | bool | Whether to hide the push interval switch | |
support_playback_new_rec_detail | bool | Support NewRecordDetailRsp (New_GetRecFileList) search | |
support_playback_new_rec_file_download | bool | Support NewRecordDetailRsp (New_GetRecFileList) video download, lock query and lock settings for video files | |
support_io_record | bool | Whether to support the total number of IO alarms on the front and rear end to determine whether the program with IO alarms | |
support_ANR | bool | ||
enable_encryption | bool | Private protocol encryption | |
media_port | int | Media port | |
media_external_port | int | Media external interface | |
upgrade_file_max_size | 0-512 | int | Maximum size of the upgrade file on the board, in MB |
upgrade_head_trans_size | 0-3 | int | The value is the length of the update header information on the board. The unit is k |
support_eventchk_snap | bool | Whether to support event capture | |
local_ip | string | ||
stream_linkage | "normal""none""custom2" | string | Code parameter Indicates the rate linkage rule. If none is passed, bitrate_default is not required. custom2-- URMET Customer |
FR_model_version | 0- 2147483647 | int | |
FD_model_version | 0- 2147483647 | int | |
support_param_import_export | bool | Whether parameter import is supported | |
support_sound_detection | bool | Whether sound detection is supported | |
support_ROI | bool | ||
support_record_type_ex | bool | Replay the video and add | |
support_disarming_onlyset | bool | Whether the disarming function is supported, but it can only be set to IPC by a third party and cannot be gotten | |
support_recorder_smd | bool | ||
support_logcollection | bool | ||
certificate_remain_time | 0-16 | int | Certificate retention time |
is_need_ftpurl | bool | Determine whether the NVR requires a url with a plaintext password | |
support_camera_day_night_param | bool | The NVR supports two sets of IPC day and night parameters | |
support_box485 | bool | 485 The nvr does not support the analog mode | |
support_shortlive_acctoken | bool | Whether short tokens are supported |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
ptz_version | "1.0" "2.0" "3.0" | string | Ptz version |
iris_minus_add | bool | ||
quick_use | "Ptz_QuickUse_3DPosition" "Ptz_QuickUse_AutoFocus" "Ptz_QuickUse_PtzReset" "Ptz_QuickUse_LensReset" "Ptz_QuickUse_WatchMode" "Ptz_QuickUse_ManualHumanTrace" | string array |
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
Mainstream | bool | ||
Substream | bool | ||
Mobilestream | bool |
Table 5
Parameter | Range | Type | Description |
---|---|---|---|
"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
Parameter | Range | Type | Description |
---|---|---|---|
subscribe_api | string array | Request 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
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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | JSON object | Channel Information JSON show as follow Table 2 | |
channel_max | int | Maximum number of channels |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | JSON show as follow Table 3 | |
… | Json Object | ||
IP_CH1 | Json Object | ||
… | Json Object | ||
WIFI_CH1 | Json Object | ||
… | Json Object |
Table 3
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_type | "Close" "NO Mask" "Wear Mask" | string | Alarm type, 0-off, 1-not wearing a mask, 2-wearing a mask |
record_enable | true, false | bool | Record channel switch |
send_email | true, false | bool | switch to send Email |
ftp_picture_upload | true, false | bool | ftp picture upload switch |
picture_to_cloud | true, false | bool | picture to cloud switch |
http_listening | true, false | bool | http listening switch |
schedule | "schedule_type", "week" | array | schedule |
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
Parameter | Range | Type | Description |
---|---|---|---|
channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” The number of channels depends on the capabilities of the device. | String array | Each 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | JSON object | Channel Information JSON show as follow Table 3 | |
channel_max | int | Maximum number of channels |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | JSON show as follow Table 4 | |
… | Json Object | ||
IP_CH1 | Json Object | ||
… | Json Object | ||
WIFI_CH1 | Json 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_type | "Close" "NO Mask" "Wear Mask" | string | Alarm type, 0-off, 1-not wearing a mask, 2-wearing a mask |
record_enable | true, false | bool | Record channel switch |
send_email | true, false | bool | switch to send Email |
ftp_picture_upload | true, false | bool | ftp picture upload switch |
picture_to_cloud | true, false | bool | picture to cloud switch |
http_listening | true, false | bool | http listening switch |
schedule | "schedule_type", "week" | array | schedule |
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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | JSON object | Channel Information JSON show as follow Table 2 | |
channel_max | int | Maximum number of channels |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | JSON show as follow Table 3 | |
… | Json Object | ||
IP_CH1 | Json Object | ||
… | Json Object | ||
WIFI_CH1 | Json Object | ||
… | Json Object |
Table 3
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_type | "Close" "NO Mask" "Wear Mask" | string | Alarm type, 0-off, 1-not wearing a mask, 2-wearing a mask |
record_enable | true, false | bool | Record channel switch |
send_email | true, false | bool | switch to send Email |
ftp_picture_upload | true, false | bool | ftp picture upload switch |
picture_to_cloud | true, false | bool | picture to cloud switch |
http_listening | true, false | bool | http listening switch |
schedule | "schedule_type", "week" | array | schedule |
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
Get
Function
This API is used to get AI > Cross Counting Scenario > Config configuration parameters.
Request Message
Parameter Description
Parameter | Range | Type | Description |
---|---|---|---|
channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” The number of channels depends on the capabilities of the device. | string array | Each 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
Parameter | Range | Type | Description |
---|---|---|---|
adSwitch | bool | Advertising mode control switch | |
ad_displayMode | bool | Keep aspect ratio switch | |
ad_seqTime | int | Ad image polling time | |
channel_info | JSON object | Channel Information JSON show as follow Table 3 | |
group_info | JSON object | Group Information JSON show as follow Table 4 |
Parameter | Range | Type | Description |
---|---|---|---|
channel_switch | bool | Control whether to open the CC scene application function | |
channel_group | int | The group number to which the channel belongs, and -1 if not in the group | |
channel_capacity | int | Capacity | |
chn_set_enable | bool | Whether the channel can be set or not is associated with the second-generation CC function | |
chn_buzzer | "0","10","20","40","60" | string | Buzzer 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. | array | Alarm 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" | string | Alarm output delay time |
Parameter | Range | Type | Description |
---|---|---|---|
group_switch | bool | Control whether to open the CC scene application function | |
group_capacity | int | Capacity | |
start_time | 8 | string | Starting time |
end_time | 8 | string | End Time |
alarm_type | "Unuse","Person","Vehicle" | string | alarm type: 1:Person,2:Vehicle |
grp_buzzer | "0","10","20","40","60" | string | Buzzer 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. | array | Alarm 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" | string | Alarm 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
Parameter | Range | Type | Description |
---|---|---|---|
adSwitch | bool | Advertising mode control switch | |
ad_displayMode | bool | Keep aspect ratio switch | |
ad_seqTime | int | Ad image polling time | |
channel_info | JSON object | Channel Information JSON show as follow Table 2 | |
group_info | JSON object | Group Information JSON show as follow Table 3 |
Parameter | Range | Type | Description |
---|---|---|---|
channel_switch | bool | Control whether to open the CC scene application function | |
channel_group | int | The group number to which the channel belongs, and -1 if not in the group | |
channel_capacity | int | Capacity | |
chn_set_enable | bool | Whether the channel can be set or not is associated with the second-generation CC function | |
chn_buzzer | "0","10","20","40","60" | string | Buzzer 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. | array | Alarm 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" | string | Alarm output delay time |
Parameter | Range | Type | Description |
---|---|---|---|
group_switch | bool | Control whether to open the CC scene application function | |
group_capacity | int | Capacity | |
start_time | 8 | string | Starting time |
end_time | 8 | string | End Time |
alarm_type | "Unuse","Person","Vehicle" | string | alarm type: 1:Person,2:Vehicle |
grp_buzzer | "0","10","20","40","60" | string | Buzzer 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. | array | Alarm 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" | string | Alarm 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
Parameter | Required | Description |
---|---|---|
Action | YES | Request action, including Set. |
Set
Function
This API is used to set AI > Cross Counting Scenario > Image Manage configuration parameters.
Request Message
Parameter Description
Parameter | Range | Type | Description |
---|---|---|---|
operate | "GetImageList","GetImageData", "AddImage","DeleteImage" | string | Operation type: Get picture list Get pictures (only one can be obtained at a time) Add pictures Delete pictures |
image_name | string | The name of the picture that needs to be added/obtained | |
image_data | "base64(imgData)" 2 * 1024 *1024 | string | The picture to be added supports JPG, PNG, BMP |
image_list | array | Delete 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
Parameter | Range | Type | Description |
---|---|---|---|
max_count | int | The maximum number of images supported | |
image_name | string | The name of the picture, which will be returned after the picture is successfully obtained | |
image_data | "base64(imgData)" | string | Get image data |
image_list | array | Get 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
Get
Function
This API is used to get AI > Cross Counting Scenario > Map configuration parameters.
Request Message
Parameter Description
Parameter | Range | Type | Description |
---|---|---|---|
GroupId | int | Need 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
Parameter | Range | Type | Description |
---|---|---|---|
GroupId | int | group ID | |
RefWidth | 0~1920 | int | coordinate reference width |
RefHeight | 0~1080 | int | coordinate reference height |
CamPos | Object array | camera position JSON show as follow Table 3 | |
MapImage | "base64(imgData)" 0~5 * 1024 * 1024 | string | Map image, only supports png/jpg/bmp format |
Parameter | Range | Type | Description |
---|---|---|---|
ChnId | int | channel number | |
XPos | int | The X-axis coordinate located in the map | |
YPos | int | The 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
Parameter | Range | Type | Description |
---|---|---|---|
GroupId | int | group ID | |
RefWidth | 0~1920 | int | coordinate reference width |
RefHeight | 0~1080 | int | coordinate reference height |
CamPos | Object array | camera position JSON show as follow Table 2 | |
MapImage | "base64(imgData)" 0~5 * 1024 * 1024 | string | Map image, only supports png/jpg/bmp format |
Parameter | Range | Type | Description |
---|---|---|---|
ChnId | int | channel number | |
XPos | int | The X-axis coordinate located in the map | |
YPos | int | The 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
Get
Function
This API is used to get AI > Cross Counting Scenario > RealTime Info configuration parameters.
Request Message
Parameter Description
Parameter | Range | Type | Description |
---|---|---|---|
msgType | "get_CCScenario_RTData" "clear_CCScenario_RTData" | string | Get, clear CC RealTimeInfo |
clear_type | "Channel","Group","All Channels","All Groups" | string | Clearing Types for CC RealTimeInfo |
chnId | int | When clear_type selects Channel, the channel number needs to be passed | |
groupId | int | When 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
Parameter | Range | Type | Description |
---|---|---|---|
CCScenarioRTInfo | “Channels”,“Groups” | Object array | Cross Counting RealTime Information JSON show as follow Table 3 |
Parameter | Range | Type | Description |
---|---|---|---|
Channels | Object array | JSON show as follow Table 4 | |
Groups | Object array | JSON show as follow Table 5 |
Parameter | Range | Type | Description |
---|---|---|---|
ChnId | int | channel number | |
EnterCnt | int | Number of people entering | |
ExitCnt | int | number of people leaving | |
StayCnt | int | number of people staying | |
AvailableCnt | int | current capacity | |
ObjType | int | How to trigger counting: 0:Motion 1:Person 2:Vehicle |
Parameter | Range | Type | Description |
---|---|---|---|
GroupId | int | group ID | |
EnterCnt | int | Number of people entering | |
ExitCnt | int | number of people leaving | |
StayCnt | int | number of people staying | |
AvailableCnt | int | current capacity | |
ObjType | int | How to trigger counting: 0:Motion 1:Person 2:Vehicle | |
ChnDetail | Object array | Real-time data of channels in the group JSON show as follow Table 6 |
Parameter | Range | Type | Description |
---|---|---|---|
ChnId | int | channel number | |
EnterCnt | int | Number of people entering | |
ExitCnt | int | number 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
Parameter | Range | Type | Description |
---|---|---|---|
msgType | "get_CCScenario_RTData" "clear_CCScenario_RTData" | string | Get, clear CC RealTimeInfo |
clear_type | "Channel","Group","All Channels","All Groups" | string | Clearing Types for CC RealTimeInfo |
chnId | int | When clear_type selects Channel, the channel number needs to be passed | |
groupId | int | When 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
Parameter | Range | Type | Description |
---|---|---|---|
CCScenarioRTInfo | “Channels”,“Groups” | Object array | Cross Counting RealTime Information JSON show as follow Table 3 |
Parameter | Range | Type | Description |
---|---|---|---|
Channels | Object array | JSON show as follow Table 4 | |
Groups | Object array | JSON show as follow Table 5 |
Parameter | Range | Type | Description |
---|---|---|---|
ChnId | int | channel number | |
EnterCnt | int | number of people entering | |
ExitCnt | int | number of people leaving | |
StayCnt | int | number of people staying | |
AvailableCnt | int | current capacity | |
ObjType | int | How to trigger counting: 0:Motion 1:Person 2:Vehicle |
Parameter | Range | Type | Description |
---|---|---|---|
GroupId | int | group ID | |
EnterCnt | int | number of people entering | |
ExitCnt | int | number of people leaving | |
StayCnt | int | number of people staying | |
AvailableCnt | int | current capacity | |
ObjType | int | How to trigger counting: 0:Motion 1:Person 2:Vehicle | |
ChnDetail | Object array | Real-time data of channels in the group JSON show as follow Table 6 |
Parameter | Range | Type | Description |
---|---|---|---|
ChnId | int | channel number | |
EnterCnt | int | Number of people entering | |
ExitCnt | int | number 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
Get
Function
This API is used to get AI > Cross Counting Scenario > Statistics configuration parameters.
Request Message
Parameter Description
Parameter | Range | Type | Description |
---|---|---|---|
channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” The number of channels depends on the capabilities of the device. | String array | Each 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
Parameter | Range | Type | Description |
---|---|---|---|
Channels | Int array | query channel | |
Groups | Int array | queryable group | |
ReportType | "Day","Week","Month","Year" | string | query type |
DetectionType | "Motion","Person","Vehicle" | string | detection type |
Date | 10 | string | current 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
Parameter | Range | Type | Description |
---|---|---|---|
Channels | Int array | Query channel, when querying group, pass empty | |
Groups | Int array | Query group, pass null when querying channel | |
Date | 10 | string | query date |
ReportType | "Day","Week","Month","Year" | string | query type |
ChnObjType | 0~2 | Int array | Detection type: (Only pass empty when querying groups, corresponding to Channels) 0:"Motion", 1:"Person", 2:"Vehicle" |
GrpObjType | 0~2 | Int array | Detection 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
Parameter | Range | Type | Description |
---|---|---|---|
Channels | Object array | channel statistics JSON show as follow Table 3 | |
Groups | Object array | group statistics JSON show as follow Table 4 |
Parameter | Range | Type | Description |
---|---|---|---|
ChnId | int | channel number | |
Num | Object array | Statistical data JSON show as follow Table 5 |
Parameter | Range | Type | Description |
---|---|---|---|
GroupId | int | group ID | |
Num | Object array | Statistical data JSON show as follow Table 5 |
Parameter | Range | Type | Description |
---|---|---|---|
EnterCnt | int | Number of people entering | |
ExitCnt | int | number of people leaving | |
StayCnt | int | number 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
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
Parameter | Range | Type | Description |
---|---|---|---|
fd_atd_info | JSON object | Face Attendance Configuration JSON(show as follow Table Table 2) |
Parameter | Range | Type | Description |
---|---|---|---|
enable | true false | bool | Whether to enable periodic sending of attendance forms |
mode | “Day””Week””Month” | string | Sending mode |
mode_week | “Mon.”“Tue.”“Wed.”“Thu.” “Fri.” “Sat.” “Sun.” | string | Day of the week sending mode |
mode_month_day | “1” “2” “3” “4” “5” … “26” “27” “28” “29” “30” “31” | string | A certain day in monthly sending mode |
send_email | string | Sending time | |
on_duty_time | string | Working hours | |
off_duty_time | string | Off work time | |
working_days | "Mon.", "Tue.", "Wed.", "Thu.", "Fri.", "Sat.", "Sun." | array | Working days, corresponding to Monday ~ Sunday |
channel | "CH1","CH2","CH3"……"CHx" The number of channels depends on the capabilities of the device. | array | Active channel |
group | "1","2","3","4","5","6","7","8", "9","10","11","12","13", "14","15","16" | array | Effective 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
Parameter | Required | Description |
---|---|---|
Action | YES | Add。 |
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
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
Parameter | Range | Type | Description |
---|---|---|---|
MsgId | null | ||
FaceId | int | Need 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, | |
Id | int | The 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 | |
WithImage | 1 | int | Do you need a picture? 1- Yes, 0- No |
WithFeature | 1 | int | Whether 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
Parameter | Range | Type | Description |
---|---|---|---|
MsgId | null | ||
Result | int | See the resultTable x,This field is valid for Get or GetById, but not for Add or Remove | |
Count | int | The total number of faces queried | |
ExtFaceInfo | JSON array | ExtraFaces 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
Parameter | Required | Description |
---|---|---|
Action | YES | Request action, including Search,GetByIndex,GetById,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
Parameter | Range | Type | Description |
---|---|---|---|
MsgId | null | ||
Result | int | See the resultTable x,GetByIndex, GetById This field is valid | |
channel_max | int | Maximum number of channels | |
Count | int | The total number of faces queried, GetByIndex, GetById This field is valid | |
FaceInfo | JSON array | Add 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
Parameter | Range | Type | Description |
---|---|---|---|
MsgId | null | ||
GrpId | [2, 3, 7, 8, 9, 10, 11, 12, 13, 16, 17, 18, 19, 20, 21] | int array | The 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
Parameter | Range | Type | Description |
---|---|---|---|
MsgId | null | ||
Result | 0 | int | Get the results of all face Ids in a given group according to group Id, seeTable 3 |
Count | int | Face Id count in group | |
FaceIds | [1,3,4,5,6,7,9,10,11,12,13,14,15,16,23,25] | int array | Each digit represents the unique identifier of a face in the group, which can be used to obtain all information about the face |
Result Type | COMMENT |
---|---|
AORT_SUCCESS = 0 | Success |
AORT_NO_DB = -1 | No database |
AORT_DB_EXEC_FAILED = -2 | Database execution failed |
AORT_CALC_FEATURE_FAILED = -3 | Feature extraction failed |
AORT_CANCELED = -4 | Cancelled |
AORT_NO_DISK = -5 | No hard drive |
AORT_DISK_ERROR = -6 | Hard disk error |
AORT_EXIST = -7 | Existed |
AORT_GROUP_INVALID = -8 | Group invalid |
AORT_NOT_EXIST = -9 | Does not exist |
AORT_MORE_FILE_EXIST = -10 | File already exists |
AORT_SEARCH_ERROR = -11 | Search error |
AORT_OVER_MAX_COUNT = -12 | Limit exceeded |
AORT_UPDATING_FEATURE = -13 | Updating feature values |
AORT_NO_USABLE_IPC = -14 | No IPC available for eigenvalue calculation |
AORT_INVALID_PARAM = -15 | Invalid parameter |
AORT_INVALID_FORMAT = -16 | Wrong format |
AORT_INVALID_RES = -17 | Wrong resolution |
AORT_INVALID_MEM = -18 | File too large error |
AORT_CREAT_FAILED = -19 | Creation failed |
AORT_MD5_NOT_MATCH = -20 | MD5 mismatch |
AORT_POS_ERROR = -21 | Location error |
AORT_SIZE_ERROR = -22 | Wrong size |
AORT_NOT_READY = -23 | Not ready |
AORT_INVALID_DB = -24 | Invalid 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
GetCount
Function
This API is used to get added license plates count.
Request Message
Parameter Description
Table 1
Parameter | Range | Type | Description |
---|---|---|---|
MsgId | null | ||
PlateInfo | JSON array | Get 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. | |
GrpId | integer array | This field is valid only when GetId |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
MsgId | null | ||
Id | 1-15characters | string | License plate number, optional when searching |
GrpId | int | Group 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 | |
PlateColor | 0-5 | int | License 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 |
CarBrand | string | Car brand, optional when searching | |
CarType | string | Model, optional when searching | |
Sex | int | Gender 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" | string | Owner's name, optional when searching |
IdCode | "415025199203050916" | string | ID number, optional when searching |
Job | "Software" | string | Occupation, optional when searching |
Phone | "12345678902" | string | Phone number, optional when searching |
Domicile | "Guangdong,Zhuhai,Xiangzhou ..." | string | Current residence, optional when searching |
Remark | "Detail of this person ..." | string | Remarks, optional when searching |
EnableChnAlarm | [255, 255, 255, 255] | array | Special 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
Parameter | Value | Description |
---|---|---|
AORT_SUCCESS | 0 | Success |
AORT_NO_DB | -1 | No database |
ORT_DB_EXEC_FAILED | -2 | Database execution failed |
AORT_CALC_FEATURE_FAILED | -3 | Feature extraction failed |
AORT_CANCELED | -4 | Cancelled |
AORT_NO_DISK | -5 | No hard drive |
AORT_DISK_ERROR | -6 | Hard disk error |
AORT_EXIST | -7 | Existed |
AORT_GROUP_INVALID | -8 | Group invalid |
AORT_NOT_EXIST | -9 | Does not exist |
AORT_MORE_FILE_EXIST | -10 | Record already exists |
AORT_SEARCH_ERROR | -11 | Hard disk error |
AORT_OVER_MAX_COUNT | -12 | Limit exceeded |
AORT_UPDATING_FEATURE | -13 | Updating feature values |
AORT_NO_USABLE_IPC | -14 | No IPC available for eigenvalue calculation |
AORT_INVALID_PARAM | -15 | Invalid parameter |
AORT_INVALID_FORMAT | -16 | Wrong format |
AORT_INVALID_RES | -17 | Wrong resolution |
AORT_INVALID_MEM | -18 | File too large error |
AORT_CREAT_FAILED | -19 | Creation failed |
AORT_MD5_NOT_MATCH | -20 | MD5 mismatch |
AORT_POS_ERROR | -21 | Location error |
AORT_SIZE_ERROR | -22 | Wrong size |
AORT_NOT_READY | -23 | Not ready |
AORT_INVALID_DB | -24 | Invalid database |
AORT_GRP_INVALID_OR_INTERNAL | -25 | The group is invalid or the internal preset group is not allowed to be deleted |
AORT_GRP_FACE_OVER_MAX | -26 | The number of faces in the roster group has exceeded the limit |
AORT_NO_PERMISSION | -27 | No permission |
AORT_GRP_PLATE_OVER_MAX | -28 | The 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
Parameter | Required | Description |
---|---|---|
Action | YES | Request action, including Add,GetImagesFeature,Modify,Remove。 |
Add
Function
This API is used to add AI > Recognition > Faces faces.
Request Message
Parameter Description
Table 1
Parameter | Range | Type | Description |
---|---|---|---|
MsgId | null | ||
Count | int | 添加多个人脸信息的计数 | |
FaceInfo | JSON array | Add 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
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|
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
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
Parameter | Range | Type | Description |
---|---|---|---|
MsgId | null | ||
Result | 0,-1,-2,….-23, -24 | int | See Table x for the return result of the request. This field is not required for Modify. |
channel_max | int | Maximum number of channels | |
Count | 1-16 | int | Number of groups, used when get |
Group | int | Face group,Face Group Information JSON See TableTable 5. |
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 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
Parameter | Range | Type | Description |
---|---|---|---|
MsgId | null | ||
Result | 0,-1,-2,….-23, -24 | int | Returns 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
Add
Function
This API is used to add license plate.
Request Message
Parameter Description
Table 1
Parameter | Range | Type | Description |
---|---|---|---|
MsgId | null | ||
PlateInfo | JSON array | Add License Plates JSON show as follow Table Table 2 |
Parameter | Range | Type | Description |
---|---|---|---|
MsgId | null | ||
Id | 1-15characters | string | License plate number, unique identification. |
GrpId | int | Group ID | |
PlateColor | 0-5 | int | License 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 }; |
CarBrand | string | Car brand | |
CarType | string | Car model | |
Sex | int | Owner gender: 0-male, 1-female | |
Owner | "Mike" | string | Owner name |
IdCode | "415025199203050916" | string | Identification number |
Job | "Software" | string | Profession |
Phone | "12345678902" | string | Telephone number |
Domicile | "Guangdong,Zhuhai,Xiangzhou ..." | string | Living |
Remark | "Detail of this person ..." | string | Remark |
EnableChnAlarm | [255, 255, 255, 255] | array | Special 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. |
VoicePromptsChn | 0~255 | int | File index, when there is no audio file, this pass 255 |
VoicePromptsSel | array | Play channel, calculated by bit (bit0 is local, bit1 corresponds to front-end channel 1, bit2 corresponds to channel 2...) | |
VoicePromptsTm | array | Time 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
Parameter | Range | Type | Description |
---|---|---|---|
MsgId | null | ||
Count | int | Number of groups | |
Result | [0, 0,…] | array | Result reference table Table 4 |
Parameter | Value | Description |
---|---|---|
AORT_SUCCESS | 0 | Success |
AORT_NO_DB | -1 | No database |
ORT_DB_EXEC_FAILED | -2 | Database execution failed |
AORT_CALC_FEATURE_FAILED | -3 | Feature extraction failed |
AORT_CANCELED | -4 | Cancelled |
AORT_NO_DISK | -5 | No hard drive |
AORT_DISK_ERROR | -6 | Hard disk error |
AORT_EXIST | -7 | Existed |
AORT_GROUP_INVALID | -8 | Group invalid |
AORT_NOT_EXIST | -9 | Does not exist |
AORT_MORE_FILE_EXIST | -10 | Record already exists |
AORT_SEARCH_ERROR | -11 | Hard disk error |
AORT_OVER_MAX_COUNT | -12 | Limit exceeded |
AORT_UPDATING_FEATURE | -13 | Updating feature values |
AORT_NO_USABLE_IPC | -14 | No IPC available for eigenvalue calculation |
AORT_INVALID_PARAM | -15 | Invalid parameter |
AORT_INVALID_FORMAT | -16 | Wrong format |
AORT_INVALID_RES | -17 | Wrong resolution |
AORT_INVALID_MEM | -18 | File too large error |
AORT_CREAT_FAILED | -19 | Creation failed |
AORT_MD5_NOT_MATCH | -20 | MD5 mismatch |
AORT_POS_ERROR | -21 | Location error |
AORT_SIZE_ERROR | -22 | Wrong size |
AORT_NOT_READY | -23 | Not ready |
AORT_INVALID_DB | -24 | Invalid database |
AORT_GRP_INVALID_OR_INTERNAL | -25 | The group is invalid or the internal preset group is not allowed to be deleted |
AORT_GRP_FACE_OVER_MAX | -26 | The number of faces in the roster group has exceeded the limit |
AORT_NO_PERMISSION | -27 | No permission |
AORT_GRP_PLATE_OVER_MAX | -28 | The 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
Parameter | Range | Type | Description |
---|---|---|---|
MsgId | null | ||
Group | int | The Id of the face group to be moved to, this field is only available for ChangeGroup | |
PlateInfo | JSON array | Add License Plates JSON show as follow Table Table 2 |
Parameter | Range | Type | Description |
---|---|---|---|
MsgId | null | ||
Id | 1-15 characters | string | Number 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
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
Parameter | Range | Type | Description |
---|---|---|---|
MsgId | null | moot | |
DefaultVal | int | Get default alarm parameters or actual alarm parameters, 1- default parameters, 0- actual parameters | |
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 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
Parameter | Range | Type | Description |
---|---|---|---|
MsgId | null | ||
Result | 0,-1,-2,….-23, -24 | int | Request return results seeTable 3,This field is not required when Modify is used |
channel | string array | List of channel names. This field is not required when Modify is used | |
Count | 0-64 | int | Number of plates |
Group | JSON array | License Plate Group Information JSON show as follow Table 4 |
Table 3
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 |
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
Parameter | Range | Type | Description |
---|---|---|---|
MsgId | null | ||
Result | integer array | Return 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
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
Parameter | Range | Type | Description |
---|---|---|---|
auto_select_enable | bool | Whether the model is automatically selected | |
rows | JSON array | The 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
Parameter | Required | Description |
---|---|---|
Action | YES | Request action, including Get。 |
Get
Function
This API is used to get VHD log count.
Request Message
Parameter Description
Parameter | Range | Type | Description |
---|---|---|---|
MsgId | null | ||
StartTime | "2020-07-12 00:00:00" | string | Search start time |
EndTime | "2020-07-12 23:59:59" | string | Search end time |
Chn | 0~MAX_PARA_CHN_NUM | array | The channel to search, the value represents the channel (passing an empty array means searching all channels) |
Type | [0, 1, 2] | array | The 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 |
Engine | 0 | int | Search 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
Parameter | Range | Type | Description |
---|---|---|---|
MsgId | null | ||
Result | int | Search results for captured objects (including people, cars, etc.),see resultsTable 3 | |
Count | [0, 0] | int64 array | The actual number of corresponding types of captured objects |
Result Type | COMMENT |
---|---|
AORT_SUCCESS = 0 | Success |
AORT_NO_DB = -1 | No database |
AORT_DB_EXEC_FAILED = -2 | Database execution failed |
AORT_CALC_FEATURE_FAILED = -3 | Feature extraction failed |
AORT_CANCELED = -4 | Cancelled |
AORT_NO_DISK = -5 | No hard drive |
AORT_DISK_ERROR = -6 | Hard disk error |
AORT_EXIST = -7 | Existed |
AORT_GROUP_INVALID = -8 | Group invalid |
AORT_NOT_EXIST = -9 | Does not exist |
AORT_MORE_FILE_EXIST = -10 | File already exists |
AORT_SEARCH_ERROR = -11 | Search error |
AORT_OVER_MAX_COUNT = -12 | Limit exceeded |
AORT_UPDATING_FEATURE = -13 | Updating feature values |
AORT_NO_USABLE_IPC = -14 | No IPC available for eigenvalue calculation |
AORT_INVALID_PARAM = -15 | Invalid parameter |
AORT_INVALID_FORMAT = -16 | Wrong format |
AORT_INVALID_RES = -17 | Wrong resolution |
AORT_INVALID_MEM = -18 | File too large error |
AORT_CREAT_FAILED = -19 | Creation failed |
AORT_MD5_NOT_MATCH = -20 | MD5 mismatch |
AORT_POS_ERROR = -21 | Location error |
AORT_SIZE_ERROR = -22 | Wrong size |
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,
"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
Parameter | Required | Description |
---|---|---|
Action | YES | Request action, including Search,StopSearch,GetByIndex,GetById。 |
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
Parameter | Range | Type | Description |
---|---|---|---|
MsgId | null | ||
StartTime | string | Search the start time, for example, 2020-07-12 00:00:00. | |
EndTime | string | Search end time, such as "2020-07-12 23:59:59" | |
Chn | 0~MAX_PARA_CHN_NUM | array | |
AlarmGroup | array | The 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. | |
Similarity | 0-100 | int | If 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 |
Engine | 0 | int | Considering 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. |
Count | int | Search for the number of matching images | |
Gender | array | Gender, the value represents the selected gender, 0: male 1: female | |
fAttrAge | [0, 1, 2, 3, 4, 5, 6] | array | Age 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] | array | Appearance level, the value represents the corresponding value. [[0, 9], [10, 29], [30, 69], [70, 89], [90, 100]] |
GlassesType | [0, 1] | array | Type of glasses, 0: no glasses, 1: wear glasses (currently no distinction between sunglasses, ordinary glasses, default to all glasses) |
Expression | [0, 1, 2] | array | Expression type: 0: blank expression, 1: smile, 2: laugh |
MouthMask | [0, 1] | array | The value represents the search type, 0: no mask, 1: wearing a mask |
Race | [0, 1, 2, 3] | array | Race, the value represents the corresponding type, 0: yellow, 1: white, 2: black, 3: Arab |
FaceInfo | JSONarray | search SnapedFaces JSON show as follow Table 2 |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
Id | int | ||
MD5 | "F74C70ADB0B63B00E279E71B4143704D" | string | MD5 value |
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 |
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
Parameter | Range | Type | Description |
---|---|---|---|
MsgId | null | ||
Result | 0 | int | See the resultTable x |
Count | int | The total number of captured faces in this response |
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,
"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
Parameter | Required | Description |
---|---|---|
Action | YES | Request action, including SearchPlate。 |
SearchPlate
Function
This API is used to search and match license plates.
Request Message
Parameter Description
Parameter | Range | Type | Description |
---|---|---|---|
MsgId | null | ||
StartTime | "2020-07-12 00:00:00" | string | Search start time |
EndTime | "2020-07-1223:59:59" | string | Search end time |
Chn | 0~MAX_PARA_CHN_NUM | array | The channel to search, the value represents the channel |
AlarmGroup | [1, 2] | integer array | The license plate group to which the comparison result belongs during real-time capture |
PlatesId | string array | List of license plate numbers | |
MaxErrorCharCnt | 0-5 | int | Error tolerance rate, the maximum number of different strings allowed when searching for a matching string |
SortType | Sort by enum AIResultSortType { ARST_Ascending = 0, // Ascending order ARST_Descending = 1, //Descending order ARST_None = 2, ARST_Max }; | ||
Engine | 0,1 | int | Search 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
Parameter | Range | Type | Description |
---|---|---|---|
MsgId | null | ||
Result | int | license plate search results,SeeTable 3 | |
Count | 0 | int | The actual number of captured objects |
Result Type | COMMENT |
---|---|
AORT_SUCCESS = 0 | Success |
AORT_NO_DB = -1 | No database |
AORT_DB_EXEC_FAILED = -2 | Database execution failed |
AORT_CALC_FEATURE_FAILED = -3 | Feature extraction failed |
AORT_CANCELED = -4 | Cancelled |
AORT_NO_DISK = -5 | No hard drive |
AORT_DISK_ERROR = -6 | Hard disk error |
AORT_EXIST = -7 | Existed |
AORT_GROUP_INVALID = -8 | Group invalid |
AORT_NOT_EXIST = -9 | Does not exist |
AORT_MORE_FILE_EXIST = -10 | File already exists |
AORT_SEARCH_ERROR = -11 | Search error |
AORT_OVER_MAX_COUNT = -12 | Limit exceeded |
AORT_UPDATING_FEATURE = -13 | Updating feature values |
AORT_NO_USABLE_IPC = -14 | No IPC available for eigenvalue calculation |
AORT_INVALID_PARAM = -15 | Invalid parameter |
AORT_INVALID_FORMAT = -16 | Wrong format |
AORT_INVALID_RES = -17 | Wrong resolution |
AORT_INVALID_MEM = -18 | File too large error |
AORT_CREAT_FAILED = -19 | Creation failed |
AORT_MD5_NOT_MATCH = -20 | MD5 mismatch |
AORT_POS_ERROR = -21 | Location error |
AORT_SIZE_ERROR = -22 | Wrong size |
AORT_NOT_READY = -23 | Not ready |
AORT_INVALID_DB = -24 | Invalid 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.
Snaped Objects Search
Function
This API is used for snapshot object search
URI
POST /API/AI/SnapedObjects/{Action}
Table 1 describes the parameters.
Parameter Description
Table 1
Parameter | Required | Description |
---|---|---|
Action | YES | Request action, including Search,StopSearch,GetByIndex,GetById。 |
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
Parameter | Range | Type | Description |
---|---|---|---|
MsgId | null | ||
Engine | 0 | int | Which search engine, 0 or 1, to use with the search interface |
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 requested number of passenger-vehicle information, only GetByIndex has this field | |
SimpleInfo | 1 | int | Get 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] | array | The unique identification of the capture information to be obtained, only GetById has this field |
WithObjectImage | 1 | int | Whether a picture of an object (such as a pedestrian, a car) is required, 1- Yes, 0- No |
WithBackgroud | 0 | int | Do 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
Parameter | Range | Type | Description |
---|---|---|---|
MsgId | null | ||
Result | 0 | int | See the resultAI > Recognition > SnapedObjects > Search > Parameter Description > Table x |
TotalCount | int | The total number of objects searched, only GetByIndex has this field | |
Count | int | The total number of objects in this response | |
SnapedObjInfo | array | SnapedObjects 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
Parameter | Range | Type | Description |
---|---|---|---|
MsgId | null | ||
StartTime | "2020-07-12 00:00:00" | string | Search start time |
EndTime | "2020-07-1223:59:59" | string | Search end time |
Chn | 0~MAX_PARA_CHN_NUM | array | The channel to search for, the value represents the channel |
Type | [1, 2] | array | Type to search for, for example: 1-Humanoid, 2-model, 3-PID humanoid, 4-PID model, 5-LCD humanoid, 6-LCD model |
Engine | 0 | int | Search 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
Parameter | Range | Type | Description |
---|---|---|---|
MsgId | null | ||
Result | int | Search results for captured subjects (including people, cars, etc.),See the resultTable x | |
Count | 0 | int | The actual number of objects captured |
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,
"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
Parameter | Required | Description |
---|---|---|
Action | YES | Request action, including SnapedFeaturesId/Get,FilterSnapedFaces/Get,MatchAddedFaces/Get。 |
Get
Function
It is used to get the AI > Repeat Customer:FilterSnapedFaces parameters.
Request Message
Parameter Description
Parameter | Range | Type | Description |
---|---|---|---|
Engine | 0 | int | Search engine, 0 or 1, should be consistent with /API/AI/SnapedFaces/Search |
MinInterval | 5 | int | The 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 |
Similarity | 70 | unsigned int | Similarity to use when filtering |
Filter | Json Object | The target face to be screened. JSON show as follow Table 2 | |
FtIdSet | Json Object | The collection to be filtered. JSON show as follow Table 3 |
Parameter | Range | Type | Description |
---|---|---|---|
UUId | 200053 | unsigned int | The unique identifier of the captured face, corresponding to the UUId in /API/AI/SnapedFeaturesId/Get |
FtId | 58 | unsigned int | The feature value Id of the captured face corresponds to FtId in /API/AI/SnapedFeaturesId/Get |
Parameter | Range | Type | Description |
---|---|---|---|
UUIds | [200053, 200054, ...] | unsigned int array | The elements in the array represent the unique identification of the captured face |
FtIds | [58, 59, ...] | unsigned int array | The 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
Parameter | Range | Type | Description |
---|---|---|---|
MsgId | null | ||
Result | 0 | int | Returns the result of the face ID matching the filter in the target collection, 0 means success. see Table 5 for details |
Count | 6 | int | The number of faces filtered out |
MatchedIds | [200053, 200059, ...] | unsigned int array | The elements in the array represent the unique identification of the captured face |
Counting | [1, 0, 0, 1, 1, ...] | int array | The 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. |
Result Type | COMMENT |
---|---|
AORT_SUCCESS = 0 | success |
AORT_NO_DB = -1 | no database |
AORT_DB_EXEC_FAILED = -2 | Database execution failed |
AORT_CALC_FEATURE_FAILED = -3 | feature extraction failed |
AORT_CANCELED = -4 | Cancelled |
AORT_NO_DISK = -5 | no hard drive |
AORT_DISK_ERROR = -6 | hard disk error |
AORT_EXIST = -7 | existed |
AORT_GROUP_INVALID = -8 | group invalid |
AORT_NOT_EXIST = -9 | does not exist |
AORT_MORE_FILE_EXIST = -10 | File already exists |
AORT_SEARCH_ERROR = -11 | search error |
AORT_OVER_MAX_COUNT = -12 | limit exceeded |
AORT_UPDATING_FEATURE = -13 | Updating feature values |
AORT_NO_USABLE_IPC = -14 | No IPC available for eigenvalue calculation |
AORT_INVALID_PARAM = -15 | invalid parameter |
AORT_INVALID_FORMAT = -16 | wrong format |
AORT_INVALID_RES = -17 | wrong resolution |
AORT_INVALID_MEM = -18 | file too large error |
AORT_CREAT_FAILED = -19 | Creation failed |
AORT_MD5_NOT_MATCH = -20 | MD5 mismatch |
AORT_POS_ERROR = -21 | location error |
AORT_SIZE_ERROR = -22 | wrong size |
AORT_NOT_READY = -23 | not ready |
AORT_INVALID_DB = -24 | invalid 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
Parameter | Range | Type | Description |
---|---|---|---|
MsgId | null | ||
Engine | 0 | int | Search engine, 0 or 1, should be consistent with /API/AI/SnapedFaces/Search |
Similarity | 70 | int | Similarity to use when matching |
GrpIds | [1, 2, 3, 5] | int array | Which 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 array | The 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
Parameter | Range | Type | Description |
---|---|---|---|
MsgId | null | ||
Result | 0 | int | Get the result of returning customer status, 0 means success. see table Table 3 details |
FaceIds | [3, -1, -1, 2, ...] | long long array | The 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 |
Result Type | COMMENT |
---|---|
AORT_SUCCESS = 0 | success |
AORT_NO_DB = -1 | no database |
AORT_DB_EXEC_FAILED = -2 | Database execution failed |
AORT_CALC_FEATURE_FAILED = -3 | feature extraction failed |
AORT_CANCELED = -4 | Cancelled |
AORT_NO_DISK = -5 | no hard drive |
AORT_DISK_ERROR = -6 | hard disk error |
AORT_EXIST = -7 | existed |
AORT_GROUP_INVALID = -8 | group invalid |
AORT_NOT_EXIST = -9 | does not exist |
AORT_MORE_FILE_EXIST = -10 | File already exists |
AORT_SEARCH_ERROR = -11 | search error |
AORT_OVER_MAX_COUNT = -12 | limit exceeded |
AORT_UPDATING_FEATURE = -13 | Updating feature values |
AORT_NO_USABLE_IPC = -14 | No IPC available for eigenvalue calculation |
AORT_INVALID_PARAM = -15 | invalid parameter |
AORT_INVALID_FORMAT = -16 | wrong format |
AORT_INVALID_RES = -17 | wrong resolution |
AORT_INVALID_MEM = -18 | file too large error |
AORT_CREAT_FAILED = -19 | Creation failed |
AORT_MD5_NOT_MATCH = -20 | MD5 mismatch |
AORT_POS_ERROR = -21 | location error |
AORT_SIZE_ERROR = -22 | wrong size |
AORT_NOT_READY = -23 | not ready |
AORT_INVALID_DB = -24 | invalid 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
Parameter | Range | Type | Description |
---|---|---|---|
MsgId | null | ||
Engine | 0 | int | Search engine, 0 or 1, should be consistent with /API/AI/SnapedFaces/Search |
StartIndex | 0 | int | The starting index of the request, for example, the first time: 0-9999, the second time: 10000-19999, then the StartIndex is 0, 10000 respectively |
Count | 1000 | int | The 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
Parameter | Range | Type | Description |
---|---|---|---|
MsgId | null | ||
Result | 0 | int | Get the results of all eligible Ids and feature Ids, 0 means success. see Table 3 for details |
UUIds | [200053, 200054, ...] | unsigned int array | The elements in the array represent the unique identification of the captured face |
FtIds | [58, 59, ...] | unsigned int array | The elements in the array represent the feature value Id of the captured face, which corresponds to the Id in "UUIds" one by one |
Result Type | COMMENT |
---|---|
AORT_SUCCESS = 0 | success |
AORT_NO_DB = -1 | no database |
AORT_DB_EXEC_FAILED = -2 | Database execution failed |
AORT_CALC_FEATURE_FAILED = -3 | feature extraction failed |
AORT_CANCELED = -4 | Cancelled |
AORT_NO_DISK = -5 | no hard drive |
AORT_DISK_ERROR = -6 | hard disk error |
AORT_EXIST = -7 | existed |
AORT_GROUP_INVALID = -8 | group invalid |
AORT_NOT_EXIST = -9 | does not exist |
AORT_MORE_FILE_EXIST = -10 | File already exists |
AORT_SEARCH_ERROR = -11 | search error |
AORT_OVER_MAX_COUNT = -12 | limit exceeded |
AORT_UPDATING_FEATURE = -13 | Updating feature values |
AORT_NO_USABLE_IPC = -14 | No IPC available for eigenvalue calculation |
AORT_INVALID_PARAM = -15 | invalid parameter |
AORT_INVALID_FORMAT = -16 | wrong format |
AORT_INVALID_RES = -17 | wrong resolution |
AORT_INVALID_MEM = -18 | file too large error |
AORT_CREAT_FAILED = -19 | Creation failed |
AORT_MD5_NOT_MATCH = -20 | MD5 mismatch |
AORT_POS_ERROR = -21 | location error |
AORT_SIZE_ERROR = -22 | wrong size |
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,
"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
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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | JSON | Channel Information JSON show as follow Table 2 |
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | JSON show as follow Table 3 | |
… | Json Object | ||
IP_CH1 | Json Object | ||
… | Json Object | ||
WIFI_CH1 | Json Object | ||
… | Json Object |
Parameter | Range | Type | Description |
---|---|---|---|
category | JSON array | CategoryJSON show as follow Table 4 | |
AI_Schedule | bool | AI function schedule switch |
Parameter | Range | Type | Description |
---|---|---|---|
schedule_type | "fd", "pvd", "pid", "lcd", "sod", "cc", "cd", "qd", "lpd", "hm", “rsd” “intrusion” “region_entrance” “region_exiting” | string | Configurable 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” | string | The smart type that is mutually exclusive with schedule_type Note: According to the device capability, the actual mutual exclusion type is different |
week | JSON array | WeekJSON show as follow Table 5 |
Parameter | Range | Type | Description |
---|---|---|---|
day | Sun,Mon,Tue,Wed, Thu,Fri,Sat | string | identify the day of the week |
time | 0: close the time zone 1: open the time zone | array | Each 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | JSON | Channel Information JSON show as follow Table 2 |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | JSON show as follow Table 3 | |
… | Json Object | ||
IP_CH1 | Json Object | ||
… | Json Object | ||
WIFI_CH1 | Json Object | ||
… | Json Object |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
category | JSON array | CategoryJSON show as follow Table 4 | |
AI_Schedule | bool | AI function schedule switch |
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
schedule_type | "fd", "pvd", "pid", "lcd", "sod", "cc", "cd", "qd", "lpd", "hm", “rsd” “intrusion” “region_entrance” “region_exiting” | string | Configurable 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” | string | The smart type that is mutually exclusive with schedule_type Note: According to the device capability, the actual mutual exclusion type is different |
week | JSON array | WeekJSON show as follow Table 5 | |
mutex_type_between_channel | JSON 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
Parameter | Range | Type | Description |
---|---|---|---|
day | Sun,Mon,Tue,Wed, Thu,Fri,Sat | string | identify the day of the week |
time | 0: close the time zone 1: open the time zone | array | Each array bit (int) identifies a half-hour. |
Table 6
Parameter | Range | Type | Description |
---|---|---|---|
channel | “CH1” “CH2” ... | string | Exclusive channel |
mutex_type | "fd" "pvd" "pid" "lcd" "sod" "cc" "cd" "qd" "lpd" "hm" “rsd” “intrusion” “region_entrance” “region_exiting” | ||
Json array | Intelligent 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | JSON | Channel Information JSON show as follow Table 2 |
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | JSON show as follow Table 3 | |
… | Json Object | ||
IP_CH1 | Json Object | ||
… | Json Object | ||
WIFI_CH1 | Json Object | ||
… | Json Object |
Parameter | Range | Type | Description |
---|---|---|---|
category | JSON array | CategoryJSON show as follow Table 4 | |
AI_Schedule | bool | AI function schedule switch |
Parameter | Range | Type | Description |
---|---|---|---|
schedule_type | "fd", "pvd", "pid", "lcd", "sod", "cc", "cd", "qd", "lpd", "hm", “rsd” “intrusion” “region_entrance” “region_exiting” | string | Configurable 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” | string | The smart type that is mutually exclusive with schedule_type Note: According to the device capability, the actual mutual exclusion type is different |
week | JSON array | WeekJSON show as follow Table 5 |
Parameter | Range | Type | Description |
---|---|---|---|
day | Sun,Mon,Tue,Wed, Thu,Fri,Sat | string | identify the day of the week |
time | 0: close the time zone 1: open the time zone | array | Each 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
Get
Function
This API is used to get parameter for AI > Setup > Cross Counting page.
Request Message
Table 1
Parameter | Range | Type | Description |
---|---|---|---|
channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” The number of channels depends on the capabilities of the device. | string array | Each array bit represents a channel with a string. DVR/NVR need; IPC only use CH1 |
page_type | “ChannelConfig”, “AlarmConfig” | string | The 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | JSON object | Single Channel Information JSON show as follow Table Table 3 | |
page_type | “ChannelConfig”, “AarmConfig” | string | It 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_max | int | Maximum number of channels |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | JSON show as follow Table Table 4 | |
… | Json Object | ||
IP_CH1 | Json Object | ||
… | Json Object | ||
WIFI_CH1 | Json 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
Parameter | Range | Type | Description |
---|---|---|---|
rule_number1 | Object | Rule number 1,information JSON show as follow Table Table 6 |
Table 6
Parameter | Range | Type | Description |
---|---|---|---|
rule_switch | bool | Rule switch | |
rule_type | "A->B", "B->A" | string | Rule direction |
rule_line | Object | Rectangle,information JSON show as follow Table Table 7 | |
rule_rect | Object | Rectangle,information JSON show as follow Table Table 8 |
Table 7
Parameter | Range | Type | Description |
---|---|---|---|
x1 | 0-704 | short | x1 coordinate points |
y1 | 0-576 | short | y1 coordinate points |
x2 | 0-704 | short | x2 coordinate points |
y2 | 0-576 | short | y2 coordinate points |
Table 8
Parameter | Range | Type | Description |
---|---|---|---|
x1 | 0-704 | short | x1 coordinate points(x-coordinate of the left vertex) |
y1 | 0-576 | short | y1 coordinate points(y-coordinate of the left vertex) |
x2 | 0-704 | short | x2 coordinate points(x-coordinate of the right vertex) |
y2 | 0-576 | short | y2 coordinate points(y-coordinate of the right vertex) |
X3 | 0-704 | short | X3 coordinate points(x-axis coordinate of the left bottom point) |
Y3 | 0-576 | short | Y3 coordinate points(x-axis coordinate of the left bottom point) |
X4 | 0-704 | short | X4 coordinate points(x-axis coordinate of the right bottom point) |
Y4 | 0-576 | short | Y4 coordinate points(x-axis coordinate of the right bottom point) |
Table 9
Parameter | Range | Type | Description |
---|---|---|---|
cloud_video_is_used | 0~MAX_PARA_CHN_NUM | array | The channel number for which the cloud video upload function has been enabled |
max_cloud_video_upload_num | MAX_CLOUD_VIDEO_RECORD_NUM | int | The maximum number of channels supported by cloud video upload |
Table 10
Parameter | Range | Type | Description |
---|---|---|---|
schedule_type | "SendEmail" "FtpPicUpload" "CloudPicUpload" "Record" "AlarmOut" "FtpVdUpload" "CloudVdUpload" "FloodLight" "Siren" "EnforcerLight" | string | Schedule type |
week | Obejct | Weekly information is shown in the table Table 11 |
Table 11
Parameter | Range | Type | Description |
---|---|---|---|
day | "Sun" "Mon" "Tue" "Wed" "Thu" "Fri" "Sat" | string | day |
time | int | time |
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)
Parameter | Range | Type | Description |
---|---|---|---|
cloud_video_is_used | 0~MAX_PARA_CHN_NUM | array | The channel number for which the cloud video upload function has been enabled |
max_cloud_video_upload_num | MAX_CLOUD_VIDEO_RECORD_NUM | int | The 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
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
Parameter | Range | Type | Description |
---|---|---|---|
channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” The number of channels depends on the capability of the device. | string array | Each array bit represents a channel with a string. DVR/NVR need. IPC only uses CH1 |
page_type | “ChannelConfig”, “AlarmConfig” | string | Data 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | JSON object | Single Channel Information JSON show as follow Table x | |
page_type | “ChannelConfig”, “AarmConfig” | string | The data used to distinguish between the channel configuration page and the alarm configuration page is only needed when setting |
channel_max | int | Maximum number of channels |
Table x
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | JSON show as followTable 3 | |
... | Json Object | ||
IP_CH1 | Json Object | ||
... | Json Object | ||
WIFI_CH1 | Json Object | ||
... | Json Object |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
status | "Offline","Online", “Nonsupport” | string | Channel 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. | array | Alarm output channel Each array bit represents aalarm output channel with a string. Camera: Local->1:open,NULL:close |
latch_time | "10","20","40", "60" | string | Alarm output time |
record_enable | ture,false | bool | Recording channel switch |
post_recording | "30","60","120", "300" | string | Video delay time |
send_email | true, false | bool | Outgoing mail switch |
ftp_picture_upload | true, false | bool | Send mail switch Channel Capture FTP Upload switch (dedicated to NVR) |
ftp_video_upload | true, false | bool | Channel video FTP upload switch (NVR special) |
picture_to_cloud | true, false | bool | Image upload switch (NVR only) |
light_linkage | true, false | bool | Alarm linkage switch |
switch | true, false | bool | switch,false: close true: open |
sensitivity | 1-4 | int | Detection sensitivity |
min_pixel | 64-1080 | int | Minimum pixel value |
max_pixel | 320-1080 | int | Maximum pixel value |
iva_lines | 0 not draw lines 1 draw lines | int | Preview and play back whether lines will appear |
detection_range | "FullScreen" "Customize" | string | detection range /0:full screen mode,1:Custom mode/ |
rule_info | Object | Information JSON show as followTable 4 | |
schedule_enable | bool | Schedule mode | |
ptz_operation_support | bool | Ball machine use supports ptz operation | |
enforcerlight_linkage | bool | Red and blue indicator linkage alarm | |
siren_linkage | bool | Alarm sound linkage alarm | |
http_listening | bool | http event push | |
schedule | Object | The following table is displayed, as shown in the following Table 7 | |
default_timeout | 1-120000 | int | Session timeout(range use) |
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
rule_number1 | Object | Rule number 1,Information JSON show as followTable 5 | |
rule_number2 | Object | Rule number 2,Information JSON show as followTable 5 | |
rule_number3 | Object | Rule number 3,Information JSON show as followTable 5 | |
rule_number4 | Object | Rule number 4,Information JSON show as followTable 5 |
Table 5
Parameter | Range | Type | Description |
---|---|---|---|
rule_switch | true, false | bool | Regular switch |
rule_rect | Object | octagon,Information JSON show as followTable 6 |
Table 6
Parameter | Range | Type | Description |
---|---|---|---|
x1 | 0-704 | short | x1 coordinate point |
y1 | 0-576 | short | y1 coordinate point |
x2 | 0-704 | short | x2 coordinate point |
y2 | 0-576 | short | y2 coordinate point |
x3 | 0-704 | short | x3 coordinate point |
y3 | 0-576 | short | y3 coordinate point |
x4 | 0-704 | short | x4 coordinate point |
y4 | 0-576 | short | y4 coordinate point |
x5 | 0-704 | short | x5 coordinate point |
y5 | 0-576 | short | y5 coordinate point |
x6 | 0-704 | short | x6 coordinate point |
y6 | 0-576 | short | y6 coordinate point |
x7 | 0-704 | short | x7 coordinate point |
y7 | 0-576 | short | y7 coordinate point |
x8 | 0-704 | short | x8 coordinate point |
y8 | 0-576 | short | y8 coordinate point |
Table 7
Parameter | Range | Type | Description |
---|---|---|---|
schedule_type | "SendEmail" "FtpPicUpload" "CloudPicUpload" "Record" "AlarmOut" "FtpVdUpload" "CloudVdUpload" "FloodLight" "Siren" "EnforcerLight" | string | Schedule type |
week | Obejct | Weekly information is shown in the table Table 8 |
Table 8
Parameter | Range | Type | Description |
---|---|---|---|
day | "Sun" "Mon" "Tue" "Wed" "Thu" "Fri" "Sat" | string | day |
time | int | time |
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
Get
Function
This API is used to get parameter for AI > Setup > Face Detection page.
Request Message
Table 1
Parameter | Range | Type | Description |
---|---|---|---|
channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” The number of channels depends on the capabilities of the device. | string array | Each array bit represents a channel with a string. DVR/NVR need; IPC only use CH1 |
page_type | “ChannelConfig”, “AlarmConfig” | string | The 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | JSON object | Channel Information JSON show as follow Table Table 3 | |
page_type | “ChannelConfig” “AlarmConfig” | string | The data used to distinguish whether it is a channel configuration page or an alarm configuration page |
channel_max | int | Maximum number of channels | |
agreed_to_agreement | bool | Whether to agree to the face protocol. | |
statement_file_name | string | The displayed face protocol file name. |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | JSON show as follow Table Table 4 | |
… | Json Object | ||
IP_CH1 | Json Object | ||
… | Json Object | ||
WIFI_CH1 | Json 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 aalarm output channel with a string. Camera::Local->1:open, null value: close |
latch_time | "5s","10s","20s","30s" | string | Alarm output time Ipc value 5 10 20 30 |
record_enable | true, false | bool | Recording channel switching |
record_channel | “CH1”…”CH1x” “IP_CH1”… ” IP_CH1x” “WIFI_CH1”…” | array | Alarm output channel Channel alarm linkage switch. |
post_recording | "OFF","5s","10s","20s","30s" | string | Video delay time Ipc value 0 5 10 20 30 |
send_email | true, false | bool | Send Email Switch |
switch | true, false | bool | switch,false: close true: open |
snap_mode | "RealTimeMode" "OptimalMode" "IntervalMode" | string | Screenshot mode, intervalMode JSON show as follow Table Table 5 |
apply_mode | "FrontalView" "MultiAngle" "Customize" | string | Customize JSON show as follow Table Table 6 |
min_pixel | 32-1080 | int | Minimum pixel value |
max_pixel | 320-1080 | int | Maximum pixel value |
face_enhance | true, false | bool | Face_enhance switch |
face_attribute | bool | Face_attribute switch | |
detection_mode | "StaticMode" "MotionMode" | string | Detection mode |
iva_lines | 0 Don't draw a line 1 draw a line | int | Whether there will be a line in the preview and playback |
rule_info | Object | Information JSON show as follow Table Table 7 | |
snap_num | "1" "2" "3" "Unlimited" | string | Number of screenshots |
snap_frequency | int | Screenshot interval, unit s/pic | |
roll_range | 0-180 | int | The 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_range | 0-180 | int | The 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_range | 0-180 | int | The 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_quality | 0-100 | int | The 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_enable | bool | Schedule mode | |
ptz_operation_support | bool | Ball machine use supports ptz operation | |
ftp_picture_upload | bool | Supports uploading pictures to ftp | |
picture_to_cloud | bool | Supports uploading pictures to cloud storage | |
ftp_video_upload | bool | Supports uploading videos to ftp | |
video_to_cloud | bool | Supports uploading videos to cloud storage | |
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 | |
schedule | Object | The following table is displayed, as shown in the following Table 5 | |
default_timeout | 1-120000 | int | Session timeout(range use) |
Table 5
Parameter | Range | Type | Description |
---|---|---|---|
schedule_type | "SendEmail" "FtpPicUpload" "CloudPicUpload" "Record" "AlarmOut" "FtpVdUpload" "CloudVdUpload" "FloodLight" "Siren" "EnforcerLight" | string | Schedule type |
week | Obejct | Weekly information is shown in the table Table 6 |
Table 6
Parameter | Range | Type | Description |
---|---|---|---|
day | "Sun" "Mon" "Tue" "Wed" "Thu" "Fri" "Sat" | string | day |
time | int | time |
Table 7
Parameter | Range | Type | Description |
---|---|---|---|
rule_number1 | Object | Rule number 1,information JSON show as follow Table Table 8 |
Table 8
Parameter | Range | Type | Description |
---|---|---|---|
rule_type | "A->B" "B->A" | string | Rule type |
rule_kind | "Rect" "Line" | string | Rule type |
detection_range | "FullScreen" "Customize" | string | Examination range |
rule_rect | Object | Rectangle,information JSON show as follow Table table 9 | |
rule_line | Object | Draw a line,information JSON show as follow Table table 10 | |
point_num | [min:max] | array | The number of points drawn in the area, minimum 3 points (min), maximum 8 points (max) |
Table 9
Parameter | Range | Type | Description |
---|---|---|---|
x1 | 0-704 | short | x1 Coordinate points |
y1 | 0-576 | short | y1 Coordinate points |
x2 | 0-704 | short | x2 Coordinate points |
y2 | 0-576 | short | y2 Coordinate points |
x3 | 0-704 | short | x3 Coordinate points |
y3 | 0-576 | short | y3 Coordinate points |
x4 | 0-704 | short | x4 Coordinate points |
y4 | 0-576 | short | y4 Coordinate points |
x5 | 0-704 | short | x5 Coordinate points |
y5 | 0-576 | short | y5 Coordinate points |
x6 | 0-704 | short | x6 Coordinate points |
y6 | 0-576 | short | y6 Coordinate points |
x7 | 0-704 | short | x7 Coordinate points |
y7 | 0-576 | short | y7 Coordinate points |
x8 | 0-704 | short | x8 Coordinate points |
y8 | 0-576 | short | y8 Coordinate points |
Table 10
Parameter | Range | Type | Description |
---|---|---|---|
x1 | 0-704 | short | x1 Coordinate points |
y1 | 0-576 | short | y1 Coordinate points |
x2 | 0-704 | short | x2 Coordinate points |
y2 | 0-576 | short | y2 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
Get
Function
This API is used to get parameter for AI > Setup > Heat Map page.
Request Message
Table 1
Parameter | Range | Type | Description |
---|---|---|---|
channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” The number of channels depends on the capabilities of the device. | string array | Each array bit represents a channel with a string. DVR/NVR need; IPC only use CH1 |
page_type | “ChannelConfig”, “AlarmConfig” | string | The 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | JSON object | Single Channel Information JSON show as follow Table Table 3 | |
channel_max | int | Maximum number of channels |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | JSON show as follow Table Table 4 | |
… | Json Object | ||
IP_CH1 | Json Object | ||
… | Json Object | ||
WIFI_CH1 | Json 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 |
switch | true, false | bool | Switch, false: close true: open |
rule_info | Object | Information JSON show as follow Table Table 5 | |
schedule_enable | bool | Schedule mode | |
ptz_operation_support | bool | (Ball machine use)Supports the ptz operation |
Table 5
Parameter | Range | Type | Description |
---|---|---|---|
rule_number1 | Object | Rule number 1,information JSON show as follow Table Table 6 |
Table 6
Parameter | Range | Type | Description |
---|---|---|---|
rule_switch | bool | Rule switch | |
rule_line | Object | Rectangle,Information JSON show as follow Table Table 7 | |
point_num | [min:max] | array | The number of points drawn in the area, minimum 3 points (min), maximum 8 points (max) |
Table 7
Parameter | Range | Type | Description |
---|---|---|---|
x1 | 0-704 | short | x1 coordinate points |
y1 | 0-576 | short | y1 coordinate points |
x2 | 0-704 | short | x2 coordinate points |
y2 | 0-576 | short | y2 coordinate points |
x3 | 0-704 | short | x3 coordinate points |
y3 | 0-576 | short | y3 coordinate points |
x4 | 0-704 | short | x4 coordinate points |
y4 | 0-576 | short | y4 coordinate points |
x5 | 0-704 | short | x5 coordinate points |
y5 | 0-576 | short | y5 coordinate points |
x6 | 0-704 | short | x6 coordinate points |
y6 | 0-576 | short | y6 coordinate points |
x7 | 0-704 | short | x7 coordinate points |
y7 | 0-576 | short | y7 coordinate points |
x8 | 0-704 | short | x8 coordinate points |
y8 | 0-576 | short | y8 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
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
Parameter | Range | Type | Description |
---|---|---|---|
channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” The number of channels depends on the capability of the device. | string array | Each array bit represents a channel with a string. DVR/NVR need. IPC only uses CH1 |
page_type | “ChannelConfig”, “AlarmConfig” | string | Data 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | JSON object | Single Channel Information JSON show as follow Table x | |
page_type | “ChannelConfig”, “AarmConfig” | string | The data used to distinguish between the channel configuration page and the alarm configuration page is only needed when setting |
channel_max | int | Maximum number of channels |
Table x
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | JSON show as followTable 3 | |
... | Json Object | ||
IP_CH1 | Json Object | ||
... | Json Object | ||
WIFI_CH1 | Json Object | ||
... | Json Object |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
status | "Offline","Online", “Nonsupport” | string | Channel 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. | array | Alarm output channel Each array bit represents aalarm output channel with a string. Camera: Local->1:open,NULL:close |
latch_time | "10","20","40", "60" | string | Alarm output time |
record_enable | ture,false | bool | Recording 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 |
send_email | true, false | bool | Outgoing mail switch |
ftp_picture_upload | true, false | bool | Send mail switch Channel Capture FTP Upload switch (dedicated to NVR) |
ftp_video_upload | true, false | bool | Channel video FTP upload switch (NVR special) |
picture_to_cloud | true, false | bool | Image upload switch (NVR only) |
video_to_cloud | true, false | bool | Video Cloud Upload Switch (NVR special) |
full_screen | bool | FullScreen Switch (NVR only) | |
buzzer | "0","10","20","40", "60" | string | Buzzer time (NVR only) |
show_message | true, false | bool | Display information switch |
switch | true, false | bool | switch,false: close true: open |
sensitivity | 0-100 | int | Detection sensitivity (IPC Smart 2) |
sensitivity | "Low","Medium","High" | string | Detection sensitivity (IPC Smart Generation) |
snap_mode | "Default" "RealTimeMode" "IntervalMode" | string | Screenshot mode, IntervalMode JSON show as followTable 4 |
min_pixel | 64-1080 | int | Minimum pixel value |
max_pixel | 320-1080 | int | Maximum pixel value |
detection_type | "Off" "Pedestrian" "Vehicle" "Pedestrian &Vehicle" | string | Detection type, Humanoid and car shape (normal detection type) |
detection_type | “Pedestrian” "Motor Vehicle" "Non-motorized Vehicle" | array | Detection type, humanoid, motor vehicle, non-motor vehicle (machine non-human) |
iva_lines | 0 not draw lines 1 draw lines | int | Preview and play back whether lines will appear |
rule_info | Object | Information JSON show as followTable 5 | |
schedule_list | 0-8 | json array | (Consumer NVR interconnection IPC POE package) defense planning table data,show as followTable 9 |
mutual_exclusion | "Intrusion" "Region Entrance" "Region Exiting" "LCD" | json array | The 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_enable | bool | 计划表模式 | |
ptz_operation_support | bool | (球机使用)支持ptz操作 | |
detection_mode | StaticMode,MotionMode | string | 检测模式 |
scene | Indoor,Outdoor | string | 场景 |
light_linkage | bool | 白光联动告警 | |
tracking_link | bool | 追踪联动开关(球机使用) | |
enforcerlight_linkage | bool | 红蓝灯联动告警 | |
siren_linkage | bool | 警戒声联动告警 | |
http_listening | bool | http事件推送 | |
schedule | Object | 计划表显示如表Table 10 | |
default_timeout | 1-120000 | int | 会话超时(range使用) |
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
snap_num | "1" "2" "3" "Unlimited" | string | Screenshot count |
snap_frequency | int | Screenshot interval, unit s/pic |
Table 5
Parameter | Range | Type | Description |
---|---|---|---|
rule_number1 | Object | Rule number 1,Information JSON show as followTable 6 |
Table 6
Parameter | Range | Type | Description |
---|---|---|---|
detection_range | "FullScreen" "Customize" | string | detection range |
rule_switch | true, false | bool | /* 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_rect | Object | rectangle,Information JSON show as followTable 7 | |
point_num | [min:max] | array | Number of points drawn in the area, minimum 3 points (min), maximum 8 points (max) |
Table 7
Parameter | Range | Type | Description |
---|---|---|---|
x1 | 0-704 | short | x1 coordinate point |
y1 | 0-576 | short | y1 coordinate point |
x2 | 0-704 | short | x2 coordinate point |
y2 | 0-576 | short | y2 coordinate point |
x3 | 0-704 | short | x3 coordinate point |
y3 | 0-576 | short | y3 coordinate point |
x4 | 0-704 | short | x4 coordinate point |
y4 | 0-576 | short | y4 coordinate point |
x5 | 0-704 | short | x5 coordinate point |
y5 | 0-576 | short | y5 coordinate point |
x6 | 0-704 | short | x6 coordinate point |
y6 | 0-576 | short | y6 coordinate point |
x7 | 0-704 | short | x7 coordinate point |
y7 | 0-576 | short | y7 coordinate point |
x8 | 0-704 | short | x8 coordinate point |
y8 | 0-576 | short | y8 coordinate point |
Table 8
Parameter | Range | Type | Description |
---|---|---|---|
cloud_video_is_used | 0~MAX_PARA_CHN_NUM | array | Id of the channel where the cloud video upload function is enabled |
max_cloud_video_upload_num | MAX_CLOUD_VIDEO_RECORD_NUM | int | The maximum number of channels supported for cloud video uploading |
Table 9
Parameter | Range | Type | Description |
---|---|---|---|
enable | true, false | bool | Whether the current schedule takes effect |
start_time | 0 – 1439(23*60+59) | int | Schedule start time (minutes relative to 00:00) |
end_time | 0 – 1439(23*60+59) | int | Schedule end time (minutes relative to 00:00) |
weekday | "Sunday" "Monday" "Tuesday" "Wednesday" "Thursday" "Friday" "Saturday" | array | Indicates the day of a week when the current schedule takes effect. You can select multiple days |
Table 10
Parameter | Range | Type | Description |
---|---|---|---|
schedule_type | "SendEmail" "FtpPicUpload" "CloudPicUpload" "Record" "AlarmOut" "FtpVdUpload" "CloudVdUpload" "FloodLight" "Siren" "EnforcerLight" | string | Schedule type |
week | Obejct | Weekly information is shown in the Table 11 |
Table 11
Parameter | Range | Type | Description |
---|---|---|---|
day | "Sun" "Mon" "Tue" "Wed" "Thu" "Fri" "Sat" | string | day |
time | int | time |
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
Get
Function
This API is used to get AI > Setup > Intrusion configuration parameters.
Request Message
Parameter Description
Parameter | Range | Type | Description |
---|---|---|---|
channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” The number of channels depends on the capabilities of the device. | String array | Each array bit represents a channel with a string. DVR/NVR need; IPC only use CH1 |
page_type | “ChannelConfig”, “AlarmConfig” | string | The 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | JSON object | Channel Information JSON show as follow Table 3 | |
page_type | “ChannelConfig”, “AarmConfig” | string | It 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_max | int | Maximum number of channels |
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | JSON show as follow Table 4 | |
… | Json Object | ||
IP_CH1 | Json Object | ||
… | Json Object | ||
WIFI_CH1 | Json Object | ||
… | Json Object |
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 aalarm output channel with a string. Camera: Local->1: open, null value: close |
latch_time | "10","20","40", "60" | string | Alarm output time |
record_enable | true, false | bool | Recording channel switching |
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 |
send_email | true, false | bool | Send Email switch |
ftp_picture_upload | true, false | bool | Channel capture FTP upload switch (for NVR only) |
ftp_video_upload | true, false | bool | Channel recording FTP upload switch (for NVR only) |
picture_to_cloud | true, false | bool | Picture upload switch (for NVR only) |
video_to_cloud | true, false | bool | Video cloud upload switch (for NVR only) |
full_screen | bool | FullScreen switch (for NVR only) | |
buzzer | "0","10","20","40","60" | string | Buzzer sounding time (for NVR only) |
show_message | bool | Show Message switch (for NVR only) | |
switch | true, false | bool | PID enable switch, false: close true: open |
detection_type | "Motion" "Pedestrian" "Vehicle" "Pedestrian &Vehicle" | string | Detection type, human shape and vehicle shape (normal detection type) |
detection_type | “Pedestrian” "Motor Vehicle" "Non-motorized Vehicle" | array | Detection type, human figure, motor vehicle, non-motor vehicle (machine is not human type) |
sensitivity | 1-100 | int | Detection sensitivity |
time_threshold | 1-10 | int | time threshold |
target_validity | 1-4 | int | Confidence |
min_pixel | 64-1080 | int | Minimum pixel value |
max_pixel | 320-1080 | int | Maximum pixel value |
rule_info | JSON object | Single-channel information JSON is as follows Table 5 | |
point_num | [min:max] | array | The number of points drawn in the area, minimum 3 points (min), maximum 8 points (max) |
Parameter | Range | Type | Description |
---|---|---|---|
rule_number1 | Object | Rule number 1, the information JSON is displayed as follows Table 6 | |
rule_number2 | Object | Rule number 2, the information JSON is displayed as follows Table 6 | |
rule_number3 | Object | Rule number 3, the information JSON is displayed as follows Table 6 | |
rule_number4 | Object | Rule number 4, the information JSON is displayed as follows Table 6 |
Parameter | Range | Type | Description |
---|---|---|---|
rule_switch | bool | rule switch | |
rule_rect | Object | Rectangle, the information JSON is as follows Table 7 | |
point_num | [min:max] | array | The number of points drawn in the area, minimum 3 points (min), maximum 8 points (max) |
Parameter | Range | Type | Description |
---|---|---|---|
x1 | 0-704 | short | x1 coordinate point |
y1 | 0-576 | short | y1 coordinate point |
x2 | 0-704 | short | x2 coordinate point |
y2 | 0-576 | short | y2 coordinate point |
x3 | 0-704 | short | x3 coordinate point |
y3 | 0-576 | short | y3 coordinate point |
x4 | 0-704 | short | x4 coordinate point |
y4 | 0-576 | short | y4 coordinate point |
x5 | 0-704 | short | x5 coordinate point |
y5 | 0-576 | short | y5 coordinate point |
x6 | 0-704 | short | x6 coordinate point |
y6 | 0-576 | short | y6 coordinate point |
x7 | 0-704 | short | x7 coordinate point |
y7 | 0-576 | short | y7 coordinate point |
x8 | 0-704 | short | x8 coordinate point |
y8 | 0-576 | short | y8 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
Parameter | Range | Type | Description |
---|---|---|---|
channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” The number of channels depends on the capabilities of the device. | String array | Each array bit represents a channel with a string. DVR/NVR need; IPC only use CH1 |
page_type | “ChannelConfig”, “AlarmConfig” | string | The 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | JSON object | Channel Information JSON show as follow Table 3 | |
page_type | “ChannelConfig”, “AarmConfig” | string | It 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_max | int | Maximum number of channels |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | JSON show as follow Table 4 | |
… | Json Object | ||
IP_CH1 | Json Object | ||
… | Json Object | ||
WIFI_CH1 | Json 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 aalarm output channel with a string. Camera: Local->1: open, null value: close |
latch_time | "10","20","40", "60" | string | Alarm output time |
record_enable | true, false | bool | Recording channel switching |
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 |
send_email | true, false | bool | Send Email switch |
ftp_picture_upload | true, false | bool | Channel capture FTP upload switch (for NVR only) |
ftp_video_upload | true, false | bool | Channel recording FTP upload switch (for NVR only) |
picture_to_cloud | true, false | bool | Picture upload switch (for NVR only) |
video_to_cloud | true, false | bool | Video cloud upload switch (for NVR only) |
full_screen | bool | FullScreen switch (for NVR only) | |
buzzer | "0","10","20","40","60" | string | Buzzer sounding time (for NVR only) |
show_message | bool | Show Message switch (for NVR only) | |
switch | true, false | bool | PID enable switch, false: close true: open |
detection_type | "Motion" "Pedestrian" "Vehicle" "Pedestrian &Vehicle" | string | Detection type, human shape and vehicle shape (normal detection type) |
detection_type | “Pedestrian” "Motor Vehicle" "Non-motorized Vehicle" | array | Detection type, human figure, motor vehicle, non-motor vehicle (machine is not human type) |
sensitivity | 1-100 | int | Detection sensitivity |
time_threshold | 1-10 | int | time threshold |
target_validity | 1-4 | int | Confidence |
min_pixel | 64-1080 | int | Minimum pixel value |
max_pixel | 320-1080 | int | Maximum pixel value |
rule_info | JSON object | Single-channel information JSON is as follows Table 5 | |
point_num | [min:max] | array | The number of points drawn in the area, minimum 3 points (min), maximum 8 points (max) |
schedule_enable | bool | Schedule mode | |
iva_lines | 0 Do not draw a line 1 Draw a line | bool | Preview and play back whether lines will appear |
ptz_operation_support | bool | (Ball machine use)Supports the ptz operation | |
light_linkage | bool | White light linkage alarm | |
tracking_link | bool | Tracking linkage switch(Ball machine use) | |
enforcerlight_linkage | bool | Red and blue indicator linkage alarm | |
siren_linkage | bool | Alarm sound linkage alarm | |
http_listening | bool | http event push | |
schedule | Object | The schedule is shown in the Table 8 | |
default_timeout | 1-120000 | int | Session timeout (range usage) |
Table 5
Parameter | Range | Type | Description |
---|---|---|---|
rule_number1 | Object | Rule number 1, the information JSON is displayed as follows Table 6 | |
rule_number2 | Object | Rule number 2, the information JSON is displayed as follows Table 6 | |
rule_number3 | Object | Rule number 3, the information JSON is displayed as follows Table 6 | |
rule_number4 | Object | Rule number 4, the information JSON is displayed as follows Table 6 |
Table 6
Parameter | Range | Type | Description |
---|---|---|---|
rule_switch | bool | rule switch | |
rule_rect | Object | Rectangle, the information JSON is as follows Table 7 | |
point_num | [min:max] | array | The number of points drawn in the area, minimum 3 points (min), maximum 8 points (max) |
Table 7
Parameter | Range | Type | Description |
---|---|---|---|
x1 | 0-704 | short | x1 coordinate point |
y1 | 0-576 | short | y1 coordinate point |
x2 | 0-704 | short | x2 coordinate point |
y2 | 0-576 | short | y2 coordinate point |
x3 | 0-704 | short | x3 coordinate point |
y3 | 0-576 | short | y3 coordinate point |
x4 | 0-704 | short | x4 coordinate point |
y4 | 0-576 | short | y4 coordinate point |
x5 | 0-704 | short | x5 coordinate point |
y5 | 0-576 | short | y5 coordinate point |
x6 | 0-704 | short | x6 coordinate point |
y6 | 0-576 | short | y6 coordinate point |
x7 | 0-704 | short | x7 coordinate point |
y7 | 0-576 | short | y7 coordinate point |
x8 | 0-704 | short | x8 coordinate point |
y8 | 0-576 | short | y8 coordinate point |
Table 8
Parameter | Range | Type | Description |
---|---|---|---|
schedule_type | "SendEmail" "FtpPicUpload" "CloudPicUpload" "Record" "AlarmOut" "FtpVdUpload" "CloudVdUpload" "FloodLight" "Siren" "EnforcerLight" | string | Schedule type |
week | Obejct | Weekly information is shown in the Table 9 |
Table 9
Parameter | Range | Type | Description |
---|---|---|---|
day | "Sun" "Mon" "Tue" "Wed" "Thu" "Fri" "Sat" | string | day |
time | int | time |
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
Parameter | Range | Type | Description |
---|---|---|---|
channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” The number of channels depends on the capabilities of the device. | String array | Each array bit represents a channel with a string. DVR/NVR need; IPC only use CH1 |
page_type | “ChannelConfig”, “AlarmConfig” | string | The data used to distinguish whether it is a channel configuration page or an alarm configuration page |
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | JSON object | Channel Information JSON show as follow Table 3 | |
page_type | “ChannelConfig”, “AarmConfig” | string | It 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_max | int | Maximum number of channels |
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | JSON show as follow Table 4 | |
… | Json Object | ||
IP_CH1 | Json Object | ||
… | Json Object | ||
WIFI_CH1 | Json Object | ||
… | Json Object |
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 aalarm output channel with a string. Camera: Local->1: open, null value: close |
latch_time | "10","20","40", "60" | string | Alarm output time |
record_enable | true, false | bool | Recording channel switching |
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 |
send_email | true, false | bool | Send Email switch |
ftp_picture_upload | true, false | bool | Channel capture FTP upload switch (for NVR only) |
ftp_video_upload | true, false | bool | Channel recording FTP upload switch (for NVR only) |
picture_to_cloud | true, false | bool | Picture upload switch (for NVR only) |
video_to_cloud | true, false | bool | Video cloud upload switch (for NVR only) |
full_screen | bool | FullScreen switch (for NVR only) | |
buzzer | "0","10","20","40","60" | string | Buzzer sounding time (for NVR only) |
show_message | bool | Show Message switch (for NVR only) | |
switch | true, false | bool | PID enable switch, false: close true: open |
detection_type | "Motion" "Pedestrian" "Vehicle" "Pedestrian &Vehicle" | string | Detection type, human shape and vehicle shape (normal detection type) |
detection_type | “Pedestrian” "Motor Vehicle" "Non-motorized Vehicle" | array | Detection type, human figure, motor vehicle, non-motor vehicle (machine is not human type) |
sensitivity | 1-100 | int | Detection sensitivity |
time_threshold | 1-10 | int | time threshold |
target_validity | 1-4 | int | Confidence |
min_pixel | 64-1080 | int | Minimum pixel value |
max_pixel | 320-1080 | int | Maximum pixel value |
rule_info | JSON object | Single-channel information JSON is as follows Table 5 | |
point_num | [min:max] | array | The number of points drawn in the area, minimum 3 points (min), maximum 8 points (max) |
Parameter | Range | Type | Description |
---|---|---|---|
rule_number1 | Object | Rule number 1, the information JSON is displayed as follows Table 6 | |
rule_number2 | Object | Rule number 2, the information JSON is displayed as follows Table 6 | |
rule_number3 | Object | Rule number 3, the information JSON is displayed as follows Table 6 | |
rule_number4 | Object | Rule number 4, the information JSON is displayed as follows Table 6 |
Parameter | Range | Type | Description |
---|---|---|---|
rule_switch | bool | rule switch | |
rule_rect | Object | Rectangle, the information JSON is as follows Table 7 | |
point_num | [min:max] | array | The number of points drawn in the area, minimum 3 points (min), maximum 8 points (max) |
Parameter | Range | Type | Description |
---|---|---|---|
x1 | 0-704 | short | x1 coordinate point |
y1 | 0-576 | short | y1 coordinate point |
x2 | 0-704 | short | x2 coordinate point |
y2 | 0-576 | short | y2 coordinate point |
x3 | 0-704 | short | x3 coordinate point |
y3 | 0-576 | short | y3 coordinate point |
x4 | 0-704 | short | x4 coordinate point |
y4 | 0-576 | short | y4 coordinate point |
x5 | 0-704 | short | x5 coordinate point |
y5 | 0-576 | short | y5 coordinate point |
x6 | 0-704 | short | x6 coordinate point |
y6 | 0-576 | short | y6 coordinate point |
x7 | 0-704 | short | x7 coordinate point |
y7 | 0-576 | short | y7 coordinate point |
x8 | 0-704 | short | x8 coordinate point |
y8 | 0-576 | short | y8 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)
Parameter | Range | Type | Description |
---|---|---|---|
cloud_video_is_used | 0~MAX_PARA_CHN_NUM | array | The channel number for which the cloud video upload function has been enabled |
max_cloud_video_upload_num | MAX_CLOUD_VIDEO_RECORD_NUM | int | The 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
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
Parameter | Range | Type | Description |
---|---|---|---|
channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” The number of channels depends on the capability of the device. | string array | Each array bit represents a channel with a string. DVR/NVR need. IPC only uses CH1 |
page_type | “ChannelConfig”, “AlarmConfig” | string | Data 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | JSON object | Single Channel Information JSON show as follow Table x | |
page_type | “ChannelConfig”, “AarmConfig” | string | The data used to distinguish between the channel configuration page and the alarm configuration page is only needed when setting |
channel_max | int | Maximum number of channels |
Table x
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | JSON show as followTable 3 | |
... | Json Object | ||
IP_CH1 | Json Object | ||
... | Json Object | ||
WIFI_CH1 | Json Object | ||
... | Json Object |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
status | "Offline","Online", “Nonsupport” | string | Channel 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. | array | Alarm output channel Each array bit represents aalarm output channel with a string. Camera: Local->1:open,NULL:close |
latch_time | "10","20","40", "60" | string | Alarm output time |
record_enable | ture,false | bool | Recording channel switch |
record_channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” | array | Alarm output channel Channel alarm linkage switch |
post_recording | "0","5","10", "20","30" | string | Video delay time |
send_email | true, false | bool | Outgoing mail switch |
ftp_picture_upload | true, false | bool | Send mail switch Channel Capture FTP Upload switch (dedicated to NVR) |
ftp_video_upload | true, false | bool | Channel video FTP upload switch (NVR special) |
picture_to_cloud | true, false | bool | Image upload switch (NVR only) |
video_to_cloud | true, false | bool | Video Cloud Upload Switch (NVR special) |
full_screen | bool | FullScreen Switch (NVR only) | |
buzzer | "0","10","20","40", "60" | string | Buzzer time (NVR only) |
show_message | true, false | bool | Display information switch |
switch | true, false | bool | switch,false: close true: open |
sensitivity | 0-100 | int | Detection sensitivity |
snap_mode | "Default" "RealTimeMode" "IntervalMode" | string | Screenshot mode, IntervalMode JSON show as followTable 4 |
min_pixel | 64-1080 | int | Minimum pixel value |
max_pixel | 320-1080 | int | Maximum pixel value |
detection_type | "Off" "Pedestrian" "Vehicle" "Pedestrian &Vehicle" | string | Detection type, Humanoid and car shape (normal detection type) |
detection_mode | "StaticMode" "MotionMode" | string | Detection mode |
iva_lines | 0 not draw lines 1 draw lines | int | Preview and play back whether lines will appear |
lpd_enhance | bool | License plate recognition enhancement | |
day_enhance_level | 0-255 | int | Daytime escalation |
night_enhance_level | 0-255 | int | Night increase level |
rule_info | Object | Information JSON show as followTable 5 | |
point_num | [min:max] | array | 区域画点个数,最小3个点(min),最大8个点(max) |
detection_type | "EU_Plate" "US_Plate" | string | detection type |
schedule_enable | bool | Schedule mode | |
ptz_operation_support | bool | (Ball machine use )supports ptz operation | |
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 | |
schedule | Object | The schedule is shown in the tableTable 9 | |
default_timeout | 1-120000 | int | Session timeout (range usage) |
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
snap_num | "1" "2" "3" "Unlimited" | string | Screenshot count |
snap_frequency | int | Screenshot interval, unit s/pic |
Table 5
Parameter | Range | Type | Description |
---|---|---|---|
rule_number1 | Object | Rule number 1,Information JSON show as followTable 6 |
Table 6
Parameter | Range | Type | Description |
---|---|---|---|
detection_range | "FullScreen" "Customize" | string | detection range |
rule_rect | Object | rectangle,Information JSON show as followTable 7 |
Table 7
Parameter | Range | Type | Description |
---|---|---|---|
x1 | 0-704 | short | x1 coordinate point |
y1 | 0-576 | short | y1 coordinate point |
x2 | 0-704 | short | x2 coordinate point |
y2 | 0-576 | short | y2 coordinate point |
x3 | 0-704 | short | x3 coordinate point |
y3 | 0-576 | short | y3 coordinate point |
x4 | 0-704 | short | x4 coordinate point |
y4 | 0-576 | short | y4 coordinate point |
Table 8
Parameter | Range | Type | Description |
---|---|---|---|
cloud_video_is_used | 0~MAX_PARA_CHN_NUM | array | Id of the channel where the cloud video upload function is enabled |
max_cloud_video_upload_num | MAX_CLOUD_VIDEO_RECORD_NUM | int | The maximum number of channels supported for cloud video uploading |
Table 9
Parameter | Range | Type | Description |
---|---|---|---|
schedule_type | "SendEmail" "FtpPicUpload" "CloudPicUpload" "Record" "AlarmOut" "FtpVdUpload" "CloudVdUpload" "FloodLight" "Siren" "EnforcerLight" | string | Schedule type |
week | Obejct | Weekly information is shown in the Table 10 |
Table 10
Parameter | Range | Type | Description |
---|---|---|---|
day | "Sun" "Mon" "Tue" "Wed" "Thu" "Fri" "Sat" | string | day |
time | int | time |
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
Get
Function
This API is used to get parameter for AI > Setup > Line Crossing Detection page.
Request Message
Table 1
Parameter | Range | Type | Description |
---|---|---|---|
channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” The number of channels depends on the capabilities of the device. | string array | Each array bit represents a channel with a string. DVR/NVR need; IPC only use CH1 |
page_type | “ChannelConfig”, “AlarmConfig” | string | The 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | JSON object | Channel Information JSON show as follow Table Table 3 | |
page_type | “ChannelConfig”, “AarmConfig” | string | It 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_max | int | Maximum number of channels |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | JSON show as follow Table Table 4 | |
… | Json Object | ||
IP_CH1 | Json Object | ||
… | Json Object | ||
WIFI_CH1 | Json 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 aalarm output channel with a string. Camera: Local->1:open, null value: close |
latch_time | "10","20","40","60" | string | Alarm output time |
record_enable | true, false | bool | Recording channel switching |
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 |
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 |
sensitivity | 1-4 | int | Detection sensitivity |
sensitivity_ex | 1-100 | int | Optimized detection sensitivity |
target_validity | 1-4 | int | Confidence |
min_pixel | 64-1080 | int | Minimum pixel value |
max_pixel | 320-1080 | int | Maximum pixel value |
detection_type | "Motion" "Pedestrian" "Vehicle" "Pedestrian &Vehicle" | string | Detection type, human shape and vehicle shape (normal detection type) |
detection_type | “Pedestrian” "Motor Vehicle" "Non-motorized Vehicle" | array | Detection type, human figure, motor vehicle, non-motor vehicle (machine is not human type) (ipc intelligent second generation dedicated) |
iva_lines | 0:no line 1:draw a line | int | Whether there will be a line in the preview and playback (ipc smart second generation only) |
rule_info | JSON object | Single Channel Information JSON show as follow Tabl Table 5 | |
schedule_list | 0-8 | json array | (Consumer NVR docking IPC POE package only) Arming schedule data,show as Table Table 8 . |
mutual_exclusion | "PVD" | json array | The 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_enable | bool | Schedule mode | |
ptz_operation_support | bool | (Ball machine use)Supports the ptz operation | |
scene | Indoor,Outdoor | string | scene |
light_linkage | bool | White light linkage alarm | |
tracking_link | bool | Tracking linkage switch(Ball machine use) | |
enforcerlight_linkage | bool | Red and blue indicator linkage alarm | |
siren_linkage | bool | Alarm sound linkage alarm | |
http_listening | bool | http event push | |
schedule | Object | The schedule is displayed as followsTable 10 | |
default_timeout | 1-120000 | int | Session timeout (range usage) |
Table 5
Parameter | Range | Type | Description |
---|---|---|---|
rule_number1 | Object | Rule number 1,Information JSON show as follow Table Table 6 | |
rule_number2 | Object | Rule number 1,Information JSON show as follow Table Table 6 | |
rule_number3 | Object | Rule number 1,Information JSON show as follow Table Table 6 | |
rule_number4 | Object | Rule number 1,Information JSON show as follow Table Table 6 |
Table 6
Parameter | Range | Type | Description |
---|---|---|---|
rule_switch | bool | Rule switch | |
rule_type | "A->B", "B->A", "A<-->B" | string | Rule direction |
rule_line | Object | Each 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
Parameter | Range | Type | Description |
---|---|---|---|
x1 | 0-704 | short | x1 Coordinate points |
y1 | 0-576 | short | y1 Coordinate points |
x2 | 0-704 | short | x2 Coordinate points |
y2 | 0-576 | short | y2 Coordinate points |
Table 8
Parameter | Range | Type | Description |
---|---|---|---|
cloud_video_is_used | 0~MAX_PARA_CHN_NUM | array | The channel number for which the cloud video upload function has been enabled |
max_cloud_video_upload_num | MAX_CLOUD_VIDEO_RECORD_NUM | int | The maximum number of channels supported by cloud video upload |
Table 9
Parameter | Range | Type | Description |
---|---|---|---|
enable | true, false | bool | Is the current schedule in effect |
start_time | 0 – 1439(23*60+59) | int | Schedule start time (minutes relative to 00:00) |
end_time | 0 – 1439(23*60+59) | int | Schedule end time (minutes relative to 00:00) |
weekday | "Sunday" "Monday" "Tuesday" "Wednesday" "Thursday" "Friday" "Saturday" | array | Indicates the day of the week when the current schedule takes effect, multiple choices are allowed |
Table 10
Parameter | Range | Type | Description |
---|---|---|---|
schedule_type | "SendEmail" "FtpPicUpload" "CloudPicUpload" "Record" "AlarmOut" "FtpVdUpload" "CloudVdUpload" "FloodLight" "Siren" "EnforcerLight" | string | Schedule type |
week | Obejct | Weekly information such as Table 11 |
Table 11
Parameter | Range | Type | Description |
---|---|---|---|
day | "Sun" "Mon" "Tue" "Wed" "Thu" "Fri" "Sat" | string | day |
time | int | time |
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
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
Parameter | Range | Type | Description |
---|---|---|---|
channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” The number of channels depends on the capability of the device. | string array | Each array bit represents a channel with a string. DVR/NVR need. IPC only uses CH1 |
page_type | “ChannelConfig”, “AlarmConfig” | string | Data 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | JSON object | Single Channel Information JSON show as follow Table x | |
page_type | “ChannelConfig”, “AarmConfig” | string | The data used to distinguish between the channel configuration page and the alarm configuration page is only needed when setting |
channel_max | int | Maximum number of channels |
Table x
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | JSON show as followTable 3 | |
... | Json Object | ||
IP_CH1 | Json Object | ||
... | Json Object | ||
WIFI_CH1 | Json Object | ||
... | Json Object |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
status | "Offline","Online", “Nonsupport” | string | Channel 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. | array | Alarm output channel Each array bit represents aalarm output channel with a string. Camera: Local->1:open,NULL:close |
latch_time | "10","20","40", "60" | string | Alarm output time |
record_enable | ture,false | bool | Recording channel switch |
post_recording | "30","60","120", "300" | string | Video delay time |
send_email | true, false | bool | Outgoing mail switch |
ftp_picture_upload | true, false | bool | Send mail switch Channel Capture FTP Upload switch (dedicated to NVR) |
ftp_video_upload | true, false | bool | Channel video FTP upload switch (NVR special) |
picture_to_cloud | true, false | bool | Image upload switch (NVR only) |
light_linkage | true, false | bool | Alarm linkage switch |
switch | true, false | bool | switch,false: close true: open |
sensitivity | 1-4 | int | Detection sensitivity |
min_pixel | 64-1080 | int | Minimum pixel value |
max_pixel | 320-1080 | int | Maximum pixel value |
max_detection_num | 1-100 | int | Number of detecters alarm threshold |
max_pro_time | 1-3600 | int | Single processing time alarm threshold |
detection_range | "FullScreen" "Customize" | string | detection range /0: full-screen mode, 1: custom mode/ |
iva_lines | 0 not draw lines 1 draw lines | int | Preview and play back whether lines will appear |
rule_info | Object | Information JSON show as followTable 4 | |
schedule_enable | bool | schedule mode | |
ptz_operation_support | bool | (Ball machine use)Supports the ptz operation | |
video_to_cloud | bool | Upload video to cloud storage | |
enforcerlight_linkage | bool | Red and blue indicator linkage alarm | |
siren_linkage | bool | Alarm sound linkage alarm | |
http_listening | bool | http event push | |
schedule | Object | The schedule is displayed as followsTable 7 | |
default_timeout | 1-120000 | int | Session timeout (range usage) |
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
rule_number1 | Object | Rule number 1,Information JSON show as followTable 5 | |
rule_number2 | Object | Rule number 2,Information JSON show as followTable 5 | |
rule_number3 | Object | Rule number 3,Information JSON show as followTable 5 | |
rule_number4 | Object | Rule number 4,Information JSON show as followTable 5 |
Table 5
Parameter | Range | Type | Description |
---|---|---|---|
rule_switch | true, false | bool | /* One byte per channel represents up to 4 rules, 0- off, 1- Use */ (IPC Smart Generation only) |
rule_rect | Object | octagon,Information JSON show as followTable 6 |
Table 6
Parameter | Range | Type | Description |
---|---|---|---|
x1 | 0-704 | short | x1 coordinate point |
y1 | 0-576 | short | y1 coordinate point |
x2 | 0-704 | short | x2 coordinate point |
y2 | 0-576 | short | y2 coordinate point |
x3 | 0-704 | short | x3 coordinate point |
y3 | 0-576 | short | y3 coordinate point |
x4 | 0-704 | short | x4 coordinate point |
y4 | 0-576 | short | y4 coordinate point |
x5 | 0-704 | short | x5 coordinate point |
y5 | 0-576 | short | y5 coordinate point |
x6 | 0-704 | short | x6 coordinate point |
y6 | 0-576 | short | y6 coordinate point |
x7 | 0-704 | short | x7 coordinate point |
y7 | 0-576 | short | y7 coordinate point |
x8 | 0-704 | short | x8 coordinate point |
y8 | 0-576 | short | y8 coordinate point |
Table 7
Parameter | Range | Type | Description |
---|---|---|---|
schedule_type | "SendEmail" "FtpPicUpload" "CloudPicUpload" "Record" "AlarmOut" "FtpVdUpload" "CloudVdUpload" "FloodLight" "Siren" "EnforcerLight" | string | Schedule type |
week | Obejct | Weekly information such as Table 8 |
Table 8
Parameter | Range | Type | Description |
---|---|---|---|
day | "Sun" "Mon" "Tue" "Wed" "Thu" "Fri" "Sat" | string | day |
time | int | time |
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
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
Parameter | Range | Type | Description |
---|---|---|---|
channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” The number of channels depends on the capability of the device. | string array | Each array bit represents a channel with a string. DVR/NVR need. IPC only uses CH1 |
page_type | “ChannelConfig”, “AlarmConfig” | string | Data 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | JSON object | Single Channel Information JSON show as follow Table x | |
page_type | “ChannelConfig”, “AarmConfig” | string | The data used to distinguish between the channel configuration page and the alarm configuration page is only needed when setting |
channel_max | int | Maximum number of channels |
Table x
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | JSON show as followTable 3 | |
... | Json Object | ||
IP_CH1 | Json Object | ||
... | Json Object | ||
WIFI_CH1 | Json Object | ||
... | Json Object |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
status | "Offline","Online", “Nonsupport” | string | Channel 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. | array | Alarm output channel Each array bit represents aalarm output channel with a string. Camera: Local->1:open,NULL:close |
latch_time | "10","20","40", "60" | string | Alarm output time |
record_enable | ture,false | bool | Recording channel switch |
record_channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” | array | Alarm output channel Channel alarm linkage switch |
post_recording | "0","5","10", "20","30" | string | Video delay time |
send_email | true, false | bool | Outgoing mail switch |
ftp_picture_upload | true, false | bool | Send mail switch Channel Capture FTP Upload switch (dedicated to NVR) |
ftp_video_upload | true, false | bool | Channel video FTP upload switch (NVR special) |
picture_to_cloud | true, false | bool | Image upload switch (NVR only) |
video_to_cloud | true, false | bool | Video Cloud Upload Switch (NVR special) |
full_screen | bool | FullScreen Switch (NVR only) | |
buzzer | "0","10","20","40", "60" | string | Buzzer time (NVR only) |
show_message | true, false | bool | Display information switch |
switch | true, false | bool | switch,false: close true: open |
sensitivity | 1-100 | int | Detection sensitivity |
detection_type | “Baby Crying Sound” "Dog Barking" "Gunshot" | array | Detection type: baby crying, dog barking, gunshots |
schedule_enable | bool | Schedule mode | |
light_linkage | bool | The white light is associated with an alarm | |
enforcerlight_linkage | bool | Red and blue indicator linkage alarm | |
siren_linkage | bool | Alarm sound linkage alarm | |
http_listening | bool | http event push | |
schedule | Object | The schedule is shown in the Table 4 |
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
schedule_type | "SendEmail" "FtpPicUpload" "CloudPicUpload" "Record" "AlarmOut" "FtpVdUpload" "CloudVdUpload" "FloodLight" "Siren" "EnforcerLight" | string | Schedule type |
week | Obejct | Weekly information such as Table 5 |
Table 5
Parameter | Range | Type | Description |
---|---|---|---|
day | "Sun" "Mon" "Tue" "Wed" "Thu" "Fri" "Sat" | string | day |
time | int | time |
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
Get
Function
This API is used to get AI > Setup > Region Entrance configuration parameters.
Request Message
Parameter Description
Parameter | Range | Type | Description |
---|---|---|---|
channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” The number of channels depends on the capabilities of the device. | String array | String array |
page_type | “ChannelConfig”, “AlarmConfig” | string | The 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | JSON object | Channel Information JSON show as follow Table 3 | |
page_type | “ChannelConfig”, “AarmConfig” | string | It 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_max | int | Maximum number of channels |
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | JSON show as follow Table 4 | |
… | Json Object | ||
IP_CH1 | Json Object | ||
… | Json Object | ||
WIFI_CH1 | Json Object | ||
… | Json Object |
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 aalarm output channel with a string. Camera: Local->1: open, null value: close |
latch_time | "10","20","40","60" | string | Alarm output time |
record_enable | true, false | bool | Recording channel switching |
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 |
send_email | true, false | bool | Send Email switch |
ftp_picture_upload | true, false | bool | Channel capture FTP upload switch (for NVR only) |
ftp_video_upload | true, false | bool | Channel recording FTP upload switch (for NVR only) |
picture_to_cloud | true, false | bool | Picture upload switch (for NVR only) |
video_to_cloud | true, false | bool | Video cloud upload switch (for NVR only) |
full_screen | bool | FullScreen switch (for NVR only) | |
buzzer | "0","10","20","40","60" | string | Buzzer sounding time (for NVR only) |
show_message | bool | Show Message switch (for NVR only) | |
switch | true, false | bool | PID enable switch, false: close true: open |
detection_type | "Motion" "Pedestrian" "Vehicle" "Pedestrian &Vehicle" | string | Detection type, human shape and vehicle shape (normal detection type) |
detection_type | “Pedestrian” "Motor Vehicle" "Non-motorized Vehicle" | array | Detection type, human figure, motor vehicle, non-motor vehicle (machine is not human type) |
sensitivity | 1-100 | int | Detection sensitivity |
target_validity | 1-4 | int | Target validity |
min_pixel | 64-1080 | int | Minimum pixel value |
max_pixel | 320-1080 | int | Maximum pixel value |
rule_info | JSON object | Single-channel information JSON is as follows Table 5 | |
point_num | [min:max] | array | The number of points drawn in the area, minimum 3 points (min), maximum 8 points (max) |
Parameter | Range | Type | Description |
---|---|---|---|
rule_number1 | Object | Rule number 1, the information JSON is displayed as follows Table 6 | |
rule_number2 | Object | Rule number 2, the information JSON is displayed as follows Table 6 | |
rule_number3 | Object | Rule number 3, the information JSON is displayed as follows Table 6 | |
rule_number4 | Object | Rule number 4, the information JSON is displayed as follows Table 6 |
Parameter | Range | Type | Description |
---|---|---|---|
rule_switch | bool | rule switch | |
rule_rect | Object | Rectangle, the information JSON is as follows Table 7 | |
point_num | [min:max] | array | The number of points drawn in the area, minimum 3 points (min), maximum 8 points (max) |
Parameter | Range | Type | Description |
---|---|---|---|
x1 | 0-704 | short | x1 coordinate point |
y1 | 0-576 | short | y1 coordinate point |
x2 | 0-704 | short | x2 coordinate point |
y2 | 0-576 | short | y2 coordinate point |
x3 | 0-704 | short | x3 coordinate point |
y3 | 0-576 | short | y3 coordinate point |
x4 | 0-704 | short | x4 coordinate point |
y4 | 0-576 | short | y4 coordinate point |
x5 | 0-704 | short | x5 coordinate point |
y5 | 0-576 | short | y5 coordinate point |
x6 | 0-704 | short | x6 coordinate point |
y6 | 0-576 | short | y6 coordinate point |
x7 | 0-704 | short | x7 coordinate point |
y7 | 0-576 | short | y7 coordinate point |
x8 | 0-704 | short | x8 coordinate point |
y8 | 0-576 | short | y8 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
Parameter | Range | Type | Description |
---|---|---|---|
channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” The number of channels depends on the capabilities of the device. | String array | String array |
page_type | “ChannelConfig”, “AlarmConfig” | string | The 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | JSON object | Channel Information JSON show as follow Table 3 | |
page_type | “ChannelConfig”, “AarmConfig” | string | It 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_max | int | Maximum number of channels |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | JSON show as follow Table 4 | |
… | Json Object | ||
IP_CH1 | Json Object | ||
… | Json Object | ||
WIFI_CH1 | Json 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 aalarm output channel with a string. Camera: Local->1: open, null value: close |
latch_time | "10","20","40","60" | string | Alarm output time |
record_enable | true, false | bool | Recording channel switching |
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 |
send_email | true, false | bool | Send Email switch |
ftp_picture_upload | true, false | bool | Channel capture FTP upload switch (for NVR only) |
ftp_video_upload | true, false | bool | Channel recording FTP upload switch (for NVR only) |
picture_to_cloud | true, false | bool | Picture upload switch (for NVR only) |
video_to_cloud | true, false | bool | Video cloud upload switch (for NVR only) |
full_screen | bool | FullScreen switch (for NVR only) | |
buzzer | "0","10","20","40","60" | string | Buzzer sounding time (for NVR only) |
show_message | bool | Show Message switch (for NVR only) | |
switch | true, false | bool | PID enable switch, false: close true: open |
detection_type | "Motion" "Pedestrian" "Vehicle" "Pedestrian &Vehicle" | string | Detection type, human shape and vehicle shape (normal detection type) |
detection_type | “Pedestrian” "Motor Vehicle" "Non-motorized Vehicle" | array | Detection type, human figure, motor vehicle, non-motor vehicle (machine is not human type) |
sensitivity | 1-100 | int | Detection sensitivity |
target_validity | 1-4 | int | Target validity |
min_pixel | 64-1080 | int | Minimum pixel value |
max_pixel | 320-1080 | int | Maximum pixel value |
rule_info | JSON object | Single-channel information JSON is as follows Table 5 | |
point_num | [min:max] | array | The number of points drawn in the area, minimum 3 points (min), maximum 8 points (max) |
schedule_enable | bool | Schedule mode | |
ptz_operation_support | bool | (Ball machine use)Supports the ptz operation | |
iva_lines | 0 Do not draw a line 1 Draw a line | int | Preview and play back whether lines will appear |
light_linkage | bool | White light linkage alarm | |
tracking_link | bool | Tracking linkage switch(Ball machine use) | |
enforcerlight_linkage | bool | Red and blue indicator linkage alarm | |
siren_linkage | bool | Alarm sound linkage alarm | |
http_listening | bool | http event push | |
schedule | Object | The schedule is shown in the tableTable 8 | |
default_timeout | 1-120000 | int | Session timeout (range usage) |
Table 5
Parameter | Range | Type | Description |
---|---|---|---|
rule_number1 | Object | Rule number 1, the information JSON is displayed as follows Table 6 | |
rule_number2 | Object | Rule number 2, the information JSON is displayed as follows Table 6 | |
rule_number3 | Object | Rule number 3, the information JSON is displayed as follows Table 6 | |
rule_number4 | Object | Rule number 4, the information JSON is displayed as follows Table 6 |
Table 6
Parameter | Range | Type | Description |
---|---|---|---|
rule_switch | bool | rule switch | |
rule_rect | Object | Rectangle, the information JSON is as follows Table 7 | |
point_num | [min:max] | array | The number of points drawn in the area, minimum 3 points (min), maximum 8 points (max) |
Table 7
Parameter | Range | Type | Description |
---|---|---|---|
x1 | 0-704 | short | x1 coordinate point |
y1 | 0-576 | short | y1 coordinate point |
x2 | 0-704 | short | x2 coordinate point |
y2 | 0-576 | short | y2 coordinate point |
x3 | 0-704 | short | x3 coordinate point |
y3 | 0-576 | short | y3 coordinate point |
x4 | 0-704 | short | x4 coordinate point |
y4 | 0-576 | short | y4 coordinate point |
x5 | 0-704 | short | x5 coordinate point |
y5 | 0-576 | short | y5 coordinate point |
x6 | 0-704 | short | x6 coordinate point |
y6 | 0-576 | short | y6 coordinate point |
x7 | 0-704 | short | x7 coordinate point |
y7 | 0-576 | short | y7 coordinate point |
x8 | 0-704 | short | x8 coordinate point |
y8 | 0-576 | short | y8 coordinate point |
Table 8
Parameter | Range | Type | Description |
---|---|---|---|
schedule_type | "SendEmail" "FtpPicUpload" "CloudPicUpload" "Record" "AlarmOut" "FtpVdUpload" "CloudVdUpload" "FloodLight" "Siren" "EnforcerLight" | string | Schedule type |
week | Obejct | Weekly information such as Table 9 |
Table 9
Parameter | Range | Type | Description |
---|---|---|---|
day | "Sun" "Mon" "Tue" "Wed" "Thu" "Fri" "Sat" | string | day |
time | int | time |
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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | JSON object | Channel Information JSON show as follow Table 2 | |
page_type | “ChannelConfig”, “AarmConfig” | string | It 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_max | int | Maximum number of channels |
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | JSON show as follow Table 3 | |
… | Json Object | ||
IP_CH1 | Json Object | ||
… | Json Object | ||
WIFI_CH1 | Json Object | ||
… | Json Object |
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 aalarm output channel with a string. Camera: Local->1: open, null value: close |
latch_time | "10","20","40","60" | string | Alarm output time |
record_enable | true, false | bool | Recording channel switching |
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 |
send_email | true, false | bool | Send Email switch |
ftp_picture_upload | true, false | bool | Channel capture FTP upload switch (for NVR only) |
ftp_video_upload | true, false | bool | Channel recording FTP upload switch (for NVR only) |
picture_to_cloud | true, false | bool | Picture upload switch (for NVR only) |
video_to_cloud | true, false | bool | Video cloud upload switch (for NVR only) |
full_screen | bool | FullScreen switch (for NVR only) | |
buzzer | "0","10","20","40","60" | string | Buzzer sounding time (for NVR only) |
show_message | bool | Show Message switch (for NVR only) | |
switch | true, false | bool | PID enable switch, false: close true: open |
detection_type | "Motion" "Pedestrian" "Vehicle" "Pedestrian &Vehicle" | string | Detection type, human shape and vehicle shape (normal detection type) |
detection_type | “Pedestrian” "Motor Vehicle" "Non-motorized Vehicle" | array | Detection type, human figure, motor vehicle, non-motor vehicle (machine is not human type) |
sensitivity | 1-100 | int | Detection sensitivity |
target_validity | 1-4 | int | Target validity |
min_pixel | 64-1080 | int | Minimum pixel value |
max_pixel | 320-1080 | int | Maximum pixel value |
rule_info | JSON object | Single-channel information JSON is as follows Table 4 | |
point_num | [min:max] | array | The number of points drawn in the area, minimum 3 points (min), maximum 8 points (max) |
Parameter | Range | Type | Description |
---|---|---|---|
rule_number1 | Object | Rule number 1, the information JSON is displayed as follows Table 5 | |
rule_number2 | Object | Rule number 2, the information JSON is displayed as follows Table 5 | |
rule_number3 | Object | Rule number 3, the information JSON is displayed as follows Table 5 | |
rule_number4 | Object | Rule number 4, the information JSON is displayed as follows Table 5 |
Parameter | Range | Type | Description |
---|---|---|---|
rule_switch | bool | rule switch | |
rule_rect | Object | Rectangle, the information JSON is as follows Table 6 | |
point_num | [min:max] | array | The number of points drawn in the area, minimum 3 points (min), maximum 8 points (max) |
Parameter | Range | Type | Description |
---|---|---|---|
x1 | 0-704 | short | x1 coordinate point |
y1 | 0-576 | short | y1 coordinate point |
x2 | 0-704 | short | x2 coordinate point |
y2 | 0-576 | short | y2 coordinate point |
x3 | 0-704 | short | x3 coordinate point |
y3 | 0-576 | short | y3 coordinate point |
x4 | 0-704 | short | x4 coordinate point |
y4 | 0-576 | short | y4 coordinate point |
x5 | 0-704 | short | x5 coordinate point |
y5 | 0-576 | short | y5 coordinate point |
x6 | 0-704 | short | x6 coordinate point |
y6 | 0-576 | short | y6 coordinate point |
x7 | 0-704 | short | x7 coordinate point |
y7 | 0-576 | short | y7 coordinate point |
x8 | 0-704 | short | x8 coordinate point |
y8 | 0-576 | short | y8 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)
Parameter | Range | Type | Description |
---|---|---|---|
cloud_video_is_used | 0~MAX_PARA_CHN_NUM | array | The channel number for which the cloud video upload function has been enabled |
max_cloud_video_upload_num | MAX_CLOUD_VIDEO_RECORD_NUM | int | The 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
Get
Function
This API is used to get AI > Setup > Region Exiting configuration parameters.
Request Message
Parameter Description
Parameter | Range | Type | Description |
---|---|---|---|
channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” The number of channels depends on the capabilities of the device. | String array | Each array bit represents a channel with a string. DVR/NVR need; IPC only use CH1 |
page_type | “ChannelConfig”, “AlarmConfig” | string | The 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | JSON object | Channel Information JSON show as follow Table 3 | |
page_type | “ChannelConfig”, “AarmConfig” | string | It 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_max | int | Maximum number of channels |
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | JSON show as follow Table 4 | |
… | Json Object | ||
IP_CH1 | Json Object | ||
… | Json Object | ||
WIFI_CH1 | Json Object | ||
… | Json Object |
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 aalarm output channel with a string. Camera: Local->1: open, null value: close |
latch_time | "10","20","40","60" | string | Alarm output time |
record_enable | true, false | bool | Recording channel switching |
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 |
send_email | true, false | bool | Send Email switch |
ftp_picture_upload | true, false | bool | Channel capture FTP upload switch (for NVR only) |
ftp_video_upload | true, false | bool | Channel recording FTP upload switch (for NVR only) |
picture_to_cloud | true, false | bool | Picture upload switch (for NVR only) |
video_to_cloud | true, false | bool | Video cloud upload switch (for NVR only) |
full_screen | bool | FullScreen switch (for NVR only) | |
buzzer | "0","10","20","40","60" | string | Buzzer sounding time (for NVR only) |
show_message | bool | Show Message switch (for NVR only) | |
switch | true, false | bool | PID enable switch, false: close true: open |
detection_type | "Motion" "Pedestrian" "Vehicle" "Pedestrian &Vehicle" | string | Detection type, human shape and vehicle shape (normal detection type) |
detection_type | “Pedestrian” "Motor Vehicle" "Non-motorized Vehicle" | array | Detection type, human figure, motor vehicle, non-motor vehicle (machine is not human type) |
sensitivity | 1-100 | int | Detection sensitivity |
target_validity | 1-4 | int | Target validity |
min_pixel | 64-1080 | int | Minimum pixel value |
max_pixel | 320-1080 | int | Maximum pixel value |
rule_info | JSON object | Single-channel information JSON is as follows Table 5 | |
point_num | [min:max] | array | The number of points drawn in the area, minimum 3 points (min), maximum 8 points (max) |
Parameter | Range | Type | Description |
---|---|---|---|
rule_number1 | Object | Rule number 1, the information JSON is displayed as follows Table 6 | |
rule_number2 | Object | Rule number 2, the information JSON is displayed as follows Table 6 | |
rule_number3 | Object | Rule number 3, the information JSON is displayed as follows Table 6 | |
rule_number4 | Object | Rule number 4, the information JSON is displayed as follows Table 6 |
Parameter | Range | Type | Description |
---|---|---|---|
rule_switch | bool | rule switch | |
rule_rect | Object | Rectangle, the information JSON is as follows Table 7 | |
point_num | [min:max] | array | The number of points drawn in the area, minimum 3 points (min), maximum 8 points (max) |
Parameter | Range | Type | Description |
---|---|---|---|
x1 | 0-704 | short | x1 coordinate point |
y1 | 0-576 | short | y1 coordinate point |
x2 | 0-704 | short | x2 coordinate point |
y2 | 0-576 | short | y2 coordinate point |
x3 | 0-704 | short | x3 coordinate point |
y3 | 0-576 | short | y3 coordinate point |
x4 | 0-704 | short | x4 coordinate point |
y4 | 0-576 | short | y4 coordinate point |
x5 | 0-704 | short | x5 coordinate point |
y5 | 0-576 | short | y5 coordinate point |
x6 | 0-704 | short | x6 coordinate point |
y6 | 0-576 | short | y6 coordinate point |
x7 | 0-704 | short | x7 coordinate point |
y7 | 0-576 | short | y7 coordinate point |
x8 | 0-704 | short | x8 coordinate point |
y8 | 0-576 | short | y8 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
Parameter | Range | Type | Description |
---|---|---|---|
channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” The number of channels depends on the capabilities of the device. | String array | Each array bit represents a channel with a string. DVR/NVR need; IPC only use CH1 |
page_type | “ChannelConfig”, “AlarmConfig” | string | The 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | JSON object | Channel Information JSON show as follow Table 3 | |
page_type | “ChannelConfig”, “AarmConfig” | string | It 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_max | int | Maximum number of channels |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | JSON show as follow Table 4 | |
… | Json Object | ||
IP_CH1 | Json Object | ||
… | Json Object | ||
WIFI_CH1 | Json 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 aalarm output channel with a string. Camera: Local->1: open, null value: close |
latch_time | "10","20","40","60" | string | Alarm output time |
record_enable | true, false | bool | Recording channel switching |
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 |
send_email | true, false | bool | Send Email switch |
ftp_picture_upload | true, false | bool | Channel capture FTP upload switch (for NVR only) |
ftp_video_upload | true, false | bool | Channel recording FTP upload switch (for NVR only) |
picture_to_cloud | true, false | bool | Picture upload switch (for NVR only) |
video_to_cloud | true, false | bool | Video cloud upload switch (for NVR only) |
full_screen | bool | FullScreen switch (for NVR only) | |
buzzer | "0","10","20","40","60" | string | Buzzer sounding time (for NVR only) |
show_message | bool | Show Message switch (for NVR only) | |
switch | true, false | bool | PID enable switch, false: close true: open |
detection_type | "Motion" "Pedestrian" "Vehicle" "Pedestrian &Vehicle" | string | Detection type, human shape and vehicle shape (normal detection type) |
detection_type | “Pedestrian” "Motor Vehicle" "Non-motorized Vehicle" | array | Detection type, human figure, motor vehicle, non-motor vehicle (machine is not human type) |
sensitivity | 1-100 | int | Detection sensitivity |
target_validity | 1-4 | int | Target validity |
min_pixel | 64-1080 | int | Minimum pixel value |
max_pixel | 320-1080 | int | Maximum pixel value |
rule_info | JSON object | Single-channel information JSON is as follows Table 5 | |
point_num | [min:max] | array | The number of points drawn in the area, minimum 3 points (min), maximum 8 points (max) |
schedule_enable | bool | Schedule mode | |
ptz_operation_support | bool | (Ball machine use)Supports the ptz operation | |
iva_lines | 0 Do not draw a line 1 Draw a line | int | Preview and play back whether lines will appear |
light_linkage | bool | White light linkage alarm | |
tracking_link | bool | Tracking linkage switch(Ball machine use) | |
enforcerlight_linkage | bool | Red and blue indicator linkage alarm | |
siren_linkage | bool | Alarm sound linkage alarm | |
http_listening | bool | http event push | |
schedule | Object | The schedule is displayed as followsTable 8 | |
default_timeout | 1-120000 | int | Session timeout (range usage) |
Table 5
Parameter | Range | Type | Description |
---|---|---|---|
rule_number1 | Object | Rule number 1, the information JSON is displayed as follows Table 6 | |
rule_number2 | Object | Rule number 2, the information JSON is displayed as follows Table 6 | |
rule_number3 | Object | Rule number 3, the information JSON is displayed as follows Table 6 | |
rule_number4 | Object | Rule number 4, the information JSON is displayed as follows Table 6 |
Table 6
Parameter | Range | Type | Description |
---|---|---|---|
rule_switch | bool | rule switch | |
rule_rect | Object | Rectangle, the information JSON is as follows Table 7 | |
point_num | [min:max] | array | The number of points drawn in the area, minimum 3 points (min), maximum 8 points (max) |
Table 7
Parameter | Range | Type | Description |
---|---|---|---|
x1 | 0-704 | short | x1 coordinate point |
y1 | 0-576 | short | y1 coordinate point |
x2 | 0-704 | short | x2 coordinate point |
y2 | 0-576 | short | y2 coordinate point |
x3 | 0-704 | short | x3 coordinate point |
y3 | 0-576 | short | y3 coordinate point |
x4 | 0-704 | short | x4 coordinate point |
y4 | 0-576 | short | y4 coordinate point |
x5 | 0-704 | short | x5 coordinate point |
y5 | 0-576 | short | y5 coordinate point |
x6 | 0-704 | short | x6 coordinate point |
y6 | 0-576 | short | y6 coordinate point |
x7 | 0-704 | short | x7 coordinate point |
y7 | 0-576 | short | y7 coordinate point |
x8 | 0-704 | short | x8 coordinate point |
y8 | 0-576 | short | y8 coordinate point |
Table 8
Parameter | Range | Type | Description |
---|---|---|---|
schedule_type | "SendEmail" "FtpPicUpload" "CloudPicUpload" "Record" "AlarmOut" "FtpVdUpload" "CloudVdUpload" "FloodLight" "Siren" "EnforcerLight" | string | Schedule type |
week | Obejct | Weekly information such as Table 9 |
Table 9
Parameter | Range | Type | Description |
---|---|---|---|
day | "Sun" "Mon" "Tue" "Wed" "Thu" "Fri" "Sat" | string | day |
time | int | time |
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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | JSON object | Channel Information JSON show as follow Table 2 | |
page_type | “ChannelConfig”, “AarmConfig” | string | It 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_max | int | Maximum number of channels |
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | JSON show as follow Table 3 | |
… | Json Object | ||
IP_CH1 | Json Object | ||
… | Json Object | ||
WIFI_CH1 | Json Object | ||
… | Json Object |
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 aalarm output channel with a string. Camera: Local->1: open, null value: close |
latch_time | "10","20","40","60" | string | Alarm output time |
record_enable | true, false | bool | Recording channel switching |
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 |
send_email | true, false | bool | Send Email switch |
ftp_picture_upload | true, false | bool | Channel capture FTP upload switch (for NVR only) |
ftp_video_upload | true, false | bool | Channel recording FTP upload switch (for NVR only) |
picture_to_cloud | true, false | bool | Picture upload switch (for NVR only) |
video_to_cloud | true, false | bool | Video cloud upload switch (for NVR only) |
full_screen | bool | FullScreen switch (for NVR only) | |
buzzer | "0","10","20","40","60" | string | Buzzer sounding time (for NVR only) |
show_message | bool | Show Message switch (for NVR only) | |
switch | true, false | bool | PID enable switch, false: close true: open |
detection_type | "Motion" "Pedestrian" "Vehicle" "Pedestrian &Vehicle" | string | Detection type, human shape and vehicle shape (normal detection type) |
detection_type | “Pedestrian” "Motor Vehicle" "Non-motorized Vehicle" | array | Detection type, human figure, motor vehicle, non-motor vehicle (machine is not human type) |
sensitivity | 1-100 | int | Detection sensitivity |
target_validity | 1-4 | int | Target validity |
min_pixel | 64-1080 | int | Minimum pixel value |
max_pixel | 320-1080 | int | Maximum pixel value |
rule_info | JSON object | Single-channel information JSON is as follows Table 4 | |
point_num | [min:max] | array | The number of points drawn in the area, minimum 3 points (min), maximum 8 points (max) |
Parameter | Range | Type | Description |
---|---|---|---|
rule_number1 | Object | Rule number 1, the information JSON is displayed as follows Table 5 | |
rule_number2 | Object | Rule number 2, the information JSON is displayed as follows Table 5 | |
rule_number3 | Object | Rule number 3, the information JSON is displayed as follows Table 5 | |
rule_number4 | Object | Rule number 4, the information JSON is displayed as follows Table 5 |
Parameter | Range | Type | Description |
---|---|---|---|
rule_switch | bool | rule switch | |
rule_rect | Object | Rectangle, the information JSON is as follows Table 6 | |
point_num | [min:max] | array | The number of points drawn in the area, minimum 3 points (min), maximum 8 points (max) |
Parameter | Range | Type | Description |
---|---|---|---|
x1 | 0-704 | short | x1 coordinate point |
y1 | 0-576 | short | y1 coordinate point |
x2 | 0-704 | short | x2 coordinate point |
y2 | 0-576 | short | y2 coordinate point |
x3 | 0-704 | short | x3 coordinate point |
y3 | 0-576 | short | y3 coordinate point |
x4 | 0-704 | short | x4 coordinate point |
y4 | 0-576 | short | y4 coordinate point |
x5 | 0-704 | short | x5 coordinate point |
y5 | 0-576 | short | y5 coordinate point |
x6 | 0-704 | short | x6 coordinate point |
y6 | 0-576 | short | y6 coordinate point |
x7 | 0-704 | short | x7 coordinate point |
y7 | 0-576 | short | y7 coordinate point |
x8 | 0-704 | short | x8 coordinate point |
y8 | 0-576 | short | y8 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)
Parameter | Range | Type | Description |
---|---|---|---|
cloud_video_is_used | 0~MAX_PARA_CHN_NUM | array | The channel number for which the cloud video upload function has been enabled |
max_cloud_video_upload_num | MAX_CLOUD_VIDEO_RECORD_NUM | int | The 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
Get
Function
This API is used to get parameter for AI > Setup > Stationary Object Detection page.
Request Message
Table 1
Parameter | Range | Type | Description |
---|---|---|---|
channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” The number of channels depends on the capabilities of the device. | string array | Each array bit represents a channel with a string. DVR/NVR need; IPC only use CH1 |
page_type | “ChannelConfig”, “AlarmConfig” | string | The 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | JSON object | Channel Information JSON show as follow Table Table 3 | |
page_type | “ChannelConfig”, “AarmConfig” | string | It 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_max | int | Maximum number of channels | |
support_copy | bool | Whether the page supports copy(for NVR and DVR only) |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | JSON show as follow Table Table 4 | |
… | Json Object | ||
IP_CH1 | Json Object | ||
… | Json Object | ||
WIFI_CH1 | Json 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 aalarm output channel with a string. Camera:Local->1: open, empty value: close |
latch_time | "10","20","40","60" | string | Alarm output time |
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 |
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 |
sensitivity | 1-4、0-100 | int | Detection sensitivity |
snap_mode | "Default" "RealTimeMode" "IntervalMode" | string | Screenshot mode,IntervalMode JSON show as follow TableTable 5 |
min_pixel | 64-1080 | int | Minimum pixel value |
max_pixel | 320-1080 | int | Maximum pixel value |
detection_type | "Pedestrian" "Vehicle" "Pedestrian &Vehicle" | string | Detection type, human shape and vehicle shape |
detection_mode | "StaticMode" "MotionMode" | string | Detection mode |
detection_range | "FullScreen" "Customize" | string | Examination range |
rule_info | JSON array | Single Channel Information JSON show as follow Table Table 5 | |
iva_lines | 0:does not draw a line 1:draws a line | int | Whether there will be a line in the preview and playback |
copy_ch | "digit""analog""wifi" | string | Flags to support channel duplication(for NVR and DVR only) |
schedule_enable | bool | Schedule mode | |
ptz_operation_support | bool | (Ball machine use)Supports the ptz operation | |
scene | Indoor Outdoor | string | scene |
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 | |
schedule | Object | The schedule is displayed as followsTable 8 |
Table 5
Parameter | Range | Type | Description |
---|---|---|---|
rule_number1 | Object | Rule number 1,Information JSON show as follow Table Table 6 | |
rule_number2 | Object | Rule number 2,Information JSON show as follow Table Table 6 | |
rule_number3 | Object | Rule number 3,Information JSON show as follow Table Table 6 | |
rule_number4 | Object | Rule number 4,Information JSON show as follow Table Table 6 |
Table 6
Parameter | Range | Type | Description |
---|---|---|---|
rule_rect | Object | Each 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_switch | bool | Rule switch | |
rule_type | “Legacy” “Lost” “Lost&Legacy” | string | Rule type |
Table 7
Parameter | Range | Type | Description |
---|---|---|---|
x1 | 0-704 | short | x1 coordinate points |
y1 | 0-576 | short | y1 coordinate points |
x2 | 0-704 | short | x2 coordinate points |
y2 | 0-576 | short | y2 coordinate points |
x3 | 0-704 | short | x3 coordinate points |
y3 | 0-576 | short | y3 coordinate points |
x4 | 0-704 | short | x4 coordinate points |
y4 | 0-576 | short | y4 coordinate points |
Table 8
Parameter | Range | Type | Description |
---|---|---|---|
schedule_type | "SendEmail" "FtpPicUpload" "CloudPicUpload" "Record" "AlarmOut" "FtpVdUpload" "CloudVdUpload" "FloodLight" "Siren" "EnforcerLight" | string | Schedule type |
week | Obejct | Weekly information such as Table 9 |
Table 9
Parameter | Range | Type | Description |
---|---|---|---|
day | "Sun" "Mon" "Tue" "Wed" "Thu" "Fri" "Sat" | string | day |
time | int | time |
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
Parameter | Range | Type | Description |
---|---|---|---|
cloud_video_is_used | 0~MAX_PARA_CHN_NUM | array | The channel number for which the cloud video upload function has been enabled |
max_cloud_video_upload_num | MAX_CLOUD_VIDEO_RECORD_NUM | int | The maximum number of channels supported by cloud video upload |
analog_channel_is_used | 0~MAX_ANALOG_CHN | array | The number of the analog channel with the smart switch turned on |
max_intelligent_analog_channel_num | 1 | int | The 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
Parameter | Required | Description |
---|---|---|
Action | YES | Request 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
Parameter | Range | Type | Description |
---|---|---|---|
FaceInfo | JSON array | FaceInfo JSON show as follow Table 2 | |
SnapedObjInfo | JSON array | SnapedObjInfoJSON show as follow Table 3 |
Parameter | Range | Type | Description |
---|---|---|---|
Id | int | Face Id, unique identification (nvr only) | |
GrpId | int | Group Id (nvr only) | |
SnapId | unsigned int | The Id of the picture when the front-end IPC captures | |
Type | 0 | int | Types of face capture objects |
StartTime | unsigned long long | Snapshot start time, such as: 2018-10-25 13:08:36, Unix timestamp (displayed according to UTC time zone uniformly) | |
EndTime | unsigned long long | The capture end time, such as: 2018-10-25 13:08:46, Unix timestamp (when displayed, it will be displayed uniformly in UTC time zone) | |
Similarity | float | Similarity, such as: 93.56932 (for nvr only) | |
Score | int | Image score (confidence) (nvr only) | |
Sex | int | Gender: 0-male, 1-female | |
Age | int | Age | |
Gender | int | Face attribute gender: 0-male, 1-female | |
fAttrAge | int | face attribute age | |
Beauty | int | Beauty | |
GlassesType | int | Glasses type, 0: no glasses, 1: wear glasses (currently there is no distinction between sunglasses and ordinary glasses, all glasses are defaulted) | |
Expression | int | Expression type, 0: no expression, 1: smiling, 2: laughing | |
MouthMask | int | Whether to wear a mask, 0: no mask, 1: with a mask | |
Race | int | Race, 0: Yellow, 1: Caucasian, 2: Black, 3: Arab | |
Chn | int | Channel | |
StrChn | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” The number of channels depends on the capabilities of the device. | string | Channel |
ModifyCnt | int | The 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)" | string | Imported face pictures |
Image2 | "base64(imgData)" | string | Capture face pictures |
Image3 | "base64(imgData)" | string | Capture human body pictures |
Image4 | "base64(imgData)" | string | Capture background image |
Feature | "base64(feature)" | string | Eigenvalues (nvr only) |
Name | "Mike" | string | Name (for nvr only) |
Country | "China" | string | Nationality (nvr only) |
Nation | "Han" | string | Ethnic (nvr only) |
NativePlace | "Guangdong,Zhuhai" | string | Hometown (nvr only) |
IdCode | "415025199203050916" | string | ID card (nvr only) |
Job | "Software" | string | work (nvr only) |
Phone | "12345678902" | string | Phone (nvr only) |
"abcd@163.com" | string | Mail (for nvr only) | |
Domicile | "Guangdong,Zhuhai,Xiangzhou ..." | string | Current residence (nvr only) |
Remark | "Detail of this person ..." | string | Evaluation (for nvr only) |
Parameter | Range | Type | Description |
---|---|---|---|
chn | string | Channel | |
StrChn | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” The number of channels depends on the capabilities of the device. | string | Channel |
GrpId | int | GroupId | |
StartTime | unsigned long long | Snapshot start time, such as: 2018-10-25 13:08:36, Unix timestamp (displayed according to UTC time zone uniformly) | |
EndTime | unsigned long long | The 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)" | string | Imported face pictures |
Background | "base64(imgData)" | string | Capture face pictures |
SnapId | unsigned int | The Id of the picture when the front-end IPC captures | |
Type | int | Types 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
Get
Function
This API is used to get CC statistics.
Request Message
Parameter Description
Table 1
Parameter | Range | Type | Description |
---|---|---|---|
channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” The number of channels depends on the capabilities of the device. | string array | Each 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | JSON array | Single Channel Information JSON show as follow Table Table 2 | |
channel_max | int | Maximum number of channels |
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | When 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_CH1 | Json Object | ||
… | Json Object | ||
WIFI_CH1 | Json Object | ||
… | Json Object |
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. |
search_date | string | Query date | |
detection_type | "Motion" "Person" "Vehicle" "Non-Vehicle" | string | Detection type |
cross_type | "Cross In""Cross Out" | string | Way to cross the line |
ai_cross_count | bool | Distinguish between first-generation and second-generation CCs, here the default is true |
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 |
report | int array | Number 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
Parameter | Range | Type | Description |
---|---|---|---|
MsgId | null | ||
Engine | 0 | int | Which search engine to use, 0 or 1, used in conjunction with the search interface |
StartTime | string | Start time like:"2020-07-12 00:00:00" | |
EndTime | string | End time such as:"2020-07-12 23:59:59" | |
Chn | [0, 1, 2, 3, 4, 5, 6, 7, 8] | array | The channel to search, the value represents the channel |
Group | [1, 2, 5, 9, 13….] | array | The 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
Get
Function
This API is used to get face statistics.
Request Message
Parameter | Range | Type | Description |
---|---|---|---|
MsgId | null | ||
Engine | 0 | int | Which search engine to use, 0 or 1, used with the search interface |
StartIndex | 0 | int | The starting index of the request, for example, the first time: 0-9999, the second time: 10000-19999, then the StartIndex is 0, 10000 respectively |
Count | int | The 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
Parameter | Range | Type | Description |
---|---|---|---|
MsgId | null | ||
Result | 0 | int | See the results AI > Face search > Search >Table 3 |
channel_max | int | Maximum number of channels | |
Count | int | Total number of objects for this response | |
Statistics | array | Face statistics JSON (show as follow TableTable 3) |
Parameter | Range | Type | Description |
---|---|---|---|
Group | int | The group ID to which the face belongs | |
Time | unsigned long long | Unix 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) | |
Chn | int | The channel to which the face belongs | |
StrChn | “CH1”…”CH1x” The number of channels depends on the capabilities of the device. | string | The 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
Parameter | Range | Type | Description |
---|---|---|---|
MsgId | null | ||
Engine | 0 | int | Which search engine to use, 0 or 1, used in conjunction with the search interface |
StartTime | string | Start time like:"2020-07-12 00:00:00" | |
EndTime | string | End time such as:"2020-07-12 23:59:59" | |
Chn | [0, 1, 2, 3, 4, 5, 6, 7, 8] | array | The channel to search, the value represents the channel |
Group | [1, 2, 5, 9, 13….] | array | The 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
Parameter | Range | Type | Description |
---|---|---|---|
MsgId | null | ||
Result | 0 | int | Face statistical information search, see the results Table 3 |
channel_max | int | Maximum number of channels | |
Count | int | The actual number of face statistical information |
Result Type | COMMENT |
---|---|
AORT_SUCCESS = 0 | Success |
AORT_NO_DB = -1 | No database |
AORT_DB_EXEC_FAILED = -2 | Database execution failed |
AORT_CALC_FEATURE_FAILED = -3 | Feature extraction failed |
AORT_CANCELED = -4 | Cancelled |
AORT_NO_DISK = -5 | No hard drive |
AORT_DISK_ERROR = -6 | Hard disk error |
AORT_EXIST = -7 | Existed |
AORT_GROUP_INVALID = -8 | Group invalid |
AORT_NOT_EXIST = -9 | Does not exist |
AORT_MORE_FILE_EXIST = -10 | File already exists |
AORT_SEARCH_ERROR = -11 | Search error |
AORT_OVER_MAX_COUNT = -12 | Limit exceeded |
AORT_UPDATING_FEATURE = -13 | Updating feature values |
AORT_NO_USABLE_IPC = -14 | No IPC available for eigenvalue calculation |
AORT_INVALID_PARAM = -15 | Invalid parameter |
AORT_INVALID_FORMAT = -16 | Wrong format |
AORT_INVALID_RES = -17 | Wrong resolution |
AORT_INVALID_MEM = -18 | File too large error |
AORT_CREAT_FAILED = -19 | Creation failed |
AORT_MD5_NOT_MATCH = -20 | MD5 mismatch |
AORT_POS_ERROR = -21 | Location error |
AORT_SIZE_ERROR = -22 | Wrong size |
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,
"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
Get
Function
This API is used to get Heat Map statistics.
Request Message
Parameter Description
Table 1
Parameter | Range | Type | Description |
---|---|---|---|
channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” The number of channels depends on the capabilities of the device. | string array | Each 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | JSON array | Single Channel Information JSON show as follow Table Table 2 | |
channel_max | int | Maximum number of channels |
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | When 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_CH1 | Json Object | ||
… | Json Object | ||
WIFI_CH1 | Json Object | ||
… | Json Object |
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 |
date | string | Query date | |
start_hour | 0 - 23 | int | Start hour, valid when reportType is "Daily report" |
end_hour | 0 - 23 | int | End hour, valid when reportType is "Daily report" |
report_type | "Daily report" "Weekly report" "Monthly report" "Annual report" | string | Report type |
detection_type | "Motion" "face" | string | Detection type |
heat_map_type | int | Request display mode, 1- request space heat map, 0- request time heat map |
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 |
report_type | "Daily report" "Weekly report" "Monthly report" "Annual report" | string | Report type |
detection_type | "Motion" "face" | string | Detection type |
heat_map_type | int | Request display mode, 1- request space heat map, 0- request time heat map | |
time_heat_map | 0 - 31 | int array | Time heat map data, valid when heat_map_type is 0 |
heat_map_width | 0 - 44 | int | Spatial heat map width, valid when heat_map_type is 1 |
heat_map_height | 0 - 36 | int | Spatial heat map height, valid when heat_map_type is 1 |
space_heat_map | 0 - 1583 | int array | Spatial heat map data (unsigned char gray value), valid when heat_map_type is 1 |
background | string | The 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
Parameter | Required | Description |
---|---|---|
Action | YES | Request action, including Get。 |
Get
Function
This API is used to get object statistics.
Request Message
Parameter | Range | Type | Description |
---|---|---|---|
MsgId | null | ||
Engine | 0 | int | Which 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"] | array | The 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. | array | To search for a channel, the numeric value represents the channel |
Type | [0, 1, 2, 3, 4, 5, 6] | array | The 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
Parameter | Range | Type | Description |
---|---|---|---|
MsgId | null | ||
Result | 0 | int | Obtain the return result of people and vehicles statistics,see the results Table 3 |
ObjectCount | int array | Obtain the statistics of people and vehicles, each bit represents the number searched in the corresponding time interval |
Result Type | COMMENT |
---|---|
AORT_SUCCESS = 0 | Success |
AORT_NO_DB = -1 | No database |
AORT_DB_EXEC_FAILED = -2 | Database execution failed |
AORT_CALC_FEATURE_FAILED = -3 | Feature extraction failed |
AORT_CANCELED = -4 | Cancelled |
AORT_NO_DISK = -5 | No hard drive |
AORT_DISK_ERROR = -6 | Hard disk error |
AORT_EXIST = -7 | Existed |
AORT_GROUP_INVALID = -8 | Group invalid |
AORT_NOT_EXIST = -9 | Does not exist |
AORT_MORE_FILE_EXIST = -10 | File already exists |
AORT_SEARCH_ERROR = -11 | Search error |
AORT_OVER_MAX_COUNT = -12 | Limit exceeded |
AORT_UPDATING_FEATURE = -13 | Updating feature values |
AORT_NO_USABLE_IPC = -14 | No IPC available for eigenvalue calculation |
AORT_INVALID_PARAM = -15 | Invalid parameter |
AORT_INVALID_FORMAT = -16 | Wrong format |
AORT_INVALID_RES = -17 | Wrong resolution |
AORT_INVALID_MEM = -18 | File too large error |
AORT_CREAT_FAILED = -19 | Creation failed |
AORT_MD5_NOT_MATCH = -20 | MD5 mismatch |
AORT_POS_ERROR = -21 | Location error |
AORT_SIZE_ERROR = -22 | Wrong size |
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,
"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
Parameter | Required | Description |
---|---|---|
Action | YES | Request 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | JSON object | Channel Information JSON show as followtable 2 |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | Channel Information JSON show as followtable 3 |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
category | JSON array | Channel Information JSON show as followtable 4 |
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
intelligent_type | "fd" "pvd" "pid" "lcd" "sod" "cc" "cd" "qd" "lpd" "hm" "rsd" "intrusion" "region_entrance" "region_exiting" | string | Intelligent 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" | string | intelligent type Indicates the intelligent type that is mutually exclusive with intelligent Type Note: Actual mutex types vary depending on device capabilities |
mutex_type_between_channel | JSON 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
Parameter | Range | Type | Description |
---|---|---|---|
channel | “CH1” “CH2” ... | string | Exclusive channel |
mutex_type | "fd" "pvd" "pid" "lcd" "sod" "cc" "cd" "qd" "lpd" "hm" “rsd” “intrusion” “region_entrance” “region_exiting” | Json array | Intelligent 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
Get
Function
This API is used to get parameter for Extended Functionality > IPCVoice Prompt page.
Request Message
Parameter Description
Parameter | Range | Type | Description |
---|---|---|---|
command | "GetAudioFilesList", "GetAudioIndex", "ConfigureAudioIndex", "PlayAudio", "StopPlaying" | string | Operation 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 array | Used to specify the IP channel to operate (PlayAudio, StopPlaying) |
channel_info | JSON object | Channel Information JSON show as follow Table 2(ConfigureAudioIndex) |
Parameter | Range | Type | Description |
---|---|---|---|
IP_CH1 | Json Object | JSON show as follow Table 3 | |
… | Json Object | ||
IP_CHx | Json Object |
Parameter | Range | Type | Description |
---|---|---|---|
state | "Offline", "Online" | string | IP channel online status |
audio_index | int | audio 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
Parameter | Range | Type | Description |
---|---|---|---|
audio_list | string array | audio list | |
channel_info | JSON object | Channel 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
Parameter | Range | Type | Description |
---|---|---|---|
command | "GetAudioFilesList", "GetAudioIndex", "ConfigureAudioIndex", "PlayAudio", "StopPlaying" | string | Operation 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 array | Used to specify the IP channel to operate (PlayAudio, StopPlaying) |
channel_info | JSON object | Channel Information JSON show as follow Table 2(ConfigureAudioIndex) |
Parameter | Range | Type | Description |
---|---|---|---|
IP_CH1 | Json Object | JSON show as follow Table 3 | |
… | Json Object | ||
IP_CHx | Json Object |
Parameter | Range | Type | Description |
---|---|---|---|
state | "Offline", "Online" | string | IP channel online status |
audio_index | int | audio 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
Parameter | Required | Description |
---|---|---|
Action | YES | Request 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_info | JSON object | Channel Information JSON show as follow Tabletable 2 |
Parameter | Range | Type | Description |
---|---|---|---|
CH1 | Json Object | JSON show as follow Table table 3 | |
… | Json Object | ||
IP_CH1 | Json Object | ||
… | Json Object | ||
WIFI_CH1 | Json Object | ||
… | Json Object |
Parameter | Range | Type | Description |
---|---|---|---|
category | JSON array | CategoryJSON show as follow Table table 4 |
Parameter | Range | Type | Description |
---|---|---|---|
mutex_type | "h264+" "h265+" "roi" "exposure_compensation" "shutter_manual" "time_exposure" "lpd_enhance" | string | The 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" | string | Function 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
Parameter | Required | Description |
---|---|---|
Action | Yes | Request action, including GetToken, Query, Subscribe, Unsubscribe, QueryDefault. |
GetToken
Function
This API is used to obtain Token when pushing.
Request Message
Parameter Description
Table 1
Parameter | Range | Type | Description |
---|---|---|---|
Token | string |
Sample:
POST /API/Push/GetToken HTTP/1.1
{
"version": "1.0",
"data": {
"Token":"f06214c1d9348dee11a513213c9a38d0b62c9ffd32d1c1b6f6485117d1f187b9"
}
}
Response Message
Parameter Description
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
AccessToken | string |
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
Parameter | Range | Type | Description |
---|---|---|---|
Token | string |
Sample:
POST /API/Push/Query HTTP/1.1
{
"data": {
"Token": "f06214c1d9348dee11a513213c9a38d0b62c9ffd32d1c1b6f6485117d1f187b9",
"app_support_ai_notification_subscribe":true
}
}
Response Message
Parameter Description
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
Default | object | Default parameters, see Table 3 for details. | |
Filter | object | subscription parameters, see Table 6 for details. | |
Notification | object | subscription parameters, see Table 8 for details. |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
notification_interval_max | 30 | int | Maximum notification interval. |
notification_interval_min | 1 | int | The minimum notification interval. |
notification_interval | notification_interval_min-notification_interval_max | int | Notification interval. |
notification_interval_switch | bool | Push 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 | |
AiFaceDetection | object | See Table 4 for details. | |
LPR | object | See 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
Parameter | Range | Type | Description |
---|---|---|---|
Group | array | See Table 5 for details. |
Table 5
Parameter | Range | Type | Description |
---|---|---|---|
Name | string | ||
AutoSubscribe | "True"、"False" | string |
Table 6
Parameter | Range | Type | Description |
---|---|---|---|
Intellect | object | See Table 7 for details. | |
IOAlarm | object | See Table 7 for details. | |
Motion | object | See Table 7 for details. | |
PIRAlarm | object | See Table 7 for details. | |
VideoLoss | object | See Table 7 for details. | |
StorageError | object | ||
StorageFull | object | ||
StorageNull | object | ||
StorageUnformatted | object | ||
LCD | object | See Table 7 for details. | |
PID | object | See Table 7 for details. | |
PD&VD(PD) | object | See Table 7 for details. | |
FD | object | See Table 7 for details. | |
AD | object | See Table 7 for details. | |
CC | object | See Table 7 for details. | |
CD | object | See Table 7 for details. | |
QD | object | See Table 7 for details. | |
RSD | object | See Table 7 for details. | |
LPD | object | See Table 7 for details. | |
SOD | object | See Table 7 for details. | |
VT | object | See Table 7 for details. | |
SD | object | See Table 7 for details. | |
AiHuman | object | See Table 7 for details. | |
AiVehicle | object | See Table 7 for details. | |
Intrusion | object | See Table 7 for details. | |
RegionEntrance | object | See Table 7 for details. | |
RegionExiting | object | See Table 7 for details. | |
AiFaceDetection | object array | See Table 9 for details. | |
LPR | object array | See Table 9 for details. |
Table 7
Parameter | Range | Type | Description |
---|---|---|---|
Channel | 0~maximum number of channels | int array |
Table 8
Parameter | Range | Type | Description |
---|---|---|---|
notification_interval | notification_interval_min-notification_interval_max | int | Notification of push. |
notification_interval_switch | bool | Notification switch. |
Table 9
Parameter | Range | Type | Description |
---|---|---|---|
Name | string | Group name | |
Channel | 0~Max Channel Number | int 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
Parameter | Range | Type | Description |
---|---|---|---|
types | object | Default 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
Parameter | Range | Type | Description |
---|---|---|---|
Filter | object | subscription parameters, see Push > Query > Parameter Description > Table 3 for details. | |
Mobile | object | subscription parameters, see Table 2 for details. | |
Notification | object | Subscription parameters, see Push > Query > Parameter Description > Table 8. |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
AppID | string | ||
Language | string | ||
PushChannel | string | ||
Token | string | ||
UUID | string |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
notification_interval | int | Notification interval. | |
notification_interval_max | int | Displays the maximum subscription interval for the mobile app. | |
notification_interval_min | int | The 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
Parameter | Range | Type | Description |
---|---|---|---|
Token | string | ||
UUID | string |
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
Get
Function
This API is used to get push subscriptions.
Request Message
Table 1
Parameter | Range | Type | Description |
---|---|---|---|
app_support_ai_notification_subscribe | bool | Whether 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
Parameter | Range | Type | Description |
---|---|---|---|
HddAlarm | object | see Table 3 for more information. | |
IOAlarm | object | see Table 4 for more information. | |
LowPower | object | see Table 4 for more information. | |
MotionAlarm | object | see Table 4 for more information. | |
PIRAlarm | object | see Table 4 for more information. | |
SmartAlarm | object | see Table 4 for more information. | |
VideoLoss | object | see Table 4 for more information. | |
FaceAlarm | object | see Table 5 for more information. | |
LCDAlarm | object | see Table 4 for more information. | |
PIDAlarm | object | see Table 4 for more information. | |
SODAlarm | object | see Table 4 for more information. | |
PDAlarm | object | see Table 4 for more information. | |
FDAlarm | object | see Table 4 for more information. | |
CCAlarm | object | see Table 4 for more information. | |
ADAlarm | object | see Table 4 for more information. | |
CDAlarm | object | see Table 4 for more information. | |
QDAlarm | object | see Table 4 for more information. | |
LPDAlarm | object | see Table 4 for more information. | |
RSDAlarm | object | see Table 4 for more information. | |
VTAlarm | object | see Table 4 for more information. | |
SDAlarm | object | see Table 4 for more information. | |
IntrusionAlarm | object | see Table 4 for more information. | |
RegionEntranceAlarm | object | see Table 4 for more information. | |
RegionExitingAlarm | object | see Table 4 for more information. | |
Human | object | see Table 4 for more information. | |
Vehicle | object | see Table 4 for more information. | |
LPRAlarm | object | see Table 5 for more information. |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
Enabled | int | ||
Type | Int |
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
ChnFlags | int array |
Table 5
Parameter | Range | Type | Description |
---|---|---|---|
Group | object array |
Table 6
Parameter | Range | Type | Description |
---|---|---|---|
Id | int | ||
Name | string | ||
ChnFlags | int 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
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
Parameter | Range | Type | description |
---|---|---|---|
channel | "CH1"…"CHx", "IP_CH1"…"IP_CHx", "WIFI_CH1"…"WIFI_CHx" Channels supported by the device | string array | IPC can only use "CH1". |
page_type | “ChannelConfig” “AlarmConfig” | string | Data used to distinguish between the channel configuration page and the alarm configuration page |
DeleteId | int array | id 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
Parameter | Range | Type | description |
---|---|---|---|
channel_info | Json Object | Channel information see Table 3 | |
page_type | "ChannelConfig", "AlarmConfig" | string | The data used to distinguish between the channel configuration page and the alarm configuration page is only needed when setting. |
channel_max | int | Total number of channels on the device |
Table 3
Parameter | Range | Type | description |
---|---|---|---|
CH1 | Json Object | JSON See Table 4 | |
... | Json Object | ||
IP_CH1 | Json Object | ||
... | Json Object | ||
WIFI_CH1 | Json Object | ||
... | Json Object |
Table 4
Parameter | Range | Type | description |
---|---|---|---|
status | "Offline" "Online" | string | Channel online status, only for digital channels. Note: This field does not exist when the channel is online |
detection | Json Object | Json For information see Table 5 | |
region_shield | Json Object | Json 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 | array | Alarm output channel |
latch_time | "5s","10s","20s","30s" | string | Alarm output time Ipc value 5 10 20 30 |
record_enable | bool | Supports channel video switch | |
post_recording | "OFF","5s","10s","20s","30s" | 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 | FTP upload switch of channel capture |
ftp_video_upload | true, false | bool | Channel video FTP upload switch |
picture_to_cloud | true, false | bool | Picture upload switch |
video_to_cloud | true, false | bool | Video cloud upload switch |
light_linkage | true, false | bool | Linkage switch of the white light. When motion is triggered, the linkage triggers the white light |
enforcerlight_linkage | true, false | bool | Red and blue light alarm switch |
siren_linkage | true, false | bool | siren alarm switch |
http_listening | true, false | bool | Push switch |
record_channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” | array | Video alarm output channel |
ftp_picture_upload_channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” | array | Capture image FTP upload alarm output channel |
ftp_video_upload_channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” | array | Video FTP upload alarm output channel |
picture_cloud_channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” | array | Image upload alarm output channel |
video_cloud_channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” | array | Video cloud upload alarm output channel |
schedule | JSON array | Schedule see Table 7 |
Table 5
Parameter | Range | Type | description |
---|---|---|---|
switch | true false | bool | function switch |
sensitivity | [1,100] | int | sensitivity |
Table 6
Parameter | Range | Type | description |
---|---|---|---|
region_area_info | Json array | Json see Table 8 |
Table 7
Parameter | Range | Type | description |
---|---|---|---|
schedule_type | “Record” | string | time schedule:Record,AlarmOut,SendEmail |
week | JSON array | week json see Table 9 |
Table 8
Parameter | Range | Type | description |
---|---|---|---|
id_switch | true false | bool | Zone function switch |
area_id | [0,8] | int | id of the current area |
area_name | string | Editable box, default name is Fire Mark with serial number | |
point_num | [min,max] | array | The number of points drawn in the area is a minimum of 3 points and a maximum of 8 points |
rule_area | Json Object | Json see Table 10 |
Table 9
Parameter | Range | Type | description |
---|---|---|---|
day | Sun,Mon,Tue,Wed Thu,Fri,Sat | string | Mark the day of the week |
time | 0: disables the time range 1: enables the time range | array | Each array bit identifies half an hour |
Table 10
Parameter | Range | Type | description |
---|---|---|---|
x1 | [0,704] | int | x1 coordinate point |
y1 | [0,576] | int | y1 coordinate point |
x2 | [0,704] | int | x2 coordinate point |
y2 | [0,576] | int | y2 coordinate point |
x3 | [0,704] | int | x3 coordinate point |
y3 | [0,576] | int | y3 coordinate point |
x4 | [0,704] | int | x4 coordinate point |
y4 | [0,576] | int | y4 coordinate point |
x5 | [0,704] | int | x5 coordinate point |
y5 | [0,576] | int | y5 coordinate point |
x6 | [0,704] | int | x6 coordinate point |
y6 | [0,576] | int | y6 coordinate point |
x7 | [0,704] | int | x7 coordinate point |
y7 | [0,576] | int | y7 coordinate point |
x8 | [0,704] | int | x8 coordinate point |
y8 | [0,576] | int | y8 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
Parameter | Required | Description |
---|---|---|
Action | yes | Request 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
Parameter | Range | Type | description |
---|---|---|---|
channel | "CH1","CHx", "IP_CH1","IP_CHx", "WIFI_CH1","WIFI_CHx" Channels supported by the device | string | Device 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
Parameter | Range | Type | description |
---|---|---|---|
channel | "CH1","CHx", "IP_CH1","IP_CHx", "WIFI_CH1","WIFI_CHx" Channels supported by the device. | string | Device channel number |
infrared_corr_type | "BackgroundCorr" "ShutterCorr" | string | Correction 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
Parameter | Range | Type | description |
---|---|---|---|
channel_info | Json Object | Channel information see Table 2 | |
channel_max | int | Total number of channels on the device |
Table 2
Parameter | Range | Type | description |
---|---|---|---|
CH1 | Json Object | JSON see Table 3 | |
... | Json Object | ||
IP_CH1 | Json Object | ||
... | Json Object | ||
WIFI_CH1 | Json Object | ||
... | Json Object |
Table 3
Parameter | Range | Type | description |
---|---|---|---|
status | "Offline" "Online" | string | Channel online status, only for digital channels. Note: This field does not exist when the channel is online |
support_default | bool | Whether to restore the default value | |
support_backgroundcorr | bool | Whether background correction is supported | |
support_shuttercorr | bool | Whether shutter correction is supported | |
mirror_mode | "Close" "VerticalMirroring" "HorizontalMirroring" "All" | string | Mirror mode (synchronized with optical channel ch1) |
angle_rotation | "0","90","180","270" | string | Angular rotation (synchronized with optical channel ch1) |
denoising_2dlevel | 0~100 | int | 2D noise reduction |
denoising_3dlevel | 0~100 | int | 3D noise reduction |
enhancement_level | 0~100 | int | detail enhancement |
enhance_regional | "Center-25" "Center-50" "Center-75" "Bottom" "Middle Area" "Top" "Customizations" "Full Screen" "Disable" | string | Image 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" | string | pseudo color |
fusion | "Normal" "Details Overlay" | string | fusion Normal:Fusion not on Details Overlay Enable the fusion mode. For structure reference Table 4 |
rule_info | Object array | Custom zone enhancement (Custom) mode line drawing information, structure reference Table 5 |
Table 4
Parameter | Range | Type | description |
---|---|---|---|
imagefusion_level | 1~100 | int | Image fusion ratio |
edgefusion_level | 1~100 | int | Edge fusion ratio |
horizontal_trim | -100~100 | int | horizontal trim |
vertica_trim | -100~100 | int | vertica trim |
fusion_distance | 1~200 | double | Fusion distance |
Table 5
Parameter | Range | Type | description |
---|---|---|---|
rule_no | 1 | int | Rule number |
rule_rect | true, false | Json Object | Rectangle,Json parameters see Table 6 |
Table 6
Parameter | Range | Type | description |
---|---|---|---|
left | 0-704 | int | X coordinate |
top | 0-576 | int | Y coordinate |
width | 0-704 | int | width |
height | 0-576 | int | height |
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
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
Parameter | Range | Type | description |
---|---|---|---|
channel | "CH1"…"CHx", "IP_CH1"…"IP_CHx", "WIFI_CH1"…"WIFI_CHx" Channels supported by the device | string array | IPC can only be used "CH1"。 |
page_type | “ChannelConfig” “AlarmConfig” | string | Data 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
Parameter | Range | Type | description |
---|---|---|---|
channel_info | Json Object | Channel information see Table 3 | |
page_type | "ChannelConfig", "AlarmConfig" | string | The data used to distinguish between the channel configuration page and the alarm configuration page is only needed when setting. |
channel_max | int | Total number of channels on the device |
Table 3
Parameter | Range | Type | description |
---|---|---|---|
CH1 | Json Object | JSON see Table 4 | |
... | Json Object | ||
IP_CH1 | Json Object | ||
... | Json Object | ||
WIFI_CH1 | Json Object | ||
... | Json Object |
Table 4
Parameter | Range | Type | description |
---|---|---|---|
status | "Offline" "Online" | string | Channel 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 | array | Alarm output channel |
latch_time | "5s","10s","20s","30s" | string | Alarm output time Ipc value 5 10 20 30 |
record_enable | bool | channel video switch | |
post_recording | "OFF","5s","10s","20s","30s" | 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 | FTP upload switch of channel capture |
ftp_video_upload | true, false | bool | Channel video FTP upload switch |
picture_to_cloud | true, false | bool | Picture upload switch |
video_to_cloud | true, false | bool | Video cloud upload switch |
light_linkage | true, false | bool | Linkage switch of the white light. When motion is triggered, the linkage triggers the white light |
enforcerlight_linkage | true, false | bool | Red and blue light alarm switch |
siren_linkage | true, false | bool | siren alarm switch |
http_listening | true, false | bool | Push switch |
switch | true, false | bool | switch |
colorbar_switch | true, false | bool | Temperature color bar switch Switch |
display_temp_on_stream | true, false | bool | The temperature is displayed on the stream switch |
display_temp_on_optical | true, false | bool | The temperature is displayed on the optical channel switch |
display_max_temp | true, false | bool | Displays the maximum temperature switch |
display_min_temp | true, false | bool | Displays the minimum temperature switch |
display_average_temp | true, false | bool | Displays the average temperature switch |
spot_measurement | true, false | bool | Click 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" | string | Temperature display location option |
data_refresh_rate | 1~5 | int | (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" | string | Temperature unit option |
reflective_temp | Json Object | Reflective 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 | |
emissivity | 0.01~ 1 | double | emissivity |
distance_unit | "Meter" "Feet" | string | Meter and Feet, default Meter |
target_distance | 0~100 | double | Target Distance unit m |
record_channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” | array | Video alarm output channel |
ftp_picture_upload_channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” | array | Capture image FTP upload alarm output channel |
ftp_video_upload_channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” | array | Video FTP upload alarm output channel |
picture_cloud_channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” | array | Image upload alarm output channel |
video_cloud_channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” | array | Video cloud upload alarm output channel |
schedule | JSON array | Schedule see Table 6 |
Table 5
Parameter | Range | Type | description |
---|---|---|---|
Degree Celsius | [-40,200] | double | |
Degree Fahrenheit | [-40,392] | double | |
Degree Kelvin | [233.14999389648437,473.1499938964844] | double |
Table 6
Parameter | Range | Type | description |
---|---|---|---|
schedule_type | “Record” | string | time schedule:Record,AlarmOut,SendEmail |
week | JSON array | week json see Table 7 |
Table 7
Parameter | Range | Type | description |
---|---|---|---|
day | Sun,Mon,Tue,Wed Thu,Fri,Sat | string | Mark the day of the week |
time | 0: disables the time range 1: enables the time range | array | Each 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
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
Parameter | Range | Type | description |
---|---|---|---|
channel | "CH1"…"CHx", "IP_CH1"…"IP_CHx", "WIFI_CH1"…"WIFI_CHx" Channels supported by the device. | string array | IPC can only be used "CH1". |
page_type | “ChannelConfig” “AlarmConfig” | string | Data used to distinguish between the channel configuration page and the alarm configuration page |
DeleteId | int array | id 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
Parameter | Range | Type | description |
---|---|---|---|
channel_info | Json Object | Channel information see Table 3 | |
page_type | "ChannelConfig", "AlarmConfig" | string | The data used to distinguish between the channel configuration page and the alarm configuration page is only needed when setting. |
channel_max | int | Total number of channels on the device |
Table 3
Parameter | Range | Type | description |
---|---|---|---|
CH1 | Json Object | JSON see Table 4 | |
... | Json Object | ||
IP_CH1 | Json Object | ||
... | Json Object | ||
WIFI_CH1 | Json Object | ||
... | Json Object |
Table 4
Parameter | Range | Type | description |
---|---|---|---|
status | "Offline" "Online" | string | Channel online status, only for digital channels. Note: This field does not exist when the channel is online |
id_info | Json Array | Json see Table 5 | |
id_max | int | Maximum id number |
Table 5
Parameter | Range | Type | description |
---|---|---|---|
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 | array | Alarm output channel |
alarm_rules | Json Object | See Alarm rule Json information Table 6 | |
alarm_temp | double | Alarm 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_time | 0~100 | int | filtration time |
tolerance_temp | 0~ 5 | double | Tolerance temperature difference |
latch_time | "5s","10s","20s","30s" | string | Alarm output time Ipc value 5 10 20 30 |
record_enable | bool | Supports channel video switch | |
post_recording | "OFF","5s","10s","20s","30s" | 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 | FTP upload switch of channel capture |
ftp_video_upload | true, false | bool | Channel video FTP upload switch |
picture_to_cloud | true, false | bool | Picture upload switch |
video_to_cloud | true, false | bool | Video cloud upload switch |
light_linkage | true, false | bool | Linkage switch of the white light. When motion is triggered, the linkage triggers the white light |
enforcerlight_linkage | true, false | bool | Red and blue light alarm switch |
siren_linkage | true, false | bool | siren alarm switch |
http_listening | true, false | bool | Push switch |
id_switch | true, false | bool | switch |
rule_name | 0~127 | string | Rule Name |
rule_info | JSON object | Json see Table 7 | |
emissivity | 0.01~ 1 | double | emissivity |
target_distance | 0~200 | double | object distance |
reflective_temp | true, false | double | Reflective 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}) |
Id | true, false | int | id of the current rule |
record_channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” | array | Video alarm output channel |
ftp_picture_upload_channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” | array | Capture image FTP upload alarm output channel |
ftp_video_upload_channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” | array | Video FTP upload alarm output channel |
picture_cloud_channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” | array | Image upload alarm output channel |
video_cloud_channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” | array | Video cloud upload alarm output channel |
schedule | JSON array | Schedule see Table 8 |
Table 6
Parameter | Range | Type | description |
---|---|---|---|
Point | "Above Average Temp" "Below Average Temp" | string | Select 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" | string | Select the alarm temperature type of the temperature detection rule whose rule type is Line |
Rect | [1,100] | string | Select the alarm temperature type of the temperature measurement rule whose rule type is Rect |
Table 7
Parameter | Range | Type | description |
---|---|---|---|
rule_type | "Point" "Line" "Rect" "Area" | string | Rule type |
rule_point | Json Object | Point Json information see Table 9 | |
rule_line | Json Object | See Line Json information Table 10 | |
rule_rect | Json Object | For rectangular Json information see Table 11 | |
rule_area | Json Object | Octagon Json information see Table 12(Do not display if not implemented) |
Table 8
Parameter | Range | Type | description |
---|---|---|---|
schedule_type | “Record” | string | time schedule:Record,AlarmOut,SendEmail |
week | JSON array | week json see Table 13 |
Table 9
Parameter | Range | Type | description |
---|---|---|---|
x | -1-704 | int | x coordinates |
y | -1-576 | int | y coordinates |
Table 10
Parameter | Range | Type | description |
---|---|---|---|
x1 | 0-704 | int | x1 coordinates |
y1 | 0-576 | int | y1 coordinates |
x2 | 0-704 | int | x2 coordinates |
y2 | 0-576 | int | y2 coordinates |
Table 11
Parameter | Range | Type | description |
---|---|---|---|
left | 0-704 | int | x coordinates |
top | 0-576 | int | y coordinates |
width | 0-704 | int | width |
height | 0-576 | int | height |
Table 12
Parameter | Range | Type | description |
---|---|---|---|
x1 | 0-704 | int | x1 coordinates |
y1 | 0-576 | int | y1 coordinates |
x2 | 0-704 | int | x2 coordinates |
y2 | 0-576 | int | y2 coordinates |
x3 | 0-704 | int | x3 coordinates |
y3 | 0-576 | int | y3 coordinates |
x4 | 0-704 | int | x4 coordinates |
y4 | 0-576 | int | y4 coordinates |
x5 | 0-704 | int | x5 coordinates |
y5 | 0-576 | int | y5 coordinates |
x6 | 0-704 | int | x6 coordinates |
y6 | 0-576 | int | y6 coordinates |
x7 | 0-704 | int | x7 coordinates |
y7 | 0-576 | int | y7 coordinates |
x8 | 0-704 | int | x8 coordinates |
y8 | 0-576 | int | y8 coordinates |
Table 13
Parameter | Range | Type | description |
---|---|---|---|
day | Sun,Mon,Tue,Wed Thu,Fri,Sat | string | Mark the day of the week |
time | 0: disables the time range 1: enables the time range | array | Each 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
Parameter | Required | Description |
---|---|---|
Action | yes | Request actions, including Get |
Set
Function
This API is used to get Thermal > Spot Measurement parameter
Request Message
Parameter Description
Table 1
Parameter | Range | Type | description |
---|---|---|---|
channel | "CH1"…"CHx", "IP_CH1"…"IP_CHx", "WIFI_CH1"…"WIFI_CHx" Channels supported by the device. | string array | IPC can only be used "CH1"。 |
x | 0-704 | int | Preview click location, x |
y | 0-576 | int | Preview 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
Parameter | Range | Type | description |
---|---|---|---|
channel | "CH1"…"CHx", "IP_CH1"…"IP_CHx", "WIFI_CH1"…"WIFI_CHx" Channels supported by the device. | string array | IPC can only be used "CH1"。 |
temp_str | string | A string that displays the temperature | |
show_time | 1- 60 | int | Display time, unit: ms. This parameter is not displayed. The default display time is 5000ms |
font_color | 0-704 | JSON array | Text color, temporarily do not pass, web default[r,g,b]==[0,0,0] |
bg_color | 0-576 | JSON array | Background color, not uploaded for now, web default[r,g,b]==[0,255,0] |
x | 0-704 | int | Preview click location, x |
y | 0-576 | int | Preview 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
Default
Function
This API is used to restore default parameter for Thermal > Video Color page.
Request Message
Parameter Description
Table 1
Parameter | Range | Type | description |
---|---|---|---|
channel | "CH1","CHx", "IP_CH1","IP_CHx", "WIFI_CH1","WIFI_CHx" Channels supported by the device. | string | Device 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
Parameter | Range | Type | description |
---|---|---|---|
channel_info | Json Object | Channel information see Table 2 |
Table 2
Parameter | Range | Type | description |
---|---|---|---|
CH1 | Json Object | JSON see Table 3 | |
... | Json Object | ||
IP_CH1 | Json Object | ||
... | Json Object | ||
WIFI_CH1 | Json Object | ||
... | Json Object |
Table 3
Parameter | Range | Type | description |
---|---|---|---|
status | "Offline" "Online" | string | Channel online status, only for digital channels. Note: This field does not exist when the channel is online |
bright | 0-255 | int | bright |
contrast | 0-255 | int | contrast |
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" | string | pseudo color |
support_default | bool | Whether 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
Parameter | Range | Type | description |
---|---|---|---|
product_code | string | Consumer product code | |
domain_name | string | Indicates the domain name of the consumer server | |
customer_id | string | The customer number added by the consumer ID | |
cloud_id | string | customer cloud id |
Sample:
HTTP/1.1 200 OK
Content-Type: application/json
{
"result":"success",
"data":{
"product_code":"W1P"
}
}
Error Code
See Response message body 和 general 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 body 和 general 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
Parameter | Required | Description |
---|---|---|
Action | YES | Request 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
Parameter | Range | Type | Description |
---|---|---|---|
username | object | Rule restrictions of username,see Table 2 for more information. | |
password | object | Rule restrictions of password,see Table 2 for more information. |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
min_length | 1-8 | int | Minimum length. |
max_length | 16-16 | int | Maximum length. |
character_combinations_num | 1-4 | int | At least the number of character combinations. |
character_combinations | "ALPHA", "alpha", "Alpha", "digit", "special" | string array | Character combination list. |
special | string | Special character. | |
not_same_username | bool | Can be the same as the user name. | |
deny_password | string array | The 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
Parameter | Required | Description |
---|---|---|
Action | Yes | Request 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
Parameter | Range | Type | Description |
---|---|---|---|
main | object array | Level 1 menu array,see Table 2 for more information of array member. |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
title | len:0-64 | string | Level one menu title, "Display", "Record", "Alarm", "AI", "Network", "Storage", "System", "Intelligent". |
sub | object array | Level 2 menu array,see Table 3 for more information of array member. |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
title | len:0-64 | string | Title of level 2 menu. |
pages | object array | Level 3 menu array,see Table 4 for more information of array member. |
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
title | len:0-64 | string | Title of level 3 menu. |
page | len:0-64 | string | Page 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"
}
]
},
...
]
},
{
...
},
...
]
}
Menu list
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
Title | Page |
---|---|
Channel related, page chn_ | |
Analog Channels | chn_analogChn |
IP Channels | chn_ipChn |
Wireless Camera | chn_wireChn |
Protocol Manage | chn_protocolMng |
Live | chn_osd |
Image Control | chn_imgCtrl |
Video Cover | chn_videoCover |
Video Crop | chn_videoCrop |
PTZ | chn_ptz |
FloodLight | chn_floodlight |
PIR | chn_pir |
PID | chn_pid |
LCD | chn_lcd |
SOD | chn_sod |
PD | chn_pd |
FD | chn_fd |
CC | chn_cc |
Sound_Detection | chn_sound_detection |
Occlusion_Detection | chn_occlusion_detection |
Intelligent_Analysis | chn_intelligent_analysis |
- | |
Stream related, page stm_ | |
Mainstream | stm_main |
Substream | stm_sub |
Mobilestream | stm_mob |
Capture | stm_capture |
- | |
Video related, page rec_ | |
Record Parameters | rec_param |
- | |
Schedule related, page schedules_ | |
Record Schedule | schedules_rec |
Capture Schedule | schedules_capture |
Email Schedule | schedules_email |
Ftp Schedule | schedules_ftp |
CloudSchedule | schedules_cloud |
Intelligent Schedule | schedule_intelligent |
Ai_Schedules | ai_schedules |
- | |
Network related, page net_ | |
General | net_general |
PPPoe | net_pppoe |
Wireless | net_wireless |
Port Configuration | net_port_conf |
DDNS | net_ddns |
net_email | |
Ip Filter | net_ipFilter |
- | |
Alarm related, page alarm_ | |
IO | alarm_io |
Motion | alarm_motion |
Exception | alarm_exception |
PTZLinkage | alarm_ptzLinkage |
PIR | alarm_pir |
PID | alarm_pid |
LCD | alarm_lcd |
SOD | alarm_sod |
PD | alarm_pd |
FD | alarm_fd |
CC | alarm_cc |
Sound Detection | alarm_sound_detection |
Occlusion Detection | alarm_occlusion_detection |
Alarm Schedule | schedules_alarm |
File Management | voice_prompts_file |
FloodLight | chn_floodlight |
Siren | chn_siren |
Event Push | alarm_event_push |
Disarming | alarm_disarming |
- | |
Event related,page Event(IPC) | |
Setup subpage | |
Motion | chn_motion |
PIR | chn_pir |
FloodLight | chn_floodlight |
Sound Detection | chn_sound_detection |
Occlusion Detection | chn_occlusion_detection |
Voice Alarm | alarm_voice |
Alarm subpage | |
Motion | alarm_motion |
IO | alarm_io |
PIR | alarm_pir |
Sound Detection | alarm_sound_detection |
Occlusion Detection | alarm_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 Configuration | ai_model_configuration |
Database Management | ai_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 Detection | ai_fd_statistics |
Human&Vehicle Detection | ai_pvd_statistics |
Heat Map Statistics | ai_hm_statistics |
Cross Counting Statistics | ai_cc_statistics |
Intrusion | chn_ai_intrusion |
Intrusion | alarm_ai_intrusion |
Region Entrance | chn_region_entrance |
Region Entrance | alarm_region_entrance |
Region Exiting | chn_region_exiting |
Region Exiting | alarm_region_exiting |
- | |
Storage related, page storage_ | |
Disk | storage_disk |
Disk Group | storage_diskGroup |
Cloud | storage_cloud |
Ftp | net_ftp |
- | |
System related, page sys_ | |
General | sys_general |
Date and Time | sys_date_time |
Output Configuration | sys_output_conf |
Privacy Statement | sys_pricacy_statement |
Multi-User | sys_user |
Upgrade | sys_upgrade |
IPC Upgrade | sys_ipcUpgrade |
IPC Load Default | sys_ipcLoad_default |
Reboot IPC | sys_ipcAuto_reboot |
Information | sysInfo_base |
Channel Information | sysInfo_chn |
Record Information | sysInfo_rec |
Network State | sysInfo_net |
- | |
Other | |
Auto Reboot | sys_auto_reboot |
Parameter Management | sys_param_mgt |
Load Default | sys_load_default |
Log | sys_maint_log |
Sys Defogging Fan | sys_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
Parameter | Required | Description |
---|---|---|
Action | YES | Request 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
Parameter | Required | Description |
---|---|---|
Action | Yes | Request 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
Parameter | Range | Type | Description |
---|---|---|---|
base_enc_password | object | Encrypted password object, see base_enc_password information Table for object members. | |
base_secondary_authentication | object | Authentication object, see base_secondary_authentication information Table for object members. | |
activation_pwd | object | Encrypted password object, used to activate ipc, object members see base_enc_password information Table . (for NVR only) | |
support_recover_pwd | bool | Whether 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
Parameter | Required | Description |
---|---|---|
Action | YES | Request 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
Parameter | Range | Type | Description |
---|---|---|---|
keep_alive | bool | Keep 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
Parameter | Range | Type | Description |
---|---|---|---|
device_type | "IPC | string | Used to determine the type of current device before login. |
cur_lang | string | Current display language. | |
username | Max length: 16 byte | string | Username. |
password | string | Password | |
pwd_tip | "ipc_tip", "nvr_tip", "dvr_tip" | string | Tip of password panel. |
password_tips | bool | Whether to display the tip of password. | |
lang_strs | object | List of languages supported for selection, language types such as Table 2. | |
default_lang | string | Default languages. | |
custom_name | int | Custom name. | |
custom_logo | int | Custom logo. | |
first_login_flag | bool | The sign of logging in to IE with an empty password, that is, whether it is the first time to log in. | |
wifi_ip | string | Wifi ip. | |
web_title | string | "Web Viewer". | |
site_version | string | Version. | |
support_recover_password | bool | whether it support password retrieval function. | |
use_recover_password | bool | Whether to use the password retrieval function. | |
default_username | string | Default username,when there is no password, it is displayed when it is used to modify the password. | |
password_enc | bool | Whether the password is encrypted for transmission. | |
http_api_version | string | The 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
Parameter | Range | Type | Description |
---|---|---|---|
CHS | 中文 | string | |
CHT | 繁体中文 | string | |
CSY | ČEŠTINA | string | |
DAN | DANSK | string | |
ENU | English | string | |
FIN | FINNISH | string | |
FRA | FRANÇAIS | string | |
DEU | DEUTSCH | string | |
ELL | ΕΛΛΗΝΙΚΑ | string | |
HEB | עברית | string | |
HUN | MAGYAR | string | |
ITA | ITALIANO | string | |
JPN | 日本語 | string | |
PLK | POLSKI | string | |
PTG | PORTUGUÊS | string | |
RUS | РУССКИЙ | string | |
ESN | ESPAÑOL | string | |
THA | ไทย | string | |
SLV | SLOVENIA | string | |
ROM | ROMANIAN | string | |
BRG | BULGARIAN | string | |
ARA | ARABIC | string | |
HIN | HINDI | string | |
VIE | VIETNAM | string | |
HOL | HOLLAND | string | |
TUR | TURKEY | string | |
POS | PERSIAN | string | |
SVE | SVENSKA | string | |
KOR | KOREAN | string | |
IND | INDONESIAN | string | |
PTB | PORTUGUESE | string | |
FLM | FLEMISH | string | |
UKA | Українська | string | |
SLK | Slovensky | 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:
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
Parameter | Required | Description |
---|---|---|
Action | YES | Request 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_param | object array | Channel parameter object array, single channel object parameter see Table 2 for more information. |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
channel | string | Channel number. | |
channel_name | string | Channel name. | |
channel_alias | string | Channel alias. | |
videoloss | bool | Signal of video loss. | |
connect_status | "NotConfigured", "Online", "Offline" "Sleep", "NotPaired" | string | Status 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 array | Channel funtion. |
alarm_in_num | int | Alarm input supported by IPC channel. | |
alarm_out_num | int | Alarm output supported by IPC channel. | |
show_ptz_setting | bool | Controls 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 array | Smart function. |
talk_audio_ability | "G711_A", "G726_16KBPS_ASF", "G726_24KBPS_ASF", "G726_32KBPS_ASF", "G726_40KBPS_ASF", "AAC" | string array | The 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_type | int | Wireless 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
Parameter | Required | Description |
---|---|---|
Action | YES | Request action, including Get. |
Get
Function
Get device information.
Request Message
Parameter Description
Table 1
Parameter | Range | Type | Description |
---|---|---|---|
requestor | "NVR" | string | Source of information requested: eg: NVR, etc. |
front_chn_index | int | The 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_ftpurl | bool | If 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_param | bool | Whether 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
Parameter | Range | Type | Description |
---|---|---|---|
channel_num | int | Total number of channels. | |
analog_channel_num | int | Total number of analog channels. | |
stream_profile | "Mainstream", "Substream", "Mobilestream" | string array | Support several stream switching. |
support_ftp_upgrade | bool | Whether to support ftp upgrade. | |
support_http_upgrade | bool | Whether to support http upgrade. | |
ftp_upgrade_url | string | Ftp upgrade url. | |
http_upgrade_url | string | http upgrade url. | |
support_cloud_upgrade | bool | Whether to support cloud upgrade. | |
push_type | "VVPush", "Baidu", "RSPush", "TutkPush" | string | Push type |
default_stream | "Mainstream", "Substream" | string | IE default stream type. |
client_logout_time | "0s", "30s", "1m", "5m", "30m" | string | Client timeout. |
pushinfo_type | "Motion", "Io", "Videoloss", "Pir" | string array | Push message type. |
ptz_support | bool | Whether to support ptz | |
local_alarmin_num | int | Board alarm input. | |
local_alarmout_num | int | Board alarm output. | |
suggested_modify_pwd | bool | Whether it is recommended to change the password. | |
support_face_config | bool | Whether to support face parameter query and setting. | |
support_ie_down_snap | bool | Whether to support IE to download board snapshots. | |
support_human_vehicle_search | bool | Whether to support pedestrian and vehicle search functions. | |
support_lpd_enhance | bool | Whether to enhance the function of vehicle identification. | |
preview_num | int | Main stream preview channel number. | |
mac_addr | Max length:35byte | string | MAC address. |
support_io_record | bool | Whether 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_record | bool | Whether to support manual recording type search. | |
support_sound_record | bool | Sound alarm display flag: 0 hidden, 1: displayed. | |
support_playback_new_rec_detail | bool | Support NewRecordDetailRsp(New_GetRecFileList) search. | |
support_playback_new_rec_file_download | bool | Support NewRecordDetailRsp (New_GetRecFileList) video download, support video file lock query and lock setting. | |
support_more_chn_playback | bool | Signal of IE playback page support multi-channel playback (more than 4 channels). | |
support_video_cover_record | bool | Whether to display the video tampering alarm. | |
support_smart_record | bool | Whether to display the intelligent analysis page. | |
support_substream_playback | bool | Whether to support substream playback. | |
support_pir_record | bool | Whether to support PIR. | |
support_flood_light | bool | Whether to support floodlights. | |
support_speaker | bool | Whether to support speakers. | |
show_certificate_remain_time | bool | Whether to display the validity period of the certificate, true: the validity period of the custom certificate is less than 8 days. | |
certificate_remain_time | 0-10 | int | Valid days for custom certificates. |
media_port | See Communication Matrix. | ||
media_external_port | See Communication Matrix. | ||
local_ip | string | Local ip. | |
upgrade_file_max_size | 0-100 | int | The maximum size of the board upgrade file, in MB. |
upgrade_head_trans_size | 0-3 | int | The length of the upgrade header information on the board side, in units of k. |
support_audio_volume | bool | Whether to support volume adjustment. | |
talkback | "TalkHalf", "TalkFull" | string | |
sound | bool | The sound switch is displayed. | |
enable_encryption | bool | Private protocol encryption. | |
device_preview_ability | "manual_alarm", "face" | string array | Controls 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 array | Control 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 array | Controls the set of capabilities displayed on the upper right side of the preview. |
support_ai_pic_report | bool | Whether support the reporting of AI face, human and vehicle pictures. | |
support_repeat_visitor | bool | Whether to support repeat customer function (for NVR only). | |
support_face_attendance | bool | Whether to support the face attendance function (only for NVR). | |
support_heat_map | bool | Whether to support the heat map function (only for NVR). | |
support_fisheye | bool | Whether to support fisheye function (only for NVR). | |
support_binoculars | bool | Whether to support binocular function (only for NVR). | |
support_cc_scenario | bool | Whether to support over-the-line scene application. | |
support_attendance_scenario | bool | Whether to support face-based real-time attendance scene application. | |
support_face_attribute | bool | Whether to support face attributes. | |
support_ai_pidlcd | bool | Whether to support AI perimeters and tripwires. | |
support_ai_cc | bool | Whether to support AI crossing count. | |
support_disarming | bool | Whether it supports one-key disarm function. | |
dev_type | unsigned long long | Dev type. | |
device_type | Max length:24byte | string | Device type |
dev_play_backcap | unsigned char | Dev 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_search | bool | Whether to support Pid Lcd search function. | |
support_aac | bool | Whether to support AAC audio format. | |
p2p_id | string | P2P ID. | |
support_hls_server | bool | Support single-channel HLS stream. | |
videoloss_status | bool | Whether to display the missing logo. | |
nocamera_display | bool | Whether to display nocamera text. | |
FR_model_version | int | IPC face recognition model version. | |
FD_model_version | int | IPC face detection model version. | |
support_voice_prompts | bool | Whether to support voice broadcast. | |
support_ANR | bool | Whether to support offline supplementary recording. | |
support_siren_audio | bool | Whether to support white light alarm sound type selection. | |
support_floodlight_color_image_ctrl | bool | Whether to support floodlight color function. | |
support_param_import_export | bool | Whether to support parameter import and export. | |
support_occlusion_detection | bool | Whether to support occlusion alarm. | |
support_sound_detection | bool | Whether to support sound detection. | |
support_osd_transparency | bool | Whether to support osd transparency switch. | |
support_record_type_ex | bool | Whether to support extended recording types. | |
encode_type_ability | "H.264", "H.265", "MJPEG", "H.264+", "H.265+" | string array | Supported encoding types. |
ptz_ability | object | Supported ptz capabilities,see Table 3 for more information. | |
localset | object | Default format for local settings,see Table 4 for more information. | |
localsetRange | object | Format range for local settings,see Table 5 for more information. | |
support_get_fr_group | bool | Whether to support face group acquisition, that is, support the GetId method. | |
support_get_lpr_group | bool | Whether to support license plate group acquisition, that is, support the GetId method. | |
Manufacturer | Max length:32byte | String | Manufacturer name. |
wireless_dev | bool | Determine whether it is a wireless device, wireless device true, wired false. | |
support_top_online | bool | Support online channel auto-completion function. | |
support_digitchannel_autofill | bool | Support digital channel auto-completion function. | |
magic_channel | string array | An analog channel that has been converted to a digital channel. | |
accepted_compress_encodi | "gzip" | string array | API body compression, support gzip compression. |
support_partial_request | object | API that supports paged data transfer,see Table 6 for more information. | |
support_record_type_ex | bool | Whether to support record type expansion. | |
support_get_upgradeUrlpw | bool | Whether to support calling FtpUpgrade/Get API to get encrypted client server password. |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
ptz_version | "1.0", "2.0" | string | Ptz version. |
btn_autofocus | bool | Auto focus. | |
quick_use | "Ptz_QuickUse_3DPosition", "Ptz_QuickUse_AutoFocus", "Ptz_QuickUse_PtzReset", "Ptz_QuickUse_WatchMode", "Ptz_QuickUse_ManualHumanTrace", "Ptz_QuickUse_LensReset" | string array | Shortcut function buttons. |
iris_minus_add | bool | Aperture increases and decreases. |
Table 4
Parameter | Range | Type | Description |
---|---|---|---|
RecFileType | string | Video download default format, neutral default is MP4. | |
CapFileType | string | The default format of snapshots is neutral, and the default is JPG. | |
SwitchTime | string | The default interval is neutral, and the default interval is 10. |
Table 5
Parameter | Range | Type | Description |
---|---|---|---|
RecFileType | "RF", "MP4", "AVI" | string | Video download format options. |
CapFileType | "JPG", "BMP", "PNG" | string | Snapshot format options. |
SwitchTime | 1~60 | int | Interval time range. |
Table 6
Parameter | Range | Type | Description |
---|---|---|---|
/API/IPCMaintaint/IPCDisk/Get | object | API that supports page-by-page access to IPC SDK information, object member see Table 7 for more information. | |
/API/IPCMaintaint/IPCDisk/Format | object | API that supports pagination formatting IPC SDK, object member see Table 7 for more information. |
Table 7
Parameter | Range | Type | Description |
---|---|---|---|
type | "channel_list" | string | type of data. |
quota | 0-32 | int | The size of each page of data after paging. |
total | int | The 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
Parameter | Required | Description |
---|---|---|
Action | YES | Request 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
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
Parameter | Range | Type | Description |
---|---|---|---|
channel | "CH1"…"CH1x", "IP_CH1"…" IP_CH1x", "WIFI_CH1"…" WIFI_CH1x" The channel names supported by the device. | string | Channel name |
action | 0-1 | int | 1: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
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
Parameter | Range | Type | Description |
---|---|---|---|
channel | string | Channel name. | |
floodlight_switch | true,false | bool | Flood light real-time switch,false: close;true: open. |
floodlight_mode | 0-1 | int | Flood light mode, 0: always on, 1: flashing. |
floodlight_value | 1-100 | int | Brightness of flood light. |
floodlight_strobe_frequency | 0-2 | array | Enabled in blinking mode, 0:low; 1:middle; 2:high. |
floodlight_value_range | 1-100 | int | Flood light brightness range. |
audioAlarm _switch | true,false | bool | Horn real-time switch,false: close true: open. |
audioAlarm _value | 1-10 | int | Audio volume. |
audioAlarm_value_range | 1-10 | int | Audio volume range. |
operation_type | "Floodlight", "AudioAlarm", "RedBlueLight", "All" | string | Operation type. |
redBlueLight_switch | bool | Red 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
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
Parameter | Range | Type | Description |
---|---|---|---|
Local->1 | bool | Local->1 channel alarm switch | |
...... | bool | ...... | |
Loca->x | bool | Local->x channel alarm switch | |
IP_CH1->1 | bool | IP_CH1->1 channel alarm switch | |
...... | bool | ...... | |
IP_CHx->x | bool | IP_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
Parameter | Required | Description |
---|---|---|
Action | YES | Request action, including Get, Control, Control/Progress. |
Get
Function
This API is used to get PTZ control information.
Request Message
Parameter Description
Table 1
Parameter | Range | Type | Description |
---|---|---|---|
channel | "CH1"…"CHx", "IP_CH1"…" IP_CHx", "WIFI_CH1"…",WIFI_CHx", The number of channels depends on the capabilities of the device. | string | Channel 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
Parameter | Range | Type | Description |
---|---|---|---|
channel | string | ||
ptz_version | "1.0","2.0","3.0" | string | Ptz version. |
cmd | "Ptz_Cmd_Up", "Ptz_Cmd_Down", … … "Ptz_Privacy_Mode", "Ptz_Trace_Mode" | string | See Table 3 for more information of cmd. |
state | "Stop","Start" | string | For button press and release. |
zoom_step | 1,5,20 | int | Zoom adjust the number of steps. |
focus_step | 1,5,20 | int | Focus adjust the number of steps. |
zoom_slider | Depending on the lens | int | Zoom slider. |
focus_slider | Depending on the lens | int | Focus slider. |
isctl | bool | Whether gray screen; true: no gray screen; false: gray screen. | |
speed | 0-10 0-100(For DVR/NVR) | int | (only control) |
preset_point | 0-255 | int array | The 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_state | bool | Line scan cruise state. | |
trace_preset_point | array | Preset point set by TOUR. | |
preset_point_no | 1-255 | int | (only control) |
ctl_stop | bool | true:stop ctl operation(only control) | |
preset_point_time | 1-255 | int | Single preset point polling time.(only control) |
preset_point_name | len:1-31 | string | Preset point name, ranging from 1 to 31 character. |
zoom_minus_add | "Ptz_Cmd_ZoomMinus" "Ptz_Cmd_ZoomAdd" | object | Range used it to display the zoom button |
focus_minus_add | "Ptz_Cmd_FocusMinus", "Ptz_Cmd_FocusAdd" | object | Range used it to display the focus button Range |
iris_minus_add | "Ptz_Cmd_IrisMinus", "Ptz_Cmd_IrisAdd" | object | Range used it to display aperture buttons. |
btn_autofocus | "Ptz_Btn_AutoFocus" | object | Used to display the autofocus button. |
btn_default | "Ptz_Btn_Default" | object | Used to display the restore button. |
btn_refresh | "Ptz_Btn_Refresh" | object | Used to display the refresh button |
preset_point_cruise_btn | "Ptz_Cmd_Cruise" | object | Used to display the cruise buttons. |
is_req_progress | bool | Whether 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" | object | Range used it to display direction control. |
advanced_mode | "Mode_Preset_Point", "Mode_Watch_Mode", "Mode_Line_Scan", "Mode_Trace", "Mode_Pattern_Scan" | object | Range used it to display each mode in the advanced mode. |
trace_number | 0-3 | int | Tour 1-4 tracks. |
pattern_scan_number | 0-3 | int | Pattern scan 1-4 tracks. |
pattern_scan_number_isset | 0-3 | bool array | Whether pattern scan 1-4 has been marked. |
line_scan_speed | "Low", "Middle", "High" | string | line scan speed |
line_scan_area | bool | Whether linear scan is set. | |
trace_interval | "5s""6s""7s"….."59s""60s" | string | Tour time interval. |
utc_protocol | string | Utc 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" | string | Current pattern scan mode |
belt_times_use | 0-100 | int | Belt 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" | string | Range used it to display shortcut function buttons. |
preset_point_obj | 0-256 | object array | Object 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" | string | Mode of watch mode. |
watch_mode_num | 0 - 255 | int | Num of public modes in watch mode.(except linear scan) |
watch_mode_num | "low", "middle", "high" | string | Linear scan speed in watch mode. |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
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
Parameter | Range | Type | Description |
---|---|---|---|
no | 1-256 | int | The number of preset points can be set up to 255. |
name | len:1-31 | string | Array preset point name: range 1 to 31 character. |
add | bool | Whether 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
Parameter | Range | Type | Description |
---|---|---|---|
channel | string | Channel 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
Parameter | Required | Description |
---|---|---|
Action | YES | Request 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
Parameter | Range | Type | Description |
---|---|---|---|
answer_flag | bool | Whether to support question and answer verification retrieval. | |
email_flag | bool | Whether to support email retrieval. | |
certificate_flag | bool | Whether to support certificate retrieval. | |
super_pwd_flag | bool | Whether to support super password. | |
len:1-64 | string | Email. | |
questions | len:1-15 | int array | question number. |
enc_answers | array_size:3, string_size:1-64 | string array | Question answers. |
mode | "Answer", "Email", "Certificate", "SuperPwd" | string | Only display the selected password recovery method. |
email_code | len:1-64 | string | Email verification code. |
certificate | len:1-128 | string | Certificate code. |
super_pwd | len:1-16 | string | Super password. |
system_time | len:1-64 | string | Date time. |
mac_address | len:0-35 | string | Mac 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
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
Parameter | Range | Type | Description |
---|---|---|---|
mode | "Answer", "Email", "Certificate", "SuperPwd" | string | Only display the selected password recovery method. |
questions | len:1-15 | int array | question number. |
enc_answers | array_size:3, string_size:1-64 | string array | Question answers. |
email_code | len:1-64 | string | Email verification code. |
certificate | len:1-128 | string | Certificate code. |
super_pwd | len:1-16 | string | Super password. |
system_time | len:1-64 | string | Date time. |
mac_address | len:0-35 | string | Mac address. |
base_enc_password | object | Encrypted object. See Table 2 for details. |
Table 2
Parameter | Range | Type | Description |
---|---|---|---|
peer_key | len:0-1024 | string | Key. |
cipher | len:0-1024 | string | ciphertext. |
seq | 0-1000000 | int | Valid 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
Parameter | Required | Description |
---|---|---|
Action | YES | Request 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
Parameter | Range | Type | Description |
---|---|---|---|
certificate | len:1-128 | string | Certificate 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.
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
Parameter | Required | Description |
---|---|---|
Action | YES | Request 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
Parameter | Required | Description |
---|---|---|
Action | YES | Request 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.
Scenario | Request key type | Algorithm | Request API |
---|---|---|---|
Secondary authentication | base_salt | PBKDF2_SHA256 | /API/Maintenance/TransKey/Get |
Set admin password for the first time | base_x_public | RSA | /API/Login/TransKey/Get, /API/FirstLogin/Password/Set |
Modify the initial password of ordinary users | base_x_public | RSA | /API/Maintenance/TransKey/Get, /API/Login/Password/Set |
Add user Change user password | base_x_public | RSA | /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:
- Calculate the cipher for the secondary authentication pbkdf2.html
- 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:
Parameter | Range | Type | Description |
---|---|---|---|
cipher | 0-1024 | string | encrypted password using /API/*/TransKey/Get Derived X25519 encryption, using base64 for transmission. |
seq | 0-1000000 | int | return /API/*/TransKey/Get The seq returned by the API . |
peer_key | 0-1024 | string | The X25519 key encrypted by the client, using base64 for transmission. |
Table 2
base_secondary_authentication Table information:
Parameter | Range | Type | Description |
---|---|---|---|
cipher | len:44 | string | encrypted password (using /API/*/TransKey/Get The returned secret key is encrypted), using base64 for transmission. PBKDF2 output length is 32, base64 is 44 |
seq | 0-1000000 | int | Use 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
Parameter | Range | Type | Description |
---|---|---|---|
key_lists | object array | Array of key structures, see Table 3 for more details. |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
type | "base_salt ", "base_x_public" | string | "base_salt": PBKDF2_SHA256 secondary authentication; "base_x_public" password transmission. |
key | len:0-1024 | string | hexadecimal random number string, which needs to be converted. The public key is in plain text and is transmitted by Base64. |
iter | 0-1000000 | int | Number of iterations for PBKDF2_SHA256. |
seq | 0-1000000 | int | Each 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
Parameter | Range | Type | Description |
---|---|---|---|
type | "base_salt" "base_x_public" maximum length: 5 | string array | The 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
Parameter | Range | Type | Description |
---|---|---|---|
key_lists | object array | Array of key structures, see Table 3 for more details. |
Table 3
Parameter | Range | Type | Description |
---|---|---|---|
type | "base_salt ", "base_x_public" | string | "base_salt": PBKDF2_SHA256 secondary authentication; "base_x_public" password transmission. |
key | len:0-1024 | string | hexadecimal random number string, which needs to be converted. The public key is in plain text and is transmitted by Base64. |
iter | 0-1000000 | int | Number of iterations for PBKDF2_SHA256. |
seq | 0-1000000 | int | Each 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
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
Parameter | Range | Type | Description |
---|---|---|---|
oem_type | int | Login 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)
Parameter | Range | Type | Description |
---|---|---|---|
last_login_time | Max_length:64 | string | Last successful login time (time stamp). |
last_login_ip | Max_length: 64 | string | IP address of the last successful login. |
fail_login_count | int | The number of failed logins since the last successful login. | |
pwd_remain_time | int | The number of days remaining on the password (IPC defaults to 90 days). |
Table 3(login failed)
Parameter | Range | Type | Description |
---|---|---|---|
block_remain_time | int | Indicates 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_code | COMMENT |
---|---|
no_permission | No remote login permission |
login_failed_or_block | locked after five or more failed logins |
black_ip | This IP is set as blacklist |
verify_failed | Wrong username or password within five times - login failed |
device_reboot | The 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
Parameter | Required | Description |
---|---|---|
Action | YES | Request 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
Parameter | Range | Type | Description |
---|---|---|---|
cloud_video_is_used | len:0~Maximum number of channels | array | The channel number to enable cloud video upload function. |
max_cloud_video_upload_num | int | Maximum 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/