Hallo,
ich starte im Ausführungsteil eine Funktion, welche einen Rückgabewert hat.
Dies führt dazu, dass ich ein Reading Error erhalte mit dem Funktionsaufruf samt Rückgabewert.
Anscheinend weiß DOIF - vermutlich zu Recht - nicht, wie es mit dem Wert umgehen soll.
Habe ich eine Möglichkeit in DOIF, das Verhalten zu ändern?
Ich möchte die aufgerufene Funktion eher ungern anpassen.
Wo siehst du den Fehler?
Nur im DOIF selbst. In der Form
Code : Rückgabewert
Nicht im Log oder anderweitig. Es sieht auch so aus, als hätte es keine weiteren Auswirkungen. Es gibt aber auch nur diesen einen Funktionsaufruf im Ausführungsteil.
Wenn es FHEM-Modus ist, dann wird alles, was eine Rückgabe ungleich "" liefert als Fehler interpretiert, hat aber sonst keine Bewandtnis.
Ist es dann richtig, dass auch das Zuweisen zu einer Variablen im Perl-Modus keine Abhilfe schafft?
error: { my $result = fhem("setex MQTT2_zigbee_Schaltsteckdose.12 on UeberschussAutoOn") }: on
setex ist ein cmdalias und gibt mir den State zurück. (Ich benötige das an anderer Stelle, da ich viel mit FILTER arbeite und sonst nicht weiß, ob überhaupt ein Gerät die Filterbedingungen erfüllt.)
Zitat von: FHEMAN am 17 Oktober 2023, 15:07:52Ist es dann richtig, dass auch das Zuweisen zu einer Variablen im Perl-Modus keine Abhilfe schafft?
return '' würde es tun. :)
Es wird immer der letzte zugewiesene Wert aus dem Perl Aufruf zurück gegeben, egal ob der in eine Variable gesteckt wird. Zum Test in der FHEM Komamndozeile
{my $val='willi'}
{my $val='willi';;return ''}