73 Commits
v2.2.20 ... dev

Author SHA1 Message Date
af36bed895 Merge pull request 'patch-removedarksky' (#74) from patch-removedarksky into dev
Reviewed-on: #74
2025-02-05 06:11:46 +00:00
ba898624c5 ```
Refactor pre-commit hook by removing DarkSkyAPI references

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.
```
2025-02-05 07:08:45 +01:00
12595b3674 ```
Refactor pre-commit hook file list and output formatting

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.
```
2025-02-05 07:07:52 +01:00
f7234b10f8 Merge pull request 'dev' (#73) from dev into main
Reviewed-on: #73
2025-02-04 20:30:22 +00:00
be3fb7bbfc Merge pull request 'patch-Unbalanced_p' (#72) from patch-Unbalanced_p into dev
Reviewed-on: #72
2025-02-04 20:29:19 +00:00
23bbc9f9b0 docs: add changelog 2025-02-04 21:27:10 +01:00
e60509fbfd docs: fix unbalanced p 2025-02-04 21:26:52 +01:00
aafeea4d5f Merge pull request 'testing' (#71) from testing into main
Reviewed-on: #71
2025-02-04 20:08:10 +00:00
c6b6a12e47 Merge pull request 'dev' (#70) from dev into testing
Reviewed-on: #70
2025-02-04 20:03:28 +00:00
b57f538bc3 Merge pull request 'patch-changeVersion' (#69) from patch-changeVersion into dev
Reviewed-on: #69
2025-02-04 20:02:15 +00:00
464ba0bec3 docs: add changelog 2025-02-04 21:01:33 +01:00
2b96be4e6e feat: remove DarkSky, change versions
remove DarkSkyAPI, no longer supported
change Copyright years and versions of OWM API

[Ticket: no]
2025-02-04 21:01:17 +01:00
d07297bcd8 Merge pull request 'patch-stefanru' (#68) from patch-stefanru into dev
Reviewed-on: #68
2025-02-04 19:54:21 +00:00
af786290bc docs: changelog
[Ticket: no]
2025-02-04 20:53:14 +01:00
478c4a3159 fix: apply patch from stefanru
https://forum.fhem.de/index.php?msg=1332884

[Ticket: no]
2025-02-04 20:52:52 +01:00
6a38b446a9 Merge pull request 'testing' (#67) from testing into main
Reviewed-on: #67
2024-10-11 17:43:20 +00:00
00c0a2a87e Merge pull request 'dev' (#66) from dev into testing
Reviewed-on: #66
2024-10-11 10:14:14 +00:00
0a47226436 Merge pull request 'patch-fixforecast' (#65) from patch-fixforecast into dev
Reviewed-on: #65
2024-10-11 10:05:05 +00:00
e9fb9357a9 docs: new CHANGELOG 2024-10-11 12:04:37 +02:00
ce875a8beb docs: change versions and add copyright 2024-10-11 12:04:07 +02:00
d0157fb2c7 Merge pull request 'docs: Changelog' (#64) from patch-fixforecast into dev
Reviewed-on: #64
2024-10-11 05:08:47 +00:00
eb134a19e9 docs: Changelog
[Ticket: no]
2024-10-11 07:07:57 +02:00
cfd255569f Merge pull request 'patch-fixforecast' (#63) from patch-fixforecast into dev
Reviewed-on: #63
2024-10-11 05:04:17 +00:00
b1de4b52da fix: Update forecast with cachemaxage after API calls are down.
special thanks to stefanru (forum)

[Ticket: no]
2024-10-11 06:59:53 +02:00
6b6c066a9b Merge pull request 'testing' (#62) from testing into main
Reviewed-on: #62
2023-10-21 09:07:57 +02:00
530fc01d57 Merge pull request 'dev' (#61) from dev into testing
Reviewed-on: #61
2023-10-21 09:07:21 +02:00
7d7cbef4ed Merge pull request 'patch-createDecimal' (#60) from patch-createDecimal into dev
Reviewed-on: #60
2023-10-21 09:00:46 +02:00
8b9bbd4f98 test: add new CHANGELOG 2023-10-21 08:59:11 +02:00
2a06821252 feat: new reading owmAPICode for original code
[Ticket: no]
2023-07-11 14:10:13 +02:00
9868f74a86 Merge pull request 'testing' (#59) from testing into main
Reviewed-on: #59
2023-06-06 08:44:06 +02:00
d2e93a6d5a Merge pull request 'dev' (#58) from dev into testing
Reviewed-on: #58
2023-06-06 08:43:34 +02:00
c27d51534c Merge pull request 'closes #56 patch-newsummaryfield' (#57) from patch-newsummaryfield into dev
Reviewed-on: #57
2023-06-06 08:37:44 +02:00
5bfd1c49d9 feat: add human-readable text of daily forecast
add the proper human-readable text description of the daily forecast

[Ticket: no]
2023-06-06 08:35:06 +02:00
0f1af75a9e Merge pull request 'testing' (#55) from testing into main
Reviewed-on: #55
2023-06-02 05:01:51 +02:00
70a402f096 Merge pull request 'dev' (#54) from dev into testing
Reviewed-on: #54
2023-06-02 05:01:27 +02:00
245fc455e1 Merge pull request 'patch-wunderground' (#53) from patch-wunderground into dev
Reviewed-on: #53
2023-06-02 05:00:55 +02:00
1683fab2d4 add temperatur reading and fix weblink 2023-05-23 08:08:42 +02:00
33763032c6 Merge pull request 'testing' (#52) from testing into main
Reviewed-on: #52
2023-02-05 09:48:33 +01:00
2afb98f9b9 Merge pull request 'dev' (#51) from dev into testing
Reviewed-on: #51
2023-02-05 09:46:46 +01:00
38091aacd1 Merge pull request 'fix: missing perl modules' (#50) from patch-removePrivatFnDeklaration into dev
Reviewed-on: #50
2023-02-05 09:27:02 +01:00
30dd03cbea fix: missing perl modules 2023-02-05 09:26:04 +01:00
43e3fcb237 Merge pull request 'patch-removePrivatFnDeklaration' (#49) from patch-removePrivatFnDeklaration into dev
Reviewed-on: #49
2023-02-05 09:21:27 +01:00
5f611555e3 fix: failed then Readonly is missing 2023-02-05 09:20:20 +01:00
a3fa194cdd Merge pull request 'dev' (#48) from dev into main
Reviewed-on: #48
2023-02-02 23:01:37 +01:00
baa48a79a4 fixes: #46 Merge pull request 'fixes: #46 patch-UndefinedSubroutine' (#47) from patch-UndefinedSubroutine into dev
Reviewed-on: #47
2023-02-02 23:00:17 +01:00
2601a42643 fix: : Undefined subroutine
&FHEM::Core::Weather::DeleteForecastreadings

[Ticket: #46]
2023-02-02 22:58:40 +01:00
cfd8ff9ea1 Merge pull request 'testing' (#45) from testing into main
Reviewed-on: #45
2023-01-29 16:14:03 +01:00
be3352e462 Merge pull request 'dev' (#44) from dev into testing
Reviewed-on: #44
2023-01-10 21:56:18 +01:00
fb5087803b Merge pull request 'patch-package' (#43) from patch-package into dev
Reviewed-on: #43
2023-01-10 21:46:48 +01:00
e3b9f512b9 docs: add new entry in CHANGELOG.md 2023-01-10 21:44:20 +01:00
99b46338ca build: v2.2.22 2023-01-10 21:43:26 +01:00
a78a1a986d docs: add new modul path in to pre-commit
add new modul path in to pre-commit hook file
2023-01-10 21:37:10 +01:00
62df910faa revert: mod packages
- 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]
2023-01-10 21:32:56 +01:00
f96c557a22 Merge pull request 'dev' (#42) from dev into main
Reviewed-on: #42
2023-01-10 16:14:00 +01:00
4eeb71e8bc fixes: #40 Merge pull request 'patch-DarkSkyError' (#41) from patch-DarkSkyError into dev
Reviewed-on: #41
2023-01-10 16:11:25 +01:00
eeea03d2df fix: #40
Undefined subroutine &FHEM::APIs::Weather::DarkSkyAPI::__strftimeWrapper
2023-01-10 16:09:53 +01:00
2e8acfff0b Merge pull request 'dev' (#39) from dev into main
Reviewed-on: #39
2023-01-08 22:00:37 +01:00
c29f48a282 Merge pull request 'fixes: #37' (#38) from patch-WeatherAsHtmlD into dev
Reviewed-on: #38
2023-01-08 22:00:09 +01:00
185a7bbc91 docs: add new changelog and change version 2023-01-08 21:56:15 +01:00
0a2f755324 fix: bugfix function WeatherAsHtmlD not working 2023-01-08 21:54:31 +01:00
b6ecd73be9 Merge pull request 'testing' (#36) from testing into main
Reviewed-on: #36
2023-01-08 17:14:53 +01:00
4e666112b5 Merge pull request 'dev' (#35) from dev into testing
Reviewed-on: #35
2023-01-08 17:14:30 +01:00
394c038e5c Merge pull request 'patch-version' (#34) from patch-version into dev
Reviewed-on: #34
2023-01-08 17:12:17 +01:00
e96fb55f90 docs: new changelog entry 2023-01-08 17:11:31 +01:00
a330aec9d7 docs: new versions 2023-01-08 17:11:03 +01:00
fc08db02eb Merge pull request 'fixes: #31' (#33) from patch-DarkSky into dev
Reviewed-on: #33
2023-01-08 17:05:53 +01:00
f8b12ba1a7 fix: #31
Use of uninitialized value in DarkSkyAPI.pm line 730
2023-01-08 17:05:11 +01:00
908773420b Merge pull request 'fixes: #30' (#32) from patch-openweathermap into dev
Reviewed-on: #32
2023-01-08 16:54:10 +01:00
cef2455448 fix: #30
Use of uninitialized value in OpenWeatherMapAPI.pm line 981
2023-01-08 16:52:11 +01:00
e237018aad fix: wrong snow hour assignment 2023-01-08 16:21:40 +01:00
c7f7066b31 Merge pull request 'testing' (#29) from testing into main
Reviewed-on: #29
2023-01-07 13:49:01 +01:00
363e862244 Merge pull request 'dev' (#28) from dev into testing
Reviewed-on: #28
2023-01-07 13:47:47 +01:00
8659585952 Merge pull request 'patch-newversion' (#27) from patch-newversion into dev
Reviewed-on: #27
2023-01-07 13:45:43 +01:00
9 changed files with 2718 additions and 2107 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
UPD 2023-01-07_13:28:16 57768 FHEM/59_Weather.pm UPD 2025-02-05_05:56:41 25899 FHEM/59_Weather.pm
UPD 2023-01-07_13:28:44 49884 lib/FHEM/APIs/Weather/DarkSkyAPI.pm UPD 2025-02-04_21:08:26 34419 lib/FHEM/Core/Weather.pm
UPD 2023-01-07_13:28:59 33258 lib/FHEM/APIs/Weather/OpenWeatherMapAPI.pm UPD 2025-02-05_06:38:34 33780 lib/FHEM/APIs/Weather/OpenWeatherMapAPI.pm
UPD 2023-01-07_13:29:12 36090 lib/FHEM/APIs/Weather/wundergroundAPI.pm UPD 2025-02-04_21:08:26 38751 lib/FHEM/APIs/Weather/wundergroundAPI.pm

View File

@ -4,32 +4,34 @@ use File::Basename;
use POSIX qw(strftime); use POSIX qw(strftime);
use strict; use strict;
my @filenames = ( 'FHEM/59_Weather.pm', my @filenames = (
'lib/FHEM/APIs/Weather/DarkSkyAPI.pm', 'FHEM/59_Weather.pm',
'lib/FHEM/Core/Weather.pm',
'lib/FHEM/APIs/Weather/OpenWeatherMapAPI.pm', 'lib/FHEM/APIs/Weather/OpenWeatherMapAPI.pm',
'lib/FHEM/APIs/Weather/wundergroundAPI.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); my @statOutput = stat($filename);
if (scalar @statOutput != 13) { if ( scalar @statOutput != 13 ) {
printf 'error: stat has unexpected return value for ' . $filename . "\n"; printf 'error: stat has unexpected return value for '
. $filename . "\n";
next; next;
} }
my $mtime = $statOutput[9]; my $mtime = $statOutput[9];
my $date = POSIX::strftime("%Y-%m-%d", localtime($mtime)); my $date = POSIX::strftime( "%Y-%m-%d", localtime($mtime) );
my $time = POSIX::strftime("%H:%M:%S", localtime($mtime)); my $time = POSIX::strftime( "%H:%M:%S", localtime($mtime) );
my $filetime = $date."_".$time; my $filetime = $date . "_" . $time;
my $filesize = $statOutput[7]; my $filesize = $statOutput[7];
printf FH 'UPD ' . $filetime . ' ' . $filesize . ' ' .$filename . "\n"; printf FH 'UPD ' . $filetime . ' ' . $filesize . ' ' . $filename . "\n";
} }
close(FH); close(FH);

File diff suppressed because one or more lines are too long

View File

@ -3,7 +3,7 @@
# #
# Developed with VSCodium and richterger perl plugin # 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 # All rights reserved
# #
# Special thanks goes to: # Special thanks goes to:
@ -423,7 +423,7 @@ sub _ProcessingRetrieveData {
_ErrorHandling( $self, _ErrorHandling( $self,
'OpenWeatherMap Weather decode JSON err ' . $@ ); 'OpenWeatherMap Weather decode JSON err ' . $@ );
} }
elsif (defined( $data->{cod} ) elsif ( defined( $data->{cod} )
&& $data->{cod} && $data->{cod}
&& $data->{cod} != 200 && $data->{cod} != 200
&& defined( $data->{message} ) && defined( $data->{message} )
@ -591,6 +591,7 @@ sub _FillSelfHashWithWeatherResponseForWeatherCurrent {
'wind_direction' => $data->{wind}->{deg}, 'wind_direction' => $data->{wind}->{deg},
'cloudCover' => $data->{clouds}->{all}, 'cloudCover' => $data->{clouds}->{all},
'code' => $codes{ $data->{weather}->[0]->{id} }, 'code' => $codes{ $data->{weather}->[0]->{id} },
'owmAPICode' => $data->{weather}->[0]->{id},
'iconAPI' => $data->{weather}->[0]->{icon}, 'iconAPI' => $data->{weather}->[0]->{icon},
'sunsetTime' => _strftimeWrapper( 'sunsetTime' => _strftimeWrapper(
"%a, %e %b %Y %H:%M", "%a, %e %b %Y %H:%M",
@ -670,6 +671,7 @@ sub _FillSelfHashWithWeatherResponseForForecastHourly {
), ),
'cloudCover' => $data->{list}->[$i]->{clouds}->{all}, 'cloudCover' => $data->{list}->[$i]->{clouds}->{all},
'code' => $codes{ $data->{list}->[$i]->{weather}->[0]->{id} }, 'code' => $codes{ $data->{list}->[$i]->{weather}->[0]->{id} },
'owmAPICode' => $data->{list}->[$i]->{weather}->[0]->{id},
'iconAPI' => $data->{list}->[$i]->{weather}->[0]->{icon}, 'iconAPI' => $data->{list}->[$i]->{weather}->[0]->{icon},
'rain1h' => ( 'rain1h' => (
$data->{list}->[$i]->{rain}->{'1h'} $data->{list}->[$i]->{rain}->{'1h'}
@ -688,7 +690,7 @@ sub _FillSelfHashWithWeatherResponseForForecastHourly {
), ),
'snow3h' => ( 'snow3h' => (
$data->{list}->[$i]->{snow}->{'3h'} $data->{list}->[$i]->{snow}->{'3h'}
? $data->{list}->[$i]->{snow}->{'1h'} ? $data->{list}->[$i]->{snow}->{'3h'}
: 0 : 0
), ),
} }
@ -732,6 +734,7 @@ sub _FillSelfHashWithWeatherResponseForOnecallCurrent {
'rain_1h' => ( $data->{rain}->{'1h'} ? $data->{rain}->{'1h'} : 0 ), 'rain_1h' => ( $data->{rain}->{'1h'} ? $data->{rain}->{'1h'} : 0 ),
'cloudCover' => $data->{current}->{clouds}, 'cloudCover' => $data->{current}->{clouds},
'code' => $codes{ $data->{current}->{weather}->[0]->{id} }, 'code' => $codes{ $data->{current}->{weather}->[0]->{id} },
'owmAPICode' => $data->{current}->{weather}->[0]->{id},
'iconAPI' => $data->{current}->{weather}->[0]->{icon}, 'iconAPI' => $data->{current}->{weather}->[0]->{icon},
'condition' => 'condition' =>
encode_utf8( $data->{current}->{weather}->[0]->{description} ), encode_utf8( $data->{current}->{weather}->[0]->{description} ),
@ -788,6 +791,7 @@ sub _FillSelfHashWithWeatherResponseForOnecallDaily {
'moonset' => strftime( 'moonset' => strftime(
"%a, %H:%M", localtime( $data->{daily}->[$i]->{moonset} ) "%a, %H:%M", localtime( $data->{daily}->[$i]->{moonset} )
), ),
'summary' => $data->{daily}->[$i]->{summary},
'temperature' => 'temperature' =>
int( sprintf( "%.0f", $data->{daily}->[$i]->{temp}->{day} ) ), int( sprintf( "%.0f", $data->{daily}->[$i]->{temp}->{day} ) ),
'temperature_morn' => int( 'temperature_morn' => int(
@ -833,6 +837,7 @@ sub _FillSelfHashWithWeatherResponseForOnecallDaily {
$data->{daily}->[$i]->{weather}->[0]->{description} $data->{daily}->[$i]->{weather}->[0]->{description}
), ),
'code' => $codes{ $data->{daily}->[$i]->{weather}->[0]->{id} }, 'code' => $codes{ $data->{daily}->[$i]->{weather}->[0]->{id} },
'owmAPICode' => $data->{daily}->[$i]->{weather}->[0]->{id},
'iconAPI' => $data->{daily}->[$i]->{weather}->[0]->{icon}, 'iconAPI' => $data->{daily}->[$i]->{weather}->[0]->{icon},
'pressure' => int( 'pressure' => int(
sprintf( "%.1f", $data->{daily}->[$i]->{pressure} ) + 0.5 sprintf( "%.1f", $data->{daily}->[$i]->{pressure} ) + 0.5
@ -853,7 +858,6 @@ sub _FillSelfHashWithWeatherResponseForOnecallDaily {
sprintf( "%.1f", ( $data->{daily}->[$i]->{wind_deg} ) ) sprintf( "%.1f", ( $data->{daily}->[$i]->{wind_deg} ) )
), ),
'cloudCover' => $data->{daily}->[$i]->{clouds}, 'cloudCover' => $data->{daily}->[$i]->{clouds},
'code' => $codes{ $data->{daily}->[$i]->{weather}->[0]->{id} },
'rain' => ( 'rain' => (
$data->{daily}->[$i]->{rain} ? $data->{daily}->[$i]->{rain} $data->{daily}->[$i]->{rain} ? $data->{daily}->[$i]->{rain}
: 0 : 0
@ -920,6 +924,7 @@ sub _FillSelfHashWithWeatherResponseForOnecallHourly {
'wind_direction' => $data->{hourly}->[$i]->{wind_deg}, 'wind_direction' => $data->{hourly}->[$i]->{wind_deg},
'cloudCover' => $data->{hourly}->[$i]->{clouds}, 'cloudCover' => $data->{hourly}->[$i]->{clouds},
'code' => $codes{ $data->{hourly}->[$i]->{weather}->[0]->{id} }, 'code' => $codes{ $data->{hourly}->[$i]->{weather}->[0]->{id} },
'owmAPICode' => $data->{hourly}->[$i]->{weather}->[0]->{id},
'iconAPI' => $data->{hourly}->[$i]->{weather}->[0]->{icon}, 'iconAPI' => $data->{hourly}->[$i]->{weather}->[0]->{icon},
'rain1h' => ( 'rain1h' => (
$data->{hourly}->[$i]->{rain}->{'1h'} $data->{hourly}->[$i]->{rain}->{'1h'}
@ -951,7 +956,7 @@ sub _CallWeatherCallbackFn {
# print 'Dumperausgabe: ' . Dumper $self; # print 'Dumperausgabe: ' . Dumper $self;
### Aufruf der callbackFn ### Aufruf der callbackFn
return ::Weather_RetrieveCallbackFn( $self->{devName} ); return FHEM::Core::Weather::RetrieveCallbackFn( $self->{devName} );
} }
sub _ErrorHandling { sub _ErrorHandling {
@ -977,9 +982,9 @@ sub _CreateForecastRef {
{ {
lat => $self->{lat}, lat => $self->{lat},
long => $self->{long}, long => $self->{long},
apiMaintainer => 'Marko Oldenburg (' apiMaintainer => $META->{author}[0],
. $META->{x_fhem_maintainer}[0] . ')', apiVersion => version->parse( __PACKAGE__->VERSION() )->normal . '-'
apiVersion => version->parse( __PACKAGE__->VERSION() )->normal, . $META->{release_status},
} }
); );
@ -1024,7 +1029,14 @@ sub _strftimeWrapper {
"abstract": "Wetter API für OpenWeatherMap" "abstract": "Wetter API für OpenWeatherMap"
} }
}, },
"version": "v3.2.5", "keywords": [
"fhem-mod-device",
"Weather",
"API"
],
"release_status": "stable",
"license": "GPL_2",
"version": "v3.2.7",
"author": [ "author": [
"Marko Oldenburg <fhemdevelopment@cooltux.net>" "Marko Oldenburg <fhemdevelopment@cooltux.net>"
], ],
@ -1037,8 +1049,9 @@ sub _strftimeWrapper {
"prereqs": { "prereqs": {
"runtime": { "runtime": {
"requires": { "requires": {
"FHEM": 5.00918799,
"HttpUtils": 5.023,
"FHEM::Meta": 0, "FHEM::Meta": 0,
"HttpUtils": 0,
"strict": 0, "strict": 0,
"warnings": 0, "warnings": 0,
"constant": 0, "constant": 0,

File diff suppressed because one or more lines are too long

1159
lib/FHEM/Core/Weather.pm Normal file

File diff suppressed because it is too large Load Diff