FHEM Forum

FHEM => Sonstiges => Thema gestartet von: JF Mennedy am 01 März 2021, 15:04:16

Titel: readingsProxy Slider Wert aus setList wird in ValueFn nicht gesetzt
Beitrag von: JF Mennedy am 01 März 2021, 15:04:16
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
Titel: Antw:readingsProxy Slider Wert aus setList wird in ValueFn nicht gesetzt
Beitrag von: TomLee am 01 März 2021, 20:50:42
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
Titel: Antw:readingsProxy Slider Wert aus setList wird in ValueFn nicht gesetzt
Beitrag von: JF Mennedy am 02 März 2021, 11:50:37
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...
Titel: Antw:readingsProxy Slider Wert aus setList wird in ValueFn nicht gesetzt
Beitrag von: TomLee am 02 März 2021, 12:42:48
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") ;

?
Titel: Antw:readingsProxy Slider Wert aus setList wird in ValueFn nicht gesetzt
Beitrag von: JF Mennedy am 02 März 2021, 13:02:25
Ja genau das war es was ich gesucht habe :-) So funktiert es :-) Vielen vielen Dank ....