Welcher Wert wird bei knx_read zurückgegeben, wenn die Adresse nicht antwortet? In meinem Plug-In (s. Code) lese ich die bei mir nicht existente Adresse "13/3/31" aus und befülle damit eine Variable, die ich zuvor mit dem Wert -1 besetzt habe. Ich frage die Variable ab und es wird anscheinend immer der Wert 0 erkannt.
Wie prüft man in einem Plug-In, ob ein gültiger Wert gelesen wurde?
Wie prüft man in einem Plug-In, ob ein gültiger Wert gelesen wurde?
Code:
# Plug-In Kaminkesselpumpe
# V20120611
my $kaminkesseltemp_ga = "4/1/4";
my $kaminkesseltemp_ist_wert;
my $kaminkesseltemp_soll1_wert = 80;
my $kaminkesseltemp_soll2_wert = 60;
my $kaminpumpeschalter_ga = "13/3/31";
my $kaminpumpeschalter_ist_wert = -1;
my $puffertemp7_ga = "1/2/3";
$plugin_subscribe{$kaminkesseltemp_ga}{$plugname} = 1;
if ($msg{'apci'} eq "A_GroupValue_Write" and $msg{'dst'} eq $kaminkesseltemp_ga) {
$kaminkesseltemp_ist_wert = $msg{'value'};
}
$kaminpumpeschalter_ist_wert = knx_read($kaminpumpeschalter_ga, 0);
if ($kaminpumpeschalter_ist_wert == 0) {
if ($kaminkesseltemp_ist_wert >= $kaminkesseltemp_soll1_wert) {
if (knx_read($puffertemp7_ga, 0) < $kaminkesseltemp_ist_wert ){
knx_write($kaminpumpeschalter_ga, 1);
return "Kaminpumpe einschalten";
}
}
}
elsif ($kaminpumpeschalter_ist_wert == 1) {
if ($kaminkesseltemp_ist_wert <= $kaminkesseltemp_soll2_wert or $kaminkesseltemp_ist_wert <= knx_read($puffertemp7_ga, 0)) {
knx_write($kaminpumpeschalter_ga, 0);
return "Kaminpumpe ausschalten";
}
}
else {
return "Statuswert auslesen von " . $kaminpumpeschalter_ga . " nicht möglich.";
}
return;


). 
Kommentar