Hi,
ich habe folgendes Device:
ZitatInternals:
DEF 1/3/5:dpt12 tul
DEVNAME KNX10.I06_Heizungszaehler_main
IODev tul
LASTInputDev tul
MSGCNT 2662
NAME KNX10.I06_Heizungszaehler_main
NR 585
NTFY_ORDER 50-KNX10.I06
STATE 6398.591 m³ m3
TYPE KNX
tul_MSGCNT 2662
tul_RAWMSG C110aw130500000284
tul_TIME 2017-03-09 11:43:52
Gaddr:
1 1/3/5
Gcode:
1 1305
Helper:
Dblog:
Lastliterwork:
Logdb:
TIME 1489056232.65166
VALUE 2.32
Literpromin:
Logdb:
TIME 1489056232.65166
VALUE 18.41
Total:
Logdb:
TIME 1489056232.65166
VALUE 6398.591
Model:
1 dpt12
Readings:
2017-03-09 11:43:52 RL 24.75 °C
2017-03-09 11:43:52 VL 26.75 °C
2017-03-09 11:43:52 a 18.4146975573683
2017-03-09 11:43:52 getG1 644
2017-03-09 11:43:52 last-sender 1/1/10
2017-03-09 11:43:52 lastliterwork 2.32 Wh
2017-03-09 11:43:52 literpromin 18.41 l/min
2017-03-09 11:12:15 offset 6397.947
2017-03-09 11:43:52 state 644
2017-03-09 11:43:52 total 6398.591 m³
Readingsname:
Attributes:
DbLogInclude lastliterwork,literpromin,total
IODev tul
group Zähler
readonly 1
room KNX,System
stateFormat total m3
userReadings total {sprintf("%.3f m³",ReadingsVal($name,"offset",0)+ReadingsNum($name,"getG1",0)*0.001)},
update_delay:total {ReadingsAge($name, "total",0)},
a differential {ReadingsVal($name,"getG1",0)*60},
literpromin {sprintf("%.2f l/min",int(100*ReadingsVal($name,"a",0))/100)},
VL {sprintf("%.2f °C",ReadingsNum("RE_TEMP_VorlaufHK","temperature",0))},
RL {sprintf("%.2f °C",ReadingsNum("RE_TEMP_RuecklaufHK","temperature",0))},
lastliterwork {my $w= sprintf("%.2f Wh",(ReadingsNum($name,"VL",0)-ReadingsNum($name,"RL",0))*1.16)}
webCmd :
Hier habe ich einige UserReadings angelegt, um ein paar Werte zu berechnen, welche ich dann loggen möchte.
Leider werden zwei Events pro "update" erzeugt:
2017-03-09 11:44:41.273 KNX KNX10.I06_Heizungszaehler_main getG1: 659
2017-03-09 11:44:41.273 KNX KNX10.I06_Heizungszaehler_main last-sender: 1/1/10
2017-03-09 11:44:41.273 KNX KNX10.I06_Heizungszaehler_main 659
2017-03-09 11:44:41.273 KNX KNX10.I06_Heizungszaehler_main total: 6398.606 m³
2017-03-09 11:44:41.273 KNX KNX10.I06_Heizungszaehler_main a: 18.384853801913
2017-03-09 11:44:41.273 KNX KNX10.I06_Heizungszaehler_main literpromin: 18.38 l/min
2017-03-09 11:44:41.273 KNX KNX10.I06_Heizungszaehler_main VL: 27.00 °C
2017-03-09 11:44:41.273 KNX KNX10.I06_Heizungszaehler_main RL: 24.75 °C
2017-03-09 11:44:41.273 KNX KNX10.I06_Heizungszaehler_main lastliterwork: 2.61 Wh
2017-03-09 11:44:41.273 KNX KNX10.I06_Heizungszaehler_main getG1: 659
2017-03-09 11:44:41.273 KNX KNX10.I06_Heizungszaehler_main last-sender: 1/1/10
2017-03-09 11:44:41.273 KNX KNX10.I06_Heizungszaehler_main 659
2017-03-09 11:44:41.273 KNX KNX10.I06_Heizungszaehler_main total: 6398.606 m³
2017-03-09 11:44:41.273 KNX KNX10.I06_Heizungszaehler_main literpromin: 18.38 l/min
2017-03-09 11:44:41.273 KNX KNX10.I06_Heizungszaehler_main VL: 27.00 °C
2017-03-09 11:44:41.273 KNX KNX10.I06_Heizungszaehler_main RL: 24.75 °C
2017-03-09 11:44:41.273 KNX KNX10.I06_Heizungszaehler_main lastliterwork: 2.61 Wh
Ich vermutete, dass dies durch die beiden Haupt-Events getG1 und last-sender ausgelöst wird.
Also habe ich meine Events auf "getG1" beschränkt, und nun ausschließlich getG1 bekommen.
Diese aber doppelt:
2017-03-09 11:48:07.632 KNX KNX10.I06_Heizungszaehler_main getG1: 721
2017-03-09 11:48:07.632 KNX KNX10.I06_Heizungszaehler_main getG1: 721
Warum? Ich hab doch bestimmt wieder irgendwo einen Denkfehler drin? (Der mir einfällt, sobald mich jemand drauf hin weist ;./)
Desweiteren habe ich versucht, das triggern der UserReadings auf einzelne Readings zu beschränken:
update_delay:total {ReadingsAge($name, "total",0)},
Abgesehen davon, dass das vermutlich Inhaltlich nicht sinnvoll ist, wird das Reading update_delay bei mir nicht erzeugt. Selbiges Problem hatte ich mit den anderen Readings, bis ich den trigger entfernt habe.
In einem Beitrag habe ich gelesen, dass man aufgrund einer Anpassung nicht mehr :trigger verwenden kann, sondern :trigger.* verwenden muss.
update_delay:total.* {ReadingsAge($name, "total",0)},
Leider funktioniert auch das nicht.
Auch mit
update_delay:total:.* {ReadingsAge($name, "total",0)},
hab ichs nicht hingekriegt. Was mache ich falsch?
Danke und viele Grüße,
Stephan