Wunderground Wetter mit einfachem HM-Skript holen

User stellen ihre Haussteuerung vor

Moderator: Co-Administratoren

MartinBr
Beiträge: 393
Registriert: 25.01.2017, 10:51
Wohnort: Bei Berlin
Hat sich bedankt: 3 Mal
Danksagung erhalten: 8 Mal

Re: Wunderground Wetter mit einfachem HM-Skript holen

Beitrag von MartinBr » 17.01.2018, 16:48

Hallo,

mein Vorschlag ist: Zuerst mal die Systemvariablen prüfen. Danach die Wetterstation wechseln.

Gruß

Martin
RaspberryMatic-3.59.6 auf Tinkerboard S, CUxD 2.6, XML-1.20, ioBroker (HM,HMIP, Zigbee, Zwave und Shelly) und Alexa in einer VM unter Proxmox, VitoComfort 200

lilu24
Beiträge: 50
Registriert: 04.01.2018, 07:55

Re: Wunderground Wetter mit einfachem HM-Skript holen

Beitrag von lilu24 » 17.01.2018, 17:10

Habe ich beides schon gemacht aber dennoch nur einige Werte... siehe dazu auch Screenshot

Finde keine Fehler... Komisch
Dateianhänge
screen.JPG

lilu24
Beiträge: 50
Registriert: 04.01.2018, 07:55

Re: Wunderground Wetter mit einfachem HM-Skript holen

Beitrag von lilu24 » 17.01.2018, 19:39

Fehler gefunden !!! Hatte eine Systemvariable vergessen.

Wie kann man denn die Werte auch schön in einer App darstellen lassen?

Benutzeravatar
joni-blue
Beiträge: 1171
Registriert: 04.01.2012, 12:20
System: CCU
Wohnort: Hannover
Hat sich bedankt: 6 Mal
Danksagung erhalten: 1 Mal

Re: Wunderground Wetter mit einfachem HM-Skript holen

Beitrag von joni-blue » 18.01.2018, 21:33

Kann man mit dem Wunderground auch Unwetter Warnungen für seine Region bekommen?


Gesendet von iPhone mit Tapatalk
Reboot tut gut ! ! !

lilu24
Beiträge: 50
Registriert: 04.01.2018, 07:55

Re: Wunderground Wetter mit einfachem HM-Skript holen

Beitrag von lilu24 » 19.01.2018, 14:41

tibid hat geschrieben:So, hier nun meine Lösung, aber dieses Programm macht nur die Wettervorhersage (forecast), ohne die aktuellen Wetterdaten (conditions). Achtung, ich verwende auch andere Variablen, dann erscheinen unter "Variable" im WebUI alle Wettervorhersagevariablen zusammen und nicht gemischt mit den aktuellen Wetterdaten.
Ich lasse dieses mehrmals am Tag laufen, im Moment stündlich.

Die Variablen sind im Code beschrieben.

Ganz cool ist natürlich die Variable WetterFct_Icon, welche die URL zum Pictogramm enthält, dieses wird dann sowohl im Ereignisprotokoll, als auch unter "Systemvariable" als Bild angezeigt :)
API-Key, Land und Ort nicht vergessen einzufügen!

Dirk, der Wettervorhersagetext kann ziemlich lang werden, habe diesen Teil angepasst.

Volkmar, statt Sonnenscheindauer, könnte man etwas aus Wetterbedingung (z.B. wenn "clear"), Regenwahrscheinlichkeit (z.B. <= 20%) und/oder Tageshöchsttemperatur ableiten.

Code: Alles auswählen


    var url = "http://api.wunderground.com/api/<API-Key>/forecast/lang:EN/q/<Land>/<Ortschaft>.xml";
    !zuerst folgende Systemvariablen anlegen
    !Achtung: keine vergessen und exakte Schreibweise mit Drag&Drop
    !WetterFct_Tag                        Zeichenkette -> Forecast fuer welchen Wochentag
    !WetterFct_Condition               Zeichenkette -> Forecast Wetterbedingung
    !WetterFct_Icon                       Zeichenkette -> Forecast URL zu Pictogramm (zeigt Bild im Protokoll / Systemvariablen)
    !WetterFct_Text                       Zeichenkette -> Forecast Text (max 200 Zeichen)
    !WetterFct_TempMax               Zahl         °C -> Forecast Maximale Temperatur
    !WetterFct_Pop                        Zahl          % -> Forecast Regenwahrscheinlichkeit (probability of precipation)
    !WetterFct_Zeit                       Zeichenkette -> Forecast erstellt um diese Zeit

var url = "http://api.wunderground.com/api/<API-Key>/forecast/lang:EN/q/<Land>/<Ortschaft>.xml";
!Beispiele:
!    var url = "http://api.wunderground.com/api/<API-Key>/forecast/lang:EN/q/Switzerland/Neuhausen.xml";
!Sprache: Deutsch
!    var url = "http://api.wunderground.com/api/<API-Key>/forecast/lang:DL/q/Switzerland/Neuhausen.xml";
!Spezifische PWS-Wetterstation:
!    var url = "http://api.wunderground.com/api/<API-Key>/forecast/lang:EN/q/pws:ISCHAFFH8.xml";
!Spezifische Flughafen-Wetterstation:
!    var url = "http://api.wunderground.com/api/<API-Key>/forecast/lang:EN/q/LSZH.xml";

    !hier ist die Abfrage mit CUxD (wenn kein CUxD, die 3 Zeilen unten auskommentieren und system.Exec einschalten)
    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 (nur ohne CUxD verwenden)
    !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 die bereiche "txt_forecast" und "simpleforecast" isolieren
    integer laenge = wetter_xml.Length();
!finde Position für "txt_forecast"
    integer wort_txt_fcst_position = wetter_xml.Find("txt_forecast");
!finde Position für "simpleforecast"
    integer wort_simplefcst_position = wetter_xml.Find("simpleforecast");
!isoliere "txt_forecast"
string wetter_txtfct_xml = wetter_xml.Substr(wort_txt_fcst_position, (wort_simplefcst_position - wort_txt_fcst_position));
!isoliere "simpleforecast"
string wetter_simplefct_xml = wetter_xml.Substr(wort_simplefcst_position, (laenge - wort_simplefcst_position));
!WriteLine("TXT_Forecast:--------------------------");
!    WriteLine(wetter_txtfct_xml);
!WriteLine("Simpleforecast:--------------------------");
!    WriteLine(wetter_simplefct_xml);


    !Daten mit Suchworten aus XML-File ausfiltern:

!Setze WetterFct_Zeit: Suche in txt_forecast nach "date" (einmalig)
        string word = "date";
        integer word_laenge = word.Length();
        integer word_position = wetter_txtfct_xml.Find(word);
        string daten = wetter_txtfct_xml.Substr((word_position + word_laenge + 1), 100);
        integer word_position = daten.Find(word);
        daten = daten.Substr(0, (word_position-2));
        dom.GetObject("WetterFct_Zeit").State(daten);
!        WriteLine("Zeit:");
!        WriteLine(daten);

!Hole Daten aus "txt_forecast"-------------------------

!Setze WetterFct_Tag: Suche in txt_forecast nach "title"
        string word = "title";
        integer word_laenge = word.Length();
        integer word_position = wetter_txtfct_xml.Find(word);
        string daten = wetter_txtfct_xml.Substr((word_position + word_laenge + 1), 100);
        integer word_position = daten.Find(word);
        daten = daten.Substr(0, (word_position-2));
        dom.GetObject("WetterFct_Tag").State(daten);
!        WriteLine("Tag:");
!        WriteLine(daten);

!Setze WetterFct_Condition: Suche in txt_forecast nach "icon"
	string word = "icon";
        integer word_laenge = word.Length();
        integer word_position = wetter_txtfct_xml.Find(word);
        string daten = wetter_txtfct_xml.Substr((word_position + word_laenge + 1), 100);
        integer word_position = daten.Find(word);
        daten = daten.Substr(0, (word_position-2));
!Zwischenspeichern der WetterFct_Condition fuer den Icon alt-text
        string daten2 = daten;
        dom.GetObject("WetterFct_Condition").State(daten);
!        WriteLine("Condition:");
!        WriteLine(daten);

!Setze WetterFct_Icon: Suche in txt_forecast nach "icon_url"
	string word = "icon_url";
        integer word_laenge = word.Length();
        integer word_position = wetter_txtfct_xml.Find(word);
        string daten = wetter_txtfct_xml.Substr((word_position + word_laenge + 1), 100);
        integer word_position = daten.Find(word);
        daten = daten.Substr(0, (word_position-2));
!daten2 von WetterFct_Condition 
       daten = "</div><img src=\"" + daten + "\" alt=\"" + daten2 + "\">";
        dom.GetObject("WetterFct_Icon").State(daten);
!        WriteLine("Icon:");
!        WriteLine(daten);

!Setze WetterFct_Text: Suche in txt_forecast nach "fcttext_metric"
        string word = "fcttext_metric";
        integer word_laenge = word.Length();
        integer word_position = wetter_txtfct_xml.Find(word);
        string daten = wetter_txtfct_xml.Substr((word_position + word_laenge + 1 + 9), 200);
        integer word_position = daten.Find(word);
        daten = daten.Substr(0, (word_position-5));
        dom.GetObject("WetterFct_Text").State(daten);
!        WriteLine("Text:");
!        WriteLine(daten);

!Setze WetterFct_Pop: Suche in txt_forecast nach "pop"
        string word = "pop";
        integer word_laenge = word.Length();
        integer word_position = wetter_txtfct_xml.Find(word);
        string daten = wetter_txtfct_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("WetterFct_Pop").State(zahl);
!        WriteLine("Pop:");
!        WriteLine(zahl);

!Hole Daten aus "simpleforecast"-------------------------

!Setze WetterFct_TempMax: Suche in simpleforecast nach "celsius"
        string word = "celsius";
        integer word_laenge = word.Length();
        integer word_position = wetter_simplefct_xml.Find(word);
        string daten = wetter_simplefct_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("WetterFct_TempMax").State(zahl);
!        WriteLine("TempMax:");
!        WriteLine(zahl);
Sieht dann so aus:
WetterFct.png
Gruss,
Tibid
Hallo, hat jemand auch ne Lösung wie ich nicht nur den nächsten Tag abrufen kann. Soweit ich es es sehe, ist bei diesem Script nur die Abfrage des aktuellen Tages als Vorschau vorgesehen. Mich würde aber eher der nächste oder übernächste Tag interessieren.

Gruß Andy

mguenther
Beiträge: 58
Registriert: 12.02.2018, 03:13
Hat sich bedankt: 2 Mal
Danksagung erhalten: 1 Mal

Re: Wunderground Wetter mit einfachem HM-Skript holen

Beitrag von mguenther » 12.02.2018, 03:44

Hallo Zusammen,
bin am verzweifeln und brauche eure Unterstützung. Ich wende seit kurzer Zeit homematic an, habe hier schon eine Menge gelesen, bin aber dennoch ziemlich am Anfang. Ich versuche dieses Skript zu nutzen, habe auch alle Posts hier gelesen und die Ratschläge x-Mal durchgekaut und angewandt. Ich finde meinen Fehler nicht.

Ich hatte zuerst den CUx-Daemon nicht am Laufen, da bekam ich auch Wetterdaten der Station. Nach installieren des CUx-Daemons bekomme ich nur noch "0" oder nix als Variableneintrag. Selbst wenn ich jetzt aber wieder die Zeilen für den CUx-Daemon auskommentiere und die entsprechenden anderen Zeilen für system.Exec aktiviere, bekomme ich keine Auswertung mehr!?!?!?

