Rückgabewert von get innerhalb von FHEM auswerten

Begonnen von Brockmann, 15 Juli 2014, 12:12:38

Vorheriges Thema - Nächstes Thema

Brockmann

Ist es irgendwie möglich, den Rückgabewert von get innerhalb der FHEM-Ebene auszuwerten, also etwa so:
setreading Datastore Cal_lastSum (get FHEM_Kalender summary f72u3flfd8ftr2p4ogooglecom)

oder muss man dazu grundsätzlich den Umweg über Perl und eine eigene Variable machen, also so:
{my $t = fhem("get FHEM_Kalender summary f72u3flfd8ftr2p4ogooglecom");fhem("setreading Datastore Cal_lastSum $t"}

(Die Code-Fragmente sind veranschaulichend gemeint und erheben nicht den Anspruch 100%ig korrekt zu sein)

ChristianKnorr

Das selbe versuche ich auch gerade herauszufinden.
Bei mir geht es um etwas ähnliches wie:
my $return = fhem("set Licht on");
echo $return


Bei Misserfolg hat $return den String: "Please define Licht first" --> Okay, gut so.

Bei Erfolg jedoch passiert entweder nix, oder die Variable ist undefiniert.

Weiß Jemand wie ich Erfolg/Misserfolg feststellen kann?

justme1968

ein erfolgreiches set hat (normalerweise) kein ergebniss bzw. keinen rückgabewert.

wenn als nichts zurück kommt ist kein fehler aufgetreten.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Brockmann

Man kann das FHEM-Kommando in eine if-Bedingung stecken:

{my $set_command= fhem("_irgendein Kommando_");;
if(fhem("$set_command"))
{_wird ausgeführt, wenn das Kommando zu einer Fehlermeldung führt_}
else
{_wird ausgeführt, wenn das Kommando zu keiner Fehlermeldung führt_}
}

Aber das Kommando wird dabei ausgeführt. Man kann also nicht "trocken" testen.