FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: reibuehl am 12 April 2021, 12:03:13

Titel: [gelöst] set eines Dummy erzeugt syntax error at (eval 3390254) line 1
Beitrag von: reibuehl am 12 April 2021, 12:03:13
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?
Titel: Antw:set eines Dummy erzeugt syntax error at (eval 3390254) line 1
Beitrag von: Otto123 am 12 April 2021, 12:08:41
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
Titel: Antw:set eines Dummy erzeugt syntax error at (eval 3390254) line 1
Beitrag von: reibuehl am 12 April 2021, 18:11:39
Danke! Mit den zusätzlichen Klammern funktioniert es wie gewünscht. Die Änderung auf ReadingsNum werde ich auch gleich noch machen.