Fix Weather.pm to use READINGS instead of readings
This commit corrects the hash key used to access device readings in the Weather.pm module. All instances of the lowercase 'readings' hash key have been changed to the uppercase 'READINGS', which is the standard convention in FHEM. This fixes potential issues where weather data wasn't being properly accessed or displayed because the module was looking for readings in the wrong hash location. The change affects the Get function and HTML rendering methods for both vertical and horizontal layouts.
This commit is contained in:
@@ -644,13 +644,13 @@ sub Get {
|
||||
my $reading = shift @$aRef // return;
|
||||
my $value;
|
||||
|
||||
if ( defined( $hash->{readings}->{$reading} ) ) {
|
||||
$value = $hash->{readings}->{$reading}->{VAL};
|
||||
if ( defined( $hash->{READINGS}->{$reading} ) ) {
|
||||
$value = $hash->{READINGS}->{$reading}->{VAL};
|
||||
}
|
||||
else {
|
||||
my $rt = '';
|
||||
if ( defined( $hash->{readings} ) ) {
|
||||
$rt = join( ":noArg ", sort keys %{ $hash->{readings} } );
|
||||
if ( defined( $hash->{READINGS} ) ) {
|
||||
$rt = join( ":noArg ", sort keys %{ $hash->{READINGS} } );
|
||||
}
|
||||
|
||||
return "Unknown reading $reading, choose one of " . $rt;
|
||||
@@ -933,8 +933,8 @@ sub WeatherAsHtmlV {
|
||||
else {
|
||||
$fc = (
|
||||
(
|
||||
defined( $h->{readings}->{fc1_day_of_week} )
|
||||
&& $h->{readings}->{fc1_day_of_week}
|
||||
defined( $h->{READINGS}->{fc1_day_of_week} )
|
||||
&& $h->{READINGS}->{fc1_day_of_week}
|
||||
) ? 'fc' : 'hfc'
|
||||
);
|
||||
}
|
||||
@@ -950,8 +950,8 @@ sub WeatherAsHtmlV {
|
||||
);
|
||||
|
||||
for ( my $i = 1 ; $i < $items ; $i++ ) {
|
||||
if ( defined( $h->{readings}->{"${fc}${i}_low_c"} )
|
||||
&& $h->{readings}->{"${fc}${i}_low_c"} )
|
||||
if ( defined( $h->{READINGS}->{"${fc}${i}_low_c"} )
|
||||
&& $h->{READINGS}->{"${fc}${i}_low_c"} )
|
||||
{
|
||||
$ret .= sprintf(
|
||||
'<tr><td class="weatherIcon" width=%d>%s</td><td class="weatherValue"><span class="weatherDay">%s: %s</span><br><span class="weatherMin">min %s°C</span> <span class="weatherMax">max %s°C</span><br>%s</td></tr>',
|
||||
@@ -1021,8 +1021,8 @@ sub WeatherAsHtmlH {
|
||||
else {
|
||||
$fc = (
|
||||
(
|
||||
defined( $h->{readings}->{fc1_day_of_week} )
|
||||
&& $h->{readings}->{fc1_day_of_week}
|
||||
defined( $h->{READINGS}->{fc1_day_of_week} )
|
||||
&& $h->{READINGS}->{fc1_day_of_week}
|
||||
) ? 'fc' : 'hfc'
|
||||
);
|
||||
}
|
||||
@@ -1056,8 +1056,8 @@ sub WeatherAsHtmlH {
|
||||
::ReadingsVal( $d, "humidity", "" )
|
||||
);
|
||||
for ( my $i = 1 ; $i < $items ; $i++ ) {
|
||||
if ( defined( $h->{readings}->{"${fc}${i}_low_c"} )
|
||||
&& $h->{readings}->{"${fc}${i}_low_c"} )
|
||||
if ( defined( $h->{READINGS}->{"${fc}${i}_low_c"} )
|
||||
&& $h->{READINGS}->{"${fc}${i}_low_c"} )
|
||||
{
|
||||
$ret .= sprintf( '<td class="weatherMin">min %s°C</td>',
|
||||
::ReadingsVal( $d, "${fc}${i}_low_c", " - " ) );
|
||||
@@ -1074,8 +1074,8 @@ sub WeatherAsHtmlH {
|
||||
$ret .= sprintf( '<tr><td class="weatherMax">%s</td>',
|
||||
::ReadingsVal( $d, "wind_condition", "" ) );
|
||||
for ( my $i = 1 ; $i < $items ; $i++ ) {
|
||||
if ( defined( $h->{readings}->{"${fc}${i}_high_c"} )
|
||||
&& $h->{readings}->{"${fc}${i}_high_c"} )
|
||||
if ( defined( $h->{READINGS}->{"${fc}${i}_high_c"} )
|
||||
&& $h->{READINGS}->{"${fc}${i}_high_c"} )
|
||||
{
|
||||
$ret .= sprintf( '<td class="weatherMax">max %s°C</td>',
|
||||
::ReadingsVal( $d, "${fc}${i}_high_c", " - " ) );
|
||||
|
Reference in New Issue
Block a user