Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - Timeout meines Plugins seit PL30

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • makki
    antwortet
    Zitat von JNK Beitrag anzeigen
    Aber die Frage, warum manche Plugins in einer Sekunde mehrfach ausgeführt werden bleibt aber....
    Hmm, da kann ich jetzt so auf Anhieb kein Problem sehen oder nachvollziehen. Weil das Telegramm einfach mehrfach kommt? (Telegrammwiederholungen??)

    -> Könnte man zwar abfangen (msg->repeated) aber Telegrammwiderholungen sind was schlimmes und sollten an der Wurzel abgeschaltet werden.

    Makki

    Einen Kommentar schreiben:


  • JNK
    antwortet
    Hallo makki,

    Das sieht jetzt wieder wesentlich besser aus. Aber die Frage, warum manche Plugins in einer Sekunde mehrfach ausgeführt werden bleibt aber....

    Gruss,

    der Jan

    Einen Kommentar schreiben:


  • makki
    antwortet
    Also die Anzeige (Timeout) war ziemlich durch den Wind, da fehlte ein commit.. Ich hab jetzt erstmal nur "so" neue packages online gestellt, weil fürs PL31 hatte ich mehr vor
    Das sollte wenigstens wieder halbwegs sinnig sagen, wo es hakt, es war aber sicher kein Timeout in diesem Plugin, das war ein "Anzeigefehler"..

    Makki

    Einen Kommentar schreiben:


  • JNK
    antwortet
    Ich glaube nicht, zumindest nicht immer. Es steht schon ab und zu mal was von zuletzt ausgeführt "119s" da, was ja eigentlich nicht sein kann, aber ich hab jetzt mal Logging aktiviert und soweit ich sehen kann habe ich jede Minute einen Eintrag:

    Code:
    2012-04-13 19:00:30.913,Sperre Zusatzheizung,Sperre bleibt (T ok),0s,
    2012-04-13 19:01:31.646,Sperre Zusatzheizung,Sperre bleibt (T ok),0s,
    2012-04-13 19:01:31.833,Sperre Zusatzheizung,Sperre bleibt (T ok),0s,
    2012-04-13 19:01:32.101,Sperre Zusatzheizung,Sperre bleibt (T ok),0s,
    2012-04-13 19:02:32.104,Sperre Zusatzheizung,Sperre bleibt (T ok),0s,
    2012-04-13 19:03:32.650,Sperre Zusatzheizung,Sperre bleibt (T ok),0s,
    2012-04-13 19:04:32.918,Sperre Zusatzheizung,Sperre bleibt (T ok),0s,
    2012-04-13 19:05:32.994,Sperre Zusatzheizung,Sperre bleibt (T ok),0s,
    2012-04-13 19:06:33.269,Sperre Zusatzheizung,Sperre bleibt (T ok),0s,
    2012-04-13 19:06:33.418,Sperre Zusatzheizung,Sperre bleibt (T ok),0s,
    2012-04-13 19:06:33.756,Sperre Zusatzheizung,Sperre bleibt (T ok),0s,
    2012-04-13 19:07:33.467,Sperre Zusatzheizung,Sperre bleibt (T ok),0s,
    2012-04-13 19:08:34.292,Sperre Zusatzheizung,Sperre bleibt (T ok),0s,
    2012-04-13 19:09:34.646,Sperre Zusatzheizung,Sperre bleibt (T ok),0s,
    2012-04-13 19:10:34.813,Sperre Zusatzheizung,Sperre bleibt (T ok),0s,
    Allerdings 19:06:33 gibts mehrfach, das habe ich allerdings schon in der Vergangenheit mal gesehen. Genau zu dem Zeipunkt hat er aber "Timeout" bei diesem Plugin angezeigt.

    Ausserdem wechselt der Timeout-Fehler in der Anzeige lustig von einem Plugin zum anderen, besonders häufig steht er beim PROWL Plugin.

    Ich hab Dir das Wartungs-VPN angemacht, wiregate371. Du kannst alles machen ausser das Licht im Kinderzimmer an :-)

    Gruss,

    der Jan

    Einen Kommentar schreiben:


  • makki
    antwortet
    Läuft es wirklich immer ins Timeout ?
    Also da ist ein Anzeigefehler, die Ursache dürfte eher ein neuer Bug-case im geliebten DB_File sein;
    Ich such da mal weiter, ein Patchlevel kommt selten allein

    Makki

    Einen Kommentar schreiben:


  • makki
    antwortet
    Sehr suspekt aber nachvollziehbar.. Ist in Arbeit..

    Makki

    Einen Kommentar schreiben:


  • JNK
    hat ein Thema erstellt [wiregate] - √ - Timeout meines Plugins seit PL30.

    - √ - Timeout meines Plugins seit PL30

    Hallo,

    seit PL 30 macht folgendes Plugin immer einen Timeout. Woran liegt das? Ich kann das so nicht feststellen...
    Gruss,

    der Jan

    Code:
    #
    # Sperrobjekt Zusatzheizung zurücksetzen
    #
    
    use DateTime;
    
    my $schalt_addr = '2/0/130';
    my $status_addr = '2/6/130'; # 
    my $sperr_addr = '2/1/130'; # Adresse Sperrobjekt
    my $temp_addr = '5/2/130'; # Temperatur Badezimmer
    my $loglevel=0;
    my $val;
    
    $plugin_subscribe{$status_addr}{$plugname} = 1;
    $plugin_info{$plugname.'_cycle'} = 60;
    
    # alle stati erfragen
    
    # handle telegrams
    if (($msg{'dst'} eq $status_addr) && ($msg{'apci'} eq 'A_GroupValue_Write')) # status
    {
      $val = knx_read($status_addr, 300, 1);
      if ($val == 01) {
        $plugin_info{$plugname.'_laston'} = time();
      } else {
        $plugin_info{$plugname.'_lastoff'} = time();
        $plugin_info{$plugname.'_sperre'} = 1;
      }
      return 'Status: '.$val; # wir haben uns nur um das telegramm gekümmert
    }
    
    my $lastoff = $plugin_info{$plugname.'_lastoff'};
    my $laston = $plugin_info{$plugname.'_laston'};
    
    my $sperre = $plugin_info{$plugname.'_sperre'};
    my $zaehler = $plugin_info{$plugname.'_zaehler'}; 
    my $status = knx_read($status_addr, 300, 1);
    my $temp = knx_read($temp_addr, 0, 9.001);
    
    my $sperrtemp = $temp > 21.5;
    my $overtemp = $temp > 23.0;
    
    my $laufzeit = $lastoff - $laston; # gesamtdauer "EIN"
    my $sperrzeit = time() - $lastoff; # zeit seit der letzten sperre
    
    if ($overtemp && ($status == 01)) { # ist an und zu warm, dann ausschalten
      knx_write($schalt_addr, 0, 1);
      return 'Aus (>T)';
    }
    
    if ($sperrtemp) { # es ist ausreichend warm
      if ($sperre) { # ist bereits gesperrt, kann so bleiben
        if ($loglevel==1) {
          return 'Sperre bleibt (T ok)';
        } else {
          return;
        }
      } else { # sonst sperren
        $plugin_info{$plugname.'_sperre'} = 1;
        knx_write($sperr_addr, 1, 1);
        return 'Sperre=1 (T ok)';
      }
    }
    
    if (($sperrzeit>$laufzeit) && $sperre) { #
      knx_write($sperr_addr, 1, 1);
      $plugin_info{$plugname.'_sperre'} = 0;   
      return 'Freigabe';
    }
    
    return 0;
Lädt...
X