FHEM Forum

FHEM - Hausautomations-Systeme => Unterstützende Dienste => Wettermodule => Thema gestartet von: P.A.Trick am 26 Mai 2016, 16:45:05

Titel: Weather - Ausfall der Internetverbindung blockiert FHEM
Beitrag von: P.A.Trick am 26 Mai 2016, 16:45:05
In dieser Woche ist bei mir die DSL Verbindung ausgefallen. Soweit lief FHEM auch weiter, allerdings hat das Weather Modul FHEM ziemlich blockiert! :-/ 2016.05.23 22:09:13.042 1: Perfmon: possible freeze starting at 22:09:05, delay is 8.042
2016.05.23 22:09:45.033 3: Forecast: gethostbyname query.yahooapis.com failed
2016.05.23 22:09:45.036 1: Perfmon: possible freeze starting at 22:09:25, delay is 20.036
2016.05.23 22:10:05.247 3: MyWeather: gethostbyname query.yahooapis.com failed
2016.05.23 22:10:06.065 1: Perfmon: possible freeze starting at 22:09:46, delay is 20.065
2016.05.23 22:11:05.066 3: Forecast: gethostbyname query.yahooapis.com failed
2016.05.23 22:11:05.384 1: Perfmon: possible freeze starting at 22:10:46, delay is 19.384
2016.05.23 22:11:06.318 2: FRITZBOX Fritzbox: Readout_Run_Web.1319 Error: Old SID not valid anymore.
2016.05.23 22:11:25.445 3: MyWeather: gethostbyname query.yahooapis.com failed
2016.05.23 22:11:25.524 1: Perfmon: possible freeze starting at 22:11:06, delay is 19.524


20 Sekunden blockierte das Modul FHEM komplett. Ich wollte daraufhin das Modul abschalten, aber leider gibt es keine disable-Funktion im Modul. Ich würde mich freuen, wenn der Modulauthor sich das bei Gelegenheit mal anschauen könnte und zumindest eine disable-Funktion mit einbauen könnte. Vielen Dank im Voraus!
Titel: Antw:Weather - Ausfall der Internetverbindung blockiert FHEM
Beitrag von: Markus M. am 26 Mai 2016, 19:01:00
DNS blockiert trotz NonBlocking.

Das hier verringert die Ausfallzeit auf 10sec/2h:
###################################
sub Weather_GetUpdate($) {

    my ($hash) = @_;
    my $name = $hash->{NAME};

    my $resolve = inet_aton("query.yahooapis.com");
    if(!defined($resolve))
    {
      $hash->{STATE} = "DNS error";
      InternalTimer( gettimeofday() + 7200, "Weather_GetUpdate", $hash, 0);
      return undef;
    }

    Weather_RetrieveData($name, 0);

    return 1;
}


Sowas in der Art gehört eigentlich in jedes Modul das HTTP Aufrufe hat.
Genauso wie natürlich disable, das zwar vorgesehen ist aber bei der Definition der Attribute vergessen wurde.

#####################################
sub Weather_Initialize($) {

  my ($hash) = @_;

  $hash->{DefFn}   = "Weather_Define";
  $hash->{UndefFn} = "Weather_Undef";
  $hash->{GetFn}   = "Weather_Get";
  $hash->{SetFn}   = "Weather_Set";
  $hash->{AttrList}= "disable:1 $readingFnAttributes";
  $hash->{NotifyFn}= "Weather_Notify";

  #Weather_DebugCodes('de');                   
}


Grüsse, Markus
Titel: Antw:Weather - Ausfall der Internetverbindung blockiert FHEM
Beitrag von: betateilchen am 26 Mai 2016, 19:13:02
was bin ich froh, dass hier im Netzwerk ein lokaler dns-server mit Cache läuft...

Und was das fehlende Attribut disable angeht:

Titel: Antw:Weather - Ausfall der Internetverbindung blockiert FHEM
Beitrag von: Markus M. am 26 Mai 2016, 19:21:34
Zitat von: betateilchen am 26 Mai 2016, 19:13:02
was bin ich froh, dass hier im Netzwerk ein lokaler dns-server mit Cache läuft...

Und was das fehlende Attribut disable angeht:


  • sollte das dann $hash->{AttrList}= "disable:0,1 $readingFnAttributes"; heißen
  • hat den Bug schonmal irgendjemand offiziell gemeldet? Es bringt nix, sich in irgendeinem Thread darüber zu ärgern. Davon kriegt Boris nicht so schnell was mit.

1. Geht nicht, so ist es im Code leider derzeit nicht implementiert. Dann muss noch mehr getan werden, mit einer sauberen AttrVal Abfrage.
2. Das ist nicht "irgendein Thread", das ist das Supportforum für das Wettermodul. Ich würde eigentlich erwarten dass das hier gelesen wird.
Titel: Antw:Weather - Ausfall der Internetverbindung blockiert FHEM
Beitrag von: betateilchen am 26 Mai 2016, 19:32:33
Zitat von: Markus M. am 26 Mai 2016, 19:21:34
1. Geht nicht, so ist es im Code leider derzeit nicht implementiert. Dann muss noch mehr getan werden, mit einer sauberen AttrVal Abfrage.

Keine Sorge, ich weiß schon, wie das im Modul implementiert ist. Aber wenn man das Thema ohnehin anpackt, sollte man es gleich richtig machen.

Zitat von: Markus M. am 26 Mai 2016, 19:21:34
2. Das ist nicht "irgendein Thread", das ist das Supportforum für das Wettermodul. Ich würde eigentlich erwarten dass das hier gelesen wird.

Das ist ein Thread, in dem ein User ein DNS Problem hat. Da würde ich als Entwickler auch nicht auf die Idee kommen, dass darin auch über ein fehlendes Attribut diskutiert wird.

Wenn es einen eigenen Thread gibt, in dessen Titel [BUG]... oder [patch]... im Zusammenhang mit dem Modulnamen steht, reagiert man als Entwickler definitiv anders, was das Leseverhalten angeht.
Titel: Antw:Weather - Ausfall der Internetverbindung blockiert FHEM
Beitrag von: P.A.Trick am 27 Mai 2016, 13:29:16
Ich habe ihm eine PM geschrieben!
Titel: Antw:Weather - Ausfall der Internetverbindung blockiert FHEM
Beitrag von: Markus M. am 27 Mai 2016, 13:51:46
Der Patch ist hier: https://forum.fhem.de/index.php/topic,53857.0.html (https://forum.fhem.de/index.php/topic,53857.0.html)
Titel: Antw:Weather - Ausfall der Internetverbindung blockiert FHEM
Beitrag von: Dr. Boris Neubert am 29 Mai 2016, 21:50:55
Meine Antwort siehe dort.