Compare commits
24 Commits
6b6c066a9b
...
dev
Author | SHA1 | Date | |
---|---|---|---|
af36bed895 | |||
ba898624c5 | |||
12595b3674 | |||
f7234b10f8 | |||
be3fb7bbfc | |||
23bbc9f9b0 | |||
e60509fbfd | |||
aafeea4d5f | |||
c6b6a12e47 | |||
b57f538bc3 | |||
464ba0bec3 | |||
2b96be4e6e | |||
d07297bcd8 | |||
af786290bc | |||
478c4a3159 | |||
6a38b446a9 | |||
00c0a2a87e | |||
0a47226436 | |||
e9fb9357a9 | |||
ce875a8beb | |||
d0157fb2c7 | |||
eb134a19e9 | |||
cfd255569f | |||
b1de4b52da |
137
CHANGELOG.md
137
CHANGELOG.md
@ -1,4 +1,139 @@
|
||||
### feat: new reading owmAPICode for original code (HEAD -> patch-createDecimal)
|
||||
### ``` Refactor pre-commit hook file list and output formatting (HEAD -> patch-removedarksky)
|
||||
>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 (origin/patch-changeVersion)
|
||||
>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)
|
||||
|
@ -2,12 +2,13 @@
|
||||
##############################################################################
|
||||
#
|
||||
# 59_Weather.pm
|
||||
# (c) 2009-2023 Copyright by Dr. Boris Neubert
|
||||
# (c) 2009-2025 Copyright by Dr. Boris Neubert
|
||||
# e-mail: omega at online dot de
|
||||
#
|
||||
# Contributors:
|
||||
# - Marko Oldenburg (CoolTux)
|
||||
# - Lippie
|
||||
# - stefanru (wundergroundAPI)
|
||||
#
|
||||
#
|
||||
# This file is part of fhem.
|
||||
@ -73,7 +74,7 @@ __END__
|
||||
<h3>Weather</h3>
|
||||
<ul>
|
||||
Note: you need the JSON perl module. Use <code>apt-get install
|
||||
libjson-perl</code> on Debian and derivatives.<p><p>
|
||||
libjson-perl</code> on Debian and derivatives.<p></p>
|
||||
|
||||
The Weather module works with various weather APIs:
|
||||
<ul>
|
||||
@ -104,12 +105,12 @@ __END__
|
||||
<tr><td><code>lang</code></td><td>language of the forecast: <code>de</code>,
|
||||
<code>en</code>, <code>pl</code>, <code>fr</code>, <code>it</code> or <code>nl</code></td></tr>
|
||||
</table>
|
||||
<p>
|
||||
<p></p>
|
||||
|
||||
A very simple definition is:<br><br>
|
||||
<code>define <name> Weather apikey=<DarkSkyAPISecretKey></code><br><br>
|
||||
This uses the Dark Sky API with an individual key that you need to
|
||||
retrieve from the Dark Sky web site.<p><p>
|
||||
retrieve from the Dark Sky web site.<p></p>
|
||||
|
||||
Examples:
|
||||
<pre>
|
||||
@ -119,9 +120,9 @@ __END__
|
||||
</pre>
|
||||
|
||||
|
||||
API-specific documentation follows.<p>
|
||||
API-specific documentation follows.<p></p>
|
||||
|
||||
<h4>Dark Sky</h4><p>
|
||||
<h4>Dark Sky</h4><p></p>
|
||||
|
||||
<table>
|
||||
<tr><td>API</td><td><code>DarkSkyAPI</code></td></tr>
|
||||
@ -132,9 +133,9 @@ __END__
|
||||
weather is forecast; if missing, the values of the attributes
|
||||
of the <code>global</code> device are taken, if these exist.</td></tr>
|
||||
</table>
|
||||
<p><p>
|
||||
<p></p>
|
||||
|
||||
<h4>OpenWeatherMap</h4><p>
|
||||
<h4>OpenWeatherMap</h4><p></p>
|
||||
|
||||
<table>
|
||||
<tr><td>API</td><td><code>OpenWeatherMapAPI</code></td></tr>
|
||||
@ -150,9 +151,9 @@ __END__
|
||||
weather is forecast; if missing, the values of the attributes
|
||||
of the <code>global</code> device are taken, if these exist.</td></tr>
|
||||
</table>
|
||||
<p><p>
|
||||
<p></p>
|
||||
|
||||
<h4>Wunderground</h4><p>
|
||||
<h4>Wunderground</h4><p></p>
|
||||
|
||||
<table>
|
||||
<tr><td>API</td><td><code>wundergroundAPI</code></td></tr>
|
||||
@ -164,7 +165,7 @@ __END__
|
||||
weather is forecast; if missing, the values of the attributes
|
||||
of the <code>global</code> device are taken, if these exist.</td></tr>
|
||||
</table>
|
||||
<p><p>
|
||||
<p></p>
|
||||
|
||||
The module provides four additional functions <code>WeatherAsHtml</code>,
|
||||
<code>WeatherAsHtmlV</code>, <code>WeatherAsHtmlH</code> and
|
||||
@ -302,7 +303,7 @@ __END__
|
||||
<ul>
|
||||
Hinweis: es wird das Perl-Modul JSON benötigt. Mit <code>apt-get install
|
||||
libjson-perl</code> kann es unter Debian und Derivaten installiert
|
||||
werden.<p><p>
|
||||
werden.<p></p>
|
||||
|
||||
Das Weather-Modul arbeitet mit verschiedenen Wetter-APIs zusammen:
|
||||
<ul>
|
||||
@ -333,14 +334,15 @@ __END__
|
||||
<tr><td><code>lang</code></td><td>Sprache der Wettervorhersage: <code>de</code>,
|
||||
<code>en</code>, <code>pl</code>, <code>fr</code>, <code>it</code> oder <code>nl</code></td></tr>
|
||||
</table>
|
||||
<p>
|
||||
<p></p>
|
||||
|
||||
|
||||
Eine ganz einfache Definition ist:<br><br>
|
||||
<code>define <name> Weather apikey=<DarkSkyAPISecretKey></code><br><br>
|
||||
|
||||
Bei dieser Definition wird die API von Dark Sky verwendet mit einem
|
||||
individuellen Schlüssel, den man sich auf der Webseite von Dark Sky
|
||||
beschaffen muss.<p><p>
|
||||
beschaffen muss.<p></p>
|
||||
|
||||
Beispiele:
|
||||
<pre>
|
||||
@ -349,9 +351,9 @@ __END__
|
||||
define <name> Weather API=wundergroundAPI,stationId:IHAUIDELB111 apikey=ed64ccc80f004556a4e3456567800b6324a
|
||||
</pre>
|
||||
|
||||
Es folgt die API-spezifische Dokumentation.<p>
|
||||
Es folgt die API-spezifische Dokumentation.<p></p>
|
||||
|
||||
<h4>Dark Sky</h4><p>
|
||||
<h4>Dark Sky</h4><p></p>
|
||||
|
||||
<table>
|
||||
<tr><td>API</td><td><code>DarkSkyAPI</code></td></tr>
|
||||
@ -363,9 +365,9 @@ __END__
|
||||
Bei fehlender Angabe werden die Werte aus den gleichnamigen Attributen
|
||||
des <code>global</code>-Device genommen, sofern vorhanden.</td></tr>
|
||||
</table>
|
||||
<p><p>
|
||||
<p></p>
|
||||
|
||||
<h4>OpenWeatherMap</h4><p>
|
||||
<h4>OpenWeatherMap</h4><p></p>
|
||||
|
||||
<table>
|
||||
<tr><td>API</td><td><code>OpenWeatherMapAPI</code></td></tr>
|
||||
@ -384,9 +386,9 @@ __END__
|
||||
Bei fehlender Angabe werden die Werte aus den gleichnamigen Attributen
|
||||
des <code>global</code>-Device genommen, sofern vorhanden.</td></tr>
|
||||
</table>
|
||||
<p><p>
|
||||
<p></p>
|
||||
|
||||
<h4>Wunderground</h4><p>
|
||||
<h4>Wunderground</h4><p></p>
|
||||
|
||||
<table>
|
||||
<tr><td>API</td><td><code>wundergroundAPI</code></td></tr>
|
||||
@ -399,7 +401,7 @@ __END__
|
||||
Bei fehlender Angabe werden die Werte aus den gleichnamigen Attributen
|
||||
des <code>global</code>-Device genommen, sofern vorhanden.</td></tr>
|
||||
</table>
|
||||
<p><p>
|
||||
<p></p>
|
||||
|
||||
Das Modul unterstützt zusätzlich vier verschiedene Funktionen
|
||||
<code>WeatherAsHtml</code>, <code>WeatherAsHtmlV</code>,
|
||||
@ -543,7 +545,7 @@ __END__
|
||||
],
|
||||
"release_status": "stable",
|
||||
"license": "GPL_2",
|
||||
"version": "v2.2.22",
|
||||
"version": "v2.2.35",
|
||||
"author": [
|
||||
"Marko Oldenburg <fhemdevelopment@cooltux.net>"
|
||||
],
|
||||
|
@ -1,5 +1,4 @@
|
||||
UPD 2023-01-29_16:14:48 25809 FHEM/59_Weather.pm
|
||||
UPD 2023-06-06_07:31:00 34254 lib/FHEM/Core/Weather.pm
|
||||
UPD 2023-01-29_16:14:48 50106 lib/FHEM/APIs/Weather/DarkSkyAPI.pm
|
||||
UPD 2023-07-11_14:08:00 33779 lib/FHEM/APIs/Weather/OpenWeatherMapAPI.pm
|
||||
UPD 2023-06-02_05:03:58 36607 lib/FHEM/APIs/Weather/wundergroundAPI.pm
|
||||
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
|
||||
|
@ -4,33 +4,34 @@ use File::Basename;
|
||||
use POSIX qw(strftime);
|
||||
use strict;
|
||||
|
||||
my @filenames = ( 'FHEM/59_Weather.pm',
|
||||
'lib/FHEM/Core/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:
|
||||
@ -423,7 +423,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} )
|
||||
|
File diff suppressed because one or more lines are too long
@ -2,12 +2,13 @@
|
||||
##############################################################################
|
||||
#
|
||||
# 59_Weather.pm
|
||||
# (c) 2009-2023 Copyright by Dr. Boris Neubert
|
||||
# (c) 2009-2025 Copyright by Dr. Boris Neubert
|
||||
# e-mail: omega at online dot de
|
||||
#
|
||||
# Contributors:
|
||||
# - Marko Oldenburg (CoolTux)
|
||||
# - Lippie
|
||||
# - stefanru (wundergroundAPI)
|
||||
#
|
||||
#
|
||||
# This file is part of fhem.
|
||||
@ -433,8 +434,13 @@ sub _Writereadings {
|
||||
&& ref( $dataRef->{$r} ) ne 'ARRAY' );
|
||||
}
|
||||
|
||||
::readingsBulkUpdate( $hash, 'icon',
|
||||
$iconlist[ $dataRef->{current}->{code} ] );
|
||||
if ( defined( $dataRef->{current}->{code} )
|
||||
&& $dataRef->{current}->{code} )
|
||||
{
|
||||
::readingsBulkUpdate( $hash, 'icon',
|
||||
$iconlist[ $dataRef->{current}->{code} ] );
|
||||
}
|
||||
|
||||
if ( defined( $dataRef->{current}->{wind_direction} )
|
||||
&& $dataRef->{current}->{wind_direction}
|
||||
&& defined( $dataRef->{current}->{wind_speed} )
|
||||
|
Reference in New Issue
Block a user