Seite 19 von 23

Re: Aktuelles Wetter über wunderground.com

Verfasst: 03.07.2015, 09:59
von dtp
Nur mal eine Frage. Habe aber aus Zeitgründen nicht den gesamten Thread lesen können, daher verzeihe man mir, wenn die Frage bereits gestellt wurde.

Gibt es für Wunderground ggf. schon einen entsprechenden Adapter für DashUI bzw. ioBroker? Nutze aktuell yr.no, und das Ding ist sowas von ungenau mit täglich mehreren Grad Abweichung vom realen Wert.

Wunderground.com wird z.B. auch von PocketInformant genutzt, und da sind die mir angezeigten Werte und Prognosen ziemlich gut.

Gruß,

Thorsten

Re: Aktuelles Wetter über wunderground.com

Verfasst: 08.08.2015, 09:26
von pruse
Hallo,
habe das Skript für Wunderground über API in Der CCU.Wie bekomme ich zusätzlich den Niederschlag in der CCU.
Habe dafür das Skript eingefügt und eine Systemvariable W_Niederschlag_heute vom Typ Zahl angelegt aber es werden keine Werte hinter der Kommastelle angezeigt.

Code: Alles auswählen

 string word = "precip_today_metric";
        integer word_laenge = word.Length();
        integer word_position = wetter_xml.Find(word);
        string daten = wetter_xml.Substr((word_position + word_laenge +1), 100);
        integer word_position = daten.Find(word);
        daten = daten.Substr(0, (word_position -2));
        real zahl = daten.ToFloat();
        dom.GetObject("W_Niederschlag_heute").State(zahl);

Re: Aktuelles Wetter über wunderground.com

Verfasst: 08.08.2015, 17:28
von papi
Zunächst mal sollte sichergestellt sein, dass die angezapfte Wetterstation auch wirklich Niederschlag erfasst.

Ich musste heute meine Station wechseln, da die bislang von mir Genutzte offenbar den Geist aufgegeben hat.
Dabei musste ich eine ganze Weile suchen, bis ich eine Alternative gefunden habe, die auch alle von mir geforderten Werte, vor allem in angemessenen Zeitabständen, liefern kann.

Re: Aktuelles Wetter über wunderground.com

Verfasst: 26.08.2015, 13:36
von Pharao50
Guten Tag zusammen,

aus Zeitgründen konnte ich leider nicht den ganzen Thread lesen können.

Im Moment möchte ich auch das wunderground Wetter in meine CCU2 einbinden.
Leider scheitere ich berets beim füllen der Variablen.

Habe folgendes Script verwendet:

Variablen:

Code: Alles auswählen

!Stand 03.04.2014  http://homematic-forum.de/forum/viewtopic.php?f=31&t=17209
        !zuerst folgende Systemvariablen anlegen
        !Achtung: keine vergessen und exakte Schreibweise mit Drag&Drop
        !W_Station                        Zeichenkette
        !W_Aktualisierung             Zeichenkette
        !W_Bedingungen               Zeichenkette
        !W_Temperatur                Zahl                     °C
        !W_Luftfeuchte                Zahl                      %
        !W_Windbedingungen       Zeichenkette
        !W_Windrichtung              Zeichenkette
        !W_Windrichtg                  Zahl                       °
        !W_Windgeschwindigkeit   Zahl                     km/h
        !W_Windboeen                  Zahl                     km/h
        !W_Luftdruck                    Zahl                      mb
        !W_Luftdrucktrend            Zeichenkette
        !W_Taupunkt                    Zahl                     °C
        !W_UV                              Zeichenkette

Script:

Code: Alles auswählen

        var url = "http://api.wunderground.com/api/5dc438c76a265174/conditions/lang:DL/q/Germany/Neuwied.xml";
 
        !hier ist die Abfrage mit CUxD
        dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("wget -q -O - '"#url#"'");
        dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
        string wetter_xml = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
 
        !hier ist die Abfrage mit system.Exec
        !string stdout;
        !string stderr;
        !system.Exec("wget -q -O - '"#url#"'", &stdout, &stderr);
        !WriteLine(stdout);
        !string wetter_xml = stdout;
        !WriteLine(wetter_xml);
 
        !Beim XML-File den ueberfluessigen Header entfernen
        integer laenge = wetter_xml.Length();
        integer wort_position = wetter_xml.Find("display_location");
        wetter_xml = wetter_xml.Substr(wort_position, (laenge - wort_position));
        !WriteLine(wetter_xml);
 
        !Daten mit Suchworten aus XML-File ausfiltern:
 
        !string word = "full";
        string word = "city";
        integer word_laenge = word.Length();
        integer word_position = wetter_xml.Find(word);
        string daten = wetter_xml.Substr((word_position + word_laenge +1), 100);
        integer word_position = daten.Find(word);
        daten = daten.Substr(0, (word_position -2));
        dom.GetObject("W_Station").State(daten);
 
        !string word = "observation_time";
        string word = "observation_time_rfc822";
        integer word_laenge = word.Length();
        integer word_position = wetter_xml.Find(word);
        string daten = wetter_xml.Substr((word_position + word_laenge +1), 100);
        integer word_position = daten.Find(word);
        !daten = daten.Substr(0, (word_position -2));
        daten = daten.Substr(0, (word_position -11));
        dom.GetObject("W_Aktualisierung").State(daten);
 
        string word = "weather";
        integer word_laenge = word.Length();
        integer word_position = wetter_xml.Find(word);
        string daten = wetter_xml.Substr((word_position + word_laenge +1), 100);
        integer word_position = daten.Find(word);
        daten = daten.Substr(0, (word_position -2));
        dom.GetObject("W_Bedingungen").State(daten);
 
        string word = "temp_c";
        integer word_laenge = word.Length();
        integer word_position = wetter_xml.Find(word);
        string daten = wetter_xml.Substr((word_position + word_laenge +1), 100);
        integer word_position = daten.Find(word);
        daten = daten.Substr(0, (word_position -2));
        real zahl = daten.ToFloat();
        dom.GetObject("W_Temperatur").State(zahl);
 
        string word = "relative_humidity";
        integer word_laenge = word.Length();
        integer word_position = wetter_xml.Find(word);
        string daten = wetter_xml.Substr((word_position + word_laenge +1), 100);
        integer word_position = daten.Find(word);
        daten = daten.Substr(0, (word_position -2));
        integer zahl = daten.ToFloat();
        dom.GetObject("W_Luftfeuchte").State(zahl);
 
        string word = "wind_string";
        integer word_laenge = word.Length();
        integer word_position = wetter_xml.Find(word);
        string daten = wetter_xml.Substr((word_position + word_laenge +1), 100);
        integer word_position = daten.Find(word);
        daten = daten.Substr(0, (word_position -2));
        dom.GetObject("W_Windbedingungen").State(daten);
 
        string word = "wind_dir";
        integer word_laenge = word.Length();
        integer word_position = wetter_xml.Find(word);
        string daten = wetter_xml.Substr((word_position + word_laenge +1), 100);
        integer word_position = daten.Find(word);
        daten = daten.Substr(0, (word_position -2));
        word_laenge =daten.Length();
        string anfangsbuchstabe = daten.Substr(0,1);
        ! Umlaute korrigieren
        !
        ! N # Nord ***
        if (anfangsbuchstabe == "N") {
           !
            if (daten == "Nordwest") {daten = "Nord-West" ;}
        }
 
        ! S # Süd ***
        if (anfangsbuchstabe == "S") {
           ! 4 # Süd
           if (word_laenge == 4)  {daten = "Süd";}
           ! 8 # Südwest
           if (word_laenge == 8)  {daten = "Süd-West";}
           ! 12 # Süd-Südost
           if (word_laenge == 12) {daten = "Süd-Süd-Ost" ;}
             ! 13
           if (word_laenge == 13) {daten = "Süd-Süd-West" ;}
        }
 
        ! W # Westen
        if (anfangsbuchstabe == "W") {
           ! 13 # West-Südwest
            if (word_laenge == 13) {daten = "West-Süd-West" ;}
        }
 
        ! O # Osten
        if (anfangsbuchstabe == "O") {
           ! 11 # Ost-Südost
           if (word_laenge == 11) {daten = "Ost-Süd-Ost" ;}
        }
        dom.GetObject("W_Windrichtung").State(daten);
        !WriteLine(daten);
 
 
        string word = "wind_degrees";
        integer word_laenge = word.Length();
        integer word_position = wetter_xml.Find(word);
        string daten = wetter_xml.Substr((word_position + word_laenge +1), 100);
        integer word_position = daten.Find(word);
        daten = daten.Substr(0, (word_position -2));
        integer zahl = daten.ToFloat();
        dom.GetObject("W_Windrichtg").State(zahl);
 
        string word = "wind_kph";
        integer word_laenge = word.Length();
        integer word_position = wetter_xml.Find(word);
        string daten = wetter_xml.Substr((word_position + word_laenge +1), 100);
        integer word_position = daten.Find(word);
        daten = daten.Substr(0, (word_position -2));
        integer zahl = daten.ToFloat();
        dom.GetObject("W_Windgeschwindigkeit").State(zahl);
 
        string word = "wind_gust_kph";
        integer word_laenge = word.Length();
        integer word_position = wetter_xml.Find(word);
        string daten = wetter_xml.Substr((word_position + word_laenge +1), 100);
        integer word_position = daten.Find(word);
        daten = daten.Substr(0, (word_position -2));
        integer zahl = daten.ToFloat();
        dom.GetObject("W_Windboeen").State(zahl);
 
        string word = "pressure_mb";
        integer word_laenge = word.Length();
        integer word_position = wetter_xml.Find(word);
        string daten = wetter_xml.Substr((word_position + word_laenge +1), 100);
        integer word_position = daten.Find(word);
        daten = daten.Substr(0, (word_position -2));
        integer zahl = daten.ToFloat();
        dom.GetObject("W_Luftdruck").State(zahl);
 
        string word = "pressure_trend";
        integer word_laenge = word.Length();
        integer word_position = wetter_xml.Find(word);
        string daten = wetter_xml.Substr((word_position + word_laenge +1), 100);
        integer word_position = daten.Find(word);
        daten = daten.Substr(0, (word_position -2));
        dom.GetObject("W_Luftdrucktrend").State(daten);
 
        string word = "dewpoint_c";
        integer word_laenge = word.Length();
        integer word_position = wetter_xml.Find(word);
        string daten = wetter_xml.Substr((word_position + word_laenge +1), 100);
        integer word_position = daten.Find(word);
        daten = daten.Substr(0, (word_position -2));
        real zahl = daten.ToFloat();
        dom.GetObject("W_Taupunkt").State(zahl);
 
        string word = "UV";
        integer word_laenge = word.Length();
        integer word_position = wetter_xml.Find(word);
        string daten = wetter_xml.Substr((word_position + word_laenge +1), 100);
        integer word_position = daten.Find(word);
        daten = daten.Substr(0, (word_position -2));
        real zahl = daten.ToFloat();
        dom.GetObject("W_UV").State(zahl);
leider füllen sich die entsprechenden Variablen nicht. Im Status stehen immer ??? und mehr nicht.

Könnt Ihr mir hier weiterhelfen?

Konfiguration:
- CCU 2
- CuxD in der aktuellen Version installiert
- über WebUI erstelltes Programm das alle 30 Minuten das obige Script abfragt

Bitte verzeiht mir falls ich mich an einem Punkt falsch ausgedrückt haben sollte oder Infos nun doppelt im Thread vorhanden sind.

Danke euch für die Infos.

Re: Aktuelles Wetter über wunderground.com

Verfasst: 26.08.2015, 20:00
von tesso
Hast du auch das Gerät CUX2801001 erstellt?

Manchmal hilft das komplette Lesen eines Threads ungemein.

Re: Aktuelles Wetter über wunderground.com

Verfasst: 26.08.2015, 21:47
von Pharao50
Ja das Gerät ist angelegt. In der angelegten Fernbediedung ist auch unter dem Punkt KEY|CMD_SHORT der API Link hinterlegt worden

Re: Aktuelles Wetter über wunderground.com

Verfasst: 15.10.2015, 20:29
von Rene_HM
Der Server von http://api.wunderground.com scheint down zu sein? oder bekommt ihr noch Wetterdaten?

Re: Aktuelles Wetter über wunderground.com

Verfasst: 16.10.2015, 07:41
von AndiN
War down. Hatte auch alle 5 Minuten eine Fehlermeldung im Log, weil die Daten nicht kamen. Aber jetzt läuft es wieder ;-)

Andi

Re: Aktuelles Wetter über wunderground.com

Verfasst: 17.10.2015, 10:28
von Rene_HM
Ja, geht auch bei mir wieder...

Re: Aktuelles Wetter über wunderground.com

Verfasst: 29.11.2015, 23:13
von fliegerx1
Hallo zusammen,

habe mich dort angemeldet finde aber den Key nicht.
Kann mir einer dabei helfen?

Suche Wetter für Wuppertal Berglehne.

Wie ist der Link mit dem Key

Vielen Dank