mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-01-31 06:39:11 +00:00
Weather: code cleanup and doc update
git-svn-id: https://svn.fhem.de/fhem/trunk@1854 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
fc6313af2a
commit
812f1b981c
@ -251,7 +251,7 @@ sub Weather_RetrieveData($)
|
||||
my $vis = (($2 eq "") ? " " : $2); # clear visibility field
|
||||
readingsUpdate($hash, "visibility", $vis);
|
||||
if ($3) { readingsUpdate($hash, "pressure", $3); }
|
||||
if ($4) { readingsUpdate($hash, "pressure-trend", $4); }
|
||||
if ($4) { readingsUpdate($hash, "pressure_trend", $4); }
|
||||
}
|
||||
|
||||
### wind
|
||||
@ -271,54 +271,6 @@ sub Weather_RetrieveData($)
|
||||
} #end sub
|
||||
|
||||
|
||||
###################################
|
||||
sub Weather_RetrieveDataViaWeatherGoogle($)
|
||||
{
|
||||
my ($hash)= @_;
|
||||
|
||||
# get weather information from Google weather API
|
||||
# see http://search.cpan.org/~possum/Weather-Google-0.03/lib/Weather/Google.pm
|
||||
|
||||
my $location= $hash->{LOCATION};
|
||||
my $lang= $hash->{LANG};
|
||||
my $name = $hash->{NAME};
|
||||
my $WeatherObj;
|
||||
|
||||
Log 4, "$name: Updating weather information for $location, language $lang.";
|
||||
eval {
|
||||
$WeatherObj= new Weather::Google($location, {language => $lang});
|
||||
};
|
||||
|
||||
if($@) {
|
||||
Log 1, "$name: Could not retrieve weather information.";
|
||||
return 0;
|
||||
}
|
||||
|
||||
# the current conditions contain temp_c and temp_f
|
||||
my $current = $WeatherObj->current_conditions;
|
||||
foreach my $condition ( keys ( %$current ) ) {
|
||||
my $value= $current->{$condition};
|
||||
Weather_UpdateReading($hash,"",$condition,$value);
|
||||
}
|
||||
|
||||
my $fci= $WeatherObj->forecast_information;
|
||||
foreach my $i ( keys ( %$fci ) ) {
|
||||
my $reading= $i;
|
||||
my $value= $fci->{$i};
|
||||
Weather_UpdateReading($hash,"",$i,$value);
|
||||
}
|
||||
|
||||
# the forecast conditions contain high and low (temperature)
|
||||
for(my $t= 0; $t<= 3; $t++) {
|
||||
my $fcc= $WeatherObj->forecast_conditions($t);
|
||||
my $prefix= sprintf("fc%d_", $t);
|
||||
foreach my $condition ( keys ( %$fcc ) ) {
|
||||
my $value= $fcc->{$condition};
|
||||
Weather_UpdateReading($hash,$prefix,$condition,$value);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
###################################
|
||||
sub Weather_GetUpdate($)
|
||||
|
@ -5163,23 +5163,18 @@ To send the data, both send or write could be used.<br>
|
||||
<ul>
|
||||
<code>define <name> Weather <location> [<interval> [<language>]]</code><br>
|
||||
<br>
|
||||
Defines a virtual device for weather forecasts. <!--You need to have the perl
|
||||
module Weather::Google installed to use this device. If you do not have it,
|
||||
use <i>cpan -i Weather::Google</i> to install it.--><br><br>
|
||||
Defines a virtual device for weather forecasts.<br><br>
|
||||
|
||||
A Weather device periodically gathers current and forecast weather conditions
|
||||
from the Google Weather API.<br><br>
|
||||
from the Yahoo Weather API.<br><br>
|
||||
|
||||
The parameter <code>location</code> is any string that is recognized as a
|
||||
location, either a town name or a zip code or latitude/longitude (in decimal notation,
|
||||
multiplied by one million). Browse to the URL
|
||||
<code>http://www.google.de/ig/api?weather=location&hl=en</code>
|
||||
to see the raw output for your location.<br><br>
|
||||
The parameter <code>location</code> is the WOEID (WHERE-ON-EARTH-ID), go to
|
||||
<a href="http://weather.yahoo.com">http://weather.yahoo.com</a> to find it out for your location.<br><br>
|
||||
|
||||
The optional parameter <code>interval</code> is the time between subsequent updates
|
||||
in seconds. It defaults to 3600 (1 hour).<br><br>
|
||||
|
||||
The optional language parameter may be one of
|
||||
The optional language parameter is currently ignored.<!--may be one of
|
||||
<code>da</code>,
|
||||
<code>de</code>,
|
||||
<code>en</code>,
|
||||
@ -5198,15 +5193,13 @@ To send the data, both send or write could be used.<br>
|
||||
<code>zv-TW</code>.
|
||||
|
||||
It determines the natural language in which the forecast information appears.
|
||||
It defaults to <code>en</code>. If you want to set the language you also have to set the interval.<br><br>
|
||||
It defaults to <code>en</code>. If you want to set the language you also have to set the interval.--><br><br>
|
||||
|
||||
Examples:
|
||||
<pre>
|
||||
define MyWeather Weather Frankfurt,HE
|
||||
define Forecast Weather Amsterdam,NL 1800
|
||||
define weather Weather 30000,France 3600 fr
|
||||
define W Weather ,,,50500000,30500000 600 es
|
||||
</pre>
|
||||
define MyWeather Weather 673513
|
||||
define Forecast Weather 673513 1800
|
||||
</pre>
|
||||
</ul>
|
||||
<br>
|
||||
|
||||
@ -5225,25 +5218,31 @@ To send the data, both send or write could be used.<br>
|
||||
<ul>
|
||||
<code>get <name> <reading></code><br><br>
|
||||
|
||||
Valid readings and their meaning (? can be one of 0, 1, 2, 3, 4 and stands
|
||||
for today, tomorrow, ...):<br>
|
||||
Valid readings and their meaning (? can be one of 1, 2 and stands
|
||||
for today, tomorrow):<br>
|
||||
<table>
|
||||
<tr><td>city</td><td>name of town returned for location</td></tr>
|
||||
<tr><td>condition</td><td>current condition, one of Sunny, Clear, Partly Cloudy, Mostly Cloudy, Overcast, Chance of Rain</td></tr>
|
||||
<tr><td>code</td><td>current condition code</td></tr>
|
||||
<tr><td>condition</td><td>current condition</td></tr>
|
||||
<tr><td>current_date_time</td><td>last update of forecast on server</td></tr>
|
||||
<tr><td>fc?_code</td><td>forecast condition code</td></tr>
|
||||
<tr><td>fc?_condition</td><td>forecast condition</td></tr>
|
||||
<tr><td>fc?_day_of_week</td><td>day of week for day +?</td></tr>
|
||||
<tr><td>fc?_high_c</td><td>forecasted daily high in degrees centigrade</td></tr>
|
||||
<tr><td>fc?_icon</td><td>relative path for forecast icon, prefix with <code>http://www.google.com</code> to form a valid URL for display in web interfaces</td></tr>
|
||||
<tr><td>fc?_icon</td><td>forecast icon</td></tr>
|
||||
<tr><td>fc?_low_c</td><td>forecasted daily low in degrees centigrade</td></tr>
|
||||
<tr><td>humidity</td><td>current humidity in %</td></tr>
|
||||
<tr><td>icon</td><td>relative path for current icon</td></tr>
|
||||
<tr><td>postal_code</td><td>location sent to server</td></tr>
|
||||
<tr><td>pressure</td><td>air pressure in hPa</td></tr>
|
||||
<tr><td>pressure_trend</td><td>air pressure trend (unit?)</td></tr>
|
||||
<tr><td>temperature</td><td>current temperature in degrees centigrade</td></tr>
|
||||
<tr><td>temp_c</td><td>current temperature in degrees centigrade</td></tr>
|
||||
<tr><td>temp_f</td><td>current temperature in degrees Fahrenheit</td></tr>
|
||||
<tr><td>wind</td><td>wind speed in km/h</td></tr>
|
||||
<tr><td>wind_chill</td><td>?</td></tr>
|
||||
<tr><td>wind_condition</td><td>wind direction and speed</td></tr>
|
||||
<tr><td>wind_direction</td><td>direction wind comes from in degrees (0 = north wind)</td></tr>
|
||||
<tr><td>wind_speed</td><td>same as wind</td></tr>
|
||||
</table>
|
||||
|
||||
</ul>
|
||||
|
Loading…
Reference in New Issue
Block a user