readingsProxy Slider Wert aus setList wird in ValueFn nicht gesetzt

Begonnen von JF Mennedy, 01 März 2021, 15:04:16

Vorheriges Thema - Nächstes Thema

JF Mennedy

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

TomLee

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

JF Mennedy

#2
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...

TomLee

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") ;

?

JF Mennedy

Ja genau das war es was ich gesucht habe :-) So funktiert es :-) Vielen vielen Dank ....