Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Time-triggerd Skript wird nicht ausgelöst

    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

    Time-triggerd Skript wird nicht ausgelöst

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

      Hi,

      ich hab im ioBroker mit dem JS Adapter ein Skript erstellt und möchte, dass dieses jeden Tag von 4 bis 6 Uhr läuft und das jede Minute.
      Das kann ich ja über den Zeitassistenten einstellen, dann wird mir folgendes ins Skript hinzugefügt:

      '{"time":{"start":"04:00","end":"06:00","mode":"minutes","interval":1},"period":{"days":1}}'
      

      Aber das Skript wird nicht automatisch zu dieser Zeit ausgeführt. Muss ich da noch was ergänzen?

      Danke und lg

      Asgothian Codierknecht 2 Replies Last reply Reply Quote 0
      • Asgothian
        Asgothian Developer @chco last edited by

        @chco sagte in Time-triggerd Skript wird nicht ausgelöst:

        Hi,

        ich hab im ioBroker mit dem JS Adapter ein Skript erstellt und möchte, dass dieses jeden Tag von 4 bis 6 Uhr läuft und das jede Minute.
        Das kann ich ja über den Zeitassistenten einstellen, dann wird mir folgendes ins Skript hinzugefügt:

        '{"time":{"start":"04:00","end":"06:00","mode":"minutes","interval":1},"period":{"days":1}}'
        

        Aber das Skript wird nicht automatisch zu dieser Zeit ausgeführt. Muss ich da noch was ergänzen?

        Danke und lg

        Zeig bitte das Skript / den Trigger, nicht nur diese eine Zeile.

        A.

        1 Reply Last reply Reply Quote 0
        • Codierknecht
          Codierknecht Developer Most Active @chco last edited by

          @chco
          Das was Du da zeigst ist ja nur ein Teil der Wahrheit.
          Zeig doch mal das Script und nicht nur den Zeitplan.

          1 Reply Last reply Reply Quote 0
          • C
            chco last edited by

            @codierknecht Ich dachte, wenn ich diese Zeile am Beginn des Skripts einfüge, wird das Skript automatisch zu dieser Zeit ausgeführt... wie muss ich diesen Zeitplan denn einbauen? Das Skript ist beispielsweise, nur dass eine Lampe eingeschaltet wird:

            setState("shelly.0.SHPLG-S#BCFF4D5B7B27#1.Relay0.Switch",true);
            

            Danke!

            Asgothian Codierknecht 2 Replies Last reply Reply Quote 0
            • Asgothian
              Asgothian Developer @chco last edited by

              @chco sagte in Time-triggerd Skript wird nicht ausgelöst:

              @codierknecht Ich dachte, wenn ich diese Zeile am Beginn des Skripts einfüge, wird das Skript automatisch zu dieser Zeit ausgeführt... wie muss ich diesen Zeitplan denn einbauen? Das Skript ist beispielsweise, nur dass eine Lampe eingeschaltet wird:

              setState("shelly.0.SHPLG-S#BCFF4D5B7B27#1.Relay0.Switch",true);
              

              Danke!

              Lesen kannst du ?

              Bitte zeige das komplette Skript. Nur dann können wir Dir helfen.

              A.

              1 Reply Last reply Reply Quote 0
              • Codierknecht
                Codierknecht Developer Most Active @chco last edited by

                @chco
                Das was Du da zeigst ist kein "Script", sondern lediglich eine einzelnen Anweisung.

                Ein "Script" wird nicht einfach zu einer Zeit ausgeführt - auch wenn man da so locker flockig eine Zeitplan einfügt. Was Du brauchst in ein Zeitplan-Trigger ... also ein schedule.

                Wenn Dein ganzes "Script" tatsächlich nur aus dieser einen Zeile besteht, wäre wohl das hier das gewünschte Ergebnis:

                schedule('{"time":{"start":"04:00","end":"06:00","mode":"minutes","interval":1},"period":{"days":1}}', async function () {
                  setState("shelly.0.SHPLG-S#BCFF4D5B7B27#1.Relay0.Switch",true); 
                });
                

                Das macht aber so keinen Sinn, denn damit würde ab 04:00 Uhr 120 x eine Lampe eingeschaltet.
                Ist also ziemlich sinnbefreit.

                Also nochmal:

                @codierknecht sagte in Time-triggerd Skript wird nicht ausgelöst:

                Zeig doch mal das Script und nicht nur den Zeitplan.

                C 1 Reply Last reply Reply Quote 0
                • C
                  chco @Codierknecht last edited by chco

                  Edit unten

                  1 Reply Last reply Reply Quote 0
                  • C
                    chco last edited by chco

                    Wäre das dann so zu machen?

                    schedule('{"time":{"start":"04:00","end":"06:00","mode":"minutes","interval":1},"period":{"days":1}}', async function () {
                    
                    
                    var batteriestatus = getState("0_userdata.0.iPhone_battery").val 
                    
                    if(batteriestatus=="80")
                    {
                        // Steckdose wird ausgeschaltet
                        setState("shelly.0.SHPLG-S#BCFF4D5B7B27#1.Relay0.Switch",false)  
                    
                        // eine WhatsApp Benachrichtung senden
                        sendTo('whatsapp-cmb.0', 'send', {      
                        text: 'Batteriestatus hat 80% überstiegen. Laden wird beendet.',  // Text der WhatsApp Nachricht
                        });
                    
                    }
                    
                    });
                    
                    Codierknecht 1 Reply Last reply Reply Quote 0
                    • Codierknecht
                      Codierknecht Developer Most Active @chco last edited by

                      @chco
                      Sieht fast OK aus. Auf die Schnelle fallen mir zwei fehlende Semikolon und eine fehlende schließende Klammer auf.
                      Und der Batteriestatus ist mit ziemlicher Sicherheit eine Zahl und kein String.
                      Außerdem könnte der Wert (theoretisch) auch direkt von 79 auf 81 springen. Also besser mit >= prüfen.
                      Ob das sendTo so richtig ist, wage ich zu bezweifeln. Da kommt ein Komma und danach nix mehr. Könnte mir vorstellen, dass da noch die Nummer folgt.

                      Gewöhn Dir aber an, sauber einzurücken. Macht den Code (nicht nur für andere) besser lesbar.
                      Jeder Code muss irgendwann gewartet werden.

                      schedule('{"time":{"start":"04:00","end":"06:00","mode":"minutes","interval":1},"period":{"days":1}}', async function () {
                       
                        var batteriestatus = getState("0_userdata.0.iPhone_battery").val;
                       
                        if (batteriestatus >= 80) {
                          // Steckdose wird ausgeschaltet
                          setState("shelly.0.SHPLG-S#BCFF4D5B7B27#1.Relay0.Switch",false);
                       
                          // eine WhatsApp Benachrichtung senden
                          sendTo('whatsapp-cmb.0', 'send', {      
                            text: 'Batteriestatus hat 80% überstiegen. Laden wird beendet.',  /*hier fehlt noch etwas, oder?*/  // Text der WhatsApp Nachricht
                          });
                       
                        }
                       
                      });
                      
                      C 1 Reply Last reply Reply Quote 1
                      • C
                        chco @Codierknecht last edited by

                        @codierknecht
                        Perfekt, danke!

                        Codierknecht 1 Reply Last reply Reply Quote 0
                        • Codierknecht
                          Codierknecht Developer Most Active @chco last edited by

                          @chco sagte in Time-triggerd Skript wird nicht ausgelöst:

                          Perfekt, danke!

                          Naja - perfekt würde ich das nicht nennen.
                          Ich jedenfalls finde die Logik dahinter mindestens "fragwürdig".

                          Du willst also zwischen 04:00 und 06:00 Uhr schauen, ob das Handy zu 80 oder mehr % geladen ist und dann die dazu verwendete Dose abschalten?

                          Was passiert, wenn Dein Handy um 05:59 Uhr zu 79% geladen ist und die 80% um 06:01 Uhr erreicht werden?
                          Eben - nix!

                          Sowas löst man üblicherweise mit einem Trigger und nicht über einen Zeitplan.

                          on({id: "0_userdata.0.iPhone_battery", change: "ne"}, async function (obj) {
                          
                            if (obj.state.val >= 80) {
                              // Steckdose wird ausgeschaltet
                              setState("shelly.0.SHPLG-S#BCFF4D5B7B27#1.Relay0.Switch",false);
                           
                              // eine WhatsApp Benachrichtung senden
                              sendTo('whatsapp-cmb.0', 'send', {      
                                text: 'Batteriestatus hat 80% überstiegen. Laden wird beendet.',  /*hier fehlt noch etwas, oder?*/  // Text der WhatsApp Nachricht
                              });
                           
                            }
                          
                          });
                          
                          1 Reply Last reply Reply Quote 0
                          • First post
                            Last post

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          857
                          Online

                          31.8k
                          Users

                          80.0k
                          Topics

                          1.3m
                          Posts

                          3
                          11
                          299
                          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