New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

node-red-contrib-hikvision-ultimate

Package Overview
Dependencies
Maintainers
1
Versions
121
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

node-red-contrib-hikvision-ultimate - npm Package Compare versions

Comparing version 1.0.51 to 1.0.52

img/Doorbell.png

6

CHANGELOG.md

@@ -7,4 +7,8 @@ <p align="center"><img src='https://raw.githubusercontent.com/Supergiovane/node-red-contrib-hikvision-ultimate/master/img/logo.png' width="40%"></p>

<p>
<b>Version 1.0.52</b> September 2021<br/>
- NEW: Doorbell node (you can be notified on ringing, on call and even open the door). Thanks @ur5zeb for help in testing.<br/>
</p>
<p>
<b>Version 1.0.51</b> August 2021<br/>
- FIX: XML Node won't retain the XML text.<br/>
- FIX: XML Node do not retain the XML text.<br/>
</p>

@@ -11,0 +15,0 @@ <p>

15

package.json
{
"name": "node-red-contrib-hikvision-ultimate",
"version": "1.0.51",
"description": "A native set of nodes for Hikvision Cameras, Alarms, Radars etc.",
"version": "1.0.52",
"description": "A native set of nodes for Hikvision (and compatible) Cameras, Alarms, Radars, NVR, Doorbells, etc.",
"author": "Supergiovane (https://github.com/Supergiovane)",

@@ -20,3 +20,6 @@ "dependencies": {

"ANPR",
"license plate"
"license plate",
"doorbell",
"door intercom",
"anker"
],

@@ -34,2 +37,3 @@ "engines": {

"Hikvision-config": "nodes/Hikvision-config.js",
"Doorbell-config": "nodes/Doorbell-config.js",
"ANPR-config": "nodes/ANPR-config.js",

@@ -42,5 +46,6 @@ "hikvisionUltimateText": "nodes/hikvisionUltimateText.js",

"hikvisionUltimatePicture": "nodes/hikvisionUltimatePicture.js",
"hikvisionUltimateXML": "nodes/hikvisionUltimateXML.js"
"hikvisionUltimateXML": "nodes/hikvisionUltimateXML.js",
"hikvisionUltimateDoorbell": "nodes/hikvisionUltimateDoorbell.js"
}
}
}
}
<p align="center"><img src='https://raw.githubusercontent.com/Supergiovane/node-red-contrib-hikvision-ultimate/master/img/logo.png' width="60%"></p>
A native set of nodes for Hikvision Cameras, Alarms, Radars, NVR etc.
A native set of nodes for Hikvision (and compatible) Cameras, Alarms, Radars, NVR, Doorbells etc.

@@ -16,4 +16,4 @@ [![NPM version][npm-version-image]][npm-url]

## DESCRIPTION
This is a set of nodes to handle ISAPI Hikvision messages. It works exclusively with ***HIKVISION*** devices.<br/>
Works with cameras, NVR, Security Systems and also with specialized devices, like Radar (for example DS-PR1-60, DS-PR1-100 and DS-PR1-120).<br/>
This is a set of nodes to handle ISAPI Hikvision messages. It works exclusively with ***HIKVISION*** and Hikvision based compatible devices.<br/>
Works with cameras, NVR, Security Systems, Doorbells and also with specialized devices, like Radar (for example DS-PR1-60, DS-PR1-100 and DS-PR1-120).<br/>
Digest authentication: it should work with all devices.<br/>

@@ -62,3 +62,3 @@ All nodes are capable of auto reconnect if the connection is lost and are able to actively monitor the connection.<br/>

