Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Kamera Steuerung (PTZ) mit Bewegungsmelder htp

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Kamera Steuerung (PTZ) mit Bewegungsmelder htp

    This topic has been deleted. Only users with topic management privileges can see it.
    • K
      kasperfunsurfer @paul53 last edited by kasperfunsurfer

      @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:25

      vielleicht liegt es ja daran

      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @kasperfunsurfer last edited by

        @kasperfunsurfer sagte

        compile failed: at script.js.Skript_4:25

        ?? Das Skript hat doch keine 25 Zeilen.

        K 1 Reply Last reply Reply Quote 0
        • K
          kasperfunsurfer @paul53 last edited by

          @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

          paul53 2 Replies Last reply Reply Quote 0
          • paul53
            paul53 @kasperfunsurfer last edited by paul53

            @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.

            1 Reply Last reply Reply Quote 0
            • paul53
              paul53 @kasperfunsurfer last edited by

              @kasperfunsurfer

              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
                 }
              });
              
              1 Reply Last reply Reply Quote 0
              • K
                kasperfunsurfer last edited by kasperfunsurfer

                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......

                paul53 1 Reply Last reply Reply Quote 0
                • paul53
                  paul53 @kasperfunsurfer last edited by paul53

                  @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);
                  
                  K 1 Reply Last reply Reply Quote 0
                  • K
                    kasperfunsurfer @paul53 last edited by

                    @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 👍 👍

                    paul53 1 Reply Last reply Reply Quote 0
                    • paul53
                      paul53 @kasperfunsurfer last edited by

                      @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
                      
                      1 Reply Last reply Reply Quote 0
                      • K
                        kasperfunsurfer last edited by kasperfunsurfer

                        @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

                        1 Reply Last reply Reply Quote 0
                        • K
                          kasperfunsurfer last edited by

                          @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.

                          paul53 1 Reply Last reply Reply Quote 0
                          • paul53
                            paul53 @kasperfunsurfer last edited by

                            @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.

                            1 Reply Last reply Reply Quote 0
                            • K
                              kasperfunsurfer last edited by

                              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 ?

                              paul53 1 Reply Last reply Reply Quote 0
                              • paul53
                                paul53 @kasperfunsurfer last edited by

                                @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
                                
                                1 Reply Last reply Reply Quote 0
                                • K
                                  kasperfunsurfer last edited by

                                  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.

                                  paul53 1 Reply Last reply Reply Quote 0
                                  • paul53
                                    paul53 @kasperfunsurfer last edited by paul53

                                    @kasperfunsurfer

                                    const idMotion = ["mihome.0.devices.sensor_motion_aq2_158****.state","mihome.0.devices.sensor_motion_aq2_158****.state"];
                                    const idAbwesend = 'hm-rega.950';
                                    const url = 'http://***@192.168.2.110:81'; 
                                    var timer = null;
                                     
                                    on(idMotion, function(dp) {
                                       if(dp.state.val && !timer && getState(idAbwesend).val) { // Bewegung bei Abwesenheit 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(dp.id, false);
                                             timer = null;
                                          }, 30000); // nach 30 s
                                       }
                                    });
                                    
                                    1 Reply Last reply Reply Quote 0
                                    • K
                                      kasperfunsurfer last edited by

                                      Guten Morgen,
                                      super danke. jetzt noch meine letzte Frage. Wie müsste das Script aussehen wenn ich jetzt noch mit einem zusätzlichen Bewegungsmelder mihome.0.devices.sensor_motion_aq2_188****.state eine andere Position ( bzw. 2 Position ) anfahren will /param.cgi?cmd=preset&-act=set&-status=1&-number=1 ??

                                      Grüße Timo

                                      paul53 1 Reply Last reply Reply Quote 0
                                      • paul53
                                        paul53 @kasperfunsurfer last edited by paul53

                                        @kasperfunsurfer
                                        Dann kann das Array idMotion ergänzt werden und in der Funktion muss die ID geprüft werden.

                                        ...
                                        
                                        on(idMotion, function(dp) {
                                           if(dp.state.val && !timer && getState(idAbwesend).val) { // Bewegung bei Abwesenheit erkannt
                                              var pos = 0;
                                              if(dp.id = 'mihome.0.devices.sensor_motion_aq2_188****.state') pos = 1;
                                              request(url + '/param.cgi?cmd=preset&-act=set&-status=1&-number=' + pos);
                                              timer = setTimeout(function() {
                                                 request(url + '/CGI-COMMAND/param.cgi?cmd=pushhostalarm');
                                                 setState(dp.id, false);
                                                 timer = null;
                                              }, 30000); // nach 30 s
                                           }
                                        });
                                        
                                        1 Reply Last reply Reply Quote 0
                                        • K
                                          kasperfunsurfer last edited by kasperfunsurfer

                                          Servus Paul,

                                          irgendwie haut es schon wieder nicht hin.

                                          const idMotion = ["mihome.0.devices.sensor_motion_aq2_158d000236b7e6.state","mihome.0.devices.sensor_motion_aq2_158d0002e922d3.state"];
                                          const url = 'http://******@192.168.2.110:81'; 
                                          var timer = null;
                                          
                                           
                                          
                                          on(idMotion, function(dp) {
                                          
                                          log(dp.id + ': ' + dp.state.val); // eingefügte Log-Zeile
                                             
                                             if(dp.state.val && !timer) { // Bewegung erkannt
                                          
                                             var pos = 0;
                                          
                                                if(dp.id = 'mihome.0.devices.sensor_motion_aq2_158d0002e30682.state') pos = 1;
                                          
                                                request(url + '/param.cgi?cmd=preset&-act=goto&-number=' + pos);
                                          
                                                
                                                timer = setTimeout(function() {
                                          
                                                   request(url + '/CGI-COMMAND/param.cgi?cmd=pushhostalarm');
                                          
                                                   setState(dp.id, false);  
                                          
                                                   timer = null;
                                          
                                                }, 15000); // nach 15 s
                                          
                                             }
                                          
                                          });
                                          
                                          

                                          Die Bewegungsmelder werden wieder nicht nach 15sec zurückgesetzt.

                                          7:13:21.401 info javascript.0 Stop script script.js.Skript_57_enu
                                          17:13:41.172 info javascript.0 Start javascript script.js.Skript_57_enu
                                          17:13:41.173 info javascript.0 script.js.Skript_57_enu: registered 2 subscriptions and 0 schedules
                                          17:14:04.298 info javascript.0 script.js.Skript_57_enu: mihome.0.devices.sensor_motion_aq2_158d0002e922d3.state: true
                                          17:16:04.107 info javascript.0 script.js.Skript_57_enu: mihome.0.devices.sensor_motion_aq2_158d0002e922d3.state: false

                                          Desweiteren fährt die Kamera immer nur in eine Position. Hmm…. Hier nochmal der Befehl für die beiden Positionen:

                                          http://*****@192.168.2.110:81/param.cgi?cmd=preset&-act=goto&-number=0 Position 1

                                          http://*****@192.168.2.110:81/param.cgi?cmd=preset&-act=goto&-number=1 Position 2

                                          Grüße

                                          Glasfaser 1 Reply Last reply Reply Quote 0
                                          • Glasfaser
                                            Glasfaser @kasperfunsurfer last edited by Glasfaser

                                            @kasperfunsurfer

                                            idMotion , Eintrag fehlt !!
                                            nimm mal das !

                                            const idMotion = ["mihome.0.devices.sensor_motion_aq2_158d000236b7e6.state","mihome.0.devices.sensor_motion_aq2_158d0002e922d3.state","mihome.0.devices.sensor_motion_aq2_158d0002e30682.state"];
                                            
                                            

                                            Nutze das Skript gerade bei meiner Hikvision ( natürlich abgeändert ), funktioniert super.
                                            Kamera fährt beim Klingeln in Pos 1. und nach 30 sek. in die Home Position zurück .

                                            Super Skript Paul !

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            869
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            3
                                            45
                                            1922
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo