Hallo ich habe folgende Berechnung:
MQTT2_DVES_D75E9F.* {fhem (("set Stromverbrauch_aktuell "). (((ReadingsNum("A_plus","state","0","1")-OldReadingsNum("A_plus","state","0","1"))*1000*12))) }
Leider bekomme ich damit teilweise ein Ergebnis mit etlichen Nachkommastellen. Ich möchte aber maximal 2 Nachkommastellen haben.
Ich habe durch die 4.Variable "1" versucht das Problem zu lösen, was aber nicht funktioniert hat.
Als Ansatz habe ich sprintf "%.2f recherchiert, aber ich weiß nicht, wie ich das einbauen soll.
Für einen Tipp wäre ich sehr dankbar.
Ich denke so:
MQTT2_DVES_D75E9F.* {fhem ("set Stromverbrauch_aktuell ". sprintf "%.2f", (ReadingsNum("A_plus","state",0,1) - OldReadingsNum("A_plus","state",0,1)) * 1000 * 12 }
oder so, falls es keinen weiteren Perlcode gibt:
MQTT2_DVES_D75E9F.* set Stromverbrauch_aktuell {( sprintf "%.2f", (ReadingsNum("A_plus","state",0,1) - OldReadingsNum("A_plus","state",0,1)) * 1000 * 12 )}
Wobei das dann doppelt gerundet ist, ich würde dann die Rundung in ReadingsNum weglassen!
Zitat von: Otto123 am 02 Dezember 2022, 12:24:25
Ich denke so:
MQTT2_DVES_D75E9F.* {fhem ("set Stromverbrauch_aktuell ". sprintf "%.2f", (ReadingsNum("A_plus","state",0,1) - OldReadingsNum("A_plus","state",0,1)) * 1000 * 12 }
oder so, falls es keinen weiteren Perlcode gibt:
MQTT2_DVES_D75E9F.* set Stromverbrauch_aktuell {( sprintf "%.2f", (ReadingsNum("A_plus","state",0,1) - OldReadingsNum("A_plus","state",0,1)) * 1000 * 12 )}
Wobei das dann doppelt gerundet ist, ich würde dann die Rundung in ReadingsNum weglassen!
Vielen Dank,
ich habe es jetzt so eingebaut und es funktioniert.
MQTT2_DVES_D75E9F.* {fhem (("set Stromverbrauch_aktuell "). sprintf "%.2f",(((ReadingsNum("A_plus","state","0","1")-OldReadingsNum("A_plus","state","0","1"))*1000*12))) }
Wahrscheinlich sind da ein paar Klammern zu viel, aber es funktioniert.
:o
Wenn das ein notify ist: schlechtes Suchmuster / Trigger
zuviele Klammern
zuviele Hochkommas
Zitat von: Otto123 am 02 Dezember 2022, 13:31:55
:o
Wenn das ein notify ist: schlechtes Suchmuster / Trigger
zuviele Klammern
zuviele Hochkommas
Ja, das ist ein notify.
Dann taste ich mich mal ran und gucke, was ich alles löschen kann, ohne dass es eine Fehlermeldung gibt.
Danke für Deine Tipps!
nimm doch einfach so wie ich geschrieben habe? Oder lief das nicht?
Tipp fürs Suchmuster: Eventmonitor auf und den Event markieren der exakt trifft, dann notify modifizieren hier stehts: https://wiki.fhem.de/wiki/Event_monitor
Sieht dann am Ende mind. so aus:
MQTT2_DVES_D75E9F:.*
Wobei ich nicht ganz verstehe: Du triggerst auf Device A und liest Werte von Device B aus. Warum machst Du das Ganze nicht bloß wenn sich A_plus ändert?