Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Hilfe bei Timeouts JS im Klingelscript

    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

    Hilfe bei Timeouts JS im Klingelscript

    This topic has been deleted. Only users with topic management privileges can see it.
    • Chaot
      Chaot last edited by

      Ich habe mich irgendwo verrannt und finde keine Lösung.
      Problem:
      Ich habe seit einiger Zeit ein Klingelscrip laufen das bisher auch gut funktioniert hat. Allerdings musste ich wegen dem Update auf JS-Controler 2.x ein paar Zeilen dazufügen damit meine Bilder gespeichert und angezeigt werden.
      Jetzt habe ich aber das Problem das plötzlich die Klingel erst ca. 1 Minute nach Drücken des Klingelknopfes auslöst.
      Irgendwo habe ich einen Timeout verballer.
      Kann mir da bitte jemand mal helfen.

      var sperre = false;  //verhindert das doppeltes Drücken das Script stoppt
      var timeout1, timeout2, timeout3, timeout4, timeout5, timeout6, timeout7, timeout8, timeout9, timeout10;
      var fs = require('fs');
      
      
      on({id: 'sonoff.0.Eingang.Switch2', change: "any"}, function (obj) {
        if(!sperre) {
          sperre = true;
          setState("tr-064-community.0.states.ring"/*ring*/, '**610, 15'); //Klingelt 15 Sekunden auf dem Telefon
           // Speichert das erste Bild bei Klingeln
          exec('wget --output-document /tuer/alarm1.jpg \'http://192.168.8.95:8765/picture/1/current/?_username=admin&_signature=ba8317b8fc071dadb725d4d0d9dbf7e606acbf1e\'');
          // Es wird 2500ms gewartet um dieses speichern auszuführen
          timeout1 = setTimeout(function () {
            // Und hier wird es versendet
            sendTo("email", "send", {
           text: '',
           to: 'xxxx@gmail.com',
           subject: 'Klingel',
           attachments:[
              {path: '/tuer/alarm1.jpg', cid: "file1"},
            ]
            });
            sendTo("email", "send", {
           text: '',
           to: 'xxxx@gmail.com',
           subject: 'Klingel',
           attachments:[
              {path: '/tuer/alarm1.jpg', cid: "file1"},
            ]
            });
            
          }, 2500);
          
          // Nach dem ersten Bild wird nach 5000ms das nächste Bild gespeichert
          timeout2 = setTimeout(function () {
            exec('wget --output-document /tuer/alarm2.jpg \'http://192.168.8.95:8765/picture/1/current/?_username=admin&_signature=ba8317b8fc071dadb725d4d0d9dbf7e606acbf1e\'');
            // Es wird 2500ms gewartet um dieses speichern auszuführen
            timeout3 = setTimeout(function () {
              // Und hier wird es versendet
              sendTo("email", "send", {
           text: '',
           to: 'xxxx@gmail.com',
           subject: 'Klingel',
           attachments:[
              {path: '/tuer/alarm2.jpg', cid: "file1"},
            ]
              });
              sendTo("email", "send", {
           text: '',
           to: 'xxxx@gmail.com',
           subject: 'Klingel',
           attachments:[
              {path: '/tuer/alarm2.jpg', cid: "file1"},
            ]
            });
            
            }, 2500);
          }, 5000);
          
          timeout3 = setTimeout(function () {
            exec('wget --output-document /tuer/alarm3.jpg \'http://192.168.8.95:8765/picture/1/current/?_username=admin&_signature=ba8317b8fc071dadb725d4d0d9dbf7e606acbf1e\'');
          }, 10000);
         
         
          timeout4 = setTimeout(function () {
            exec('wget --output-document /tuer/alarm4.jpg \'http://192.168.8.95:8765/picture/1/current/?_username=admin&_signature=ba8317b8fc071dadb725d4d0d9dbf7e606acbf1e\'');
          }, 10000);
         
          }
      
           setState("vis.0.control.command", '{"instance": "FFFFFFFF", "command": "changeView", "data": "Neu/Tuer"}'); 
                 // oder
                 //setState("vis.0.control.instance", 'FFFFFFFF');
                 //setState("vis.0.control.data",     'DemoView');
                 //setState("vis.0.control.command",  'changeView'); // muss immer letzte sein
                 
                 // Setze View auf Kamerabild
                  timeout10 = setTimeout(function () {
                            setState("vis.0.control.command", '{"instance": "FFFFFFFF", "command": "changeView", "data": "Neu/Info"}');
                 }, 60000); // Nach 60 Sekunden, zeige wieder Start View
              timeout5 = setTimeout(function () {
          setState("alexa2.0.Echo-Devices.G2A0P3077xxxxLLE.Player.volume"/*volume*/, 70, true);
          }, 500); // Setzt Alexa auf 90%
          timeout6 = setTimeout(function () {
          setState("alexa2.0.Echo-Devices.G2A0P3077xxxxLLE.Commands.speak"/*speak*/, 'Es ist jemand an der Tür');
          }, 1000); // Sprachansage
          timeout7 = setTimeout(function () {
          setState("alexa2.0.Echo-Devices.G2A0P3077xxxxLLE.Player.volume"/*volume*/, 30, true);
          }, 5000); // Setzt Alexa auf 50%
          timeout8 = setTimeout(function() {
             sperre = false;
          }, 5000); //Zeit für Klingelsperre 1.Zeile
          timeout9 = setTimeout(function () {
               const bild1 = fs.readFileSync('/tuer/alarm1.jpg');
               writeFile('vis.0','alarm1.jpg', bild1);
               const bild2 = fs.readFileSync('/tuer/alarm2.jpg');
               writeFile('vis.0','alarm2.jpg', bild2);
               const bild3 = fs.readFileSync('/tuer/alarm3.jpg');
               writeFile('vis.0','alarm3.jpg', bild3);
               const bild4 = fs.readFileSync('/tuer/alarm4.jpg');
               writeFile('vis.0','alarm4.jpg', bild4);
          }, 20000); 
      });
      
      

      Falls ich in dem Script irgendwo totalen Quatsch stehen habe dann bitte auch da einen kleinen Hinweis.

      Chaot 1 Reply Last reply Reply Quote 0
      • Chaot
        Chaot @Chaot last edited by

        Hat denn wirklich keiner eine Idee was ich hier falsch habe?

        crunchip 1 Reply Last reply Reply Quote 0
        • crunchip
          crunchip Forum Testing Most Active @Chaot last edited by crunchip

          @Chaot ich habe es als blockly laufen, vllt hilft dir das weiter, habe da nur zweimal timeout drin, den zweiten teil ...vis umschalten und alexa, hab ich in einem separatem blockly
          6e065344-a5f0-4448-b30c-7f6ee7999344-image.png

          dslraser 1 Reply Last reply Reply Quote 0
          • dslraser
            dslraser Forum Testing Most Active @crunchip last edited by dslraser

            @crunchip sagte in Hilfe bei Timeouts JS im Klingelscript:

            @Chaot ich habe es als blockly laufen, vllt hilft dir das weiter, habe da nur zweimal timeout drin, den zweiten teil ...vis umschalten und alexa, hab ich in einem separatem blockly
            6e065344-a5f0-4448-b30c-7f6ee7999344-image.png

            Nicht böse gemeint und ich weiß auch das es funktioniert, aber scriptEnabled zu schalten soll nicht gemacht werden, wurde hier schon zig Mal besprochen.
            Dafür kann man sich eigene Datenpunkte anlegen oder mit Variablen arbeiten.

            Chaot crunchip 2 Replies Last reply Reply Quote 0
            • Chaot
              Chaot @dslraser last edited by

              @dslraser Ich danke dir.
              Aber ich habe den Fehler selber gefunden.
              In Zeile 38 und Zeile 60 verwende ich den gleichen Timeout.
              Das schein das irgendwie aufgewickelt zu haben.

              1 Reply Last reply Reply Quote 0
              • crunchip
                crunchip Forum Testing Most Active @dslraser last edited by

                @dslraser ich weiss was du meinst, in dem Fall schaltet aber nur telegram ein/aus6578b063-9fe1-44a0-956a-3a4ed2ae300a-image.png

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

                Support us

                ioBroker
                Community Adapters
                Donate

                792
                Online

                31.8k
                Users

                80.0k
                Topics

                1.3m
                Posts

                javascript
                3
                6
                344
                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