Rückgabewert im Ausführungsteil ignorieren

Begonnen von FHEMAN, 17 Oktober 2023, 12:51:06

Vorheriges Thema - Nächstes Thema

FHEMAN

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.

NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

Damian

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

FHEMAN

#2
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.
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

Damian

Wenn es FHEM-Modus ist, dann wird alles, was eine Rückgabe ungleich "" liefert als Fehler interpretiert, hat aber sonst keine Bewandtnis. 
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

FHEMAN

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.)
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

Otto123

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 ''}
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz