Hallo zusammen,
ich möchte eine Aktion auslösen, die abhängig vom Mittelwert nach dem x-ten Reading wahr wird, aber nicht bereits beim Ersten.
Dazu habe ich folgenden Test aufgebaut:
Internals:
CFGFN
DEF ## di_ZumTesten
([HHzaehler:power:avg5] > 0 )
{Log3 "$SELF", 3, "$SELF: cmd_1 avg5= [HHzaehler:power:avg5]"."\nHHzaehler:power ".ReadingsVal("HHzaehler","power","<default1>")}
DOELSEIF ([HHzaehler:power:avg5] < 0 )
{Log3 "$SELF", 3, "$SELF: cmd_2 avg5= [HHzaehler:power:avg5]"."\nHHzaehler:power ".ReadingsVal("HHzaehler","power","<default1>")}
DOELSE
{Log3 "$SELF", 3, "$SELF: cmd_3 power DOELSE "."\nHHzaehler:power > 0 ".ReadingsVal("HHzaehler","power","<default1>")."\n<name2>:<reading2> ".ReadingsVal("<name2>","<reading2>","<default2>")}
FUUID 69825a19-f33f-1d1e-cf3e-cc94c10f25575be8
MODEL FHEM
NAME di_ZumTesten
NOTIFYDEV HHzaehler,global
NR 169
NTFY_ORDER 50-di_ZumTesten
STATE cmd_1
TYPE DOIF
VERSION 30659 2025-12-25 12:37:16
eventCount 65
.attraggr:
.attrminint:
READINGS:
2026-02-03 23:21:28 Device HHzaehler
2026-02-03 23:21:28 cmd 1
2026-02-03 23:21:28 cmd_event HHzaehler
2026-02-03 23:21:28 cmd_nr 1
2026-02-03 23:21:28 e_HHzaehler_power 304
2026-02-03 23:12:49 mode enabled
2026-02-03 23:21:28 state cmd_1
Ausgabe:
2026.02.03 23:13:28 3: di_ZumTesten: cmd_1 avg5= 433
HHzaehler:power 433
2026.02.03 23:15:29 3: di_ZumTesten: cmd_1 avg5= 368.5
HHzaehler:power 304
2026.02.03 23:17:28 3: di_ZumTesten: cmd_1 avg5= 350.333333333333
HHzaehler:power 314
2026.02.03 23:19:28 3: di_ZumTesten: cmd_1 avg5= 339.5
HHzaehler:power 307
2026.02.03 23:21:28 3: di_ZumTesten: cmd_1 avg5= 332.4
HHzaehler:power 304
Wenn ich die cmd_1-Bedingung [HHzaehler:power:avg5] > 400 einstelle, wird cmd_1 bereits beim ersten Reading wahr.
Wie kann die Bedingung erst nach 5 Readings (avg5) geprüft werden?