Compare commits
65 Commits
Author | SHA1 | Date | |
---|---|---|---|
dbd7d760aa | |||
75f92aece3 | |||
14644b8575 | |||
f37a24673c | |||
d313cb8d4a | |||
2e3210c438 | |||
2db8db3b89 | |||
af36bed895 | |||
ba898624c5 | |||
12595b3674 | |||
f7234b10f8 | |||
be3fb7bbfc | |||
23bbc9f9b0 | |||
e60509fbfd | |||
aafeea4d5f | |||
c6b6a12e47 | |||
b57f538bc3 | |||
464ba0bec3 | |||
2b96be4e6e | |||
d07297bcd8 | |||
af786290bc | |||
478c4a3159 | |||
6a38b446a9 | |||
00c0a2a87e | |||
0a47226436 | |||
e9fb9357a9 | |||
ce875a8beb | |||
d0157fb2c7 | |||
eb134a19e9 | |||
cfd255569f | |||
b1de4b52da | |||
6b6c066a9b | |||
530fc01d57 | |||
7d7cbef4ed | |||
8b9bbd4f98 | |||
2a06821252 | |||
9868f74a86 | |||
d2e93a6d5a | |||
c27d51534c | |||
5bfd1c49d9 | |||
0f1af75a9e | |||
70a402f096 | |||
245fc455e1 | |||
1683fab2d4 | |||
33763032c6 | |||
2afb98f9b9 | |||
38091aacd1 | |||
30dd03cbea | |||
43e3fcb237 | |||
5f611555e3 | |||
a3fa194cdd | |||
baa48a79a4 | |||
2601a42643 | |||
cfd8ff9ea1 | |||
be3352e462 | |||
fb5087803b | |||
e3b9f512b9 | |||
99b46338ca | |||
a78a1a986d | |||
62df910faa | |||
f96c557a22 | |||
4eeb71e8bc | |||
eeea03d2df | |||
2e8acfff0b | |||
c29f48a282 |
419
CHANGELOG.md
419
CHANGELOG.md
@@ -1,4 +1,421 @@
|
||||
### fix: bugfix function WeatherAsHtmlD not working (HEAD -> patch-WeatherAsHtmlD)
|
||||
### Remove DarkSky API support from Weather module (HEAD -> patch-newversion)
|
||||
>Tue, 14 Oct 2025 07:35:18 +0200
|
||||
|
||||
>Author: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
>Commiter: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
The DarkSky API support has been removed from the Weather module documentation,
|
||||
including its references in both English and German sections. The API
|
||||
documentation has been updated to exclusively focus on the
|
||||
OpenWeatherMap API.
|
||||
|
||||
The changes made to `59_Weather.pm` include:
|
||||
|
||||
- Deleted mentions of the DarkSky API in the documentation.
|
||||
- Updated example command snippets to reference the
|
||||
OpenWeatherMap API.
|
||||
- Version number has been incremented from v2.2.35 to v2.3.0.
|
||||
|
||||
In addition, the version number for the OpenWeatherMap API support
|
||||
has been updated from v3.2.7 to v3.2.8 in the corresponding API file.
|
||||
|
||||
These updates were necessary to streamline the module's
|
||||
functionality and align it with current API availability, as
|
||||
DarkSky has been discontinued. There are no breaking changes
|
||||
for existing users of the OpenWeatherMap API.
|
||||
|
||||
|
||||
|
||||
### Refactor language handling in Weather API (origin/testing, origin/main, origin/dev, origin/HEAD, testing, main, dev)
|
||||
>Tue, 14 Oct 2025 07:04:00 +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 to enhance code readability and
|
||||
maintainability. The attribute handling in the `Attr` subroutine
|
||||
was simplified for clarity, removing unnecessary usage
|
||||
of `given/when`, which helps reduce complexity throughout
|
||||
the codebase.
|
||||
|
||||
Additionally, 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 in Weather API
|
||||
>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)
|
||||
|
||||
>Commiter: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
Updated the list of files in the pre-commit hook to remove
|
||||
references to 'lib/FHEM/APIs/Weather/DarkSkyAPI.pm' and adjusted
|
||||
the output formatting for better readability. The order of the
|
||||
files in the @filenames array has been restructured for clarity.
|
||||
These changes were necessary to ensure our code base focuses on
|
||||
the more relevant weather API files.
|
||||
|
||||
No breaking changes introduced; the pre-commit hook continues to
|
||||
function as intended.
|
||||
```
|
||||
|
||||
|
||||
|
||||
### docs: add changelog
|
||||
>Tue, 4 Feb 2025 21:27:10 +0100
|
||||
|
||||
>Author: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
>Commiter: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
|
||||
|
||||
|
||||
### docs: fix unbalanced p
|
||||
>Tue, 4 Feb 2025 21:26:52 +0100
|
||||
|
||||
>Author: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
>Commiter: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
|
||||
|
||||
|
||||
### docs: add changelog
|
||||
>Tue, 4 Feb 2025 21:01:33 +0100
|
||||
|
||||
>Author: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
>Commiter: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
|
||||
|
||||
|
||||
### feat: remove DarkSky, change versions remove DarkSkyAPI, no longer supported change Copyright years and versions of OWM API
|
||||
>Tue, 4 Feb 2025 21:01:17 +0100
|
||||
|
||||
>Author: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
>Commiter: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
[Ticket: no]
|
||||
|
||||
|
||||
|
||||
### docs: changelog
|
||||
>Tue, 4 Feb 2025 20:53:14 +0100
|
||||
|
||||
>Author: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
>Commiter: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
[Ticket: no]
|
||||
|
||||
|
||||
|
||||
### fix: apply patch from stefanru https://forum.fhem.de/index.php?msg=1332884
|
||||
>Tue, 4 Feb 2025 20:52:52 +0100
|
||||
|
||||
>Author: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
>Commiter: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
[Ticket: no]
|
||||
|
||||
|
||||
|
||||
### docs: new CHANGELOG
|
||||
>Fri, 11 Oct 2024 12:04:37 +0200
|
||||
|
||||
>Author: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
>Commiter: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
|
||||
|
||||
|
||||
### docs: change versions and add copyright
|
||||
>Fri, 11 Oct 2024 12:04:07 +0200
|
||||
|
||||
>Author: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
>Commiter: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
|
||||
|
||||
|
||||
### docs: Changelog
|
||||
>Fri, 11 Oct 2024 07:07:57 +0200
|
||||
|
||||
>Author: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
>Commiter: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
[Ticket: no]
|
||||
|
||||
|
||||
|
||||
### fix: Update forecast with cachemaxage after API calls are down. special thanks to stefanru (forum)
|
||||
>Fri, 11 Oct 2024 06:59:53 +0200
|
||||
|
||||
>Author: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
>Commiter: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
[Ticket: no]
|
||||
|
||||
|
||||
|
||||
### test: add new CHANGELOG
|
||||
>Sat, 21 Oct 2023 08:59:11 +0200
|
||||
|
||||
>Author: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
>Commiter: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
|
||||
|
||||
|
||||
### feat: new reading owmAPICode for original code
|
||||
>Tue, 11 Jul 2023 14:10:13 +0200
|
||||
|
||||
>Author: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
>Commiter: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
[Ticket: no]
|
||||
|
||||
|
||||
|
||||
### feat: add human-readable text of daily forecast
|
||||
>Tue, 6 Jun 2023 08:35:06 +0200
|
||||
|
||||
>Author: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
>Commiter: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
add the proper human-readable text description of the daily forecast
|
||||
|
||||
[Ticket: no]
|
||||
|
||||
|
||||
|
||||
### add temperatur reading and fix weblink
|
||||
>Tue, 23 May 2023 08:08:42 +0200
|
||||
|
||||
>Author: Marko Oldenburg (oldenburg@b1-systems.de)
|
||||
|
||||
>Commiter: Marko Oldenburg (oldenburg@b1-systems.de)
|
||||
|
||||
|
||||
|
||||
|
||||
### fix: missing perl modules
|
||||
>Sun, 5 Feb 2023 09:26:04 +0100
|
||||
|
||||
>Author: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
>Commiter: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
|
||||
|
||||
|
||||
### fix: failed then Readonly is missing
|
||||
>Sun, 5 Feb 2023 09:20:20 +0100
|
||||
|
||||
>Author: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
>Commiter: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
|
||||
|
||||
|
||||
### fix: : Undefined subroutine
|
||||
>Thu, 2 Feb 2023 22:58:40 +0100
|
||||
|
||||
>Author: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
>Commiter: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
&FHEM::Core::Weather::DeleteForecastreadings
|
||||
|
||||
[Ticket: #46]
|
||||
|
||||
|
||||
|
||||
### docs: add new entry in CHANGELOG.md (tag: v2.2.22)
|
||||
>Tue, 10 Jan 2023 21:44:20 +0100
|
||||
|
||||
>Author: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
>Commiter: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
|
||||
|
||||
|
||||
### build: v2.2.22
|
||||
>Tue, 10 Jan 2023 21:43:26 +0100
|
||||
|
||||
>Author: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
>Commiter: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
|
||||
|
||||
|
||||
### docs: add new modul path in to pre-commit
|
||||
>Tue, 10 Jan 2023 21:37:10 +0100
|
||||
|
||||
>Author: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
>Commiter: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
add new modul path in to pre-commit hook file
|
||||
|
||||
|
||||
|
||||
### revert: mod packages
|
||||
>Tue, 10 Jan 2023 21:32:56 +0100
|
||||
|
||||
>Author: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
>Commiter: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
- packages Weather.pm
|
||||
- split FHEM/59_Weather.pm in two files and packages (FEHM/59_Weather.pm
|
||||
and FHEM/Core/Weather.pm
|
||||
|
||||
[optional body]
|
||||
|
||||
[Ticket: no]
|
||||
|
||||
|
||||
|
||||
### fix: #40
|
||||
>Tue, 10 Jan 2023 16:09:53 +0100
|
||||
|
||||
>Author: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
>Commiter: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
Undefined subroutine &FHEM::APIs::Weather::DarkSkyAPI::__strftimeWrapper
|
||||
|
||||
|
||||
|
||||
### docs: add new changelog and change version (tag: v2.2.21)
|
||||
>Sun, 8 Jan 2023 21:56:15 +0100
|
||||
|
||||
>Author: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
>Commiter: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
||||
|
||||
|
||||
|
||||
### fix: bugfix function WeatherAsHtmlD not working
|
||||
>Sun, 8 Jan 2023 21:54:31 +0100
|
||||
|
||||
>Author: Marko Oldenburg (fhemdevelopment@cooltux.net)
|
||||
|
File diff suppressed because one or more lines are too long
1171
FHEM/59_Weather.pm
1171
FHEM/59_Weather.pm
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,4 @@
|
||||
UPD 2023-01-08_21:52:20 57800 FHEM/59_Weather.pm
|
||||
UPD 2023-01-08_17:15:24 50104 lib/FHEM/APIs/Weather/DarkSkyAPI.pm
|
||||
UPD 2023-01-08_17:15:24 33411 lib/FHEM/APIs/Weather/OpenWeatherMapAPI.pm
|
||||
UPD 2023-01-07_19:00:05 36090 lib/FHEM/APIs/Weather/wundergroundAPI.pm
|
||||
UPD 2025-10-14_07:34:42 24515 FHEM/59_Weather.pm
|
||||
UPD 2025-10-14_07:20:30 34175 lib/FHEM/Core/Weather.pm
|
||||
UPD 2025-10-14_07:25:36 33545 lib/FHEM/APIs/Weather/OpenWeatherMapAPI.pm
|
||||
UPD 2025-10-14_07:20:30 38721 lib/FHEM/APIs/Weather/wundergroundAPI.pm
|
||||
|
@@ -4,32 +4,34 @@ use File::Basename;
|
||||
use POSIX qw(strftime);
|
||||
use strict;
|
||||
|
||||
my @filenames = ( 'FHEM/59_Weather.pm',
|
||||
'lib/FHEM/APIs/Weather/DarkSkyAPI.pm',
|
||||
'lib/FHEM/APIs/Weather/OpenWeatherMapAPI.pm',
|
||||
'lib/FHEM/APIs/Weather/wundergroundAPI.pm',
|
||||
);
|
||||
my @filenames = (
|
||||
'FHEM/59_Weather.pm',
|
||||
'lib/FHEM/Core/Weather.pm',
|
||||
'lib/FHEM/APIs/Weather/OpenWeatherMapAPI.pm',
|
||||
'lib/FHEM/APIs/Weather/wundergroundAPI.pm',
|
||||
);
|
||||
|
||||
my $controlsfile = 'controls_Weather.txt';
|
||||
my $controlsfile = 'controls_Weather.txt';
|
||||
|
||||
open(FH, ">$controlsfile") || return("Can't open $controlsfile: $!");
|
||||
open( FH, ">$controlsfile" ) || return ("Can't open $controlsfile: $!");
|
||||
|
||||
for my $filename (@filenames) {
|
||||
for my $filename (@filenames) {
|
||||
my @statOutput = stat($filename);
|
||||
|
||||
if (scalar @statOutput != 13) {
|
||||
printf 'error: stat has unexpected return value for ' . $filename . "\n";
|
||||
|
||||
if ( scalar @statOutput != 13 ) {
|
||||
printf 'error: stat has unexpected return value for '
|
||||
. $filename . "\n";
|
||||
next;
|
||||
}
|
||||
|
||||
my $mtime = $statOutput[9];
|
||||
my $date = POSIX::strftime("%Y-%m-%d", localtime($mtime));
|
||||
my $time = POSIX::strftime("%H:%M:%S", localtime($mtime));
|
||||
my $filetime = $date."_".$time;
|
||||
my $mtime = $statOutput[9];
|
||||
my $date = POSIX::strftime( "%Y-%m-%d", localtime($mtime) );
|
||||
my $time = POSIX::strftime( "%H:%M:%S", localtime($mtime) );
|
||||
my $filetime = $date . "_" . $time;
|
||||
|
||||
my $filesize = $statOutput[7];
|
||||
|
||||
printf FH 'UPD ' . $filetime . ' ' . $filesize . ' ' .$filename . "\n";
|
||||
printf FH 'UPD ' . $filetime . ' ' . $filesize . ' ' . $filename . "\n";
|
||||
}
|
||||
|
||||
close(FH);
|
||||
|
File diff suppressed because one or more lines are too long
@@ -3,7 +3,7 @@
|
||||
#
|
||||
# Developed with VSCodium and richterger perl plugin
|
||||
#
|
||||
# (c) 2019-2023 Copyright: Marko Oldenburg (fhemdevelopment at cooltux dot net)
|
||||
# (c) 2019-2025 Copyright: Marko Oldenburg (fhemdevelopment at cooltux dot net)
|
||||
# All rights reserved
|
||||
#
|
||||
# Special thanks goes to:
|
||||
@@ -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 );
|
||||
@@ -423,7 +424,7 @@ sub _ProcessingRetrieveData {
|
||||
_ErrorHandling( $self,
|
||||
'OpenWeatherMap Weather decode JSON err ' . $@ );
|
||||
}
|
||||
elsif (defined( $data->{cod} )
|
||||
elsif ( defined( $data->{cod} )
|
||||
&& $data->{cod}
|
||||
&& $data->{cod} != 200
|
||||
&& defined( $data->{message} )
|
||||
@@ -466,67 +467,59 @@ sub _FillSelfHashWithWeatherResponse {
|
||||
$self->{cached}->{city} = encode_utf8( $data->{name} );
|
||||
$self->{cached}->{license}{text} = 'none';
|
||||
|
||||
given ( $self->{endpoint} ) {
|
||||
when ('onecall') {
|
||||
## löschen des alten current Datensatzes
|
||||
delete $self->{cached}->{current};
|
||||
if ( $self->{endpoint} eq 'onecall' ) {
|
||||
## löschen des alten current Datensatzes
|
||||
delete $self->{cached}->{current};
|
||||
|
||||
## löschen des alten forecast Datensatzes
|
||||
delete $self->{cached}->{forecast};
|
||||
## löschen des alten forecast Datensatzes
|
||||
delete $self->{cached}->{forecast};
|
||||
|
||||
## löschen des alten Alerts Datensatzes
|
||||
delete $self->{cached}->{alerts};
|
||||
## löschen des alten Alerts Datensatzes
|
||||
delete $self->{cached}->{alerts};
|
||||
|
||||
$self =
|
||||
_FillSelfHashWithWeatherResponseForOnecallCurrent( $self, $data );
|
||||
|
||||
if ( ref( $data->{hourly} ) eq "ARRAY"
|
||||
&& scalar( @{ $data->{hourly} } ) > 0 )
|
||||
{
|
||||
$self =
|
||||
_FillSelfHashWithWeatherResponseForOnecallCurrent( $self, $data );
|
||||
|
||||
if ( ref( $data->{hourly} ) eq "ARRAY"
|
||||
&& scalar( @{ $data->{hourly} } ) > 0 )
|
||||
{
|
||||
$self =
|
||||
_FillSelfHashWithWeatherResponseForOnecallHourly( $self,
|
||||
$data );
|
||||
}
|
||||
|
||||
if ( ref( $data->{daily} ) eq "ARRAY"
|
||||
&& scalar( @{ $data->{daily} } ) > 0 )
|
||||
{
|
||||
$self =
|
||||
_FillSelfHashWithWeatherResponseForOnecallDaily( $self,
|
||||
$data );
|
||||
}
|
||||
|
||||
if ( ref( $data->{alerts} ) eq "ARRAY"
|
||||
&& scalar( @{ $data->{alerts} } ) > 0 )
|
||||
{
|
||||
$self =
|
||||
_FillSelfHashWithWeatherResponseForOnecallAlerts( $self,
|
||||
$data );
|
||||
}
|
||||
_FillSelfHashWithWeatherResponseForOnecallHourly( $self, $data );
|
||||
}
|
||||
|
||||
when ('weather') {
|
||||
## löschen des alten current Datensatzes
|
||||
delete $self->{cached}->{current};
|
||||
|
||||
## löschen des alten Alerts Datensatzes
|
||||
delete $self->{cached}->{alerts};
|
||||
|
||||
if ( ref( $data->{daily} ) eq "ARRAY"
|
||||
&& scalar( @{ $data->{daily} } ) > 0 )
|
||||
{
|
||||
$self =
|
||||
_FillSelfHashWithWeatherResponseForWeatherCurrent( $self, $data );
|
||||
_FillSelfHashWithWeatherResponseForOnecallDaily( $self, $data );
|
||||
}
|
||||
|
||||
when ('forecast') {
|
||||
## löschen des alten forecast Datensatzes
|
||||
delete $self->{cached}->{forecast};
|
||||
if ( ref( $data->{alerts} ) eq "ARRAY"
|
||||
&& scalar( @{ $data->{alerts} } ) > 0 )
|
||||
{
|
||||
$self =
|
||||
_FillSelfHashWithWeatherResponseForOnecallAlerts( $self, $data );
|
||||
}
|
||||
}
|
||||
elsif ( $self->{endpoint} eq 'weather' ) {
|
||||
## löschen des alten current Datensatzes
|
||||
delete $self->{cached}->{current};
|
||||
|
||||
if ( ref( $data->{list} ) eq "ARRAY"
|
||||
and scalar( @{ $data->{list} } ) > 0 )
|
||||
{
|
||||
$self =
|
||||
_FillSelfHashWithWeatherResponseForForecastHourly( $self,
|
||||
$data );
|
||||
}
|
||||
## löschen des alten Alerts Datensatzes
|
||||
delete $self->{cached}->{alerts};
|
||||
|
||||
$self =
|
||||
_FillSelfHashWithWeatherResponseForWeatherCurrent( $self, $data );
|
||||
}
|
||||
elsif ( $self->{endpoint} eq 'forecast' ) {
|
||||
## löschen des alten forecast Datensatzes
|
||||
delete $self->{cached}->{forecast};
|
||||
|
||||
if ( ref( $data->{list} ) eq "ARRAY"
|
||||
and scalar( @{ $data->{list} } ) > 0 )
|
||||
{
|
||||
$self =
|
||||
_FillSelfHashWithWeatherResponseForForecastHourly( $self, $data );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -591,6 +584,7 @@ sub _FillSelfHashWithWeatherResponseForWeatherCurrent {
|
||||
'wind_direction' => $data->{wind}->{deg},
|
||||
'cloudCover' => $data->{clouds}->{all},
|
||||
'code' => $codes{ $data->{weather}->[0]->{id} },
|
||||
'owmAPICode' => $data->{weather}->[0]->{id},
|
||||
'iconAPI' => $data->{weather}->[0]->{icon},
|
||||
'sunsetTime' => _strftimeWrapper(
|
||||
"%a, %e %b %Y %H:%M",
|
||||
@@ -670,8 +664,9 @@ sub _FillSelfHashWithWeatherResponseForForecastHourly {
|
||||
),
|
||||
'cloudCover' => $data->{list}->[$i]->{clouds}->{all},
|
||||
'code' => $codes{ $data->{list}->[$i]->{weather}->[0]->{id} },
|
||||
'iconAPI' => $data->{list}->[$i]->{weather}->[0]->{icon},
|
||||
'rain1h' => (
|
||||
'owmAPICode' => $data->{list}->[$i]->{weather}->[0]->{id},
|
||||
'iconAPI' => $data->{list}->[$i]->{weather}->[0]->{icon},
|
||||
'rain1h' => (
|
||||
$data->{list}->[$i]->{rain}->{'1h'}
|
||||
? $data->{list}->[$i]->{rain}->{'1h'}
|
||||
: 0
|
||||
@@ -732,6 +727,7 @@ sub _FillSelfHashWithWeatherResponseForOnecallCurrent {
|
||||
'rain_1h' => ( $data->{rain}->{'1h'} ? $data->{rain}->{'1h'} : 0 ),
|
||||
'cloudCover' => $data->{current}->{clouds},
|
||||
'code' => $codes{ $data->{current}->{weather}->[0]->{id} },
|
||||
'owmAPICode' => $data->{current}->{weather}->[0]->{id},
|
||||
'iconAPI' => $data->{current}->{weather}->[0]->{icon},
|
||||
'condition' =>
|
||||
encode_utf8( $data->{current}->{weather}->[0]->{description} ),
|
||||
@@ -788,6 +784,7 @@ sub _FillSelfHashWithWeatherResponseForOnecallDaily {
|
||||
'moonset' => strftime(
|
||||
"%a, %H:%M", localtime( $data->{daily}->[$i]->{moonset} )
|
||||
),
|
||||
'summary' => $data->{daily}->[$i]->{summary},
|
||||
'temperature' =>
|
||||
int( sprintf( "%.0f", $data->{daily}->[$i]->{temp}->{day} ) ),
|
||||
'temperature_morn' => int(
|
||||
@@ -833,8 +830,9 @@ sub _FillSelfHashWithWeatherResponseForOnecallDaily {
|
||||
$data->{daily}->[$i]->{weather}->[0]->{description}
|
||||
),
|
||||
'code' => $codes{ $data->{daily}->[$i]->{weather}->[0]->{id} },
|
||||
'iconAPI' => $data->{daily}->[$i]->{weather}->[0]->{icon},
|
||||
'pressure' => int(
|
||||
'owmAPICode' => $data->{daily}->[$i]->{weather}->[0]->{id},
|
||||
'iconAPI' => $data->{daily}->[$i]->{weather}->[0]->{icon},
|
||||
'pressure' => int(
|
||||
sprintf( "%.1f", $data->{daily}->[$i]->{pressure} ) + 0.5
|
||||
),
|
||||
'wind' => int(
|
||||
@@ -853,8 +851,7 @@ sub _FillSelfHashWithWeatherResponseForOnecallDaily {
|
||||
sprintf( "%.1f", ( $data->{daily}->[$i]->{wind_deg} ) )
|
||||
),
|
||||
'cloudCover' => $data->{daily}->[$i]->{clouds},
|
||||
'code' => $codes{ $data->{daily}->[$i]->{weather}->[0]->{id} },
|
||||
'rain' => (
|
||||
'rain' => (
|
||||
$data->{daily}->[$i]->{rain} ? $data->{daily}->[$i]->{rain}
|
||||
: 0
|
||||
),
|
||||
@@ -920,8 +917,9 @@ sub _FillSelfHashWithWeatherResponseForOnecallHourly {
|
||||
'wind_direction' => $data->{hourly}->[$i]->{wind_deg},
|
||||
'cloudCover' => $data->{hourly}->[$i]->{clouds},
|
||||
'code' => $codes{ $data->{hourly}->[$i]->{weather}->[0]->{id} },
|
||||
'iconAPI' => $data->{hourly}->[$i]->{weather}->[0]->{icon},
|
||||
'rain1h' => (
|
||||
'owmAPICode' => $data->{hourly}->[$i]->{weather}->[0]->{id},
|
||||
'iconAPI' => $data->{hourly}->[$i]->{weather}->[0]->{icon},
|
||||
'rain1h' => (
|
||||
$data->{hourly}->[$i]->{rain}->{'1h'}
|
||||
? $data->{hourly}->[$i]->{rain}->{'1h'}
|
||||
: 0
|
||||
@@ -951,7 +949,7 @@ sub _CallWeatherCallbackFn {
|
||||
|
||||
# print 'Dumperausgabe: ' . Dumper $self;
|
||||
### Aufruf der callbackFn
|
||||
return ::Weather_RetrieveCallbackFn( $self->{devName} );
|
||||
return FHEM::Core::Weather::RetrieveCallbackFn( $self->{devName} );
|
||||
}
|
||||
|
||||
sub _ErrorHandling {
|
||||
@@ -1031,7 +1029,7 @@ sub _strftimeWrapper {
|
||||
],
|
||||
"release_status": "stable",
|
||||
"license": "GPL_2",
|
||||
"version": "v3.2.6",
|
||||
"version": "v3.2.8",
|
||||
"author": [
|
||||
"Marko Oldenburg <fhemdevelopment@cooltux.net>"
|
||||
],
|
||||
|
File diff suppressed because one or more lines are too long
1152
lib/FHEM/Core/Weather.pm
Normal file
1152
lib/FHEM/Core/Weather.pm
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user