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