Wetterauswertung mit wunderground
Verfasst: 26. Jul 2016 20:13
Hi Zusammen,
nachdem Cyrelian nach meiner Umsetzung für Regenvorhersage gefragt hat, fasse ich hier kurz und grob zusammen. Eine ausführliche Variante schreibe ich die Tage.
Die URL:
Items:
Bespiel für einen xslt Stylesheet:
Meine rules:
Ich hoffe Ihr kommt damit weiter ... sonst einfach fragen.
Grüße,
Seppy
nachdem Cyrelian nach meiner Umsetzung für Regenvorhersage gefragt hat, fasse ich hier kurz und grob zusammen. Eine ausführliche Variante schreibe ich die Tage.
Die URL:
Code: Alles auswählen
url=http://api.wunderground.com/api/XXXXXXXXXX/forecast/lang:DL/q/pws:IWACHTBE14.xml
Code: Alles auswählen
/**
* Gemessene Regenmenge gestern
*/
/**
* Vorhersage Regenmenge heute
*/
String WeatherRainForecast0 "Regenmenge/Wahrscheinlichkeit [%s]" <rain> (gWetter)
String WeatherRainForecast0_Date (gWetter) {http="<[cacheWeatherForecastWunderground:300000:XSLT(wunderground_weather_rainforecast0_date.xsl)]" }
Number WeatherRainForecast0_MM (gWetter) {http="<[cacheWeatherForecastWunderground:300000:XSLT(wunderground_weather_rainforecast0_mm.xsl)]" }
Number WeatherRainForecast0_POP (gWetter) {http="<[cacheWeatherForecastWunderground:300000:XSLT(wunderground_weather_rainforecast0_pop.xsl)]" }
/**
* Vorhersage Regenmenge morgen
*/
String WeatherRainForecast1 "Regenmenge/Wahrscheinlichkeit [%s]" <rain> (gWetter)
String WeatherRainForecast1_Date (gWetter) {http="<[cacheWeatherForecastWunderground:300000:XSLT(wunderground_weather_rainforecast1_date.xsl)]" }
Number WeatherRainForecast1_MM (gWetter) {http="<[cacheWeatherForecastWunderground:300000:XSLT(wunderground_weather_rainforecast1_mm.xsl)]" }
Number WeatherRainForecast1_POP (gWetter) {http="<[cacheWeatherForecastWunderground:300000:XSLT(wunderground_weather_rainforecast1_pop.xsl)]" }
/**
* Vorhersage Regenmenge übermorgen
*/
String WeatherRainForecast2 "Regenmenge/Wahrscheinlichkeit [%s]" <rain> (gWetter)
String WeatherRainForecast2_Date (gWetter) {http="<[cacheWeatherForecastWunderground:300000:XSLT(wunderground_weather_rainforecast2_date.xsl)]" }
Number WeatherRainForecast2_MM (gWetter) {http="<[cacheWeatherForecastWunderground:300000:XSLT(wunderground_weather_rainforecast2_mm.xsl)]" }
Number WeatherRainForecast2_POP (gWetter) {http="<[cacheWeatherForecastWunderground:300000:XSLT(wunderground_weather_rainforecast2_pop.xsl)]" }
/**
* Vorhersage Regenmenge heute +3
*/
String WeatherRainForecast3 "Regenmenge/Wahrscheinlichkeit [%s]" <rain> (gWetter)
String WeatherRainForecast3_Date (gWetter) {http="<[cacheWeatherForecastWunderground:300000:XSLT(wunderground_weather_rainforecast3_date.xsl)]" }
Number WeatherRainForecast3_MM (gWetter) {http="<[cacheWeatherForecastWunderground:300000:XSLT(wunderground_weather_rainforecast3_mm.xsl)]" }
Number WeatherRainForecast3_POP (gWetter) {http="<[cacheWeatherForecastWunderground:300000:XSLT(wunderground_weather_rainforecast3_pop.xsl)]" }
Code: Alles auswählen
<?xml version="1.0"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output indent="yes" method="xml" encoding="UTF-8" omit-xml-declaration="yes" />
<xsl:template match="/">
<xsl:for-each select="response/forecast/simpleforecast/forecastdays/forecastday[period=1]">
<xsl:value-of select="qpf_allday/mm"/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Code: Alles auswählen
rule "WeatherRainForecast1_Changed"
when
Item WeatherRainForecast1_Date changed or
Item WeatherRainForecast1_MM changed or
Item WeatherRainForecast1_POP changed
then
if (WeatherRainForecast1_MM.changedSince(now.minusMinutes(5))){
WeatherRainForecast1_MM.postUpdate(WeatherRainForecast1_MM.state as DecimalType)
}
WeatherRainForecast1.postUpdate(WeatherRainForecast1_Date.state + ": " + WeatherRainForecast1_MM.state + "mm / " + WeatherRainForecast1_POP.state + "%")
logDebug("HomeBox.WeatherRainForecast_Changed", "Updated WeatherRainForecast1: " + WeatherRainForecast1.state)
postUpdate(WeatherLastUpdate, new DateTimeType())
logDebug("HomeBox.WeatherRainForecast_Changed", "Updated WeatherLastUpdate: " + WeatherLastUpdate.state)
end
Grüße,
Seppy