HM-Script für virtuelle Wetterstation

User stellen ihre Haussteuerung vor

Moderator: Co-Administratoren

Michaw
Beiträge: 1
Registriert: 23.06.2019, 15:28

Re: HM-Script für virtuelle Wetterstation

Beitrag von Michaw » 23.06.2019, 15:54

Hi zusammen,

das Skript gibt es ja schon ein wenig länger und ich wundere mich warum es bei mir nicht funktioniert. Im CUxD wird der XML Abruf offensichtlich gestartet, aber dann in der CCU keine Variablen angelegt. Im Full Syslog finde ich folgende Meldungen.
Jun 23 15:30:00 homematic-ccu2 daemon.info cuxd[21283]: pclose(wget -q -O - 'http://api.openweathermap.org/data/2.5/ ... lon=XX.XXX') exit(8) 0s
Jun 23 15:30:10 homematic-ccu2 local0.err ReGaHss: Error: IseXmlRpc::GetObjectByHSSAddress: no exists device object with address= CENTRAL:0 [iseXmlRpc.cpp:2167]
Hängt die zweite Meldung überhaupt mit dem Skript zusammen? Ich vermute nicht.
Hier einmal das vollständige Skript das in der CCU aufgerufen wird. (Im wesentlichen durch C&P aus den Beiträgen von DimMyPrp und Schalterrei)

Code: Alles auswählen

!OpenWeather-CCU-Script, Version 1, 15.02.2017, dimmyprp

!Hier den API-Key von OpenWeather eintragen bzw. den vorhanden Key austauschen.
!Dieser Key wird benötigt, um die Wetterdaten abrufen zu können. 
!Der hier bereits hinterlegte Key funktioniert zwar, es können jedoch nur zeitlich begrenzt Wetterdaten abgerufen werden.
!Erstellung eines eigenen Keys unter http://openweathermap.org/appid

string owAppid='XXXXXXXXXXXX';


!Hier die ID der Wetterstation bzw. Stadt eitragen bzw. austauschen, von der die Wetterdaten abgerufen werden sollen.
!Eine Liste aller Stationen finden Sie unter http://bulk.openweathermap.org/sample/city.list.json.gz
!Die aktuell hinterlegte Station bzw. ID 6556765 gibt das Wetter für Berlin aus.
!Wenn Sie keine ID angeben UND in Ihrer Homematic unter "Einstellungen" > "Zeit-/Positionseinstellungen" unter dem Punkt "Positionsangabe"
!Ihre Koordinaten hinterlegt haben, können Sie von OpenWeather auch eine Wetterstation in Ihrer Nähe suchen lassen und deren Werte abrufen.
!Beispiele
!string owCityid='2950159';		Ruft die Wetterdaten für Berlin ab
!string owCityid='6556765';		Ruft die Wetterdaten für Pegnitz ab
!string owCityid='';			Ruft die Wetterdaten in Ihrer Nähe ab (wenn Positionsangaben in den Einstellungen hinterlegt wurden)
!string owCityid=false;			Ruft die Wetterdaten in Ihrer Nähe ab (wenn Positionsangaben in den Einstellungen hinterlegt wurden)

string owCityid=false;


!Optional: Im Folgenden die Namen der Systemvariablen ändern/vorgeben.
!Die abgerufenen Wetterdaten werden in mehreren Systemvariablen gespeichert und angezeigt (sie müssen vorab keine Variablen anlegen. Dies erledigt diese Script gegebenenfalls automatisch).
!Im Folgenden können Sie die Namen der Systemvariablen (so, wie Sie Ihnen in Ihrer Homematic später unter "Status und Bedienung" > "Systemvariable" angezeigt
!werden, ändern. Möchten Sie, dass ein bestimmter Messwert nicht angezeigt bzw. abgerufen wird, lassen Sie den Namen leer ''.
!Beispiele
!string svLuftdruck='ow Luftdruck';		Die Systemvariable für den Luftdruck soll "ow Lufdruck" heißen
!string svLuftdruck='Luftdr.';			Die Systemvariable für den Luftdruck soll "Luftdr." heißen
!string svLuftdruck='';					Es soll überhaupt kein Luftdruck angezeigt bzw. abgerufen werden
!string svLuftdruck=false;				Es soll überhaupt kein Luftdruck angezeigt bzw. abgerufen werden

string svAktualisierung='ow Letzte Aktualisierung';
string svTemperatur='ow Temperatur';
string svMinimalTemperatur='ow Temperatur (min.)';
string svMaximalTemperatur='ow Temperatur (max.)';
string svLuftfeuchtigkeit='ow Luftfeuchte (rel.)';
string svLuftdruck='ow Luftdruck';
string svWindGeschwindigkeit='ow Windgeschwindigkeit';
string svWindRichtung='ow Windrichtung';
string svWetterstation='ow Wetterstation';
string svSonnenaufgang='ow Sonnenaufgang';
string svSonnenuntergang='ow Sonnenuntergang';
string svWetter='ow Wetter';


!Optionale Experteneinstellungen: OpenWeather-Daten per CUxD abrufen
!Falls Sie in Ihrer Homematic die Software CUX-Daemon installiert haben, setzt dieses Script den wget-Command standardmäßig per
!CUxD "System-Devices" (28) bzw. Device CUxD.CUX2801001:1 ab. Hier gegebenenfalls den Namen des Devices nach dem Schema "CUxD.<Seriennummer>:1" ändern.
!Falls Sie nicht möchten, dass der wget-Gommand per CUxD sondern per system.Exec erfolgt, setzen Sie diese Variable auf false (string cuxCMDName=false;)

string cuxCMDName='CUxD.CUX2801001:1';


!Optionale Experteneinstellungen: OpenWeather-Daten bzw. Systemvariblen per CUxD Logit aufzeichnen
!Falls der CUX-Daemon installiert ist, werden die Messdaten der o.g. Systemvariablen dieses Scripts standardmäßig zusätzlich per CUxD LOGIT aufgezeichnet
!Falls Sie keine Aufzeichnng der Messdaten wünschen, ändern Sie diese Variable auf false (string cuxCMDName=false;)

boolean useLOGIT=false; !true;


!Optionale Experteneinstellungen: OpenWeather-Daten in CUxD Thermostat-Device schreiben
!Falls der CUX-Daemon installiert ist und Sie ein "Universal Wrapper Device" (90) mit der Funktion "Thermostat" angelgt haben, kann dieses Script einige
!der abgerufenen Messwerte direkt in das Device schreiben (das ist der eigentliche Sinn dieses Scripts).
!Wichtig: Damit dies funktioniert, muss in den Einstellungen des Devices, im Kanal 1 die Option "WEATHER|USE_HMDATAPT" deaktiviert sein (nicht angehakt).
!Hier gegebenenfalls den Namen des Devices nach dem Schema "CUxD.<Seriennummer>:1" ändern.
!Falls Sie nicht möchten, dass Messwerte in das Device geschrieben werden, setzen Sie diese Variable auf false (string cuxWDSName=false;)

string cuxWDSName='CUxD.CUX9002001:1';





!************************************************************
!************************************************************
!BEGIN DES SCRIPTS
!************************************************************
!************************************************************

!Variablendeklaration
!***********************
!OpenWeather-Url mit Defaultwerte
string owLocation='&lat='#system.Latitude()#'&lon='#system.Longitude();
string owUrl='http://api.openweathermap.org/data/2.5/weather?mode=xml&units=metric';
!CUxD/Exec und Rückgabe-Variablen (Programmablauf) mit Defaultwerte
boolean cuxCMD=false; boolean cuxWDS=false;string recXML;
!XML-Parser (Tagnamen)
string xmlStartTagName_Aktualisierung;string xmlEndTagName_Aktualisierung;
string xmlStartTagName_Temperatur;string xmlEndTagName_Temperatur;
string xmlStartTagName_Luftfeuchtigkeit;string xmlEndTagName_Luftfeuchtigkeit;
string xmlStartTagName_Luftdruck;string xmlEndTagName_Luftdruck;
string xmlStartTagName_Wind;string xmlEndTagName_Wind;
string xmlStartTagName_Geschwindigkeit;string xmlEndTagName_Geschwindigkeit;
string xmlStartTagName_Windrichtung;string xmlEndTagName_Windrichtung;
string xmlStartTagName_Stadt;string xmlEndTagName_Stadt;
string xmlStartTagName_Sonnenzeit;string xmlEndTagName_Sonnenzeit;
string xmlStartTagName_Wetter;string xmlEndTagName_Wetter;
!XML-Parser (Programmablauf)
integer xmlStartTagLenght;
integer xmlTagStart;integer xmlTagLength;
integer xmlAttributeStart;integer xmlAttributeLength;
string xmlTagContent;
string xmlAttributeValue;
!Zurückgemeldete und aus der XML extrahierte Werte von OpenWeather
real owTemperatur;real owMinimalTemperatur;real owMaximalTemperatur;
real owLuftfeuchtigkeit;
real owLuftdruck;
real owWindGeschwindigkeit;real owGradzahl;string owWindRichtung;
string owWetterstation;
string owAktualisierung;
string owSonnenaufgang;string owSonnenuntergang;
string owWetter;
!Objekte für Systemvariablen (Programmablauf)
object svObject;
object svObjectlist;
!Objekte für Devices (Programmablauf)
string dvObjectID;
object dvObject;
object dvObjectlist;
!Generische Variablen (Mehrfachverwendung)
string genString1;string genString2;string genString3;
time genTime1;
integer genInteger1;integer genInteger2;
real genReal1;

!Url zum Abruf des XML-Strings zusammen sezten
!****************************************************
if(owCityid){
	owLocation='&id='#owCityid;
} else {
	if(system.Longitude()&&system.Latitude())
	{
		owLocation='&lat='#system.Latitude()#'&lon='#system.Longitude();
	}
}
owUrl = owUrl#'&APPID='#owAppid#owLocation;

!Prüfen, ob CUX-Daemon Devices vorhanden sind
!***************************************************
if(dom.GetObject(cuxCMDName#'.CMD_SETS')){cuxCMD = true;}
if(dom.GetObject(cuxWDSName#'.SET_TEMPERATURE')){cuxWDS=true;}

!wget ausführen
!*****************
if(cuxCMD)
{
	!Website via CUxD und wget aufrufen.
	dom.GetObject(cuxCMDName#'.CMD_SETS').State("wget -q -O - '"#owUrl#"'");
	dom.GetObject(cuxCMDName#'.CMD_QUERY_RET').State(1);
	recXML = dom.GetObject(cuxCMDName#'.CMD_RETS').State();
} else {
	!Fallback: Website via system.Exec und wget aufrufen
	system.Exec("wget -q -O - '"#owUrl#"'", &recXML, &genString1); 
}

!Pruefen, ob XML-String geholt wurde, ansonsten abbrechen
!****************************************************************
if(!recXML){quit;}






!Tag-Namen-Suche im geholten XML-String vorbereiten
!*********************************************************
!Je nachdem, ob die Daten via CUxD oder Exex bezogen wurden, haben die XML-Tags ein anderes Format.
!Exex liefert einen XML-String mit eckigen Klammern nach dem Schema <tag></tag> oder <tag/>
!CUxD enternt eckige Klammern und liefert eine String nach dem Schema "tag /tag"
if(cuxCMD)
{
  !Suchstrings für XML-Tags von CUxD festlegen
  xmlStartTagName_Aktualisierung = 'lastupdate ';
  xmlEndTagName_Aktualisierung = '  /lastupdate';
  xmlStartTagName_Temperatur = 'temperature ';
  xmlEndTagName_Temperatur = '  /temperature';
  xmlStartTagName_Luftfeuchtigkeit = 'humidity ';
  xmlEndTagName_Luftfeuchtigkeit = '  /humidity';
  xmlStartTagName_Luftdruck = 'pressure ';
  xmlEndTagName_Luftdruck = '  /pressure';
  xmlStartTagName_Wind = 'wind ';
  xmlEndTagName_Wind = '  /wind';
  xmlStartTagName_Geschwindigkeit = 'speed ';
  xmlEndTagName_Geschwindigkeit = '  /speed';
  xmlStartTagName_Windrichtung = 'direction ';
  xmlEndTagName_Windrichtung = '  /direction';
  xmlStartTagName_Stadt = 'city ';
  xmlEndTagName_Stadt = '  /city';
  xmlStartTagName_Sonnenzeit = 'sun ';
  xmlEndTagName_Sonnenzeit = '  /sun';
  xmlStartTagName_Wetter = 'weather ';
  xmlEndTagName_Wetter = '  /weather';
} else {
  !Suchstrings für XML-Tags von Exec festlegen
  xmlStartTagName_Aktualisierung = '<lastupdate ';
  xmlEndTagName_Aktualisierung = '>';
  xmlStartTagName_Temperatur = '<temperature ';
  xmlEndTagName_Temperatur = '>';
  xmlStartTagName_Luftfeuchtigkeit = '<humidity ';
  xmlEndTagName_Luftfeuchtigkeit = '>';
  xmlStartTagName_Luftdruck = '<pressure ';
  xmlEndTagName_Luftdruck = '>';
  xmlStartTagName_Wind = '<wind>';
  xmlEndTagName_Wind = '</wind>';
  xmlStartTagName_Geschwindigkeit = '<speed ';
  xmlEndTagName_Geschwindigkeit = '>';
  xmlStartTagName_Windrichtung = '<direction ';
  xmlEndTagName_Windrichtung = '>';
  xmlStartTagName_Stadt = '<city ';
  xmlEndTagName_Stadt = '</city>';
  xmlStartTagName_Sonnenzeit = '<sun ';
  xmlEndTagName_Sonnenzeit = '>';
  xmlStartTagName_Wetter = '<weather ';
  xmlEndTagName_Wetter = '>';
}

!Geholten XML-String parsen
!******************************

!Parser für svAktualisierung
if(svAktualisierung)
{
	xmlStartTagLenght=0;xmlTagStart=0;xmlTagLength=0;xmlTagContent='';
	xmlStartTagLenght = xmlStartTagName_Aktualisierung.Length();
	xmlTagStart = recXML.Find(xmlStartTagName_Aktualisierung);
	if (xmlTagStart>=0) 
	{
		xmlTagContent = recXML.Substr(xmlTagStart+xmlStartTagLenght); 
		xmlTagLength = xmlTagContent.Find(xmlEndTagName_Aktualisierung);
		if(xmlTagLength>0)
		{
			xmlTagContent = xmlTagContent.Substr(0,xmlTagLength);
		
			!Datenabruf-Attribut auslesen
			xmlAttributeStart=0;xmlAttributeLength=0;xmlAttributeValue='';
			xmlAttributeStart=xmlTagContent.Find('value="');
			if (xmlAttributeStart>=0) 
			{
				xmlAttributeValue = xmlTagContent.Substr(xmlAttributeStart+7);
				xmlAttributeLength = xmlAttributeValue.Find('"');
				xmlAttributeValue = xmlAttributeValue.Substr(0,xmlAttributeLength);
				owAktualisierung = xmlAttributeValue.ToString();
			}
		}
	}
}



!Parser für svTemperatur, svMinimalTemperatur, svMaximalTemperatur
if(svTemperatur)
{
	xmlStartTagLenght=0;xmlTagStart=0;xmlTagLength=0;xmlTagContent='';
	xmlStartTagLenght = xmlStartTagName_Temperatur.Length();
	xmlTagStart = recXML.Find(xmlStartTagName_Temperatur);
	if (xmlTagStart>=0) 
	{
		xmlTagContent = recXML.Substr(xmlTagStart+xmlStartTagLenght); 
		xmlTagLength = xmlTagContent.Find(xmlEndTagName_Temperatur);
		if(xmlTagLength>0)
		{
			xmlTagContent = xmlTagContent.Substr(0,xmlTagLength);
		
			!Temperatur-Attribut auslesen
			xmlAttributeStart=0;xmlAttributeLength=0;xmlAttributeValue='';
			xmlAttributeStart=xmlTagContent.Find('value="');
			if (xmlAttributeStart>=0) 
			{
				xmlAttributeValue = xmlTagContent.Substr(xmlAttributeStart+7);
				xmlAttributeLength = xmlAttributeValue.Find('"');
				xmlAttributeValue = xmlAttributeValue.Substr(0,xmlAttributeLength);
				owTemperatur = xmlAttributeValue.ToFloat();
			}	
		
			!MinimalTemperatur-Attribut auslesen
			xmlAttributeStart=0;xmlAttributeLength=0;xmlAttributeValue='';
			xmlAttributeStart=xmlTagContent.Find('min="');
			if (xmlAttributeStart>=0) 
			{
				xmlAttributeValue = xmlTagContent.Substr(xmlAttributeStart+5);
				xmlAttributeLength = xmlAttributeValue.Find('"');
				xmlAttributeValue = xmlAttributeValue.Substr(0,xmlAttributeLength);
				owMinimalTemperatur = xmlAttributeValue.ToFloat();
			}	
		
			!MaximalTemperatur-Attribut auslesen
			xmlAttributeStart=0;xmlAttributeLength=0;xmlAttributeValue='';
			xmlAttributeStart=xmlTagContent.Find('max="');
			if (xmlAttributeStart>=0) 
			{
				xmlAttributeValue = xmlTagContent.Substr(xmlAttributeStart+5);
				xmlAttributeLength = xmlAttributeValue.Find('"');
				xmlAttributeValue = xmlAttributeValue.Substr(0,xmlAttributeLength);
				owMaximalTemperatur = xmlAttributeValue.ToFloat();
			}
		
		}
	}
}



!Parser für svLuftfeuchtigkeit
if(svLuftfeuchtigkeit)
{
	xmlStartTagLenght=0;xmlTagStart=0;xmlTagLength=0;xmlTagContent='';
	xmlStartTagLenght = xmlStartTagName_Luftfeuchtigkeit.Length();
	xmlTagStart = recXML.Find(xmlStartTagName_Luftfeuchtigkeit);
	if (xmlTagStart>=0) 
	{
		xmlTagContent = recXML.Substr(xmlTagStart+xmlStartTagLenght); 
		xmlTagLength = xmlTagContent.Find(xmlEndTagName_Luftfeuchtigkeit);
		if(xmlTagLength>0)
		{
			xmlTagContent = xmlTagContent.Substr(0,xmlTagLength);
		
			!Luftfeuchtigkeits-Attribut auslesen
			xmlAttributeStart=0;xmlAttributeLength=0;xmlAttributeValue='';
			xmlAttributeStart=xmlTagContent.Find('value="');
			if (xmlAttributeStart>=0) 
			{
				xmlAttributeValue = xmlTagContent.Substr(xmlAttributeStart+7);
				xmlAttributeLength = xmlAttributeValue.Find('"');
				xmlAttributeValue = xmlAttributeValue.Substr(0,xmlAttributeLength);
				owLuftfeuchtigkeit = xmlAttributeValue.ToFloat();
			}	
	
		}
	}
}


!Parser für svLuftdruck
if(svLuftdruck)
{
	xmlStartTagLenght=0;xmlTagStart=0;xmlTagLength=0;xmlTagContent='';
	xmlStartTagLenght = xmlStartTagName_Luftdruck.Length();
	xmlTagStart = recXML.Find(xmlStartTagName_Luftdruck);
	if (xmlTagStart>=0) 
	{
		xmlTagContent = recXML.Substr(xmlTagStart+xmlStartTagLenght); 
		xmlTagLength = xmlTagContent.Find(xmlEndTagName_Luftdruck);
		if(xmlTagLength>0)
		{
			xmlTagContent = xmlTagContent.Substr(0,xmlTagLength);
		
			!Luftdruck-Attribut auslesen
			xmlAttributeStart=0;xmlAttributeLength=0;xmlAttributeValue='';
			xmlAttributeStart=xmlTagContent.Find('value="');
			if (xmlAttributeStart>=0) 
			{
				xmlAttributeValue = xmlTagContent.Substr(xmlAttributeStart+7);
				xmlAttributeLength = xmlAttributeValue.Find('"');
				xmlAttributeValue = xmlAttributeValue.Substr(0,xmlAttributeLength);
				owLuftdruck = xmlAttributeValue.ToFloat();
			}	
	
		}
	}
}


!Parser für owWindGeschwindigkeit
if(svWindGeschwindigkeit)
{
	xmlStartTagLenght=0;xmlTagStart=0;xmlTagLength=0;xmlTagContent='';
	xmlStartTagLenght = xmlStartTagName_Wind.Length();
	xmlTagStart = recXML.Find(xmlStartTagName_Wind);
	if (xmlTagStart>=0) 
	{
		xmlTagContent = recXML.Substr(xmlTagStart+xmlStartTagLenght); 
		xmlTagLength = xmlTagContent.Find(xmlEndTagName_Wind);
		if(xmlTagLength>0)
		{
			xmlTagContent = xmlTagContent.Substr(0,xmlTagLength);
			
			!Sub-Parser Geschwindigkeit
			xmlStartTagLenght=0;xmlTagStart=0;xmlTagLength=0;
			xmlStartTagLenght = xmlStartTagName_Geschwindigkeit.Length();
			xmlTagStart = xmlTagContent.Find(xmlStartTagName_Geschwindigkeit);
			if (xmlTagStart>=0) 
			{
				xmlTagContent = xmlTagContent.Substr(xmlTagStart+xmlStartTagLenght); 
				xmlTagLength = xmlTagContent.Find(xmlEndTagName_Geschwindigkeit);
				if(xmlTagLength>0)
				{
					xmlTagContent = xmlTagContent.Substr(0,xmlTagLength);
		
					!Geschwindigkeit-Attribut auslesen
					xmlAttributeStart=0;xmlAttributeLength=0;xmlAttributeValue='';
					xmlAttributeStart=xmlTagContent.Find('value="');
					if (xmlAttributeStart>=0) 
					{
						xmlAttributeValue = xmlTagContent.Substr(xmlAttributeStart+7);
						xmlAttributeLength = xmlAttributeValue.Find('"');
						xmlAttributeValue = xmlAttributeValue.Substr(0,xmlAttributeLength);
						owWindGeschwindigkeit = xmlAttributeValue.ToFloat();
					}	
	
				}
			}
			
		}
	}
}



!Parser für owGradzahl, owWindRichtung
if(svWindRichtung)
{
	xmlStartTagLenght=0;xmlTagStart=0;xmlTagLength=0;xmlTagContent='';
	xmlStartTagLenght = xmlStartTagName_Wind.Length();
	xmlTagStart = recXML.Find(xmlStartTagName_Wind);
	if (xmlTagStart>=0) 
	{
		xmlTagContent = recXML.Substr(xmlTagStart+xmlStartTagLenght); 
		xmlTagLength = xmlTagContent.Find(xmlEndTagName_Wind);
		if(xmlTagLength>0)
		{
			xmlTagContent = xmlTagContent.Substr(0,xmlTagLength);
			
			!Sub-Parser Windrichtng
			xmlStartTagLenght=0;xmlTagStart=0;xmlTagLength=0;
			xmlStartTagLenght = xmlStartTagName_Windrichtung.Length();
			xmlTagStart = xmlTagContent.Find(xmlStartTagName_Windrichtung);
			if (xmlTagStart>=0) 
			{
				xmlTagContent = xmlTagContent.Substr(xmlTagStart+xmlStartTagLenght); 
				xmlTagLength = xmlTagContent.Find(xmlEndTagName_Windrichtung);
				if(xmlTagLength>0)
				{
					xmlTagContent = xmlTagContent.Substr(0,xmlTagLength);
		
					!Gradzahl-Attribut auslesen
					xmlAttributeStart=0;xmlAttributeLength=0;xmlAttributeValue='';
					xmlAttributeStart=xmlTagContent.Find('value="');
					if (xmlAttributeStart>=0) 
					{
						xmlAttributeValue = xmlTagContent.Substr(xmlAttributeStart+7);
						xmlAttributeLength = xmlAttributeValue.Find('"');
						xmlAttributeValue = xmlAttributeValue.Substr(0,xmlAttributeLength);
						owGradzahl = xmlAttributeValue.ToInteger();
					}	
					
					!Himmelsrichtung-Attribut auslesen
					xmlAttributeStart=0;xmlAttributeLength=0;xmlAttributeValue='';
					xmlAttributeStart=xmlTagContent.Find('code="');
					if (xmlAttributeStart>=0) 
					{
						xmlAttributeValue = xmlTagContent.Substr(xmlAttributeStart+6);
						xmlAttributeLength = xmlAttributeValue.Find('"');
						xmlAttributeValue = xmlAttributeValue.Substr(0,xmlAttributeLength);
						owWindRichtung = xmlAttributeValue.ToString();
					}	
	
				}
			}
		}
	}
}



!Parser für owWetterstation
if(svWetterstation)
{
	xmlStartTagLenght=0;xmlTagStart=0;xmlTagLength=0;xmlTagContent='';
	xmlStartTagLenght = xmlStartTagName_Stadt.Length();
	xmlTagStart = recXML.Find(xmlStartTagName_Stadt);
	if (xmlTagStart>=0) 
	{
		xmlTagContent = recXML.Substr(xmlTagStart+xmlStartTagLenght); 
		xmlTagLength = xmlTagContent.Find(xmlEndTagName_Stadt);
		if(xmlTagLength>0)
		{
			xmlTagContent = xmlTagContent.Substr(0,xmlTagLength);
			
			!Stadtname-Attribut auslesen
			xmlAttributeStart=0;xmlAttributeLength=0;xmlAttributeValue='';
			xmlAttributeStart=xmlTagContent.Find('name="');
			if (xmlAttributeStart>=0) 
			{
				xmlAttributeValue = xmlTagContent.Substr(xmlAttributeStart+6);
				xmlAttributeLength = xmlAttributeValue.Find('"');
				xmlAttributeValue = xmlAttributeValue.Substr(0,xmlAttributeLength);
				owWetterstation = xmlAttributeValue.ToString();
			}	
			
			!Sub-Parser Sonnezeit
			xmlStartTagLenght=0;xmlTagStart=0;xmlTagLength=0;
			xmlStartTagLenght = xmlStartTagName_Sonnenzeit.Length();
			xmlTagStart = xmlTagContent.Find(xmlStartTagName_Sonnenzeit);
			if (xmlTagStart>=0) 
			{
				xmlTagContent = xmlTagContent.Substr(xmlTagStart+xmlStartTagLenght); 
				xmlTagLength = xmlTagContent.Find(xmlEndTagName_Sonnenzeit);
				if(xmlTagLength>0)
				{
					xmlTagContent = xmlTagContent.Substr(0,xmlTagLength);
		
					!Sonnenaufgang-Attribut auslesen
					xmlAttributeStart=0;xmlAttributeLength=0;xmlAttributeValue='';
					xmlAttributeStart=xmlTagContent.Find('rise="');
					if (xmlAttributeStart>=0) 
					{
						xmlAttributeValue = xmlTagContent.Substr(xmlAttributeStart+6);
						xmlAttributeLength = xmlAttributeValue.Find('"');
						xmlAttributeValue = xmlAttributeValue.Substr(0,xmlAttributeLength);
						owSonnenaufgang = xmlAttributeValue.ToString();
					}	
					
					!Sonnenuntergang-Attribut auslesen
					xmlAttributeStart=0;xmlAttributeLength=0;xmlAttributeValue='';
					xmlAttributeStart=xmlTagContent.Find('set="');
					if (xmlAttributeStart>=0) 
					{
						xmlAttributeValue = xmlTagContent.Substr(xmlAttributeStart+5);
						xmlAttributeLength = xmlAttributeValue.Find('"');
						xmlAttributeValue = xmlAttributeValue.Substr(0,xmlAttributeLength);
						owSonnenuntergang = xmlAttributeValue.ToString();
					}	
	
				}
			}
		}
	}
}

!Parser für svWetter
if(svWetter)
{
   xmlStartTagLenght=0;xmlTagStart=0;xmlTagLength=0;xmlTagContent='';
   xmlStartTagLenght = xmlStartTagName_Wetter.Length();
   xmlTagStart = recXML.Find(xmlStartTagName_Wetter);
   if (xmlTagStart>=0) 
   {
      xmlTagContent = recXML.Substr(xmlTagStart+xmlStartTagLenght); 
      xmlTagLength = xmlTagContent.Find(xmlEndTagName_Wetter);
      if(xmlTagLength>0)
      {
         xmlTagContent = xmlTagContent.Substr(0,xmlTagLength);
      
         !Luftfeuchtigkeits-Attribut auslesen
         xmlAttributeStart=0;xmlAttributeLength=0;xmlAttributeValue='';
         xmlAttributeStart=xmlTagContent.Find('value="');
         if (xmlAttributeStart>=0) 
         {
            xmlAttributeValue = xmlTagContent.Substr(xmlAttributeStart+7);
            xmlAttributeLength = xmlAttributeValue.Find('"');
            xmlAttributeValue = xmlAttributeValue.Substr(0,xmlAttributeLength);
            owWetter = xmlAttributeValue.ToString();
         }   
   
      }
   }
}






!Ermittelte Werte in Systemvariable schreiben
!**************************************************
!Wenn (noch) keine Systemvariable(n) vorhanden, diese anlegen.
!Code zum anlegen von Variablen abgeleitet von Esche's IT-Blog https://www.blogging-it.com/code-snippet-homematic-systemvariablen-ueber-ein-script-automatisch-erzeugen/programmierung/homematic-script.html

!Schreiben von svAktualisierung
if(svAktualisierung)
{
	!String bzw. Uhrzeit umformatieren
	genString1='';genTime1=null;genString2='';
	genString1 = owAktualisierung.Substr(0,10)#' '#owAktualisierung.Substr(11);
	genTime1 = genString1.ToTime();
	genString2 = genTime1.Format("%d.%m.%Y %H:%M"#" Uhr");
	svObject = dom.GetObject(svAktualisierung);
	!Wenn noch keine Systemvarible vorhanden, diese anlegen
	if (!svObject)
	{   
	    svObjectlist = dom.GetObject(ID_SYSTEM_VARIABLES);
	    svObject = dom.CreateObject(OT_VARDP);
	    svObjectlist.Add(svObject.ID());
	    svObject.Name(svAktualisierung);   
	    svObject.ValueType(ivtString);
	    svObject.ValueSubType(istChar8859);
	    svObject.DPInfo('OpenWeatherMap - Aktualisierung');
	    svObject.ValueUnit('');
	    svObject.State(genString2);
	    svObject.Internal(false);
	    svObject.Visible(true);
	    dom.RTUpdate(true);
	} else {
		svObject.State(genString2);
	}
	!Wenn CUxD-CMD-Device vorhanden und useLOGIT, dann Werte via CUxD loggen
	if((cuxCMD)&&(useLOGIT)){dom.GetObject(cuxCMDName#'.LOGIT').State(svAktualisierung#';'#genTime1);}
}



!Schreiben von svSonnenaufgang
if(svSonnenaufgang)
{
	genString1='';genTime1=null;genString2='';
	genString1 = owSonnenaufgang.Substr(0,10)#' '#owSonnenaufgang.Substr(11);
    integer DST;
    if (system.Date("%F").ToTime().IsDST() ==1) {DST = 7200;}
    else {DST = 3600;}
	genTime1 = genString1.ToTime();
	genString2 = genTime1.Format("%d.%m.%Y %H:%M"#" Uhr");
	svObject = dom.GetObject(svSonnenaufgang);
	if (!svObject)
	{   
	    svObjectlist = dom.GetObject(ID_SYSTEM_VARIABLES);
	    svObject = dom.CreateObject(OT_VARDP);
	    svObjectlist.Add(svObject.ID());
	    svObject.Name(svSonnenaufgang);   
	    svObject.ValueType(ivtString);
	    svObject.ValueSubType(istChar8859);
	    svObject.DPInfo('OpenWeatherMap - Sonnenaufgang');
	    svObject.ValueUnit('');
	    svObject.State(genString2);
	    svObject.Internal(false);
	    svObject.Visible(true);
	    dom.RTUpdate(true);
	} else {
		svObject.State(genString2);
	}
	if((cuxCMD)&&(useLOGIT)){dom.GetObject(cuxCMDName#'.LOGIT').State(svSonnenaufgang#';'#genTime1);}
}



!Schreiben von svSonnenuntergang
if(svSonnenuntergang)
{
	genString1='';genTime1=null;genString2='';
	genString1 = owSonnenuntergang.Substr(0,10)#' '#owSonnenuntergang.Substr(11);
    integer DST;
    if (system.Date("%F").ToTime().IsDST() ==1) {DST = 7200;}
    else {DST = 3600;}
	genTime1 = genString1.ToTime();
	genString2 = genTime1.Format("%d.%m.%Y %H:%M"#" Uhr");
	svObject = dom.GetObject(svSonnenuntergang);
	if (!svObject)
	{   
	    svObjectlist = dom.GetObject(ID_SYSTEM_VARIABLES);
	    svObject = dom.CreateObject(OT_VARDP);
	    svObjectlist.Add(svObject.ID());
	    svObject.Name(svSonnenuntergang);   
	    svObject.ValueType(ivtString);
	    svObject.ValueSubType(istChar8859);
	    svObject.DPInfo('OpenWeatherMap - Sonnenuntergang');
	    svObject.ValueUnit('');
	    svObject.State(genString2);
	    svObject.Internal(false);
	    svObject.Visible(true);
	    dom.RTUpdate(true);
	} else {
		svObject.State(genString2);
	}
	if((cuxCMD)&&(useLOGIT)){dom.GetObject(cuxCMDName#'.LOGIT').State(svSonnenuntergang#';'#genTime1);}
}



!Schreiben von svWetterstation
if(svWetterstation)
{
	genString1='';genString2='';genString3='';genInteger1=0;genInteger2=0;
	genInteger1=owWetterstation.Length();
	foreach(genInteger2,genInteger1)
	{
		genString1=owWetterstation.Substr(genInteger2-1,1);
		if(genString1=='Ã')
		{
			genString2=owWetterstation.Substr(genInteger2,1);
			if(genString2=='¼'){genString1='ü';genInteger2=genInteger2+1;}
			if(genString2=='¶'){genString1='ö';genInteger2=genInteger2+1;}
			if(genString2=='¤'){genString1='ä';genInteger2=genInteger2+1;}
		}
		genString3=genString3#genString1;
	}
	
	svObject = dom.GetObject(svWetterstation);
	if (!svObject)
	{   
	    svObjectlist = dom.GetObject(ID_SYSTEM_VARIABLES);
	    svObject = dom.CreateObject(OT_VARDP);
	    svObjectlist.Add(svObject.ID());
	    svObject.Name(svWetterstation);   
	    svObject.ValueType(ivtString);
	    svObject.ValueSubType(istChar8859);
	    svObject.DPInfo('OpenWeatherMap - Wetterstation');
	    svObject.ValueUnit('');
	    svObject.State(genString3);
	    svObject.Internal(false);
	    svObject.Visible(true);
	    dom.RTUpdate(true);
	} else {
		svObject.State(genString3);
	}
	if((cuxCMD)&&(useLOGIT)){dom.GetObject(cuxCMDName#'.LOGIT').State(svWetterstation#';'#genString3);}
}



!Schreiben von svWindgeschwindigkeit
if(svWindGeschwindigkeit)
{
	svObject = dom.GetObject(svWindGeschwindigkeit);
	if (!svObject){   
	    svObjectlist = dom.GetObject(ID_SYSTEM_VARIABLES);
	    svObject = dom.CreateObject(OT_VARDP);
	    svObjectlist.Add(svObject.ID());
	    svObject.Name(svWindGeschwindigkeit);   
	    svObject.ValueType(ivtFloat);
	    svObject.ValueSubType(istGeneric);
	    svObject.DPInfo("OpenWeatherMap - Windgeschwindigkeit");
	    svObject.ValueUnit("m/s");
	    svObject.ValueMin(0.0000);
	    svObject.ValueMax(500.0000);
	    svObject.State(owWindGeschwindigkeit);
	    svObject.Internal(false);
	    svObject.Visible(true);
	    dom.RTUpdate(true);
	} else {
		svObject.State(owWindGeschwindigkeit);
	}
	if((cuxCMD)&&(useLOGIT)){dom.GetObject(cuxCMDName#'.LOGIT').State(svWindGeschwindigkeit#';'#owWindGeschwindigkeit);}
}

	

!Schreiben von svLuftdruck
if(svLuftdruck)
{
	svObject = dom.GetObject(svLuftdruck);
	if (!svObject){   
	    svObjectlist = dom.GetObject(ID_SYSTEM_VARIABLES);
	    svObject = dom.CreateObject(OT_VARDP);
	    svObjectlist.Add(svObject.ID());
	    svObject.Name(svLuftdruck);   
	    svObject.ValueType(ivtFloat);
	    svObject.ValueSubType(istGeneric);
	    svObject.DPInfo("OpenWeatherMap - Luftdruck");
	    svObject.ValueUnit("hPa");
	    svObject.ValueMin(500.0000);
	    svObject.ValueMax(1100.0000);
	    svObject.State(owLuftdruck);
	    svObject.Internal(false);
	    svObject.Visible(true);
	    dom.RTUpdate(true);
	} else {
		svObject.State(owLuftdruck);
	}
	if((cuxCMD)&&(useLOGIT)){dom.GetObject(cuxCMDName#'.LOGIT').State(svLuftdruck#';'#owLuftdruck);}
}

	

!Schreiben von svTemperatur
if(svTemperatur)
{
	svObject = dom.GetObject(svTemperatur);
	if (!svObject){   
	    svObjectlist = dom.GetObject(ID_SYSTEM_VARIABLES);
	    svObject = dom.CreateObject(OT_VARDP);
	    svObjectlist.Add(svObject.ID());
	    svObject.Name(svTemperatur);   
	    svObject.ValueType(ivtFloat);
	    svObject.ValueSubType(istGeneric);
	    svObject.DPInfo("OpenWeatherMap - Temperatur");
	    svObject.ValueUnit("°C");
	    svObject.ValueMin(-50.0000);
	    svObject.ValueMax(50.0000);
	    svObject.State(owTemperatur);
	    svObject.Internal(false);
	    svObject.Visible(true);
	    dom.RTUpdate(true);
	} else {
		svObject.State(owTemperatur);
	}
	if((cuxCMD)&&(useLOGIT)){dom.GetObject(cuxCMDName#'.LOGIT').State(svTemperatur#';'#owTemperatur);}
	if(cuxWDS){dom.GetObject(cuxWDSName#'.SET_TEMPERATURE').State(owTemperatur);}
}



!Schreiben von svMinimalTemperatur
if(svMinimalTemperatur)
{
	svObject = dom.GetObject(svMinimalTemperatur);
	if (!svObject){   
	    svObjectlist = dom.GetObject(ID_SYSTEM_VARIABLES);
	    svObject = dom.CreateObject(OT_VARDP);
	    svObjectlist.Add(svObject.ID());
	    svObject.Name(svMinimalTemperatur);   
	    svObject.ValueType(ivtFloat);
	    svObject.ValueSubType(istGeneric);
	    svObject.DPInfo("OpenWeatherMap - Temperatur (min.)");
	    svObject.ValueUnit("°C");
	    svObject.ValueMin(-50.0000);
	    svObject.ValueMax(50.0000);
	    svObject.State(owMinimalTemperatur);
	    svObject.Internal(false);
	    svObject.Visible(true);
	    dom.RTUpdate(true);
	} else {
		svObject.State(owMinimalTemperatur);
	}
	if((cuxCMD)&&(useLOGIT)){dom.GetObject(cuxCMDName#'.LOGIT').State(svMinimalTemperatur#';'#owMinimalTemperatur);}
}



!Schreiben von svMaximalTemperatur
if(svMaximalTemperatur)
{
	svObject = dom.GetObject(svMaximalTemperatur);
	if (!svObject){   
	    svObjectlist = dom.GetObject(ID_SYSTEM_VARIABLES);
	    svObject = dom.CreateObject(OT_VARDP);
	    svObjectlist.Add(svObject.ID());
	    svObject.Name(svMaximalTemperatur);   
	    svObject.ValueType(ivtFloat);
	    svObject.ValueSubType(istGeneric);
	    svObject.DPInfo("OpenWeatherMap - Temperatur (max.)");
	    svObject.ValueUnit("°C");
	    svObject.ValueMin(-50.0000);
	    svObject.ValueMax(50.0000);
	    svObject.State(owMaximalTemperatur);
	    svObject.Internal(false);
	    svObject.Visible(true);
	    dom.RTUpdate(true);
	} else {
		svObject.State(owMaximalTemperatur);
	}
	if((cuxCMD)&&(useLOGIT)){dom.GetObject(cuxCMDName#'.LOGIT').State(svMaximalTemperatur#';'#owMaximalTemperatur);}
}



!Schreiben von svLuffeuchtigkeit
if(svLuftfeuchtigkeit)
{
	svObject = dom.GetObject(svLuftfeuchtigkeit);
	if (!svObject){   
	    svObjectlist = dom.GetObject(ID_SYSTEM_VARIABLES);
	    svObject = dom.CreateObject(OT_VARDP);
	    svObjectlist.Add(svObject.ID());
	    svObject.Name(svLuftfeuchtigkeit);   
	    svObject.ValueType(ivtFloat);
	    svObject.ValueSubType(istGeneric);
	    svObject.DPInfo("OpenWeatherMap - Luftfeuchtigkeit");
	    svObject.ValueUnit("%");
	    svObject.ValueMin(0.0000);
	    svObject.ValueMax(100.0000);
	    svObject.State(owLuftfeuchtigkeit);
	    svObject.Internal(false);
	    svObject.Visible(true);
	    dom.RTUpdate(true);
	} else {
		svObject.State(owLuftfeuchtigkeit);
	}
	if((cuxCMD)&&(useLOGIT)){dom.GetObject(cuxCMDName#'.LOGIT').State(svLuftfeuchtigkeit#';'#owLuftfeuchtigkeit);}
	if(cuxWDS){dom.GetObject(cuxWDSName#'.SET_HUMIDITY').State(owLuftfeuchtigkeit);}
}



!Schreiben von svWindrichtung
if(svWindRichtung)
{
	!Englische Windrichtungsangaben übersetzen (z.B. N-W-E in Nord-West-Ost)
	genString1='';genString2='';genString3='';genInteger1=0;
	genString1 = owWindRichtung;
	foreach(genInteger1,genString1.Length())
	{
		genString2=genString1.Substr(genInteger1-1,1);
		if(genString2=='E'){genString3=genString3#'Ost-';}
		if(genString2=='S'){genString3=genString3#'Süd-';}
		if(genString2=='W'){genString3=genString3#'West-';}
		if(genString2=='N'){genString3=genString3#'Nord-';}
	}
	genString1=genString3.Substr(0,genString3.Length()-1);
	genString2=owGradzahl.ToString()#'° '#genString1;
	svObject = dom.GetObject(svWindRichtung);
	if (!svObject)
	{   
	    svObjectlist = dom.GetObject(ID_SYSTEM_VARIABLES);
	    svObject = dom.CreateObject(OT_VARDP);
	    svObjectlist.Add(svObject.ID());
	    svObject.Name(svWindRichtung);   
	    svObject.ValueType(ivtString);
	    svObject.ValueSubType(istChar8859);
	    svObject.DPInfo('OpenWeatherMap - Windrichtung');
	    svObject.ValueUnit('');
	    svObject.State(genString2);
	    svObject.Internal(false);
	    svObject.Visible(true);
	    dom.RTUpdate(true);
	} else {
		svObject.State(genString2);
	}
	if((cuxCMD)&&(useLOGIT)){dom.GetObject(cuxCMDName#'.LOGIT').State(svWindRichtung#';'#genString2);}
}	

!Schreiben von svWetter
if(svWetter)
{
   genString1='';genString2='';genString3='';genInteger1=0;
   genString1 = owWetter;
   genString2=genString1;

!WriteLine(genString2);
   
	if(genString2=='thunderstorm with light rain'){genString3=genString3#'Gewitter mit leichtem Regen';}
	if(genString2=='thunderstorm with rain'){genString3=genString3#'Gewittersturm mit Regen';}
	if(genString2=='thunderstorm with heavy rain'){genString3=genString3#'Gewitter mit heftigem Regen';}
	if(genString2=='light thunderstorm'){genString3=genString3#'leichtes Gewitter';}
	if(genString2=='thunderstorm'){genString3=genString3#'Gewitter';}
	if(genString2=='heavy thunderstorm'){genString3=genString3#'heftiges Gewitter';}
	if(genString2=='ragged thunderstorm'){genString3=genString3#'heftiges Gewitter';}
	if(genString2=='thunderstorm with light drizzle'){genString3=genString3#'Gewitter mit leichtem Nieselregen';}
	if(genString2=='thunderstorm with drizzle'){genString3=genString3#'Gewitter mit Nieselregen';}
	if(genString2=='thunderstorm with heavy drizzle'){genString3=genString3#'Gewitter mit starkem Nieselregen';}
	if(genString2=='light intensity drizzle'){genString3=genString3#'leichter Nieselregen';}
	if(genString2=='drizzle'){genString3=genString3#'Nieselregen';}
	if(genString2=='heavy intensity drizzle'){genString3=genString3#'starker Nieselregen';}
	if(genString2=='light intensity drizzle rain'){genString3=genString3#'leichter Nieselregen';}
	if(genString2=='drizzle rain'){genString3=genString3#'Nieselregen';}
	if(genString2=='heavy intensity drizzle rain'){genString3=genString3#'starker Nieselregen';}
	if(genString2=='shower rain and drizzle'){genString3=genString3#'Regenschauer und Nieselregen';}
	if(genString2=='heavy shower rain and drizzle'){genString3=genString3#'starker Regenschauer und Nieselregen';}
	if(genString2=='shower drizzle'){genString3=genString3#'Regenschauer';}
	if(genString2=='light rain'){genString3=genString3#'leichter Regen';}
	if(genString2=='moderate rain'){genString3=genString3#'mäßiger Regen';}
	if(genString2=='heavy intensity rain'){genString3=genString3#'starker Regen';}
	if(genString2=='very heavy rain'){genString3=genString3#'sehr starker Regen';}
	if(genString2=='extreme rain'){genString3=genString3#'Extremniederschläge';}
	if(genString2=='freezing rain'){genString3=genString3#'Eisregen';}
	if(genString2=='light intensity shower rain'){genString3=genString3#'leichter Regenschauer';}
	if(genString2=='shower rain'){genString3=genString3#'Regenschauer';}
	if(genString2=='heavy intensity shower rain'){genString3=genString3#'starker Regenschauer';}
	if(genString2=='ragged shower rain'){genString3=genString3#'strömender Regen';}
	if(genString2=='light snow'){genString3=genString3#'leichter Schnee';}
	if(genString2=='snow'){genString3=genString3#'Schnee';}
	if(genString2=='heavy snow'){genString3=genString3#'heftiger Schneefall';}
	if(genString2=='sleet'){genString3=genString3#'Graupel';}
	if(genString2=='shower sleet'){genString3=genString3#'Schauer';}
	if(genString2=='light rain and snow'){genString3=genString3#'leichter Regen und Schnee';}
	if(genString2=='rain and snow'){genString3=genString3#'Schneeregen';}
	if(genString2=='light shower snow'){genString3=genString3#'leichter Schneeschauer';}
	if(genString2=='shower snow'){genString3=genString3#'Schneeschauer';}
	if(genString2=='heavy shower snow'){genString3=genString3#'starker Schneeschauer';}
	if(genString2=='mist'){genString3=genString3#'Nebel';}
	if(genString2=='smoke'){genString3=genString3#'Rauch';}
	if(genString2=='haze'){genString3=genString3#'Dunst';}
	if(genString2=='sand, dust whirls'){genString3=genString3#'Sand, Staubwirbel';}
	if(genString2=='fog'){genString3=genString3#'Nebel';}
	if(genString2=='sand'){genString3=genString3#'Sand';}
	if(genString2=='dust'){genString3=genString3#'Staub';}
	if(genString2=='volcanic ash'){genString3=genString3#'Vulkanasche';}
	if(genString2=='squalls'){genString3=genString3#'Sturmböen';}
	if(genString2=='tornado'){genString3=genString3#'Tornado';}
	if(genString2=='clear sky'){genString3=genString3#'klarer Himmel';}
	if(genString2=='few clouds'){genString3=genString3#'vereinzelte Wolken';}
	if(genString2=='scattered clouds'){genString3=genString3#'aufgelockerte Bewölkung';}
	if(genString2=='broken clouds'){genString3=genString3#'durchbrochene Bewölkung';}
	if(genString2=='overcast clouds'){genString3=genString3#'bedeckt';}

   genString1=genString3.Substr(0,genString3.Length());
   genString2=genString1;

   svObject = dom.GetObject(svWetter);
   if (!svObject){   
       svObjectlist = dom.GetObject(ID_SYSTEM_VARIABLES);
       svObject = dom.CreateObject(OT_VARDP);
       svObjectlist.Add(svObject.ID());
       svObject.Name(svWetter);   
       svObject.ValueType(ivtString);
       svObject.ValueSubType(istChar8859);
       svObject.DPInfo("OpenWeatherMap - Wetter");
       svObject.ValueUnit('');
       svObject.State(owWetter);
       svObject.Internal(false);
       svObject.Visible(true);
       dom.RTUpdate(true);
   } else {
!if(dom.GetObject("Tageszeit").Value()==0)
if ((((0.01 * system.Date("%M").ToInteger()) + system.Date("%H").ToInteger())>((0.01 * system.SunsetTime("%M").ToInteger()) + system.SunsetTime("%H").ToInteger()))
|| (((0.01 * system.Date("%M").ToInteger()) + system.Date("%H").ToInteger())<((0.01 * system.SunriseTime("%M").ToInteger()) + system.SunriseTime("%H").ToInteger())))
{
      svObject.State(genString2#' ');
}
else 
{
      svObject.State(genString2);
}
   }
   if((cuxCMD)&&(useLOGIT)){dom.GetObject(cuxCMDName#'.LOGIT').State(svWetter#';'#genString2);}
} 

Die Abfrage per CUxD auf "false" zu setzten hat leider auch nicht gehlfen.

Danke schon mal für die Hilfe!
Micha

CharlyFive
Beiträge: 189
Registriert: 01.04.2019, 18:24
Hat sich bedankt: 1 Mal

Re: HM-Script für virtuelle Wetterstation

Beitrag von CharlyFive » 04.08.2019, 22:15

Hallo! Danke für das Script, ich nutze es seit gestern auch erfolgreich.

Kann man auch irgendwie an diese Bedingungen kommen: Regen heute, Regen gestern, Sonnenschein heute und Sonnenschein gestern?

Senftopf
Beiträge: 3
Registriert: 06.08.2019, 14:28

Re: HM-Script für virtuelle Wetterstation

Beitrag von Senftopf » 06.08.2019, 14:33

Gib mal die generierte URL in ein Browserfenster ein, dann siehst Du was an Informationen zurück gesendet werden. Im Grunde kann man die URL auch um einen Ländercode erweitern und sich damit die ganze Übersetzung beim Schreiben von svWetter sparen. Ich schaue mal heute Abend nach Feierabend welche Änderungen ich an dem Skript vorgenommen habe. Ich meine das die letzte Version auch noch einen Fehler enthält, auf den ein paar Seiten vorher hngewiesen wird.

Gruß!

CharlyFive
Beiträge: 189
Registriert: 01.04.2019, 18:24
Hat sich bedankt: 1 Mal

Re: HM-Script für virtuelle Wetterstation

Beitrag von CharlyFive » 06.08.2019, 20:55

Hi!

Das kommt bei mir raus. So wie ich das sehe, ist dort auf Regen usw. dabei. Wäre cool wenn das auch in das Script kommt :)

Code: Alles auswählen

{
	"cod": "200",
	"message": 0.0105,
	"cnt": 40,
	"list": [{
		"dt": 1565125200,
		"main": {
			"temp": 291.06,
			"temp_min": 291.06,
			"temp_max": 294.262,
			"pressure": 1009.29,
			"sea_level": 1009.29,
			"grnd_level": 999.43,
			"humidity": 62,
			"temp_kf": -3.2
		},
		"weather": [{
			"id": 500,
			"main": "Rain",
			"description": "light rain",
			"icon": "10n"
		}],
		"clouds": {
			"all": 100
		},
		"wind": {
			"speed": 2.71,
			"deg": 234.125
		},
		"rain": {
			"3h": 0.25
		},
		"sys": {
			"pod": "n"
		},
		"dt_txt": "2019-08-06 21:00:00"
	}, {
		"dt": 1565136000,
		"main": {
			"temp": 290.07,
			"temp_min": 290.07,
			"temp_max": 292.472,
			"pressure": 1008.36,
			"sea_level": 1008.36,
			"grnd_level": 998.47,
			"humidity": 75,
			"temp_kf": -2.4
		},
		"weather": [{
			"id": 500,
			"main": "Rain",
			"description": "light rain",
			"icon": "10n"
		}],
		"clouds": {
			"all": 61
		},
		"wind": {
			"speed": 2.17,
			"deg": 226.833
		},
		"rain": {
			"3h": 0.375
		},
		"sys": {
			"pod": "n"
		},
		"dt_txt": "2019-08-07 00:00:00"
	}, {
		"dt": 1565146800,
		"main": {
			"temp": 289.89,
			"temp_min": 289.89,
			"temp_max": 291.494,
			"pressure": 1007.94,
			"sea_level": 1007.94,
			"grnd_level": 998.48,
			"humidity": 78,
			"temp_kf": -1.6
		},
		"weather": [{
			"id": 500,
			"main": "Rain",
			"description": "light rain",
			"icon": "10n"
		}],
		"clouds": {
			"all": 67
		},
		"wind": {
			"speed": 2.41,
			"deg": 232.783
		},
		"rain": {
			"3h": 0.062
		},
		"sys": {
			"pod": "n"
		},
		"dt_txt": "2019-08-07 03:00:00"
	}, {
		"dt": 1565157600,
		"main": {
			"temp": 291.38,
			"temp_min": 291.38,
			"temp_max": 292.185,
			"pressure": 1007.34,
			"sea_level": 1007.34,
			"grnd_level": 997.81,
			"humidity": 70,
			"temp_kf": -0.8
		},
		"weather": [{
			"id": 803,
			"main": "Clouds",
			"description": "broken clouds",
			"icon": "04d"
		}],
		"clouds": {
			"all": 83
		},
		"wind": {
			"speed": 1.34,
			"deg": 236.772
		},
		"sys": {
			"pod": "d"
		},
		"dt_txt": "2019-08-07 06:00:00"
	}, {
		"dt": 1565168400,
		"main": {
			"temp": 292.8,
			"temp_min": 292.8,
			"temp_max": 292.8,
			"pressure": 1008.06,
			"sea_level": 1008.06,
			"grnd_level": 998.78,
			"humidity": 64,
			"temp_kf": 0
		},
		"weather": [{
			"id": 804,
			"main": "Clouds",
			"description": "overcast clouds",
			"icon": "04d"
		}],
		"clouds": {
			"all": 100
		},
		"wind": {
			"speed": 1.04,
			"deg": 251.53
		},
		"sys": {
			"pod": "d"
		},
		"dt_txt": "2019-08-07 09:00:00"
	}, {
		"dt": 1565179200,
		"main": {
			"temp": 295.911,
			"temp_min": 295.911,
			"temp_max": 295.911,
			"pressure": 1006.67,
			"sea_level": 1006.67,
			"grnd_level": 997.55,
			"humidity": 52,
			"temp_kf": 0
		},
		"weather": [{
			"id": 804,
			"main": "Clouds",
			"description": "overcast clouds",
			"icon": "04d"
		}],
		"clouds": {
			"all": 100
		},
		"wind": {
			"speed": 2.35,
			"deg": 278.065
		},
		"sys": {
			"pod": "d"
		},
		"dt_txt": "2019-08-07 12:00:00"
	}, {
		"dt": 1565190000,
		"main": {
			"temp": 297.065,
			"temp_min": 297.065,
			"temp_max": 297.065,
			"pressure": 1006.45,
			"sea_level": 1006.45,
			"grnd_level": 997.19,
			"humidity": 46,
			"temp_kf": 0
		},
		"weather": [{
			"id": 804,
			"main": "Clouds",
			"description": "overcast clouds",
			"icon": "04d"
		}],
		"clouds": {
			"all": 100
		},
		"wind": {
			"speed": 3.51,
			"deg": 252.88
		},
		"sys": {
			"pod": "d"
		},
		"dt_txt": "2019-08-07 15:00:00"
	}, {
		"dt": 1565200800,
		"main": {
			"temp": 294.422,
			"temp_min": 294.422,
			"temp_max": 294.422,
			"pressure": 1007.27,
			"sea_level": 1007.27,
			"grnd_level": 998.03,
			"humidity": 59,
			"temp_kf": 0
		},
		"weather": [{
			"id": 500,
			"main": "Rain",
			"description": "light rain",
			"icon": "10d"
		}],
		"clouds": {
			"all": 100
		},
		"wind": {
			"speed": 3.31,
			"deg": 273.016
		},
		"rain": {
			"3h": 0.75
		},
		"sys": {
			"pod": "d"
		},
		"dt_txt": "2019-08-07 18:00:00"
	}, {
		"dt": 1565211600,
		"main": {
			"temp": 292.291,
			"temp_min": 292.291,
			"temp_max": 292.291,
			"pressure": 1010.12,
			"sea_level": 1010.12,
			"grnd_level": 1000.36,
			"humidity": 66,
			"temp_kf": 0
		},
		"weather": [{
			"id": 500,
			"main": "Rain",
			"description": "light rain",
			"icon": "10n"
		}],
		"clouds": {
			"all": 2
		},
		"wind": {
			"speed": 2.52,
			"deg": 226.913
		},
		"rain": {
			"3h": 0.312
		},
		"sys": {
			"pod": "n"
		},
		"dt_txt": "2019-08-07 21:00:00"
	}, {
		"dt": 1565222400,
		"main": {
			"temp": 290.387,
			"temp_min": 290.387,
			"temp_max": 290.387,
			"pressure": 1010.22,
			"sea_level": 1010.22,
			"grnd_level": 1000.79,
			"humidity": 69,
			"temp_kf": 0
		},
		"weather": [{
			"id": 500,
			"main": "Rain",
			"description": "light rain",
			"icon": "10n"
		}],
		"clouds": {
			"all": 1
		},
		"wind": {
			"speed": 2.73,
			"deg": 238.928
		},
		"rain": {
			"3h": 0.126
		},
		"sys": {
			"pod": "n"
		},
		"dt_txt": "2019-08-08 00:00:00"
	}, {
		"dt": 1565233200,
		"main": {
			"temp": 289.261,
			"temp_min": 289.261,
			"temp_max": 289.261,
			"pressure": 1011.49,
			"sea_level": 1011.49,
			"grnd_level": 1002.05,
			"humidity": 71,
			"temp_kf": 0
		},
		"weather": [{
			"id": 800,
			"main": "Clear",
			"description": "clear sky",
			"icon": "01n"
		}],
		"clouds": {
			"all": 0
		},
		"wind": {
			"speed": 2.82,
			"deg": 238.143
		},
		"sys": {
			"pod": "n"
		},
		"dt_txt": "2019-08-08 03:00:00"
	}, {
		"dt": 1565244000,
		"main": {
			"temp": 290.143,
			"temp_min": 290.143,
			"temp_max": 290.143,
			"pressure": 1011.63,
			"sea_level": 1011.63,
			"grnd_level": 1002.33,
			"humidity": 70,
			"temp_kf": 0
		},
		"weather": [{
			"id": 800,
			"main": "Clear",
			"description": "clear sky",
			"icon": "01d"
		}],
		"clouds": {
			"all": 0
		},
		"wind": {
			"speed": 3.37,
			"deg": 242.402
		},
		"sys": {
			"pod": "d"
		},
		"dt_txt": "2019-08-08 06:00:00"
	}, {
		"dt": 1565254800,
		"main": {
			"temp": 294.143,
			"temp_min": 294.143,
			"temp_max": 294.143,
			"pressure": 1012.95,
			"sea_level": 1012.95,
			"grnd_level": 1003.72,
			"humidity": 51,
			"temp_kf": 0
		},
		"weather": [{
			"id": 800,
			"main": "Clear",
			"description": "clear sky",
			"icon": "01d"
		}],
		"clouds": {
			"all": 0
		},
		"wind": {
			"speed": 4.45,
			"deg": 255.695
		},
		"sys": {
			"pod": "d"
		},
		"dt_txt": "2019-08-08 09:00:00"
	}, {
		"dt": 1565265600,
		"main": {
			"temp": 297.022,
			"temp_min": 297.022,
			"temp_max": 297.022,
			"pressure": 1012.64,
			"sea_level": 1012.64,
			"grnd_level": 1003.49,
			"humidity": 40,
			"temp_kf": 0
		},
		"weather": [{
			"id": 801,
			"main": "Clouds",
			"description": "few clouds",
			"icon": "02d"
		}],
		"clouds": {
			"all": 16
		},
		"wind": {
			"speed": 4.72,
			"deg": 253.181
		},
		"sys": {
			"pod": "d"
		},
		"dt_txt": "2019-08-08 12:00:00"
	}, {
		"dt": 1565276400,
		"main": {
			"temp": 298.643,
			"temp_min": 298.643,
			"temp_max": 298.643,
			"pressure": 1012.87,
			"sea_level": 1012.87,
			"grnd_level": 1003.56,
			"humidity": 34,
			"temp_kf": 0
		},
		"weather": [{
			"id": 800,
			"main": "Clear",
			"description": "clear sky",
			"icon": "01d"
		}],
		"clouds": {
			"all": 5
		},
		"wind": {
			"speed": 4.49,
			"deg": 257.944
		},
		"sys": {
			"pod": "d"
		},
		"dt_txt": "2019-08-08 15:00:00"
	}, {
		"dt": 1565287200,
		"main": {
			"temp": 296.865,
			"temp_min": 296.865,
			"temp_max": 296.865,
			"pressure": 1012.24,
			"sea_level": 1012.24,
			"grnd_level": 1002.81,
			"humidity": 42,
			"temp_kf": 0
		},
		"weather": [{
			"id": 802,
			"main": "Clouds",
			"description": "scattered clouds",
			"icon": "03d"
		}],
		"clouds": {
			"all": 32
		},
		"wind": {
			"speed": 2.47,
			"deg": 277.877
		},
		"sys": {
			"pod": "d"
		},
		"dt_txt": "2019-08-08 18:00:00"
	}, {
		"dt": 1565298000,
		"main": {
			"temp": 294.101,
			"temp_min": 294.101,
			"temp_max": 294.101,
			"pressure": 1014.11,
			"sea_level": 1014.11,
			"grnd_level": 1004.14,
			"humidity": 49,
			"temp_kf": 0
		},
		"weather": [{
			"id": 802,
			"main": "Clouds",
			"description": "scattered clouds",
			"icon": "03n"
		}],
		"clouds": {
			"all": 35
		},
		"wind": {
			"speed": 1.26,
			"deg": 98.888
		},
		"sys": {
			"pod": "n"
		},
		"dt_txt": "2019-08-08 21:00:00"
	}, {
		"dt": 1565308800,
		"main": {
			"temp": 292.123,
			"temp_min": 292.123,
			"temp_max": 292.123,
			"pressure": 1013.01,
			"sea_level": 1013.01,
			"grnd_level": 1003.22,
			"humidity": 56,
			"temp_kf": 0
		},
		"weather": [{
			"id": 802,
			"main": "Clouds",
			"description": "scattered clouds",
			"icon": "03n"
		}],
		"clouds": {
			"all": 48
		},
		"wind": {
			"speed": 3.02,
			"deg": 114.186
		},
		"sys": {
			"pod": "n"
		},
		"dt_txt": "2019-08-09 00:00:00"
	}, {
		"dt": 1565319600,
		"main": {
			"temp": 291.363,
			"temp_min": 291.363,
			"temp_max": 291.363,
			"pressure": 1011.89,
			"sea_level": 1011.89,
			"grnd_level": 1001.96,
			"humidity": 60,
			"temp_kf": 0
		},
		"weather": [{
			"id": 804,
			"main": "Clouds",
			"description": "overcast clouds",
			"icon": "04n"
		}],
		"clouds": {
			"all": 94
		},
		"wind": {
			"speed": 3.55,
			"deg": 120.011
		},
		"sys": {
			"pod": "n"
		},
		"dt_txt": "2019-08-09 03:00:00"
	}, {
		"dt": 1565330400,
		"main": {
			"temp": 292.765,
			"temp_min": 292.765,
			"temp_max": 292.765,
			"pressure": 1009.59,
			"sea_level": 1009.59,
			"grnd_level": 1000.11,
			"humidity": 63,
			"temp_kf": 0
		},
		"weather": [{
			"id": 804,
			"main": "Clouds",
			"description": "overcast clouds",
			"icon": "04d"
		}],
		"clouds": {
			"all": 97
		},
		"wind": {
			"speed": 3.71,
			"deg": 129.359
		},
		"sys": {
			"pod": "d"
		},
		"dt_txt": "2019-08-09 06:00:00"
	}, {
		"dt": 1565341200,
		"main": {
			"temp": 292.643,
			"temp_min": 292.643,
			"temp_max": 292.643,
			"pressure": 1008.88,
			"sea_level": 1008.88,
			"grnd_level": 998.46,
			"humidity": 73,
			"temp_kf": 0
		},
		"weather": [{
			"id": 500,
			"main": "Rain",
			"description": "light rain",
			"icon": "10d"
		}],
		"clouds": {
			"all": 100
		},
		"wind": {
			"speed": 6.04,
			"deg": 123.545
		},
		"rain": {
			"3h": 1.688
		},
		"sys": {
			"pod": "d"
		},
		"dt_txt": "2019-08-09 09:00:00"
	}, {
		"dt": 1565352000,
		"main": {
			"temp": 300.143,
			"temp_min": 300.143,
			"temp_max": 300.143,
			"pressure": 1007.69,
			"sea_level": 1007.69,
			"grnd_level": 996.87,
			"humidity": 48,
			"temp_kf": 0
		},
		"weather": [{
			"id": 500,
			"main": "Rain",
			"description": "light rain",
			"icon": "10d"
		}],
		"clouds": {
			"all": 100
		},
		"wind": {
			"speed": 4.4,
			"deg": 179.779
		},
		"rain": {
			"3h": 0.937
		},
		"sys": {
			"pod": "d"
		},
		"dt_txt": "2019-08-09 12:00:00"
	}, {
		"dt": 1565362800,
		"main": {
			"temp": 299.965,
			"temp_min": 299.965,
			"temp_max": 299.965,
			"pressure": 1008.06,
			"sea_level": 1008.06,
			"grnd_level": 998.08,
			"humidity": 53,
			"temp_kf": 0
		},
		"weather": [{
			"id": 500,
			"main": "Rain",
			"description": "light rain",
			"icon": "10d"
		}],
		"clouds": {
			"all": 100
		},
		"wind": {
			"speed": 4.56,
			"deg": 196.147
		},
		"rain": {
			"3h": 0.188
		},
		"sys": {
			"pod": "d"
		},
		"dt_txt": "2019-08-09 15:00:00"
	}, {
		"dt": 1565373600,
		"main": {
			"temp": 298.865,
			"temp_min": 298.865,
			"temp_max": 298.865,
			"pressure": 1008.14,
			"sea_level": 1008.14,
			"grnd_level": 998.29,
			"humidity": 54,
			"temp_kf": 0
		},
		"weather": [{
			"id": 804,
			"main": "Clouds",
			"description": "overcast clouds",
			"icon": "04d"
		}],
		"clouds": {
			"all": 100
		},
		"wind": {
			"speed": 4.03,
			"deg": 212.185
		},
		"rain": {},
		"sys": {
			"pod": "d"
		},
		"dt_txt": "2019-08-09 18:00:00"
	}, {
		"dt": 1565384400,
		"main": {
			"temp": 297.115,
			"temp_min": 297.115,
			"temp_max": 297.115,
			"pressure": 1009.73,
			"sea_level": 1009.73,
			"grnd_level": 999.97,
			"humidity": 55,
			"temp_kf": 0
		},
		"weather": [{
			"id": 804,
			"main": "Clouds",
			"description": "overcast clouds",
			"icon": "04n"
		}],
		"clouds": {
			"all": 99
		},
		"wind": {
			"speed": 4.4,
			"deg": 203.375
		},
		"sys": {
			"pod": "n"
		},
		"dt_txt": "2019-08-09 21:00:00"
	}, {
		"dt": 1565395200,
		"main": {
			"temp": 295.493,
			"temp_min": 295.493,
			"temp_max": 295.493,
			"pressure": 1010.16,
			"sea_level": 1010.16,
			"grnd_level": 1000.56,
			"humidity": 55,
			"temp_kf": 0
		},
		"weather": [{
			"id": 803,
			"main": "Clouds",
			"description": "broken clouds",
			"icon": "04n"
		}],
		"clouds": {
			"all": 74
		},
		"wind": {
			"speed": 5.12,
			"deg": 216.281
		},
		"sys": {
			"pod": "n"
		},
		"dt_txt": "2019-08-10 00:00:00"
	}, {
		"dt": 1565406000,
		"main": {
			"temp": 293.563,
			"temp_min": 293.563,
			"temp_max": 293.563,
			"pressure": 1011.03,
			"sea_level": 1011.03,
			"grnd_level": 1001.48,
			"humidity": 62,
			"temp_kf": 0
		},
		"weather": [{
			"id": 802,
			"main": "Clouds",
			"description": "scattered clouds",
			"icon": "03n"
		}],
		"clouds": {
			"all": 47
		},
		"wind": {
			"speed": 4.72,
			"deg": 215.009
		},
		"sys": {
			"pod": "n"
		},
		"dt_txt": "2019-08-10 03:00:00"
	}, {
		"dt": 1565416800,
		"main": {
			"temp": 293.1,
			"temp_min": 293.1,
			"temp_max": 293.1,
			"pressure": 1011.84,
			"sea_level": 1011.84,
			"grnd_level": 1002.6,
			"humidity": 62,
			"temp_kf": 0
		},
		"weather": [{
			"id": 802,
			"main": "Clouds",
			"description": "scattered clouds",
			"icon": "03d"
		}],
		"clouds": {
			"all": 29
		},
		"wind": {
			"speed": 5.64,
			"deg": 221.786
		},
		"sys": {
			"pod": "d"
		},
		"dt_txt": "2019-08-10 06:00:00"
	}, {
		"dt": 1565427600,
		"main": {
			"temp": 294.2,
			"temp_min": 294.2,
			"temp_max": 294.2,
			"pressure": 1012.63,
			"sea_level": 1012.63,
			"grnd_level": 1003.77,
			"humidity": 52,
			"temp_kf": 0
		},
		"weather": [{
			"id": 500,
			"main": "Rain",
			"description": "light rain",
			"icon": "10d"
		}],
		"clouds": {
			"all": 81
		},
		"wind": {
			"speed": 6.08,
			"deg": 236.433
		},
		"rain": {
			"3h": 0.062
		},
		"sys": {
			"pod": "d"
		},
		"dt_txt": "2019-08-10 09:00:00"
	}, {
		"dt": 1565438400,
		"main": {
			"temp": 295.3,
			"temp_min": 295.3,
			"temp_max": 295.3,
			"pressure": 1012.87,
			"sea_level": 1012.87,
			"grnd_level": 1004.18,
			"humidity": 46,
			"temp_kf": 0
		},
		"weather": [{
			"id": 500,
			"main": "Rain",
			"description": "light rain",
			"icon": "10d"
		}],
		"clouds": {
			"all": 91
		},
		"wind": {
			"speed": 6.82,
			"deg": 244.194
		},
		"rain": {
			"3h": 0.126
		},
		"sys": {
			"pod": "d"
		},
		"dt_txt": "2019-08-10 12:00:00"
	}, {
		"dt": 1565449200,
		"main": {
			"temp": 296.4,
			"temp_min": 296.4,
			"temp_max": 296.4,
			"pressure": 1013.5,
			"sea_level": 1013.5,
			"grnd_level": 1004.58,
			"humidity": 43,
			"temp_kf": 0
		},
		"weather": [{
			"id": 804,
			"main": "Clouds",
			"description": "overcast clouds",
			"icon": "04d"
		}],
		"clouds": {
			"all": 96
		},
		"wind": {
			"speed": 6.56,
			"deg": 238.528
		},
		"sys": {
			"pod": "d"
		},
		"dt_txt": "2019-08-10 15:00:00"
	}, {
		"dt": 1565460000,
		"main": {
			"temp": 295.697,
			"temp_min": 295.697,
			"temp_max": 295.697,
			"pressure": 1014.21,
			"sea_level": 1014.21,
			"grnd_level": 1004.75,
			"humidity": 50,
			"temp_kf": 0
		},
		"weather": [{
			"id": 804,
			"main": "Clouds",
			"description": "overcast clouds",
			"icon": "04d"
		}],
		"clouds": {
			"all": 92
		},
		"wind": {
			"speed": 5.71,
			"deg": 243.081
		},
		"sys": {
			"pod": "d"
		},
		"dt_txt": "2019-08-10 18:00:00"
	}, {
		"dt": 1565470800,
		"main": {
			"temp": 293,
			"temp_min": 293,
			"temp_max": 293,
			"pressure": 1015.94,
			"sea_level": 1015.94,
			"grnd_level": 1006.48,
			"humidity": 60,
			"temp_kf": 0
		},
		"weather": [{
			"id": 500,
			"main": "Rain",
			"description": "light rain",
			"icon": "10n"
		}],
		"clouds": {
			"all": 1
		},
		"wind": {
			"speed": 4.04,
			"deg": 247.633
		},
		"rain": {
			"3h": 0.062
		},
		"sys": {
			"pod": "n"
		},
		"dt_txt": "2019-08-10 21:00:00"
	}, {
		"dt": 1565481600,
		"main": {
			"temp": 290.846,
			"temp_min": 290.846,
			"temp_max": 290.846,
			"pressure": 1016.28,
			"sea_level": 1016.28,
			"grnd_level": 1007.17,
			"humidity": 58,
			"temp_kf": 0
		},
		"weather": [{
			"id": 800,
			"main": "Clear",
			"description": "clear sky",
			"icon": "01n"
		}],
		"clouds": {
			"all": 0
		},
		"wind": {
			"speed": 4.49,
			"deg": 243.532
		},
		"sys": {
			"pod": "n"
		},
		"dt_txt": "2019-08-11 00:00:00"
	}, {
		"dt": 1565492400,
		"main": {
			"temp": 289.6,
			"temp_min": 289.6,
			"temp_max": 289.6,
			"pressure": 1016.62,
			"sea_level": 1016.62,
			"grnd_level": 1007.35,
			"humidity": 61,
			"temp_kf": 0
		},
		"weather": [{
			"id": 800,
			"main": "Clear",
			"description": "clear sky",
			"icon": "01n"
		}],
		"clouds": {
			"all": 4
		},
		"wind": {
			"speed": 4.33,
			"deg": 239.694
		},
		"sys": {
			"pod": "n"
		},
		"dt_txt": "2019-08-11 03:00:00"
	}, {
		"dt": 1565503200,
		"main": {
			"temp": 290.2,
			"temp_min": 290.2,
			"temp_max": 290.2,
			"pressure": 1016.67,
			"sea_level": 1016.67,
			"grnd_level": 1007.34,
			"humidity": 61,
			"temp_kf": 0
		},
		"weather": [{
			"id": 801,
			"main": "Clouds",
			"description": "few clouds",
			"icon": "02d"
		}],
		"clouds": {
			"all": 11
		},
		"wind": {
			"speed": 4.81,
			"deg": 236.469
		},
		"sys": {
			"pod": "d"
		},
		"dt_txt": "2019-08-11 06:00:00"
	}, {
		"dt": 1565514000,
		"main": {
			"temp": 293.941,
			"temp_min": 293.941,
			"temp_max": 293.941,
			"pressure": 1017.33,
			"sea_level": 1017.33,
			"grnd_level": 1008,
			"humidity": 49,
			"temp_kf": 0
		},
		"weather": [{
			"id": 800,
			"main": "Clear",
			"description": "clear sky",
			"icon": "01d"
		}],
		"clouds": {
			"all": 2
		},
		"wind": {
			"speed": 5.61,
			"deg": 246.695
		},
		"sys": {
			"pod": "d"
		},
		"dt_txt": "2019-08-11 09:00:00"
	}, {
		"dt": 1565524800,
		"main": {
			"temp": 297.302,
			"temp_min": 297.302,
			"temp_max": 297.302,
			"pressure": 1016.71,
			"sea_level": 1016.71,
			"grnd_level": 1007.26,
			"humidity": 35,
			"temp_kf": 0
		},
		"weather": [{
			"id": 800,
			"main": "Clear",
			"description": "clear sky",
			"icon": "01d"
		}],
		"clouds": {
			"all": 2
		},
		"wind": {
			"speed": 6.29,
			"deg": 254.073
		},
		"sys": {
			"pod": "d"
		},
		"dt_txt": "2019-08-11 12:00:00"
	}, {
		"dt": 1565535600,
		"main": {
			"temp": 298.004,
			"temp_min": 298.004,
			"temp_max": 298.004,
			"pressure": 1015.86,
			"sea_level": 1015.86,
			"grnd_level": 1006.37,
			"humidity": 33,
			"temp_kf": 0
		},
		"weather": [{
			"id": 800,
			"main": "Clear",
			"description": "clear sky",
			"icon": "01d"
		}],
		"clouds": {
			"all": 2
		},
		"wind": {
			"speed": 5.12,
			"deg": 251.742
		},
		"sys": {
			"pod": "d"
		},
		"dt_txt": "2019-08-11 15:00:00"
	}, {
		"dt": 1565546400,
		"main": {
			"temp": 296.098,
			"temp_min": 296.098,
			"temp_max": 296.098,
			"pressure": 1015.16,
			"sea_level": 1015.16,
			"grnd_level": 1005.3,
			"humidity": 40,
			"temp_kf": 0
		},
		"weather": [{
			"id": 800,
			"main": "Clear",
			"description": "clear sky",
			"icon": "01d"
		}],
		"clouds": {
			"all": 1
		},
		"wind": {
			"speed": 3.44,
			"deg": 256.695
		},
		"sys": {
			"pod": "d"
		},
		"dt_txt": "2019-08-11 18:00:00"
	}],
	"city": {
		"id": 2886241,
		"name": "Regierungsbezirk Köln",
		"coord": {
			"lat": 50.8333,
			"lon": 7.1667
		},
		"country": "DE",
		"timezone": 7200
	}
}

MillenChi
Beiträge: 168
Registriert: 10.12.2014, 16:40
Wohnort: Daun
Hat sich bedankt: 10 Mal
Danksagung erhalten: 6 Mal
Kontaktdaten:

Re: HM-Script für virtuelle Wetterstation

Beitrag von MillenChi » 07.08.2019, 14:47

Michaw hat geschrieben:
23.06.2019, 15:54


Die Abfrage per CUxD auf "false" zu setzten hat leider auch nicht gehlfen.

Danke schon mal für die Hilfe!
Micha
War bei mir auch... Hab dann die Location per ID (aus der Liste) genutzt und seit dem gehts.

Senftopf
Beiträge: 3
Registriert: 06.08.2019, 14:28

Re: HM-Script für virtuelle Wetterstation

Beitrag von Senftopf » 07.08.2019, 15:24

was in dem Skript (oben) noch fehlt ist das

Code: Alles auswählen

+ DST
in

Code: Alles auswählen

genTime1 = genString1.ToTime()+DST;
nach jeweils:

Code: Alles auswählen

if (system.Date("%F").ToTime().IsDST() ==1) {DST = 7200;}
else {DST = 3600;}

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: HM-Script für virtuelle Wetterstation

Beitrag von joni-blue » 07.08.2019, 19:55

Hallo zusammen,

Mag einer von euch gerne auch mal ein komplettes fertiges Script posten?
Hat jemand eventuell den Ortscode von Hannover?
Reboot tut gut ! ! !

CharlyFive
Beiträge: 189
Registriert: 01.04.2019, 18:24
Hat sich bedankt: 1 Mal

Re: HM-Script für virtuelle Wetterstation

Beitrag von CharlyFive » 08.08.2019, 11:42

@Senftopf: Meintest Du eigentlich mich, oder jemand anderes?

Senftopf
Beiträge: 3
Registriert: 06.08.2019, 14:28

Re: HM-Script für virtuelle Wetterstation

Beitrag von Senftopf » 08.08.2019, 14:46

CharlyFive hat geschrieben:
08.08.2019, 11:42
@Senftopf: Meintest Du eigentlich mich, oder jemand anderes?
Bezüglich der URL-Eingabe ja, nur da ich selbst die Daten mit system.Exec abrufe, kann ich Dir spontan nicht mit einem Copy & Paste aus meinem Code weiterhelfen, ich würde ungern ungetesteten Code hier im Forum verteilen. Der Aufruf der URL sollte hier lediglich der Übersicht gelieferter Daten dienen, um die Frage zu beantworten ob man an gewisse Daten kommen kann. Werden die Daten geliefert, dann kann man diese auch verarbeiten.
Für Deine gewünschte Skript-Erweiterung suchst Du Dir den Code eines Parsers für einen ähnlichen Parameter und baust den dann entsprechend um. Ich selbst kann Dir aktuell wegen akuten Zeitmangels nicht weiterhelfen, möglicherweise kann aber auch einer der anderen Leser hier Unterstützung anbieten. Ansonsten ist das Skript gut zu verstehen, so dass man auch mit rudimentären Kenntnissen schnell ein Verständnis dafür aufbauen kann.

Der Post wegen des "+DST" war dann doch eher allgemein gehalten. Hier hatte dimmyprp beim Zusammenkopieren die Korrektur wohl übersehen.

Einen schönen Tag noch!

CharlyFive
Beiträge: 189
Registriert: 01.04.2019, 18:24
Hat sich bedankt: 1 Mal

Re: HM-Script für virtuelle Wetterstation

Beitrag von CharlyFive » 09.08.2019, 02:40

Ich habe leider absolut keine Ahnung von Scripten bzw. Programmieren

Antworten

Zurück zu „Projektvorstellungen“