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:
2025-10-17 12:20:04 +02:00
parent 82d0e6b1b6
commit 437d04b87c

View File

@@ -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", " - " ) );