[gelöst] set eines Dummy erzeugt syntax error at (eval 3390254) line 1

Begonnen von reibuehl, 12 April 2021, 12:03:13

Vorheriges Thema - Nächstes Thema

reibuehl

Hallo,

ich versuche einen Dummy "Oelverbrauch" mit den Werten aus meiner Heizung zu belegen. Die Ölverbrauchsberechnung liefert mir beim Test über die Telnet Kommandozeile den korrekten Wert:

fhem> {((ReadingsVal("Vitotronic200","BrennerStunden",0)-ReadingsVal("Vitotronic200","LetzteFuellungBrennerStunden",0))*1.5)+((ReadingsVal("Vitotronic200","BrennerStunden2",0)-ReadingsVal("Vitotronic200","LetzteFuellungBrennerStunden2",0))*2.1)}
2921.823


Wenn ich die Berechnung aber für ein Set verwende, steht hinterher der Dummy auf
Zitatsyntax error at (eval 3390254) line 1, near "1.5)"

fhem> set Oelverbrauch {((ReadingsVal("Vitotronic200","BrennerStunden",0)-ReadingsVal("Vitotronic200","LetzteFuellungBrennerStunden",0))*1.5)+((ReadingsVal("Vitotronic200","BrennerStunden2",0)-ReadingsVal("Vitotronic200","LetzteFuellungBrennerStunden2",0))*2.1)}
fhem>


Muss ich den Wert vor der Übergabe an set irgendwie noch umformatieren oder quoten?
Reiner.

Otto123

#1
Hallo Reiner,

nein, Du musst die Klammern ändern! Bei set magic gilt alles nochmal in runde Klammern{(Perlausdruck)}.
Aus meiner Sicht musst / kannst Du aber zwei löschen, dann stimmt es auch:
set Oelverbrauch {((ReadingsVal("Vitotronic200","BrennerStunden",0)-ReadingsVal("Vitotronic200","LetzteFuellungBrennerStunden",0))*1.5+(ReadingsVal("Vitotronic200","BrennerStunden2",0)-ReadingsVal("Vitotronic200","LetzteFuellungBrennerStunden2",0))*2.1)}

Und Du rechnest: Also nimm besser ReadingsNum()

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle

aktives Mitglied des FHEM e.V. (Technik)

reibuehl

Danke! Mit den zusätzlichen Klammern funktioniert es wie gewünscht. Die Änderung auf ReadingsNum werde ich auch gleich noch machen.
Reiner.