Google Wetterserver down?

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

klassisch
Beiträge: 3974
Registriert: 24.03.2011, 04:32
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 110 Mal
Danksagung erhalten: 70 Mal

Re: Google Wetterserver down?

Beitrag von klassisch » 31.08.2012, 04:54

shen hat geschrieben:Mit Mittelwert meine ich den Wert, der sich ergibt, wenn man alle Werte sortiert und dann den Wert nimmt, der in dieser Liste in der Mitte liegt. So versauen grobe Ausreißer nicht die "Messung", denn diese stehen ganz oben und ganz unten auf der Liste, in der Mitte tummeln sich die akkuratesten Werte :-)
Meist Median genannt, probates Mittel zur Filterung statistischer Werte.

rmeyerz
Beiträge: 58
Registriert: 04.04.2011, 12:31

Re: Google Wetterserver down?

Beitrag von rmeyerz » 01.09.2012, 15:03

Wenn ich es richtig sehe, ist bei der Wunderground-Variante keine Min- bzw. Maxtemperatur für die nächsten 24 Stunden angegeben. Dies war bei Google eigentlich immer ganz praktisch.
Für die Anzeige in der CCU gab es ja vorher folgende Werte:
aktuelle Temperatur, prognostizierte Min- und Max-Temperatur des Tages, Wetterbeschreibung (Regen, Sonne etc.), Luftfeuchtigkeit, Windstärke und Windrichtung.
Schön wäre es, wenn diese Werte wieder mit im Display erschienen.

chbaechle
Beiträge: 31
Registriert: 18.04.2011, 09:30

Re: Google Wetterserver down?

Beitrag von chbaechle » 03.09.2012, 10:45

Aus meiner Sicht bietet wunderground sogar noch mehr Informationen, z.B. die voraussichtliche Regen- und Schneemenge. Die Infos sind für heute und die nächsten drei Tage jeweils für den Tag und die Nacht getrennt und dann nochmal zusammengefasst.

Ich poste hier mal das xml Beispiel, das Script für den Aufruf des tcl Scripts und das tcl Programm, das ich dazu geschrieben habe. Ich kann zwar programmieren, kannte tcl aber bis jetzt noch nicht. Mein Programm kann bestimmt noch optimiert werden. Ausserdem kann es die deutschen Umlaute bei der Übernahme der Zeichenkette in die Systemvariablen noch nicht richtig darstellen. Bin dankbar für einen Tipp, wie ich das lösen kann.

Mein tcl Script belegt (analog zum alten Google Wetter Script) die Systemvariablen Wetter Heute, Wetter in 1 Tag, Wetter in 2 Tagen und Wetter in 3 Tagen mit Min/Max-Temperatur, der Wetterlage und zusätzlich noch mit den zu erwartenden Regen- und Schneemengen. Die Namen der 4 Systemvariablen habe ich umbenannt, damit sie bei alphabetischer Sortierung in der richtigen Reihenfolge stehen.
Ausserdem habe ich drei Systemvariablen für meine Heizungs- und Jalousiensteuerung angelegt: Mintemp Morgen, Maxtemp Morgen und Maxtemp Heute.

Das tcl Programm ist ziemlich rechenintensiv. Wie bereits erwähnt, kann es bestimmt noch optimiert werden. Ich lasse es zur Zeit jede volle Stunde laufen. Dadurch hat meine Steuerung gestern glatt vergessen, die Jalousien runterzulassen. Zufällig war gestern genau um 20:00 Uhr Sonnenuntergang (da sollten die Jalousien runterfahren) :) . Da hat die CCU vermutlich den Zeitpunkt verpasst, weil das Wetter Script gelaufen ist. Ich starte es jetzt mit 30 Sekunden Verzögerung.

Zum Aufruf der Wettervorhersage ist noch zu erwähnen:
In der Zeile, die mit set url..... beginnt, muss <yourKey> mit dem persönlichen Schlüssel ersetzt werden, den man beim Anmelden bei wunderground.com erhält.

Liebe Grüsse
Christoph

XML Beispiel:

Code: Alles auswählen

<response>
	<version>0.1</version>
	<termsofService>http://www.wunderground.com/weather/api/d/terms.html</termsofService>
	<features>
		<feature>forecast</feature>
	</features>
	<forecast>
		<txt_forecast>
		<date>2:00 AM CEST</date>
		<forecastdays>
		<forecastday>
		<period>0</period>
		<icon>chancetstorms</icon>
		<icon_url>http://icons-ak.wxug.com/i/c/k/chancetstorms.gif</icon_url>
		<title>Donnerstag</title>
		<fcttext><![CDATA[Gewitter möglich. Höchsttemperatur: 66F. Light Wind. Regenrisiko 80%.]]></fcttext>
		<fcttext_metric><![CDATA[Gewitter möglich. Höchsttemperatur: 19C. Light Wind. Regenrisiko 80%.]]></fcttext_metric>
		<pop>80</pop>
		</forecastday>
		<forecastday>
		<period>1</period>
		<icon>chancerain</icon>
		<icon_url>http://icons-ak.wxug.com/i/c/k/chancerain.gif</icon_url>
		<title>Donnerstag Nacht</title>
		<fcttext><![CDATA[Gewitter möglich. Tiefsttemperatur: 50F. Light Wind. Regenrisiko 70%.]]></fcttext>
		<fcttext_metric><![CDATA[Gewitter möglich. Tiefsttemperatur: 10C. Light Wind. Regenrisiko 70%.]]></fcttext_metric>
		<pop>70</pop>
		</forecastday>
		<forecastday>
		<period>2</period>
		<icon>rain</icon>
		<icon_url>http://icons-ak.wxug.com/i/c/k/rain.gif</icon_url>
		<title>Freitag</title>
		<fcttext><![CDATA[Regen. Höchsttemperatur: 57F. Windgeschwindigkeit: 5-10 mph. Windrichtung: West-Südwest. Regenrisiko 90%.]]></fcttext>
		<fcttext_metric><![CDATA[Regen. Höchsttemperatur: 14C. Windgeschwindigkeit: 10-15 km/h. Windrichtung: West-Südwest. Regenrisiko 90%.]]></fcttext_metric>
		<pop>90</pop>
		</forecastday>
		<forecastday>
		<period>3</period>
		<icon>rain</icon>
		<icon_url>http://icons-ak.wxug.com/i/c/k/rain.gif</icon_url>
		<title>Freitag Nacht</title>
		<fcttext><![CDATA[Regen. Tiefsttemperatur: 46F. Light Wind. Regenrisiko 90%.]]></fcttext>
		<fcttext_metric><![CDATA[Regen. Tiefsttemperatur: 8C. Light Wind. Regenrisiko 90%.]]></fcttext_metric>
		<pop>90</pop>
		</forecastday>
		<forecastday>
		<period>4</period>
		<icon>chancerain</icon>
		<icon_url>http://icons-ak.wxug.com/i/c/k/chancerain.gif</icon_url>
		<title>Samstag</title>
		<fcttext><![CDATA[Regen möglich. Höchsttemperatur: 59F. Windgeschwindigkeit: 5-10 mph. Windrichtung: Nord-Nordwest. Regenrisiko 70%.]]></fcttext>
		<fcttext_metric><![CDATA[Regen möglich. Höchsttemperatur: 15C. Windgeschwindigkeit: 5-15 km/h. Windrichtung: Nord-Nordwest. Regenrisiko 70%.]]></fcttext_metric>
		<pop>70</pop>
		</forecastday>
		<forecastday>
		<period>5</period>
		<icon>chancerain</icon>
		<icon_url>http://icons-ak.wxug.com/i/c/k/chancerain.gif</icon_url>
		<title>Samstag Nacht</title>
		<fcttext><![CDATA[Regen möglich. Tiefsttemperatur: 48F. Light Wind. Regenrisiko 50%.]]></fcttext>
		<fcttext_metric><![CDATA[Regen möglich. Tiefsttemperatur: 9C. Light Wind. Regenrisiko 50%.]]></fcttext_metric>
		<pop>50</pop>
		</forecastday>
		<forecastday>
		<period>6</period>
		<icon>mostlycloudy</icon>
		<icon_url>http://icons-ak.wxug.com/i/c/k/mostlycloudy.gif</icon_url>
		<title>Sonntag</title>
		<fcttext><![CDATA[Wolkig. Höchsttemperatur: 63F. Windgeschwindigkeit: 5-10 mph. Windrichtung: Nord-Nordost.]]></fcttext>
		<fcttext_metric><![CDATA[Wolkig. Höchsttemperatur: 17C. Windgeschwindigkeit: 5-15 km/h. Windrichtung: Nord-Nordost.]]></fcttext_metric>
		<pop>0</pop>
		</forecastday>
		<forecastday>
		<period>7</period>
		<icon>cloudy</icon>
		<icon_url>http://icons-ak.wxug.com/i/c/k/cloudy.gif</icon_url>
		<title>Sonntag Nacht</title>
		<fcttext><![CDATA[Wolkig. Tiefsttemperatur: 50F. Light Wind.]]></fcttext>
		<fcttext_metric><![CDATA[Wolkig. Tiefsttemperatur: 10C. Light Wind.]]></fcttext_metric>
		<pop>20</pop>
		</forecastday>
		</forecastdays>
		</txt_forecast>
		<simpleforecast>
		<forecastdays>
		<forecastday>
		<date>
  <epoch>1346360400</epoch>
  <pretty_short>11:00 PM CEST</pretty_short>
  <pretty>11:00 PM CEST on August 30, 2012</pretty>
  <day>30</day>
  <month>8</month>
  <year>2012</year>
  <yday>242</yday>
  <hour>23</hour>
  <min>00</min>
  <sec>0</sec>
  <isdst>1</isdst>
  <monthname>August</monthname>
  <weekday_short>Do</weekday_short>
  <weekday>Donnerstag</weekday>
  <ampm>PM</ampm>
  <tz_short>CEST</tz_short>
  <tz_long>Europe/Zurich</tz_long>
