Wert aus Dummy auslesen und Subtraktion ausführen [gelöst]

Begonnen von SHOFHEM, 24 Mai 2021, 16:22:13

Vorheriges Thema - Nächstes Thema

SHOFHEM

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

LuckyDay

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

frank

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.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

SHOFHEM

#3
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ß

SHOFHEM

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

frank

auch wenn "schwarzfahren" gelingt, ist es weiterhin nicht erlaubt.  ;)
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

SHOFHEM

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

rudolfkoenig

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

SHOFHEM

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

frank

ok, dann fang ich auch mal an mit "schwarzfahren".  :)
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html