WETTER Vorhersage mit Wunderground

Haussteuerung mittels mediola

Moderator: Co-Administratoren

33zdenko
Beiträge: 343
Registriert: 21.12.2013, 16:50
Danksagung erhalten: 4 Mal

Re: WETTER Vorhersage mit Wunderground

Beitrag von 33zdenko » 06.05.2017, 15:17

versuche das im script:

Code: Alles auswählen

        !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();

      
so zu ersetzen, mit ausrufezeichen davor zu ersetzen:

Code: Alles auswählen

        !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();

      
und dann diesen teil danach einzufügen:

Code: Alles auswählen

  !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);
am besten das geänderte script mit script testen, ausprobieren (Programme & Zentraleverknüpfungen).

djangp
Beiträge: 166
Registriert: 11.09.2014, 10:43
Wohnort: Bayern
Hat sich bedankt: 3 Mal

Re: WETTER Vorhersage mit Wunderground

Beitrag von djangp » 15.05.2017, 20:22

Hat leider nichts geändert.
Hier mal mein kpl. Script

Code: Alles auswählen

!Folgende Systemvariablen anlegen:
!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/XXXAPIXXXX/forecast/lang:DL/q/pws:XXXORTXXX.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("forecast");
wetter_xml = wetter_xml.Substr(wort_position, (laenge - wort_position));

!Daten mit Suchworten aus XML-File ausfiltern:
string word = "title";
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("WetterFct_Tag").State(daten);

string word = "icon";
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));
string daten2 = daten;
dom.GetObject("WetterFct_Condition").State(daten);

string word = "icon_url";
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 = "</div><img src=\"" + daten + "\" alt=\"" + daten2 + "\">";
dom.GetObject("WetterFct_Icon").State(daten);

string word = "fcttext_metric";
integer word_laenge = word.Length();
integer word_position = wetter_xml.Find(word);
string daten = wetter_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);

string word = "celsius";
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("WetterFct_TempMax").State(zahl);

string word = "pop";
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("WetterFct_Pop").State(zahl);

string word = "date";
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));
string daten2 = daten;
dom.GetObject("WetterFct_Zeit").State(daten);
RaspberryMatic auf RPi 3 - AIO Creator NEO

33zdenko
Beiträge: 343
Registriert: 21.12.2013, 16:50
Danksagung erhalten: 4 Mal

Re: WETTER Vorhersage mit Wunderground

Beitrag von 33zdenko » 16.05.2017, 09:44

Etwas machst du falsch:
entweder sind deine variablen falsch angelegt, sollen ohne den ausrufezeichen in ccu angelegt werden:
so:

Code: Alles auswählen

WetterFct_Tag
und nicht so:

Code: Alles auswählen

!WetterFct_Tag
oder deine url ist falsch
diese sollte so lauten:

Code: Alles auswählen

http://api.wunderground.com/api/apikey/forecast/lang:DL/q/pws:STATION.xml"
wichtig ist das hinter pws:

Code: Alles auswählen

INORDRHE799.xml
das ist für Leer Niedersachsen
die station findest du in dem du auf wunderground seite, den ort eintippst
z.b. Hamburg, Germany
dann oben auf change station, wie im bild
Bildschirmfoto 2017-05-16 um 09.38.22.png
Bildschirmfoto 2017-05-16 um 09.38.22.png (18.97 KiB) 2368 mal betrachtet
Bildschirmfoto 2017-05-16 um 09.38.41.png
und dann z.b. diese auswählst:
IHAMBURG2082
dann hast du oben in der url möglichkeit diese zu kopieren und in dein code, bei STATION einzufügen
api key im code anpassen und wie gesagt die STATION in der url so zu ersetzen IHAMBURG2082
für deine stadt auch anpassen.
Ist mir nicht klar warum du in der url deine stadt verbirgst :)
Das script funktioniert wenn die variablen richtig angelegt sind, dein api key funktioniert und in der url im code hinter pws:
die station angegeben ist, wie ich oben beschrieben habe.

djangp
Beiträge: 166
Registriert: 11.09.2014, 10:43
Wohnort: Bayern
Hat sich bedankt: 3 Mal

Re: WETTER Vorhersage mit Wunderground

Beitrag von djangp » 16.05.2017, 18:59

Hallo vielen Dank für Deine Rückmeldung. Die Variablen sollten korrekt angelegt sein. Siehe Screenshot.
Der Link mit der API sollte auch funktionieren, da dieser direkt im Browser Werte ausgibt.
Dateianhänge
Screenshot_Wetter2.png
Screenshot_Wetter.png
RaspberryMatic auf RPi 3 - AIO Creator NEO

33zdenko
Beiträge: 343
Registriert: 21.12.2013, 16:50
Danksagung erhalten: 4 Mal

Re: WETTER Vorhersage mit Wunderground

Beitrag von 33zdenko » 16.05.2017, 19:18

Da kann ich dir auch nicht helfen
Das script geht so wie du es gepostet hast.
Die url habe ich dir beschrieben.
Viel erfolg!

dondaik
Beiträge: 12924
Registriert: 16.01.2009, 18:48
Wohnort: Steingaden
Hat sich bedankt: 1597 Mal
Danksagung erhalten: 222 Mal

Re: WETTER Vorhersage mit Wunderground

Beitrag von dondaik » 16.05.2017, 19:31

sind ALLE variablen angelegt ? ... und wie wird das ganze gestartet ( ggf habe ich das auch übersehen )

und der Vari-type ist auch richtig ?? ... ja ja ...
-------
!!! der download der handbüchern auf den seiten von eq3 und das lesen der tips und tricks kann das hm-leben sehr erleichtern - das nutzen der suche nach schlagworten ebenso :mrgreen: !!!
wer schreibfehler findet darf sie behalten.

djangp
Beiträge: 166
Registriert: 11.09.2014, 10:43
Wohnort: Bayern
Hat sich bedankt: 3 Mal

Re: WETTER Vorhersage mit Wunderground

Beitrag von djangp » 16.05.2017, 20:26

Jetzt habe ich es hinbekommen. Es lag an einem Buchstaben in der Variablen "WetterFct_Tag"
RaspberryMatic auf RPi 3 - AIO Creator NEO

33zdenko
Beiträge: 343
Registriert: 21.12.2013, 16:50
Danksagung erhalten: 4 Mal

Re: WETTER Vorhersage mit Wunderground

Beitrag von 33zdenko » 16.05.2017, 20:38

Im script sind 7 variablen anzulegen, in deinem screenshot nur 6.
Also das ist doch einfach zu prüfen...

djangp
Beiträge: 166
Registriert: 11.09.2014, 10:43
Wohnort: Bayern
Hat sich bedankt: 3 Mal

Re: WETTER Vorhersage mit Wunderground

Beitrag von djangp » 16.05.2017, 20:59

Super dankeschön.
Funktioniert jetzt - aber was hat das nun mit einer Vorhersage zu tun?
Es wird mir hier nur der heute Tag angezeigt. Viel wichtiger für eine Vorhersage
wäre ja mind. der nächste Tag?
Dateianhänge
Screenshot_Vorhersage.png
RaspberryMatic auf RPi 3 - AIO Creator NEO

33zdenko
Beiträge: 343
Registriert: 21.12.2013, 16:50
Danksagung erhalten: 4 Mal

Re: WETTER Vorhersage mit Wunderground

Beitrag von 33zdenko » 16.05.2017, 21:27

Du musst das xml file untersuchen und gucken ob da was für nächsten tag kommt. Dann einfach im script ändern...
Ich schaue mir das morgen an.

Antworten

Zurück zu „mediola“