</date>
					<period>1</period>
					<high>
						<fahrenheit>66</fahrenheit>
						<celsius>19</celsius>
					</high>
					<low>
						<fahrenheit>50</fahrenheit>
						<celsius>10</celsius>
					</low>
					<conditions>Gewitter möglich</conditions>
					
					<icon>chancetstorms</icon>
					<icon_url>http://icons-ak.wxug.com/i/c/k/chancetstorms.gif</icon_url>
					<skyicon>cloudy</skyicon>
					<pop>80</pop>
					<qpf_allday>
						<in>0.24</in>
						<mm>6.1</mm>
					</qpf_allday>
					<qpf_day>
						<in>0.16</in>
						<mm>4.1</mm>
					</qpf_day>
					<qpf_night>
						<in>0.19</in>
						<mm>4.8</mm>
					</qpf_night>
					<snow_allday>
						<in>0</in>
						<cm>0</cm>
					</snow_allday>
					<snow_day>
						<in>0</in>
						<cm>0</cm>
					</snow_day>
					<snow_night>
						<in>0</in>
						<cm>0</cm>
					</snow_night>
					<maxwind>
						<mph>4</mph>
						<kph>6</kph>
						<dir>West</dir>
						<degrees>259</degrees>
					</maxwind>
					<avewind>
						<mph>3</mph>
						<kph>5</kph>
						<dir>West-Südwest</dir>
						<degrees>258</degrees>
					</avewind>
					<avehumidity>83</avehumidity>
					<maxhumidity>98</maxhumidity>
					<minhumidity>72</minhumidity>
				</forecastday>
				
				<forecastday>
					<date>
  <epoch>1346446800</epoch>
  <pretty_short>11:00 PM CEST</pretty_short>
  <pretty>11:00 PM CEST on August 31, 2012</pretty>
  <day>31</day>
  <month>8</month>
  <year>2012</year>
  <yday>243</yday>
  <hour>23</hour>
  <min>00</min>
  <sec>0</sec>
  <isdst>1</isdst>
  <monthname>August</monthname>
  <weekday_short>Fr</weekday_short>
  <weekday>Freitag</weekday>
  <ampm>PM</ampm>
  <tz_short>CEST</tz_short>
  <tz_long>Europe/Zurich</tz_long>
</date>
					<period>2</period>
					<high>
						<fahrenheit>57</fahrenheit>
						<celsius>14</celsius>
					</high>
					<low>
						<fahrenheit>46</fahrenheit>
						<celsius>8</celsius>
					</low>
					<conditions>Regen</conditions>
					
					<icon>rain</icon>
					<icon_url>http://icons-ak.wxug.com/i/c/k/rain.gif</icon_url>
					<skyicon>cloudy</skyicon>
					<pop>90</pop>
					<qpf_allday>
						<in>0.91</in>
						<mm>23.1</mm>
					</qpf_allday>
					<qpf_day>
						<in>0.23</in>
						<mm>5.8</mm>
					</qpf_day>
					<qpf_night>
						<in>0.90</in>
						<mm>22.9</mm>
					</qpf_night>
					<snow_allday>
						<in>0</in>
						<cm>0</cm>
					</snow_allday>
					<snow_day>
						<in>0</in>
						<cm>0</cm>
					</snow_day>
					<snow_night>
						<in>0</in>
						<cm>0</cm>
					</snow_night>
					<maxwind>
						<mph>6</mph>
						<kph>10</kph>
						<dir>West-Südwest</dir>
						<degrees>238</degrees>
					</maxwind>
					<avewind>
						<mph>5</mph>
						<kph>8</kph>
						<dir>West-Südwest</dir>
						<degrees>248</degrees>
					</avewind>
					<avehumidity>91</avehumidity>
					<maxhumidity>100</maxhumidity>
					<minhumidity>83</minhumidity>
				</forecastday>
				
				<forecastday>
					<date>
  <epoch>1346533200</epoch>
  <pretty_short>11:00 PM CEST</pretty_short>
  <pretty>11:00 PM CEST on September 01, 2012</pretty>
  <day>1</day>
  <month>9</month>
  <year>2012</year>
  <yday>244</yday>
  <hour>23</hour>
  <min>00</min>
  <sec>0</sec>
  <isdst>1</isdst>
  <monthname>September</monthname>
  <weekday_short>Sa</weekday_short>
  <weekday>Samstag</weekday>
  <ampm>PM</ampm>
  <tz_short>CEST</tz_short>
  <tz_long>Europe/Zurich</tz_long>
</date>
					<period>3</period>
					<high>
						<fahrenheit>59</fahrenheit>
						<celsius>15</celsius>
					</high>
					<low>
						<fahrenheit>48</fahrenheit>
						<celsius>9</celsius>
					</low>
					<conditions>Regen möglich</conditions>
					
					<icon>chancerain</icon>
					<icon_url>http://icons-ak.wxug.com/i/c/k/chancerain.gif</icon_url>
					<skyicon>cloudy</skyicon>
					<pop>70</pop>
					<qpf_allday>
						<in>0.64</in>
						<mm>16.3</mm>
					</qpf_allday>
					<qpf_day>
						<in>0.21</in>
						<mm>5.3</mm>
					</qpf_day>
					<qpf_night>
						<in>0.07</in>
						<mm>1.8</mm>
					</qpf_night>
					<snow_allday>
						<in>0</in>
						<cm>0</cm>
					</snow_allday>
					<snow_day>
						<in>0</in>
						<cm>0</cm>
					</snow_day>
					<snow_night>
						<in>0</in>
						<cm>0</cm>
					</snow_night>
					<maxwind>
						<mph>6</mph>
						<kph>10</kph>
						<dir>Nordwest</dir>
						<degrees>317</degrees>
					</maxwind>
					<avewind>
						<mph>4</mph>
						<kph>6</kph>
						<dir>Süd-Südost</dir>
						<degrees>166</degrees>
					</avewind>
					<avehumidity>92</avehumidity>
					<maxhumidity>100</maxhumidity>
					<minhumidity>77</minhumidity>
				</forecastday>
				
				<forecastday>
					<date>
  <epoch>1346619600</epoch>
  <pretty_short>11:00 PM CEST</pretty_short>
  <pretty>11:00 PM CEST on September 02, 2012</pretty>
  <day>2</day>
  <month>9</month>
  <year>2012</year>
  <yday>245</yday>
  <hour>23</hour>
  <min>00</min>
  <sec>0</sec>
  <isdst>1</isdst>
  <monthname>September</monthname>
  <weekday_short>So</weekday_short>
  <weekday>Sonntag</weekday>
  <ampm>PM</ampm>
  <tz_short>CEST</tz_short>
  <tz_long>Europe/Zurich</tz_long>
</date>
					<period>4</period>
					<high>
						<fahrenheit>63</fahrenheit>
						<celsius>17</celsius>
					</high>
					<low>
						<fahrenheit>50</fahrenheit>
						<celsius>10</celsius>
					</low>
					<conditions>Nebel</conditions>
					
					<icon>mostlycloudy</icon>
					<icon_url>http://icons-ak.wxug.com/i/c/k/mostlycloudy.gif</icon_url>
					<skyicon>mostlycloudy</skyicon>
					<pop>0</pop>
					<qpf_allday>
						<in>0.05</in>
						<mm>1.3</mm>
					</qpf_allday>
					<qpf_day>
						<in>0.03</in>
						<mm>0.8</mm>
					</qpf_day>
					<qpf_night>
						<in>0.02</in>
						<mm>0.5</mm>
					</qpf_night>
					<snow_allday>
						<in>0</in>
						<cm>0</cm>
					</snow_allday>
					<snow_day>
						<in>0</in>
						<cm>0</cm>
					</snow_day>
					<snow_night>
						<in>0</in>
						<cm>0</cm>
					</snow_night>
					<maxwind>
						<mph>8</mph>
						<kph>13</kph>
						<dir>Nord-Nordost</dir>
						<degrees>30</degrees>
					</maxwind>
					<avewind>
						<mph>6</mph>
						<kph>10</kph>
						<dir>Nordost</dir>
						<degrees>37</degrees>
					</avewind>
					<avehumidity>86</avehumidity>
					<maxhumidity>100</maxhumidity>
					<minhumidity>75</minhumidity>
				</forecastday>
				
			</forecastdays>
		</simpleforecast>
	</forecast>

	
	
	
	
	
	
	
	
    
    


    
    
</response>
Aufruf tcl Script:

Code: Alles auswählen

string stdout;
string stderr;
system.Exec("tclsh /usr/local/addons/wettervorhersage/wetterwunderground.tcl", &stdout, &stderr);

tcl Script:

Code: Alles auswählen

#!/bin/tclsh

load tclrega.so

#
# Read weather data
#
set url http://api.wunderground.com/api/<yourKey>/forecast/lang:DL/q/germany/murg.xml
exec /usr/bin/wget -q -O /usr/local/addons/wettervorhersage/wetterwunderground.xml $url

set f [open "/usr/local/addons/wettervorhersage/wetterwunderground.xml"]
set input [read $f]
close $f


#
# goto section with forecast
#
regexp "<simpleforecast>(.*?)</simpleforecast>" $input dummy text  ; #get second forecast section
regexp "<forecastday>(.*?)</forecastday>.*?<forecastday>(.*?)</forecastday>.*?<forecastday>(.*?)</forecastday>.*?<forecastday>(.*?)</forecastday>" $text -> day0 day1 day2 day3 ; #split days

#day0
regexp "<high>(.*?)</high>" $day0 dummy temp  ; #get high values
regexp "<celsius>(.*?)</celsius>" $temp dummy max0  ; #get deg Celsius
regexp "<low>(.*?)</low>" $day0 dummy temp  ; #get high values
regexp "<celsius>(.*?)</celsius>" $temp dummy min0  ; #get deg Celsius
regexp "<conditions>(.*?)</conditions>" $day0 dummy conditions0  ; #get conditions
regexp "<qpf_allday>(.*?)</qpf_allday>" $day0 dummy temp  ; #get rain
regexp "<mm>(.*?)</mm>" $temp dummy rain0  ; #get mm
regexp "<snow_allday>(.*?)</snow_allday>" $day0 dummy temp  ; #get snow
regexp "<cm>(.*?)</cm>" $temp dummy snow0  ; #get cm

#day1
regexp "<high>(.*?)</high>" $day1 dummy temp  ; #get high values
regexp "<celsius>(.*?)</celsius>" $temp dummy max1  ; #get deg Celsius
regexp "<low>(.*?)</low>" $day1 dummy temp  ; #get high values
regexp "<celsius>(.*?)</celsius>" $temp dummy min1  ; #get deg Celsius
regexp "<conditions>(.*?)</conditions>" $day1 dummy conditions1  ; #get conditions
regexp "<qpf_allday>(.*?)</qpf_allday>" $day1 dummy temp  ; #get rain
regexp "<mm>(.*?)</mm>" $temp dummy rain1  ; #get mm
regexp "<snow_allday>(.*?)</snow_allday>" $day1 dummy temp  ; #get snow
regexp "<cm>(.*?)</cm>" $temp dummy snow1  ; #get cm

#day2
regexp "<high>(.*?)</high>" $day2 dummy temp  ; #get high values
regexp "<celsius>(.*?)</celsius>" $temp dummy max2  ; #get deg Celsius
regexp "<low>(.*?)</low>" $day2 dummy temp  ; #get high values
regexp "<celsius>(.*?)</celsius>" $temp dummy min2  ; #get deg Celsius
regexp "<conditions>(.*?)</conditions>" $day2 dummy conditions2  ; #get conditions
regexp "<qpf_allday>(.*?)</qpf_allday>" $day2 dummy temp  ; #get rain
regexp "<mm>(.*?)</mm>" $temp dummy rain2  ; #get mm
regexp "<snow_allday>(.*?)</snow_allday>" $day2 dummy temp  ; #get snow
regexp "<cm>(.*?)</cm>" $temp dummy snow2  ; #get cm

#day3
regexp "<high>(.*?)</high>" $day3 dummy temp  ; #get high values
regexp "<celsius>(.*?)</celsius>" $temp dummy max3  ; #get deg Celsius
regexp "<low>(.*?)</low>" $day3 dummy temp  ; #get high values
regexp "<celsius>(.*?)</celsius>" $temp dummy min3  ; #get deg Celsius
regexp "<conditions>(.*?)</conditions>" $day3 dummy conditions3  ; #get conditions
regexp "<qpf_allday>(.*?)</qpf_allday>" $day3 dummy temp  ; #get rain
regexp "<mm>(.*?)</mm>" $temp dummy rain3  ; #get mm
regexp "<snow_allday>(.*?)</snow_allday>" $day3 dummy temp  ; #get snow
regexp "<cm>(.*?)</cm>" $temp dummy snow3  ; #get cm

set day0_text "$min0 bis $max0 °C $conditions0, R: $rain0 mm, S: $snow0 cm"
set day1_text "$min1 bis $max1 °C $conditions1, R: $rain1 mm, S: $snow1 cm"
set day2_text "$min2 bis $max2 °C $conditions2, R: $rain2 mm, S: $snow2 cm"
set day3_text "$min3 bis $max3 °C $conditions3, R: $rain3 mm, S: $snow3 cm"

#
# set ReGaHss variables
#
set rega_cmd ""
append rega_cmd "var w0 = dom.GetObject('Wetter Heute');"
append rega_cmd "var w1 = dom.GetObject('Wetter in 1 Tag');"
append rega_cmd "var w2 = dom.GetObject('Wetter in 2 Tagen');"
append rega_cmd "var w3 = dom.GetObject('Wetter in 3 Tagen');"
append rega_cmd "var w4 = dom.GetObject('MinTemp Morgen');"
append rega_cmd "var w5 = dom.GetObject('MaxTemp Morgen');"
append rega_cmd "var w6 = dom.GetObject('MaxTemp Heute');"
append rega_cmd "w0.State('$day0_text');"
append rega_cmd "w1.State('$day1_text');"
append rega_cmd "w2.State('$day2_text');"
append rega_cmd "w3.State('$day3_text');"
append rega_cmd "w4.State('$min1');"
append rega_cmd "w5.State('$max1');"
append rega_cmd "w6.State('$max0');"
rega_script $rega_cmd
Homematic seit März 2011, CCU V1.508, ca. 50 div. Funk-Sensoren und -Aktoren,

Chaosmax
Beiträge: 13
Registriert: 14.06.2012, 12:23

Re: Google Wetterserver down?

Beitrag von Chaosmax » 03.09.2012, 12:22

Genial läuft! Vielen Dank.
Jedoch habe ich noch nicht verstanden, wie man die Region eingibt, für die man das Wetter bekommen möchte ?

Edit: ok habe ich nun gefunden. Ist der letzte Eintrag vor dem .xml. In deinen Script ebend Murg.
Bezgl des <yourkey> noch kurz der Hinweis, das man ganz unten auf "Weather API for developers" klicken muss. Habe ziemlich lange danach gesucht :wink:
Zuletzt geändert von Chaosmax am 03.09.2012, 12:35, insgesamt 1-mal geändert.

chbaechle
Beiträge: 31
Registriert: 18.04.2011, 09:30

Re: Google Wetterserver down?

Beitrag von chbaechle » 03.09.2012, 12:27

Das ist ganz einfach:
Am Ende der URL stehen Ort und Land. In meinem Beisiel "germany/murg" (da wo ich wohn :) ). Das "xml" ganz am Ende bestimmt das Dateiformat.
Ich hab noch keine Erfahrung, wie genau die Vorhersagen sind.
Homematic seit März 2011, CCU V1.508, ca. 50 div. Funk-Sensoren und -Aktoren,

Chaosmax
Beiträge: 13
Registriert: 14.06.2012, 12:23

Re: Google Wetterserver down?

Beitrag von Chaosmax » 03.09.2012, 12:37

ja nun habe ich es gefunden. Danke nochmal für Deine Arbeit.

grmpf
Beiträge: 670
Registriert: 21.01.2012, 12:16
Hat sich bedankt: 8 Mal
Danksagung erhalten: 7 Mal

Re: Google Wetterserver down?

Beitrag von grmpf » 03.09.2012, 12:47

Ich fasse mal zusammen wie ich es verstehe:
1) Bei wunderground anmelden.
2) Im Addons-Verzeichnis ein Dir anlegen "wetter" (z. B.)
3) Alle Variablen definieren - tja und da steh ich momentan auf dem Schlauch. Welche denn???
4) Skript als .tcl in oben angelegtes Verzeichnis kopieren (nicht die xml, oder?)
5) Im Skript (url) Ort und Key eintragen
6) Periodischen Aufruf des Skripts in der gewohnten Art anlegen.

Ist das so korrekt?
Gert
________________________________
Raspi 3B+ RaspberryMatic HM+HMIP, LAN-Rep., >80 Geräte, ~180 sichtb. Kanäle, (leider) nur Funk, hoher WAF trotz analogem Wife
Raspi 3B Raspberrymatic (HM, 18x Rollladensteuerung und HMIP Heizungssteuerung in Altbau)
CCU3 (Neubauinst.) HMIPW (3x DRI, 5x DRS, kpl. FB-HZG-Steurung) plus HMIP 23x BROLL und einige Bew-/Wasser-Melder

EnergyStar
Beiträge: 1276
Registriert: 27.07.2010, 11:38
Danksagung erhalten: 1 Mal

Re: Google Wetterserver down?

Beitrag von EnergyStar » 03.09.2012, 12:55

Hallo Gert,

die stehen all untem im TCL-Script ab Zeile 75:

Code: Alles auswählen

    append rega_cmd "var w0 = dom.GetObject('Wetter Heute');"
    append rega_cmd "var w1 = dom.GetObject('Wetter in 1 Tag');"
    append rega_cmd "var w2 = dom.GetObject('Wetter in 2 Tagen');"
    append rega_cmd "var w3 = dom.GetObject('Wetter in 3 Tagen');"
    append rega_cmd "var w4 = dom.GetObject('MinTemp Morgen');"
    append rega_cmd "var w5 = dom.GetObject('MaxTemp Morgen');"
    append rega_cmd "var w6 = dom.GetObject('MaxTemp Heute');"
Also rausgelöst:

Code: Alles auswählen

Wetter Heute
Wetter in 1 Tag
Wetter in 2 Tagen
Wetter in 3 Tagen
MinTemp Morgen
MaxTemp Morgen
MaxTemp Heute
Das sind alles welche vom Typ Zeichenkette.

Gruß
EnergyStar
--------------------------------------------
CCU1 mit 1.514, CUxD 0.59b, Historian V0.7.6hf1
161 Kanäle in 35 Geräten
in schrittweiser Migration auf die
CCU2 mit 2.15.5, CUxD 0.68, Historian V0.7.6hf1
254 Kanäle in 88 Geräten
gesamte Funktionalität über die
CL-Box mit homeputer CLX Ver. 4.0 Rel. 150625
Ansichten: 17, Objekte: 882, Zeilen: 19863, Variablen: 1966

grmpf
Beiträge: 670
Registriert: 21.01.2012, 12:16
Hat sich bedankt: 8 Mal
Danksagung erhalten: 7 Mal

Re: Google Wetterserver down?

Beitrag von grmpf » 03.09.2012, 13:04

Danke! Und den Key finde ich auch nirgends :-)
Gert
________________________________
Raspi 3B+ RaspberryMatic HM+HMIP, LAN-Rep., >80 Geräte, ~180 sichtb. Kanäle, (leider) nur Funk, hoher WAF trotz analogem Wife
Raspi 3B Raspberrymatic (HM, 18x Rollladensteuerung und HMIP Heizungssteuerung in Altbau)
CCU3 (Neubauinst.) HMIPW (3x DRI, 5x DRS, kpl. FB-HZG-Steurung) plus HMIP 23x BROLL und einige Bew-/Wasser-Melder

Benutzeravatar
anli
Beiträge: 4326
Registriert: 10.06.2009, 14:01
Wohnort: 20 Min. nördlich von Hannover und bei Bremen
Hat sich bedankt: 1 Mal
Danksagung erhalten: 23 Mal
Kontaktdaten:

Re: Google Wetterserver down?

Beitrag von anli » 03.09.2012, 13:14

Im TCL-Script:

Code: Alles auswählen

    #!/bin/tclsh

    load tclrega.so

    #
    # Read weather data
    #
    set url http://api.wunderground.com/api/<yourKey>/forecast/lang:DL/q/germany/murg.xml
    exec /usr/bin/wget -q -O /usr/local/addons/wettervorhersage/wetterwunderground.xml $url

    set f [open "/usr/local/addons/wettervorhersage/wetterwunderground.xml"]
    set input [read $f]
    close $f


    #
    # goto section with forecast
    #
    regexp "<simpleforecast>(.*?)</simpleforecast>" $input dummy text  ; #get second forecast section
    regexp "<forecastday>(.*?)</forecastday>.*?<forecastday>(.*?)</forecastday>.*?<forecastday>(.*?)</forecastday>.*?<forecastday>(.*?)</forecastday>" $text -> day0 day1 day2 day3 ; #split days

    #day0
    regexp "<high>(.*?)</high>" $day0 dummy temp  ; #get high values
    regexp "<celsius>(.*?)</celsius>" $temp dummy max0  ; #get deg Celsius
    regexp "<low>(.*?)</low>" $day0 dummy temp  ; #get high values
    regexp "<celsius>(.*?)</celsius>" $temp dummy min0  ; #get deg Celsius
    regexp "<conditions>(.*?)</conditions>" $day0 dummy conditions0  ; #get conditions
    regexp "<qpf_allday>(.*?)</qpf_allday>" $day0 dummy temp  ; #get rain
    regexp "<mm>(.*?)</mm>" $temp dummy rain0  ; #get mm
    regexp "<snow_allday>(.*?)</snow_allday>" $day0 dummy temp  ; #get snow
    regexp "<cm>(.*?)</cm>" $temp dummy snow0  ; #get cm

    #day1
    regexp "<high>(.*?)</high>" $day1 dummy temp  ; #get high values
    regexp "<celsius>(.*?)</celsius>" $temp dummy max1  ; #get deg Celsius
    regexp "<low>(.*?)</low>" $day1 dummy temp  ; #get high values
    regexp "<celsius>(.*?)</celsius>" $temp dummy min1  ; #get deg Celsius
    regexp "<conditions>(.*?)</conditions>" $day1 dummy conditions1  ; #get conditions
    regexp "<qpf_allday>(.*?)</qpf_allday>" $day1 dummy temp  ; #get rain
    regexp "<mm>(.*?)</mm>" $temp dummy rain1  ; #get mm
    regexp "<snow_allday>(.*?)</snow_allday>" $day1 dummy temp  ; #get snow
    regexp "<cm>(.*?)</cm>" $temp dummy snow1  ; #get cm

    #day2
    regexp "<high>(.*?)</high>" $day2 dummy temp  ; #get high values
    regexp "<celsius>(.*?)</celsius>" $temp dummy max2  ; #get deg Celsius
    regexp "<low>(.*?)</low>" $day2 dummy temp  ; #get high values
    regexp "<celsius>(.*?)</celsius>" $temp dummy min2  ; #get deg Celsius
    regexp "<conditions>(.*?)</conditions>" $day2 dummy conditions2  ; #get conditions
    regexp "<qpf_allday>(.*?)</qpf_allday>" $day2 dummy temp  ; #get rain
    regexp "<mm>(.*?)</mm>" $temp dummy rain2  ; #get mm
    regexp "<snow_allday>(.*?)</snow_allday>" $day2 dummy temp  ; #get snow
    regexp "<cm>(.*?)</cm>" $temp dummy snow2  ; #get cm

    #day3
    regexp "<high>(.*?)</high>" $day3 dummy temp  ; #get high values
    regexp "<celsius>(.*?)</celsius>" $temp dummy max3  ; #get deg Celsius
    regexp "<low>(.*?)</low>" $day3 dummy temp  ; #get high values
    regexp "<celsius>(.*?)</celsius>" $temp dummy min3  ; #get deg Celsius
    regexp "<conditions>(.*?)</conditions>" $day3 dummy conditions3  ; #get conditions
    regexp "<qpf_allday>(.*?)</qpf_allday>" $day3 dummy temp  ; #get rain
    regexp "<mm>(.*?)</mm>" $temp dummy rain3  ; #get mm
    regexp "<snow_allday>(.*?)</snow_allday>" $day3 dummy temp  ; #get snow
    regexp "<cm>(.*?)</cm>" $temp dummy snow3  ; #get cm

    set day0_text "$min0 bis $max0 °C $conditions0, R: $rain0 mm, S: $snow0 cm"
    set day1_text "$min1 bis $max1 °C $conditions1, R: $rain1 mm, S: $snow1 cm"
    set day2_text "$min2 bis $max2 °C $conditions2, R: $rain2 mm, S: $snow2 cm"
    set day3_text "$min3 bis $max3 °C $conditions3, R: $rain3 mm, S: $snow3 cm"

    #
    # set ReGaHss variables
    #
    set rega_cmd ""
    append rega_cmd "var w0 = dom.GetObject('Wetter Heute');"
    append rega_cmd "var w1 = dom.GetObject('Wetter in 1 Tag');"
    append rega_cmd "var w2 = dom.GetObject('Wetter in 2 Tagen');"
    append rega_cmd "var w3 = dom.GetObject('Wetter in 3 Tagen');"
    append rega_cmd "var w4 = dom.GetObject('MinTemp Morgen');"
    append rega_cmd "var w5 = dom.GetObject('MaxTemp Morgen');"
    append rega_cmd "var w6 = dom.GetObject('MaxTemp Heute');"
    append rega_cmd "w0.State('$day0_text');"
    append rega_cmd "w1.State('$day1_text');"
    append rega_cmd "w2.State('$day2_text');"
    append rega_cmd "w3.State('$day3_text');"
    append rega_cmd "w4.State('$min1');"
    append rega_cmd "w5.State('$max1');"
    append rega_cmd "w6.State('$max0');"
    rega_script $rega_cmd
set url http://api.wunderground.com/api/<yourKey>/forecast/lang:DL/q/germany/murg.xml
Herzliche Grüße, anli

Alle Angaben ohne Gewähr und Haftung meinerseits. Verwendung der von mir zur Verfügung gestellten Downloads auf eigene Gefahr. Ich bitte um Verständnis, dass ich aus zeitlichen Gründen keine unaufgeforderte Hilfestellung per PN/Mail geben kann. Bitte allgemeine Fragen ins Forum stellen, hier können viele fähige User viel schneller helfen.

Homematic-Manager v2: einfaches Tool zum Erstellen von Direktverknüpfungen und Bearbeiten von Gerätenamen, -parametern etc. für Homematic und HomematicIP (Alternative diesbzgl. zur WebUI)

Einsteiger-Hilfeerweiterter Skript-Parser

Antworten

Zurück zu „HomeMatic allgemein“