Hallo@all,
ich lese eine CSV Datei aus meinem Wechselrichter aus und schreibe die Werte in ein Device. In diesem Device werden dann userreadings erstellt.
Dies funktioniert meistens gut. Gelegentlich scheint es so zu sein, dass die Berechnung der readings stattfindet, bevor alle aktualisiert worden sind.
Hier kommen bei der Addition (Peaks ) heraus.
Gibt es eine Möglichkeit die Berechnung der Userreadings um z.b. 2 Sec zu verzögern?
MfG
Matthias
Das ist nicht möglich wenn man es korrekt macht. Ein userReadings arbeitet Event basiert. Binde also eine enge RegEx an das passende Event und du hast keine Probleme.
Wenn man dir ausführlicher helfen soll brauchen wir ein list vom Device.
list ist ein FHEM Befehl
Die Readings werden in einem at- ausgesen und mit Setreading gesetzt. unten habe ich versucht die Peaks abzufangen, indem ich negative werte nicht nehme, aber die Positiven kommen auch mal vor. Speziell geht es mir um das HousePowerCons:
HousePowerCons {if((ReadingsNum("WechselrichterErtrag","Pac",0) - ReadingsNum("WechselrichterErtrag","PRest",0)) > 0) {return (ReadingsNum("WechselrichterErtrag","Pac",0) - ReadingsNum("WechselrichterErtrag","PRest",0))} }
Internals:
CHANGED
FUUID 5cbe0fb5-f33f-700d-c469-736134458465e78a
NAME WechselrichterErtrag
NR 200
STATE Leistung: 0.000 kW Heute: 33.53 kWh Total: 1270.26 kWh
TYPE dummy
Helper:
DBLOG:
EDay:
DBLogging:
TIME 1557858681.91043
VALUE 33.53
ETotal:
DBLogging:
TIME 1557858683.23125
VALUE 1270.26
Eigenverbrauch:
DBLogging:
TIME 1557858683.23125
VALUE 263.93
HousePowerCons:
DBLogging:
TIME 1557859581.60723
VALUE 0.29
Ivp1:
DBLogging:
TIME 1557859281.39943
VALUE 0.00
Ivp3:
DBLogging:
TIME 1557858681.48801
VALUE 0.00
PRest:
DBLogging:
TIME 1557859581.60723
VALUE -0.29
Pac:
DBLogging:
TIME 1557859281.57368
VALUE 0.000
PowerS1:
DBLogging:
TIME 1557858383.33303
VALUE 0
PowerS2:
DBLogging:
TIME 1557858681.48801
VALUE 0
RestPower:
DBLogging:
TIME 1557859581.60723
VALUE 0.290
SUMpower:
DBLogging:
TIME 1557859581.19053
VALUE 0.34463
Temp:
DBLogging:
TIME 1557859581.48761
VALUE 28.1
Time:
DBLogging:
TIME 1557859581.19053
VALUE 2019-05-14 20:40:00
Upv1:
DBLogging:
TIME 1557859581.34193
VALUE 190.1
Upv3:
DBLogging:
TIME 1557859581.41191
VALUE 189.8
ZaehlBezug:
DBLogging:
TIME 1557646718.54771
VALUE 6.510
ZaehlEinsp:
DBLogging:
TIME 1557646720.11855
VALUE 25.420
z_1_8_0:
DBLogging:
TIME 1557859582.3754
VALUE 15.619
z_2_8_0:
DBLogging:
TIME 1557858384.72796
VALUE 119.330
READINGS:
2019-05-14 20:46:21 EDay 33.53
2019-05-14 20:46:21 ETotal 1270.26
2019-05-14 20:46:22 Eigenverbrauch 263.93
2019-05-14 20:46:22 HousePowerCons 0.29
2019-05-14 20:46:21 Ivp1 0.00
2019-05-14 20:46:21 Ivp3 0.00
2019-05-14 20:46:22 PRest -0.29
2019-05-14 20:46:21 Pac 0.000
2019-05-14 20:46:22 PowerS1 0
2019-05-14 20:46:22 PowerS2 0
2019-05-14 20:46:21 RestPower 0.290
2019-05-14 20:46:22 SUMpower 0.34463
2019-05-14 20:46:21 Temp 28.1
2019-05-14 20:46:21 Time 2019-05-14 20:40:00
2019-05-14 20:46:21 Upv1 190.1
2019-05-14 20:46:21 Upv3 189.8
2019-05-12 09:38:37 ZaehlBezug 6.510
2019-05-12 09:38:38 ZaehlEinsp 25.420
2019-04-26 23:37:23 state off
2019-05-14 20:46:21 z_1_8_0 15.619
2019-05-14 20:46:22 z_2_8_0 119.330
Attributes:
event-min-interval .*:1200
event-on-change-reading .*
icon measure_photovoltaic_inst
room _Test
stateFormat Leistung: Pac kW Heute: EDay kWh Total: ETotal kWh
userReadings Eigenverbrauch {ReadingsNum("WechselrichterErtrag","ETotal",0)-ReadingsNum("myEnergy280Calc","WechselrichterErtrag_z_2_8_0_CounterCurrent",0)},
SUMpower {(ReadingsNum("z_sw_Aquarium","power",0) + ReadingsNum("z_sw_TV_wz","power",0) + ReadingsNum("z_sw_trockner","power",0) + ReadingsNum("z_sw_waschma","power",0) + ReadingsNum("z_sw_pir_ug","power",0) + 270)/1000},
PowerS1 {ReadingsNum("WechselrichterErtrag","Ivp1",0) * ReadingsNum("WechselrichterErtrag","Upv1",0)},
PowerS2 {ReadingsNum("WechselrichterErtrag","Ivp3",0) * ReadingsNum("WechselrichterErtrag","Upv3",0)},
PRest {ReadingsNum("WechselrichterErtrag","RestPower",0) *(-1)},
HousePowerCons {if((ReadingsNum("WechselrichterErtrag","Pac",0) - ReadingsNum("WechselrichterErtrag","PRest",0)) > 0) {return (ReadingsNum("WechselrichterErtrag","Pac",0) - ReadingsNum("WechselrichterErtrag","PRest",0))} }
Gelöst
Einfach den userReadings Trigger richtig setzen schon geht's
Gesendet von meinem Redmi 5 Plus mit Tapatalk
Sorry habe ich gestern überlesen.
Trotzdem danke
Gesendet von meinem Redmi 5 Plus mit Tapatalk