Áú»¢¶Ä²©

Hikvision

Hikvision, is a Chinese partially state-owned manufacturer and supplier of video surveillance equipment for civilian and military purposes.

Dostupn¨¢ ?±ð?±ð²Ô¨ª




This template is for Áú»¢¶Ä²© version: 7.2

Source:

Hikvision camera by HTTP

Overview

This template is designed for the effortless deployment of Hikvision cameras monitoring by Áú»¢¶Ä²© via HTTP and doesn't require any external scripts.

Requirements

Áú»¢¶Ä²© version: 7.2 and higher.

Tested versions

This template has been tested on:

  • DS-I220
  • DS-I450
  • DS-2CD2620F-I
  • DS-2CD1631FWD-I
  • DS-2CD2020F-I
  • DS-2CD2042WD-I
  • DS-2CD2T43G0-I5
  • DS-2DF5286-AEL
  • DS-2CD2T25FWD-I5
  • DS-2CD4A35FWD-IZHS
  • DS-I200
  • DS-2CD1031-I
  • DS-2CD2125FWD-IS
  • DS-I122
  • DS-I203
  • DS-N201
  • DS-2CD2622FWD-IZS
  • DS-2CD2023G0-I

Configuration

Áú»¢¶Ä²© should be configured according to the instructions in the Templates out of the box section.

Setup

  1. Set the hostname or IP address of the Hikvision ISAPI host in the {$HIKVISION_ISAPI_HOST} macro.

  2. Set the user name and password in the {$PASSWORD} and {$USER} macros.

  3. Change other macros according to your camera configuration if necessary.

Macros used

Name Description Default
{$CPU.UTIL.CRIT} 90
{$HIKVISION_ISAPI_HOST}

The hostname or IP address of the Hikvision ISAPI host.

<SET ISAPI HOST>
{$HIKVISION_ISAPI_PORT}

ISAPI port on device

80
{$HIKVISION_MAIN_CHANNEL_ID}

Main video stream ID

101
{$HIKVISION_STREAM_HEIGHT}

Main video stream image height

1080
{$HIKVISION_STREAM_WIDTH}

Main video stream image width

1920
{$MEMORY.UTIL.MAX} 95
{$PASSWORD} 1234
{$USER} admin

Items

Name Description Type Key and additional info
Boot loader released date Dependent item hikvision_cam.boot_released_date

Preprocessing

  • JSON Path: $.DeviceInfo.bootReleasedDate

    ??Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Boot loader version Dependent item hikvision_cam.boot_version

Preprocessing

  • JSON Path: $.DeviceInfo.bootVersion

    ??Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

CPU utilization

CPU utilization in %

Dependent item hikvision_cam.cpu.util

Preprocessing

  • JSON Path: $.DeviceStatus.CPUList.CPU.cpuUtilization

    ??Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Current device time Dependent item hikvision_cam.current_device_time

Preprocessing

  • JSON Path: $.DeviceStatus.currentDeviceTime

    ??Custom on fail: Discard value

Device description Dependent item hikvision_cam.device_description

Preprocessing

  • JSON Path: $.DeviceInfo.deviceDescription

    ??Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Device ID Dependent item hikvision_cam.device_id

Preprocessing

  • JSON Path: $.DeviceInfo.deviceID

    ??Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Device location Dependent item hikvision_cam.device_location

Preprocessing

  • JSON Path: $.DeviceInfo.deviceLocation

    ??Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Device name Dependent item hikvision_cam.device_name

Preprocessing

  • JSON Path: $.DeviceInfo.deviceName

    ??Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1d

Device type Dependent item hikvision_cam.device_type

Preprocessing

  • JSON Path: $.DeviceInfo.deviceType

    ??Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Encoder released date Dependent item hikvision_cam.encoder_released_date

Preprocessing

  • JSON Path: $.DeviceInfo.encoderReleasedDate

    ??Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Encoder version Dependent item hikvision_cam.encoder_version

Preprocessing

  • JSON Path: $.DeviceInfo.encoderVersion

    ??Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Firmware released date Dependent item hikvision_cam.firmware_released_date

Preprocessing

  • JSON Path: $.DeviceInfo.firmwareReleasedDate

    ??Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Firmware version Dependent item hikvision_cam.firmware_version

Preprocessing

  • JSON Path: $.DeviceInfo.firmwareVersion

    ??Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Get device info

Used to get the device information

HTTP agent hikvision_cam.get_info

Preprocessing

  • Check for not supported value: any error

    ??Custom on fail: Set value to: {"html":{"head":{"title":"Connection error"}}}

  • XML to JSON:

    ??Custom on fail: Set value to: {"html":{"head":{"title":"Connection error"}}}

Get device info: Login status Dependent item hikvision_cam.get_info.login_status

Preprocessing

  • JavaScript: The text is too long. Please see the template.

  • Discard unchanged with heartbeat: 1h

Get system status

It is used to get the status information of the device

HTTP agent hikvision_cam.get_status

Preprocessing

  • Check for not supported value: any error

    ??Custom on fail: Set value to: {"html":{"head":{"title":"Connection error"}}}

  • XML to JSON:

    ??Custom on fail: Set value to: {"html":{"head":{"title":"Connection error"}}}

Get system status: Login status Dependent item hikvision_cam.get_status.login_status

Preprocessing

  • JavaScript: The text is too long. Please see the template.

  • Discard unchanged with heartbeat: 1h

Get streaming channels

Used to get the properties of streaming channels for the device

HTTP agent hikvision_cam.get_streaming

Preprocessing

  • Check for not supported value: any error

    ??Custom on fail: Set value to: {"html":{"head":{"title":"Connection error"}}}

  • XML to JSON:

    ??Custom on fail: Set value to: {"html":{"head":{"title":"Connection error"}}}

Get streaming channels: Login status Dependent item hikvision_cam.get_streaming.login_status

Preprocessing

  • JavaScript: The text is too long. Please see the template.

  • Discard unchanged with heartbeat: 1h

Hardware version Dependent item hikvision_cam.hardware_version

Preprocessing

  • JSON Path: $.DeviceInfo.hardwareVersion

    ??Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

MACaddress Dependent item hikvision_cam.mac_address

Preprocessing

  • JSON Path: $.DeviceInfo.macAddress

    ??Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Memory utilization

Memory utilization in %

Dependent item hikvision_cam.memory.usage

Preprocessing

  • JSON Path: $.DeviceStatus.MemoryList.Memory.memoryUsage

    ??Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Model Dependent item hikvision_cam.model

Preprocessing

  • JSON Path: $.DeviceInfo.model

    ??Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Serial number Dependent item hikvision_cam.serial_number

Preprocessing

  • JSON Path: $.DeviceInfo.serialNumber

    ??Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Supported beep Dependent item hikvision_cam.support_beep

Preprocessing

  • JSON Path: $.DeviceInfo.supportBeep

    ??Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Supported video loss Dependent item hikvision_cam.support_video_loss

Preprocessing

  • JSON Path: $.DeviceInfo.supportVideoLoss

    ??Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

System contact Dependent item hikvision_cam.system_contact

Preprocessing

  • JSON Path: $.DeviceInfo.systemContact

    ??Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Telecontrol ID Dependent item hikvision_cam.telecontrol_id

Preprocessing

  • JSON Path: $.DeviceInfo.telecontrolID

    ??Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Uptime

The system uptime expressed in the following format: "N days, hh:mm:ss".

Dependent item hikvision_cam.uptime

Preprocessing

  • JSON Path: $.DeviceStatus.deviceUpTime

    ??Custom on fail: Discard value

Triggers

Name Description Expression Severity Dependencies and additional info
Hikvision: High CPU utilization

The CPU utilization is too high. The system might be slow to respond.

min(/Hikvision camera by HTTP/hikvision_cam.cpu.util,5m)>{$CPU.UTIL.CRIT} Warning
Hikvision: Version has changed

Hikvision camera version has changed. Acknowledge to close the problem manually.

