node-red-contrib-hik-media-buffer 1.1.33 → 1.1.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/hik-media-buffer.js +15 -3
- package/package.json +1 -1
package/hik-media-buffer.js
CHANGED
|
@@ -27,7 +27,8 @@ module.exports = function(RED) {
|
|
|
27
27
|
let statoCamera = {};
|
|
28
28
|
|
|
29
29
|
const httpsAgent = new https.Agent({ rejectUnauthorized: false });
|
|
30
|
-
const
|
|
30
|
+
const EventListNVR = ["FieldDetection", "LineDetection"];
|
|
31
|
+
const EventListCAM = ["fielddetection", "linedetection"];
|
|
31
32
|
|
|
32
33
|
// CARTELLA TEMPORANEA
|
|
33
34
|
const baseStorage = path.join(os.tmpdir(), "hik_temp_media");
|
|
@@ -245,9 +246,20 @@ module.exports = function(RED) {
|
|
|
245
246
|
if (data.includes("active")) {
|
|
246
247
|
const chMatch = data.match(/<channelid>(\d+)<\/channelid>/i);
|
|
247
248
|
if (chMatch) {
|
|
249
|
+
let channelID = chMatch[1];
|
|
250
|
+
let currentEventList = EventListNVR;
|
|
251
|
+
|
|
252
|
+
// --- IL TUO CONTROLLO LOGICO ---
|
|
253
|
+
// Se l'host di ascolto coincide con l'IP della telecamera termica (canale 2)
|
|
254
|
+
// e la telecamera restituisce erroneamente canale 1, forziamo il canale a 2
|
|
255
|
+
const camTermica = node.cameras.find(c => c.channel == "2");
|
|
256
|
+
if (camTermica && node.host === camTermica.ip && channelID === "1") {
|
|
257
|
+
channelID = "2";
|
|
258
|
+
currentEventList = EventListCAM;
|
|
259
|
+
}
|
|
248
260
|
let ev = "Unknown";
|
|
249
|
-
for (let e of
|
|
250
|
-
downloadMedia(ev,
|
|
261
|
+
for (let e of currentEventList) { if (data.includes(e.toLowerCase())) { ev = e; break; } }
|
|
262
|
+
downloadMedia(ev, channelID);
|
|
251
263
|
}
|
|
252
264
|
}
|
|
253
265
|
});
|