What is the minimum setup for the weather binding to work?
I have in my sitemap:
Webview url="http://192.168.1.51:8080/weather-data/layouts/argyle.html?locationId=home&layout=argyle&iconset=colorful" height=13
The UI shows:
so will `http://192.168.1.51:8080/weather-data/layouts/argyle.html?locationId=home&layout=argyle&iconset=colorful’ in a browser…
Meaning it is not parsing or getting the data.
the argyle.html file looks like this:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-type" CONTENT="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="weather-data/layouts/example.css" />
<script type="text/javascript" src="weather-data/layouts/example.js"></script>
</head>
<body id="weather-body" onload="formatIframe()">
<div id="weather-location-name">${config:name}, ${weather:condition.observationTime(%1$td/%1$tm/%1$tY %1$tH:%1$tM)}</div>
<table id="weather-table">
<tr>
<td rowspan="2"><img id="weather-icon" src="weather-data/images/${param:iconset}/${weather:condition.commonId}.png" alt="condition" /></td>
<td id="weather-temp">${weather:temperature.current(%.1f)}</td>
<td id="weather-temp-sign">°C</td>
</tr>
<tr>
<td colspan="2">
<table id="weather-table-details">
<tr>
<td>Humidity:</td>
<td>${weather:atmosphere.humidity}%</td>
</tr>
<tr>
<td>Pressure:</td>
<td>${weather:atmosphere.pressure(%.1f)} mb</td>
</tr>
</table>
</td>
</tr>
</table>
<table id="weather-forecast-table">
<tr>
<td>Today</td>
<td>${forecast(1):condition.observationTime(%1$tA)}</td>
<td>${forecast(2):condition.observationTime(%1$tA)}</td>
</tr>
<tr>
<td><img src="weather-data/images/${param:iconset}/${forecast(0):condition.commonId}.png" alt="condition" /></td>
<td><img src="weather-data/images/${param:iconset}/${forecast(1):condition.commonId}.png" alt="condition" /></td>
<td><img src="weather-data/images/${param:iconset}/${forecast(2):condition.commonId}.png" alt="condition" /></td>
</tr>
<tr>
<td class="temp-max">${forecast(0):temperature.max(%.1f)} °C</td>
<td class="temp-max">${forecast(1):temperature.max(%.1f)} °C</td>
<td class="temp-max">${forecast(2):temperature.max(%.1f)} °C</td>
</tr>
<tr>
<td class="temp-min">${forecast(0):temperature.min(%.1f)} °C</td>
<td class="temp-min">${forecast(1):temperature.min(%.1f)} °C</td>
<td class="temp-min">${forecast(2):temperature.min(%.1f)} °C</td>
</tr>
</table>
</body>
</html>
The log says:
2016-06-26 14:48:15.417 [DEBUG] [o.o.b.w.i.scheduler.WeatherJob] - Starting Weather job for location 'home' 2016-06-26 14:48:15.980 [DEBUG] [.w.i.p.AbstractWeatherProvider] - YAHOO[home]: Weather[Temperature[current=15.0,min=<null>,max=<null>,feel=14.839272698211705,dewpoint=<null>],Atmosphere[humidity=57,visibility=25.91,pressure=33999.36,pressureTrend=<null>,ozone=<null>,uvIndex=<null>],Clouds[percent=<null>],Condition[text=Cloudy,lastUpdate=Sun Jun 26 14:48:15 AEST 2016,observationTime=Sun Jun 26 14:48:00 AEST 2016,id=26,icon=<null>,commonId=cloudy],Precipitation[rain=0.0,snow=0.0,probability=<null>,total=<null>],Wind[speed=11.27,direction=ENE,degree=68,gust=<null>,chill=61.0],Station[name=<null>,id=<null>,latitude=<null>,longitude=<null>],<null>]
I have a text item in the same frame:
Text item=Condition_Id
which is defined in the items as:
String Condition_Id "Weather is [MAP(yahoo_weather_code.map):%s]" (Weather) { weather="locationId=home, type=condition, property=id" }
… and it shows the condition. Meaning the binding and config seems to be OK.
Also, this: Webview url="/weather?locationId=home&layout=argyle&iconset=colorful" height=13
works.
What am I missing? Is the URL supposed to be rendered properly at all?
Also: the weather data includes this for pressure:
<yweather:atmosphere humidity="57" pressure="34067.08" rising="0" visibility="25.91"/>
when using the HTTP binding, and this:
2016-06-26 17:04:01.876 [DEBUG] [.w.i.p.AbstractWeatherProvider] - YAHOO[home]: Weather[Temperature[current=14.0,min=<null>,max=<null>,feel=14.566865879648873,dewpoint=<null>],Atmosphere[humidity=69,visibility=25.91,pressure=33965.49,pressureTrend=<null>,...
… what kind of weird value is 5/7-digits for pressure?
This second issue is a known issue; reported here:
and here:
What I found is, when entering the following queries here:
https://developer.yahoo.com/weather/
select * from weather.forecast where woeid=1097507
imperial values are returned; the pressure value seems to be OK (1002.0)
select * from weather.forecast where woeid=1097507 and u="c"
metric values are turned, but the pressure value is weird, something like 33931.63