Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Wert der Variable? Ich stehe auf dem Schlauch

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Wert der Variable? Ich stehe auf dem Schlauch

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

      @skorpil irgendeine Idee, was ich mal testen konnte? Vlt. die Systemvariable löschen und nochmal neu anlegen?

      DC610314-C6E3-439A-A5D4-16E4B12E8B1D.jpeg

      Das ist das, was der Historian zeigt. Um kurz nach 17:00 hatte ich die Variable mal eingeschaltet. Da sieht alles gut aus.

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

        @skorpil sagte:

        „false“ oder „inaktiv"

        Das war auch zum Zeitpunkt des Skriptstarts der Fall ? Die SV wird nur ausgewertet, wenn das Skript gestartet wird. Ergänze es mal durch einen Trigger und schau im Log nach, ob auf Änderung der SV reagiert wurde.

        on('hm-rega.0.30304', function(dp) {
           log('dea: ' + dp.state.val);
        });
        
        S 3 Replies Last reply Reply Quote 1
        • S
          skorpil @paul53 last edited by

          @paul53 Danke, mache ich. Melde mich morgen. Gute Nacht m Paul, und vielen Dank.

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

            @paul53 sagte in Wert der Variable? Ich stehe auf dem Schlauch:

            on('hm-rega.0.30304', function(dp) { log('dea: ' + dp.state.val); });

            Gerade getestet:

            javascript.0	2019-03-25 22:51:44.194	info	script.js.common.Test.Test: dea: false
            javascript.0	2019-03-25 22:50:14.150	info	script.js.common.Test.Test: dea: true
            

            Es wird reagiert!

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

              @skorpil sagte:

              Es wird reagiert!

              Dann ist doch alles in Ordnung.

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

                @paul53

                ich habe den Eindruck, dass das Script bei Scriptstart NICHT reagiert. Erst bei einer Änderung der Variablen und tracking mit "on" ,reagiert das Script. Ist das ein bug?

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

                  @skorpil sagte:

                  das Script bei Scriptstart NICHT reagiert

                  Das glaube ich nicht. Wie sieh das komplette Skript jetzt aus ? Wenn es nur den Trigger enthält, passiert beim Skriptstart nichts.

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

                    @paul53

                    //bei Skriptstart Cron Job starten, wenn Automower ein
                    schedule('27,50 14-18 * * *', function () {
                    
                    if(getState('hm-rega.0.30304'/*Automower Daemon Modus*/).val = true) {
                    

                    Ausgangspunkt meiner ganzen Tests war folgendes: Ich wollte erreichen, dass eine Funktion zu den definierten cron Zeitpunkten nur aufgerufen wird, wenn die Variable hm-rega.0.30304 auf true steht. Nun habe ich aber im log gesehen, dass die Funktion zu den Zeitpunkten gestartet wird, obwohl ja der Wert der Variablen auf false stand.

                    Sehr merkwürdig

                    S 1 Reply Last reply Reply Quote 0
                    • S
                      skorpil @skorpil last edited by skorpil

                      @skorpil zur Sicherheit hier nochmal das komplette Sript:

                      // ##################################################################
                      //         Regen ermitteln und in Wetter Regen schreiben     
                      // ##################################################################
                      function regen_ermitteln() {
                          
                      //Definitionen
                      var idOpenWeater = 'openweathermap.0.forecast.current.state'/*Actual state*/;
                      var idVariable = 'hm-rega.0.32978'/*Wetter Regen*/
                      
                      //Wetterdaten auslesen 
                      wetterdaten = getState(idOpenWeater).val;
                      
                      //finde regen oder niesel
                      var regen = wetterdaten.lastIndexOf('Regen')+1;
                      var niesel = wetterdaten.lastIndexOf('Niesel')+1;
                      var Regen = wetterdaten.lastIndexOf('regen')+1;
                      var Niesel = wetterdaten.lastIndexOf('niesel')+1;  
                      
                      // wenn gefunden dann
                      if (regen + niesel + Regen + Niesel > 0) {
                          regen = true;
                          } else
                          {regen = false;}
                          log(regen);
                      
                      //Variable setzen
                      setState(idVariable, regen);
                       };
                      
                      
                      
                      //bei Skriptstart Cron Job starten
                      schedule('0 13 * * *', function () {
                      
                      if(getState('hm-rega.0.30304'/*Automower Daemon Modus*/).val = true) {
                          regen_ermitteln();
                      };
                      
                      });
                      
                      //bei Skriptstart: Start
                      //regen_ermitteln();
                      
                      
                      
                      paul53 1 Reply Last reply Reply Quote 0
                      • paul53
                        paul53 @skorpil last edited by

                        @skorpil sagte:

                        das komplette Sript:

                        Nur um 13:00 Uhr wird ermittelt, ob es regnet. In der Abfrage steht eine Zuweisung und kein Vergleich. Richtig:

                        schedule('0 13 * * *', function () {
                           if(getState('hm-rega.0.30304'/*Automower Daemon Modus*/).val == true) regen_ermitteln();
                        });
                        
                        S 1 Reply Last reply Reply Quote 1
                        • S
                          skorpil @paul53 last edited by

                          @paul53 ahhhh, okay. Wiederum vielen mitternächtlichen Dank.

                          JavaScript hat es in sich. Ich bin froh, dass es gut Lehrer gibt.

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          437
                          Online

                          32.0k
                          Users

                          80.5k
                          Topics

                          1.3m
                          Posts

                          javascript
                          3
                          20
                          646
                          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