Ankündigung: checkReadingEvent soll demnächst nicht erforderlich sein

Begonnen von Damian, 10 Januar 2018, 18:24:02

Vorheriges Thema - Nächstes Thema

Damian

Zitat von: Ellert am 10 April 2018, 13:08:51
Hallo Damian,

gibt es einen konkreten Zeitrahmen bis wann die Umstellung eingeführt wird.

Ich plane für alle DOIF Zug um Zug das Attribut checkReadinEvent 1 zu setzen, um Definitonen bei Fehlverhalten anzupassen.

Wenn alle Definitionen mit gesetztem Attribut checkReadingEvent funktionieren, dann sollte die geplante Änderung zu keiner vorhersehbaren Beeinträchtigung führen.

Ist diese Annahme korrekt?

Ich wollte es schon längst geändert haben, habe es aber immer vor mich hin geschoben.

Es ging nicht nur darum checkReadingEvent per default auf 1 zu stellen (das wäre einfach), sondern die Auswertungsroutine für Reading-Events intern zu vereinheitlichen. Es sollte die gleiche Routine benutzt werden, wie sie inzwischen bei uiTable und dem state-Attribut benutzt wird. Bei dieser Routine kann man aber nicht zurück, checkReadingEvent 0 würde nicht funktionieren.

Diese Rückfall-Option sollte allerdings für den Notfall bestehen bleiben.

Man könnte im ersten Schritt in einer neuen DOIF-Version checkReadingEvent einfach per default auf 1 setzen und eine Zeit lang abwarten, ob es irgendwo Probleme gibt. Wenn es über einen längern Zeitraum (paar Monate) keine Beschwerden gibt, könnte ich intern auf die neuen Routinen umstellen - dann hätte checkReadingEvent keine Funktion mehr.



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

Damian

Ich habe jetzt bei mir im Produktivsystem mit

attr TYPE=DOIF checkReadingEvent 1

das Attribut für alle DOIFs gesetzt. Dann warten wir mal ab, was passiert ;)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Damian

Ich habe im ersten Post eine neue Version angehängt. Bei dieser ist checkReadingEvent intern per default auf 1 gesetzt (reagieren nur auf Events des Readings bei Angaben [DEVICE:READING]). Möchte man die alte Funktionalität bewusst nutzen (reagieren auf alle Events des Devices), so muss man im jeweiligen Modul das Attribut checkReadingEvent auf 0 setzen.

Damit kann jeder bei sich vorab testen, ob alles wie gewohnt funktioniert, bevor das Modul eingecheckt wird.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Ellert

Ich habe Zug um Zug alle DOIF manuell auf checkReadingEvent auf 1 gesetzt, bisher ohne Nebenwirkungen.

Ich warte jetzt gelassen auf die Umsetzung ;)

Damian

Zitat von: Ellert am 04 Mai 2018, 08:59:56
Ich habe Zug um Zug alle DOIF manuell auf checkReadingEvent auf 1 gesetzt, bisher ohne Nebenwirkungen.

Ich warte jetzt gelassen auf die Umsetzung ;)

Ich denke, es wird nicht viele betreffen, die Option checkReadingEvent 0 wird es für die Abwärtskompatibilität auf jeden Fall geben.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Damian

checkReadingEvent 1 wird intern per default für alle DOIF-Module mit nächster Version aktiv: https://forum.fhem.de/index.php/topic,87183.0.html
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF