Kein Event bei event-on-change-reading auf Reading state[:threshold] - Absicht?

Begonnen von nuccleon, 24 November 2017, 10:46:02

Vorheriges Thema - Nächstes Thema

nuccleon

Nachdem ich in Wiki und Forum nichts dazu finde versuche ichs mal im Forum...

Ich versuche die Anzahl der gefeuerten Events mit event-on-change-reading und :threshold zu limitieren. Mein Device (S7_ARead) hat ein Reading mit dem Namen state.

Das Attribut habe ich folgendermaßen definiert:

event-on-change-reading state:100


Sobald ich die :100 anhänge bekomme ich kein Event mehr - Obwohl sich das Reading um mehr als 100 geändert hat.

Lege ich ein user Reading an und definiere :100 als threshold für dieses Reading funktioniert alles wie erwartet

event-on-change-reading state,user_sec:100
userReadings user_sec { ReadingsVal($name,"state",0)}


Auszug aus Eventlog bei der funktionierenden Variante

2017-11-24 10:01:43 S7_ARead seconds 23470
2017-11-24 10:01:43 S7_ARead seconds user_sec: 23470
2017-11-24 10:01:53 S7_ARead seconds 23490
2017-11-24 10:02:03 S7_ARead seconds 23510
2017-11-24 10:02:13 S7_ARead seconds 23530
2017-11-24 10:02:24 S7_ARead seconds 23550
2017-11-24 10:02:34 S7_ARead seconds 23570
2017-11-24 10:02:34 S7_ARead seconds user_sec: 23570
2017-11-24 10:02:44 S7_ARead seconds 23590
2017-11-24 10:02:54 S7_ARead seconds 23610
2017-11-24 10:03:04 S7_ARead seconds 23630
2017-11-24 10:03:14 S7_ARead seconds 23650
2017-11-24 10:03:24 S7_ARead seconds 23670
2017-11-24 10:03:24 S7_ARead seconds user_sec: 23670


Ok. Es scheint wohl so zu sein, dass ein :threshold auf das Reading state nicht funktioniert, bzw sogar dazu führt, dass überhaupt kein Event mehr durchkommt. Das Reading state hat ja eine mir noch nicht ganz einleuchtende Sonderstellung innerhalb von FHEM.
Für mich stellt sich jetzt allerdings die Frage: Ist das ein Bug oder ein Feature?

Falls es ein Feature / Systemverhalten ist sollte man das im Wiki https://wiki.fhem.de/wiki/Event-on-change-reading auf jeden Fall dokumentieren. Als Anfänger verzweifelt man sonst an dem Feature :-)

Vollständige Device Definition

Internals:
   ADDRESS    86
   AREA       db
   CPU015_MSGCNT 623
   CPU015_TIME 2017-11-24 09:43:18
   DATATYPE   u16
   DB         5017
   DEF        db 5017 86 u16
   IODev      CPU015
   LASTInputDev CPU015
   LENGTH     2
   MSGCNT     623
   NAME       seconds
   NR         72
   STATE      21258
   TYPE       S7_ARead
   READINGS:
     2017-11-24 09:43:18   state           21258
Attributes:
   IODev      CPU015
   event-on-change-reading state:10

viegener

Ich habe das gerade mal mit einem Dummy ohne user readings ausprobiert und bei mir funktioniert ein threshold auf state ohne probleme.

Internals:
   NAME       testdummy
   NR         942
   STATE      2
   TYPE       dummy
   Helper:
     DBLOG:
       state:
         logdb:
           TIME       1511617529.60442
           VALUE      2
   READINGS:
     2017-10-02 09:30:40   reading1        tttt
     2017-11-25 14:45:29   state           2
Attributes:
   event-on-change-reading state:5
   readingList reading1 reading2
   setList    reading1:textField reading2:1,2,3,4


Wenn ich den wert auf 6 ändere kommt kein event bei 7 kommt ein event auch wenn ich das in mehreren Schritten mache
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

nuccleon

Oooook :-\
Danke für die Antwort.
Jetzt stellt sich für mich jedoch die Frage: Was mache ich falsc, bzw was kann ich tun um rauszufinden was schief läuft?

frank

TYPE       S7_ARead
beim modul entwickler nachfragen. siehe maintainer.txt => "44_S7_ARead.pm          charlie71            Sonstige Systeme"
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

nuccleon