Hier habe ich ein Script gefunden, allerdings werden mir die Systemvariablen der CCU nicht mit Werten gefüllt.
Der Link selber ist funktionsfähig und liefert Werte. (wenn man die X= API und Y=ORT durch die richtigen Werte ersetzt)
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/XXXXAPIXXX/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();
!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);