Seite 17 von 18

Re: Wettervorhersage mit wetter.com

Verfasst: 27.07.2017, 14:37
von BausatzFan
Hi Alchy,

ich habe die Vermutung, dass wetter.com bei mir doch noch funktioniert, und dass der Fehler irgendwo bei mir liegt. Denn wenn ich den Link im Skript mit meiner API, dem City Code und dem Projektnamen im IE ausführe, bekomme ich eine JSON Datei mit Werten!

In der JSON Datei steht:

Code: Alles auswählen

{"city":{"city_code":"DE00058xx","name":"mein Wohnort","url":"deutschland/mein Wohnort/DE00058xx.html","credit":{"info":"In order to use the free weather data from wetter.com you HAVE TO display at least two out of three of the following possibilities: text, link, logo","text":"Powered by wetter.com","link":"http:\/\/www.wetter.com","logo":"Download at http:\/\/www.wetter.com\/api\/downloads\/#logos"},"forecast":{"2017-07-27":{"p":"24","w":"2","tx":"20","tn":"13","d":"1501135200","06:00":{"p":"5","w":"60","tx":"15","tn":"13","d":"1501135200","w_txt":"leichter Regen"},"11:00":{"p":"6","w":"2","tx":"20","tn":"15","d":"1501153200","w_txt":"wolkig"},"17:00":{"p":"6","w":"81","tx":"19","tn":"16","d":"1501174800","w_txt":"Regen - Schauer"},"23:00":{"p":"6","w":"95","tx":"16","tn":"15","d":"1501196400","w_txt":"leichtes Gewitter"},"w_txt":"wolkig"}}}}
Ich kann die Zahlen zwar nicht genau deuten, aber das Datum und leichter regen stimmt :D

Hier mein Skript, dass alle 6 Stunden ausgeführt wird.

Code: Alles auswählen

! Idtittmar entwickelt 
! von AndiN auf tmp-Variablen umgeschrieben v2.0.0 (Stand: 25.11.2015)

!-----------------------------------------------------------------------------
! Hier alle was man verändern kann/muss
! Voraussetzung: CUxD und ein Wetter.com Account
!-----------------------------------------------------------------------------

! Hier die MD5 Checksumme aus ProjektName APIKey CityCode eintragen
string tmpA = "xxx";

! Hier der City Code
string tmpB = "DE00058xx";

! Meine Projektnummer
string tmpC = "hm";

var tmpD = "CUxD.CUX2801001:10"; !CUxD Virtuelles Gerät

!Wetter heute Variablen-Namen (alles optional)
string tmpH = "Wetter_heute_zustand"; !Zahl 0 - 999
string tmpI = "Wetter_heute_tempMax"; !Zahl -50 - 50 °C
string tmpJ = "Wetter_heute_tempMin"; !Zahl -50 - 50 °C
string tmpK = "Wetter_heute_wind"; !Zahl 0 - 200 km/h
string tmpL = "Wetter_heute_zustand_txt"; !Zeichenkette
string tmpM = "Wetter_heute_regen"; !Logikwert
string tmpN = "Wetter_heute_regen_proz"; !Zahl 0 - 100 %

string tmpO = "Wetter_morgen_zustand"; !Zahl 0 - 999
string tmpS = "Wetter_morgen_tempMax"; !Zahl -50 - 50 °C
string tmpT = "Wetter_morgen_tempMin"; !Zahl -50 - 50 °C
string tmpU = "Wetter_morgen_wind"; !Zahl 0 - 200 km/h
string tmpV = "Wetter_morgen_zustand_txt"; !Zeichenkette
string tmpW = "Wetter_morgen_regen"; !Logikwert
string tmpX = "Wetter_morgen_regen_proz"; !Zahl 0 - 100 %

!-----------------------------------------------------------------------------
! Ab hier muss man nichts mehr beachten
!-----------------------------------------------------------------------------
   
string tmpE = "http://api.wetter.com/forecast/weather/city/" + tmpB +"/project/" + tmpC + "/cs/" + tmpA + "/output/json";

var stdout;
var tmpPosStart;
var tmpPosEnd;
var tmpL1;
var tmpF;
var tmpG;
var tmpY;
var tmpZ;
var tmpA1 = "\"23:00\"";
var tmpB1 = "},";

var tmpC1 = system.Date("%F");
var tmpK1= system.Date("%F ")#"00:00:00";
tmpK1 = tmpK1.ToTime().ToInteger() + 86400;
var tmpE1 = tmpK1.ToTime().Format("%F");
tmpK1 = tmpK1.ToTime().ToInteger() + 86400;
var tmpD1 = tmpK1.ToTime().Format("%F");
   
dom.GetObject(tmpD # ".CMD_SETS").State("wget -q -O - " # tmpE);
dom.GetObject(tmpD # ".CMD_QUERY_RET").State(1);
stdout = dom.GetObject(tmpD # ".CMD_RETS").State();

!-----------------------------------------------------------------------------
! Dekodierung der Umlaute
!-----------------------------------------------------------------------------
   
string tmpF1;
string tmpG1;
foreach(tmpG1, stdout.Split("Ã")){
   tmpF1 = tmpF1+ tmpG1 + "";
}
stdout = tmpF1;
tmpF1 = "";
foreach(tmpG1, stdout.Split("¤")){
   tmpF1 = tmpF1 + tmpG1 + "ä";
}
stdout = tmpF1;
tmpF1 = "";
foreach(tmpG1, stdout.Split("¶")){
   tmpF1 = tmpF1 + tmpG1 + "ö";
}
stdout = tmpF1;
tmpF1 = "";
foreach(tmpG1, stdout.Split("¼")){
   tmpF1 = tmpF1 + tmpG1 + "ü";
}
stdout = tmpF1;
tmpF1 = "";

!-----------------------------------------------------------------------------
! HEUTE
!-----------------------------------------------------------------------------

boolean tmpH1 = false;
tmpPosStart = "\"" + tmpC1 + "\":{";
tmpPosEnd = "\"" + tmpE1 + "\":{";
tmpF = stdout.Substr(stdout.Find(tmpPosStart), stdout.Find(tmpPosEnd));

!Wetterzustand
tmpG = "\"w\":\"";
tmpY = "\",";
tmpZ = tmpF.Find(tmpG) + tmpG.Length();
tmpL1 = tmpF.Substr(tmpZ, 5).StrValueByIndex(tmpY, 0);
integer tmpE = tmpL1.ToInteger();
if(dom.GetObject(tmpH).IsTypeOf(OT_VARDP)){
   dom.GetObject(tmpH).State(tmpE);
}
tmpH1 = ((tmpE > 5) && (tmpE < 10)) || (tmpE > 59);

!Maximaltemperatur
if(dom.GetObject(tmpI).IsTypeOf(OT_VARDP)){
   tmpG = "\"tx\":\"";
   tmpY = "\",";
   tmpZ = tmpF.Find(tmpG) + tmpG.Length();
   tmpL1 = tmpF.Substr(tmpZ, 5).StrValueByIndex(tmpY, 0);
   dom.GetObject(tmpI).State(tmpL1.ToInteger());
}

!Regenwahrscheinlichkeit
if(dom.GetObject(tmpN).IsTypeOf(OT_VARDP)){
   tmpG = "\"pc\":\"";
   tmpY = "\",";
   tmpZ = tmpF.Find(tmpG) + tmpG.Length();
   tmpL1 = tmpF.Substr(tmpZ, 5).StrValueByIndex(tmpY, 0);
   dom.GetObject(tmpN).State(tmpL1.ToInteger());
}

!Wird überhaupt regnen
if(dom.GetObject(tmpM).IsTypeOf(OT_VARDP)){
   if(!tmpH1){
      var tmpJ1 = "\"06:00\"";
      var tmpI1 = tmpF.Substr(tmpF.Find(tmpJ1), tmpF.Length());
      tmpG = "\"w\":\"";
      tmpY = "\",";
      tmpZ = tmpI1.Find(tmpG) + tmpG.Length();
      tmpE = tmpI1.Substr(tmpZ, 5).StrValueByIndex(tmpY, 0).ToInteger();
      tmpH1 = ((tmpE > 5) && (tmpE < 10)) || (tmpE > 59);
      if(!tmpH1){
         tmpJ1 = "\"11:00\"";
         tmpI1 = tmpF.Substr(tmpF.Find(tmpJ1), tmpF.Length());
         tmpG = "\"w\":\"";
         tmpY = "\",";
         tmpZ = tmpI1.Find(tmpG) + tmpG.Length();
         tmpE = tmpI1.Substr(tmpZ, 5).StrValueByIndex(tmpY, 0).ToInteger();
         tmpH1 = ((tmpE > 5) && (tmpE < 10)) || (tmpE > 59);
         if(!tmpH1){
            tmpJ1 = "\"17:00\"";
            tmpI1 = tmpF.Substr(tmpF.Find(tmpJ1), tmpF.Length());
            tmpG = "\"w\":\"";
            tmpY = "\",";
            tmpZ = tmpI1.Find(tmpG) + tmpG.Length();
            tmpE = tmpI1.Substr(tmpZ, 5).StrValueByIndex(tmpY, 0).ToInteger();
            tmpH1 = ((tmpE > 5) && (tmpE < 10)) || (tmpE > 59);
            if(!tmpH1){
               tmpJ1 = "\"23:00\"";
               tmpI1 = tmpF.Substr(tmpF.Find(tmpJ1), tmpF.Length());
               tmpG = "\"w\":\"";
               tmpY = "\",";
               tmpZ = tmpI1.Find(tmpG) + tmpG.Length();
               tmpE = tmpI1.Substr(tmpZ, 5).StrValueByIndex(tmpY, 0).ToInteger();
               tmpH1 = ((tmpE > 5) && (tmpE < 10)) || (tmpE > 59);      
            }
         }
      }
   }
   dom.GetObject(tmpM).State(tmpH1);
}

tmpF = tmpF.Substr(tmpF .Find(tmpA1), tmpF.Length());
tmpF = tmpF.Substr(tmpF .Find(tmpB1), tmpF.Length());

!Minimaltemperatur
if(dom.GetObject(tmpJ).IsTypeOf(OT_VARDP)){
   tmpG = "\"tn\":\"";
   tmpY = "\",";
   tmpZ = tmpF.Find(tmpG) + tmpG.Length();
   tmpL1 = tmpF.Substr(tmpZ, 5).StrValueByIndex(tmpY, 0);
   dom.GetObject(tmpJ).State(tmpL1.ToInteger());
}

!Windgeschwindigkeit
if(dom.GetObject(tmpK).IsTypeOf(OT_VARDP)){
   tmpG = "\"ws\":\"";
   tmpY = "\",";
   tmpZ = tmpF.Find(tmpG) + tmpG.Length();
   tmpL1 = tmpF.Substr(tmpZ, 5).StrValueByIndex(tmpY, 0);
   dom.GetObject(tmpK).State(tmpL1.ToInteger());
}

!Wetterzustand Text
if(dom.GetObject(tmpL).IsTypeOf(OT_VARDP)){
   tmpG = "\"w_txt\":\"";
   tmpY = "\"},";
   tmpZ = tmpF.Find(tmpG) + tmpG.Length();
   tmpL1 = tmpF.Substr(tmpZ, 20).StrValueByIndex(tmpY, 0);
   dom.GetObject(tmpL).State(tmpL1);
}


!-----------------------------------------------------------------------------
! MORGEN
!-----------------------------------------------------------------------------

tmpH1 = false;
tmpPosStart = "\"" + tmpE1 + "\":{";
tmpPosEnd = "\"" + tmpD1 + "\":{";
tmpF = stdout.Substr(stdout.Find(tmpPosStart), stdout.Find(tmpPosEnd));

!Wetterzustand
tmpG = "\"w\":\"";
tmpY = "\",";
tmpZ = tmpF.Find(tmpG) + tmpG.Length();
tmpL1 = tmpF.Substr(tmpZ, 5).StrValueByIndex(tmpY, 0);
integer tmpE = tmpL1.ToInteger();
if(dom.GetObject(tmpO).IsTypeOf(OT_VARDP)){
   dom.GetObject(tmpO).State(tmpE);
}
tmpH1 = ((tmpE > 5) && (tmpE < 10)) || (tmpE > 59);

!Maximaltemperatur
if(dom.GetObject(tmpS).IsTypeOf(OT_VARDP)){
   tmpG = "\"tx\":\"";
   tmpY = "\",";
   tmpZ = tmpF.Find(tmpG) + tmpG.Length();
   tmpL1 = tmpF.Substr(tmpZ, 5).StrValueByIndex(tmpY, 0);
   dom.GetObject(tmpS).State(tmpL1.ToInteger());
}

!Regenwahrscheinlichkeit
if(dom.GetObject(tmpX).IsTypeOf(OT_VARDP)){
   tmpG = "\"pc\":\"";
   tmpY = "\",";
   tmpZ = tmpF.Find(tmpG) + tmpG.Length();
   tmpL1 = tmpF.Substr(tmpZ, 5).StrValueByIndex(tmpY, 0);
   dom.GetObject(tmpX).State(tmpL1.ToInteger());
}

!Wird überhaupt regnen
if(dom.GetObject(tmpW).IsTypeOf(OT_VARDP)){
   if(!tmpH1){
      var tmpJ1 = "\"06:00\"";
      var tmpI1 = tmpF.Substr(tmpF.Find(tmpJ1), tmpF.Length());
      tmpG = "\"w\":\"";
      tmpY = "\",";
      tmpZ = tmpI1.Find(tmpG) + tmpG.Length();
      tmpE = tmpI1.Substr(tmpZ, 5).StrValueByIndex(tmpY, 0).ToInteger();
      tmpH1 = ((tmpE > 5) && (tmpE < 10)) || (tmpE > 59);
      if(!tmpH1){
         tmpJ1 = "\"11:00\"";
         tmpI1 = tmpF.Substr(tmpF.Find(tmpJ1), tmpF.Length());
         tmpG = "\"w\":\"";
         tmpY = "\",";
         tmpZ = tmpI1.Find(tmpG) + tmpG.Length();
         tmpE = tmpI1.Substr(tmpZ, 5).StrValueByIndex(tmpY, 0).ToInteger();
         tmpH1 = ((tmpE > 5) && (tmpE < 10)) || (tmpE > 59);
         if(!tmpH1){
            tmpJ1 = "\"17:00\"";
            tmpI1 = tmpF.Substr(tmpF.Find(tmpJ1), tmpF.Length());
            tmpG = "\"w\":\"";
            tmpY = "\",";
            tmpZ = tmpI1.Find(tmpG) + tmpG.Length();
            tmpE = tmpI1.Substr(tmpZ, 5).StrValueByIndex(tmpY, 0).ToInteger();
            tmpH1 = ((tmpE > 5) && (tmpE < 10)) || (tmpE > 59);
            if(!tmpH1){
               tmpJ1 = "\"23:00\"";
               tmpI1 = tmpF.Substr(tmpF.Find(tmpJ1), tmpF.Length());
               tmpG = "\"w\":\"";
               tmpY = "\",";
               tmpZ = tmpI1.Find(tmpG) + tmpG.Length();
               tmpE = tmpI1.Substr(tmpZ, 5).StrValueByIndex(tmpY, 0).ToInteger();
               tmpH1 = ((tmpE > 5) && (tmpE < 10)) || (tmpE > 59);      
            }
         }
      }
   }
   dom.GetObject(tmpW).State(tmpH1);
}

tmpF = tmpF .Substr(tmpF .Find(tmpA1), tmpF.Length());
tmpF = tmpF .Substr(tmpF .Find(tmpB1), tmpF.Length());

!Minimaltemperatur
if(dom.GetObject(tmpT).IsTypeOf(OT_VARDP)){
   tmpG = "\"tn\":\"";
   tmpY = "\",";
   tmpZ = tmpF.Find(tmpG) + tmpG.Length();
   tmpL1 = tmpF.Substr(tmpZ, 5).StrValueByIndex(tmpY, 0);
   dom.GetObject(tmpT).State(tmpL1.ToInteger());
}

!Windgeschwindigkeit
if(dom.GetObject(tmpU).IsTypeOf(OT_VARDP)){
   tmpG = "\"ws\":\"";
   tmpY = "\",";
   tmpZ = tmpF.Find(tmpG) + tmpG.Length();
   tmpL1 = tmpF.Substr(tmpZ, 5).StrValueByIndex(tmpY, 0);
   dom.GetObject(tmpU).State(tmpL1.ToInteger());
}

!Wetterzustand Text
if(dom.GetObject(tmpV).IsTypeOf(OT_VARDP)){
   tmpG = "\"w_txt\":\"";
   tmpY = "\"},";
   tmpZ = tmpF.Find(tmpG) + tmpG.Length();
   tmpL1 = tmpF.Substr(tmpZ, 20).StrValueByIndex(tmpY, 0);
   dom.GetObject(tmpV).State(tmpL1);
}
Das Programm, welches das Skript ausführt, sieht wie folgt aus:
Wetter Programm.png
Mein Wetter-Programm
Hier die Variablen und deren Inhalt:
Wetter Variablen.png
Meine Wetter-Variablen
Hast Du eine Idee, warum die Variablen nicht vollständig beschrieben werden? :?

Re: Wettervorhersage mit wetter.com

Verfasst: 27.07.2017, 14:56
von alchy
>> Fehlerprotokoll << zum Zeitpunkt des ausführens?

Ich mag diese tmp Scripte und Fremdscripte nicht kontrollieren, :twisted: aber da ist ags. etwas im Argen.
Wenn du unbedingt willst, dann schick mir das Script per PN, allerding komplett mit dem API Key.
Ich habe keinen und lege mir auch keinen an und kann dir nur versprechen ihn nach der versuchten Hilfe nicht mehr zu nutzen.

Alchy

Re: Wettervorhersage mit wetter.com

Verfasst: 28.07.2017, 08:56
von BausatzFan
Hi Alchy,

ich habe Dir gerade eine PN geschickt. Hier noch mal das Skript ohne tmp Variablen, welches ich auch getestet habe (API und City code gelöscht). Gleiches Ergebnis, geht nicht.

Code: Alles auswählen

!-----------------------------------------------------------------------------
! Hier alle was man verändern kann/muss
! Voraussetzung: CUxD und ein Wetter.com Account
!-----------------------------------------------------------------------------
string apikey = "xxx";
string cityCode = "xxx";
string projectName = "hm";

var CUxD_Device = "CUxD.CUX2801001:10"; !CUxD Virtuelles Gerät

!Wetter heute Variablen-Namen (alles optional)
string Wetter_heute_zustand = "Wetter_heute_zustand"; !Zahl 0 - 999
string Wetter_heute_tempMax = "Wetter_heute_tempMax"; !Zahl -50 - 50 °C
string Wetter_heute_tempMin = "Wetter_heute_tempMin"; !Zahl -50 - 50 °C
string Wetter_heute_wind = "Wetter_heute_wind"; !Zahl 0 - 200 km/h
string Wetter_heute_zustand_txt = "Wetter_heute_zustand_txt"; !Zeichenkette
string Wetter_heute_regen = "Wetter_heute_regen"; !Logikwert
string Wetter_heute_regen_wahrscheinlichkeit = "Wetter_heute_regen_proz"; !Zahl 0 - 100 %

!Wetter morgen Variablen-Namen (alles optional)
string Wetter_morgen_zustand = "Wetter_morgen_zustand"; !Zahl 0 - 999
string Wetter_morgen_tempMax = "Wetter_morgen_tempMax"; !Zahl -50 - 50 °C
string Wetter_morgen_tempMin = "Wetter_morgen_tempMin"; !Zahl -50 - 50 °C
string Wetter_morgen_wind = "Wetter_morgen_wind"; !Zahl 0 - 200 km/h
string Wetter_morgen_zustand_txt = "Wetter_morgen_zustand_txt"; !Zeichenkette
string Wetter_morgen_regen = "Wetter_morgen_regen"; !Logikwert
string Wetter_morgen_regen_wahrscheinlichkeit = "Wetter_morgen_regen_proz"; !Zahl 0 - 100 %


!-----------------------------------------------------------------------------
! Ab hier muss man nichts mehr beachten
!-----------------------------------------------------------------------------
    
string weatherUrl = "http://api.wetter.com/forecast/weather/city/" + cityCode +"/project/" + projectName + "/cs/" + apikey + "/output/json";

var stdout;
var posStart;
var posEnd;
var value;
var substring;
var posValueStart;
var posValueEnd;
var posValue;
var cut1 = "\"23:00\"";
var cut2 = "},";

var heute = system.Date("%F");
var t= system.Date("%F ")#"00:00:00";
t = t.ToTime().ToInteger() + 86400;
var morgen = t.ToTime().Format("%F");
t = t.ToTime().ToInteger() + 86400;
var morgen2 = t.ToTime().Format("%F");
    
dom.GetObject(CUxD_Device # ".CMD_SETS").State("wget -q -O - " # weatherUrl);
dom.GetObject(CUxD_Device # ".CMD_QUERY_RET").State(1);
stdout = dom.GetObject(CUxD_Device # ".CMD_RETS").State();

!-----------------------------------------------------------------------------
! Dekodierung der Umlaute
!-----------------------------------------------------------------------------
   
string decoded;
string index;
foreach(index, stdout.Split("Ã")){
   decoded = decoded+ index + "";
}
stdout = decoded;
decoded = "";
foreach(index, stdout.Split("¤")){
   decoded = decoded + index + "ä";
}
stdout = decoded;
decoded = "";
foreach(index, stdout.Split("¶")){
   decoded = decoded + index + "ö";
}
stdout = decoded;
decoded = "";
foreach(index, stdout.Split("¼")){
   decoded = decoded + index + "ü";
}
stdout = decoded;
decoded = "";
   
!-----------------------------------------------------------------------------
! HEUTE 
!-----------------------------------------------------------------------------

boolean regen = false;
posStart = "\"" + heute + "\":{";
posEnd = "\"" + morgen + "\":{";
substring = stdout.Substr(stdout.Find(posStart), stdout.Find(posEnd));

!Wetterzustand
posValueStart = "\"w\":\"";
posValueEnd = "\",";
posValue = substring.Find(posValueStart) + posValueStart.Length();
value = substring.Substr(posValue, 5).StrValueByIndex(posValueEnd, 0);
integer valInt = value.ToInteger();
if(dom.GetObject(Wetter_heute_zustand).IsTypeOf(OT_VARDP)){
   dom.GetObject(Wetter_heute_zustand).State(valInt);
}
regen = ((valInt > 5) && (valInt < 10)) || (valInt > 59);

!Maximaltemperatur
if(dom.GetObject(Wetter_heute_tempMax).IsTypeOf(OT_VARDP)){
   posValueStart = "\"tx\":\"";
   posValueEnd = "\",";
   posValue = substring.Find(posValueStart) + posValueStart.Length();
   value = substring.Substr(posValue, 5).StrValueByIndex(posValueEnd, 0);
   dom.GetObject(Wetter_heute_tempMax).State(value.ToInteger());
}

!Regenwahrscheinlichkeit
if(dom.GetObject(Wetter_heute_regen_wahrscheinlichkeit).IsTypeOf(OT_VARDP)){
   posValueStart = "\"pc\":\"";
   posValueEnd = "\",";
   posValue = substring.Find(posValueStart) + posValueStart.Length();
   value = substring.Substr(posValue, 5).StrValueByIndex(posValueEnd, 0);
   dom.GetObject(Wetter_heute_regen_wahrscheinlichkeit).State(value.ToInteger());
}

!Wird überhaupt regnen
if(dom.GetObject(Wetter_heute_regen).IsTypeOf(OT_VARDP)){
   if(!regen){
      var cutUhr = "\"06:00\"";
      var regenSuche = substring.Substr(substring.Find(cutUhr), substring.Length());
      posValueStart = "\"w\":\"";
      posValueEnd = "\",";
      posValue = regenSuche.Find(posValueStart) + posValueStart.Length();
      valInt = regenSuche.Substr(posValue, 5).StrValueByIndex(posValueEnd, 0).ToInteger();
      regen = ((valInt > 5) && (valInt < 10)) || (valInt > 59);
      if(!regen){
         cutUhr = "\"11:00\"";
         regenSuche = substring.Substr(substring.Find(cutUhr), substring.Length());
         posValueStart = "\"w\":\"";
         posValueEnd = "\",";
         posValue = regenSuche.Find(posValueStart) + posValueStart.Length();
         valInt = regenSuche.Substr(posValue, 5).StrValueByIndex(posValueEnd, 0).ToInteger();
         regen = ((valInt > 5) && (valInt < 10)) || (valInt > 59);
         if(!regen){
            cutUhr = "\"17:00\"";
            regenSuche = substring.Substr(substring.Find(cutUhr), substring.Length());
            posValueStart = "\"w\":\"";
            posValueEnd = "\",";
            posValue = regenSuche.Find(posValueStart) + posValueStart.Length();
            valInt = regenSuche.Substr(posValue, 5).StrValueByIndex(posValueEnd, 0).ToInteger();
            regen = ((valInt > 5) && (valInt < 10)) || (valInt > 59);
            if(!regen){
               cutUhr = "\"23:00\"";
               regenSuche = substring.Substr(substring.Find(cutUhr), substring.Length());
               posValueStart = "\"w\":\"";
               posValueEnd = "\",";
               posValue = regenSuche.Find(posValueStart) + posValueStart.Length();
               valInt = regenSuche.Substr(posValue, 5).StrValueByIndex(posValueEnd, 0).ToInteger();
               regen = ((valInt > 5) && (valInt < 10)) || (valInt > 59);      
            }
         }
      }
   }
   dom.GetObject(Wetter_heute_regen).State(regen);
}

substring = substring.Substr(substring .Find(cut1), substring.Length());
substring = substring.Substr(substring .Find(cut2), substring.Length());

!Minimaltemperatur
if(dom.GetObject(Wetter_heute_tempMin).IsTypeOf(OT_VARDP)){
   posValueStart = "\"tn\":\"";
   posValueEnd = "\",";
   posValue = substring.Find(posValueStart) + posValueStart.Length();
   value = substring.Substr(posValue, 5).StrValueByIndex(posValueEnd, 0);
   dom.GetObject(Wetter_heute_tempMin).State(value.ToInteger());
}

!Windgeschwindigkeit
if(dom.GetObject(Wetter_heute_wind).IsTypeOf(OT_VARDP)){
   posValueStart = "\"ws\":\"";
   posValueEnd = "\",";
   posValue = substring.Find(posValueStart) + posValueStart.Length();
   value = substring.Substr(posValue, 5).StrValueByIndex(posValueEnd, 0);
   dom.GetObject(Wetter_heute_wind).State(value.ToInteger());
}

!Wetterzustand Text
if(dom.GetObject(Wetter_heute_zustand_txt).IsTypeOf(OT_VARDP)){
   posValueStart = "\"w_txt\":\"";
   posValueEnd = "\"},";
   posValue = substring.Find(posValueStart) + posValueStart.Length();
   value = substring.Substr(posValue, 20).StrValueByIndex(posValueEnd, 0);
   dom.GetObject(Wetter_heute_zustand_txt).State(value);
}

!-----------------------------------------------------------------------------
! MORGEN
!-----------------------------------------------------------------------------

regen = false;
posStart = "\"" + morgen + "\":{";
posEnd = "\"" + morgen2 + "\":{";
substring = stdout.Substr(stdout.Find(posStart), stdout.Find(posEnd));

!Wetterzustand
posValueStart = "\"w\":\"";
posValueEnd = "\",";
posValue = substring.Find(posValueStart) + posValueStart.Length();
value = substring.Substr(posValue, 5).StrValueByIndex(posValueEnd, 0);
integer valInt = value.ToInteger();
if(dom.GetObject(Wetter_morgen_zustand).IsTypeOf(OT_VARDP)){
   dom.GetObject(Wetter_morgen_zustand).State(valInt);
}
regen = ((valInt > 5) && (valInt < 10)) || (valInt > 59);

!Maximaltemperatur
if(dom.GetObject(Wetter_morgen_tempMax).IsTypeOf(OT_VARDP)){
   posValueStart = "\"tx\":\"";
   posValueEnd = "\",";
   posValue = substring.Find(posValueStart) + posValueStart.Length();
   value = substring.Substr(posValue, 5).StrValueByIndex(posValueEnd, 0);
   dom.GetObject(Wetter_morgen_tempMax).State(value.ToInteger());
}

!Regenwahrscheinlichkeit
if(dom.GetObject(Wetter_morgen_regen_wahrscheinlichkeit).IsTypeOf(OT_VARDP)){
   posValueStart = "\"pc\":\"";
   posValueEnd = "\",";
   posValue = substring.Find(posValueStart) + posValueStart.Length();
   value = substring.Substr(posValue, 5).StrValueByIndex(posValueEnd, 0);
   dom.GetObject(Wetter_morgen_regen_wahrscheinlichkeit).State(value.ToInteger());
}

!Wird überhaupt regnen
if(dom.GetObject(Wetter_morgen_regen).IsTypeOf(OT_VARDP)){
   if(!regen){
      var cutUhr = "\"06:00\"";
      var regenSuche = substring.Substr(substring.Find(cutUhr), substring.Length());
      posValueStart = "\"w\":\"";
      posValueEnd = "\",";
      posValue = regenSuche.Find(posValueStart) + posValueStart.Length();
      valInt = regenSuche.Substr(posValue, 5).StrValueByIndex(posValueEnd, 0).ToInteger();
      regen = ((valInt > 5) && (valInt < 10)) || (valInt > 59);
      if(!regen){
         cutUhr = "\"11:00\"";
         regenSuche = substring.Substr(substring.Find(cutUhr), substring.Length());
         posValueStart = "\"w\":\"";
         posValueEnd = "\",";
         posValue = regenSuche.Find(posValueStart) + posValueStart.Length();
         valInt = regenSuche.Substr(posValue, 5).StrValueByIndex(posValueEnd, 0).ToInteger();
         regen = ((valInt > 5) && (valInt < 10)) || (valInt > 59);
         if(!regen){
            cutUhr = "\"17:00\"";
            regenSuche = substring.Substr(substring.Find(cutUhr), substring.Length());
            posValueStart = "\"w\":\"";
            posValueEnd = "\",";
            posValue = regenSuche.Find(posValueStart) + posValueStart.Length();
            valInt = regenSuche.Substr(posValue, 5).StrValueByIndex(posValueEnd, 0).ToInteger();
            regen = ((valInt > 5) && (valInt < 10)) || (valInt > 59);
            if(!regen){
               cutUhr = "\"23:00\"";
               regenSuche = substring.Substr(substring.Find(cutUhr), substring.Length());
               posValueStart = "\"w\":\"";
               posValueEnd = "\",";
               posValue = regenSuche.Find(posValueStart) + posValueStart.Length();
               valInt = regenSuche.Substr(posValue, 5).StrValueByIndex(posValueEnd, 0).ToInteger();
               regen = ((valInt > 5) && (valInt < 10)) || (valInt > 59);      
            }
         }
      }
   }
   dom.GetObject(Wetter_morgen_regen).State(regen);
}

substring = substring .Substr(substring .Find(cut1), substring.Length());
substring = substring .Substr(substring .Find(cut2), substring.Length());

!Minimaltemperatur
if(dom.GetObject(Wetter_morgen_tempMin).IsTypeOf(OT_VARDP)){
   posValueStart = "\"tn\":\"";
   posValueEnd = "\",";
   posValue = substring.Find(posValueStart) + posValueStart.Length();
   value = substring.Substr(posValue, 5).StrValueByIndex(posValueEnd, 0);
   dom.GetObject(Wetter_morgen_tempMin).State(value.ToInteger());
}

!Windgeschwindigkeit
if(dom.GetObject(Wetter_morgen_wind).IsTypeOf(OT_VARDP)){
   posValueStart = "\"ws\":\"";
   posValueEnd = "\",";
   posValue = substring.Find(posValueStart) + posValueStart.Length();
   value = substring.Substr(posValue, 5).StrValueByIndex(posValueEnd, 0);
   dom.GetObject(Wetter_morgen_wind).State(value.ToInteger());
}

!Wetterzustand Text
if(dom.GetObject(Wetter_morgen_zustand_txt).IsTypeOf(OT_VARDP)){
   posValueStart = "\"w_txt\":\"";
   posValueEnd = "\"},";
   posValue = substring.Find(posValueStart) + posValueStart.Length();
   value = substring.Substr(posValue, 20).StrValueByIndex(posValueEnd, 0);
   dom.GetObject(Wetter_morgen_zustand_txt).State(value);
}

!-----------------------------------------------------------------------------
! ÜBERMORGEN
!-----------------------------------------------------------------------------

regen = false;
posStart = "\"" + morgen2 + "\":{";
posEnd = "}}";
substring = stdout.Substr(stdout.Find(posStart), stdout.Find(posEnd));

!Wetterzustand
posValueStart = "\"w\":\"";
posValueEnd = "\",";
posValue = substring.Find(posValueStart) + posValueStart.Length();
value = substring.Substr(posValue, 5).StrValueByIndex(posValueEnd, 0);
integer valInt = value.ToInteger();
if(dom.GetObject(Wetter_morgen2_zustand).IsTypeOf(OT_VARDP)){
   dom.GetObject(Wetter_morgen2_zustand).State(valInt);
}
regen = ((valInt > 5) && (valInt < 10)) || (valInt > 59);

!Maximaltemperatur
if(dom.GetObject(Wetter_morgen2_tempMax).IsTypeOf(OT_VARDP)){
   posValueStart = "\"tx\":\"";
   posValueEnd = "\",";
   posValue = substring.Find(posValueStart) + posValueStart.Length();
   value = substring.Substr(posValue, 5).StrValueByIndex(posValueEnd, 0);
   dom.GetObject(Wetter_morgen2_tempMax).State(value.ToInteger());
}

!Regenwahrscheinlichkeit
if(dom.GetObject(Wetter_morgen2_regen_wahrscheinlichkeit).IsTypeOf(OT_VARDP)){
   posValueStart = "\"pc\":\"";
   posValueEnd = "\",";
   posValue = substring.Find(posValueStart) + posValueStart.Length();
   value = substring.Substr(posValue, 5).StrValueByIndex(posValueEnd, 0);
   dom.GetObject(Wetter_morgen2_regen_wahrscheinlichkeit).State(value.ToInteger());
}

!Wird überhaupt regnen
if(dom.GetObject(Wetter_morgen2_regen).IsTypeOf(OT_VARDP)){
   if(!regen){
      var cutUhr = "\"06:00\"";
      var regenSuche = substring.Substr(substring.Find(cutUhr), substring.Length());
      posValueStart = "\"w\":\"";
      posValueEnd = "\",";
      posValue = regenSuche.Find(posValueStart) + posValueStart.Length();
      valInt = regenSuche.Substr(posValue, 5).StrValueByIndex(posValueEnd, 0).ToInteger();
      regen = ((valInt > 5) && (valInt < 10)) || (valInt > 59);
      if(!regen){
         cutUhr = "\"11:00\"";
         regenSuche = substring.Substr(substring.Find(cutUhr), substring.Length());
         posValueStart = "\"w\":\"";
         posValueEnd = "\",";
         posValue = regenSuche.Find(posValueStart) + posValueStart.Length();
         valInt = regenSuche.Substr(posValue, 5).StrValueByIndex(posValueEnd, 0).ToInteger();
         regen = ((valInt > 5) && (valInt < 10)) || (valInt > 59);
         if(!regen){
            cutUhr = "\"17:00\"";
            regenSuche = substring.Substr(substring.Find(cutUhr), substring.Length());
            posValueStart = "\"w\":\"";
            posValueEnd = "\",";
            posValue = regenSuche.Find(posValueStart) + posValueStart.Length();
            valInt = regenSuche.Substr(posValue, 5).StrValueByIndex(posValueEnd, 0).ToInteger();
            regen = ((valInt > 5) && (valInt < 10)) || (valInt > 59);
            if(!regen){
               cutUhr = "\"23:00\"";
               regenSuche = substring.Substr(substring.Find(cutUhr), substring.Length());
               posValueStart = "\"w\":\"";
               posValueEnd = "\",";
               posValue = regenSuche.Find(posValueStart) + posValueStart.Length();
               valInt = regenSuche.Substr(posValue, 5).StrValueByIndex(posValueEnd, 0).ToInteger();
               regen = ((valInt > 5) && (valInt < 10)) || (valInt > 59);
            }
         }
      }
   }
   dom.GetObject(Wetter_morgen2_regen).State(regen);
}

substring = substring.Substr(substring.Find(cut1), substring.Length());
substring = substring.Substr(substring.Find(cut2), substring.Length());

!Minimaltemperatur
if(dom.GetObject(Wetter_morgen2_tempMin).IsTypeOf(OT_VARDP)){
   posValueStart = "\"tn\":\"";
   posValueEnd = "\",";
   posValue = substring.Find(posValueStart) + posValueStart.Length();
   value = substring.Substr(posValue, 5).StrValueByIndex(posValueEnd, 0);
   dom.GetObject(Wetter_morgen2_tempMin).State(value.ToInteger());
}

!Windgeschwindigkeit
if(dom.GetObject(Wetter_morgen2_wind).IsTypeOf(OT_VARDP)){
   posValueStart = "\"ws\":\"";
   posValueEnd = "\",";
   posValue = substring.Find(posValueStart) + posValueStart.Length();
   value = substring.Substr(posValue, 5).StrValueByIndex(posValueEnd, 0);
   dom.GetObject(Wetter_morgen2_wind).State(value.ToInteger());
}

!Wetterzustand Text
if(dom.GetObject(Wetter_morgen2_zustand_txt).IsTypeOf(OT_VARDP)){
   posValueStart = "\"w_txt\":\"";
   posValueEnd = "\"}";
   posValue = substring.Find(posValueStart) + posValueStart.Length();
   value = substring.Substr(posValue, 20).StrValueByIndex(posValueEnd, 0);
   dom.GetObject(Wetter_morgen2_zustand_txt).State(value);
}
Das ganze hat schon mal funktioniert. Ich habe einige Funktionen, die den Wert von Temperatur_heute_Max und Regen_heute/morgen benötigen.

Danke!

Re: Wettervorhersage mit wetter.com

Verfasst: 28.07.2017, 11:09
von alchy
Was ich schon mal sagen kann, die Rückgabe passt nicht mehr zu dem Script und dadurch funktioniert es natürlich so nicht mehr.
Vielleicht liest ja der Urheber des Scriptes mit und mag sein Script anpassen.

Alchy

Re: Wettervorhersage mit wetter.com

Verfasst: 02.08.2017, 11:50
von BausatzFan
Vielleicht liest ja der Urheber des Scriptes mit und mag sein Script anpassen.
Das fände ich super klasse! Nutzt sonst noch wer das Skript?

Re: Wettervorhersage mit wetter.com

Verfasst: 02.08.2017, 14:09
von fischmir
Ich würde es gerne wieder nutzen.

Re: Wettervorhersage mit wetter.com

Verfasst: 04.08.2017, 16:19
von Wortmann30
Hi

Ich nutze das Skript auch und bei mir geht es aber.
Unbenannt.PNG
Das ist das Skript:

Code: Alles auswählen

! Idtittmar entwickelt 
! von AndiN auf tmp-Variablen umgeschrieben v2.0.0 (Stand: 25.11.2015)

!-----------------------------------------------------------------------------
! Hier alle was man verändern kann/muss
! Voraussetzung: CUxD und ein Wetter.com Account
!-----------------------------------------------------------------------------

! Hier die MD5 Checksumme aus ProjektName APIKey CityCode eintragen
string tmpA = "c2aaf1a8548a22b";

! Hier der City Code
string tmpB = "DE000";

! Meine Projektnummer
string tmpC = "meinProjekt";

var tmpD = "CUxD.CUX2801002:10"; !CUxD Virtuelles Gerät

!Wetter heute Variablen-Namen (alles optional)
string tmpH = "Wetter_heute_zustand"; !Zahl 0 - 999
string tmpI = "Wetter_heute_tempMax"; !Zahl -50 - 50 °C
string tmpJ = "Wetter_heute_tempMin"; !Zahl -50 - 50 °C
string tmpK = "Wetter_heute_wind"; !Zahl 0 - 200 km/h
string tmpL = "Wetter_heute_zustand_txt"; !Zeichenkette
string tmpM = "Wetter_heute_regen"; !Logikwert
string tmpN = "Wetter_heute_regen_proz"; !Zahl 0 - 100 %

string tmpO = "Wetter_morgen_zustand"; !Zahl 0 - 999
string tmpS = "Wetter_morgen_tempMax"; !Zahl -50 - 50 °C
string tmpT = "Wetter_morgen_tempMin"; !Zahl -50 - 50 °C
string tmpU = "Wetter_morgen_wind"; !Zahl 0 - 200 km/h
string tmpV = "Wetter_morgen_zustand_txt"; !Zeichenkette
string tmpW = "Wetter_morgen_regen"; !Logikwert
string tmpX = "Wetter_morgen_regen_proz"; !Zahl 0 - 100 %

!-----------------------------------------------------------------------------
! Ab hier muss man nichts mehr beachten
!-----------------------------------------------------------------------------
   
string tmpE = "http://api.wetter.com/forecast/weather/city/" + tmpB +"/project/" + tmpC + "/cs/" + tmpA + "/output/json";

var stdout;
var tmpPosStart;
var tmpPosEnd;
var tmpL1;
var tmpF;
var tmpG;
var tmpY;
var tmpZ;
var tmpA1 = "\"23:00\"";
var tmpB1 = "},";

var tmpC1 = system.Date("%F");
var tmpK1= system.Date("%F ")#"00:00:00";
tmpK1 = tmpK1.ToTime().ToInteger() + 86400;
var tmpE1 = tmpK1.ToTime().Format("%F");
tmpK1 = tmpK1.ToTime().ToInteger() + 86400;
var tmpD1 = tmpK1.ToTime().Format("%F");
   
dom.GetObject(tmpD # ".CMD_SETS").State("wget -q -O - " # tmpE);
dom.GetObject(tmpD # ".CMD_QUERY_RET").State(1);
stdout = dom.GetObject(tmpD # ".CMD_RETS").State();

!-----------------------------------------------------------------------------
! Dekodierung der Umlaute
!-----------------------------------------------------------------------------
   
string tmpF1;
string tmpG1;
foreach(tmpG1, stdout.Split("Ã")){
   tmpF1 = tmpF1+ tmpG1 + "";
}
stdout = tmpF1;
tmpF1 = "";
foreach(tmpG1, stdout.Split("¤")){
   tmpF1 = tmpF1 + tmpG1 + "ä";
}
stdout = tmpF1;
tmpF1 = "";
foreach(tmpG1, stdout.Split("¶")){
   tmpF1 = tmpF1 + tmpG1 + "ö";
}
stdout = tmpF1;
tmpF1 = "";
foreach(tmpG1, stdout.Split("¼")){
   tmpF1 = tmpF1 + tmpG1 + "ü";
}
stdout = tmpF1;
tmpF1 = "";

!-----------------------------------------------------------------------------
! HEUTE
!-----------------------------------------------------------------------------

boolean tmpH1 = false;
tmpPosStart = "\"" + tmpC1 + "\":{";
tmpPosEnd = "\"" + tmpE1 + "\":{";
tmpF = stdout.Substr(stdout.Find(tmpPosStart), stdout.Find(tmpPosEnd));

!Wetterzustand
tmpG = "\"w\":\"";
tmpY = "\",";
tmpZ = tmpF.Find(tmpG) + tmpG.Length();
tmpL1 = tmpF.Substr(tmpZ, 5).StrValueByIndex(tmpY, 0);
integer tmpE = tmpL1.ToInteger();
if(dom.GetObject(tmpH).IsTypeOf(OT_VARDP)){
   dom.GetObject(tmpH).State(tmpE);
}
tmpH1 = ((tmpE > 5) && (tmpE < 10)) || (tmpE > 59);

!Maximaltemperatur
if(dom.GetObject(tmpI).IsTypeOf(OT_VARDP)){
   tmpG = "\"tx\":\"";
   tmpY = "\",";
   tmpZ = tmpF.Find(tmpG) + tmpG.Length();
   tmpL1 = tmpF.Substr(tmpZ, 5).StrValueByIndex(tmpY, 0);
   dom.GetObject(tmpI).State(tmpL1.ToInteger());
}

!Regenwahrscheinlichkeit
if(dom.GetObject(tmpN).IsTypeOf(OT_VARDP)){
   tmpG = "\"pc\":\"";
   tmpY = "\",";
   tmpZ = tmpF.Find(tmpG) + tmpG.Length();
   tmpL1 = tmpF.Substr(tmpZ, 5).StrValueByIndex(tmpY, 0);
   dom.GetObject(tmpN).State(tmpL1.ToInteger());
}

!Wird überhaupt regnen
if(dom.GetObject(tmpM).IsTypeOf(OT_VARDP)){
   if(!tmpH1){
      var tmpJ1 = "\"06:00\"";
      var tmpI1 = tmpF.Substr(tmpF.Find(tmpJ1), tmpF.Length());
      tmpG = "\"w\":\"";
      tmpY = "\",";
      tmpZ = tmpI1.Find(tmpG) + tmpG.Length();
      tmpE = tmpI1.Substr(tmpZ, 5).StrValueByIndex(tmpY, 0).ToInteger();
      tmpH1 = ((tmpE > 5) && (tmpE < 10)) || (tmpE > 59);
      if(!tmpH1){
         tmpJ1 = "\"11:00\"";
         tmpI1 = tmpF.Substr(tmpF.Find(tmpJ1), tmpF.Length());
         tmpG = "\"w\":\"";
         tmpY = "\",";
         tmpZ = tmpI1.Find(tmpG) + tmpG.Length();
         tmpE = tmpI1.Substr(tmpZ, 5).StrValueByIndex(tmpY, 0).ToInteger();
         tmpH1 = ((tmpE > 5) && (tmpE < 10)) || (tmpE > 59);
         if(!tmpH1){
            tmpJ1 = "\"17:00\"";
            tmpI1 = tmpF.Substr(tmpF.Find(tmpJ1), tmpF.Length());
            tmpG = "\"w\":\"";
            tmpY = "\",";
            tmpZ = tmpI1.Find(tmpG) + tmpG.Length();
            tmpE = tmpI1.Substr(tmpZ, 5).StrValueByIndex(tmpY, 0).ToInteger();
            tmpH1 = ((tmpE > 5) && (tmpE < 10)) || (tmpE > 59);
            if(!tmpH1){
               tmpJ1 = "\"23:00\"";
               tmpI1 = tmpF.Substr(tmpF.Find(tmpJ1), tmpF.Length());
               tmpG = "\"w\":\"";
               tmpY = "\",";
               tmpZ = tmpI1.Find(tmpG) + tmpG.Length();
               tmpE = tmpI1.Substr(tmpZ, 5).StrValueByIndex(tmpY, 0).ToInteger();
               tmpH1 = ((tmpE > 5) && (tmpE < 10)) || (tmpE > 59);      
            }
         }
      }
   }
   dom.GetObject(tmpM).State(tmpH1);
}

tmpF = tmpF.Substr(tmpF .Find(tmpA1), tmpF.Length());
tmpF = tmpF.Substr(tmpF .Find(tmpB1), tmpF.Length());

!Minimaltemperatur
if(dom.GetObject(tmpJ).IsTypeOf(OT_VARDP)){
   tmpG = "\"tn\":\"";
   tmpY = "\",";
   tmpZ = tmpF.Find(tmpG) + tmpG.Length();
   tmpL1 = tmpF.Substr(tmpZ, 5).StrValueByIndex(tmpY, 0);
   dom.GetObject(tmpJ).State(tmpL1.ToInteger());
}

!Windgeschwindigkeit
if(dom.GetObject(tmpK).IsTypeOf(OT_VARDP)){
   tmpG = "\"ws\":\"";
   tmpY = "\",";
   tmpZ = tmpF.Find(tmpG) + tmpG.Length();
   tmpL1 = tmpF.Substr(tmpZ, 5).StrValueByIndex(tmpY, 0);
   dom.GetObject(tmpK).State(tmpL1.ToInteger());
}

!Wetterzustand Text
if(dom.GetObject(tmpL).IsTypeOf(OT_VARDP)){
   tmpG = "\"w_txt\":\"";
   tmpY = "\"},";
   tmpZ = tmpF.Find(tmpG) + tmpG.Length();
   tmpL1 = tmpF.Substr(tmpZ, 20).StrValueByIndex(tmpY, 0);
   dom.GetObject(tmpL).State(tmpL1);
}


!-----------------------------------------------------------------------------
! MORGEN
!-----------------------------------------------------------------------------

tmpH1 = false;
tmpPosStart = "\"" + tmpE1 + "\":{";
tmpPosEnd = "\"" + tmpD1 + "\":{";
tmpF = stdout.Substr(stdout.Find(tmpPosStart), stdout.Find(tmpPosEnd));

!Wetterzustand
tmpG = "\"w\":\"";
tmpY = "\",";
tmpZ = tmpF.Find(tmpG) + tmpG.Length();
tmpL1 = tmpF.Substr(tmpZ, 5).StrValueByIndex(tmpY, 0);
integer tmpE = tmpL1.ToInteger();
if(dom.GetObject(tmpO).IsTypeOf(OT_VARDP)){
   dom.GetObject(tmpO).State(tmpE);
}
tmpH1 = ((tmpE > 5) && (tmpE < 10)) || (tmpE > 59);

!Maximaltemperatur
if(dom.GetObject(tmpS).IsTypeOf(OT_VARDP)){
   tmpG = "\"tx\":\"";
   tmpY = "\",";
   tmpZ = tmpF.Find(tmpG) + tmpG.Length();
   tmpL1 = tmpF.Substr(tmpZ, 5).StrValueByIndex(tmpY, 0);
   dom.GetObject(tmpS).State(tmpL1.ToInteger());
}

!Regenwahrscheinlichkeit
if(dom.GetObject(tmpX).IsTypeOf(OT_VARDP)){
   tmpG = "\"pc\":\"";
   tmpY = "\",";
   tmpZ = tmpF.Find(tmpG) + tmpG.Length();
   tmpL1 = tmpF.Substr(tmpZ, 5).StrValueByIndex(tmpY, 0);
   dom.GetObject(tmpX).State(tmpL1.ToInteger());
}

!Wird überhaupt regnen
if(dom.GetObject(tmpW).IsTypeOf(OT_VARDP)){
   if(!tmpH1){
      var tmpJ1 = "\"06:00\"";
      var tmpI1 = tmpF.Substr(tmpF.Find(tmpJ1), tmpF.Length());
      tmpG = "\"w\":\"";
      tmpY = "\",";
      tmpZ = tmpI1.Find(tmpG) + tmpG.Length();
      tmpE = tmpI1.Substr(tmpZ, 5).StrValueByIndex(tmpY, 0).ToInteger();
      tmpH1 = ((tmpE > 5) && (tmpE < 10)) || (tmpE > 59);
      if(!tmpH1){
         tmpJ1 = "\"11:00\"";
         tmpI1 = tmpF.Substr(tmpF.Find(tmpJ1), tmpF.Length());
         tmpG = "\"w\":\"";
         tmpY = "\",";
         tmpZ = tmpI1.Find(tmpG) + tmpG.Length();
         tmpE = tmpI1.Substr(tmpZ, 5).StrValueByIndex(tmpY, 0).ToInteger();
         tmpH1 = ((tmpE > 5) && (tmpE < 10)) || (tmpE > 59);
         if(!tmpH1){
            tmpJ1 = "\"17:00\"";
            tmpI1 = tmpF.Substr(tmpF.Find(tmpJ1), tmpF.Length());
            tmpG = "\"w\":\"";
            tmpY = "\",";
            tmpZ = tmpI1.Find(tmpG) + tmpG.Length();
            tmpE = tmpI1.Substr(tmpZ, 5).StrValueByIndex(tmpY, 0).ToInteger();
            tmpH1 = ((tmpE > 5) && (tmpE < 10)) || (tmpE > 59);
            if(!tmpH1){
               tmpJ1 = "\"23:00\"";
               tmpI1 = tmpF.Substr(tmpF.Find(tmpJ1), tmpF.Length());
               tmpG = "\"w\":\"";
               tmpY = "\",";
               tmpZ = tmpI1.Find(tmpG) + tmpG.Length();
               tmpE = tmpI1.Substr(tmpZ, 5).StrValueByIndex(tmpY, 0).ToInteger();
               tmpH1 = ((tmpE > 5) && (tmpE < 10)) || (tmpE > 59);      
            }
         }
      }
   }
   dom.GetObject(tmpW).State(tmpH1);
}

tmpF = tmpF .Substr(tmpF .Find(tmpA1), tmpF.Length());
tmpF = tmpF .Substr(tmpF .Find(tmpB1), tmpF.Length());

!Minimaltemperatur
if(dom.GetObject(tmpT).IsTypeOf(OT_VARDP)){
   tmpG = "\"tn\":\"";
   tmpY = "\",";
   tmpZ = tmpF.Find(tmpG) + tmpG.Length();
   tmpL1 = tmpF.Substr(tmpZ, 5).StrValueByIndex(tmpY, 0);
   dom.GetObject(tmpT).State(tmpL1.ToInteger());
}

!Windgeschwindigkeit
if(dom.GetObject(tmpU).IsTypeOf(OT_VARDP)){
   tmpG = "\"ws\":\"";
   tmpY = "\",";
   tmpZ = tmpF.Find(tmpG) + tmpG.Length();
   tmpL1 = tmpF.Substr(tmpZ, 5).StrValueByIndex(tmpY, 0);
   dom.GetObject(tmpU).State(tmpL1.ToInteger());
}

!Wetterzustand Text
if(dom.GetObject(tmpV).IsTypeOf(OT_VARDP)){
   tmpG = "\"w_txt\":\"";
   tmpY = "\"},";
   tmpZ = tmpF.Find(tmpG) + tmpG.Length();
   tmpL1 = tmpF.Substr(tmpZ, 20).StrValueByIndex(tmpY, 0);
   dom.GetObject(tmpV).State(tmpL1);
}
Den teil mit der "string tmpA = "c2aaf1a85122b";" an Anfang habe ich verändert da muss eurer rein.

Wie auch hier "string tmpB = "DE000";" da muss eure Kennung rein.

Re: Wettervorhersage mit wetter.com

Verfasst: 06.03.2018, 14:58
von tubu
ldittmar hat geschrieben:

:!: :!: :!: Da wetter.com seine Seiten gerade neu programmiert, ist die Möglichkeit diese API zu nutzen auch down. Sobald die API wieder verfügbar ist, werde ich den Skript entsprechend anpassen. :!: :!: :!:

Hallo,

nachdem im ersten Post noch der Hinweis drin ist, eine Verständnisfrage von mir. Kann man das Script trotzdem nutzen oder gibt es Probleme damit ?

Gruß aus Oberbayern
Thomas

Re: Wettervorhersage mit wetter.com

Verfasst: 09.03.2018, 20:49
von Slice
Hallo tubu,

die API-Seite bei Wetter.com ist immer noch im Umbau:
https://www.wetter.com/apps_und_mehr/website/api/

Code: Alles auswählen

Diese Seite ist noch nicht verfügbar
 
Diese Seite befindet sich noch im Umbau. 
Wir freuen uns Ihnen zeitnah den vollen Funktionsumfang anbieten zu können.
Von der Startseite aus geht es wieder weiter

Falls Sie auf der Suche nach Wetterdaten zu einem bestimmten Ort waren, können Sie auch die Suchfunktion oben verwenden.
Ohne diese Funktion geht soweit mir bekannt ist das Script hier leider nicht.

Grüße,
Slice

Re: Wettervorhersage mit wetter.com

Verfasst: 14.03.2018, 08:58
von tubu
Guten Morgen,

danke für die Info.