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. Wunderground Wetter Abfrage über script

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.3k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.3k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.6k

Wunderground Wetter Abfrage über script

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
16 Beiträge 8 Kommentatoren 5.7k Aufrufe
  • Ä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.
  • L Offline
    L Offline
    looxer01
    schrieb am zuletzt editiert von
    #1

    Hi,

    da ich ja gerade dabei sind meine Programme nach und nach von der CCU zu migrieren kam jetzt Wunderground dran.

    Ich habe mir eine Station in der Nähe gesucht und diese Station liefert die Ergebnisse.

    Das script muss entsprechend angepasst werden mit:

    persönlicher Key ( muss bei Wunderground bezogen werden)

    und station ID - der Station die die Ergebnisse liefern soll

    Folgende Wetterbedingungen werden geliefert:

    Aktualisierung = datum der Wunderground Aktualisierung

    Bedingungen = Beschreibung des aktuellen Wetters

    Temperatur in celsius

    Wetter_Wind_kmh' - Wind Geschwindigkeit

    Windboeen - Geschwindigkeit in Boeen

    Windrichtung

    Windbedingungen - Beschreibungen der Windbedingungen

    Luftdruck'

    Luftdrucktrend + 0 -

    Luftfeuchte

    spezielle Widgets habe ich dazu nicht.

    Ich hoffe, dass es der eine oder andere brauchen kann.

    vG Looxer

    //   Abfrage Wunderground
    // Key und station id müssen über Wunderground bezogen werden
    //         # Update der Daten auf wunderground erfolgt immer zur vollen Stunde - abhängig von der Station
    
    // bitte eintragen
    var key = "xxxxxxxxxxxxxxx";
    var station = "yyyyyyyyyyyy";
    
    createState('Wunderground.Wetter_Aktualisierung'," ");
    createState('Wunderground.Wetter_Bedingungen', " ");
    createState('Wunderground.Wetter_Temperatur_C'," ");
    createState('Wunderground.Wetter_Wind_kmh'," ");
    createState('Wunderground.Wetter_Windboeen'," ");
    createState('Wunderground.Wetter_Windrichtung'," ");
    createState('Wunderground.Wetter_Windbedingungen'," ");
    createState('Wunderground.Wetter_Luftdruck'," ");
    createState('Wunderground.Wetter_Luftdrucktrend'," ");
    createState('Wunderground.Wetter_Luftfeuchte'," ");
    
    var request = require('request');
    
    var startAktualisierung = "<observation_time>Last Updated on ";  // letzter update start
    var endAktualisierung = "</observation_time>";  // letzter update end
    var startBedingungen = "<weather>"; // start wetterbedingungen
    var endBedingungen = "</weather>"; //  ende wetterbedingungen
    var startTemperatur_C = "<temp_c>";   // start temperatur # ZAHL
    var endTemperatur_C = "</temp_c>";   //ende  temperatur # ZAHL
    var startWind_kmh = "<wind_kph>";      // ende  Windgeschwindigkeit # ZAHL
    var endWind_kmh = "</wind_kph>";      // ende  Windgeschwindigkeit # ZAHL
    var startWindboeen = "<wind_gust_kph>";  // Windboeengeschwindigkeit # ZAHL
    var endWindboeen = "</wind_gust_kph>";  // Windboeengeschwindigkeit # ZAHL
    var startWindrichtung = "<wind_dir>"; // windrichtung
    var endWindrichtung = "</wind_dir>"; // windrichtung
    var startWindbedingungen = "<wind_string>"; // windbedingungen
    var endWindbedingungen = "</wind_string>"; // windbedingungen
    var startLuftdruck = "<pressure_mb>"; // Luftdruck #ZAHL
    var endLuftdruck = "</pressure_mb>"; // Luftdruck #ZAHL
    var startLuftdrucktrend = "<pressure_trend>";  //Luftdrucktrend
    var endLuftdrucktrend = "/pressure_trend>";  //Luftdrucktrend
    var startLuftfeuchte = "<relative_humidity>"; //Luftfeuchte
    var endLuftfeuchte = "</relative_humidity>"; //Luftfeuchte
    
    var url = "http://api.wunderground.com/api/" + key + "/conditions/lang:DL/q/pws:" + station + ".xml";
    
    var position = 0;
    var start_position = 0;
    var end_position = 0;
    var data_length = 0;
    
    schedule("*/30 * * * *",  function () { // alle 30 Minuten       
    
    request(url, function (error, response, body) {
       if (!error && response.statusCode == 200) {
    
                start_position = body.indexOf(startAktualisierung)      + startAktualisierung.length; // Anfangsposition
                end_position   = body.indexOf(endAktualisierung);       // Endeposition
                data_length = end_position - start_position;
                var dataAktualisierung =   body.substring(start_position, start_position + data_length) ;
    
                start_position = body.indexOf(startBedingungen)      + startBedingungen.length; // Anfangsposition
                end_position   = body.indexOf(endBedingungen);       // Endeposition
                data_length = end_position - start_position;
                var dataBedingungen =   body.substring(start_position, start_position + data_length) ;
                log('Bedingungen ' + dataBedingungen  , "info");
    
                start_position = body.indexOf(startTemperatur_C)      + startTemperatur_C.length; // Anfangsposition
                end_position   = body.indexOf(endTemperatur_C);       // Endeposition
                data_length = end_position - start_position;
                var dataTemperatur_C =   body.substring(start_position, start_position + data_length) ;
                log('Temperatur_C  ' + dataTemperatur_C  , "info");
    
                start_position = body.indexOf(startWind_kmh)      + startWind_kmh.length; // Anfangsposition
                end_position   = body.indexOf(endWind_kmh);       // Endeposition
                data_length = end_position - start_position;
                var dataWind_kmh =   body.substring(start_position, start_position + data_length) ;
                log('Wind_kmh ' + dataWind_kmh  , "info");     
    
                start_position = body.indexOf(startWindboeen)      + startWindboeen.length; // Anfangsposition
                end_position   = body.indexOf(endWindboeen);       // Endeposition
                data_length = end_position - start_position;
                var dataAWindboeen =   body.substring(start_position, start_position + data_length) ;
                log('Windboeen ' + dataAWindboeen  , "info");     
    
                start_position = body.indexOf(startWindrichtung)      + startWindrichtung.length; // Anfangsposition
                end_position   = body.indexOf(endWindrichtung);       // Endeposition
                data_length = end_position - start_position;
                var dataWindrichtung =   body.substring(start_position, start_position + data_length) ;
                log('Windrichtung ' + dataWindrichtung  , "info");     
    
                start_position = body.indexOf(startWindbedingungen)      + startWindbedingungen.length; // Anfangsposition
                end_position   = body.indexOf(endWindbedingungen);       // Endeposition
                data_length = end_position - start_position;
                var dataWindbedingungen =   body.substring(start_position, start_position + data_length) ;
                log('Windbedingungen ' + dataWindbedingungen  , "info");     
    
                start_position = body.indexOf(startLuftdruck)      + startLuftdruck.length; // Anfangsposition
                end_position   = body.indexOf(endLuftdruck);       // Endeposition
                data_length = end_position - start_position;
                var dataLuftdruck =   body.substring(start_position, start_position + data_length) ;
                log('Luftdruck ' + dataLuftdruck  , "info");     
    
                start_position = body.indexOf(startLuftdrucktrend)      + startLuftdrucktrend.length; // Anfangsposition
                end_position   = body.indexOf(endLuftdrucktrend);       // Endeposition
                data_length = end_position - start_position - 1;
                var dataLuftdrucktrend =   body.substring(start_position, start_position + data_length) ;
                log('Luftdrucktrend ' + dataLuftdrucktrend  , "info");     
    
                start_position = body.indexOf(startLuftfeuchte)      + startLuftfeuchte.length; // Anfangsposition
                end_position   = body.indexOf(endLuftfeuchte);       // Endeposition
                data_length = end_position - start_position;
                var dataLuftfeuchte =   body.substring(start_position, start_position + data_length) ;
                log('Luftfeuchte ' + dataLuftfeuchte  , "info");     
    
         setState('javascript.0.Wunderground.Wetter_Aktualisierung', dataAktualisierung);
         setState('javascript.0.Wunderground.Wetter_Bedingungen', dataBedingungen);
         setState('javascript.0.Wunderground.Wetter_Temperatur_C', dataTemperatur_C);     
         setState('javascript.0.Wunderground.Wetter_Wind_kmh', dataWind_kmh);
         setState('javascript.0.Wunderground.Wetter_Windboeen', dataAWindboeen);
         setState('javascript.0.Wunderground.Wetter_Windrichtung', dataWindrichtung);
         setState('javascript.0.Wunderground.Wetter_Windbedingungen', dataWindbedingungen);
         setState('javascript.0.Wunderground.Wetter_Luftdruck', dataLuftdruck);
         setState('javascript.0.Wunderground.Wetter_Luftdrucktrend', dataLuftdrucktrend);
         setState('javascript.0.Wunderground.Wetter_Luftfeuchte', dataLuftfeuchte); 
    
       } else  {  //   if (!error && response.statusCode == 200) {
                log(error);
                log('Wunderground nicht erreichbar');
    
                    }
    
    }); // end of request         
    
    }); // end of schedule</pressure_trend> 
    
    1 Antwort Letzte Antwort
    0
    • S Offline
      S Offline
      starfish
      schrieb am zuletzt editiert von
      #2

      irgendwo haperts noch:

      log: error script.js.wunderground compile failed: SyntaxError: Unexpected identifier

      unmatched '{' in Zeile 52

      missing ";" before statement in Zeile 132

      expected an identifier and instead saw ")" in Zeile 138

      gruss - starfish

      1 Antwort Letzte Antwort
      0
      • L Offline
        L Offline
        looxer01
        schrieb am zuletzt editiert von
        #3

        ups, danke.

        Ich hatte manuell ein paar Änderungen gemacht im post wegen persönlicher Daten bei mir im Script.

        Sollte jetzt funktionieren.

        vG Looxer

        1 Antwort Letzte Antwort
        0
        • S Offline
          S Offline
          starfish
          schrieb am zuletzt editiert von
          #4

          Danke looxer, jetzt läufts. Ein kleiner Hinweis für Einsteiger, die Objekte müssen vorab erstellt werden, entweder manuell oder durch Einfügen folgender Zeilen am Anfang des scripts:

          createState('Wunderground.Wetter_Aktualisierung', '');
          createState('Wunderground.Wetter_Aktualisierung', '');
          createState('Wunderground.Wetter_Bedingungen', '');
          createState('Wunderground.Wetter_Temperatur_C', '');     
          createState('Wunderground.Wetter_Wind_kmh', '');
          createState('Wunderground.Wetter_Windboeen', '');
          createState('Wunderground.Wetter_Windrichtung', '');
          createState('Wunderground.Wetter_Luftdruck', '');
          createState('Wunderground.Wetter_Luftfeuchte', ''); 
          createState('Wunderground.Wetter_Luftdrucktrend', ''); 
          

          nach dem erstmaligen Aufruf des scripts sind die benötigten Objekte erstellt, dann können die Zeilen wieder entfernt werden (?)

          1 Antwort Letzte Antwort
          0
          • L Offline
            L Offline
            looxer01
            schrieb am zuletzt editiert von
            #5

            danke Starfish,

            jap, wieder ein Fehler von mir - die create states sind in meiner Version vorhanden.

            ich hatte wohl zu viele Änderungen zu meiner Version versucht einzubauen - wieder was gelernt :oops:

            ich habe das Script nochmal angefasst. - oh mann

            die create zeilen würde ich allerdings einfach belassen. Sie stören ja nicht, machen es aber im Notfall einfacher.

            vG Looxer

            1 Antwort Letzte Antwort
            0
            • V Offline
              V Offline
              versteckt
              schrieb am zuletzt editiert von
              #6

              Morgähn, hab grad dein Script aktiviert.

              Bekommst ein "LikeIt", echt super.

              Muss mal schauen, inwiefern ich da etwas in meine Umgebung (vis) einbauen kann.

              LG Christian

              Raspi 1, Raspi 2, iobroker, Mac Mini: alles mit aktueller ioBroker Version

              homegear für Homematic und MAX!

              occ, zWave, rpi, hmm und homekit Entwickler

              1 Antwort Letzte Antwort
              0
              • P Offline
                P Offline
                pix
                schrieb am zuletzt editiert von
                #7

                Hab es auch schon genutzt. Etwas abgewandelt für mehr als eine Station.

                Daumen hoch!

                Gruß,

                Pix

                Gesendet von meinem iPhone mit Tapatalk

                ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

                1 Antwort Letzte Antwort
                0
                • L Offline
                  L Offline
                  looxer01
                  schrieb am zuletzt editiert von
                  #8

                  Danke Euch - das freut mich :D
                  @versteckt:

                  Muss mal schauen, inwiefern ich da etwas in meine Umgebung (vis) einbauen kann. `
                  das wäre klasse, besonders, wenn du es hier posten könntest. Visuell sehen die Dinge ja immer noch anders aus ;)

                  übrigens habe ich gleich in der Nachbarschaft eine Wetterstation, die ich über Wunderground abfrage.

                  Das erspart die eigene Station und gibt die Möglichkeit auf Wettersituationen (Regen, Wind,Sonne) zu reagieren.

                  Lohnt sich mal zu schauen was so in der Nähe ist.

                  vG Looxer

                  1 Antwort Letzte Antwort
                  0
                  • V Offline
                    V Offline
                    versteckt
                    schrieb am zuletzt editiert von
                    #9

                    Ja genau, bei mir ist eben auch eine ein paar hundert Meter entfernt.

                    Gesendet von meinem iPhone mit Tapatalk

                    Raspi 1, Raspi 2, iobroker, Mac Mini: alles mit aktueller ioBroker Version

                    homegear für Homematic und MAX!

                    occ, zWave, rpi, hmm und homekit Entwickler

                    1 Antwort Letzte Antwort
                    0
                    • M Offline
                      M Offline
                      mabas
                      schrieb am zuletzt editiert von
                      #10

                      Hallo,

                      es gibt auch ein hübsches NPM Paket:

                      schedule("*/10 * * * *", function() {
                          var Wunderground = require('wunderground-api');
                          var client = new Wunderground('KEY', 'STATIONSNAME');
                      
                          client.conditions('', function(err, data) {
                            if (err) throw err;
                            //normale Parameter setzen
                            setState("wunderground.aktuelleTemperatur", data.temp_c);
                            setState("wunderground.aktuelleLuftfeuchtigkeit", data.relative_humidity);
                            setState("wunderground.aktuelleWindrichtung", data.wind_dir);
                            setState("wunderground.aktuelleWindgeschwindigkeit", data.wind_gust_kph);
                            setState("wunderground.aktuelleSolarradiation", data.solarradiation);
                      
                      	//Zusammenfassen von Bewölkungsabstufungen
                            var condition = data.weather;
                            setState("wunderground.aktuelleWettersituation", condition);
                              if (condition === "Mostly Cloudy" || condition === "Cloudy" || condition === "Partly Cloudy" || condition === "Overcast" || condition === "Scattered Clouds" || condition === "Patches of Fog" || condition === "Fog") {
                                  setState("wunderground.aktuelleWettersituation", "Wolken");
                              }
                              if (condition === "Rain" || condition ==="Chance of Rain" || condition ==="Light Rain" || condition ==="Light Rain Showers") {
                                  setState("wunderground.aktuelleWettersituation", "Regen");
                              }
                              if (condition === "Clear" || condition === "Mostly Sunny" || condition === "Partly Sunny" || condition === "Shallow Fog") {
                                  setState("wunderground.aktuelleWettersituation", "Heiter");
                              }
                              if (condition === "Chance of Snow" || condition === "Snow" || condition === "Light Snow") {
                                  setState("wunderground.aktuelleWettersituation", "Schnee");
                              }
                          });
                      });
                      
                      

                      Produktiv mit ioBroker/vis auf ASRock Beebox

                      >40 Homematic-Geräte, Sonos, 3xFernseher, Lightify, Hue, Yahka, Weinor Markise, Sonnenbatterie, Feinstaubsensor, bisher erst ein 9" Display mit vis

                      1 Antwort Letzte Antwort
                      0
                      • P Offline
                        P Offline
                        pix
                        schrieb am zuletzt editiert von
                        #11

                        Hallo,

                        eine sehr schöne Lösung. Danke für den Hinweis auf das npm Paket.

                        Allerdings kann ich die Daten nicht mit einem Stationscode abrufen, sondern nur (wie in der Doku gezeigt) mit einem Städtenamen.

                        Und warum sind in dieser Zeile die beiden Anführungszeichen?

                         client.conditions('', function(err, data) {
                        

                        Ind er Doku stehen da die Optionen drin.

                        var opts = {
                          key:'your api key here', 
                          city:'Washington', 
                          state: 'DC'
                        }
                        

                        Gruß

                        Pix

                        EDIT: Die Abfrage über eine Station ist mit diesem Pakt wohl nicht vorgesehen: https://github.com/jaxgeller/node-weath … r/index.js

                        ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

                        1 Antwort Letzte Antwort
                        0
                        • P Offline
                          P Offline
                          pix
                          schrieb am zuletzt editiert von
                          #12

                          So, jetzt habe ich es anders gemacht:

                          Das npm-Paket Wunderbar liefert auch Daten von Stationen.

                          In den Javascript-Einstellungen das Paket eintragen "wunderbar".

                          Beiliegendes Skript ist für derzeit zwei Stationen.

                          ! ````
                          /* Wunderground
                          ! liest Weather Underground Wetterdaten per Javascript ein (aber via npm)
                          http://forum.iobroker.de/viewtopic.php?f=21&t=1936&sid=ed4f119f1b4aeed8d878838bc99be8c6#p20733
                          Instanz 1
                          ! Mögliche conditions: https://www.wunderground.com/weather/api/d/docs?d=data/conditions
                          ! erstellt: 23.12.2015 von looxer01 http://forum.iobroker.net/viewtopic.php?f=21&t=1936#p16590
                          26.12.2015 angepasst von pix
                          07.01.2016 Optin Generalschalter
                          29.02.2016 auf npm wunderbar umgestellt
                          */
                          ! var instanz = 'javascript.1' + '.';
                          var pfad = 'Wunderground' + '.';
                          ! // Abfrage Wunderground
                          // Key und station id müssen über Wunderground bezogen werden
                          // # Update der Daten auf wunderground erfolgt immer zur vollen Stunde - abhängig von der Station
                          ! // bitte eintragen
                          var apikey = "APIKEYEINTRAGEN";
                          ! var wundergroundstation = [];
                          wundergroundstation[0] = "XXXXXXXXX"; //Station 1 eintragen
                          wundergroundstation[1] = "XXXXXXXXX"; //Station 2 eintragen ....
                          ! var logging = false;

                          // Ab hier mal nix ändern.....

                          ! createState(pfad + 'Optin', true, {
                          name: 'Optin Wunderground Daten abrufen',
                          desc: 'Sollen Weather Underground Daten aus dem Internet geladen werden?',
                          type: 'boolean',
                          read: true,
                          write: true
                          });
                          var idOptin = instanz + pfad + 'Optin';
                          ! function vereinfacheBedingungen (condition) {
                          var kurz = '',
                          de = '';
                          switch (condition) {
                          case "Mostly Cloudy":
                          de = 'überwiegend wolkig';
                          kurz = 'Wolken';
                          break;
                          case "Cloudy":
                          de = 'wolkig';
                          kurz = 'Wolken';
                          break;
                          case "Partly Cloudy":
                          de = 'teils wolkig';
                          kurz = 'Wolken';
                          break;
                          case "Scattered Clouds":
                          de = 'vereinzelte Wolken';
                          kurz = 'Wolken';
                          break;
                          case "Patches of Fog":
                          de = 'Nebelfelder';
                          kurz = 'Wolken';
                          break;
                          case "Fog":
                          de = 'Nebel';
                          kurz = 'Wolken';
                          break;
                          default:
                          kurz = 'Wolken';
                          break;
                          case "Rain":
                          de = 'Regen';
                          kurz = 'Regen';
                          break;
                          case "Chance of Rain":
                          de = 'Regen-Wahrscheinlichkeit';
                          kurz = 'Regen';
                          break;
                          case "Light Rain":
                          de = 'leichter Regen';
                          kurz = 'Regen';
                          break;
                          case "Light Rain Showers":
                          de = 'leichte Regenschauer';
                          kurz = 'Regen';
                          break;
                          case "Clear":
                          de = 'klar';
                          kurz = 'heiter';
                          break;
                          case "Mostly Sunny":
                          de = 'meist sonnig';
                          kurz = 'heiter';
                          break;
                          case "Partly Sunny":
                          de = 'teils sonnig';
                          kurz = 'heiter';
                          break;
                          case "Shallow Fog":
                          de = 'Bodennebel';
                          kurz = 'heiter';
                          break;
                          case "Chance of Snow":
                          de = 'Schneefall-Wahrscheinlichkeit';
                          kurz = 'Schnee';
                          break;
                          case "Snow":
                          de = 'Schneefall';
                          kurz = 'Schnee';
                          break;
                          case "Light Snow":
                          de = 'leichter Schneefall';
                          kurz = 'Schnee';
                          break;
                          }
                          return {
                          'vereinfacht' : kurz,
                          'deutsch' : de
                          };
                          }
                          ! function abfrageDaten(station) {
                          ! createState(pfad + station + '.Aktualisierung', " ", {
                          name: 'Wunderground - letzte Aktualisierung',
                          read: true,
                          write: true,
                          type: 'string'
                          });
                          createState(pfad + station + '.Bedingungen', " ", {
                          name: 'Wunderground - Bedingungen',
                          read: true,
                          write: true,
                          type: 'string'
                          });
                          createState(pfad + station + '.Temperatur_C', 0, {
                          name: 'Wunderground - Temperatur',
                          read: true,
                          write: true,
                          type: 'number',
                          unit: '°C'
                          });
                          createState(pfad + station + '.Temperatur_C_gefuehlt', 0, {
                          name: 'Wunderground - gefühlte Temperatur',
                          read: true,
                          write: true,
                          type: 'number',
                          unit: '°C'
                          });
                          createState(pfad + station + '.Wind_kmh', 0, {
                          name: 'Wunderground - Windgeschwindigkeit',
                          read: true,
                          write: true,
                          type: 'number',
                          unit: 'km/h'
                          });
                          createState(pfad + station + '.Windboeen', 0, {
                          name: 'Wunderground - Windboengeschwindigkeit',
                          read: true,
                          write: true,
                          type: 'number',
                          unit: 'km/h'
                          });
                          createState(pfad + station + '.Windrichtung'," ", {
                          name: 'Wunderground - Windrichtung',
                          read: true,
                          write: true,
                          type: 'string'
                          });
                          createState(pfad + station + '.Windbedingungen'," ", {
                          name: 'Wunderground - Windbedingungen',
                          read: true,
                          write: true,
                          type: 'string'
                          });
                          createState(pfad + station + '.Luftdruck', 0, {
                          name: 'Wunderground - Luftdruck',
                          read: true,
                          write: true,
                          type: 'number',
                          unit: 'mb'
                          });
                          createState(pfad + station + '.Luftdrucktrend'," ", {
                          name: 'Wunderground - Luftdrucktrend',
                          read: true,
                          write: true,
                          type: 'string'
                          });
                          createState(pfad + station + '.Luftfeuchte', 0, {
                          name: 'Wunderground - Luftfeuchte (relativ)',
                          read: true,
                          write: true,
                          type: 'number',
                          unit: '%'
                          });
                          createState(pfad + station + '.Sichtweite', 0, {
                          name: 'Wunderground - Sichtweite',
                          read: true,
                          write: true,
                          type: 'number',
                          unit: 'km'
                          });
                          ! try {
                          var Wunderground = require('wunderbar');
                          var client = new Wunderground(apikey);
                          client.conditions(station, function(err, data) {
                          if (err) throw err;
                          else {
                          setState(instanz + pfad + station + '.Aktualisierung', data.observation_time);
                          setState(instanz + pfad + station + '.Bedingungen', vereinfacheBedingungen(data.weather).deutsch);
                          setState(instanz + pfad + station + '.Temperatur_C', data.temp_c);
                          setState(instanz + pfad + station + '.Temperatur_C_gefuehlt', data.feelslike_c);
                          setState(instanz + pfad + station + '.Wind_kmh', data.wind_gust_kph);
                          setState(instanz + pfad + station + '.Windboeen', data.degrees);
                          setState(instanz + pfad + station + '.Windrichtung', data.wind_dir);
                          setState(instanz + pfad + station + '.Windbedingungen', data.wind_string);
                          setState(instanz + pfad + station + '.Luftdruck', data.pressure_mb);
                          setState(instanz + pfad + station + '.Luftdrucktrend', data.pressure_trend);
                          setState(instanz + pfad + station + '.Luftfeuchte', data.relative_humidity);
                          setState(instanz + pfad + station + '.Sichtweite', data.visibility_km);
                          }
                          });
                          ! } catch(fehler_try) {
                          log(fehler_try);
                          }
                          ! }
                          ! schedule("1,16,31,46 * * * *", function () { // alle 15 Minuten
                          abfrageDaten(wundergroundstation[0]);
                          }); // end of schedule
                          ! schedule("2,17,32,47 * * * *", function () { // alle 15 Minuten
                          abfrageDaten(wundergroundstation[1]);
                          }); // end of schedule
                          ! // bei Skriptstart
                          abfrageDaten(wundergroundstation[0]);
                          ! ````

                          Ich habe die Vereinfachung der Wetterbedingungen gleich noch in eine Übersetzung gepackt. Man kann mit

                          <size size="85">setState(instanz + pfad + station + '.Bedingungen', vereinfacheBedingungen(data.weather).deutsch);</size>

                          die deutsche Übersetzung oder mit

                          <size size="85">setState(instanz + pfad + station + '.Bedingungen', vereinfacheBedingungen(data.weather).kurz);</size>

                          die Kurzform (auch auf deutsch) abfragen

                          Gruß

                          Pix

                          ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

                          1 Antwort Letzte Antwort
                          0
                          • B Offline
                            B Offline
                            BobBruni
                            schrieb am zuletzt editiert von
                            #13

                            Hallo Pix,

                            habe nun folgendes gemacht:

                            1. $ npm install wunderbar

                            2. Unter Instanzen > javascript.0 > Konfiguration > Zusätzliche NPM-Module wunderbar eingetragen

                            3. Unter Skripte das von dir beiligende Skript eingefügt

                            Das Log bringt folgendes:

                            ! javascript.0 2017-02-18 14:31:00.616 warn State "javascript.1.Wunderground.IHHENKIR12.Sichtweite" not found
                            ! javascript.0 2017-02-18 14:31:00.616 warn State "javascript.1.Wunderground.IHHENKIR12.Luftfeuchte" not found
                            ! javascript.0 2017-02-18 14:31:00.615 warn State "javascript.1.Wunderground.IHHENKIR12.Luftdrucktrend" not found
                            ! javascript.0 2017-02-18 14:31:00.615 warn State "javascript.1.Wunderground.IHHENKIR12.Luftdruck" not found
                            ! javascript.0 2017-02-18 14:31:00.615 warn State "javascript.1.Wunderground.IHHENKIR12.Windbedingungen" not found
                            ! javascript.0 2017-02-18 14:31:00.614 warn State "javascript.1.Wunderground.IHHENKIR12.Windrichtung" not found
                            ! javascript.0 2017-02-18 14:31:00.614 warn State "javascript.1.Wunderground.IHHENKIR12.Windboeen" not found
                            ! javascript.0 2017-02-18 14:31:00.614 warn State "javascript.1.Wunderground.IHHENKIR12.Wind_kmh" not found
                            ! javascript.0 2017-02-18 14:31:00.613 warn State "javascript.1.Wunderground.IHHENKIR12.Temperatur_C_gefuehlt" not found
                            ! javascript.0 2017-02-18 14:31:00.613 warn State "javascript.1.Wunderground.IHHENKIR12.Temperatur_C" not found
                            ! javascript.0 2017-02-18 14:31:00.613 warn State "javascript.1.Wunderground.IHHENKIR12.Bedingungen" not found
                            ! javascript.0 2017-02-18 14:31:00.612 warn State "javascript.1.Wunderground.IHHENKIR12.Aktualisierung" not found

                            Habe ich etwas falsch gemacht oder hat hier Wunderground etwas geändert?

                            1 Antwort Letzte Antwort
                            0
                            • Y Offline
                              Y Offline
                              ykuendig
                              schrieb am zuletzt editiert von
                              #14

                              Hi Bob

                              Da Du auf einen einjährigen Post reagierst, wollte ich es mir nicht nehmen lassen, Dich darüber zu informieren, dass mittlerweile ein Weatherunderground Adapter geführt wird. Denn kann man benutzen, muss man aber nicht ;-)

                              Gruss Yves

                              1 Antwort Letzte Antwort
                              0
                              • htreckslerH Offline
                                htreckslerH Offline
                                htrecksler
                                Forum Testing
                                schrieb am zuletzt editiert von
                                #15

                                Das Script ist für javascript.1 eingestellt. Bei dir läuft es unter der Instanz 0.

                                Du musst ganz oben im Script die Instanz anpassen.

                                Gruss Hermann

                                ioBroker auf Proxmox (Debian) auf IntelNuc als Produktivsystem

                                1 Antwort Letzte Antwort
                                0
                                • B Offline
                                  B Offline
                                  BobBruni
                                  schrieb am zuletzt editiert von
                                  #16

                                  @ykuendig:

                                  Hi Bob

                                  Da Du auf einen einjährigen Post reagierst, wollte ich es mir nicht nehmen lassen, Dich darüber zu informieren, dass mittlerweile ein Weatherunderground Adapter geführt wird. Denn kann man benutzen, muss man aber nicht ;-) `

                                  Oh man, den Adapter hab ich echt übersehen :roll: Aber danke für den Tip!

                                  ` > Das Script ist für javascript.1 eingestellt. Bei dir läuft es unter der Instanz 0.

                                  Du musst ganz oben im Script die Instanz anpassen. `

                                  Auch danke dafür. Damit läuft das Skript. Und ich hab wieder was dazugerlernt ;)

                                  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.5k

                                  Benutzer

                                  81.7k

                                  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