leider habe ich seit einiger Zeit ein Problem. Untenstehender Programmcode funktioniert nicht mehr.
Ich kann leider nicht mehr nachvollziehen seit welchem Update, da ich die Bewässerung über den Winter nicht genutzt habe.
Ich versuche mit folgenden Befehlen eine Webseite auszulesen. (gesamtes Script unten)
dom.GetObject("CUxD.CUX2801002:9.CMD_SETS").State("wget -O - '"#url#"'");
dom.GetObject("CUxD.CUX2801002:9.CMD_QUERY_RET").State(1);
var wetter_history = dom.GetObject("CUxD.CUX2801002:9.CMD_RETS").State();
Meine derzeitigen Versionen:
CUXD 1.6
CCU2 2.13.7
Am Script habe ich nichts geändert!
Leider bekomme ich in die Variable wetter_history keinen Wert zurück geschrieben.
Die URL wird generiert und liefert im Browser auch Werte zurück.
In CUXD wird auch geschrieben:z.B für heute.: https://deutsch.wunderground.com/histor ... =&format=1
CUXD LOG:CUX2801002:9 rmax(65535) t(3600s) p(0)
KEY-SHORT CMD_SHORT(wget -O - 'https://deutsch.wunderground.com/histor ... =&format=1')
Ich hoffe mir kann jemand helfen???? Was mache ich falsch oder was ist anders als früher?May 30 20:13:03 homematic-ccu2 daemon.info cuxd[14762]: pclose(wget -O - 'https://deutsch.wunderground.com/histor ... =&format=1') exit
Script:
Code: Alles auswählen
!Auswertung der Historie Werte von Wunderground als Grundlage zur Berechnung des Regenzeitpunktes und der !Beregungsdauer
!Grundlage : Regennmenge der letzten 7 Tagen auslesen.
!Abruf der Historydaten der letzten 7 Tage und schreiben in String
integer timestamp = system.Date("%F %X").ToTime().ToInteger();!Zur Berechnung des Tag vor einer Woche
integer sDay = system.Date("%d");!Erzeugen des Datums Heute Tag zur Abfrage
integer sMonth = system.Date("%m");!Erzeugen des Datums Heute Monat zur Abfrage
integer sYear = system.Date("%Y");!Erzeugen des Datums Heute Year zur Abfrage
integer beginn = 7;!Anzahl der Tage die abgerufen werden sollen.
!Berechnung des Tages vor einer Woche
integer laWeek=timestamp-(beginn*24*60*60);
!Umwandeln laWeek in Datum der vor 7Tagen
string laWeDa = laWeek.ToTime().Format("%Y/%m/%d");
string url="https://deutsch.wunderground.com/history/airport/ETOU/"+laWeDa+"/CustomHistory.html?dayend="+sDay+"&monthend="+sMonth+"&yearend="+sYear+"&req_city=&req_state=&req_statename=&reqdb.zip=&reqdb.magic=&reqdb.wmo=&format=1";
dom.GetObject("CUxD.CUX2801002:9.CMD_SETS").State("wget -O - '"#url#"'");
dom.GetObject("CUxD.CUX2801002:9.CMD_QUERY_RET").State(1);
var wetter_history = dom.GetObject("CUxD.CUX2801002:9.CMD_RETS").State();
WriteLine(wetter_history);
!Zerlegen in Zeilen
string ersteZeile = wetter_history.StrValueByIndex("br /", 1); !Zeile vor 7 Tagen
string zweiteZeile = wetter_history.StrValueByIndex("br /", 2); !Zeile vor 6 Tagen
string dritteZeile = wetter_history.StrValueByIndex("br /", 3); !Zeile vor 5 Tagen
string vierteZeile = wetter_history.StrValueByIndex("br /", 4); !Zeile vor 4 Tagen
string fuenfteZeile = wetter_history.StrValueByIndex("br /", 5); !Zeile vor 3 Tagen
string sechsteZeile = wetter_history.StrValueByIndex("br /", 6); !Zeile vor 2 Tagen
string siebteZeile = wetter_history.StrValueByIndex("br /", 7); !Zeile vor 1 Tag
string achteZeile = wetter_history.StrValueByIndex("br /", 8); !Zeile vor Heute
!Auslesen der Werte aus den einzelnen Zeilen zum Berechnen der Regenmenge
!Werte aus Zeile auslesen und in Systemvariablen neu setzen;
!daten = daten.Substr(0, (word_position -2));
!dom.GetObject("Wetter_Windbedingungen").State(daten);
real regenHeute= achteZeile.StrValueByIndex(",", 19).ToFloat();
dom.GetObject("Regenmenge_Heute").State(regenHeute);
real regenGestern= siebteZeile.StrValueByIndex(",", 19).ToFloat();
dom.GetObject("Regenmenge_Gestern").State(regenGestern);
real regenv2 = sechsteZeile.StrValueByIndex(",", 19).ToFloat();
dom.GetObject("Regenmenge_vor_2Tagen").State(regenv2);
real regenv3 = fuenfteZeile.StrValueByIndex(",", 19).ToFloat();
dom.GetObject("Regenmenge_vor_3Tagen").State(regenv3);
real regenv4 = vierteZeile.StrValueByIndex(",", 19).ToFloat();
dom.GetObject("Regenmenge_vor_4Tagen").State(regenv4);
real regenv5= dritteZeile.StrValueByIndex(",", 19).ToFloat();
dom.GetObject("Regenmenge_vor_5Tagen").State(regenv5);
real regenv6= zweiteZeile.StrValueByIndex(",", 19).ToFloat();
dom.GetObject("Regenmenge_vor_6Tagen").State(regenv6);
real regenv7= ersteZeile.StrValueByIndex(",", 19).ToFloat();
dom.GetObject("Regenmenge_vor_7Tagen").State(regenv7);
!Gesamtregenmenge der letzen 7 Tage
real regenWoche = (regenHeute+regenGestern+regenv2+regenv3+regenv4+regenv5+regenv6+regenv7);
dom.GetObject("Regensumme_Woche").State(regenWoche);
!Gesamtregenmenge der letzen 4 Tage
real regen4days = (regenHeute+regenGestern+regenv2+regenv3+regenv4);
dom.GetObject("Regensumme_4Tage").State(regen4days);