Hallo Fhem Gemeinde,
ich bräuchte als Anfänger mal wieder bzgl einer Berechung in Fhem eure Unterstützung
Ich lasse mir täglich durch einen at Befehl einen Wert in ein Dummy "Tagesverbrauch" schreiben.
Danach möchte ich durch zu einem anderen Zeitpunkt ebenfalls per at eine Berechnung und die Ausgabe der Berechnung erhalten.
Ich habe schon gefühlt 100 Versuche unternommen, den Wert des Dummy auszulesen und vom Wert "Leistungsmesser_IEC_01:energy" zu subtrahieren, leider finde ich nicht die richtige Syntax! :( :(
Der erste Teil der message "Verbrauch akt. Monat" kommt korrekt an, für den Tagesverbrauch benötige ich die richtige Syntax / den richtigen Befehl! value / ReadingsValue??
at mit Subtraktion einer Konstanten klappt
*00:01 set telegramS message Verbrauch akt. Monat [Leistungsmesser_IEC_01:energy] KW/h Tagesverbrauch {([Leistungsmesser_IEC_01:energy]-1000)} KW/h
[/code]
at mit Subtraktion des Wertes aus dem Dummy Tagesverbrauch ist mir völlig unklar und klappt so nicht
*00:01 set telegramS message Verbrauch akt. Monat [Leistungsmesser_IEC_01:energy] KW/h Tagesverbrauch {([Leistungsmesser_IEC_01:energy]-["Tagesverbrauch:state"])} KW/h
List Dummy Tagesverbrauch
Internals:
NAME Tagesverbrauch
NR 129
STATE 5266,6
TYPE dummy
READINGS:
2021-05-24 10:00:55 state 5266,6
Attributes:
Meldung Telegram
Verbrauch akt. Monat 10586.6 KW/h Tagesverbrauch 9586.6 KW/h
Verbrauch akt. Monat 10640 KW/h Tagesverbrauch 6 KW/h
Ich danke euch schon jetzt
2021-05-24 10:00:55 state 5266,6
in deinem Tagesverbrauch benützt du ein Komma statt eine Punkt, somit ist das auch keine Zahl mit der man rechnen könnte.
und warum schreibst du das denn nicht in ein Reading, state STATE ist eine Sonderlocke
wo ist eigentlich beschrieben, dass man in einem fhem befehl (set ...) an beliebiger stelle einen teil mit perl ({}) codieren darf?
at erlaubt perl entweder ganz oder gar nicht, wie auch an vielen anderen stellen.
Hallo Frank,
das war ja nur ein Versuch, weil ich es nicht besser kann! :( :( Bin absoluter FHEM Anfänger und Pearl kann ich auch nicht.
Wie müsste ich denn richtig formulieren?
Gruß
Hallo Frank,
warum funktioniert dann dieses Konstrukt?
*00:01 set telegramS message Verbrauch akt. Monat [Leistungsmesser_IEC_01:energy] KW/h Tagesverbrauch {([Leistungsmesser_IEC_01:energy]-1000)} KW/h
Ausgabe TELEGRAM
Verbrauch akt. Monat 10866.6 KW/h Tagesverbrauch 9866.6 KW/h
auch wenn "schwarzfahren" gelingt, ist es weiterhin nicht erlaubt. ;)
Der ist gut ;D ;D ;D
mit dem "at" klappt es. Im dummy "Tagesverbrauch" muss aber eine Zahl im Format "5266.6" stehen und nicht "5266,6" und ja ich fahre weiter schwarz.
*00:01 set telegramS message Verbrauch akt. Monat [Leistungsmesser_IEC_01:energy] KW/h Tagesverbrauch {([Leistungsmesser_IEC_01:energy]-[Tagesverbrauch:state])} KW/h
Stefan
Zitatwo ist eigentlich beschrieben, dass man in einem fhem befehl (set ...) an beliebiger stelle einen teil mit perl ({}) codieren darf?
Hier: https://fhem.de/commandref_modular.html#set
Zitat von: fhem-hm-knecht am 24 Mai 2021, 16:36:08
2021-05-24 10:00:55 state 5266,6
in deinem Tagesverbrauch benützt du ein Komma statt eine Punkt, somit ist das auch keine Zahl mit der man rechnen könnte.
und warum schreibst du das denn nicht in ein Reading, state STATE ist eine Sonderlocke
DAS WAR DIE LÖSUNG - DANKE
ok, dann fang ich auch mal an mit "schwarzfahren". :)