hier mein Quellcode (copy&paste von erster Seite) - ich habe meine Parameter entsprechend angepasst:

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
            !Wetter_Station                        Zeichenkette
            !Wetter_Aktualisierung             Zeichenkette
            !Wetter_Bedingungen               Zeichenkette
            !Wetter_Temperatur                  Zahl                     °C
            !Wetter_Luftfeuchte                  Zahl                      %
            !Wetter_Windbedingungen       Zeichenkette
            !Wetter_Windrichtung               Zeichenkette
            !Wetter_Windrichtg                   Zahl                       °
            !Wetter_Windgeschwindigkeit   Zahl                     km/h
            !Wetter_Windboeen                  Zahl                     km/h
            !Wetter_Luftdruck                      Zahl                      mb
            !Wetter_Luftdrucktrend             Zeichenkette
            !Wetter_Taupunkt                      Zahl                     °C
            !Wetter_UV                                Zeichenkette

            var url = "http://api.wunderground.com/api/XXXXXXXXXXXXX/conditions/lang:DL/q/Germany/Uhry.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("Wetter_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("Wetter_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("Wetter_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("Wetter_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("Wetter_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("Wetter_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("Wetter_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("Wetter_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("Wetter_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("Wetter_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("Wetter_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("Wetter_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("Wetter_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("Wetter_UV").State(zahl);
Ich habe als Dateien noch folgende Bilder angefügt:
-Erstellung/Übersicht der Variablen
-Screenshot meiner Wetterstationdaten im Browser
-CUx-Daemon Einstellung
-CUx-Daemon Protokoll (Syslog)

Ich habe auch ein externen Skript-Tester am Laufen gehabt und an verschiedenen Stellen "Hallo Welt" versteckt - es läuft durch...

Hat einer bitte die Nerven und kann mir helfen? Ich komme nicht mehr weiter...

Ich rufe aus Test-Zwecken alle 30sec meine Wetterstation automatisch ab, wenn es mal irgendwann funktioniert, setze ich das Intervall auf 30min.

Gruß,
Marcus
Dateianhänge
CUx_Proto.PNG
CUx-Daemon SYSLOG
CUx_Param.PNG
CUx-Daemon Einstellungen
Wetterstation.PNG
Übersicht Wetterstation im Browser
Variablen.PNG
angelegte Variablen
------
DANKE!

Emsländer
Beiträge: 2
Registriert: 13.02.2018, 16:15

Re: Wunderground Wetter mit einfachem HM-Skript holen

Beitrag von Emsländer » 13.02.2018, 16:23

Hallo zusammen,

gibt es, eventuell habe ich es auch übersehen, irgendwo eine Zusammenstellung für die Wetterbedingungen ?
Also für W_Bedingungen die einzelnen Status anzeigen ? Heiter bedeckt etc. ?
Wäre ganz interessant für die Mediola Einbindung von passenden Icons.

Danke schon mal für Eure Antworten.

PaulM
Beiträge: 315
Registriert: 16.02.2015, 17:05
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 126 Mal
Danksagung erhalten: 35 Mal

Re: Wunderground Wetter mit einfachem HM-Skript holen

Beitrag von PaulM » 13.02.2018, 16:35

das hatte ich mir herausgefiltert:

Heiter;Teils Wolkig;Wolkig;Bedeckt;Nebel;Nebelschwaden;Leichtes Nieseln;Leichter Regen;Regen;Leichter Regenschauer;Regenschauer;Gewitter;Leichte Gewitter mit Regenschauer;Gewitter mit Regen

Gruß
Paul
Mit Mut und Entschlossenheit gegen Intoleranz

mguenther
Beiträge: 58
Registriert: 12.02.2018, 03:13
Hat sich bedankt: 2 Mal
Danksagung erhalten: 1 Mal

Re: Wunderground Wetter mit einfachem HM-Skript holen

Beitrag von mguenther » 14.02.2018, 19:05

mguenther hat geschrieben:Hallo Zusammen,
bin am verzweifeln und brauche eure Unterstützung. Ich wende seit kurzer Zeit homematic an, habe hier schon eine Menge gelesen, bin aber dennoch ziemlich am Anfang. Ich versuche dieses Skript zu nutzen, habe auch alle Posts hier gelesen und die Ratschläge x-Mal durchgekaut und angewandt. Ich finde meinen Fehler nicht.

Ich hatte zuerst den CUx-Daemon nicht am Laufen, da bekam ich auch Wetterdaten der Station. Nach installieren des CUx-Daemons bekomme ich nur noch "0" oder nix als Variableneintrag. Selbst wenn ich jetzt aber wieder die Zeilen für den CUx-Daemon auskommentiere und die entsprechenden anderen Zeilen für system.Exec aktiviere, bekomme ich keine Auswertung mehr!?!?!?
[...]
Ich habe natürlich weiter herum experimentiert, hilft aber auch nicht...

Code: Alles auswählen

dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("wget -q -O -'"#url#"'");
!dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("echo '"#url#"'");
dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
string wetter_xml = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
WriteLine(wetter_xml);
Kenne mich mit Linux nicht aus, aber ich habe den obigen Code-Schnipsel ausprobiert und ich bekomme bei dem Inhalt von (wget -q -O -"'#url#"'") gar keinen Eintrag. Mit dem (echo '"#url#"') bekomme ich die URL ausgegeben. Kann das das Problem sein? Ich weiß es sonst nicht...

Gruß,
Marcus
------
DANKE!

Benutzeravatar
Jimbaem
Beiträge: 91
Registriert: 19.12.2014, 19:03
Wohnort: Schuttertal
Hat sich bedankt: 3 Mal
Danksagung erhalten: 3 Mal

Re: Wunderground Wetter mit einfachem HM-Skript holen

Beitrag von Jimbaem » 15.02.2018, 16:52

Emsländer hat geschrieben:Hallo zusammen,

gibt es, eventuell habe ich es auch übersehen, irgendwo eine Zusammenstellung für die Wetterbedingungen ?
Also für W_Bedingungen die einzelnen Status anzeigen ? Heiter bedeckt etc. ?
Wäre ganz interessant für die Mediola Einbindung von passenden Icons.

Danke schon mal für Eure Antworten.
PaulM hat geschrieben:das hatte ich mir herausgefiltert:

Heiter;Teils Wolkig;Wolkig;Bedeckt;Nebel;Nebelschwaden;Leichtes Nieseln;Leichter Regen;Regen;Leichter Regenschauer;Regenschauer;Gewitter;Leichte Gewitter mit Regenschauer;Gewitter mit Regen

Gruß
Paul
Also so mache ich das auch.
Die aktuellen Wetterdaten bekomme ich vom Weatherman und die Vorschau der nächsten 3 Tage hole ich mir alle 2 Std. von Weather Underground.
Die Abfrage findet mittels "Forecast" Argument statt und das Ergebnis wird in ein xml-File gespeichert. Daraus hole ich mir nur die Daten welche ich benötige und speichere diese in Systemvariablen ab. In Mediola weise ich dann die entsprechenden Statusgrafiken zu. Dazu verwende ich diese Icons https://vclouds.deviantart.com/art/VClo ... -179152045 und benenne diese dann wie PaulM geschrieben hat um.

Im Anhang mal ein Beispiel, ist aber noch nicht ganz fertig :D

Gruß
Jürgen
Dateianhänge
Wetter Snapshot.jpg
RaspberryMatic 3.63.9.20220521 auf Asus Tinker Board S - Raspberry Pi4 & SSD mit Historian V3.0.2

Antworten

Zurück zu „Projektvorstellungen“