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.
    • paul53
      paul53 @kasperfunsurfer last edited by

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

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

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

          @kasperfunsurfer sagte:

          ich meinte das hier.

          Und damit wird der BWM zurück gesetzt ?

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

            Ja genau damit Funktioniert es komischer weise.

            1 Reply Last reply Reply Quote 0
            • 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
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            927
                                            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