Weather - Ausfall der Internetverbindung blockiert FHEM

Begonnen von P.A.Trick, 26 Mai 2016, 16:45:05

Vorheriges Thema - Nächstes Thema

P.A.Trick

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!
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

Markus M.

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
Aktuell weder Smarthome noch FHEM vorhanden

betateilchen

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.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Markus M.

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.
Aktuell weder Smarthome noch FHEM vorhanden

betateilchen

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.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

P.A.Trick

Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

Markus M.

Aktuell weder Smarthome noch FHEM vorhanden

Dr. Boris Neubert

Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!