Hallo Ihr, .... und ja, ich war sicher, dass ich es mittlerweile verstanden habe und ja, ich habe eben nochmal ins Wiki geschaut -> https://wiki.fhem.de/wiki/Event-on-change-reading (https://wiki.fhem.de/wiki/Event-on-change-reading)
und ja da steht
In einer einfachen Anwendung kann, um alle Readings eines Gerätes nur bei Änderungen zu verarbeiten, das Attribut folgendermaßen gesetzt werden:
attr <device> event-on-change-reading .*
Zusätzlich kann mit
attr <device> event-min-interval .*:3600
dafür gesorgt werden, dass jede Stunde auch ohne Werteänderung die Readings dennoch verarbeitet werden,
Ich habe hier ein ModbusAttr wo das oben gesagte partout nicht so ist.... wenn ich es richtig verstehe.
Internals:
DEF 93 5
FUUID 600304ed-f33f-6bb4-88c9-165119e414daa981
IODev Eastron
Interval 5
MODBUSID 93
MODE master
MODULEVERSION Modbus 4.3.11 - 2.1.2021
NAME Studer485_BSP
NOTIFYDEV global
NR 595
NTFY_ORDER 50-Studer485_BSP
PROTOCOL RTU
STATE opened
TYPE ModbusAttr
FRAME:
READ:
READINGS:
2021-01-21 11:45:30 Charge_Discharge_W 26
2021-01-21 11:44:42 SoC 100.0
2021-01-21 13:49:41 Temp_Batt 12.1
2021-01-21 13:49:35 Volt_Batt 26.14
2021-01-21 10:50:46 state opened
REMEMBER:
lrecv 1611233381.9916
lsend 1611233381.95095
gotReadings:
Temp_Batt 12.1
lastRead:
i0 1611233375.80853
i4 1611225882.29195
i58 1611233381.99845
i6 1611225930.15307
Attributes:
dev-defLen 2
dev-defPoll 1
dev-defShowGet 1
dev-defUnpack f>
dev-h-read 3
dev-h-write 16
dev-i-combine 4
dev-i-read 4
dev-timing-timeout 1
event-min-interval .*:60
event-on-change-reading Charge_Discharge_W:50,Volt_Batt:0.1,SoC,Temp_Batt:0.2
group Xtender
obj-i0-format %.2f
obj-i0-reading Volt_Batt
obj-i4-format %.1f
obj-i4-reading SoC
obj-i58-format %.1f
obj-i58-reading Temp_Batt
obj-i6-format %2d
obj-i6-reading Charge_Discharge_W
SoC steht seit Tagen auf "100" und das ist auch so! Die im List angezeigte Reading Time habe ich manuell ausglöst. Aber das event-min-interval tut nix. Die 60sek sind gerade für Testzwecke. event-on-change-reading sollte laut wiki und meinem Verständnis event-min-interval nicht unterdrücken. Gelesen wird das Reading alle 5 Sekunden.
Was verstehe ich nicht richtig?
Was mir aber gerade auffällt: lastread 1611225882.29195 als timestamp für i4 (SoC) steht tatsächlich exakt auf der Reading Time (-1h).
Aber die Readings werden alle 5 Sekunden ausgeführt. Ist "lastread" das letzte mal pollen oder die Reading Time?
edit: oh mann, das combine attr hat nur 2 Readings geholt. Alles so wie es sein soll. Entschuldigt bitte