NEWS
Kamera Steuerung (PTZ) mit Bewegungsmelder htp
-
@paul53 der Bewegungsmelder wird immer noch nicht zurückgesetzt. Merkwürdiger weise geht das bei dem Script was ich als erstes eingefügt habe. Die Cgi Kommandos sind leider auch unterschiedlich so das man ein url nicht nehmen kann.
………./CGI-COMMAND/param.cgi?cmd=pushhostalarm
………./param.cgi?cmd=preset&-act=goto&-number= -
@kasperfunsurfer sagte:
Merkwürdiger weise geht das bei dem Script was ich als erstes eingefügt habe.
In dem Skript wird der Datenpunkt mit ack = true zurückgesetzt, nicht der Bewegungsmelder, denn an den wird nicht gesendet.
-
@paul53 ich meinte das hier.
Ich habe leider zu wenig Ahnung davon....// Wenn Bewegungsobjekt geändert wurde erkannt on({id: 'mihome.0.devices.sensor_motion_aq2_1************.state', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; // Wenn Bewegung erkannt if ((function (){var val = getState("mihome.0.devices.sensor_motion_aq2_1*state").val; if (val === 'true') return true; if (val === 'false') return false; return !!val;})() == true) { // Bewegungsmelder "zurücksetzen" setStateDelayed("mihome.0.devices.sensor_motion_aq2_1*************.state", false, 5000, true); } });
-
-
Ja genau damit Funktioniert es komischer weise.
-
@paul53 sagte in Kamera Steuerung (PTZ) mit Bewegungsmelder htp:
timer = setTimeout(function() { request(url + 'pushhostalarm'); setState(idMotion, false); timer = null; }, 30000); // nach 30 s
Wenn ich das einfüge kommt folgende Meldung:
20:06:05.975 error javascript.0 script.js.Skript_4 compile failed:
at script.js.Skript_4:25vielleicht liegt es ja daran
-
@kasperfunsurfer sagte
compile failed: at script.js.Skript_4:25
?? Das Skript hat doch keine 25 Zeilen.
-
@paul53 nee hat es auch nicht.....
const idMotion = ["mihome.0.devices.sensor_motion_aq2_1***.state","mihome.0.devices.sensor_motion_aq2_1****.state"]; const url = 'http://*****@192.168.2.110:81/param.cgi?cmd='; var timer = null; on(idMotion, function(dp) { if(dp.state.val && !timer) { // Bewegung erkannt request(url + 'preset&-act=goto&-number=1'); timer = setTimeout(function() { request(url + 'pushhostalarm'); setState(idMotion, false); timer = null; }, 30000); // nach 30 s
20:20:09.460 info javascript.0 Stop script script.js.Skript_3
20:20:10.695 info javascript.0 Start javascript script.js.Skript_3
20:20:10.696 error javascript.0 script.js.Skript_3 compile failed:
at script.js.Skript_3:27 -
@kasperfunsurfer sagte:
compile failed: at script.js.Skript_3:27
Der Fehler muss in Zeile 27 sein ! Bei einem Compiler-Fehler wird das Skript nicht gestartet, führt also auch nichts aus.
Lösche bitte die überflüssigen Leerzeilen, die beim Kopieren aus dem Forum entstehen. -
const idMotion = ["mihome.0.devices.sensor_motion_aq2_158****.state","mihome.0.devices.sensor_motion_aq2_158****.state"]; const url = 'http://192.168.2.110:81'; var timer = null; on(idMotion, function(dp) { if(dp.state.val && !timer) { // Bewegung erkannt request(url + '/param.cgi?cmd=preset&-act=set&-status=1&-number=0'); timer = setTimeout(function() { request(url + '/CGI-COMMAND/param.cgi?cmd=pushhostalarm'); setState(idMotion, false); timer = null; }, 30000); // nach 30 s } });
-
const idMotion = ["mihome.0.devices.sensor_motion_aq2_1***.state","mihome.0.devices.sensor_motion_aq2_1****.state"]; const url = 'http://***@192.168.2.110:81'; var timer = null; on(idMotion, function(dp) { if(dp.state.val && !timer) { // Bewegung erkannt request(url + '/param.cgi?cmd=preset&-act=goto&-number=1'); timer = setTimeout(function() { request(url + '/CGI-COMMAND/param.cgi?cmd=pushhostalarm'); setState(idMotion, false); timer = null; }, 10000); // nach 30 s } });
20:47:37.482 info javascript.0 Start javascript script.js.Skript_56_neuer_versuch
20:47:37.483 info javascript.0 script.js.Skript_56_neuer_versuch: registered 2 subscriptions and 0 schedules
20:47:54.322 warn javascript.0 at Object.<anonymous> (script.js.Skript_56_neuer_versuch:17:10)Sieht schon besser aus. Aber der Bewegungsmelder wird immer noch nicht zurückgesetzt......
-
@kasperfunsurfer sagte:
Aber der Bewegungsmelder wird immer noch nicht zurückgesetzt
Ja, na klar ! idMotion ist ein Array von IDs. Ersetze bitte
setState(idMotion, false);
durch
setState(dp.id, false);
-
@paul53 sagte in Kamera Steuerung (PTZ) mit Bewegungsmelder htp:
setState(idMotion, false);
Die Fehlermeldung ist dann weg. Die Bewegungsmelder setzen sich immer noch nicht zurück. Das nächste Problem ist dann die Kamera nicht mehr in Position fährt wenn ich ```setState(dp.id, false); eingebe.
Achso vielen DANK für den gedult -
@kasperfunsurfer
Füge mal ein Log ein, um zu sehen, was passiert:on(idMotion, function(dp) { log(dp.id + ': ' + dp.state.val); // eingefügte Log-Zeile if(dp.state.val && !timer) { // Bewegung erkannt
-
@paul53 sagte in Kamera Steuerung (PTZ) mit Bewegungsmelder htp:
setState(dp.id, false);
Mal ohne Witz was ist jetzt anders ? Habe nur die Log Zeile eingefügt und auf einmal geht alles wie es soll !!! Ging vorher die ganze Zeit nicht richtig. Echt komisch !!!
21:25:14.607 info javascript.0 Stop script script.js.Skript_56_neuer_versuch
21:25:15.987 info javascript.0 Start javascript script.js.Skript_56_neuer_versuch
21:25:15.988 info javascript.0 script.js.Skript_56_neuer_versuch: registered 2 subscriptions and 0 schedules
21:25:28.688 info javascript.0 script.js.Skript_56_neuer_versuch: mihome.0.devices.sensor_motion_aq2_158d000236b7e6.state: true
21:25:38.703 info javascript.0 script.js.Skript_56_neuer_versuch: mihome.0.devices.sensor_motion_aq2_158d000236b7e6.state: false
21:25:57.158 info javascript.0 script.js.Skript_56_neuer_versuch: mihome.0.devices.sensor_motion_aq2_158d0002e922d3.state: true
21:26:07.167 info javascript.0 script.js.Skript_56_neuer_versuch: mihome.0.devices.sensor_motion_aq2_158d0002e922d3.state: false -
@kasperfunsurfer sagte in Kamera Steuerung (PTZ) mit Bewegungsmelder htp:
request(url + '/CGI-COMMAND/param.cgi?cmd=pushhostalarm');
Ist es möglich den Befehl 5 sec verzögert abzusetzen ? Die beiden Befehle kommen zu schnell hintereinander.
-
@kasperfunsurfer sagte:
Die beiden Befehle kommen zu schnell hintereinander.
Welche beiden Befehle ?
request(url + '/CGI-COMMAND/param.cgi?cmd=pushhostalarm');
wird gegenüber dem anderen request() mit der angegebenen Verzögerung (10 s) ausgeführt. Wenn das zu kurz ist, dann erhöhe die Verzögerungszeit.
-
request(url + '/CGI-COMMAND/param.cgi?cmd=pushhostalarm'); timer = setTimeout(function() {
timer = setTimeout(function() { request(url + '/CGI-COMMAND/param.cgi?cmd=pushhostalarm');
Wo ist her der unterschied. Wenn ich es anders herum schreibe ist keine Verzögerung gegenüber de, anderen request ?
-
@kasperfunsurfer
Die 3 Befehle innerhalb der Timeout-Callback-Funktion werden mit der angegebenen Verzögerung ausgeführt.timer = setTimeout(function() { request(url + '/CGI-COMMAND/param.cgi?cmd=pushhostalarm'); setState(dp.id, false); timer = null; }, 30000); // nach 30 s
-
Alles klaro danke dir.
Wie würde das Script aussehen wenn ich es erst durch
var Abwesend = "hm-rega.950"; Aktivieren würde ?Sprich ich schalte auf Abwesend auf True und dann beginnt das Script.