Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Finde den Fehler - den ich nicht finde

    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

    Finde den Fehler - den ich nicht finde

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

      Ich habe folgendes JavaScript laufen:

      // ##################################################################
      //         Regen ermitteln und in Wetter Regen2 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;
      var Gewitter = wetterdaten.lastIndexOf('Gewitter')+1;  
      
      // wenn gefunden dann
      if (regen + niesel + Regen + Niesel + Gewitter > 0) {
          regen = true;
          } //else
          //{regen = false;}
          //log(regen);
      
      //Variable setzen
      setState(idVariable, regen);
       };
      
      
      
      //bei Skriptstart Cron Job starten
      schedule('0 11 * * *', function () {
      
      if(getState('hm-rega.0.30304'/*Automower Daemon Modus*/).val == true) {
          regen_ermitteln();
      };
      
      });
      
      //bei Skriptstart: Start
      //regen_ermitteln();
      
      

      und erhalte folgende Fehlermeldung, Warnung

      2019-06-05 11:00:00.010 - warn: javascript.0 Wrong type of hm-rega.0.32978: "number". Please fix, while deprecated and will not work in next versions.
      2019-06-05 11:00:00.014 - warn: javascript.0 at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1258:20)
      2019-06-05 11:00:00.014 - warn: javascript.0 at regen_ermitteln (script.js.common.Skripte_aktiviert.Regen_13:00:28:1)
      2019-06-05 11:00:00.014 - warn: javascript.0 at Object. (script.js.common.Skripte_aktiviert.Regen_13:00:37:5)
      2019-06-05 11:00:00.014 - warn: javascript.0 at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1181:34)
      2019-06-05 11:00:00.014 - warn: javascript.0 at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
      2019-06-05 11:00:00.014 - warn: javascript.0 at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
      2019-06-05 11:00:00.014 - warn: javascript.0 at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
      2019-06-05 11:00:00.014 - warn: javascript.0 at ontimeout (timers.js:498:11)
      2019-06-05 11:00:00.014 - warn: javascript.0 at tryOnTimeout (timers.js:323:5)
      2019-06-05 11:00:00.014 - warn: javascript.0 at Timer.listOnTimeout (timers.js:290:5)
      

      Wo ist der Fehler im Script. Ich finde ihn nicht. Es muß etwas mit der Variablendefinition zu tun haben. Aber ich weiß nicht, wie ich das ändern muß. Wer kann mir helfen?

      Homoran paul53 2 Replies Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @skorpil last edited by

        @skorpil
        Was ist der Datenpunkt den du mit setstate beschreibst für ein Typ?

        1 Reply Last reply Reply Quote 0
        • thewhobox
          thewhobox last edited by

          Du schreibst einen String in den Datenpunkt der aber eine Nummer erwartet.

          Ersetze einfach durch folgende Zeile.

          setState(idVariable, parseInt(regen)) ;
          
          1 Reply Last reply Reply Quote 1
          • paul53
            paul53 @skorpil last edited by paul53

            @skorpil Das Auskommentieren von

                else regen = false;
            

            erzeugt den Fehler, weil die Variable regen doppelt verwendet wird. Es wird nicht false, sondern 0 an setState() übergeben.

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

              @paul53 wow, seid ihr schnell. Ich liebe dieses Forum. Vielen Dank. Das ändere ich und melde mich mit dem Ergebnis.

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

                @paul53 das war es. Danke!

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

                Support us

                ioBroker
                Community Adapters
                Donate

                731
                Online

                31.8k
                Users

                80.0k
                Topics

                1.3m
                Posts

                4
                6
                257
                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