Hallo,
ich lese meine Stromdaten über den Stromzähler mittels Tasmota aus. Ich habe ein eigenes Reading angelegt, um bei neuen Werten die gemittelte Gesamtleistung zu ermitteln.
attr MQTT2_DVES_B5AEEF userReadings P_Avg {((ReadingsVal("MQTT2_DVES_B5AEEF","SM_1_8_0","0")
-OldReadingsVal("MQTT2_DVES_B5AEEF","SM_1_8_0",ReadingsVal("MQTT2_DVES_B5AEEF","SM_1_8_0","0"))
-ReadingsVal("MQTT2_DVES_B5AEEF","SM_2_8_0","0")
+OldReadingsVal("MQTT2_DVES_B5AEEF","SM_2_8_0",ReadingsVal("MQTT2_DVES_B5AEEF","SM_2_8_0","0")))*12)}
Das Ganze läuft auch gut, aber teilweise sehe ich große Sprünge und Verschiebungen in P_Avg. Deshalb habe ich heute mal geschaut, wo das Problem liegen könnte. Teilweise liefert OldReadingsVal("MQTT2_DVES_B5AEEF","SM_2_8_0";0) alte Werte zurück, und ändert sich nicht auf den aktuellen Wert von SM_2_8_0 (SM_2_8_0 liefert die Einspeisung zurück).
Ich habe jetzt schon rumprobiert und
SM_2_8_0 auf onUpdateReading gesetzt, um ein Event zu generieren. Trotzdem wird der aktuelle Wert nicht bei OldReadings übernommen. Woran kann das liegen?
Hallo teichtaucher,
bist du sicher, dass du damit die Gesamtleistung mittelst oder doch so was wie Gesamtenergie? So ganz habe ich deine Definition nicht verstanden.
Es gibt Module wie statistics oder ElectricityCalculator, die dir die Arbeit abnehmen. Vielleicht wirst du dort fündig.
Viele Grüße Gisbert
Mein Bauchgefühl sagt mir, dass in MQTT2_DVES_B5AEEF irgendwelche sinnfreien event-on-irgendwas Attribute gesetzt sind, die eine ordnungsgemäße Aktualisierung aller readings verhindern.
Aber da man uns das komplette list des devices MQTT2_DVES_B5AEEF vorenthält, ist das natürlich nichts weiter als eine Vermutung.
Hier ein List von MQTT2_DVES_B5AEEF
Internals:
CID DVES_B5AEEF
DEF DVES_B5AEEF
FUUID 641b54ca-f33f-2bd4-6213-b7030d0e1bb166ef
IODev gl.gw.mqttBroker
LASTInputDev gl.gw.mqttBroker
MSGCNT 21458
NAME MQTT2_DVES_B5AEEF
NR 315
STATE ???
TYPE MQTT2_DEVICE
eventCount 17433
gl.gw.mqttBroker_CONN gl.gw.mqttBroker_192.168.178.52_56535
gl.gw.mqttBroker_MSGCNT 21458
gl.gw.mqttBroker_TIME 2024-10-07 14:34:46
OLDREADINGS:
2024-10-07 13:47:50 SM_1_8_0 6843463.68603000
2024-10-07 12:52:50 SM_2_8_0 1272215.98067000
READINGS:
2024-09-19 17:54:32 Command Error
2024-10-07 14:32:50 Heap 17
2024-10-06 09:44:12 IODev gl.gw.mqttBroker
2024-09-19 19:25:08 Info1_FallbackTopic cmnd/DVES_B5AEEF_fb/
2024-09-19 19:25:08 Info1_GroupTopic cmnd/tasmotas/
2024-09-19 19:25:08 Info1_Module Generic
2024-09-19 19:25:08 Info1_Version 14.2.0(tasmota)
2024-09-19 19:25:08 Info2_Hostname tasmota-B5AEEF-3823
2024-09-19 19:25:08 Info2_IPAddress 192.168.178.52
2024-09-19 19:25:08 Info2_WebServerMode Admin
2024-09-19 19:25:08 Info3_BootCount 6
2024-09-19 19:25:08 Info3_RestartReason Software/System restart
2024-10-06 09:44:37 LWT Online
2024-10-07 14:32:50 LoadAvg 19
2024-10-07 14:32:50 MqttCount 5
2024-10-06 09:44:37 POWER
2024-10-07 14:34:46 P_Avg 1603.80875999015
2024-09-20 10:12:11 SML_CMD restart
2024-10-07 14:32:50 SM_16_7_0 245.83
2024-10-07 14:32:50 SM_1_8_0 6843599.41575000
2024-10-07 14:32:50 SM_1_8_1 0.00000000
2024-10-07 14:32:50 SM_1_8_2 0.00000000
2024-10-07 14:32:50 SM_2_8_0 1272218.05966000
2024-10-07 14:32:50 SM_32_7_0 239.3
2024-10-07 14:32:50 SM_36_7_0 38.17
2024-10-07 14:32:50 SM_52_7_0 238.5
2024-10-07 14:32:50 SM_56_7_0 100.01
2024-10-07 14:32:50 SM_72_7_0 239.1
2024-10-07 14:32:50 SM_76_7_0 107.65
2024-10-07 14:32:50 SM_96_1_0 1EBZ0101616191
2024-10-07 14:32:50 Sleep 50
2024-10-07 14:32:50 SleepMode Dynamic
2024-10-06 09:44:37 Subscribe pvleistung,inverter/total/P_AC/#
2024-10-07 14:32:50 Time 2024-10-07T13:32:49
2024-10-07 14:32:50 Uptime 17T19:07:46
2024-10-07 14:32:50 UptimeSec 1537666
2024-09-19 19:18:07 Vcc 3.065
2024-10-07 14:34:46 WebSend Done
2024-10-07 14:32:50 Wifi_AP 1
2024-10-07 14:32:50 Wifi_BSSId 7C:FF:4D:2B:42:27
2024-10-07 14:32:50 Wifi_Channel 1
2024-10-07 14:32:50 Wifi_Downtime 0T00:00:03
2024-10-07 14:32:50 Wifi_LinkCount 1
2024-10-07 14:32:50 Wifi_Mode 11n
2024-10-07 14:32:50 Wifi_RSSI 80
2024-10-07 14:32:50 Wifi_SSId FetzNetz
2024-10-07 14:32:50 Wifi_Signal -60
2024-10-06 09:44:37 bat 0
2024-10-06 09:44:37 btn_1 0
2024-10-06 09:44:37 btn_10 0
2024-10-06 09:44:37 btn_11 0
2024-10-06 09:44:37 btn_12 0
2024-10-06 09:44:37 btn_13 0
2024-10-06 09:44:37 btn_14 0
2024-10-06 09:44:37 btn_15 0
2024-10-06 09:44:37 btn_16 0
2024-10-06 09:44:37 btn_17 0
2024-10-06 09:44:37 btn_18 0
2024-10-06 09:44:37 btn_19 0
2024-10-06 09:44:37 btn_2 0
2024-10-06 09:44:37 btn_20 0
2024-10-06 09:44:37 btn_21 0
2024-10-06 09:44:37 btn_22 0
2024-10-06 09:44:37 btn_23 0
2024-10-06 09:44:37 btn_24 0
2024-10-06 09:44:37 btn_25 0
2024-10-06 09:44:37 btn_26 0
2024-10-06 09:44:37 btn_27 0
2024-10-06 09:44:37 btn_28 0
2024-10-06 09:44:37 btn_29 0
2024-10-06 09:44:37 btn_3 0
2024-10-06 09:44:37 btn_30 0
2024-10-06 09:44:37 btn_31 0
2024-10-06 09:44:37 btn_32 0
2024-10-06 09:44:37 btn_4 0
2024-10-06 09:44:37 btn_5 0
2024-10-06 09:44:37 btn_6 0
2024-10-06 09:44:37 btn_7 0
2024-10-06 09:44:37 btn_8 0
2024-10-06 09:44:37 btn_9 0
2024-10-06 09:44:37 dn TM_SmartMeter
2024-10-06 09:44:37 dslp 0
2024-10-06 09:44:37 fn_1 Tasmota
2024-10-06 09:44:37 ft %prefix%/%topic%/
2024-10-06 09:44:37 hn tasmota-B5AEEF-3823
2024-10-06 09:44:37 if 0
2024-10-06 09:44:37 ip 192.168.178.52
2024-10-06 09:44:37 lk 0
2024-10-06 09:44:37 lt_st 0
2024-10-06 09:44:37 mac 7C87CEB5AEEF
2024-10-06 09:44:37 md Generic
2024-10-06 09:44:37 ofln Offline
2024-10-06 09:44:37 onln Online
2024-10-06 09:44:37 rl_1 0
2024-10-06 09:44:37 rl_10 0
2024-10-06 09:44:37 rl_11 0
2024-10-06 09:44:37 rl_12 0
2024-10-06 09:44:37 rl_13 0
2024-10-06 09:44:37 rl_14 0
2024-10-06 09:44:37 rl_15 0
2024-10-06 09:44:37 rl_16 0
2024-10-06 09:44:37 rl_17 0
2024-10-06 09:44:37 rl_18 0
2024-10-06 09:44:37 rl_19 0
2024-10-06 09:44:37 rl_2 0
2024-10-06 09:44:37 rl_20 0
2024-10-06 09:44:37 rl_21 0
2024-10-06 09:44:37 rl_22 0
2024-10-06 09:44:37 rl_23 0
2024-10-06 09:44:37 rl_24 0
2024-10-06 09:44:37 rl_25 0
2024-10-06 09:44:37 rl_26 0
2024-10-06 09:44:37 rl_27 0
2024-10-06 09:44:37 rl_28 0
2024-10-06 09:44:37 rl_29 0
2024-10-06 09:44:37 rl_3 0
2024-10-06 09:44:37 rl_30 0
2024-10-06 09:44:37 rl_31 0
2024-10-06 09:44:37 rl_32 0
2024-10-06 09:44:37 rl_4 0
2024-10-06 09:44:37 rl_5 0
2024-10-06 09:44:37 rl_6 0
2024-10-06 09:44:37 rl_7 0
2024-10-06 09:44:37 rl_8 0
2024-10-06 09:44:37 rl_9 0
2024-09-19 17:54:41 sho_1 0
2024-09-19 17:54:41 sho_2 0
2024-09-19 17:54:41 sho_3 0
2024-09-19 17:54:41 sho_4 0
2024-09-19 17:54:41 sht_1_1 0
2024-09-19 17:54:41 sht_1_2 0
2024-09-19 17:54:41 sht_1_3 0
2024-09-19 17:54:41 sht_2_1 0
2024-09-19 17:54:41 sht_2_2 0
2024-09-19 17:54:41 sht_2_3 0
2024-09-19 17:54:41 sht_3_1 0
2024-09-19 17:54:41 sht_3_2 0
2024-09-19 17:54:41 sht_3_3 0
2024-09-19 17:54:41 sht_4_1 0
2024-09-19 17:54:41 sht_4_2 0
2024-09-19 17:54:41 sht_4_3 0
2024-10-06 09:44:37 sn_SM_16_7_0 0.00
2024-10-06 09:44:37 sn_SM_1_8_0 0.00000000
2024-10-06 09:44:37 sn_SM_1_8_1 0.00000000
2024-10-06 09:44:37 sn_SM_1_8_2 0.00000000
2024-10-06 09:44:37 sn_SM_2_8_0 0.00000000
2024-10-06 09:44:37 sn_SM_32_7_0 0.0
2024-10-06 09:44:37 sn_SM_36_7_0 0.00
2024-10-06 09:44:37 sn_SM_52_7_0 0.0
2024-10-06 09:44:37 sn_SM_56_7_0 0.00
2024-10-06 09:44:37 sn_SM_72_7_0 0.0
2024-10-06 09:44:37 sn_SM_76_7_0 0.00
2024-10-06 09:44:37 sn_SM_96_1_0 ␅
161619
2024-10-06 09:44:37 sn_Time 2024-10-06T08:44:36
2024-10-06 09:44:37 so_11 0
2024-10-06 09:44:37 so_114 0
2024-10-06 09:44:37 so_117 0
2024-10-06 09:44:37 so_13 0
2024-10-06 09:44:37 so_17 0
2024-10-06 09:44:37 so_20 0
2024-10-06 09:44:37 so_30 0
2024-10-06 09:44:37 so_4 0
2024-10-06 09:44:37 so_68 0
2024-10-06 09:44:37 so_73 0
2024-10-06 09:44:37 so_82 0
2024-10-06 09:44:37 state_1 OFF
2024-10-06 09:44:37 state_2 ON
2024-10-06 09:44:37 state_3 TOGGLE
2024-10-06 09:44:37 state_4 HOLD
2024-10-06 09:45:11 subscriptions cmnd/DVES_B5AEEF_fb/# cmnd/tasmota_B5AEEF/# cmnd/tasmotas/# inverter/total/P_AC/#
2024-10-06 09:44:37 sw 14.2.0
2024-10-06 09:44:37 swc_1 -1
2024-10-06 09:44:37 swc_10 -1
2024-10-06 09:44:37 swc_11 -1
2024-10-06 09:44:37 swc_12 -1
2024-10-06 09:44:37 swc_13 -1
2024-10-06 09:44:37 swc_14 -1
2024-10-06 09:44:37 swc_15 -1
2024-10-06 09:44:37 swc_16 -1
2024-10-06 09:44:37 swc_17 -1
2024-10-06 09:44:37 swc_18 -1
2024-10-06 09:44:37 swc_19 -1
2024-10-06 09:44:37 swc_2 -1
2024-10-06 09:44:37 swc_20 -1
2024-10-06 09:44:37 swc_21 -1
2024-10-06 09:44:37 swc_22 -1
2024-10-06 09:44:37 swc_23 -1
2024-10-06 09:44:37 swc_24 -1
2024-10-06 09:44:37 swc_25 -1
2024-10-06 09:44:37 swc_26 -1
2024-10-06 09:44:37 swc_27 -1
2024-10-06 09:44:37 swc_28 -1
2024-10-06 09:44:37 swc_3 -1
2024-10-06 09:44:37 swc_4 -1
2024-10-06 09:44:37 swc_5 -1
2024-10-06 09:44:37 swc_6 -1
2024-10-06 09:44:37 swc_7 -1
2024-10-06 09:44:37 swc_8 -1
2024-10-06 09:44:37 swc_9 -1
2024-10-06 09:44:37 t tasmota_B5AEEF
2024-10-06 09:44:37 tp_1 cmnd
2024-10-06 09:44:37 tp_2 stat
2024-10-06 09:44:37 tp_3 tele
2024-10-06 09:44:37 ty 0
2024-10-06 09:44:37 ver 1
Attributes:
event-on-change-reading .*
event-on-update-reading SM_2_8_0
oldreadings SM_1_8_0,SM_2_8_0
readingList DVES_B5AEEF:tele/tasmota_B5AEEF/LWT:.* LWT
DVES_B5AEEF:cmnd/tasmota_B5AEEF/POWER:.* POWER
DVES_B5AEEF:tele/tasmota_B5AEEF/INFO1:.* { json2nameValue($EVENT) }
DVES_B5AEEF:tele/tasmota_B5AEEF/INFO2:.* { json2nameValue($EVENT) }
DVES_B5AEEF:tele/tasmota_B5AEEF/INFO3:.* { json2nameValue($EVENT) }
DVES_B5AEEF:tele/tasmota_B5AEEF/SENSOR:.* { json2nameValue($EVENT) }
DVES_B5AEEF:tele/tasmota_B5AEEF/STATE:.* { json2nameValue($EVENT) }
DVES_B5AEEF:tasmota/discovery/7C87CEB5AEEF/config:.* { json2nameValue($EVENT) }
DVES_B5AEEF:tasmota/discovery/7C87CEB5AEEF/sensors:.* { json2nameValue($EVENT) }
DVES_B5AEEF:stat/tasmota_B5AEEF/RESULT:.* { json2nameValue($EVENT) }
room Global,Keller,MQTT2_DEVICE
userReadings P_Avg {((ReadingsVal("MQTT2_DVES_B5AEEF","SM_1_8_0","0")
-OldReadingsVal("MQTT2_DVES_B5AEEF","SM_1_8_0",ReadingsVal("MQTT2_DVES_B5AEEF","SM_1_8_0","0"))
-ReadingsVal("MQTT2_DVES_B5AEEF","SM_2_8_0","0")
+OldReadingsVal("MQTT2_DVES_B5AEEF","SM_2_8_0",ReadingsVal("MQTT2_DVES_B5AEEF","SM_2_8_0","0")))*12)}
Die beiden event-on-change-reading und event-on-update-reading habe ich erst eingeführt nachdem es nicht mehr zuverlässig lief.
Zitat von: teichtaucher am 07 Oktober 2024, 14:36:49Die beiden event-on-change-reading und event-on-update-reading habe ich erst eingeführt nachdem es nicht mehr zuverlässig lief.
Dir ist hoffentlich klar, dass die beiden Attribute dafür gedacht sind, events zu reduzieren, nicht dafür, um welche zu erzeugen? Meine Empfehlung: weglassen, solange man nicht verstanden hat, wie diese Attribute wirken.
Ergänze mal testweise im Attribut oldreadings das Schlüsselwort "oldreadingsAlways" am Ende.
attr MQTT2_DVES_B5AEEF oldreadings SM_1_8_0,SM_2_8_0 oldreadingsAlways
ZitatDir ist hoffentlich klar, dass die beiden Attribute dafür gedacht sind, events zu reduzieren, nicht dafür, um welche zu erzeugen? Meine Empfehlung: weglassen, solange man nicht verstanden hat, wie diese Attribute wirken.
Mir ist schon klar, wie das funktioniert. Ich habe auf dem Tasmota (was den Smartmeter ausliest) noch ein skript laufen, was Daten an die Wallbox schickt. Deshalb wird WebSend die ganze Zeit aktualisiert. Deshalb wird auch P_Avg mit aktualisiert. Ich dachte erst, das hätte was damit zu tun.
ZitatErgänze mal testweise im Attribut oldreadings das Schlüsselwort "oldreadingsAlways" am Ende.
Werde ich mal testen. Ich berichte, wenn es geklappt hat.
Geht immer noch nicht. Ich habe gerade mal den Wert für 2_8_0 vor dem Update aufgeschrieben: 1272332.58109000. OldReadingsVal von 2_8_0 vor und nach dem Update ist immer noch 1272331.40441000.
Für mich sieht es so aus als ob FHEM irgendwann mal die Änderung nicht mitbekommen hat und denkt jetzt dass der aktuelle Wert = OldReadingsValue ist. Seltsamerweise bringt da auch oldreadingsAlways keine Änderung.
Wenn ich Shutdown Restart mache, läuft es wieder. Aber irgendwann hängt es dann wieder.
Könnte das auch ein Bug sein? Ich überlege schon ob ich nicht einfach ein neues Reading spendiere, um den alten Wert kontrolliert zwischenzuspeichern.
OK, es scheint jetzt zu laufen. Hier die Lösung für die Nachwelt: Nach Blicks ins Commandref muss bei oldReadings das oldreadingsAlways mit Komma getrennt ans Ende. So sieht es also aus:
attr MQTT2_DVES_B5AEEF oldReadings SM_1_8_0,SM_2_8_0,oldreadingsAlways
Und jetzt wird auch immer der OldValue übernommen. Ich werde das Verhalten beobachten. Falls es noch Unstimmigkeiten gibt, schreibe ich nochmal.