59_Weather, DarkSky und OpenWeatherMap API Bugfixes

Begonnen von CoolTux, 13 Januar 2019, 21:22:31

Vorheriges Thema - Nächstes Thema

holle75

... ClimaCell wars auch nicht. Wind/Böen komplett für die Füße.

Jetzt mal ein paar Tage https://www.visualcrossing.com/ parallel zu DarkSky laufen lassen.

Vielversprechender als die anderen Zwei. Deutlich vielversprechender (Wenn man DarkSky als Referenz sieht). Ich beobachte weiter ....

Gisbert

Zitat von: holle75 am 14 Februar 2021, 09:00:45
... Jetzt mal ein paar Tage https://www.visualcrossing.com/ parallel zu DarkSky laufen lassen.

Vielversprechender als die anderen Zwei. Deutlich vielversprechender (Wenn man DarkSky als Referenz sieht). Ich beobachte weiter ....

Hallo holle75,

wie sieht denn deine Definition in Fhem dazu aus?

Viele​ Grüße​ Gisbert​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

holle75

#572
Hallo Gisbert, so

defmod WetterVisualCrossing HTTPMOD https://weather.visualcrossing.com/VisualCrossingWebServices/rest/services/weatherdata/forecast?locations=42.XXXXXX%2C%2011.XXXXXX&aggregateHours=1&forecastDays=7&unitGroup=metric&shortColumnNames=false&contentType=json&key=DEINAPIKEY 3600
attr WetterVisualCrossing enforceGoodReadingNames 1
attr WetterVisualCrossing event-on-change-reading .*
attr WetterVisualCrossing extractAllJSON 1


Dann bekommst du schonmal die ganzen Readings.
Lat/Lon ist deine Location ... die 11 (oder wie auch immer bei dir Lon anfängt) beachten. Das davor ist "Komma, Leerzeichen". Apikey bekommst du auf der Page. Dort findest du auch noch andere Parameter, falls du keine StundenReadings brauchst, oder, oder, oder

Logproxy (hast du wahrscheinlich noch von Proplanta) brauchst du und die Function in der 99my_Utils.pm fürs gplot ... wenn du einen Plot haben möchtest.

Logproxy
defmod LogproxyWetterProplanta logProxy
attr LogproxyWetterProplanta group Wetter


