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