FHEM Forum

FHEM - Entwicklung => Wunschliste => Thema gestartet von: Jamo am 30 Januar 2022, 23:25:12

Titel: Nachkommastellen beim event-aggregator begrenzen
Beitrag von: Jamo am 30 Januar 2022, 23:25:12
Ich wünsche mir, dass die Nachkommastellen beim event-aggregator begrenzt werden, wie hier auch schon angefragt. https://forum.fhem.de/index.php/topic,36771.0.html
Ich logge die Temperatur meines Kühlschrankes, mittels event-aggregator berechne ich den Average.
attr TempKS userReadings temperature_avg:temperature:.* {ReadingsNum($name,'temperature',0)}
attr TempKS event-aggregator temperature_avg::linear:mean:18000


Für temperature_avg erhalte ich werte wie
temperature_avg 7.03757484938
Das macht doch keinen Sinn:
- Man schreibt 11 nachkommastellen in die db
- Jede Änderung der x-ten nachkommastelle führt zu einem zusätzlichen Event, auch wenn sich die temperatur nur unwesentlich ändert
- Um die Nachkommstellen zu begrenzen, muss man ein neues userreading einführen, was wieder zusätzliche events generiert.
- der Anwendungssfall rechtfertigt eine Fliesskommagenauigkeit gar nicht.
Titel: Antw:Nachkommastellen beim event-aggregator begrenzen
Beitrag von: Chris46 am 31 Januar 2022, 08:26:09
Wäre ich auch dafür. Ich habe bei der PV Anlage und bei den Stromzählern mit event-aggregator das gleiche Problem. Die Notifys reagieren auf die Events leider unnötig oft.
Titel: Antw:Nachkommastellen beim event-aggregator begrenzen
Beitrag von: Nobbynews am 31 Januar 2022, 09:17:47
Das ist nicht die Aufgabe des event-aggregator.
Rundungen, egal welcher Art, die im Hintergrund automatisch passieren, können mMn zu unerwarteten Ergebnissen führen.
Es sollten daher in einer allgemeinen Funktion so viele Stellen wie möglich mitgenommen werden und nur als letzte Tat eine Rundung durch den user gezielt durchgeführt werden.
Der Eine möchte 4 Stelllen, der Andere 1 Stelle hinter dem Komma usw.

Nur meine Meinung...
Titel: Antw:Nachkommastellen beim event-aggregator begrenzen
Beitrag von: yersinia am 31 Januar 2022, 09:27:48
Man könnte einen Rundungsparamer optional der Syntax (https://wiki.fhem.de/wiki/Event-aggregator#Syntax) hinzufügen. Dann ist allen geholfen: jene, die es genau brauchen, jene mit n-nachkommastellen-wünschen, und jene, die es nicht interessiert:
attr <device> event-aggregator reading:interval:method:function:holdTime[:round(n)]
Wäre aber imho was für @rudolfkoenig.
Titel: Antw:Nachkommastellen beim event-aggregator begrenzen
Beitrag von: Thomas0401 am 18 Februar 2022, 16:40:40
Oder ein userReading mit Rundung und Angabe der Nachkommastellen erstellen

z.B.
TempZirku {sprintf("%.0f", ReadingsNum($name, "TZW", 0))}