[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
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

reibuehl

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