Hallo,
ich habe ein readingsProxy, mit welchem ich gerne über das Attribut SetFn einen Befehl absetzen möchte.
Der Wert in der SetFn soll von einem Slider attr SetList offset:slider,-3,1,3
kommen
In der SetFn steht:
{
fhem("setreading wz_ThanosSollwert SetOffset $CMD") ;
my $lastVal = ReadingsVal("wz_ThanosSollwert","SetOffset",0);
if ($lastVal == "-3" ){ fhem("set ThanosWohnzimmer 4BS 75125508"); }
elsif ($lastVal == "-2") {fhem("set ThanosWohnzimmer 4BS 751C5508");}
elsif ($lastVal == "-1") {fhem("set ThanosWohnzimmer 4BS 75265508");}
elsif ($lastVal == "0") {fhem("set ThanosWohnzimmer 4BS 75305508");}
elsif ($lastVal == "1") {fhem("set ThanosWohnzimmer 4BS 753A5508");}
elsif ($lastVal == "2") {fhem("set ThanosWohnzimmer 4BS 75445508");}
elsif ($lastVal == "3") {fhem("set ThanosWohnzimmer 4BS 754E5508");}
Log 1, "$DEVICE, $READING, CMD $CMD and lastVal $lastVal";
return undef;
}
Im Log sehe ich, dass sowohl $CMD als auch $lastVal den Wert "offset"annehmen.
Wenn der Slider betätigt wird (z.B. 3), sollte doch so ein Befehl
set wz_ThanosSollwert offset 3
abgesetzt werden, oder irre ich mich?
Und diese -3 bis 3 möchte ich gerne in der Funktion verarbeiten...
Falls jemand einen Rat hat, würd ich mich freuen,
Gruss Jan
Hallo,
ohne mich detailliert mit deinem Code zu beschäftigen, $CMD gibts in valueFn nicht, sollte er nicht in setFn ausgeführt werden ?
Aus der commandref:
setFn
perl expresion that will return the set command forwarded to the parent device. has access to $CMD, $DEVICE, $READING and $ARGS.
undef -> do nothing
"" -> pass through
everything else -> use this instead
Examples:
attr myProxy setFn {($CMD eq "on")?"off":"on"}
valueFn
perl expresion that will return the value that sould be used as state. has access to $LASTCMD, $DEVICE, $READING and $VALUE.
undef -> do nothing
"" -> pass through
everything else -> use this instead
Examples:
attr myProxy valueFn {($VALUE == 0)?"off":"on"}
Gruß
Thomas
Richtig, ist auch in SetFn bei mir.. Passe den Post entsprechend an...
Die Sache ist die, dass wenn ich aus der setList -3 -2 -1 0 1 2 3
mache, dann funktioniert die setFn, jedoch als Slider leider nicht. Ein Slider wäre halt optisch etwas schöner...
Unabhängig vom slider versteh ich nicht wie die setFN klappen soll wenn du mit:
fhem("setreading wz_ThanosSollwert SetOffset $CMD") ;
offset in das Reading SetOffset schreibst und dann mit bspw.
$lastVal == "-3"
offset mit -3 vergleichst ?
Meinst du nicht
fhem("setreading wz_ThanosSollwert SetOffset $ARGS") ;
?
Ja genau das war es was ich gesucht habe :-) So funktiert es :-) Vielen vielen Dank ....