FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: optimizer am 03 Februar 2026, 23:50:53

Titel: Mittelwertbildung :avg in doif-Bedingung
Beitrag von: optimizer am 03 Februar 2026, 23:50:53
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?