@oliverio
danke für den Tipp, habs so umgesetzt.
Hier mal für alle die ähnliches vorhaben zusätzlich der Code mit dem dann auf Grundlage des ermittelten Tokens die Steuerbefehle abgesetzt werden.
Auch in dem Code gibt es sicher Optimierungsmöglichkeiten, aber er funktioniert 🙂
'use strict'
// Token für Kamera 3 ermitteln aund speichern
schedule("*/30 * * * *", async () => {
httpPost('http://192.168.22.42/api.cgi?cmd=Login', '[{ "cmd":"Login", "param":{ "User":{ "Version": 0, "userName":"XXX", "password":"YYY"}}}]', { timeout: 3000, responseType: 'arraybuffer' }, async (err, response) => {
let ergebnis = JSON.parse(response.data);
let Token = ergebnis.find(el=>el.cmd=="Login").value.Token.name
setState('0_userdata.0.Token_Kamera3', Token, true);
});
});
// Kamara Links
on({id: '0_userdata.0.Kamera3_Links', change: 'gt'}, function(obj) {
let Adresse= 'http://192.168.22.42/api.cgi?cmd=PtzCtrl&token=' + getState("0_userdata.0.Token_Kamera3").val;
httpPost(Adresse, '[{ "cmd":"PtzCtrl", "param":{ "channel":0, "op":"Left", "speed":16}}]', { timeout: 3000, responseType: 'arraybuffer' }, async (err, response) => {
});
});
on({id: '0_userdata.0.Kamera3_Links', change: 'lt'}, function(obj) {
let Adresse= 'http://192.168.22.42/api.cgi?cmd=PtzCtrl&token=' + getState("0_userdata.0.Token_Kamera3").val;
httpPost(Adresse, '[{ "cmd":"PtzCtrl", "param":{ "channel":0, "op":"Stop"}}]', { timeout: 3000, responseType: 'arraybuffer' }, async (err, response) => {
});
});
// Kamara Rechts
on({id: '0_userdata.0.Kamera3_Rechts', change: 'gt'}, function(obj) {
let Adresse= 'http://192.168.22.42/api.cgi?cmd=PtzCtrl&token=' + getState("0_userdata.0.Token_Kamera3").val;
httpPost(Adresse, '[{ "cmd":"PtzCtrl", "param":{ "channel":0, "op":"Right", "speed":16}}]', { timeout: 3000, responseType: 'arraybuffer' }, async (err, response) => {
});
});
on({id: '0_userdata.0.Kamera3_Rechts', change: 'lt'}, function(obj) {
let Adresse= 'http://192.168.22.42/api.cgi?cmd=PtzCtrl&token=' + getState("0_userdata.0.Token_Kamera3").val;
httpPost(Adresse, '[{ "cmd":"PtzCtrl", "param":{ "channel":0, "op":"Stop"}}]', { timeout: 3000, responseType: 'arraybuffer' }, async (err, response) => {
});
});
// Kamara Auf
on({id: '0_userdata.0.Kamera3_Auf', change: 'gt'}, function(obj) {
let Adresse= 'http://192.168.22.42/api.cgi?cmd=PtzCtrl&token=' + getState("0_userdata.0.Token_Kamera3").val;
httpPost(Adresse, '[{ "cmd":"PtzCtrl", "param":{ "channel":0, "op":"Up", "speed":16}}]', { timeout: 3000, responseType: 'arraybuffer' }, async (err, response) => {
});
});
on({id: '0_userdata.0.Kamera3_Auf', change: 'lt'}, function(obj) {
let Adresse= 'http://192.168.22.42/api.cgi?cmd=PtzCtrl&token=' + getState("0_userdata.0.Token_Kamera3").val;
httpPost(Adresse, '[{ "cmd":"PtzCtrl", "param":{ "channel":0, "op":"Stop"}}]', { timeout: 3000, responseType: 'arraybuffer' }, async (err, response) => {
});
});
// Kamara Ab
on({id: '0_userdata.0.Kamera3_Ab', change: 'gt'}, function(obj) {
let Adresse= 'http://192.168.22.42/api.cgi?cmd=PtzCtrl&token=' + getState("0_userdata.0.Token_Kamera3").val;
httpPost(Adresse, '[{ "cmd":"PtzCtrl", "param":{ "channel":0, "op":"Down", "speed":16}}]', { timeout: 3000, responseType: 'arraybuffer' }, async (err, response) => {
});
});
on({id: '0_userdata.0.Kamera3_Ab', change: 'lt'}, function(obj) {
let Adresse= 'http://192.168.22.42/api.cgi?cmd=PtzCtrl&token=' + getState("0_userdata.0.Token_Kamera3").val;
httpPost(Adresse, '[{ "cmd":"PtzCtrl", "param":{ "channel":0, "op":"Stop"}}]', { timeout: 3000, responseType: 'arraybuffer' }, async (err, response) => {
});
});