testing #29

Merged
marko merged 73 commits from testing into main 2023-01-07 12:49:01 +00:00
2 changed files with 99 additions and 5 deletions
Showing only changes of commit 7ac7e75d82 - Show all commits

View File

@ -329,6 +329,18 @@ sub Weather_ReturnWithError {
return; return;
} }
sub Weather_DeleteReadings {
my $hash = shift;
my $name = $hash->{NAME};
my $delReadingRegEx;
CommandDeleteReading( undef, $name . ' .?(ASC)_.*' );
CommandDeleteReading( undef, $name . ' ' . $delReadingRegEx );
return;
}
sub Weather_RetrieveCallbackFn { sub Weather_RetrieveCallbackFn {
my $name = shift; my $name = shift;

View File

@ -492,11 +492,94 @@ sub _ProcessingRetrieveData {
'visibility' => int( 'visibility' => int(
sprintf( "%.1f", $data->{visibility} ) + 0.5 sprintf( "%.1f", $data->{visibility} ) + 0.5
), ),
'dew_point' => int(
sprintf(
"%.1f", $data->{current}->{dew_point}
) + 0.5
),
}; };
} }
when ('onecall') { when ('onecall') {
if ( !exists( $self->{cached}->{current} ) ) {
$self->{cached}->{license}{text} = 'none';
$self->{cached}->{current} = {
'temperature' => int(
sprintf( "%.1f", $data->{current}->{temp} )
+ 0.5
),
'temp_c' => int(
sprintf( "%.1f", $data->{current}->{temp} )
+ 0.5
),
'tempFeelsLike_c' => int(
sprintf( "%.1f",
$data->{current}->{feels_like} ) + 0.5
),
'humidity' => $data->{current}->{humidity},
'condition' => encode_utf8(
$data->{current}->{weather}->[0]
->{description}
),
'pressure' => int(
sprintf( "%.1f",
$data->{current}->{pressure} ) + 0.5
),
'wind' => int(
sprintf(
"%.1f",
(
$data->{current}->{wind_speed} * 3.6
)
) + 0.5
),
'wind_speed' => int(
sprintf(
"%.1f",
(
$data->{current}->{wind_speed} * 3.6
)
) + 0.5
),
'wind_gust' => int(
sprintf( "%.1f",
( $data->{current}->{wind_gust} * 3.6 )
) + 0.5
),
'wind_direction' =>
$data->{current}->{wind_deg},
'rain_1h' => $data->{rain}->{'1h'},
'cloudCover' => $data->{current}->{clouds},
'code' => $codes{
$data->{current}->{weather}->[0]->{id}
},
'iconAPI' =>
$data->{current}->{weather}->[0]->{icon},
'condition' => encode_utf8(
$data->{current}->{weather}->[0]
->{description}
),
'sunsetTime' => strftimeWrapper(
"%a, %e %b %Y %H:%M",
localtime( $data->{current}->{sunset} )
),
'sunriseTime' => strftimeWrapper(
"%a, %e %b %Y %H:%M",
localtime( $data->{current}->{sunrise} )
),
'pubDate' => strftimeWrapper(
"%a, %e %b %Y %H:%M",
localtime( $data->{current}->{dt} )
),
'visibility' => int(
sprintf( "%.1f",
$data->{current}->{visibility} ) + 0.5
),
'uvi' => $data->{current}->{uvi},
};
}
if ( ref( $data->{hourly} ) eq "ARRAY" if ( ref( $data->{hourly} ) eq "ARRAY"
&& scalar( @{ $data->{hourly} } ) > 0 ) && scalar( @{ $data->{hourly} } ) > 0 )
{ {
@ -592,6 +675,8 @@ sub _ProcessingRetrieveData {
) )
) + 0.5 ) + 0.5
), ),
'wind_direction' =>
$data->{hourly}->[$i]->{wind_deg},
'cloudCover' => 'cloudCover' =>
$data->{hourly}->[$i]->{clouds}, $data->{hourly}->[$i]->{clouds},
'code' => $codes{ 'code' => $codes{
@ -809,9 +894,6 @@ sub _ProcessingRetrieveData {
$data->{daily}->[$i]->{weather} $data->{daily}->[$i]->{weather}
->[0]->{id} ->[0]->{id}
}, },
'iconAPI' =>
$data->{daily}->[$i]->{weather}->[0]
->{icon},
'rain' => $data->{daily}->[$i]->{rain}, 'rain' => $data->{daily}->[$i]->{rain},
'snow' => $data->{daily}->[$i]->{snow}, 'snow' => $data->{daily}->[$i]->{snow},
'uvi' => $data->{daily}->[$i]->{uvi}, 'uvi' => $data->{daily}->[$i]->{uvi},
@ -967,7 +1049,7 @@ sub strftimeWrapper {
"abstract": "Wetter API für OpenWeatherMap" "abstract": "Wetter API für OpenWeatherMap"
} }
}, },
"version": "v1.2.0", "version": "v3.0.1",
"author": [ "author": [
"Marko Oldenburg <fhemdevelopment@cooltux.net>" "Marko Oldenburg <fhemdevelopment@cooltux.net>"
], ],