UNPKG

node-red-contrib-dahua-device

Version:

A Node-RED integration of Dahua network devices (NVR, IP-Cameras)

50 lines (41 loc) 1.43 kB
const ipcamera = require('node-dahua-api'); const nodeStatus = require('./utils').nodeStatus; module.exports = function (RED) { /** * @param config */ function DahuaDeviceNode(config) { RED.nodes.createNode(this, config); const node = this; const device = RED.nodes.getNode(config.device); node.status({}); nodeStatus(node, 'yellow', 'connecting...'); const dahua = new ipcamera.dahua({ host: device.ipaddress, port: device.port, user: device.credentials.username, pass: device.credentials.password, log: false, }); dahua.on('connect', function (options) { nodeStatus(node, 'green', 'connected to ' + options.host); }); dahua.on('error', function (error) { nodeStatus(node, 'red', 'error: ' + error); }); dahua.on('end', function () { nodeStatus(node, 'yellow', 'disconnected'); }); dahua.on('alarm', function (code, action, index, metadata) { node.send({ topic: [code, index, action].join('/'), payload: action, metadata, index, code, }); nodeStatus(node, 'green', 'processed ' + code + ' event'); }); } RED.nodes.registerType('dahua-device', DahuaDeviceNode); };