last(/Hikvision camera by HTTP/hikvision_cam.firmware_version,#1)<>last(/Hikvision camera by HTTP/hikvision_cam.firmware_version,#2) and length(last(/Hikvision camera by HTTP/hikvision_cam.firmware_version))>0 Info Manual close: Yes
Hikvision: Authorisation error

Check the correctness of the authorization data

last(/Hikvision camera by HTTP/hikvision_cam.get_info.login_status)=1 or last(/Hikvision camera by HTTP/hikvision_cam.get_streaming.login_status)=1 or last(/Hikvision camera by HTTP/hikvision_cam.get_status.login_status)=1 Warning Manual close: Yes
Hikvision: Error receiving data

Check the availability of the HTTP port

last(/Hikvision camera by HTTP/hikvision_cam.get_info.login_status)=2 or last(/Hikvision camera by HTTP/hikvision_cam.get_streaming.login_status)=2 or last(/Hikvision camera by HTTP/hikvision_cam.get_status.login_status)=2 Warning Manual close: Yes
Hikvision: High memory utilization

The system is running out of free memory.

min(/Hikvision camera by HTTP/hikvision_cam.memory.usage,5m)>{$MEMORY.UTIL.MAX} Average
Hikvision: Camera has been replaced

Camera serial number has changed. Acknowledge to close the problem manually.

last(/Hikvision camera by HTTP/hikvision_cam.serial_number,#1)<>last(/Hikvision camera by HTTP/hikvision_cam.serial_number,#2) and length(last(/Hikvision camera by HTTP/hikvision_cam.serial_number))>0 Info Manual close: Yes
Hikvision: Camera has been restarted

Uptime is less than 10 minutes.

last(/Hikvision camera by HTTP/hikvision_cam.uptime)<10m Info Manual close: Yes

LLD rule PTZ discovery

Name Description Type Key and additional info
PTZ discovery HTTP agent hikvision_cam.ptz.discovery

Preprocessing

  • XML to JSON:
  • JavaScript: The text is too long. Please see the template.

Item prototypes for PTZ discovery

Name Description Type Key and additional info
Channel "{#PTZ_CHANNEL_ID}": Get PTZ info: Channel "{#PTZ_CHANNEL_ID}": Login status Dependent item hikvision_cam.get_ptz.login_status[{#PTZ_CHANNEL_ID}]

Preprocessing

  • JavaScript: The text is too long. Please see the template.

  • Discard unchanged with heartbeat: 1h

Channel "{#PTZ_CHANNEL_ID}": Get PTZ info

High precision positioning which is accurate to a bit after the decimal point

HTTP agent hikvision_cam.get_ptz[{#PTZ_CHANNEL_ID}]

Preprocessing

  • Check for not supported value: any error

    ??Custom on fail: Set value to: {"html":{"head":{"title":"Connection error"}}}

  • XML to JSON:

    ??Custom on fail: Set value to: {"html":{"head":{"title":"Connection error"}}}

Channel "{#PTZ_CHANNEL_ID}": Absolute zoom Dependent item hikvision_cam.ptz.absolute_zoom[{#PTZ_CHANNEL_ID}]

Preprocessing

  • JSON Path: $.PTZStatus.AbsoluteHigh.absoluteZoom

    ??Custom on fail: Discard value

  • Custom multiplier: 0.1

    ??Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#PTZ_CHANNEL_ID}": Azimuth Dependent item hikvision_cam.ptz.azimuth[{#PTZ_CHANNEL_ID}]

Preprocessing

  • JSON Path: $.PTZStatus.AbsoluteHigh.azimuth

    ??Custom on fail: Discard value

  • Custom multiplier: 0.1

    ??Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#PTZ_CHANNEL_ID}": Elevation Dependent item hikvision_cam.ptz.elevation[{#PTZ_CHANNEL_ID}]

Preprocessing

  • JSON Path: $.PTZStatus.AbsoluteHigh.elevation

    ??Custom on fail: Discard value

  • Custom multiplier: 0.1

    ??Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Trigger prototypes for PTZ discovery

Name Description Expression Severity Dependencies and additional info
Hikvision: Channel "{#PTZ_CHANNEL_ID}": Authorisation error

Check the correctness of the authorization data

last(/Hikvision camera by HTTP/hikvision_cam.get_ptz.login_status[{#PTZ_CHANNEL_ID}])=1 Warning Manual close: Yes
Depends on:
  • Hikvision: Authorisation error
Hikvision: Channel "{#PTZ_CHANNEL_ID}": Error receiving data

Check the availability of the HTTP port

last(/Hikvision camera by HTTP/hikvision_cam.get_ptz.login_status[{#PTZ_CHANNEL_ID}])=2 Warning Manual close: Yes
Depends on:
  • Hikvision: Error receiving data
Hikvision: Channel "{#PTZ_CHANNEL_ID}": PTZ position changed

The direction of the camera has changed

last(/Hikvision camera by HTTP/hikvision_cam.ptz.absolute_zoom[{#PTZ_CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.ptz.absolute_zoom[{#PTZ_CHANNEL_ID}],#2) or last(/Hikvision camera by HTTP/hikvision_cam.ptz.azimuth[{#PTZ_CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.ptz.azimuth[{#PTZ_CHANNEL_ID}],#2) or last(/Hikvision camera by HTTP/hikvision_cam.ptz.elevation[{#PTZ_CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.ptz.elevation[{#PTZ_CHANNEL_ID}],#2) Info Manual close: Yes

LLD rule Streaming channels discovery

Name Description Type Key and additional info
Streaming channels discovery HTTP agent hikvision_cam.streaming.discovery

Preprocessing

  • XML to JSON:
  • JavaScript: The text is too long. Please see the template.

Item prototypes for Streaming channels discovery

Name Description Type Key and additional info
Channel "{#CHANNEL_ID}": Constant bitRate Dependent item hikvision_cam.constant_bit_rate[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ??Custom on fail: Discard value

  • JSON Path: $.[0]

    ??Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Fixed quality Dependent item hikvision_cam.fixed_quality[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ??Custom on fail: Discard value

  • JSON Path: $[0]

    ??Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": GovLength Dependent item hikvision_cam.gov_length[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ??Custom on fail: Discard value

  • JSON Path: $[0]

    ??Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": H264Profile Dependent item hikvision_cam.h264Profile[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ??Custom on fail: Discard value

  • JSON Path: $[0]

    ??Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Key frame interval Dependent item hikvision_cam.key_frame_interval[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ??Custom on fail: Discard value

  • JSON Path: $[0]

    ??Custom on fail: Discard value

  • Custom multiplier: 0.01

    ??Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Frame rate (max) Dependent item hikvision_cam.max_frame_rate[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ??Custom on fail: Discard value

  • JSON Path: $[0]

    ??Custom on fail: Discard value

  • Custom multiplier: 0.01

    ??Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Smoothing Dependent item hikvision_cam.smoothing[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ??Custom on fail: Discard value

  • JSON Path: $[0]

    ??Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Snapshot image type Dependent item hikvision_cam.snap_shot_image_type[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ??Custom on fail: Discard value

  • JSON Path: $[0]

    ??Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": VBR lower Dependent item hikvision_cam.vbr_lower_cap[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ??Custom on fail: Discard value

  • JSON Path: $[0]

    ??Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": VBR upper Dependent item hikvision_cam.vbr_upper_cap[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ??Custom on fail: Discard value

  • JSON Path: $[0]

    ??Custom on fail: Discard value

Channel "{#CHANNEL_ID}": Video codec type Dependent item hikvision_cam.video_codec_type[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ??Custom on fail: Discard value

  • JSON Path: $[0]

    ??Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Video quality control type Dependent item hikvision_cam.video_quality_control_type[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ??Custom on fail: Discard value

  • JSON Path: $[0]

    ??Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Resolution height Dependent item hikvision_cam.video_resolution_height[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ??Custom on fail: Discard value

  • JSON Path: $[0]

    ??Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Resolution width Dependent item hikvision_cam.video_resolution_width[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ??Custom on fail: Discard value

  • JSON Path: $[0]

    ??Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Video scan type Dependent item hikvision_cam.video_scan_type[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ??Custom on fail: Discard value

  • JSON Path: $[0]

    ??Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Trigger prototypes for Streaming channels discovery

Name Description Expression Severity Dependencies and additional info
Hikvision: Channel "{#CHANNEL_ID}": Invalid video stream resolution parameters

expected: {$HIKVISION_STREAM_WIDTH} px x {$HIKVISION_STREAM_HEIGHT} px
received: {ITEM.LASTVALUE2} x {ITEM.LASTVALUE1}

last(/Hikvision camera by HTTP/hikvision_cam.video_resolution_height[{#CHANNEL_ID}])<>{$HIKVISION_STREAM_HEIGHT} or last(/Hikvision camera by HTTP/hikvision_cam.video_resolution_width[{#CHANNEL_ID}])<>{$HIKVISION_STREAM_WIDTH} Warning Manual close: Yes
Hikvision: Channel "{#CHANNEL_ID}": Parameters of video stream are changed last(/Hikvision camera by HTTP/hikvision_cam.fixed_quality[{#CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.fixed_quality[{#CHANNEL_ID}],#2) or last(/Hikvision camera by HTTP/hikvision_cam.constant_bit_rate[{#CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.constant_bit_rate[{#CHANNEL_ID}],#2) or last(/Hikvision camera by HTTP/hikvision_cam.video_quality_control_type[{#CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.video_quality_control_type[{#CHANNEL_ID}],#2) or last(/Hikvision camera by HTTP/hikvision_cam.video_resolution_width[{#CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.video_resolution_width[{#CHANNEL_ID}],#2) or last(/Hikvision camera by HTTP/hikvision_cam.video_resolution_height[{#CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.video_resolution_height[{#CHANNEL_ID}],#2) Info Manual close: Yes

Feedback

Please report any issues with the template at

You can also provide feedback, discuss the template, or ask for help at ZABBIX forums

?l¨¢nky a dokumentace

+ Navrhn¨§te nov? ?l¨¢nek

Nena?li jste integraci, kterou pot?ebujete?