Hallo,
seit PL 30 macht folgendes Plugin immer einen Timeout. Woran liegt das? Ich kann das so nicht feststellen...
Gruss,
der Jan
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;
Kommentar