FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: Brockmann am 06 März 2015, 12:23:11

Titel: DOIF: Events unterdrücken?
Beitrag von: Brockmann am 06 März 2015, 12:23:11
DOIFs erzeugen fleissig Events bei jeder Ausführung, was den Event-Monitor manchmal recht unübersichtlich macht.
Kann man die Events für einzelne DOIFs reduzieren bzw. ganz deaktivieren? event-Attribute haben DOIFs ja nicht, würde sich verbose hier auswirken?
Titel: Antw:DOIF: Events unterdrücken?
Beitrag von: der-Lolo am 06 März 2015, 13:55:48
Verbose ist ja fürs logen und nicht für den Eventmonitor...
Titel: Antw:DOIF: Events unterdrücken?
Beitrag von: Damian am 06 März 2015, 14:46:49
Zitat von: Brockmann am 06 März 2015, 12:23:11
DOIFs erzeugen fleissig Events bei jeder Ausführung, was den Event-Monitor manchmal recht unübersichtlich macht.
Kann man die Events für einzelne DOIFs reduzieren bzw. ganz deaktivieren? event-Attribute haben DOIFs ja nicht, würde sich verbose hier auswirken?

Im Event-Monitor erscheinen die Informationen bei Zustandsänderung, auf die man ggf. triggern könnte. Diese halten sich normalerweise in Grenzen. Die Ereignis-Readings e.. erscheinen nicht im Event-Monitor. Andere Devices sind da noch gesprächiger.
Eine Abschaltung müsste ich wohl im Modul programmieren, mir sind keine Mechanismen, die das von außen unterdrücken können, bekannt.

Gruß

Damian

Titel: Antw:DOIF: Events unterdrücken?
Beitrag von: Brockmann am 06 März 2015, 17:20:30
Zitat von: Damian am 06 März 2015, 14:46:49
Im Event-Monitor erscheinen die Informationen bei Zustandsänderung, auf die man ggf. triggern könnte.

Bei mir sind es pro DOIF drei Events, beipspielsweise:

2015-03-06 16:58:26 DOIF BZ_Lueft_ctrl cmd_nr: 1
2015-03-06 16:58:26 DOIF BZ_Lueft_ctrl cmd_event: BZ_TC
2015-03-06 16:58:26 DOIF BZ_Lueft_ctrl active


Das letzte Event könnte ich vermutlich wegrationalisieren, wenn ich keinen cmdState setze, aber der ist schon recht praktisch.
Für meinen Geschmack würde aber gerade dieses Event völlig ausreichen. Oder oft auch gar keines, wenn ein DOIF sich bewährt hat und zuverlässig läuft.

Ich habe mittlerweile so einige DOIFs (derzeit 37), die permanent und zuverlässig Aufgaben im Hintergrund erledigen und mir eben dauernd solche Dreizeiler in den Event-Monitor schreiben.
Und da ich den Event-Monitor häufig offen habe, versuche ich, unnötiges von dort fernzuhalten.

Viele der Module, die Events erzeugen, implementieren ja die event-...Attribute, mit denen man den Umfang steuern kann.
Eventuell ließen sich die und vieles von dem dazugehörenden Code aus einem dieser Module übernehmen? Dieses Rad ist ja nun schon erfunden worden...
Titel: Antw:DOIF: Events unterdrücken?
Beitrag von: Markus Bloch am 06 März 2015, 17:41:54
Zitat von: Damian am 06 März 2015, 14:46:49
Eine Abschaltung müsste ich wohl im Modul programmieren, mir sind keine Mechanismen, die das von außen unterdrücken können, bekannt.

Falsch, du benutzt doch schon die reading-Funktionen (readingsSingleUpdate,readingsBulkUpdate, readingsBeginUpdate und readingsEndUpdate), genau die erledigen das für dich.

Einfach deiner AttrList $readingFnAttributes hinzufügen:

Zitat  $hash->{AttrList} = "disable:0,1 loglevel:0,1,2,3,4,5,6 wait do:always,resetwait cmdState state initialize repeatsame waitsame waitdel cmdpause ".$readingFnAttributes;

In der Commandref sind die unterstützen Attribute der reading-Funktionen dokumentiert: http://fhem.de/commandref.html#readingFnAttributes

Gruß
Markus
Titel: Antw:DOIF: Events unterdrücken?
Beitrag von: Damian am 06 März 2015, 17:43:59
Zitat von: Brockmann am 06 März 2015, 17:20:30
Bei mir sind es pro DOIF drei Events, beipspielsweise:

2015-03-06 16:58:26 DOIF BZ_Lueft_ctrl cmd_nr: 1
2015-03-06 16:58:26 DOIF BZ_Lueft_ctrl cmd_event: BZ_TC
2015-03-06 16:58:26 DOIF BZ_Lueft_ctrl active


Das letzte Event könnte ich vermutlich wegrationalisieren, wenn ich keinen cmdState setze, aber der ist schon recht praktisch.
Für meinen Geschmack würde aber gerade dieses Event völlig ausreichen. Oder oft auch gar keines, wenn ein DOIF sich bewährt hat und zuverlässig läuft.

Ich habe mittlerweile so einige DOIFs (derzeit 37), die permanent und zuverlässig Aufgaben im Hintergrund erledigen und mir eben dauernd solche Dreizeiler in den Event-Monitor schreiben.
Und da ich den Event-Monitor häufig offen habe, versuche ich, unnötiges von dort fernzuhalten.

Viele der Module, die Events erzeugen, implementieren ja die event-...Attribute, mit denen man den Umfang steuern kann.
Eventuell ließen sich die und vieles von dem dazugehörenden Code aus einem dieser Module übernehmen? Dieses Rad ist ja nun schon erfunden worden...

Mit 37 Modulen bis du schon gut über dem Durchschnitt :)
Die Sache mit den event-Attributen müsste ich mir mal anschauen und evtl. auf die todo-Liste setzen.

Gruß

Damian
Titel: Antw:DOIF: Events unterdrücken?
Beitrag von: Damian am 06 März 2015, 17:46:26
Zitat von: Markus Bloch am 06 März 2015, 17:41:54
Falsch, du benutzt doch schon die reading-Funktionen (readingsSingleUpdate,readingsBulkUpdate, readingsBeginUpdate und readingsEndUpdate), genau die erledigen das für dich.

Einfach deiner AttrList $readingFnAttributes hinzufügen:

  $hash->{AttrList} = "disable:0,1 loglevel:0,1,2,3,4,5,6 wait do:always,resetwait cmdState state initialize repeatsame waitsame waitdel cmdpause "[b].$readingFnAttributes[/b];

In der Commandref sind die unterstützen Attribute der reading-Funktionen dokumentiert: http://fhem.de/commandref.html#readingFnAttributes

Gruß
Markus

OK. Um so besser, dann kommt es ins nächste Update.

Gruß

Damian