Hallo,
ich habe die HM-ES-PMSW1-PL Schaltsteckdose.
Darüber läuft meine Waschmaschine. Jetzt möchte ich gerne den aktuellen der Verbrach den die Waschmaschine hatte per Email zu schicken lassen. Das zuschicken ist nicht das Problem, doch ich bekomme den zuletzt gemessen Verbrauch nicht "gelesen".
In einem DOIF lasse ich beim Start WaMa mit
(setreading WaschMa_Pwr Verbrauch_alt [WaschMa_Pwr:energy]
schreiben.
Beim Ende des Waschvorganges lasse ich dann mit
(setreading WaschMa_Pwr Verbrauch_neu [WaschMa_Pwr:energy]
den neuen Wert schreiben.
Ich habe jetzt div. Stunden versucht die Differenz zu berechnen. Doch ich komme nicht auf das richtig Ergebnis.
Könnt Ihr mir sagen, wie ich
Verbrauch_neu - Verbrauch_alt = Verbrauch
berechnen kann?
Hier ein paar Beispiele aus meinen Versuchen.
Test_Verbrauch {ReadingsVal("WaschMa_Pwr","Verbrauch_neu ",0)-ReadingsVal("WaschMa_Pwr","Verbrauch_alt",0)}
Verbrauch difference { ReadingsVal("WaschMa","Verbrauch_alt",0) }
VIelen Dank
Hoffi
Hi,
Du brauchst zusätzliche Klammern. Nach dem Schema set testzaehler {([testzaehler:state] + 2)}
Das würde aber als userReadings gehen, kann ich leider nicht ersehen wie Du getestet hast.
Test_Verbrauch {ReadingsVal("WaschMa_Pwr","Verbrauch_neu ",0) - ReadingsVal("WaschMa_Pwr","Verbrauch_alt",0)}
Für ein setreading würde es so gehen:
setreading WaschMa_Pwr Test_Verbrauch {(ReadingsVal("WaschMa_Pwr","Verbrauch_neu ",0) - ReadingsVal("WaschMa_Pwr","Verbrauch_alt",0))}
Gruß Otto
Hallo Otto,
ich habe habe über die Eingabe
setreading WaschMa_Pwr Verbrauch_alt 2000
bzw.
setreading WaschMa_Pwr Verbrauch_neu 2033
eingegeben.
Ich bekomme aber ein Ergebnis mit dem ich nicht gerechnet habe
Verbrauch -2000
Anbei List von WaschMa_Pwr:
Internals:
.triggerUsed 1
DEF 323A9202
FUUID 5efa1ae4-f33f-7e98-0b63-78e1f4a4cb844419
NAME WaschMa_Pwr
NOTIFYDEV global
NR 449
NTFY_ORDER 50-WaschMa_Pwr
STATE 0.06
TYPE CUL_HM
chanNo 02
device Steckdose_WaschMa
.attraggr:
.attrminint:
.userReadings:
HASH(0x59dd6b0)
OLDREADINGS:
READINGS:
2020-07-02 09:31:58 Verbrauch -2000
2020-07-02 09:31:52 Verbrauch_alt 2000
2020-07-02 09:31:58 Verbrauch_neu 2033
2020-07-02 09:31:36 boot off
2020-07-02 09:31:36 current 0
2020-07-02 09:31:36 eState E: 1465.4 P: 0.06 I: 0 U: 233.2 f: 49.96
2020-07-02 09:31:36 energy 1465.4
2020-07-02 09:31:36 energyCalc 1465.4
2020-07-02 09:31:36 frequency 49.96
2020-07-02 09:31:36 power 0.06
2020-07-02 09:31:36 state 1465.4
2020-07-02 09:31:36 voltage 233.2
helper:
peerFriend
peerOpt -:powerMeter
regLst 1
cmds:
TmplKey :no:1593505556.37455
TmplTs 1593505556.37455
cmdKey :1:0:0::00AC:02
TmplCmds:
cmdList:
clear:[readings|trigger|register|oldRegs|rssi|msgEvents|msgErrors|attack|all]
getConfig:
getRegRaw:[List0|List1|List2|List3|List4|List5|List6] ... [-PeerChannel-]
peerBulk:-peer1,peer2,...- [set|unset]
regBulk:-list-.-peer- -addr1:data1- -addr2:data2- ...
regSet:[prep|exec] -regName- -value- ... [-peerChannel-]
sign:[on|off]
tplDel:tmplt
expert:
def 1
det 0
raw 1
tpl 0
role:
chn 1
tmpl:
Attributes:
model HM-ES-PMSW1-PL
room Keller
stateFormat power
userReadings Verbrauch {ReadingsVal("WaschMa_Pwr","Verbrauch_neu ",0)-ReadingsVal("WaschMa_Pwr","Verbrauch_alt",0)}
Auch bei dem "setreading" von dir erhalte ich -2000
Vielen Dank
Torsten
Moin Torsten,
sorry da müssen in dem Fall Leerzeichen dazwischen, habe es oben geändert. Mein "Schema" war schon richtig :)
Offenbar ist der Parser an der Stelle sensibel.
Gruß Otto
MMn. fehlt hier - mal wieder - ein sauberer Trigger für das userReading...
Test_Verbrauch:Verbrauch_neu.* {ReadingsVal("WaschMa_Pwr","Verbrauch_neu",0) - ReadingsVal("WaschMa_Pwr","Verbrauch_alt",0)}
Zitat von: Beta-User am 02 Juli 2020, 09:53:58
MMn. fehlt hier - mal wieder - ein sauberer Trigger für das userReading...
Test_Verbrauch:Verbrauch_neu.* {ReadingsVal("WaschMa_Pwr","Verbrauch_neu",0) - ReadingsVal("WaschMa_Pwr","Verbrauch_alt",0)}
Das hat funktioniert.
Vielen lieben Dank. DANKE