Runden von Nachkommastellen in Statistics Modul

Begonnen von Adimarantis, 30 März 2023, 10:00:24

Vorheriges Thema - Nächstes Thema

Aeroschmelz


Bison

Hallo Aeroschmelz,

funktioniert bei dir das runden? Ich habe limit Decimals mit 3 angegeben und ein paar Events abgewartet, aber es ändert sich nichts.

Gruß

Bison
Raspberry, Homematic, CUL, 50 Device, 260 Entities

Adimarantis

Ist schon wieder bisschen her, auf ich meine der Algorithmus ist so, dass er verhindert, dass mehr Nachkommastellen dazukommen, wenn allerdings schon zu viele da sind, dann bleiben die bestehen.
Dazu gibt im Modul ein "set setStatistics" mit dem man einzelne Werte korrigieren kann. Probier mal ob das dir hilft.

Jörg
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

schnitzelbrain

Zitat von: Adimarantis am 22 November 2023, 08:16:33Ist schon wieder bisschen her, auf ich meine der Algorithmus ist so, dass er verhindert, dass mehr Nachkommastellen dazukommen, wenn allerdings schon zu viele da sind, dann bleiben die bestehen.
Dazu gibt im Modul ein "set setStatistics" mit dem man einzelne Werte korrigieren kann. Probier mal ob das dir hilft.

Jörg

Erst mal vielen Dank für die Anpassung des Moduls betreffend setStatistics!

Einige Fragen dazu habe ich aber noch.

Lässt sich ein Wert damit korrigieren und alle schon erzeugten Statistiken bleiben erhalten, bis auf den angepassten Wert der dann "einfach" mit neuem Wert plus die fortlaufende Änderung weiterläuft oder ist eine Änderung mit einem Reset der anderen Werte verbunden? Wenn ich also Year ändere bleibt dann Month/Last_Month/Last Year etc erhalten und fängt nicht wieder bei Null an?

Welche Werte können korrigiert werden? Die schon erzeugten oder auch die noch zu erzeugenden Werte. Beispiel Last Year ist erst einmal nicht berechnet bis zum Jahreswechsel, kann ich den Wert ändern und er wird gleichzeitig angelegt? Oder geht dies erst nach einem Jahreswechsel wenn das Reading schon erzeugt wurde?

Letzte Frage, betrifft dies sowohl die manuell erzeugten singular Readings als aoch automatisch erzeugete delta readings?

Leider konnte ich den eingecheckten Code nicht soweit nachvollziehen und in der CommandRef bzw. Wiki steht dazu nichts.
Ich will mir meine erzeugten Werte nicht vernageln.

Grüße und frohes Fest
Schnitzelbrain

Adimarantis

setStatistics ersetzt wirklich nur den entsprechenden Wert sowohl in dem versteckten Reading als auch im sichtbaren Bereich.

Das ist aktuell nur für die delta Readings (Hour, Day, Month, Year) implementiert.

Wenn du also "Hour" z.B. auf 0 setzt, zählt er von 0 weiter. Das kann hilfreich sein, wenn du das zugrundelegende Reading verändert hast und jetzt ein "falsches" Delta in "Hour" bekommt. Du kannst es dann z.B. auf den Wert vor der Änderung zurücksetzen, damit das Delta weiterzählt als wäre nichts geschehen.
Wenn ich das richtig in Erinnerung habe, wird dann bei "Day" einfach der Wert von "Hour" aufaddiert. Die Korrektur sollte sich also auf die anderen Aggregationsebenen entsprechend durchschlagen.

Nicht implementiert sind Änderungen für Min/Avg/Max und auch nicht für die "Last" Readings.
Für die "Last" müsste man aktuell die entsprechende Periode abwarten bis sich das Quasi von selbst korrigiert (zugegeben für LastMonth oder gar LastYear etwas suboptimal)

Ich hoffe das klärt deine Fragen.
 
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

schnitzelbrain

Zitat von: Adimarantis am 25 Dezember 2023, 12:20:19setStatistics ersetzt wirklich nur den entsprechenden Wert sowohl in dem versteckten Reading als auch im sichtbaren Bereich.

Das ist aktuell nur für die delta Readings (Hour, Day, Month, Year) implementiert.

Wenn du also "Hour" z.B. auf 0 setzt, zählt er von 0 weiter. Das kann hilfreich sein, wenn du das zugrundelegende Reading verändert hast und jetzt ein "falsches" Delta in "Hour" bekommt. Du kannst es dann z.B. auf den Wert vor der Änderung zurücksetzen, damit das Delta weiterzählt als wäre nichts geschehen.
Wenn ich das richtig in Erinnerung habe, wird dann bei "Day" einfach der Wert von "Hour" aufaddiert. Die Korrektur sollte sich also auf die anderen Aggregationsebenen entsprechend durchschlagen.

Nicht implementiert sind Änderungen für Min/Avg/Max und auch nicht für die "Last" Readings.
Für die "Last" müsste man aktuell die entsprechende Periode abwarten bis sich das Quasi von selbst korrigiert (zugegeben für LastMonth oder gar LastYear etwas suboptimal)

Ich hoffe das klärt deine Fragen.
 

Danke für die schnelle Rückmeldung!

Hat super funktioniert und du hattest Recht, die Werte haben sich auch auf die Singular Readings übertragen.
Somit dürften bis auf kleine Fehler meine Werte wieder angepasst sein.

Umstellung auf MQTT geklückt  ;D

Grüße

RalfRog

Hallo @Adimarantis

Ist zwar schon eine Weile her...
Getriggert durch einen Beitrag zu statistics fiel mir auf, dass für das neue Attribut "limitDecimals" kein Hilfe-Text hinterlegt ist.
Da man zur Verwendung der Parameter nicht zwangläufig auf diesen Thread stößt anbei ein Vorschlag zur Ergänzung von 98_statistics.pm (auch für das neue Set in DE).

Damit die Tags nicht vergeigt werden als Anhang.

Gruß Ralf
FHEM auf Raspi 2B mit nanoCUL, HM-MOD-RPI-PCB und über LAN MAX!Cube mit a-culFW (Stack 868 + 433)
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder