Hallo,
ich möchte DOIF benutzen, um abhängig von einem Status x einen Wert a oder einen Wert b in einen Wert c zu kopieren.
if x = on then c=a else c= b
In der Commandref gibt es ein schönes Beispiel, wie man einen Mittelwert berechenn kann. Ich dachte, so ähnlich müsste mein Problem auch lösbar sein. Mit rumprobieren komme ich nicht weiter.
define dyHcAutoOnOffRoom1 dummy # state:on/off
define dyTempDesiredManualRoom1 dummy # state: Temperaturwerte
define dyTempDesiredAutoRoom1 dummy # state: Temperaturwerte
...
define diTempDesiredRoom1 DOIF
attr diTempDesiredRoom1 state {(IF([dyHcAutoOnOffRoom1:state]) eq "on")( [dyTempDesiredManualRoom1:state]) ELSE ([dyTempDesiredManualRoom1:state])}
Hat jemand eine Idee?
Grüße,
Arne
Probier mal das kleine if-else (Perl-if).
Die Problematik wird hier diskutiert und es werden einige Lösungen aufgezeigt: https://forum.fhem.de/index.php/topic,45201.msg370447.html#msg370447
Danke! Das war 95% der Lösung.
Das hier funktioniert:
attr diTempDesiredRoom1 state {(("[dyHcAutoOnOffRoom1:state]" eq "on" ) ? sprintf("%.1f", [dyTempDesiredAutoRoom1:state]) : sprintf("%.1f", [dyTempDesiredManualRoom1:state]))}