// Example of an event from NVR/Camera
msg.payload = {
msg = {
"payload": true,

@@ -75,3 +75,3 @@ "topic": "",

// Example of an event from Security System or Radar
msg.payload = {
msg = {
{

@@ -139,3 +139,3 @@ "zone": 1, // This is the zone number that fired the alarm

```javascript
msg.payload = {
msg = {
"topic":"",

@@ -186,3 +186,3 @@ "payload":"AB123CD", // This is the license plate

```javascript
msg.payload = {
msg = {
{

@@ -236,214 +236,3 @@ "payload": true, // true after the camera has reached the PTZ preset position

```javascript
[
{
"id": "604a8eaf.6d4ac",
"type": "change",
"z": "d61f370f.0413c",
"name": "Setup msg",
"rules": [
{
"t": "set",
"p": "cid",
"pt": "msg",
"to": "",
"tot": "date"
},
{
"t": "set",
"p": "attachments",
"pt": "msg",
"to": "[{\t \"filename\": 'image_' & $replace($now(),\":\",\"_\") & '.jpg', \t \"content\": $$.forEmail,\t \"cid\": \"\" & cid & \"\"\t}]",
"tot": "jsonata"
},
{
"t": "set",
"p": "topic",
"pt": "msg",
"to": "See attached image",
"tot": "str"
},
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "''",
"tot": "jsonata"
},
{
"t": "set",
"p": "from",
"pt": "msg",
"to": "info@mysupersmarthome.it",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 430,
"y": 120,
"wires": [
[
"aad931f8.dc90c8"
]
]
},
{
"id": "aad931f8.dc90c8",
"type": "e-mail",
"z": "d61f370f.0413c",
"server": "mymta.myserver.com",
"port": "25",
"secure": false,
"tls": false,
"name": "info@mysupersmarthome.it",
"dname": "Email",
"x": 570,
"y": 120,
"wires": [
]
},
{
"id": "8e957d25.a94278",
"type": "hikvisionUltimatePicture",
"z": "d61f370f.0413c",
"name": "Ovest",
"topic": "",
"server": "eb73371b.af5208",
"channelID": "7",
"rotateimage": "0",
"heightimage": "",
"widthimage": "",
"qualityimage": "100",
"cropimage": "",
"textoverlay": "",
"textoverlayXY": "",
"textoverlayWH": "",
"textoverlayFont": "FONT_SANS_64_WHITE",
"x": 250,
"y": 120,
"wires": [
[
"604a8eaf.6d4ac",
"a7680ffd.f99168"
],
[
]
]
},
{
"id": "59408c5e.127414",
"type": "inject",
"z": "d61f370f.0413c",
"name": "",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "true",
"payloadType": "bool",
"x": 130,
"y": 120,
"wires": [
[
"8e957d25.a94278"
]
]
},
{
"id": "a7680ffd.f99168",
"type": "template",
"z": "d61f370f.0413c",
"name": "",
"field": "payload",
"fieldType": "msg",
"format": "handlebars",
"syntax": "mustache",
"template": "",
"output": "str",
"x": 420,
"y": 180,
"wires": [
[
"32fa81d7.a2ada6"
]
]
},
{
"id": "32fa81d7.a2ada6",
"type": "ui_template",
"z": "d61f370f.0413c",
"group": "c1bf19aa.fe7fb8",
"name": "",
"order": 0,
"width": "9",
"height": "7",
"format": " ",
"storeOutMessages": true,
"fwdInMessages": true,
"resendOnRefresh": true,
"templateScope": "local",
"x": 580,
"y": 180,
"wires": [
[
]
]
},
{
"id": "e3fdf8b2.9fbc48",
"type": "comment",
"z": "d61f370f.0413c",
"name": "Send an Email with image attachment and show it in the web UI",
"info": "",
"x": 310,
"y": 80,
"wires": [
]
},
{
"id": "eb73371b.af5208",
"type": "Hikvision-config",
"host": "192.168.1.32",
"port": "80",
"name": "NVR",
"authentication": "digest",
"protocol": "http",
"heartbeattimerdisconnectionlimit": "1",
"deviceinfo": "[object Object]"
},
{
"id": "c1bf19aa.fe7fb8",
"type": "ui_group",
"name": "Frame Grab",
"tab": "e0f42233.22428",
"order": 1,
"disp": true,
"width": "9",
"collapse": false
},
{
"id": "e0f42233.22428",
"type": "ui_tab",
"name": "NVR",
"icon": "dashboard",
"order": 13
}
]
[{"id":"bd6acbb81c4f9eaf","type":"change","z":"48095c5671f0ab16","name":"Setup msg","rules":[{"t":"set","p":"cid","pt":"msg","to":"","tot":"date"},{"t":"set","p":"attachments","pt":"msg","to":"[{\t \"filename\": 'image_' & $replace($now(),\":\",\"_\") & '.jpg', \t \"content\": $$.forEmail,\t \"cid\": \"\" & cid & \"\"\t}]","tot":"jsonata"},{"t":"set","p":"topic","pt":"msg","to":"See attached image","tot":"str"},{"t":"set","p":"payload","pt":"msg","to":"''","tot":"jsonata"},{"t":"set","p":"from","pt":"msg","to":"info@mysupersmarthome.it","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":410,"y":200,"wires":[["3e0ca3cc7c0d2e22"]]},{"id":"0b82f010bd682a0d","type":"hikvisionUltimatePicture","z":"48095c5671f0ab16","name":"Ovest","topic":"","server":"eb73371b.af5208","channelID":"7","rotateimage":"0","heightimage":"","widthimage":"","qualityimage":"100","cropimage":"","textoverlay":"","textoverlayXY":"","textoverlayWH":"","textoverlayFont":"FONT_SANS_64_WHITE","x":230,"y":200,"wires":[["bd6acbb81c4f9eaf","7ff4f0c75ef4d486"],[]]},{"id":"478fee35ffd435b5","type":"inject","z":"48095c5671f0ab16","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"true","payloadType":"bool","x":110,"y":200,"wires":[["0b82f010bd682a0d"]]},{"id":"facefd92c70af183","type":"comment","z":"48095c5671f0ab16","name":"Send an Email with image attachment and show it in the web UI","info":"","x":290,"y":160,"wires":[]},{"id":"7ff4f0c75ef4d486","type":"template","z":"48095c5671f0ab16","name":"","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"<img width=\"320px\" height=\"240px\" src=\"{{{payload}}}\">","output":"str","x":400,"y":260,"wires":[["121759fa66219f53"]]},{"id":"121759fa66219f53","type":"ui_template","z":"48095c5671f0ab16","group":"e2be830cd2d143a0","name":"","order":0,"width":"6","height":"4","format":"<div ng-bind-html=\"msg.payload\"></div>","storeOutMessages":true,"fwdInMessages":true,"resendOnRefresh":true,"templateScope":"local","x":560,"y":260,"wires":[[]]},{"id":"3e0ca3cc7c0d2e22","type":"function","z":"48095c5671f0ab16","name":"Email","func":"// Replace this function node with an email node","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":550,"y":200,"wires":[[]]},{"id":"eb73371b.af5208","type":"Hikvision-config","host":"192.168.1.32","port":"80","name":"NVR","authentication":"digest","protocol":"http","heartbeattimerdisconnectionlimit":"1","deviceinfo":"[object Object]"},{"id":"e2be830cd2d143a0","type":"ui_group","name":"Default","tab":"e0f42233.22428","order":2,"disp":true,"width":"6","collapse":false},{"id":"e0f42233.22428","type":"ui_tab","name":"NVR","icon":"dashboard","order":13}]
```

@@ -639,3 +428,3 @@

```javascript
msg.payload = {
msg = {
"topic": "",

@@ -683,5 +472,93 @@ "payload": {

```
<br/>
<br/>
# HIKVISION DEVICES TESTED WITH THE NODE
This is a list of Hikvision models the users own and decided to share because it checked working with Hikvision-Ultimate. <br/>
---
## DOORBELL NODE
The doorbell node allow you to receive ring/call progress events, open the doors, hangup calls and other things from hikvision and hik compatible doorbells. <br/>
Everytime ad intercom sends a message to the node, this message is validated using the filters you selected in the configuration window. In case of a match, it emits a msg to the flow.
<br/>There are many filters you can apply (ringStatus (ring or on call), floor number, unit number, building number and so on.).
<img src='https://raw.githubusercontent.com/Supergiovane/node-red-contrib-hikvision-ultimate/master/img/Doorbell.png' width="80%">
**Copy this code and paste it into your flow**
<details><summary>View code</summary>
> Adjust the nodes according to your setup
<code>
```javascript
[{"id":"22420ca523840eef","type":"hikvisionUltimateDoorbell","z":"48095c5671f0ab16","name":"","topic":"","server":"085ef798e6c04064","ringStatus":"all","floorNo":"all","unitNo":"all","zoneNo":"all","buildingNo":"all","x":360,"y":180,"wires":[["5d1eddc07a46bd2c"],["7b5813c6cd794885"]]},{"id":"5d1eddc07a46bd2c","type":"debug","z":"48095c5671f0ab16","name":"Output","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":550,"y":160,"wires":[]},{"id":"7b5813c6cd794885","type":"debug","z":"48095c5671f0ab16","name":"Error report","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":570,"y":200,"wires":[]},{"id":"a1032b3b72cf9db6","type":"inject","z":"48095c5671f0ab16","name":"Open Door","props":[{"p":"openDoor","v":"1","vt":"num"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":180,"y":160,"wires":[["22420ca523840eef"]]},{"id":"54590a36f409ce0f","type":"inject","z":"48095c5671f0ab16","name":"Hang Up","props":[{"p":"hangUp","v":"true","vt":"bool"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":"8","topic":"","x":180,"y":200,"wires":[["22420ca523840eef"]]},{"id":"2388a3941360bd3c","type":"comment","z":"48095c5671f0ab16","name":"Doorbell sample. Caution: \"Open Door\" will open your door.","info":"","x":330,"y":120,"wires":[]},{"id":"085ef798e6c04064","type":"Doorbell-config","host":"192.168.1.5","port":"80","name":"OUTDOOR STATION","authentication":"digest","protocol":"http","heartbeattimerdisconnectionlimit":"1","deviceinfo":"{\"DeviceInfo\":{\"$\":{\"version\":\"2.0\",\"xmlns\":\"http://www.isapi.org/ver20/XMLSchema\"},\"deviceName\":\"OUTDOOR STATION\",\"deviceID\":\"7d49925b-4fc7-406b-a0ec-2ca59cc25838\",\"deviceDescription\":\"\\tVis\",\"deviceLocation\":\"STD-CGI\",\"systemContact\":\"STD-CGI\",\"model\":\"DS-KV6113-WPE1(B)\",\"serialNumber\":\"DS-KV6113-WPE1(B)0120210416RRF86332026\",\"macAddress\":\"24:18:c6:39:42:29\",\"firmwareVersion\":\"V2.2.50\",\"firmwareReleasedDate\":\"build 210630\",\"bootVersion\":\"33685554\",\"bootReleasedDate\":\"1377822\",\"hardwareVersion\":\"0x0\",\"encoderVersion\":\"V4.0\",\"encoderReleasedDate\":\"build 181206\",\"deviceType\":\"\\tVis\",\"telecontrolID\":\"88\",\"supportBeep\":\"true\",\"supportVideoLoss\":\"true\",\"alarmOutNum\":\"2\",\"alarmInNum\":\"4\",\"RS485Num\":\"1\",\"customizedInfo\":\"\"}}"}]
```
</code>
</details>
**Flow Messages**
**Input**
The node accepts messages from the flow.<br/>
See these messages you can pass to it:<br/>
*OPEN THE DOOR LATCHES*
```javascript
// Open the door.
msg.openDoor = 1; // Pass the door number to open as value, in this case, 1.
return msg;
```
*HANG UP THE CURRENT CALL AND STOP RINGING*
```javascript
// Hangup the current call and stop ringing
msg.hangUp = true;
return msg;
```
<br/>
<br/>
**Output**
The node outputs a payload on **PIN 1** that can vary, depending on the event type sent by the connected intercom.<br/>
Anyway, it emits always a payload = ***true** as soon as an intercom message matching filters you configured in the configuration window, arrives. You can use that payload to trigger events.
The node outputs a payload on **PIN 2**, representing a connection error. ***TRUE*** if error, otherwise ***FALSE***</br>
This below is an example of msg output</br>
**Output PIN 1**
```javascript
msg = {
"CallerInfo":{
"buildingNo":1,
"floorNo":1,
"zoneNo":1,
"unitNo":1,
"devNo":88,
"devType":1,
"lockNum":1,
"status":"idle"
},
"topic":"",
"payload":true
}
```
**Output PIN 2 (connection error)**
```javascript
msg = {
"topic": "",
"errorDescription": "", // This will contain the error rescription, in case of errors.
"payload": false // Or TRUE if error
}
```
<br/>
<br/>
# HIKVISION AND OTHER HIK BASED DEVICES, TESTED WITH THE NODE
This is a list of Hikvision (and hik compatible) models the users own and decided to share because it checked working with Hikvision-Ultimate. <br/>
This is only a partial model list. Hikvision-Ultimate should work with basically ALL Hikvision devices.<br/>

@@ -688,0 +565,0 @@ [Click HERE to view the list of tested devices](http://80.211.147.27:8080/?read=true&md=noCD&fw=no)

@@ -5,3 +5,3 @@ var http = require('http');

console.log("NODE.JS Server started on port 8080 for collectiong things from my node-red nodes");
console.log("Ciao. NODE.JS Server started on port 8080 for collectiong things from my node-red nodes");

@@ -23,3 +23,3 @@ //create a server object:

var q = url.parse(req.url, true).query;
console.log(shortStartDate + " Received: " + JSON.stringify(q) + " from: " + req.connection.remoteAddress);
console.log(shortStartDate + " Received: " + JSON.stringify(q) + " from: " + req.socket.remoteAddress);
if (q.md === undefined || q.fw === undefined || q.read === undefined) {

@@ -26,0 +26,0 @@ res.writeHead(404, { 'Content-Type': 'text/html' });

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc