Hauptmenü

DOIF: Events unterdrücken?

Begonnen von Brockmann, 06 März 2015, 12:23:11

Vorheriges Thema - Nächstes Thema

Brockmann

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?

der-Lolo

Verbose ist ja fürs logen und nicht für den Eventmonitor...

Damian

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

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Brockmann

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...

Markus Bloch

#4
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
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Damian

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
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Damian

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
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF