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