Wrapper/Transform RESET

Anbindung von FS20-Komponenten, ELV-Wetterstationen, EnOcean und DMX an HomeMatic

Moderator: Co-Administratoren

Antworten
PeterAC
Beiträge: 98
Registriert: 19.12.2014, 14:07
Hat sich bedankt: 6 Mal
Danksagung erhalten: 9 Mal

Wrapper/Transform RESET

Beitrag von PeterAC » 02.04.2025, 11:35

Beim Beschreiben des Datenpunktes RESET wird der History Buffer gelöscht, allerdings nur bis auf den zuletzt eingetroffenen Wert. Das macht die Ermittlung von Mittelwerten über einen definierten Zeitraum schwierig.

Wenn z.B. Mittlewerte von unregelmäßig eintreffenden Sensordaten über einen Zeitraum von z.B. 5 Minuten bestimmt werden sollen, könnte ein Timer alle 5 Minuten den Datenpunkt "MEAN" abfragen und danach den Datenpunkt "RESET" beschreiben. Dabei verbleibt jedoch der zuletzt eingetroffene Wert im History-Buffer, der nun genau einen Wert enthält. Dieser Wert war aber in der vorherigen Mittelwertberechnung bereits enthalten. Bei der folgenden Mittelwertbestimmung wird dieser nun wieder verwendet, so dass sich die Zeitbereiche aufeinanderfolgender Mittelwerte überlappen.

Das lässt sich derzeit nur lösen, in dem man den Reset erst nach dem Eintreffen des ersten Wertes im neuen Zyklus ausführt. Dies ginge etwa, indem der 5-Minuten Timer nach der Abfrage ein Flag (Systemvariable) definiert, dass das gewünschte Rücksetzen signalisiert, und ein weiteres Programm, das vom Quell-Datenpunkt getriggert wird, bei aktivem Flag das Rücksetzen auslöst und das Flag zurücksetzt.

Bei periodisch eintreffenen Daten kann man mit zeitverschobenen Timern arbeiten, um nach Abruf von "MEAN" auf einen Zeitpunkt zwischen den nächsten beiden Werten zu zielen (aber unsicher).

Beides ruiniert leider die Eleganz und Einfachheit der Verarbeitung durch das Wrapper-Transform-Device, daher der Vorschlag:

Wäre es möglich beim RESET einen Parameter zu übergeben, der den History Buffer restlos löscht, etwa indem man eine "-1" mit übergibt? Das könnte für die meisten existierenden Implementierung unproblematisch sein, weil ich vermute, dass dort entweder eine 0 oder eine 1 übergeben wird. Der verwendete Wert ist derzeit jedenfalls irrelevant. Weiterhin könnte man bei ganz leerem History Buffer für alle Statistik-Datenpunkte (vorläufig) den Wert des Haupt-Datenpunktes ausgeben.

Benutzeravatar
uwe111
Beiträge: 4888
Registriert: 26.02.2011, 22:22
Hat sich bedankt: 3 Mal
Danksagung erhalten: 260 Mal
Kontaktdaten:

Re: Wrapper/Transform RESET

Beitrag von uwe111 » 02.04.2025, 23:51

PeterAC hat geschrieben:
02.04.2025, 11:35
Wäre es möglich beim RESET einen Parameter zu übergeben, der den History Buffer restlos löscht, etwa indem man eine "-1" mit übergibt? Das könnte für die meisten existierenden Implementierung unproblematisch sein, weil ich vermute, dass dort entweder eine 0 oder eine 1 übergeben wird. Der verwendete Wert ist derzeit jedenfalls irrelevant. Weiterhin könnte man bei ganz leerem History Buffer für alle Statistik-Datenpunkte (vorläufig) den Wert des Haupt-Datenpunktes ausgeben.
Gute Idee, ich werde nach RESET einfach den History Buffer komplett löschen und für alle Statistik-Datenpunkte den Wert des Haupt-Datenpunktes ausgeben.

Viele Grüße

Uwe
Alle sagten: Das geht nicht. Dann kam einer, der wußte das nicht und hat's einfach gemacht.
SPENDEN :wink: Download: CUxD 2.12, SSH KeyDir

Antworten

Zurück zu „CUxD“