99my_Utils.pm
############## hdm WetterVisualCrossing Wetter Plot funktion ##################################
sub logProxy_WetterVisualCrossing2Plot($$$$;$$) {
my ($device, $fcValue, $from, $to, $fcHour, $expMode) = @_;
    my $regex;
    my @rl;
my $hdmreading;
my $hdmtime;
   
return undef if(!$device);
if ($fcValue =~ s/_$//)
{
$regex = "^locations_LAT__LONG_values_[\\d]+_".$fcValue."\$";
}   
    $fcHour = 12 if(!defined $fcHour);
    $expMode = "point" if(!defined $expMode);
#Log3 undef,2, "regex: ".$regex;
if( defined($defs{$device}) ) {
if( $defs{$device}{TYPE} eq "HTTPMOD" ) {
            @rl = sort{
                my ($an) = ($a =~ m/locations_LAT__LONG_values_(\d+)_.*/);
                my ($bn) = ($b =~ m/locations_LAT__LONG_values_(\d+)_.*/);
                $an <=> $bn or $a cmp $b;
                }( grep /${regex}/,keys %{$defs{$device}{READINGS}} );
return undef if( !@rl );
} else {
Log3 undef, 2, "logProxy_WetterVisualCrossing2Plot: $device is not a HTTPMOD device";
return undef;
}
}
#Log3 undef,2, Dumper(@rl);
my $fromsec = SVG_time_to_sec($from);
my $tosec   = SVG_time_to_sec($to);
my $sec = $fromsec;
my ($h,$hdmsec,$hdmmin,$hdmhour,$hdmmday,$hdmmon,$hdmyear,$hdmwday,$hdmyday,$hdmisdst);
my $timestamp;
   
my $reading;
my $value;
my $prev_value;
my $min = 999999;
my $max = -999999;
my $ret = "";

# while not end of plot range reached
while(($sec < $tosec) && @rl) {
#remember previous value for start of plot range
$prev_value = $value;

$reading = shift @rl;
        ($h) = $reading =~ m/^locations_LAT__LONG_values_(\d+).*/;
$value = ReadingsVal($device,$reading,undef);


use Date::Parse;
$hdmreading = ReadingsVal($device, "locations_LAT__LONG_values_".$h."_datetimeStr",undef);
#Log3 undef,2, "hdmvorCONV: ".$hdmreading;
$hdmtime = str2time($hdmreading);


#Log3 undef,2, "hdmreading: ".$hdmreading;
#Log3 undef,2, "hdmtime: ".$hdmtime;


#($hdmsec, $hdmmin, $hdmhour, $hdmmday, $hdmmon, $hdmyear, $hdmwday, $hdmyday, $hdmisdst) = localtime(ReadingsVal($device, "hfc".$h."_time",undef));
($hdmsec, $hdmmin, $hdmhour, $hdmmday, $hdmmon, $hdmyear, $hdmwday, $hdmyday, $hdmisdst) = localtime($hdmtime);


# necessary conversion of $mon and $year
$hdmmon += 1;
$hdmyear += 1900;
   
$timestamp = sprintf("%04d-%02d-%02d_%02d:%02d:%02d", $hdmyear, $hdmmon, $hdmmday, $hdmhour, $hdmmin, $hdmsec);
#Log3 undef,2, "timestamp: ".$timestamp;
$sec = SVG_time_to_sec($timestamp);
       
# skip all values before start of plot range
next if( SVG_time_to_sec($timestamp) < $fromsec );

# add first value at start of plot range
if( !$ret && $prev_value ) {
$min = $prev_value if( $prev_value < $min );
$max = $prev_value if( $prev_value > $max );
$ret .= "$from $prev_value\n";
}

# done if after end of plot range
last if($sec > $tosec);

$min = $value if( $value < $min );
$max = $value if( $value > $max );

# add actual controll point
$ret .= "$timestamp $value\n";

#Log 3, "$timestamp $value -0- $reading";
}
    if(($sec < $tosec) && !@rl && ($expMode eq "day")) {
    $timestamp = sprintf("%04d-%02d-%02d_%02d:%02d:%02d", $hdmyear, $hdmmon, $hdmmday, 23, 59, 59);
    if(SVG_time_to_sec($timestamp) < $tosec) {
        $ret .= "$timestamp $value\n";
        }
        else {
$ret .= "$to $value\n";
        }
    }
    elsif(($sec > $tosec) && ($expMode eq "day")) {
        $value = $prev_value + ($value - $prev_value)*(86400 + ($tosec - $sec))/86400;
        $ret .= "$to $value\n";
    }
return ($ret,$min,$max,$prev_value);
}
############## end hdm WetterVisualCrossing Wetter Plot funktion ##################################


hier sind die LAT LONG zu beachten. Die entsprechen den Readings die nach deiner Location benannt sind. Siehst du dann im Device.
Die Function habe ich von @Frank abgekupfert und auch mit Hilfe von @cooltux damals auf DarkSky modifiziert. Jetzt für VisualCrossing. Das geht bestimmt auch galanter, aber funktioniert. Da müßte mal ein nicht "script-kiddie" drüber.

Definition SVG
defmod SVG_FileLog_WetterVisualCrossing SVG FileLog_WetterVisualCrossing:SVG_FileLog_WetterVisualCrossing:CURRENT
attr SVG_FileLog_WetterVisualCrossing fixedoffset 6
attr SVG_FileLog_WetterVisualCrossing fixedrange 7days


SVG_FileLog_WetterVisualCrossing gplot
# Created by FHEM/98_SVG.pm, 2021-02-12 14:50:52
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title 'VisualCrossing Regen / Regenwahrscheinlichkeit / Wolken'
set ytics
set y2tics
set grid y2tics
set ylabel "Regen / Solar"
set y2label "Wolken / Regenw / Wind"
set yrange [0:10]

#LogproxyWetterProplanta Func:logProxy_WetterVisualCrossing2Plot("WetterVisualCrossing","wgust_",$from,$to,0,"day")
#LogproxyWetterProplanta Func:logProxy_WetterVisualCrossing2Plot("WetterVisualCrossing","wspd_",$from,$to,0,"day")
#LogproxyWetterProplanta Func:logProxy_WetterVisualCrossing2Plot("WetterVisualCrossing","solarenergy_",$from,$to,0,"day")
#LogproxyWetterProplanta Func:logProxy_WetterVisualCrossing2Plot("WetterVisualCrossing","precip_",$from,$to,0,"day")
#LogproxyWetterProplanta Func:logProxy_WetterVisualCrossing2Plot("WetterVisualCrossing","pop_",$from,$to,0,"day")
#LogproxyWetterProplanta Func:logProxy_WetterVisualCrossing2Plot("WetterVisualCrossing","cloudcover_",$from,$to,0,"day")
#LogproxyWetterProplanta ConstX:TimeNow(),0,100
#LogproxyWetterProplanta ConstY:60

plot "<IN>" using 1:2 axes x1y2 title 'Boen (km/h)' ls l3 lw 2 with quadraticSmooth,\
     "<IN>" using 1:2 axes x1y2 title 'Wind (km/h)' ls l1 lw 2 with quadraticSmooth,\
     "<IN>" using 1:2 axes x1y1 title 'Solar (kWh/m2)' ls l0 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y1 title 'Regen (mm)' ls l2fill lw 0.2 with ibars,\
     "<IN>" using 1:2 axes x1y2 title 'Regenw. (%)' ls l5fill lw 0.5 with quadraticSmooth,\
     "<IN>" using 1:2 axes x1y2 title 'Wolken (%)' ls l6fill lw 0.5 with quadraticSmooth,\
     "<IN>" using 1:2 axes x1y2 notitle ls l5 lw 4 with lines,\
     "<IN>" using 1:2 axes x1y2 notitle ls l3dot lw 1 with lines


und nen Filelog brauchst du auch noch:

defmod FileLog_WetterVisualCrossing FileLog ./log/WetterVisualCrossing-%Y-%m-%d.log WetterVisualCrossing
attr FileLog_WetterVisualCrossing group Wetter
attr FileLog_WetterVisualCrossing logtype text
attr FileLog_WetterVisualCrossing nrarchive 3


denke, das war alles.

edit: fnck apple!


Gisbert

Hallo holle75,

vielen Dank für die umfangreiche Definitionen, die publik gemacht hast.

Ich verstehe noch folgendes nicht:
defmod LogproxyWetterProplanta logProxy
Sollte das nicht eher dann "LogproxyWetterVisualCrossing" genannt werden?

Im Code für 99my_utils.pm taucht folgende Definition mehrfach auf:
...locations_LAT__LONG_values...
Muss ich hier irgendetwas ändern?
Oder ist dein Hinweis nur so zu verstehen, dass die Werte aus meiner Definition (=meine Adresse) genommen werden?

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

holle75

Du kannst es auch "LogproxyWetterVisualCrossing" nennen, dann mußt du aber auch die Verweise in den anderen Devices/Funktionen entsprechend anpassen.
Ein logproxy Device, soweit ich es verstehe, hat es nur einmal. Meines hieß eben von Proplanta noch so.

LAT/LONG mußt du ändern. Die Readings deines HTTPMOD VisualCrossing Devices werden nach deinem lat/lon benannt. Leg erstmal das HTTPMOD Device an, dann siehst du was ich meine.

Gisbert

Zitat von: holle75 am 15 Februar 2021, 19:36:07
LAT/LONG mußt du ändern. Die Readings deines HTTPMOD VisualCrossing Devices werden nach deinem lat/lon benannt. Leg erstmal das HTTPMOD Device an, dann siehst du was ich meine.

Hallo holle75,

danke für die Erklärung zu Logproxy, dass muss ich mir dann mal zu Gemüte führen, im Laufe der Woche.

Die Werte für LAT/LONG muss ich in der HTTPMOD-Definition ändern, das ist mir schon klar.
Meine Frage ging dahin, ob ich in der 99my_Utils noch was ändern muss, z.B. LAT und LONG durch meine Werte ersetzen muss.

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

holle75

Zitat von: Gisbert am 15 Februar 2021, 20:12:49
Meine Frage ging dahin, ob ich in der 99my_Utils noch was ändern muss, z.B. LAT und LONG durch meine Werte ersetzen muss.

Ja, ... das hatte ich versucht zu erklären ;)
schau dir die Readings vom HTTPMOD Device an, dann verstehst du die Logik in der function

Gisbert

#577
Hallo holle75,

VisualCrossing scheint für viele Freezes bei mir verantwortlich zu sein.
Ich hab das Device vorsichtshalber deaktiviert und wollte bei dir nachfragen, wie deine Erfahrung ist, oder ob du etwas unsinniges bei meiner Definion siehst:

defmod VisualCrossingLeverkusen HTTPMOD https://weather.visualcrossing.com/VisualCrossingWebServices/rest/services/weatherdata/forecast?locations=GELÖSCHT&aggregateHours=1&forecastDays=3&unitGroup=metric&shortColumnNames=false&contentType=json&key=GELÖSCHT 1800
attr VisualCrossingLeverkusen alias VisualCrossing
attr VisualCrossingLeverkusen enforceGoodReadingNames 1
attr VisualCrossingLeverkusen extractAllJSON 1
attr VisualCrossingLeverkusen group Wetter
attr VisualCrossingLeverkusen icon weather_cloudy_light
attr VisualCrossingLeverkusen room Weather


Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

holle75

Hallo Gisbert, ja, HTTPMOD braucht eine gewisse Zeit, um die Daten zu holen. Das mit den Freezes passiert bei mir auch ab und zu. Schon viel Fehlersuche betrieben, sowohl für WEATHER (api) als auch für HTTPMOD, aber da scheint eine Ebene tiefer etwas nicht gaaaanz sauber zu sein. Beide Module sind in der Theorie non blocking.

Hab jetzt nicht alle Varianten wie du Daten bei Visualcrossing holst im Kopf, aber auf den ersten Blick sieht deine Definition nicht falsch aus. Ob du alle 30 min ein Update brauchst? Falls dein Apikey in der DEF dein echter ist, würde ich den noch wegeditieren ;)

somansch

@Holle75,

ich habe mir jetzt auch mal "WetterVisualCrossing" eingerichtet und ein wenig die Daten verglichen. Macht ein guten Eindruck  :). Man kann auch die Sprache der Ausgaben für den Zustand und die Alarmmeldungen auf Deutsch ändern (&lang=de  als zusätzlichen Parameter).

Im Gegensatz zu Darksky gefällt mir, dass die nächtlichen Icons passen (siehe Thematik: https://darksky.net/dev/docs/faq#icon-selection.

@Cooltux,
gibt es Pläne, diese API aufzunehmen?


Viele Grüße
Andreas

CoolTux

Hallo Andreas,

Von meiner Seite gibt es keine Pläne. Wer möchte kann es gerne machen. Beispiel und Beschreibung liegen auf www.github.com/fhem

Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

kilderman

#581
Hallo zusammen,

seit ein paar Tagen probiere ich das Weather-Modul aus, mit Weather Underground. Insbesondere interessieren mich die tatsächlichen Niederschlagswerte. Bei Weather Underground habe ich auch eine Station gefunden, die mir dies in den letzten Tagen gut lieferte. Aber leider schreibt mir das Weather-Modul jede Stunde beim Aktualisieren sehr viele Zeilen ins LOG, mit denen ich nicht so viel anfangen kann:


2021.07.09 18:25:19 1: PERL WARNING: Use of uninitialized value in subroutine entry at ./FHEM/99_Utils.pm line 21.
2021.07.09 18:25:19 1: stacktrace:
2021.07.09 18:25:19 1:     main::__ANON__                      called by ./FHEM/99_Utils.pm (21)
2021.07.09 18:25:19 1:     main::time_str2num                  called by FHEM/wundergroundAPI.pm (537)
2021.07.09 18:25:19 1:     wundergroundAPI::Weather::_ProcessingRetrieveData called by FHEM/wundergroundAPI.pm (329)
2021.07.09 18:25:19 1:     wundergroundAPI::Weather::_RetrieveDataFinished called by FHEM/HttpUtils.pm (645)
2021.07.09 18:25:19 1:     main::__ANON__                      called by fhem.pl (771)
2021.07.09 18:25:19 4: Wetter1: T: 22 °C F: 68 % W: 9 km/h P: 1013 hPa
2021.07.09 18:25:19 4: Weather Wetter1: Rearm new Timer
2021.07.09 19:25:19 1: PERL WARNING: Use of uninitialized value in subroutine entry at ./FHEM/99_Utils.pm line 21.
2021.07.09 19:25:19 1: stacktrace:
2021.07.09 19:25:19 1:     main::__ANON__                      called by ./FHEM/99_Utils.pm (21)
2021.07.09 19:25:19 1:     main::time_str2num                  called by FHEM/wundergroundAPI.pm (537)
2021.07.09 19:25:19 1:     wundergroundAPI::Weather::_ProcessingRetrieveData called by FHEM/wundergroundAPI.pm (329)
2021.07.09 19:25:19 1:     wundergroundAPI::Weather::_RetrieveDataFinished called by FHEM/HttpUtils.pm (645)
2021.07.09 19:25:19 1:     main::__ANON__                      called by fhem.pl (771)

Insgesamt stehen jede Stunde 23 solcher Einträge untereinander, alle in derselben Sekunde.

Weiß jemand vielleicht, woran das liegen könnte? Ich habe schon versucht, die Zahl der Readings einzuschränken (z. B. Prognosewerte der nächsten Tage abgestellt), aber die Einträge tauchen trotzdem auf. Interessant ist, dass die Einträge nicht erscheinen, wenn ich ein manuelles Update des Wetter-Moduls anstoße. ???

Das List des Moduls sieht so aus...


Internals:
   API        wundergroundAPI
   APIKEY     123...a832e
   APIOPTIONS stationId:IBONN154
   DEF        API=wundergroundAPI,stationId:IBONN154 apikey=123...a832e interval=3600 lang=de
   FUUID      60d468...f190ec
   FVERSION   59_Weather.pm:v2.1.4-s22982/2020-10-17
   INTERVAL   3600
   LANG       de
   MODEL      wundergroundAPI
   NAME       Wetter1
   NOTIFYDEV  global
   NR         1026
   NTFY_ORDER 50-Wetter1
   STATE      T: 21 °C F: 72 % W: 5 km/h P: 1012 hPa
   TYPE       Weather
   VERSION    v2.1.4
   OLDREADINGS:
   READINGS:
     2021-07-09 19:30:20   cloudCover      62
     2021-07-09 19:30:20   condition       Zunächst Regen
     2021-07-09 19:30:20   dewpoint        15.8
     2021-07-09 19:30:20   humidity        72
     2021-07-09 19:30:20   precipRate      0
     2021-07-09 19:30:20   precipTotal     0.3
     2021-07-09 19:30:20   pressure        1012
     2021-07-09 19:30:20   pubDate         Fr,  9 Jul 2021 19:25
     2021-07-09 19:30:20   state           T: 21 °C F: 72 % W: 5 km/h P: 1012 hPa
     2021-07-09 19:30:20   status          ok
     2021-07-09 19:30:20   temperature     21
     2021-07-09 19:30:20   validity        up-to-date
     2021-07-09 19:30:20   wind_condition  Wind: W 5 km/h
     2021-07-09 19:30:20   wind_direction  273
     2021-07-09 19:30:20   wind_speed      5
   fhem:
     LOCATION   50.930503,7.1662251
     allowCache 1
     interfaces temperature;humidity;wind
Attributes:
   forecast   off
   forecastLimit 1
   suppressReading ^(?!.*(cloudCover|condition|dewpoint|humidity|precipRate|precipTotal|pressure|pubDate|state|status|temperature|validity|wind_direction|wind_speed)).*$
   verbose    5


Für jeden Hinweis bin ich dankbar. Gesucht nach dieser Fehlermeldung habe ich auch schon, aber nichts passendes gefunden, außer dass bei einer solchen Fehlermeldung einmal ein Reading (visability oder so) nicht vorkam.

PS. Über den Weblink erhalte ich folgende Daten:

<observations>
<observations>
<observations>
<stationID>IBONN154</stationID>
<obsTimeUtc>2021-07-09T17:55:36Z</obsTimeUtc>
<obsTimeLocal>2021-07-09 19:55:36</obsTimeLocal>
<neighborhood>Poppelsdorf</neighborhood>
<softwareType>EasyWeatherV1.5.4</softwareType>
<country>DE</country>
<solarRadiation>45.51</solarRadiation>
<lon>7.165428</lon>
<epoch>1625853336</epoch>
<lat>51.730238</lat>
<uv>0</uv>
<winddir>239</winddir>
<humidity>71</humidity>
<qcStatus>1</qcStatus>
<metric>
<temp>21</temp>
<heatIndex>21</heatIndex>
<dewpt>16</dewpt>
<windChill>21</windChill>
<windSpeed>4</windSpeed>
<windGust>4</windGust>
<pressure>1012.5301913999999</pressure>
<precipRate>0</precipRate>
<precipTotal>0.3048</precipTotal>
<elev>75</elev>
</metric>
</observations>
</observations>
</observations>



edit: Ich habe es für mich erst einmal gelöst, indem ich die paar wenigen Daten einfach per HTTPMOD abfrage. Von daher benötige ich hierzu erst einmal keine Hilfe.



zweites edit: Ich habe die API-Key herausgenommen, sonst nichts. Allen ein schönes Wochenende.



Viele Grüße
Marco

kaba

Hallo,
mir scheint, dass ich einen Fehler im Weather Modul gefunden habe, bei Verwendung der OpenWeatherAPI.
Und zwar werden die _rain3h und _snow3h Readings nicht verlässlich aktualisiert. Es scheint fast so, als würden die nur gesetzt, wenn sie einen Wert >0 haben. Nachfolgend ein Beispiel (für heute ist weder Regen noch Schnee angesagt). Interessant, dass das Schnee Reading zuletzt im Februar gesetzt wurde...


     2021-08-24 09:26:22   hfc1_cloudCover 0
     2021-08-24 09:26:22   hfc1_code       32
     2021-08-24 09:26:22   hfc1_condition  clear sky
     2021-08-24 09:26:22   hfc1_day_of_week Tue, 10:00
     2021-08-24 09:26:22   hfc1_high_c     17
     2021-08-24 09:26:22   hfc1_humidity   74
     2021-08-24 09:26:22   hfc1_icon       sunny
     2021-08-24 09:26:22   hfc1_iconAPI    01d
     2021-08-24 09:26:22   hfc1_low_c      15
     2021-08-24 09:26:22   hfc1_pressure   1026
     2021-08-24 09:26:22   hfc1_pubDate    Tue, 24 Aug 2021 10:00
     2021-08-24 08:54:10   hfc1_rain3h     0.12
     2021-02-09 17:50:13   hfc1_snow3h     0.13
     2021-08-24 09:26:22   hfc1_tempHigh   17
     2021-08-24 09:26:22   hfc1_tempLow    15
     2021-08-24 09:26:22   hfc1_temp_c     15
     2021-08-24 09:26:22   hfc1_temperature 15
     2021-08-24 09:26:22   hfc1_wind       15
     2021-08-24 09:26:22   hfc1_wind_speed 15


Da ich über hfc1_rain3h gerne vorsorglich meine Markise einfahren möchte wenn Regen erwartet wird, wäre ein verlässlicher Wert da recht hilfreich. Wenn der nie auf 0 geht, wird die halt immer drin bleiben :-(
Oder muss ich irgendetwas tun, um alte Werte manuell zu löschen?

Grüße,
Karsten

CoolTux

Zitat von: kaba am 24 August 2021, 10:02:03
Hallo,
mir scheint, dass ich einen Fehler im Weather Modul gefunden habe, bei Verwendung der OpenWeatherAPI.
Und zwar werden die _rain3h und _snow3h Readings nicht verlässlich aktualisiert. Es scheint fast so, als würden die nur gesetzt, wenn sie einen Wert >0 haben. Nachfolgend ein Beispiel (für heute ist weder Regen noch Schnee angesagt). Interessant, dass das Schnee Reading zuletzt im Februar gesetzt wurde...


     2021-08-24 09:26:22   hfc1_cloudCover 0
     2021-08-24 09:26:22   hfc1_code       32
     2021-08-24 09:26:22   hfc1_condition  clear sky
     2021-08-24 09:26:22   hfc1_day_of_week Tue, 10:00
     2021-08-24 09:26:22   hfc1_high_c     17
     2021-08-24 09:26:22   hfc1_humidity   74
     2021-08-24 09:26:22   hfc1_icon       sunny
     2021-08-24 09:26:22   hfc1_iconAPI    01d
     2021-08-24 09:26:22   hfc1_low_c      15
     2021-08-24 09:26:22   hfc1_pressure   1026
     2021-08-24 09:26:22   hfc1_pubDate    Tue, 24 Aug 2021 10:00
     2021-08-24 08:54:10   hfc1_rain3h     0.12
     2021-02-09 17:50:13   hfc1_snow3h     0.13
     2021-08-24 09:26:22   hfc1_tempHigh   17
     2021-08-24 09:26:22   hfc1_tempLow    15
     2021-08-24 09:26:22   hfc1_temp_c     15
     2021-08-24 09:26:22   hfc1_temperature 15
     2021-08-24 09:26:22   hfc1_wind       15
     2021-08-24 09:26:22   hfc1_wind_speed 15


Da ich über hfc1_rain3h gerne vorsorglich meine Markise einfahren möchte wenn Regen erwartet wird, wäre ein verlässlicher Wert da recht hilfreich. Wenn der nie auf 0 geht, wird die halt immer drin bleiben :-(
Oder muss ich irgendetwas tun, um alte Werte manuell zu löschen?

Grüße,
Karsten


Möglich das die API keine Werte liefert wenn weder Regen noch Schnee ist. Dafür kann das Modul aber leider nichts. Sorry
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Elektrolurch

Hallo,

von Zeit zu Zeit bekomme ich mit der aktuellen Version folgende Fehlermeldung im log:


2021.09.14 10:16:43 1: PERL WARNING: Use of uninitialized value in multiplication (*) at FHEM/OpenWeatherMapAPI.pm line 445.
2021.09.14 10:16:43 1: stacktrace:
2021.09.14 10:16:43 1:     main::__ANON__                      called by FHEM/OpenWeatherMapAPI.pm (445)
2021.09.14 10:16:43 1:     OpenWeatherMapAPI::Weather::_ProcessingRetrieveData called by FHEM/OpenWeatherMapAPI.pm (339)
2021.09.14 10:16:43 1:     OpenWeatherMapAPI::Weather::_RetrieveDataFinished called by FHEM/HttpUtils.pm (647)
2021.09.14 10:16:43 1:     main::__ANON__                      called by fhem.pl (770)


Elektrolurch

configDB und Windows befreite Zone!