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. JavaScript
  5. Wo ist der Fehler?

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.3k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    958

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Wo ist der Fehler?

Geplant Angeheftet Gesperrt Verschoben JavaScript
19 Beiträge 3 Kommentatoren 1.3k Aufrufe 2 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.
  • S Offline
    S Offline
    skorpil
    schrieb am zuletzt editiert von skorpil
    #1

    ich habe folgendes Sript im Einsatz, welches Wetterdaten ausliest:

    // #########################################################################
    //    Wetterdaten aus openweathermap holen und in homematic Variable setzen
    // #########################################################################
    
    
    // Aktualisierung der homematic Variable bei Aktualisierung openweathermap
    on ({id:'weatherunderground.0.forecast.current.observationTimeRFC822'/*Observation time (rfc822)*/, change: 'any'}, function(data) {
    var wetterdaten;
    
    //Werte holen und setzen
    
    //Wetter Bedingung als String
    var idOpenWeater = 'yr.0.forecastHourly.6h.6h_summary_text'/*6h summary text*/;
    var idVariable = 'hm-rega.0.11465'/*Wetter Bedingungen*/;
    wetterdaten = getState(idOpenWeater).val
    
    if (wetterdaten) setState(idVariable, wetterdaten); 
    
    //Wetter Richtung als Zahl
    var idOpenWeater = 'weatherunderground.0.forecast.current.windDegrees'/*Wind direction Degrees*/;
    // log(JSON.stringify(getState(idOpenWeater).val));
    var idVariable = 'hm-rega.0.11466'/*Wetter Windrichtg*/;
    Wetterdatenholenundsetzen();
    // wenn keine Daten
    if (!wetterdaten) {
            wetterdaten = 0;
            setState(idVariable, wetterdaten);
    };
    
    //Wind Richtung als Angabe 
    var idOpenWeater = 'weatherunderground.0.forecast.current.windDegrees'/*Wind direction Degrees*/;
    var idVariable = 'hm-rega.0.11467'/*Wetter Windrichtung*/;  
        
        //******************* Windrichtung bestimmen***************
        //*******************Nord 339-23, Nordost 24-68, Ost 69-113, SüdOst 114-158, Süd 159-203, SüdWest 204-248, West 249-293, NordWest 394-338***************
    
        wetterdaten = getState(idOpenWeater).val
    
        if (wetterdaten > 23 && wetterdaten <= 68){
            wetterdaten = "NordOst";
            };
    
        if (wetterdaten > 68 && wetterdaten <= 113){
            wetterdaten = "Ost";
            };
    
        if (wetterdaten > 113 && wetterdaten <= 158){
            wetterdaten = "SüdOst";
            };
    
        if (wetterdaten > 158 && wetterdaten <= 203){
            wetterdaten = "Süd";
            };
    
        if (wetterdaten > 203 && wetterdaten <= 248){
            wetterdaten = "SüdWest";
            };
    
        if (wetterdaten > 248 && wetterdaten <= 293){
            wetterdaten = "West";
            };
    
        if (wetterdaten > 293 && wetterdaten <= 338){
            wetterdaten = "NordWest";
            };
    
        if (wetterdaten > 338 && wetterdaten <= 360){
            wetterdaten = "Nord";
            };
    
        if (wetterdaten > 0 && wetterdaten <= 23){
            wetterdaten = "Nord";
            };
        
        if (!wetterdaten) {
            wetterdaten = "keine Angabe";
            setState(idVariable, wetterdaten);
        };
    
        if (wetterdaten) setState(idVariable, wetterdaten);
    
    //Temperatur als Zahl
    var idOpenWeater = 'weatherunderground.0.forecast.current.temp'/*Temperature*/;
    var idVariable = 'hm-rega.0.11468'/*Wetter Temperatur*/;
    Wetterdatenholenundsetzen();
    
    //Luftfeuchtigkeit als Zahl
    var idOpenWeater = 'weatherunderground.0.forecast.current.relativeHumidity'/*Relative humidity*/;
    var idVariable = 'hm-rega.0.11469'/*Wetter Luftfeuchte*/;
    Wetterdatenholenundsetzen();
    
    //Windgeschwindigkeit als Zahl
    var idOpenWeater = 'weatherunderground.0.forecast.current.wind'/*Wind speed*/;
    var idVariable = 'hm-rega.0.11474'/*Wetter Windgeschw*/;
    Wetterdatenholenundsetzen();
    // wenn keine Daten
    if (!wetterdaten) {
            wetterdaten = 0;
            setState(idVariable, wetterdaten);
    };
    
    //Wind Geschwindigkeit als Angabe (Beaufort); 
    var idOpenWeater = 'weatherunderground.0.forecast.current.wind'/*Wind speed*/;
    var idVariable = 'hm-rega.0.11470'/*Wetter Windgeschwindigkeit*/;
    
    
    //******************* Windgeschwindigkeit in Beaufort bestimmen***************
        
        wetterdaten = getState(idOpenWeater).val
    
        if (wetterdaten > 0 && wetterdaten <= 1){
            wetterdaten = 0;
            };
    
        if (wetterdaten > 1 && wetterdaten <= 5){
            wetterdaten = 1;
            };
    
        if (wetterdaten > 5 && wetterdaten <= 11){
            wetterdaten = 2;
            };
    
        if (wetterdaten > 11 && wetterdaten <= 19){
            wetterdaten = 3;
            };
    
        if (wetterdaten > 19 && wetterdaten <= 28){
            wetterdaten = 4;
            };
    
        if (wetterdaten > 28 && wetterdaten <= 38){
            wetterdaten = 5;
            };
    
        if (wetterdaten > 38 && wetterdaten <= 49){
            wetterdaten = 6;
            };
    
        if (wetterdaten > 49 && wetterdaten <= 61){
            wetterdaten = 7;
            };
    
        if (wetterdaten > 61 && wetterdaten <= 74){
            wetterdaten = 8;
            };
    
        if (wetterdaten > 74 && wetterdaten <= 88){
            wetterdaten = 9;
            };
    
        if (wetterdaten > 88 && wetterdaten <= 102){
            wetterdaten = 10;
            };
    
        if (wetterdaten > 102 && wetterdaten <= 117){
            wetterdaten = 11;
            };
    
        if (wetterdaten > 117){
            wetterdaten = 12;
            };            
        
        if (!wetterdaten) {
            wetterdaten = "keine Angabe";
            setState(idVariable, wetterdaten);
        };
    
        if (wetterdaten) setState(idVariable, wetterdaten);
    
    //Luftdruck als Zahl
    var idOpenWeater = 'weatherunderground.0.forecast.current.pressure'/*Air pressure (mbar)*/;
    var idVariable = 'hm-rega.0.11471'/*Wetter Luftdruck*/;
    Wetterdatenholenundsetzen();
    
    //Aktualisierung (Zeit)
    var idOpenWeater = 'weatherunderground.0.forecast.current.observationTimeRFC822'/*Observation time (rfc822)*/;
    var idVariable = 'hm-rega.0.11472'/*Wetter Aktualisierung*/;
    wetterdaten = getState(idOpenWeater).val;
    var date = new Date(wetterdaten);
    
    // Umwandeln in deutsches Format
    
        //Tagesdatum ermitteln
        var tag = date.getDate();
        var tag = tag + "";
        if(tag.length < 2){
           tag = "0" + tag;
        };
        
        //Monat ermitteln
        var month = new Array("1","2","3","4","5","6","7","8","9","10","11","12");
        var monat = month[date.getMonth()];
        if(monat.length < 2){
            monat = "0" + monat;
        }
           
        //Jahr ermitteln
        var jahr = date.getFullYear();
    
        //Stunde ermitteln
        var stunde = date.getHours();
        var stunde = stunde.toString();
        if(stunde.length < 2){
            stunde = "0" + stunde;
        }
        
        //Minute ermitteln
        var minute = date.getMinutes();
        var minute = minute.toString();
        if(minute.length < 2){
            minute = "0" + minute;
        }
        
        //Sekunde ermitteln
        var sekunde = date.getSeconds();
        var sekunde = sekunde.toString();
        if(sekunde.length < 2){
            sekunde = "0" + sekunde;
        }
           
    var ausgabe = tag + "." + monat + "." + jahr + "   " + stunde + ":" + minute + ":" + sekunde;
    
    setState(idVariable, ausgabe);
    
    // ##################################################################
    //                  FUNKTION Holen und setzen     
    // ##################################################################
    
     function Wetterdatenholenundsetzen() {
        wetterdaten = getState(idOpenWeater).val;
        //if (wetterdaten) setState(idVariable, wetterdaten);
        if (wetterdaten != null) setState(idVariable, wetterdaten);
     };
    
    
    });
    

    und bekomme immer wieder folgende Fehlermeldungen:

    hm-rega.0
    2023-07-04 10:02:30.276	warn	Script "dom.GetObject(11470).State("keine Angabe")" ignored, because still pending.
    
    javascript.0
    2023-07-04 10:02:30.192	warn	at processImmediate (node:internal/timers:476:21)
    
    javascript.0
    2023-07-04 10:02:30.191	warn	at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.js:5916:56)
    
    javascript.0
    2023-07-04 10:02:30.190	warn	at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:645:29)
    
    javascript.0
    2023-07-04 10:02:30.185	warn	at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1255:38)
    
    javascript.0
    2023-07-04 10:02:30.184	warn	at Object.<anonymous> (script.js.common.Wetter.Wetterdaten_Holen_und_setzen_mit_Beaufort:168:22)
    
    javascript.0
    2023-07-04 10:02:30.183	warn	at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1730:20)
    
    javascript.0
    2023-07-04 10:02:30.175	warn	You are assigning a string to the state "hm-rega.0.11470" which expects a number. Please fix your code to use a number or change the state type to string. This warning might become an error in future versions.
    
    javascript.0
    2023-07-04 10:02:30.174	warn	at processImmediate (node:internal/timers:476:21)
    
    javascript.0
    2023-07-04 10:02:30.173	warn	at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.js:5916:56)
    
    javascript.0
    2023-07-04 10:02:30.173	warn	at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:645:29)
    
    javascript.0
    2023-07-04 10:02:30.172	warn	at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1255:38)
    
    javascript.0
    2023-07-04 10:02:30.171	warn	at Object.<anonymous> (script.js.common.Wetter.Wetterdaten_Holen_und_setzen_mit_Beaufort:165:9)
    
    javascript.0
    2023-07-04 10:02:30.169	warn	at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1730:20)
    
    javascript.0
    2023-07-04 10:02:30.159	warn	You are assigning a string to the state "hm-rega.0.11470" which expects a number. Please fix your code to use a number or change the state type to string. This warning might become an error in future versions.
    

    Offenbar stimmt die Typ Zuordnung nicht, wenn

    'weatherunderground.0.forecast.current.wind'/*Wind speed*/
    

    keine Daten liefert. Wie kann ich das abfangen?

    paul53P 3 Antworten Letzte Antwort
    0
    • S skorpil

      ich habe folgendes Sript im Einsatz, welches Wetterdaten ausliest:

      // #########################################################################
      //    Wetterdaten aus openweathermap holen und in homematic Variable setzen
      // #########################################################################
      
      
      // Aktualisierung der homematic Variable bei Aktualisierung openweathermap
      on ({id:'weatherunderground.0.forecast.current.observationTimeRFC822'/*Observation time (rfc822)*/, change: 'any'}, function(data) {
      var wetterdaten;
      
      //Werte holen und setzen
      
      //Wetter Bedingung als String
      var idOpenWeater = 'yr.0.forecastHourly.6h.6h_summary_text'/*6h summary text*/;
      var idVariable = 'hm-rega.0.11465'/*Wetter Bedingungen*/;
      wetterdaten = getState(idOpenWeater).val
      
      if (wetterdaten) setState(idVariable, wetterdaten); 
      
      //Wetter Richtung als Zahl
      var idOpenWeater = 'weatherunderground.0.forecast.current.windDegrees'/*Wind direction Degrees*/;
      // log(JSON.stringify(getState(idOpenWeater).val));
      var idVariable = 'hm-rega.0.11466'/*Wetter Windrichtg*/;
      Wetterdatenholenundsetzen();
      // wenn keine Daten
      if (!wetterdaten) {
              wetterdaten = 0;
              setState(idVariable, wetterdaten);
      };
      
      //Wind Richtung als Angabe 
      var idOpenWeater = 'weatherunderground.0.forecast.current.windDegrees'/*Wind direction Degrees*/;
      var idVariable = 'hm-rega.0.11467'/*Wetter Windrichtung*/;  
          
          //******************* Windrichtung bestimmen***************
          //*******************Nord 339-23, Nordost 24-68, Ost 69-113, SüdOst 114-158, Süd 159-203, SüdWest 204-248, West 249-293, NordWest 394-338***************
      
          wetterdaten = getState(idOpenWeater).val
      
          if (wetterdaten > 23 && wetterdaten <= 68){
              wetterdaten = "NordOst";
              };
      
          if (wetterdaten > 68 && wetterdaten <= 113){
              wetterdaten = "Ost";
              };
      
          if (wetterdaten > 113 && wetterdaten <= 158){
              wetterdaten = "SüdOst";
              };
      
          if (wetterdaten > 158 && wetterdaten <= 203){
              wetterdaten = "Süd";
              };
      
          if (wetterdaten > 203 && wetterdaten <= 248){
              wetterdaten = "SüdWest";
              };
      
          if (wetterdaten > 248 && wetterdaten <= 293){
              wetterdaten = "West";
              };
      
          if (wetterdaten > 293 && wetterdaten <= 338){
              wetterdaten = "NordWest";
              };
      
          if (wetterdaten > 338 && wetterdaten <= 360){
              wetterdaten = "Nord";
              };
      
          if (wetterdaten > 0 && wetterdaten <= 23){
              wetterdaten = "Nord";
              };
          
          if (!wetterdaten) {
              wetterdaten = "keine Angabe";
              setState(idVariable, wetterdaten);
          };
      
          if (wetterdaten) setState(idVariable, wetterdaten);
      
      //Temperatur als Zahl
      var idOpenWeater = 'weatherunderground.0.forecast.current.temp'/*Temperature*/;
      var idVariable = 'hm-rega.0.11468'/*Wetter Temperatur*/;
      Wetterdatenholenundsetzen();
      
      //Luftfeuchtigkeit als Zahl
      var idOpenWeater = 'weatherunderground.0.forecast.current.relativeHumidity'/*Relative humidity*/;
      var idVariable = 'hm-rega.0.11469'/*Wetter Luftfeuchte*/;
      Wetterdatenholenundsetzen();
      
      //Windgeschwindigkeit als Zahl
      var idOpenWeater = 'weatherunderground.0.forecast.current.wind'/*Wind speed*/;
      var idVariable = 'hm-rega.0.11474'/*Wetter Windgeschw*/;
      Wetterdatenholenundsetzen();
      // wenn keine Daten
      if (!wetterdaten) {
              wetterdaten = 0;
              setState(idVariable, wetterdaten);
      };
      
      //Wind Geschwindigkeit als Angabe (Beaufort); 
      var idOpenWeater = 'weatherunderground.0.forecast.current.wind'/*Wind speed*/;
      var idVariable = 'hm-rega.0.11470'/*Wetter Windgeschwindigkeit*/;
      
      
      //******************* Windgeschwindigkeit in Beaufort bestimmen***************
          
          wetterdaten = getState(idOpenWeater).val
      
          if (wetterdaten > 0 && wetterdaten <= 1){
              wetterdaten = 0;
              };
      
          if (wetterdaten > 1 && wetterdaten <= 5){
              wetterdaten = 1;
              };
      
          if (wetterdaten > 5 && wetterdaten <= 11){
              wetterdaten = 2;
              };
      
          if (wetterdaten > 11 && wetterdaten <= 19){
              wetterdaten = 3;
              };
      
          if (wetterdaten > 19 && wetterdaten <= 28){
              wetterdaten = 4;
              };
      
          if (wetterdaten > 28 && wetterdaten <= 38){
              wetterdaten = 5;
              };
      
          if (wetterdaten > 38 && wetterdaten <= 49){
              wetterdaten = 6;
              };
      
          if (wetterdaten > 49 && wetterdaten <= 61){
              wetterdaten = 7;
              };
      
          if (wetterdaten > 61 && wetterdaten <= 74){
              wetterdaten = 8;
              };
      
          if (wetterdaten > 74 && wetterdaten <= 88){
              wetterdaten = 9;
              };
      
          if (wetterdaten > 88 && wetterdaten <= 102){
              wetterdaten = 10;
              };
      
          if (wetterdaten > 102 && wetterdaten <= 117){
              wetterdaten = 11;
              };
      
          if (wetterdaten > 117){
              wetterdaten = 12;
              };            
          
          if (!wetterdaten) {
              wetterdaten = "keine Angabe";
              setState(idVariable, wetterdaten);
          };
      
          if (wetterdaten) setState(idVariable, wetterdaten);
      
      //Luftdruck als Zahl
      var idOpenWeater = 'weatherunderground.0.forecast.current.pressure'/*Air pressure (mbar)*/;
      var idVariable = 'hm-rega.0.11471'/*Wetter Luftdruck*/;
      Wetterdatenholenundsetzen();
      
      //Aktualisierung (Zeit)
      var idOpenWeater = 'weatherunderground.0.forecast.current.observationTimeRFC822'/*Observation time (rfc822)*/;
      var idVariable = 'hm-rega.0.11472'/*Wetter Aktualisierung*/;
      wetterdaten = getState(idOpenWeater).val;
      var date = new Date(wetterdaten);
      
      // Umwandeln in deutsches Format
      
          //Tagesdatum ermitteln
          var tag = date.getDate();
          var tag = tag + "";
          if(tag.length < 2){
             tag = "0" + tag;
          };
          
          //Monat ermitteln
          var month = new Array("1","2","3","4","5","6","7","8","9","10","11","12");
          var monat = month[date.getMonth()];
          if(monat.length < 2){
              monat = "0" + monat;
          }
             
          //Jahr ermitteln
          var jahr = date.getFullYear();
      
          //Stunde ermitteln
          var stunde = date.getHours();
          var stunde = stunde.toString();
          if(stunde.length < 2){
              stunde = "0" + stunde;
          }
          
          //Minute ermitteln
          var minute = date.getMinutes();
          var minute = minute.toString();
          if(minute.length < 2){
              minute = "0" + minute;
          }
          
          //Sekunde ermitteln
          var sekunde = date.getSeconds();
          var sekunde = sekunde.toString();
          if(sekunde.length < 2){
              sekunde = "0" + sekunde;
          }
             
      var ausgabe = tag + "." + monat + "." + jahr + "   " + stunde + ":" + minute + ":" + sekunde;
      
      setState(idVariable, ausgabe);
      
      // ##################################################################
      //                  FUNKTION Holen und setzen     
      // ##################################################################
      
       function Wetterdatenholenundsetzen() {
          wetterdaten = getState(idOpenWeater).val;
          //if (wetterdaten) setState(idVariable, wetterdaten);
          if (wetterdaten != null) setState(idVariable, wetterdaten);
       };
      
      
      });
      

      und bekomme immer wieder folgende Fehlermeldungen:

      hm-rega.0
      2023-07-04 10:02:30.276	warn	Script "dom.GetObject(11470).State("keine Angabe")" ignored, because still pending.
      
      javascript.0
      2023-07-04 10:02:30.192	warn	at processImmediate (node:internal/timers:476:21)
      
      javascript.0
      2023-07-04 10:02:30.191	warn	at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.js:5916:56)
      
      javascript.0
      2023-07-04 10:02:30.190	warn	at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:645:29)
      
      javascript.0
      2023-07-04 10:02:30.185	warn	at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1255:38)
      
      javascript.0
      2023-07-04 10:02:30.184	warn	at Object.<anonymous> (script.js.common.Wetter.Wetterdaten_Holen_und_setzen_mit_Beaufort:168:22)
      
      javascript.0
      2023-07-04 10:02:30.183	warn	at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1730:20)
      
      javascript.0
      2023-07-04 10:02:30.175	warn	You are assigning a string to the state "hm-rega.0.11470" which expects a number. Please fix your code to use a number or change the state type to string. This warning might become an error in future versions.
      
      javascript.0
      2023-07-04 10:02:30.174	warn	at processImmediate (node:internal/timers:476:21)
      
      javascript.0
      2023-07-04 10:02:30.173	warn	at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.js:5916:56)
      
      javascript.0
      2023-07-04 10:02:30.173	warn	at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:645:29)
      
      javascript.0
      2023-07-04 10:02:30.172	warn	at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1255:38)
      
      javascript.0
      2023-07-04 10:02:30.171	warn	at Object.<anonymous> (script.js.common.Wetter.Wetterdaten_Holen_und_setzen_mit_Beaufort:165:9)
      
      javascript.0
      2023-07-04 10:02:30.169	warn	at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1730:20)
      
      javascript.0
      2023-07-04 10:02:30.159	warn	You are assigning a string to the state "hm-rega.0.11470" which expects a number. Please fix your code to use a number or change the state type to string. This warning might become an error in future versions.
      

      Offenbar stimmt die Typ Zuordnung nicht, wenn

      'weatherunderground.0.forecast.current.wind'/*Wind speed*/
      

      keine Daten liefert. Wie kann ich das abfangen?

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von paul53
      #2

      @skorpil sagte: Offenbar stimmt die Typ Zuordnung nicht

      Ja, in Zeile 164 darf kein String zugewiesen werden.

          if (!wetterdaten) {
      

      schließt eine Windgeschwindigkeit von 0 ein.

      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

      S 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @skorpil sagte: Offenbar stimmt die Typ Zuordnung nicht

        Ja, in Zeile 164 darf kein String zugewiesen werden.

            if (!wetterdaten) {
        

        schließt eine Windgeschwindigkeit von 0 ein.

        S Offline
        S Offline
        skorpil
        schrieb am zuletzt editiert von skorpil
        #3

        @paul53 wäre dann

        if (!wetterdaten) {
                wetterdaten = 0;
                setState(idVariable, wetterdaten);
            };
        

        richtig?

        T 1 Antwort Letzte Antwort
        0
        • S skorpil

          @paul53 wäre dann

          if (!wetterdaten) {
                  wetterdaten = 0;
                  setState(idVariable, wetterdaten);
              };
          

          richtig?

          T Nicht stören
          T Nicht stören
          ticaki
          schrieb am zuletzt editiert von
          #4

          @skorpil
          Ja

          Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

          Spenden

          1 Antwort Letzte Antwort
          0
          • S skorpil

            ich habe folgendes Sript im Einsatz, welches Wetterdaten ausliest:

            // #########################################################################
            //    Wetterdaten aus openweathermap holen und in homematic Variable setzen
            // #########################################################################
            
            
            // Aktualisierung der homematic Variable bei Aktualisierung openweathermap
            on ({id:'weatherunderground.0.forecast.current.observationTimeRFC822'/*Observation time (rfc822)*/, change: 'any'}, function(data) {
            var wetterdaten;
            
            //Werte holen und setzen
            
            //Wetter Bedingung als String
            var idOpenWeater = 'yr.0.forecastHourly.6h.6h_summary_text'/*6h summary text*/;
            var idVariable = 'hm-rega.0.11465'/*Wetter Bedingungen*/;
            wetterdaten = getState(idOpenWeater).val
            
            if (wetterdaten) setState(idVariable, wetterdaten); 
            
            //Wetter Richtung als Zahl
            var idOpenWeater = 'weatherunderground.0.forecast.current.windDegrees'/*Wind direction Degrees*/;
            // log(JSON.stringify(getState(idOpenWeater).val));
            var idVariable = 'hm-rega.0.11466'/*Wetter Windrichtg*/;
            Wetterdatenholenundsetzen();
            // wenn keine Daten
            if (!wetterdaten) {
                    wetterdaten = 0;
                    setState(idVariable, wetterdaten);
            };
            
            //Wind Richtung als Angabe 
            var idOpenWeater = 'weatherunderground.0.forecast.current.windDegrees'/*Wind direction Degrees*/;
            var idVariable = 'hm-rega.0.11467'/*Wetter Windrichtung*/;  
                
                //******************* Windrichtung bestimmen***************
                //*******************Nord 339-23, Nordost 24-68, Ost 69-113, SüdOst 114-158, Süd 159-203, SüdWest 204-248, West 249-293, NordWest 394-338***************
            
                wetterdaten = getState(idOpenWeater).val
            
                if (wetterdaten > 23 && wetterdaten <= 68){
                    wetterdaten = "NordOst";
                    };
            
                if (wetterdaten > 68 && wetterdaten <= 113){
                    wetterdaten = "Ost";
                    };
            
                if (wetterdaten > 113 && wetterdaten <= 158){
                    wetterdaten = "SüdOst";
                    };
            
                if (wetterdaten > 158 && wetterdaten <= 203){
                    wetterdaten = "Süd";
                    };
            
                if (wetterdaten > 203 && wetterdaten <= 248){
                    wetterdaten = "SüdWest";
                    };
            
                if (wetterdaten > 248 && wetterdaten <= 293){
                    wetterdaten = "West";
                    };
            
                if (wetterdaten > 293 && wetterdaten <= 338){
                    wetterdaten = "NordWest";
                    };
            
                if (wetterdaten > 338 && wetterdaten <= 360){
                    wetterdaten = "Nord";
                    };
            
                if (wetterdaten > 0 && wetterdaten <= 23){
                    wetterdaten = "Nord";
                    };
                
                if (!wetterdaten) {
                    wetterdaten = "keine Angabe";
                    setState(idVariable, wetterdaten);
                };
            
                if (wetterdaten) setState(idVariable, wetterdaten);
            
            //Temperatur als Zahl
            var idOpenWeater = 'weatherunderground.0.forecast.current.temp'/*Temperature*/;
            var idVariable = 'hm-rega.0.11468'/*Wetter Temperatur*/;
            Wetterdatenholenundsetzen();
            
            //Luftfeuchtigkeit als Zahl
            var idOpenWeater = 'weatherunderground.0.forecast.current.relativeHumidity'/*Relative humidity*/;
            var idVariable = 'hm-rega.0.11469'/*Wetter Luftfeuchte*/;
            Wetterdatenholenundsetzen();
            
            //Windgeschwindigkeit als Zahl
            var idOpenWeater = 'weatherunderground.0.forecast.current.wind'/*Wind speed*/;
            var idVariable = 'hm-rega.0.11474'/*Wetter Windgeschw*/;
            Wetterdatenholenundsetzen();
            // wenn keine Daten
            if (!wetterdaten) {
                    wetterdaten = 0;
                    setState(idVariable, wetterdaten);
            };
            
            //Wind Geschwindigkeit als Angabe (Beaufort); 
            var idOpenWeater = 'weatherunderground.0.forecast.current.wind'/*Wind speed*/;
            var idVariable = 'hm-rega.0.11470'/*Wetter Windgeschwindigkeit*/;
            
            
            //******************* Windgeschwindigkeit in Beaufort bestimmen***************
                
                wetterdaten = getState(idOpenWeater).val
            
                if (wetterdaten > 0 && wetterdaten <= 1){
                    wetterdaten = 0;
                    };
            
                if (wetterdaten > 1 && wetterdaten <= 5){
                    wetterdaten = 1;
                    };
            
                if (wetterdaten > 5 && wetterdaten <= 11){
                    wetterdaten = 2;
                    };
            
                if (wetterdaten > 11 && wetterdaten <= 19){
                    wetterdaten = 3;
                    };
            
                if (wetterdaten > 19 && wetterdaten <= 28){
                    wetterdaten = 4;
                    };
            
                if (wetterdaten > 28 && wetterdaten <= 38){
                    wetterdaten = 5;
                    };
            
                if (wetterdaten > 38 && wetterdaten <= 49){
                    wetterdaten = 6;
                    };
            
                if (wetterdaten > 49 && wetterdaten <= 61){
                    wetterdaten = 7;
                    };
            
                if (wetterdaten > 61 && wetterdaten <= 74){
                    wetterdaten = 8;
                    };
            
                if (wetterdaten > 74 && wetterdaten <= 88){
                    wetterdaten = 9;
                    };
            
                if (wetterdaten > 88 && wetterdaten <= 102){
                    wetterdaten = 10;
                    };
            
                if (wetterdaten > 102 && wetterdaten <= 117){
                    wetterdaten = 11;
                    };
            
                if (wetterdaten > 117){
                    wetterdaten = 12;
                    };            
                
                if (!wetterdaten) {
                    wetterdaten = "keine Angabe";
                    setState(idVariable, wetterdaten);
                };
            
                if (wetterdaten) setState(idVariable, wetterdaten);
            
            //Luftdruck als Zahl
            var idOpenWeater = 'weatherunderground.0.forecast.current.pressure'/*Air pressure (mbar)*/;
            var idVariable = 'hm-rega.0.11471'/*Wetter Luftdruck*/;
            Wetterdatenholenundsetzen();
            
            //Aktualisierung (Zeit)
            var idOpenWeater = 'weatherunderground.0.forecast.current.observationTimeRFC822'/*Observation time (rfc822)*/;
            var idVariable = 'hm-rega.0.11472'/*Wetter Aktualisierung*/;
            wetterdaten = getState(idOpenWeater).val;
            var date = new Date(wetterdaten);
            
            // Umwandeln in deutsches Format
            
                //Tagesdatum ermitteln
                var tag = date.getDate();
                var tag = tag + "";
                if(tag.length < 2){
                   tag = "0" + tag;
                };
                
                //Monat ermitteln
                var month = new Array("1","2","3","4","5","6","7","8","9","10","11","12");
                var monat = month[date.getMonth()];
                if(monat.length < 2){
                    monat = "0" + monat;
                }
                   
                //Jahr ermitteln
                var jahr = date.getFullYear();
            
                //Stunde ermitteln
                var stunde = date.getHours();
                var stunde = stunde.toString();
                if(stunde.length < 2){
                    stunde = "0" + stunde;
                }
                
                //Minute ermitteln
                var minute = date.getMinutes();
                var minute = minute.toString();
                if(minute.length < 2){
                    minute = "0" + minute;
                }
                
                //Sekunde ermitteln
                var sekunde = date.getSeconds();
                var sekunde = sekunde.toString();
                if(sekunde.length < 2){
                    sekunde = "0" + sekunde;
                }
                   
            var ausgabe = tag + "." + monat + "." + jahr + "   " + stunde + ":" + minute + ":" + sekunde;
            
            setState(idVariable, ausgabe);
            
            // ##################################################################
            //                  FUNKTION Holen und setzen     
            // ##################################################################
            
             function Wetterdatenholenundsetzen() {
                wetterdaten = getState(idOpenWeater).val;
                //if (wetterdaten) setState(idVariable, wetterdaten);
                if (wetterdaten != null) setState(idVariable, wetterdaten);
             };
            
            
            });
            

            und bekomme immer wieder folgende Fehlermeldungen:

            hm-rega.0
            2023-07-04 10:02:30.276	warn	Script "dom.GetObject(11470).State("keine Angabe")" ignored, because still pending.
            
            javascript.0
            2023-07-04 10:02:30.192	warn	at processImmediate (node:internal/timers:476:21)
            
            javascript.0
            2023-07-04 10:02:30.191	warn	at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.js:5916:56)
            
            javascript.0
            2023-07-04 10:02:30.190	warn	at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:645:29)
            
            javascript.0
            2023-07-04 10:02:30.185	warn	at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1255:38)
            
            javascript.0
            2023-07-04 10:02:30.184	warn	at Object.<anonymous> (script.js.common.Wetter.Wetterdaten_Holen_und_setzen_mit_Beaufort:168:22)
            
            javascript.0
            2023-07-04 10:02:30.183	warn	at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1730:20)
            
            javascript.0
            2023-07-04 10:02:30.175	warn	You are assigning a string to the state "hm-rega.0.11470" which expects a number. Please fix your code to use a number or change the state type to string. This warning might become an error in future versions.
            
            javascript.0
            2023-07-04 10:02:30.174	warn	at processImmediate (node:internal/timers:476:21)
            
            javascript.0
            2023-07-04 10:02:30.173	warn	at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.js:5916:56)
            
            javascript.0
            2023-07-04 10:02:30.173	warn	at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:645:29)
            
            javascript.0
            2023-07-04 10:02:30.172	warn	at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1255:38)
            
            javascript.0
            2023-07-04 10:02:30.171	warn	at Object.<anonymous> (script.js.common.Wetter.Wetterdaten_Holen_und_setzen_mit_Beaufort:165:9)
            
            javascript.0
            2023-07-04 10:02:30.169	warn	at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1730:20)
            
            javascript.0
            2023-07-04 10:02:30.159	warn	You are assigning a string to the state "hm-rega.0.11470" which expects a number. Please fix your code to use a number or change the state type to string. This warning might become an error in future versions.
            

            Offenbar stimmt die Typ Zuordnung nicht, wenn

            'weatherunderground.0.forecast.current.wind'/*Wind speed*/
            

            keine Daten liefert. Wie kann ich das abfangen?

            paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von paul53
            #5

            @skorpil sagte: ich habe folgendes Sript im Einsatz

            Zeilen 179 bis 221 kann man durch eine Zeile ersetzen:

            let ausgabe = formatDate(wetterdaten, 'DD.MM.YYYY hh:mm:ss');
            

            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
            1
            • S skorpil

              ich habe folgendes Sript im Einsatz, welches Wetterdaten ausliest:

              // #########################################################################
              //    Wetterdaten aus openweathermap holen und in homematic Variable setzen
              // #########################################################################
              
              
              // Aktualisierung der homematic Variable bei Aktualisierung openweathermap
              on ({id:'weatherunderground.0.forecast.current.observationTimeRFC822'/*Observation time (rfc822)*/, change: 'any'}, function(data) {
              var wetterdaten;
              
              //Werte holen und setzen
              
              //Wetter Bedingung als String
              var idOpenWeater = 'yr.0.forecastHourly.6h.6h_summary_text'/*6h summary text*/;
              var idVariable = 'hm-rega.0.11465'/*Wetter Bedingungen*/;
              wetterdaten = getState(idOpenWeater).val
              
              if (wetterdaten) setState(idVariable, wetterdaten); 
              
              //Wetter Richtung als Zahl
              var idOpenWeater = 'weatherunderground.0.forecast.current.windDegrees'/*Wind direction Degrees*/;
              // log(JSON.stringify(getState(idOpenWeater).val));
              var idVariable = 'hm-rega.0.11466'/*Wetter Windrichtg*/;
              Wetterdatenholenundsetzen();
              // wenn keine Daten
              if (!wetterdaten) {
                      wetterdaten = 0;
                      setState(idVariable, wetterdaten);
              };
              
              //Wind Richtung als Angabe 
              var idOpenWeater = 'weatherunderground.0.forecast.current.windDegrees'/*Wind direction Degrees*/;
              var idVariable = 'hm-rega.0.11467'/*Wetter Windrichtung*/;  
                  
                  //******************* Windrichtung bestimmen***************
                  //*******************Nord 339-23, Nordost 24-68, Ost 69-113, SüdOst 114-158, Süd 159-203, SüdWest 204-248, West 249-293, NordWest 394-338***************
              
                  wetterdaten = getState(idOpenWeater).val
              
                  if (wetterdaten > 23 && wetterdaten <= 68){
                      wetterdaten = "NordOst";
                      };
              
                  if (wetterdaten > 68 && wetterdaten <= 113){
                      wetterdaten = "Ost";
                      };
              
                  if (wetterdaten > 113 && wetterdaten <= 158){
                      wetterdaten = "SüdOst";
                      };
              
                  if (wetterdaten > 158 && wetterdaten <= 203){
                      wetterdaten = "Süd";
                      };
              
                  if (wetterdaten > 203 && wetterdaten <= 248){
                      wetterdaten = "SüdWest";
                      };
              
                  if (wetterdaten > 248 && wetterdaten <= 293){
                      wetterdaten = "West";
                      };
              
                  if (wetterdaten > 293 && wetterdaten <= 338){
                      wetterdaten = "NordWest";
                      };
              
                  if (wetterdaten > 338 && wetterdaten <= 360){
                      wetterdaten = "Nord";
                      };
              
                  if (wetterdaten > 0 && wetterdaten <= 23){
                      wetterdaten = "Nord";
                      };
                  
                  if (!wetterdaten) {
                      wetterdaten = "keine Angabe";
                      setState(idVariable, wetterdaten);
                  };
              
                  if (wetterdaten) setState(idVariable, wetterdaten);
              
              //Temperatur als Zahl
              var idOpenWeater = 'weatherunderground.0.forecast.current.temp'/*Temperature*/;
              var idVariable = 'hm-rega.0.11468'/*Wetter Temperatur*/;
              Wetterdatenholenundsetzen();
              
              //Luftfeuchtigkeit als Zahl
              var idOpenWeater = 'weatherunderground.0.forecast.current.relativeHumidity'/*Relative humidity*/;
              var idVariable = 'hm-rega.0.11469'/*Wetter Luftfeuchte*/;
              Wetterdatenholenundsetzen();
              
              //Windgeschwindigkeit als Zahl
              var idOpenWeater = 'weatherunderground.0.forecast.current.wind'/*Wind speed*/;
              var idVariable = 'hm-rega.0.11474'/*Wetter Windgeschw*/;
              Wetterdatenholenundsetzen();
              // wenn keine Daten
              if (!wetterdaten) {
                      wetterdaten = 0;
                      setState(idVariable, wetterdaten);
              };
              
              //Wind Geschwindigkeit als Angabe (Beaufort); 
              var idOpenWeater = 'weatherunderground.0.forecast.current.wind'/*Wind speed*/;
              var idVariable = 'hm-rega.0.11470'/*Wetter Windgeschwindigkeit*/;
              
              
              //******************* Windgeschwindigkeit in Beaufort bestimmen***************
                  
                  wetterdaten = getState(idOpenWeater).val
              
                  if (wetterdaten > 0 && wetterdaten <= 1){
                      wetterdaten = 0;
                      };
              
                  if (wetterdaten > 1 && wetterdaten <= 5){
                      wetterdaten = 1;
                      };
              
                  if (wetterdaten > 5 && wetterdaten <= 11){
                      wetterdaten = 2;
                      };
              
                  if (wetterdaten > 11 && wetterdaten <= 19){
                      wetterdaten = 3;
                      };
              
                  if (wetterdaten > 19 && wetterdaten <= 28){
                      wetterdaten = 4;
                      };
              
                  if (wetterdaten > 28 && wetterdaten <= 38){
                      wetterdaten = 5;
                      };
              
                  if (wetterdaten > 38 && wetterdaten <= 49){
                      wetterdaten = 6;
                      };
              
                  if (wetterdaten > 49 && wetterdaten <= 61){
                      wetterdaten = 7;
                      };
              
                  if (wetterdaten > 61 && wetterdaten <= 74){
                      wetterdaten = 8;
                      };
              
                  if (wetterdaten > 74 && wetterdaten <= 88){
                      wetterdaten = 9;
                      };
              
                  if (wetterdaten > 88 && wetterdaten <= 102){
                      wetterdaten = 10;
                      };
              
                  if (wetterdaten > 102 && wetterdaten <= 117){
                      wetterdaten = 11;
                      };
              
                  if (wetterdaten > 117){
                      wetterdaten = 12;
                      };            
                  
                  if (!wetterdaten) {
                      wetterdaten = "keine Angabe";
                      setState(idVariable, wetterdaten);
                  };
              
                  if (wetterdaten) setState(idVariable, wetterdaten);
              
              //Luftdruck als Zahl
              var idOpenWeater = 'weatherunderground.0.forecast.current.pressure'/*Air pressure (mbar)*/;
              var idVariable = 'hm-rega.0.11471'/*Wetter Luftdruck*/;
              Wetterdatenholenundsetzen();
              
              //Aktualisierung (Zeit)
              var idOpenWeater = 'weatherunderground.0.forecast.current.observationTimeRFC822'/*Observation time (rfc822)*/;
              var idVariable = 'hm-rega.0.11472'/*Wetter Aktualisierung*/;
              wetterdaten = getState(idOpenWeater).val;
              var date = new Date(wetterdaten);
              
              // Umwandeln in deutsches Format
              
                  //Tagesdatum ermitteln
                  var tag = date.getDate();
                  var tag = tag + "";
                  if(tag.length < 2){
                     tag = "0" + tag;
                  };
                  
                  //Monat ermitteln
                  var month = new Array("1","2","3","4","5","6","7","8","9","10","11","12");
                  var monat = month[date.getMonth()];
                  if(monat.length < 2){
                      monat = "0" + monat;
                  }
                     
                  //Jahr ermitteln
                  var jahr = date.getFullYear();
              
                  //Stunde ermitteln
                  var stunde = date.getHours();
                  var stunde = stunde.toString();
                  if(stunde.length < 2){
                      stunde = "0" + stunde;
                  }
                  
                  //Minute ermitteln
                  var minute = date.getMinutes();
                  var minute = minute.toString();
                  if(minute.length < 2){
                      minute = "0" + minute;
                  }
                  
                  //Sekunde ermitteln
                  var sekunde = date.getSeconds();
                  var sekunde = sekunde.toString();
                  if(sekunde.length < 2){
                      sekunde = "0" + sekunde;
                  }
                     
              var ausgabe = tag + "." + monat + "." + jahr + "   " + stunde + ":" + minute + ":" + sekunde;
              
              setState(idVariable, ausgabe);
              
              // ##################################################################
              //                  FUNKTION Holen und setzen     
              // ##################################################################
              
               function Wetterdatenholenundsetzen() {
                  wetterdaten = getState(idOpenWeater).val;
                  //if (wetterdaten) setState(idVariable, wetterdaten);
                  if (wetterdaten != null) setState(idVariable, wetterdaten);
               };
              
              
              });
              

              und bekomme immer wieder folgende Fehlermeldungen:

              hm-rega.0
              2023-07-04 10:02:30.276	warn	Script "dom.GetObject(11470).State("keine Angabe")" ignored, because still pending.
              
              javascript.0
              2023-07-04 10:02:30.192	warn	at processImmediate (node:internal/timers:476:21)
              
              javascript.0
              2023-07-04 10:02:30.191	warn	at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.js:5916:56)
              
              javascript.0
              2023-07-04 10:02:30.190	warn	at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:645:29)
              
              javascript.0
              2023-07-04 10:02:30.185	warn	at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1255:38)
              
              javascript.0
              2023-07-04 10:02:30.184	warn	at Object.<anonymous> (script.js.common.Wetter.Wetterdaten_Holen_und_setzen_mit_Beaufort:168:22)
              
              javascript.0
              2023-07-04 10:02:30.183	warn	at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1730:20)
              
              javascript.0
              2023-07-04 10:02:30.175	warn	You are assigning a string to the state "hm-rega.0.11470" which expects a number. Please fix your code to use a number or change the state type to string. This warning might become an error in future versions.
              
              javascript.0
              2023-07-04 10:02:30.174	warn	at processImmediate (node:internal/timers:476:21)
              
              javascript.0
              2023-07-04 10:02:30.173	warn	at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.js:5916:56)
              
              javascript.0
              2023-07-04 10:02:30.173	warn	at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:645:29)
              
              javascript.0
              2023-07-04 10:02:30.172	warn	at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1255:38)
              
              javascript.0
              2023-07-04 10:02:30.171	warn	at Object.<anonymous> (script.js.common.Wetter.Wetterdaten_Holen_und_setzen_mit_Beaufort:165:9)
              
              javascript.0
              2023-07-04 10:02:30.169	warn	at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1730:20)
              
              javascript.0
              2023-07-04 10:02:30.159	warn	You are assigning a string to the state "hm-rega.0.11470" which expects a number. Please fix your code to use a number or change the state type to string. This warning might become an error in future versions.
              

              Offenbar stimmt die Typ Zuordnung nicht, wenn

              'weatherunderground.0.forecast.current.wind'/*Wind speed*/
              

              keine Daten liefert. Wie kann ich das abfangen?

              paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von paul53
              #6

              @skorpil sagte: keine Daten liefert. Wie kann ich das abfangen?

              Durch Prüfung auf != null.

              //******************* Windgeschwindigkeit in Beaufort bestimmen***************
                  
                  wetterdaten = getState(idOpenWeater).val;
                  if(wetterdaten != null) {
                      let ausgabe = 0;
                      if (wetterdaten > 1)  ausgabe = 1;
                      if (wetterdaten > 5)  ausgabe = 2;
                      if (wetterdaten > 11) ausgabe = 3;
                      if (wetterdaten > 19) ausgabe = 4;
                      if (wetterdaten > 28) ausgabe = 5;
                      if (wetterdaten > 38) ausgabe = 6;
                      if (wetterdaten > 49) ausgabe = 7;
                      if (wetterdaten > 61) ausgabe = 8;
                      if (wetterdaten > 74) ausgabe = 9;
                      if (wetterdaten > 88) ausgabe = 10;
                      if (wetterdaten > 102) ausgabe = 11;
                      if (wetterdaten > 117) ausgabe = 12;
                      setState(idVariable, ausgabe);
                  }
              

              Du solltest außerdem die gesamten Abfragen mit etwas Verzögerung (100 ms) starten, da der Trigger "Observation time (rfc822)" nicht als letzter Datenpunkt vom Adapter geschrieben wird. Sonst passen einige Werte nicht zum Zeitpunkt der letzten Abfrage.

              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

              S T 2 Antworten Letzte Antwort
              1
              • paul53P paul53

                @skorpil sagte: keine Daten liefert. Wie kann ich das abfangen?

                Durch Prüfung auf != null.

                //******************* Windgeschwindigkeit in Beaufort bestimmen***************
                    
                    wetterdaten = getState(idOpenWeater).val;
                    if(wetterdaten != null) {
                        let ausgabe = 0;
                        if (wetterdaten > 1)  ausgabe = 1;
                        if (wetterdaten > 5)  ausgabe = 2;
                        if (wetterdaten > 11) ausgabe = 3;
                        if (wetterdaten > 19) ausgabe = 4;
                        if (wetterdaten > 28) ausgabe = 5;
                        if (wetterdaten > 38) ausgabe = 6;
                        if (wetterdaten > 49) ausgabe = 7;
                        if (wetterdaten > 61) ausgabe = 8;
                        if (wetterdaten > 74) ausgabe = 9;
                        if (wetterdaten > 88) ausgabe = 10;
                        if (wetterdaten > 102) ausgabe = 11;
                        if (wetterdaten > 117) ausgabe = 12;
                        setState(idVariable, ausgabe);
                    }
                

                Du solltest außerdem die gesamten Abfragen mit etwas Verzögerung (100 ms) starten, da der Trigger "Observation time (rfc822)" nicht als letzter Datenpunkt vom Adapter geschrieben wird. Sonst passen einige Werte nicht zum Zeitpunkt der letzten Abfrage.

                S Offline
                S Offline
                skorpil
                schrieb am zuletzt editiert von
                #7

                @paul53 Du bist der Wahnsinn! Danke schön

                1 Antwort Letzte Antwort
                0
                • paul53P paul53

                  @skorpil sagte: keine Daten liefert. Wie kann ich das abfangen?

                  Durch Prüfung auf != null.

                  //******************* Windgeschwindigkeit in Beaufort bestimmen***************
                      
                      wetterdaten = getState(idOpenWeater).val;
                      if(wetterdaten != null) {
                          let ausgabe = 0;
                          if (wetterdaten > 1)  ausgabe = 1;
                          if (wetterdaten > 5)  ausgabe = 2;
                          if (wetterdaten > 11) ausgabe = 3;
                          if (wetterdaten > 19) ausgabe = 4;
                          if (wetterdaten > 28) ausgabe = 5;
                          if (wetterdaten > 38) ausgabe = 6;
                          if (wetterdaten > 49) ausgabe = 7;
                          if (wetterdaten > 61) ausgabe = 8;
                          if (wetterdaten > 74) ausgabe = 9;
                          if (wetterdaten > 88) ausgabe = 10;
                          if (wetterdaten > 102) ausgabe = 11;
                          if (wetterdaten > 117) ausgabe = 12;
                          setState(idVariable, ausgabe);
                      }
                  

                  Du solltest außerdem die gesamten Abfragen mit etwas Verzögerung (100 ms) starten, da der Trigger "Observation time (rfc822)" nicht als letzter Datenpunkt vom Adapter geschrieben wird. Sonst passen einige Werte nicht zum Zeitpunkt der letzten Abfrage.

                  T Nicht stören
                  T Nicht stören
                  ticaki
                  schrieb am zuletzt editiert von
                  #8

                  @paul53
                  Hat es einen Grund warum du nicht

                  if (wetterdaten <= 1)  ausgabe = 1;
                  else if (wetterdaten <= 5)  ausgabe = 2;
                  else if (wetterdaten <= 11) ausgabe = 3;
                  else if (wetterdaten <= 19) ausgabe = 4;
                  ...
                  

                  genommen hast?

                  Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                  Spenden

                  paul53P 1 Antwort Letzte Antwort
                  0
                  • T ticaki

                    @paul53
                    Hat es einen Grund warum du nicht

                    if (wetterdaten <= 1)  ausgabe = 1;
                    else if (wetterdaten <= 5)  ausgabe = 2;
                    else if (wetterdaten <= 11) ausgabe = 3;
                    else if (wetterdaten <= 19) ausgabe = 4;
                    ...
                    

                    genommen hast?

                    paul53P Offline
                    paul53P Offline
                    paul53
                    schrieb am zuletzt editiert von
                    #9

                    @ticaki sagte: Hat es einen Grund

                    Nein, man kann es so oder so machen. Du bist mit der ausgabe um 1 zu hoch.

                    let ausgabe = 12;
                    if (wetterdaten <= 1)  ausgabe = 0;
                    else if (wetterdaten <= 5)  ausgabe = 1;
                    else if (wetterdaten <= 11) ausgabe = 2;
                    else if (wetterdaten <= 19) ausgabe = 3;
                    ...
                    

                    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
                    1
                    • paul53P paul53

                      @ticaki sagte: Hat es einen Grund

                      Nein, man kann es so oder so machen. Du bist mit der ausgabe um 1 zu hoch.

                      let ausgabe = 12;
                      if (wetterdaten <= 1)  ausgabe = 0;
                      else if (wetterdaten <= 5)  ausgabe = 1;
                      else if (wetterdaten <= 11) ausgabe = 2;
                      else if (wetterdaten <= 19) ausgabe = 3;
                      ...
                      
                      T Nicht stören
                      T Nicht stören
                      ticaki
                      schrieb am zuletzt editiert von
                      #10

                      @paul53
                      hast recht, Danke

                      Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                      Spenden

                      1 Antwort Letzte Antwort
                      1
                      • S Offline
                        S Offline
                        skorpil
                        schrieb am zuletzt editiert von
                        #11

                        @paul53 @ticaki ihr seid schneller als der Schall! Vielen, vielen Dank.
                        Ich kann gerade nicht an den beiden Scripten arbeiten. Morgen vormittag habe ich Zeit. Nachdem ich Eure Anpassungen und Vorschläge eingearbeitet habe, werde ich sie nochmals komplett posten. Und Infos geben, ob’s funktioniert.

                        1 Antwort Letzte Antwort
                        0
                        • S Offline
                          S Offline
                          skorpil
                          schrieb am zuletzt editiert von
                          #12

                          wie versprochen hier nun das gesamte angepasste Script:

                          // #########################################################################
                          //    Wetterdaten aus openweathermap holen und in homematic Variable setzen
                          // #########################################################################
                          
                          
                          // Aktualisierung der homematic Variable bei Aktualisierung openweathermap
                          on ({id:'weatherunderground.0.forecast.current.observationTimeRFC822'/*Observation time (rfc822)*/, change: 'any'}, function(data) {
                          var wetterdaten;
                          
                          //Werte holen und setzen
                          
                          //Wetter Bedingung als String
                          var idOpenWeater = 'yr.0.forecastHourly.6h.6h_summary_text'/*6h summary text*/;
                          var idVariable = 'hm-rega.0.11465'/*Wetter Bedingungen*/;
                          wetterdaten = getState(idOpenWeater).val
                          
                          if (wetterdaten) setState(idVariable, wetterdaten); 
                          
                          //Wetter Richtung als Zahl
                          var idOpenWeater = 'weatherunderground.0.forecast.current.windDegrees'/*Wind direction Degrees*/;
                          // log(JSON.stringify(getState(idOpenWeater).val));
                          var idVariable = 'hm-rega.0.11466'/*Wetter Windrichtg*/;
                          Wetterdatenholenundsetzen();
                          // wenn keine Daten
                          if (!wetterdaten) {
                                  wetterdaten = 0;
                                  setState(idVariable, wetterdaten);
                          };
                          
                          //Wind Richtung als Angabe 
                          var idOpenWeater = 'weatherunderground.0.forecast.current.windDegrees'/*Wind direction Degrees*/;
                          var idVariable = 'hm-rega.0.11467'/*Wetter Windrichtung*/;  
                              
                              //******************* Windrichtung bestimmen***************
                              //*******************Nord 339-23, Nordost 24-68, Ost 69-113, SüdOst 114-158, Süd 159-203, SüdWest 204-248, West 249-293, NordWest 394-338***************
                          
                              wetterdaten = getState(idOpenWeater).val
                          
                              if (wetterdaten > 23 && wetterdaten <= 68){
                                  wetterdaten = "NordOst";
                                  };
                          
                              if (wetterdaten > 68 && wetterdaten <= 113){
                                  wetterdaten = "Ost";
                                  };
                          
                              if (wetterdaten > 113 && wetterdaten <= 158){
                                  wetterdaten = "SüdOst";
                                  };
                          
                              if (wetterdaten > 158 && wetterdaten <= 203){
                                  wetterdaten = "Süd";
                                  };
                          
                              if (wetterdaten > 203 && wetterdaten <= 248){
                                  wetterdaten = "SüdWest";
                                  };
                          
                              if (wetterdaten > 248 && wetterdaten <= 293){
                                  wetterdaten = "West";
                                  };
                          
                              if (wetterdaten > 293 && wetterdaten <= 338){
                                  wetterdaten = "NordWest";
                                  };
                          
                              if (wetterdaten > 338 && wetterdaten <= 360){
                                  wetterdaten = "Nord";
                                  };
                          
                              if (wetterdaten > 0 && wetterdaten <= 23){
                                  wetterdaten = "Nord";
                                  };
                              
                              if (!wetterdaten) {
                                  wetterdaten = 0;
                                  setState(idVariable, wetterdaten);
                              };
                          
                              if (wetterdaten) setState(idVariable, wetterdaten);
                          
                          //Temperatur als Zahl
                          var idOpenWeater = 'weatherunderground.0.forecast.current.temp'/*Temperature*/;
                          var idVariable = 'hm-rega.0.11468'/*Wetter Temperatur*/;
                          Wetterdatenholenundsetzen();
                          
                          //Luftfeuchtigkeit als Zahl
                          var idOpenWeater = 'weatherunderground.0.forecast.current.relativeHumidity'/*Relative humidity*/;
                          var idVariable = 'hm-rega.0.11469'/*Wetter Luftfeuchte*/;
                          Wetterdatenholenundsetzen();
                          
                          //Windgeschwindigkeit als Zahl
                          var idOpenWeater = 'weatherunderground.0.forecast.current.wind'/*Wind speed*/;
                          var idVariable = 'hm-rega.0.11474'/*Wetter Windgeschw*/;
                          Wetterdatenholenundsetzen();
                          // wenn keine Daten
                          if (!wetterdaten) {
                                  wetterdaten = 0;
                                  setState(idVariable, wetterdaten);
                          };
                          
                          //Wind Geschwindigkeit als Angabe (Beaufort); 
                          var idOpenWeater = 'weatherunderground.0.forecast.current.wind'/*Wind speed*/;
                          var idVariable = 'hm-rega.0.11470'/*Wetter Windgeschwindigkeit*/;
                          
                          
                          //******************* Windgeschwindigkeit in Beaufort bestimmen***************
                              
                              wetterdaten = getState(idOpenWeater).val;
                              if(wetterdaten != null) {
                                  let ausgabe = 0;
                                  if (wetterdaten > 1)  ausgabe = 1;
                                  if (wetterdaten > 5)  ausgabe = 2;
                                  if (wetterdaten > 11) ausgabe = 3;
                                  if (wetterdaten > 19) ausgabe = 4;
                                  if (wetterdaten > 28) ausgabe = 5;
                                  if (wetterdaten > 38) ausgabe = 6;
                                  if (wetterdaten > 49) ausgabe = 7;
                                  if (wetterdaten > 61) ausgabe = 8;
                                  if (wetterdaten > 74) ausgabe = 9;
                                  if (wetterdaten > 88) ausgabe = 10;
                                  if (wetterdaten > 102) ausgabe = 11;
                                  if (wetterdaten > 117) ausgabe = 12;
                                  setState(idVariable, ausgabe);
                              }
                          
                          
                          //Luftdruck als Zahl
                          var idOpenWeater = 'weatherunderground.0.forecast.current.pressure'/*Air pressure (mbar)*/;
                          var idVariable = 'hm-rega.0.11471'/*Wetter Luftdruck*/;
                          Wetterdatenholenundsetzen();
                          
                          //Aktualisierung (Zeit)
                          var idOpenWeater = 'weatherunderground.0.forecast.current.observationTimeRFC822'/*Observation time (rfc822)*/;
                          var idVariable = 'hm-rega.0.11472'/*Wetter Aktualisierung*/;
                          wetterdaten = getState(idOpenWeater).val;
                          
                          let ausgabe = formatDate(wetterdaten, 'DD.MM.YYYY hh:mm:ss');
                          
                          setState(idVariable, ausgabe);
                          
                          // ##################################################################
                          //                  FUNKTION Holen und setzen     
                          // ##################################################################
                          
                           function Wetterdatenholenundsetzen() {
                              wetterdaten = getState(idOpenWeater).val;
                              //if (wetterdaten) setState(idVariable, wetterdaten);
                              if (wetterdaten != null) setState(idVariable, wetterdaten);
                           };
                          
                          
                          });
                          

                          Zeilen 179 bis 221 kann man durch eine Zeile ersetzen: ein bisschen traurig bin ich schon, woich mir doch soooviel Mühe gegeben hatte...;-) aber das ist natürlich viel besser.

                          Durch Prüfung auf != null. Das habe ich so jetzt auch berücksichtigt.

                          Wo ich noch auf dem Schlauch stehe ist:

                          Du solltest außerdem die gesamten Abfragen mit etwas Verzögerung (100 ms) starten, da der Trigger "Observation time (rfc822)" nicht als letzter Datenpunkt vom Adapter geschrieben wird. Sonst passen einige Werte nicht zum Zeitpunkt der letzten Abfrage.

                          a) wie würde die Verzögerung programmiert?
                          b) der Adapter weatherunderground liefert zwei potentielle trigger, Observation time (rfc822) und Observation time. Mir kommt es hier nicht auf die letzte Akkuratesse an, sondern einfach um die Zeit der Beobachtung und ebe den trigger zur Auslösung des Scripts Welchen sollte ich nehmen?

                          paul53P 1 Antwort Letzte Antwort
                          0
                          • S skorpil

                            wie versprochen hier nun das gesamte angepasste Script:

                            // #########################################################################
                            //    Wetterdaten aus openweathermap holen und in homematic Variable setzen
                            // #########################################################################
                            
                            
                            // Aktualisierung der homematic Variable bei Aktualisierung openweathermap
                            on ({id:'weatherunderground.0.forecast.current.observationTimeRFC822'/*Observation time (rfc822)*/, change: 'any'}, function(data) {
                            var wetterdaten;
                            
                            //Werte holen und setzen
                            
                            //Wetter Bedingung als String
                            var idOpenWeater = 'yr.0.forecastHourly.6h.6h_summary_text'/*6h summary text*/;
                            var idVariable = 'hm-rega.0.11465'/*Wetter Bedingungen*/;
                            wetterdaten = getState(idOpenWeater).val
                            
                            if (wetterdaten) setState(idVariable, wetterdaten); 
                            
                            //Wetter Richtung als Zahl
                            var idOpenWeater = 'weatherunderground.0.forecast.current.windDegrees'/*Wind direction Degrees*/;
                            // log(JSON.stringify(getState(idOpenWeater).val));
                            var idVariable = 'hm-rega.0.11466'/*Wetter Windrichtg*/;
                            Wetterdatenholenundsetzen();
                            // wenn keine Daten
                            if (!wetterdaten) {
                                    wetterdaten = 0;
                                    setState(idVariable, wetterdaten);
                            };
                            
                            //Wind Richtung als Angabe 
                            var idOpenWeater = 'weatherunderground.0.forecast.current.windDegrees'/*Wind direction Degrees*/;
                            var idVariable = 'hm-rega.0.11467'/*Wetter Windrichtung*/;  
                                
                                //******************* Windrichtung bestimmen***************
                                //*******************Nord 339-23, Nordost 24-68, Ost 69-113, SüdOst 114-158, Süd 159-203, SüdWest 204-248, West 249-293, NordWest 394-338***************
                            
                                wetterdaten = getState(idOpenWeater).val
                            
                                if (wetterdaten > 23 && wetterdaten <= 68){
                                    wetterdaten = "NordOst";
                                    };
                            
                                if (wetterdaten > 68 && wetterdaten <= 113){
                                    wetterdaten = "Ost";
                                    };
                            
                                if (wetterdaten > 113 && wetterdaten <= 158){
                                    wetterdaten = "SüdOst";
                                    };
                            
                                if (wetterdaten > 158 && wetterdaten <= 203){
                                    wetterdaten = "Süd";
                                    };
                            
                                if (wetterdaten > 203 && wetterdaten <= 248){
                                    wetterdaten = "SüdWest";
                                    };
                            
                                if (wetterdaten > 248 && wetterdaten <= 293){
                                    wetterdaten = "West";
                                    };
                            
                                if (wetterdaten > 293 && wetterdaten <= 338){
                                    wetterdaten = "NordWest";
                                    };
                            
                                if (wetterdaten > 338 && wetterdaten <= 360){
                                    wetterdaten = "Nord";
                                    };
                            
                                if (wetterdaten > 0 && wetterdaten <= 23){
                                    wetterdaten = "Nord";
                                    };
                                
                                if (!wetterdaten) {
                                    wetterdaten = 0;
                                    setState(idVariable, wetterdaten);
                                };
                            
                                if (wetterdaten) setState(idVariable, wetterdaten);
                            
                            //Temperatur als Zahl
                            var idOpenWeater = 'weatherunderground.0.forecast.current.temp'/*Temperature*/;
                            var idVariable = 'hm-rega.0.11468'/*Wetter Temperatur*/;
                            Wetterdatenholenundsetzen();
                            
                            //Luftfeuchtigkeit als Zahl
                            var idOpenWeater = 'weatherunderground.0.forecast.current.relativeHumidity'/*Relative humidity*/;
                            var idVariable = 'hm-rega.0.11469'/*Wetter Luftfeuchte*/;
                            Wetterdatenholenundsetzen();
                            
                            //Windgeschwindigkeit als Zahl
                            var idOpenWeater = 'weatherunderground.0.forecast.current.wind'/*Wind speed*/;
                            var idVariable = 'hm-rega.0.11474'/*Wetter Windgeschw*/;
                            Wetterdatenholenundsetzen();
                            // wenn keine Daten
                            if (!wetterdaten) {
                                    wetterdaten = 0;
                                    setState(idVariable, wetterdaten);
                            };
                            
                            //Wind Geschwindigkeit als Angabe (Beaufort); 
                            var idOpenWeater = 'weatherunderground.0.forecast.current.wind'/*Wind speed*/;
                            var idVariable = 'hm-rega.0.11470'/*Wetter Windgeschwindigkeit*/;
                            
                            
                            //******************* Windgeschwindigkeit in Beaufort bestimmen***************
                                
                                wetterdaten = getState(idOpenWeater).val;
                                if(wetterdaten != null) {
                                    let ausgabe = 0;
                                    if (wetterdaten > 1)  ausgabe = 1;
                                    if (wetterdaten > 5)  ausgabe = 2;
                                    if (wetterdaten > 11) ausgabe = 3;
                                    if (wetterdaten > 19) ausgabe = 4;
                                    if (wetterdaten > 28) ausgabe = 5;
                                    if (wetterdaten > 38) ausgabe = 6;
                                    if (wetterdaten > 49) ausgabe = 7;
                                    if (wetterdaten > 61) ausgabe = 8;
                                    if (wetterdaten > 74) ausgabe = 9;
                                    if (wetterdaten > 88) ausgabe = 10;
                                    if (wetterdaten > 102) ausgabe = 11;
                                    if (wetterdaten > 117) ausgabe = 12;
                                    setState(idVariable, ausgabe);
                                }
                            
                            
                            //Luftdruck als Zahl
                            var idOpenWeater = 'weatherunderground.0.forecast.current.pressure'/*Air pressure (mbar)*/;
                            var idVariable = 'hm-rega.0.11471'/*Wetter Luftdruck*/;
                            Wetterdatenholenundsetzen();
                            
                            //Aktualisierung (Zeit)
                            var idOpenWeater = 'weatherunderground.0.forecast.current.observationTimeRFC822'/*Observation time (rfc822)*/;
                            var idVariable = 'hm-rega.0.11472'/*Wetter Aktualisierung*/;
                            wetterdaten = getState(idOpenWeater).val;
                            
                            let ausgabe = formatDate(wetterdaten, 'DD.MM.YYYY hh:mm:ss');
                            
                            setState(idVariable, ausgabe);
                            
                            // ##################################################################
                            //                  FUNKTION Holen und setzen     
                            // ##################################################################
                            
                             function Wetterdatenholenundsetzen() {
                                wetterdaten = getState(idOpenWeater).val;
                                //if (wetterdaten) setState(idVariable, wetterdaten);
                                if (wetterdaten != null) setState(idVariable, wetterdaten);
                             };
                            
                            
                            });
                            

                            Zeilen 179 bis 221 kann man durch eine Zeile ersetzen: ein bisschen traurig bin ich schon, woich mir doch soooviel Mühe gegeben hatte...;-) aber das ist natürlich viel besser.

                            Durch Prüfung auf != null. Das habe ich so jetzt auch berücksichtigt.

                            Wo ich noch auf dem Schlauch stehe ist:

                            Du solltest außerdem die gesamten Abfragen mit etwas Verzögerung (100 ms) starten, da der Trigger "Observation time (rfc822)" nicht als letzter Datenpunkt vom Adapter geschrieben wird. Sonst passen einige Werte nicht zum Zeitpunkt der letzten Abfrage.

                            a) wie würde die Verzögerung programmiert?
                            b) der Adapter weatherunderground liefert zwei potentielle trigger, Observation time (rfc822) und Observation time. Mir kommt es hier nicht auf die letzte Akkuratesse an, sondern einfach um die Zeit der Beobachtung und ebe den trigger zur Auslösung des Scripts Welchen sollte ich nehmen?

                            paul53P Offline
                            paul53P Offline
                            paul53
                            schrieb am zuletzt editiert von paul53
                            #13

                            @skorpil sagte: wie würde die Verzögerung programmiert?

                            Alle Daten - außer der Triggerwert selbst - sollten verzögert per getState(id).val geholt werden. Außerdem sollte die Variablendeklaration der 3 immer wieder verwendeten Variablen global ganz zu Anfang erfolgen. Auch die Funktion Wetterdatenholenundsetzen() sollte vor dem Trigger deklariert werden.

                            // #########################################################################
                            //    Wetterdaten aus openweathermap holen und in homematic Variable setzen
                            // #########################################################################
                             
                            var idOpenWeater, idVariable, wetterdaten;
                            
                            // ##################################################################
                            //                  FUNKTION Holen und setzen     
                            // ##################################################################
                            function Wetterdatenholenundsetzen() {
                                let wetterwert = getState(idOpenWeater).val;
                                if (wetterwert != null) setState(idVariable, wetterwert);
                            }
                            
                            // Aktualisierung der homematic Variable bei Aktualisierung openweathermap
                            on ('weatherunderground.0.forecast.current.observationTimeRFC822'/*Observation time (rfc822)*/, function(dp) {
                                let ausgabe = formatDate(dp.state.val, 'DD.MM.YYYY hh:mm:ss');
                                setState('hm-rega.0.11472'/*Wetter Aktualisierung*/, ausgabe);
                            
                                setTimeout(function() {
                                    // Hier alle anderen Daten für SV verarbeiten
                                }, 100); // 100 ms Verzögerung
                            });
                            

                            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

                            S 1 Antwort Letzte Antwort
                            1
                            • paul53P paul53

                              @skorpil sagte: wie würde die Verzögerung programmiert?

                              Alle Daten - außer der Triggerwert selbst - sollten verzögert per getState(id).val geholt werden. Außerdem sollte die Variablendeklaration der 3 immer wieder verwendeten Variablen global ganz zu Anfang erfolgen. Auch die Funktion Wetterdatenholenundsetzen() sollte vor dem Trigger deklariert werden.

                              // #########################################################################
                              //    Wetterdaten aus openweathermap holen und in homematic Variable setzen
                              // #########################################################################
                               
                              var idOpenWeater, idVariable, wetterdaten;
                              
                              // ##################################################################
                              //                  FUNKTION Holen und setzen     
                              // ##################################################################
                              function Wetterdatenholenundsetzen() {
                                  let wetterwert = getState(idOpenWeater).val;
                                  if (wetterwert != null) setState(idVariable, wetterwert);
                              }
                              
                              // Aktualisierung der homematic Variable bei Aktualisierung openweathermap
                              on ('weatherunderground.0.forecast.current.observationTimeRFC822'/*Observation time (rfc822)*/, function(dp) {
                                  let ausgabe = formatDate(dp.state.val, 'DD.MM.YYYY hh:mm:ss');
                                  setState('hm-rega.0.11472'/*Wetter Aktualisierung*/, ausgabe);
                              
                                  setTimeout(function() {
                                      // Hier alle anderen Daten für SV verarbeiten
                                  }, 100); // 100 ms Verzögerung
                              });
                              
                              S Offline
                              S Offline
                              skorpil
                              schrieb am zuletzt editiert von
                              #14

                              @paul53 dankeschön.

                              1 Antwort Letzte Antwort
                              0
                              • S Offline
                                S Offline
                                skorpil
                                schrieb am zuletzt editiert von
                                #15

                                @paul53 so?

                                // #########################################################################
                                //    Wetterdaten aus openweathermap holen und in homematic Variable setzen
                                // #########################################################################
                                 
                                var idOpenWeater, idVariable, wetterdaten;
                                 
                                // ##################################################################
                                //                  FUNKTION Holen und setzen     
                                // ##################################################################
                                function Wetterdatenholenundsetzen() {
                                    let wetterwert = getState(idOpenWeater).val;
                                    if (wetterwert != null) setState(idVariable, wetterwert);
                                }
                                 
                                // Aktualisierung der homematic Variable bei Aktualisierung openweathermap
                                on ('weatherunderground.0.forecast.current.observationTimeRFC822'/*Observation time (rfc822)*/, function(dp) {
                                    
                                    //Aktualisierung (Zeit)
                                    let ausgabe = formatDate(dp.state.val, 'DD.MM.YYYY hh:mm:ss');
                                    setState('hm-rega.0.11472'/*Wetter Aktualisierung*/, ausgabe);
                                 
                                    setTimeout(function() {
                                        
                                        
                                    //Werte holen und setzen
                                
                                //Wetter Bedingung als String
                                var idOpenWeater = 'yr.0.forecastHourly.6h.6h_summary_text'/*6h summary text*/;
                                var idVariable = 'hm-rega.0.11465'/*Wetter Bedingungen*/;
                                wetterdaten = getState(idOpenWeater).val
                                
                                if (wetterdaten) setState(idVariable, wetterdaten); 
                                
                                //Wetter Richtung als Zahl
                                var idOpenWeater = 'weatherunderground.0.forecast.current.windDegrees'/*Wind direction Degrees*/;
                                // log(JSON.stringify(getState(idOpenWeater).val));
                                var idVariable = 'hm-rega.0.11466'/*Wetter Windrichtg*/;
                                Wetterdatenholenundsetzen();
                                // wenn keine Daten
                                if (!wetterdaten) {
                                        wetterdaten = 0;
                                        setState(idVariable, wetterdaten);
                                };
                                
                                //Wind Richtung als Angabe 
                                var idOpenWeater = 'weatherunderground.0.forecast.current.windDegrees'/*Wind direction Degrees*/;
                                var idVariable = 'hm-rega.0.11467'/*Wetter Windrichtung*/;  
                                    
                                    //******************* Windrichtung bestimmen***************
                                    //*******************Nord 339-23, Nordost 24-68, Ost 69-113, SüdOst 114-158, Süd 159-203, SüdWest 204-248, West 249-293, NordWest 394-338***************
                                
                                    wetterdaten = getState(idOpenWeater).val
                                
                                    if (wetterdaten > 23 && wetterdaten <= 68){
                                        wetterdaten = "NordOst";
                                        };
                                
                                    if (wetterdaten > 68 && wetterdaten <= 113){
                                        wetterdaten = "Ost";
                                        };
                                
                                    if (wetterdaten > 113 && wetterdaten <= 158){
                                        wetterdaten = "SüdOst";
                                        };
                                
                                    if (wetterdaten > 158 && wetterdaten <= 203){
                                        wetterdaten = "Süd";
                                        };
                                
                                    if (wetterdaten > 203 && wetterdaten <= 248){
                                        wetterdaten = "SüdWest";
                                        };
                                
                                    if (wetterdaten > 248 && wetterdaten <= 293){
                                        wetterdaten = "West";
                                        };
                                
                                    if (wetterdaten > 293 && wetterdaten <= 338){
                                        wetterdaten = "NordWest";
                                        };
                                
                                    if (wetterdaten > 338 && wetterdaten <= 360){
                                        wetterdaten = "Nord";
                                        };
                                
                                    if (wetterdaten > 0 && wetterdaten <= 23){
                                        wetterdaten = "Nord";
                                        };
                                    
                                    if (!wetterdaten) {
                                        wetterdaten = 0;
                                        setState(idVariable, wetterdaten);
                                    };
                                
                                    if (wetterdaten) setState(idVariable, wetterdaten);
                                
                                //Temperatur als Zahl
                                var idOpenWeater = 'weatherunderground.0.forecast.current.temp'/*Temperature*/;
                                var idVariable = 'hm-rega.0.11468'/*Wetter Temperatur*/;
                                Wetterdatenholenundsetzen();
                                
                                //Luftfeuchtigkeit als Zahl
                                var idOpenWeater = 'weatherunderground.0.forecast.current.relativeHumidity'/*Relative humidity*/;
                                var idVariable = 'hm-rega.0.11469'/*Wetter Luftfeuchte*/;
                                Wetterdatenholenundsetzen();
                                
                                //Windgeschwindigkeit als Zahl
                                var idOpenWeater = 'weatherunderground.0.forecast.current.wind'/*Wind speed*/;
                                var idVariable = 'hm-rega.0.11474'/*Wetter Windgeschw*/;
                                Wetterdatenholenundsetzen();
                                // wenn keine Daten
                                if (!wetterdaten) {
                                        wetterdaten = 0;
                                        setState(idVariable, wetterdaten);
                                };
                                
                                //Wind Geschwindigkeit als Angabe (Beaufort); 
                                var idOpenWeater = 'weatherunderground.0.forecast.current.wind'/*Wind speed*/;
                                var idVariable = 'hm-rega.0.11470'/*Wetter Windgeschwindigkeit*/;
                                
                                
                                //******************* Windgeschwindigkeit in Beaufort bestimmen***************
                                    
                                    wetterdaten = getState(idOpenWeater).val;
                                    if(wetterdaten != null) {
                                        let ausgabe = 0;
                                        if (wetterdaten > 1)  ausgabe = 1;
                                        if (wetterdaten > 5)  ausgabe = 2;
                                        if (wetterdaten > 11) ausgabe = 3;
                                        if (wetterdaten > 19) ausgabe = 4;
                                        if (wetterdaten > 28) ausgabe = 5;
                                        if (wetterdaten > 38) ausgabe = 6;
                                        if (wetterdaten > 49) ausgabe = 7;
                                        if (wetterdaten > 61) ausgabe = 8;
                                        if (wetterdaten > 74) ausgabe = 9;
                                        if (wetterdaten > 88) ausgabe = 10;
                                        if (wetterdaten > 102) ausgabe = 11;
                                        if (wetterdaten > 117) ausgabe = 12;
                                        setState(idVariable, ausgabe);
                                    }
                                
                                
                                //Luftdruck als Zahl
                                var idOpenWeater = 'weatherunderground.0.forecast.current.pressure'/*Air pressure (mbar)*/;
                                var idVariable = 'hm-rega.0.11471'/*Wetter Luftdruck*/;
                                Wetterdatenholenundsetzen();
                                
                                
                                    }, 100); // 100 ms Verzögerung
                                });
                                
                                
                                paul53P 1 Antwort Letzte Antwort
                                0
                                • S skorpil

                                  @paul53 so?

                                  // #########################################################################
                                  //    Wetterdaten aus openweathermap holen und in homematic Variable setzen
                                  // #########################################################################
                                   
                                  var idOpenWeater, idVariable, wetterdaten;
                                   
                                  // ##################################################################
                                  //                  FUNKTION Holen und setzen     
                                  // ##################################################################
                                  function Wetterdatenholenundsetzen() {
                                      let wetterwert = getState(idOpenWeater).val;
                                      if (wetterwert != null) setState(idVariable, wetterwert);
                                  }
                                   
                                  // Aktualisierung der homematic Variable bei Aktualisierung openweathermap
                                  on ('weatherunderground.0.forecast.current.observationTimeRFC822'/*Observation time (rfc822)*/, function(dp) {
                                      
                                      //Aktualisierung (Zeit)
                                      let ausgabe = formatDate(dp.state.val, 'DD.MM.YYYY hh:mm:ss');
                                      setState('hm-rega.0.11472'/*Wetter Aktualisierung*/, ausgabe);
                                   
                                      setTimeout(function() {
                                          
                                          
                                      //Werte holen und setzen
                                  
                                  //Wetter Bedingung als String
                                  var idOpenWeater = 'yr.0.forecastHourly.6h.6h_summary_text'/*6h summary text*/;
                                  var idVariable = 'hm-rega.0.11465'/*Wetter Bedingungen*/;
                                  wetterdaten = getState(idOpenWeater).val
                                  
                                  if (wetterdaten) setState(idVariable, wetterdaten); 
                                  
                                  //Wetter Richtung als Zahl
                                  var idOpenWeater = 'weatherunderground.0.forecast.current.windDegrees'/*Wind direction Degrees*/;
                                  // log(JSON.stringify(getState(idOpenWeater).val));
                                  var idVariable = 'hm-rega.0.11466'/*Wetter Windrichtg*/;
                                  Wetterdatenholenundsetzen();
                                  // wenn keine Daten
                                  if (!wetterdaten) {
                                          wetterdaten = 0;
                                          setState(idVariable, wetterdaten);
                                  };
                                  
                                  //Wind Richtung als Angabe 
                                  var idOpenWeater = 'weatherunderground.0.forecast.current.windDegrees'/*Wind direction Degrees*/;
                                  var idVariable = 'hm-rega.0.11467'/*Wetter Windrichtung*/;  
                                      
                                      //******************* Windrichtung bestimmen***************
                                      //*******************Nord 339-23, Nordost 24-68, Ost 69-113, SüdOst 114-158, Süd 159-203, SüdWest 204-248, West 249-293, NordWest 394-338***************
                                  
                                      wetterdaten = getState(idOpenWeater).val
                                  
                                      if (wetterdaten > 23 && wetterdaten <= 68){
                                          wetterdaten = "NordOst";
                                          };
                                  
                                      if (wetterdaten > 68 && wetterdaten <= 113){
                                          wetterdaten = "Ost";
                                          };
                                  
                                      if (wetterdaten > 113 && wetterdaten <= 158){
                                          wetterdaten = "SüdOst";
                                          };
                                  
                                      if (wetterdaten > 158 && wetterdaten <= 203){
                                          wetterdaten = "Süd";
                                          };
                                  
                                      if (wetterdaten > 203 && wetterdaten <= 248){
                                          wetterdaten = "SüdWest";
                                          };
                                  
                                      if (wetterdaten > 248 && wetterdaten <= 293){
                                          wetterdaten = "West";
                                          };
                                  
                                      if (wetterdaten > 293 && wetterdaten <= 338){
                                          wetterdaten = "NordWest";
                                          };
                                  
                                      if (wetterdaten > 338 && wetterdaten <= 360){
                                          wetterdaten = "Nord";
                                          };
                                  
                                      if (wetterdaten > 0 && wetterdaten <= 23){
                                          wetterdaten = "Nord";
                                          };
                                      
                                      if (!wetterdaten) {
                                          wetterdaten = 0;
                                          setState(idVariable, wetterdaten);
                                      };
                                  
                                      if (wetterdaten) setState(idVariable, wetterdaten);
                                  
                                  //Temperatur als Zahl
                                  var idOpenWeater = 'weatherunderground.0.forecast.current.temp'/*Temperature*/;
                                  var idVariable = 'hm-rega.0.11468'/*Wetter Temperatur*/;
                                  Wetterdatenholenundsetzen();
                                  
                                  //Luftfeuchtigkeit als Zahl
                                  var idOpenWeater = 'weatherunderground.0.forecast.current.relativeHumidity'/*Relative humidity*/;
                                  var idVariable = 'hm-rega.0.11469'/*Wetter Luftfeuchte*/;
                                  Wetterdatenholenundsetzen();
                                  
                                  //Windgeschwindigkeit als Zahl
                                  var idOpenWeater = 'weatherunderground.0.forecast.current.wind'/*Wind speed*/;
                                  var idVariable = 'hm-rega.0.11474'/*Wetter Windgeschw*/;
                                  Wetterdatenholenundsetzen();
                                  // wenn keine Daten
                                  if (!wetterdaten) {
                                          wetterdaten = 0;
                                          setState(idVariable, wetterdaten);
                                  };
                                  
                                  //Wind Geschwindigkeit als Angabe (Beaufort); 
                                  var idOpenWeater = 'weatherunderground.0.forecast.current.wind'/*Wind speed*/;
                                  var idVariable = 'hm-rega.0.11470'/*Wetter Windgeschwindigkeit*/;
                                  
                                  
                                  //******************* Windgeschwindigkeit in Beaufort bestimmen***************
                                      
                                      wetterdaten = getState(idOpenWeater).val;
                                      if(wetterdaten != null) {
                                          let ausgabe = 0;
                                          if (wetterdaten > 1)  ausgabe = 1;
                                          if (wetterdaten > 5)  ausgabe = 2;
                                          if (wetterdaten > 11) ausgabe = 3;
                                          if (wetterdaten > 19) ausgabe = 4;
                                          if (wetterdaten > 28) ausgabe = 5;
                                          if (wetterdaten > 38) ausgabe = 6;
                                          if (wetterdaten > 49) ausgabe = 7;
                                          if (wetterdaten > 61) ausgabe = 8;
                                          if (wetterdaten > 74) ausgabe = 9;
                                          if (wetterdaten > 88) ausgabe = 10;
                                          if (wetterdaten > 102) ausgabe = 11;
                                          if (wetterdaten > 117) ausgabe = 12;
                                          setState(idVariable, ausgabe);
                                      }
                                  
                                  
                                  //Luftdruck als Zahl
                                  var idOpenWeater = 'weatherunderground.0.forecast.current.pressure'/*Air pressure (mbar)*/;
                                  var idVariable = 'hm-rega.0.11471'/*Wetter Luftdruck*/;
                                  Wetterdatenholenundsetzen();
                                  
                                  
                                      }, 100); // 100 ms Verzögerung
                                  });
                                  
                                  
                                  paul53P Offline
                                  paul53P Offline
                                  paul53
                                  schrieb am zuletzt editiert von paul53
                                  #16

                                  @skorpil sagte: so?

                                  Nein, ohne var innerhalb der Funktion:

                                  // #########################################################################
                                  //    Wetterdaten aus openweathermap holen und in homematic Variable setzen
                                  // #########################################################################
                                   
                                  var idOpenWeater, idVariable, wetterdaten;
                                   
                                  // ##################################################################
                                  //                  FUNKTION Holen und setzen     
                                  // ##################################################################
                                  function Wetterdatenholenundsetzen() {
                                      let wetterwert = getState(idOpenWeater).val;
                                      if (wetterwert != null) setState(idVariable, wetterwert);
                                  }
                                   
                                  // Aktualisierung der homematic Variable bei Aktualisierung openweathermap
                                  on ('weatherunderground.0.forecast.current.observationTimeRFC822'/*Observation time (rfc822)*/, function(dp) {
                                      
                                      //Aktualisierung (Zeit)
                                      let ausgabe = formatDate(dp.state.val, 'DD.MM.YYYY hh:mm:ss');
                                      setState('hm-rega.0.11472'/*Wetter Aktualisierung*/, ausgabe);
                                   
                                      setTimeout(function() {
                                          //Werte holen und setzen
                                   
                                          //Wetter Bedingung als String
                                          idOpenWeater = 'yr.0.forecastHourly.6h.6h_summary_text'/*6h summary text*/;
                                          idVariable = 'hm-rega.0.11465'/*Wetter Bedingungen*/;
                                          Wetterdatenholenundsetzen();
                                   
                                          //Wetter Richtung als Zahl
                                          idOpenWeater = 'weatherunderground.0.forecast.current.windDegrees'/*Wind direction Degrees*/;
                                          idVariable = 'hm-rega.0.11466'/*Wetter Windrichtg*/;
                                          Wetterdatenholenundsetzen();
                                   
                                          //Wind Richtung als Angabe 
                                          idVariable = 'hm-rega.0.11467'/*Wetter Windrichtung*/;  
                                      
                                          //******************* Windrichtung bestimmen***************
                                          //*******************Nord 339-23, Nordost 24-68, Ost 69-113, SüdOst 114-158, Süd 159-203, SüdWest 204-248, West 249-293, NordWest 394-338***************
                                   
                                          wetterdaten = getState(idOpenWeater).val
                                          if(wetterdaten != null) {
                                              let ausgabe = "Nord";
                                              if (wetterdaten > 23) ausgabe = "NordOst";
                                              if (wetterdaten > 68) ausgabe = "Ost";
                                              if (wetterdaten > 113) ausgabe = "SüdOst";
                                              if (wetterdaten > 158) ausgabe = "Süd";
                                              if (wetterdaten > 203) ausgabe = "SüdWest";
                                              if (wetterdaten > 248) ausgabe = "West";
                                              if (wetterdaten > 293) ausgabe = "NordWest";
                                              if (wetterdaten > 338) ausgabe = "Nord";
                                              setState(idVariable, ausgabe);
                                          }
                                  
                                          //Temperatur als Zahl
                                          idOpenWeater = 'weatherunderground.0.forecast.current.temp'/*Temperature*/;
                                          idVariable = 'hm-rega.0.11468'/*Wetter Temperatur*/;
                                          Wetterdatenholenundsetzen();
                                   
                                          //Luftfeuchtigkeit als Zahl
                                          idOpenWeater = 'weatherunderground.0.forecast.current.relativeHumidity'/*Relative humidity*/;
                                          idVariable = 'hm-rega.0.11469'/*Wetter Luftfeuchte*/;
                                          Wetterdatenholenundsetzen();
                                   
                                          //Windgeschwindigkeit als Zahl
                                          idOpenWeater = 'weatherunderground.0.forecast.current.wind'/*Wind speed*/;
                                          idVariable = 'hm-rega.0.11474'/*Wetter Windgeschw*/;
                                          Wetterdatenholenundsetzen();
                                   
                                          //Wind Geschwindigkeit als Angabe (Beaufort); 
                                          idVariable = 'hm-rega.0.11470'/*Wetter Windgeschwindigkeit*/;
                                    
                                          //******************* Windgeschwindigkeit in Beaufort bestimmen***************
                                          wetterdaten = getState(idOpenWeater).val;
                                          if(wetterdaten != null) {
                                              let ausgabe = 0;
                                              if (wetterdaten > 1)  ausgabe = 1;
                                              if (wetterdaten > 5)  ausgabe = 2;
                                              if (wetterdaten > 11) ausgabe = 3;
                                              if (wetterdaten > 19) ausgabe = 4;
                                              if (wetterdaten > 28) ausgabe = 5;
                                              if (wetterdaten > 38) ausgabe = 6;
                                              if (wetterdaten > 49) ausgabe = 7;
                                              if (wetterdaten > 61) ausgabe = 8;
                                              if (wetterdaten > 74) ausgabe = 9;
                                              if (wetterdaten > 88) ausgabe = 10;
                                              if (wetterdaten > 102) ausgabe = 11;
                                              if (wetterdaten > 117) ausgabe = 12;
                                              setState(idVariable, ausgabe);
                                          }
                                   
                                          //Luftdruck als Zahl
                                          idOpenWeater = 'weatherunderground.0.forecast.current.pressure'/*Air pressure (mbar)*/;
                                          idVariable = 'hm-rega.0.11471'/*Wetter Luftdruck*/;
                                          Wetterdatenholenundsetzen();
                                  
                                      }, 100); // 100 ms Verzögerung
                                  });
                                  

                                  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

                                  S 1 Antwort Letzte Antwort
                                  0
                                  • paul53P paul53

                                    @skorpil sagte: so?

                                    Nein, ohne var innerhalb der Funktion:

                                    // #########################################################################
                                    //    Wetterdaten aus openweathermap holen und in homematic Variable setzen
                                    // #########################################################################
                                     
                                    var idOpenWeater, idVariable, wetterdaten;
                                     
                                    // ##################################################################
                                    //                  FUNKTION Holen und setzen     
                                    // ##################################################################
                                    function Wetterdatenholenundsetzen() {
                                        let wetterwert = getState(idOpenWeater).val;
                                        if (wetterwert != null) setState(idVariable, wetterwert);
                                    }
                                     
                                    // Aktualisierung der homematic Variable bei Aktualisierung openweathermap
                                    on ('weatherunderground.0.forecast.current.observationTimeRFC822'/*Observation time (rfc822)*/, function(dp) {
                                        
                                        //Aktualisierung (Zeit)
                                        let ausgabe = formatDate(dp.state.val, 'DD.MM.YYYY hh:mm:ss');
                                        setState('hm-rega.0.11472'/*Wetter Aktualisierung*/, ausgabe);
                                     
                                        setTimeout(function() {
                                            //Werte holen und setzen
                                     
                                            //Wetter Bedingung als String
                                            idOpenWeater = 'yr.0.forecastHourly.6h.6h_summary_text'/*6h summary text*/;
                                            idVariable = 'hm-rega.0.11465'/*Wetter Bedingungen*/;
                                            Wetterdatenholenundsetzen();
                                     
                                            //Wetter Richtung als Zahl
                                            idOpenWeater = 'weatherunderground.0.forecast.current.windDegrees'/*Wind direction Degrees*/;
                                            idVariable = 'hm-rega.0.11466'/*Wetter Windrichtg*/;
                                            Wetterdatenholenundsetzen();
                                     
                                            //Wind Richtung als Angabe 
                                            idVariable = 'hm-rega.0.11467'/*Wetter Windrichtung*/;  
                                        
                                            //******************* Windrichtung bestimmen***************
                                            //*******************Nord 339-23, Nordost 24-68, Ost 69-113, SüdOst 114-158, Süd 159-203, SüdWest 204-248, West 249-293, NordWest 394-338***************
                                     
                                            wetterdaten = getState(idOpenWeater).val
                                            if(wetterdaten != null) {
                                                let ausgabe = "Nord";
                                                if (wetterdaten > 23) ausgabe = "NordOst";
                                                if (wetterdaten > 68) ausgabe = "Ost";
                                                if (wetterdaten > 113) ausgabe = "SüdOst";
                                                if (wetterdaten > 158) ausgabe = "Süd";
                                                if (wetterdaten > 203) ausgabe = "SüdWest";
                                                if (wetterdaten > 248) ausgabe = "West";
                                                if (wetterdaten > 293) ausgabe = "NordWest";
                                                if (wetterdaten > 338) ausgabe = "Nord";
                                                setState(idVariable, ausgabe);
                                            }
                                    
                                            //Temperatur als Zahl
                                            idOpenWeater = 'weatherunderground.0.forecast.current.temp'/*Temperature*/;
                                            idVariable = 'hm-rega.0.11468'/*Wetter Temperatur*/;
                                            Wetterdatenholenundsetzen();
                                     
                                            //Luftfeuchtigkeit als Zahl
                                            idOpenWeater = 'weatherunderground.0.forecast.current.relativeHumidity'/*Relative humidity*/;
                                            idVariable = 'hm-rega.0.11469'/*Wetter Luftfeuchte*/;
                                            Wetterdatenholenundsetzen();
                                     
                                            //Windgeschwindigkeit als Zahl
                                            idOpenWeater = 'weatherunderground.0.forecast.current.wind'/*Wind speed*/;
                                            idVariable = 'hm-rega.0.11474'/*Wetter Windgeschw*/;
                                            Wetterdatenholenundsetzen();
                                     
                                            //Wind Geschwindigkeit als Angabe (Beaufort); 
                                            idVariable = 'hm-rega.0.11470'/*Wetter Windgeschwindigkeit*/;
                                      
                                            //******************* Windgeschwindigkeit in Beaufort bestimmen***************
                                            wetterdaten = getState(idOpenWeater).val;
                                            if(wetterdaten != null) {
                                                let ausgabe = 0;
                                                if (wetterdaten > 1)  ausgabe = 1;
                                                if (wetterdaten > 5)  ausgabe = 2;
                                                if (wetterdaten > 11) ausgabe = 3;
                                                if (wetterdaten > 19) ausgabe = 4;
                                                if (wetterdaten > 28) ausgabe = 5;
                                                if (wetterdaten > 38) ausgabe = 6;
                                                if (wetterdaten > 49) ausgabe = 7;
                                                if (wetterdaten > 61) ausgabe = 8;
                                                if (wetterdaten > 74) ausgabe = 9;
                                                if (wetterdaten > 88) ausgabe = 10;
                                                if (wetterdaten > 102) ausgabe = 11;
                                                if (wetterdaten > 117) ausgabe = 12;
                                                setState(idVariable, ausgabe);
                                            }
                                     
                                            //Luftdruck als Zahl
                                            idOpenWeater = 'weatherunderground.0.forecast.current.pressure'/*Air pressure (mbar)*/;
                                            idVariable = 'hm-rega.0.11471'/*Wetter Luftdruck*/;
                                            Wetterdatenholenundsetzen();
                                    
                                        }, 100); // 100 ms Verzögerung
                                    });
                                    
                                    S Offline
                                    S Offline
                                    skorpil
                                    schrieb am zuletzt editiert von
                                    #17

                                    @paul53 sagte in Wo ist der Fehler?:

                                    Nein, ohne var innerhalb der Funktion:

                                    Damit ich es verstehe: WARUM?

                                    paul53P 1 Antwort Letzte Antwort
                                    0
                                    • S skorpil

                                      @paul53 sagte in Wo ist der Fehler?:

                                      Nein, ohne var innerhalb der Funktion:

                                      Damit ich es verstehe: WARUM?

                                      paul53P Offline
                                      paul53P Offline
                                      paul53
                                      schrieb am zuletzt editiert von paul53
                                      #18

                                      @skorpil sagte: Damit ich es verstehe: WARUM?

                                      Damit die Werte in die globalen Variablen (Zeile 5) für die Übergabe an die Funktion Wetterdatenholenundsetzen() geschrieben werden. Wenn eine Variable mit dem gleichen Bezeichner innerhalb der Trigger-Callback-Funktion neu deklariert wird (var), ist sie nur innerhalb der Callback-Funktion gültig.

                                      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

                                      S 1 Antwort Letzte Antwort
                                      0
                                      • paul53P paul53

                                        @skorpil sagte: Damit ich es verstehe: WARUM?

                                        Damit die Werte in die globalen Variablen (Zeile 5) für die Übergabe an die Funktion Wetterdatenholenundsetzen() geschrieben werden. Wenn eine Variable mit dem gleichen Bezeichner innerhalb der Trigger-Callback-Funktion neu deklariert wird (var), ist sie nur innerhalb der Callback-Funktion gültig.

                                        S Offline
                                        S Offline
                                        skorpil
                                        schrieb am zuletzt editiert von
                                        #19

                                        @paul53 ich verstehe

                                        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

                                        755

                                        Online

                                        32.6k

                                        Benutzer

                                        82.2k

                                        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