Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Kamera Motion (onvif) triggert script zu schnell

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.1k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.1k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.4k

Kamera Motion (onvif) triggert script zu schnell

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascript
4 Beiträge 2 Kommentatoren 427 Aufrufe 1 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • T Offline
    T Offline
    ToxiN
    schrieb am zuletzt editiert von ToxiN
    #1

    Hallo, ich hoffe mir kann hier geholfen werden.
    Ich benutze den Onvif Adapter für meine 2 Kameras und möchte bei Motion
    snapshots abspeichern was auch super funktioniert.
    Doch sendet die Kamera bei einem Motion event gut 6 Ereignisse je 3 Sekunden an den Onvif Adapter,
    da mein Script nun darauf wartet das der Datenpunkt geändert wird läuft es natürlich auch 6x in 3 Sekunden was zu unnötig vielen Bilder führt, gibt es eine Möglichkeit im Script selbst zu überprüfen ob das Script bereits läuft ? Das zb er nur max alle 2 Sekunden trigger darf/kann ?

    Mein Aktueller versuch nur scheinen die trigger so schnell zu sein das setState zu langsam ist un es nicht wirklich funktioniert :

    const fs = require('fs');
    
    on({id: "onvif.0.192_168_178_69_80.message.ruleengine.cellmotiondetector.motion.value", change: "any"}, function (obj) {
        var counter = getState("onvif.0.192_168_178_69_80.counter").val;
        setState("onvif.0.192_168_178_69_80.counter",1,true);
        if(counter == 1)
        {
            console.log("Pic not Ready yet ...");
            return false;
        }
    
        var currenttime = new Date().getTime();
        var lastsnap = getState("onvif.0.192_168_178_69_80.lastsnap").val;
        var math = currenttime-lastsnap;
        setState("onvif.0.192_168_178_69_80.lastsnap",new Date().getTime(),true);
        
        if(math < 2000) 
        {
            console.log("To Fast wait ...");
            return false;
        }
    
        sendTo('onvif.0', 'saveFileSnapshot', {"id":"192_168_178_69_80", "file":"/opt/cameras/snapshot-" + currenttime + ".jpg"}, function (result) {
        if (true) {
    
                console.log("Pic has been made");
                setState("onvif.0.192_168_178_69_80.counter",0,true);
            }
        
        });
    });
    
    
    paul53P 2 Antworten Letzte Antwort
    0
    • T ToxiN

      Hallo, ich hoffe mir kann hier geholfen werden.
      Ich benutze den Onvif Adapter für meine 2 Kameras und möchte bei Motion
      snapshots abspeichern was auch super funktioniert.
      Doch sendet die Kamera bei einem Motion event gut 6 Ereignisse je 3 Sekunden an den Onvif Adapter,
      da mein Script nun darauf wartet das der Datenpunkt geändert wird läuft es natürlich auch 6x in 3 Sekunden was zu unnötig vielen Bilder führt, gibt es eine Möglichkeit im Script selbst zu überprüfen ob das Script bereits läuft ? Das zb er nur max alle 2 Sekunden trigger darf/kann ?

      Mein Aktueller versuch nur scheinen die trigger so schnell zu sein das setState zu langsam ist un es nicht wirklich funktioniert :

      const fs = require('fs');
      
      on({id: "onvif.0.192_168_178_69_80.message.ruleengine.cellmotiondetector.motion.value", change: "any"}, function (obj) {
          var counter = getState("onvif.0.192_168_178_69_80.counter").val;
          setState("onvif.0.192_168_178_69_80.counter",1,true);
          if(counter == 1)
          {
              console.log("Pic not Ready yet ...");
              return false;
          }
      
          var currenttime = new Date().getTime();
          var lastsnap = getState("onvif.0.192_168_178_69_80.lastsnap").val;
          var math = currenttime-lastsnap;
          setState("onvif.0.192_168_178_69_80.lastsnap",new Date().getTime(),true);
          
          if(math < 2000) 
          {
              console.log("To Fast wait ...");
              return false;
          }
      
          sendTo('onvif.0', 'saveFileSnapshot', {"id":"192_168_178_69_80", "file":"/opt/cameras/snapshot-" + currenttime + ".jpg"}, function (result) {
          if (true) {
      
                  console.log("Pic has been made");
                  setState("onvif.0.192_168_178_69_80.counter",0,true);
              }
          
          });
      });
      
      
      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #2

      @ToxiN sagte:

      da mein Script nun darauf wartet das der Datenpunkt geändert wird läuft

      Nein, es wird nicht nur bei Wertänderung getriggert.

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      T 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @ToxiN sagte:

        da mein Script nun darauf wartet das der Datenpunkt geändert wird läuft

        Nein, es wird nicht nur bei Wertänderung getriggert.

        T Offline
        T Offline
        ToxiN
        schrieb am zuletzt editiert von
        #3

        @paul53
        change: "any" deswegen da der Wert immer true ist und bei Motion nur aktualisiert und nicht geändert wird.

        1 Antwort Letzte Antwort
        0
        • T ToxiN

          Hallo, ich hoffe mir kann hier geholfen werden.
          Ich benutze den Onvif Adapter für meine 2 Kameras und möchte bei Motion
          snapshots abspeichern was auch super funktioniert.
          Doch sendet die Kamera bei einem Motion event gut 6 Ereignisse je 3 Sekunden an den Onvif Adapter,
          da mein Script nun darauf wartet das der Datenpunkt geändert wird läuft es natürlich auch 6x in 3 Sekunden was zu unnötig vielen Bilder führt, gibt es eine Möglichkeit im Script selbst zu überprüfen ob das Script bereits läuft ? Das zb er nur max alle 2 Sekunden trigger darf/kann ?

          Mein Aktueller versuch nur scheinen die trigger so schnell zu sein das setState zu langsam ist un es nicht wirklich funktioniert :

          const fs = require('fs');
          
          on({id: "onvif.0.192_168_178_69_80.message.ruleengine.cellmotiondetector.motion.value", change: "any"}, function (obj) {
              var counter = getState("onvif.0.192_168_178_69_80.counter").val;
              setState("onvif.0.192_168_178_69_80.counter",1,true);
              if(counter == 1)
              {
                  console.log("Pic not Ready yet ...");
                  return false;
              }
          
              var currenttime = new Date().getTime();
              var lastsnap = getState("onvif.0.192_168_178_69_80.lastsnap").val;
              var math = currenttime-lastsnap;
              setState("onvif.0.192_168_178_69_80.lastsnap",new Date().getTime(),true);
              
              if(math < 2000) 
              {
                  console.log("To Fast wait ...");
                  return false;
              }
          
              sendTo('onvif.0', 'saveFileSnapshot', {"id":"192_168_178_69_80", "file":"/opt/cameras/snapshot-" + currenttime + ".jpg"}, function (result) {
              if (true) {
          
                      console.log("Pic has been made");
                      setState("onvif.0.192_168_178_69_80.counter",0,true);
                  }
              
              });
          });
          
          
          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #4

          @ToxiN sagte:

          er nur max alle 2 Sekunden trigger darf/kann ?

          const fs = require('fs');
          var timer = null;
          
          on({id: "onvif.0.192_168_178_69_80.message.ruleengine.cellmotiondetector.motion.value", change: "any"}, function (obj) {
             if(!timer) {
                timer = setTimeout(function() {
                   timer = null;
                }, 2000); // 2 s
                // Hier der Rest
             }
          });
          

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          1 Antwort Letzte Antwort
          0
          Antworten
          • In einem neuen Thema antworten
          Anmelden zum Antworten
          • Älteste zuerst
          • Neuste zuerst
          • Meiste Stimmen


          Support us

          ioBroker
          Community Adapters
          Donate

          722

          Online

          32.5k

          Benutzer

          81.6k

          Themen

          1.3m

          Beiträge
          Community
          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
          ioBroker Community 2014-2025
          logo
          • Anmelden

          • Du hast noch kein Konto? Registrieren

          • Anmelden oder registrieren, um zu suchen
          • Erster Beitrag
            Letzter Beitrag
          0
          • Home
          • Aktuell
          • Tags
          • Ungelesen 0
          • Kategorien
          • Unreplied
          • Beliebt
          • GitHub
          • Docu
          • Hilfe