dev #79
97
CHANGELOG.md
97
CHANGELOG.md
@@ -1,4 +1,97 @@
|
||||
### ``` Refactor pre-commit hook file list and output formatting (HEAD -> patch-removedarksky)
|
||||
### Refactor language handling in Weather API (HEAD -> patch-remove-perlexperimental)
|
||||
>Tue, 14 Oct 2025 07:03:38 +0200
|
||||
|
||||
>Author: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
>Commiter: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
Improved the language initialization logic by replacing the
|
||||
experimental `given/when` construct with a more standard
|
||||
`if/elsif` structure, enhancing code readability and
|
||||
maintainability. The attribute handling in the `Attr` subroutine
|
||||
was also refactored for clarity, removing unnecessary usage
|
||||
of `given/when`, which helps reduce complexity throughout
|
||||
the codebase.
|
||||
|
||||
In the OpenWeatherMapAPI module, the logic for handling
|
||||
weather response data was streamlined by removing `given/when`
|
||||
statements in favor of `if` conditions. This change avoids
|
||||
potential confusion and enhances the clarity of the code logic.
|
||||
No breaking changes were introduced; the overall functionality
|
||||
remains intact.
|
||||
|
||||
|
||||
|
||||
### Refactor language handling to improve readability
|
||||
>Tue, 14 Oct 2025 07:01:07 +0200
|
||||
|
||||
>Author: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
>Commiter: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
Improved the language initialization logic by replacing the
|
||||
experimental `given/when` construct with a more standard
|
||||
`if/elsif` structure, enhancing code readability and
|
||||
maintainability. Additionally, the attribute handling in the
|
||||
`Attr` subroutine was refactored for clarity, removing
|
||||
unnecessary usage of `given/when`, which helps reduce
|
||||
complexity across the codebase.
|
||||
|
||||
Furthermore, in the OpenWeatherMapAPI module, logic for
|
||||
handling weather response data was streamlined by removing
|
||||
the `given/when` statements in favor of `if` conditions.
|
||||
This change eliminates potential confusion and enhances
|
||||
the clarity of the code logic. No breaking changes were
|
||||
introduced; the overall functionality remains intact.
|
||||
|
||||
|
||||
|
||||
### Refactor language initialization and attribute handling
|
||||
>Tue, 14 Oct 2025 06:53:44 +0200
|
||||
|
||||
>Author: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
>Commiter: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
Improved the language initialization logic by replacing
|
||||
the experimental `given/when` construct with a more
|
||||
standard `if/elsif` structure. This change enhances code
|
||||
readability and maintainability, making it easier to follow
|
||||
the flow of language assignments.
|
||||
|
||||
Additionally, refactored attribute handling in the `Attr`
|
||||
subroutine by streamlining the conditions, removing
|
||||
unnecessary `given/when` usage, and maintaining clarity
|
||||
in the logic for setting and deleting forecasts and alerts.
|
||||
These changes help reduce complexity and improve
|
||||
consistency throughout the codebase.
|
||||
|
||||
|
||||
|
||||
### ``` Refactor pre-commit hook by removing DarkSkyAPI references
|
||||
>Wed, 5 Feb 2025 07:08:45 +0100
|
||||
|
||||
>Author: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
>Commiter: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
Updated the pre-commit hook to eliminate references to
|
||||
'lib/FHEM/APIs/Weather/DarkSkyAPI.pm'. This change was made to
|
||||
simplify the codebase and make it more relevant by focusing on
|
||||
the other weather API files.
|
||||
|
||||
Additionally, the output formatting of the pre-commit hook
|
||||
has been improved for better readability, and the order of
|
||||
the files in the @filenames array has been restructured for
|
||||
clarity.
|
||||
|
||||
No breaking changes have been introduced; the pre-commit
|
||||
hook continues to operate as intended.
|
||||
```
|
||||
|
||||
|
||||
|
||||
### ``` Refactor pre-commit hook file list and output formatting
|
||||
>Wed, 5 Feb 2025 07:07:52 +0100
|
||||
|
||||
>Author: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
@@ -38,7 +131,7 @@ function as intended.
|
||||
|
||||
|
||||
|
||||
### docs: add changelog (origin/patch-changeVersion)
|
||||
### docs: add changelog
|
||||
>Tue, 4 Feb 2025 21:01:33 +0100
|
||||
|
||||
>Author: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
UPD 2025-02-05_05:56:41 25899 FHEM/59_Weather.pm
|
||||
UPD 2025-02-04_21:08:26 34419 lib/FHEM/Core/Weather.pm
|
||||
UPD 2025-02-05_06:38:34 33780 lib/FHEM/APIs/Weather/OpenWeatherMapAPI.pm
|
||||
UPD 2025-02-04_21:08:26 38751 lib/FHEM/APIs/Weather/wundergroundAPI.pm
|
||||
UPD 2025-10-14_06:51:10 34175 lib/FHEM/Core/Weather.pm
|
||||
UPD 2025-10-14_07:00:04 33545 lib/FHEM/APIs/Weather/OpenWeatherMapAPI.pm
|
||||
UPD 2025-10-14_07:03:17 38721 lib/FHEM/APIs/Weather/wundergroundAPI.pm
|
||||
|
||||
@@ -41,7 +41,8 @@ use FHEM::Meta;
|
||||
|
||||
use POSIX;
|
||||
use HttpUtils;
|
||||
use experimental qw /switch/;
|
||||
|
||||
#use experimental qw /switch/;
|
||||
|
||||
my $META = {};
|
||||
my $ret = FHEM::Meta::getMetadata( __FILE__, $META );
|
||||
@@ -466,8 +467,7 @@ sub _FillSelfHashWithWeatherResponse {
|
||||
$self->{cached}->{city} = encode_utf8( $data->{name} );
|
||||
$self->{cached}->{license}{text} = 'none';
|
||||
|
||||
given ( $self->{endpoint} ) {
|
||||
when ('onecall') {
|
||||
if ( $self->{endpoint} eq 'onecall' ) {
|
||||
## löschen des alten current Datensatzes
|
||||
delete $self->{cached}->{current};
|
||||
|
||||
@@ -484,28 +484,24 @@ sub _FillSelfHashWithWeatherResponse {
|
||||
&& scalar( @{ $data->{hourly} } ) > 0 )
|
||||
{
|
||||
$self =
|
||||
_FillSelfHashWithWeatherResponseForOnecallHourly( $self,
|
||||
$data );
|
||||
_FillSelfHashWithWeatherResponseForOnecallHourly( $self, $data );
|
||||
}
|
||||
|
||||
if ( ref( $data->{daily} ) eq "ARRAY"
|
||||
&& scalar( @{ $data->{daily} } ) > 0 )
|
||||
{
|
||||
$self =
|
||||
_FillSelfHashWithWeatherResponseForOnecallDaily( $self,
|
||||
$data );
|
||||
_FillSelfHashWithWeatherResponseForOnecallDaily( $self, $data );
|
||||
}
|
||||
|
||||
if ( ref( $data->{alerts} ) eq "ARRAY"
|
||||
&& scalar( @{ $data->{alerts} } ) > 0 )
|
||||
{
|
||||
$self =
|
||||
_FillSelfHashWithWeatherResponseForOnecallAlerts( $self,
|
||||
$data );
|
||||
_FillSelfHashWithWeatherResponseForOnecallAlerts( $self, $data );
|
||||
}
|
||||
}
|
||||
|
||||
when ('weather') {
|
||||
elsif ( $self->{endpoint} eq 'weather' ) {
|
||||
## löschen des alten current Datensatzes
|
||||
delete $self->{cached}->{current};
|
||||
|
||||
@@ -515,8 +511,7 @@ sub _FillSelfHashWithWeatherResponse {
|
||||
$self =
|
||||
_FillSelfHashWithWeatherResponseForWeatherCurrent( $self, $data );
|
||||
}
|
||||
|
||||
when ('forecast') {
|
||||
elsif ( $self->{endpoint} eq 'forecast' ) {
|
||||
## löschen des alten forecast Datensatzes
|
||||
delete $self->{cached}->{forecast};
|
||||
|
||||
@@ -524,9 +519,7 @@ sub _FillSelfHashWithWeatherResponse {
|
||||
and scalar( @{ $data->{list} } ) > 0 )
|
||||
{
|
||||
$self =
|
||||
_FillSelfHashWithWeatherResponseForForecastHourly( $self,
|
||||
$data );
|
||||
}
|
||||
_FillSelfHashWithWeatherResponseForForecastHourly( $self, $data );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -6,7 +6,6 @@ use FHEM::Meta;
|
||||
|
||||
use POSIX;
|
||||
use HttpUtils;
|
||||
use experimental qw /switch/;
|
||||
use Encode;
|
||||
|
||||
my $META = {};
|
||||
|
||||
@@ -41,10 +41,7 @@ eval { use Time::HiRes qw /gettimeofday/; 1 }
|
||||
eval { use Readonly; 1 }
|
||||
or $missingModul .= "libreadonly-perl ";
|
||||
|
||||
#use Time::HiRes qw(gettimeofday);
|
||||
use experimental qw /switch/;
|
||||
|
||||
#use Readonly;
|
||||
#use experimental qw /switch/;
|
||||
|
||||
use FHEM::Meta;
|
||||
|
||||
@@ -224,48 +221,48 @@ sub _LanguageInitialize {
|
||||
|
||||
my $lang = shift;
|
||||
|
||||
given ($lang) {
|
||||
when ('de') {
|
||||
if ( $lang eq 'de' ) {
|
||||
%wdays_txt_i18n = %wdays_txt_de;
|
||||
@directions_txt_i18n = @directions_txt_de;
|
||||
%pressure_trend_txt_i18n = %pressure_trend_txt_de;
|
||||
%status_items_txt_i18n = %status_items_txt_de;
|
||||
}
|
||||
|
||||
when ('nl') {
|
||||
elsif ( $lang eq 'nl' ) {
|
||||
%wdays_txt_i18n = %wdays_txt_nl;
|
||||
@directions_txt_i18n = @directions_txt_nl;
|
||||
%pressure_trend_txt_i18n = %pressure_trend_txt_nl;
|
||||
%status_items_txt_i18n = %status_items_txt_nl;
|
||||
}
|
||||
elsif ( $lang eq 'fr' ) {
|
||||
|
||||
when ('fr') {
|
||||
}
|
||||
elsif ( $lang eq 'fr' ) {
|
||||
%wdays_txt_i18n = %wdays_txt_fr;
|
||||
@directions_txt_i18n = @directions_txt_fr;
|
||||
%pressure_trend_txt_i18n = %pressure_trend_txt_fr;
|
||||
%status_items_txt_i18n = %status_items_txt_fr;
|
||||
}
|
||||
|
||||
when ('pl') {
|
||||
}
|
||||
elsif ( $lang eq 'pl' ) {
|
||||
%wdays_txt_i18n = %wdays_txt_pl;
|
||||
@directions_txt_i18n = @directions_txt_pl;
|
||||
%pressure_trend_txt_i18n = %pressure_trend_txt_pl;
|
||||
%status_items_txt_i18n = %status_items_txt_pl;
|
||||
}
|
||||
|
||||
when ('it') {
|
||||
}
|
||||
elsif ( $lang eq 'it' ) {
|
||||
%wdays_txt_i18n = %wdays_txt_it;
|
||||
@directions_txt_i18n = @directions_txt_it;
|
||||
%pressure_trend_txt_i18n = %pressure_trend_txt_it;
|
||||
%status_items_txt_i18n = %status_items_txt_it;
|
||||
}
|
||||
|
||||
default {
|
||||
}
|
||||
else {
|
||||
%wdays_txt_i18n = %wdays_txt_en;
|
||||
@directions_txt_i18n = @directions_txt_en;
|
||||
%pressure_trend_txt_i18n = %pressure_trend_txt_en;
|
||||
%status_items_txt_i18n = %status_items_txt_en;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return;
|
||||
@@ -862,8 +859,7 @@ sub Attr {
|
||||
my ( $cmd, $name, $attrName, $AttrVal ) = @_;
|
||||
my $hash = $::defs{$name};
|
||||
|
||||
given ($attrName) {
|
||||
when ('forecast') {
|
||||
if ( $attrName eq 'forecast' ) {
|
||||
if ( $cmd eq 'set' ) {
|
||||
$hash->{fhem}->{api}->setForecast($AttrVal);
|
||||
}
|
||||
@@ -874,13 +870,11 @@ sub Attr {
|
||||
::InternalTimer( gettimeofday() + 0.5,
|
||||
\&FHEM::Core::Weather::DeleteForecastreadings, $hash );
|
||||
}
|
||||
|
||||
when ('forecastLimit') {
|
||||
elsif ('forecastLimit') {
|
||||
::InternalTimer( gettimeofday() + 0.5,
|
||||
\&FHEM::Core::Weather::DeleteForecastreadings, $hash );
|
||||
}
|
||||
|
||||
when ('alerts') {
|
||||
elsif ('alerts') {
|
||||
if ( $cmd eq 'set' ) {
|
||||
$hash->{fhem}->{api}->setAlerts($AttrVal);
|
||||
}
|
||||
@@ -891,7 +885,6 @@ sub Attr {
|
||||
::InternalTimer( gettimeofday() + 0.5,
|
||||
\&FHEM::Core::Weather::DeleteAlertsreadings, $hash );
|
||||
}
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user