Dieser String hier steht in einem notify.
fhem("define at_terassentuerzutimer at +00:05:00 set WohnzimmerThermostat thermostatSetpointSet sprintf('%.2f',ReadingsVal('WohnzimmerHeizplan', 'state', '0'))");
Wenn ich nur {sprintf('%.1f',ReadingsVal('WohnzimmerHeizplan', 'state', '0'))}
ausführe, wird beispielsweise 19.0 zurückgeliefert.
Ich kriege es auch nicht hin ohne notify einfach per set ... und dann am Ende eben das ReadingsVal.
Die Temperatur bleibt einfach so.
Logisch.....Dein Beispiel
{sprintf('%.1f',ReadingsVal('WohnzimmerHeizplan', 'state', '0'))}
führt das sprintf direkt auf Perl-Ebene aus.
Ein
set WohnzimmerThermostat thermostatSetpointSet sprintf('%.2f',ReadingsVal('WohnzimmerHeizplan', 'state', '0'))");
würde das sprintf als FHEM-Befehl interpretieren.
Was zB funktionieren würde ist ein
fhem("define at_terassentuerzutimer at +00:05:00 set WohnzimmerThermostat thermostatSetpointSet ".sprintf('%.2f',ReadingsVal('WohnzimmerHeizplan', 'state', '0')));
oder ien
define at_terassentuerzutimer at +00:05:00 {fhem("set WohnzimmerThermostat thermostatSetpointSet ".sprintf('%.2f',ReadingsVal('WohnzimmerHeizplan', 'state', '0')))}
oder einfacher:
define at_terassentuerzutimer at +00:05:00 set WohnzimmerThermostat thermostatSetpointSet [WohnzimmerHeizplan:state]
lg, Stefan
Vielen Dank für die ausführliche Erklärung.
Ja das FHEM da manchmal zwischen liegt vergisst man gerne.
Bin beruflich Java Entwickler und bin da etwas mehr Komfort gewöhnt :P.
Schönen Sonntag noch.
Kann gern geschlossen werden.
Grüße
Lennart
Zitat von: lenn1 am 07 Mai 2017, 09:10:23Bin beruflich Java Entwickler und bin da etwas mehr Komfort gewöhnt :P.
Der war gut! :D