dbrep reducelog löscht zuviel

Begonnen von doman75, 04 Juni 2024, 09:51:08

Vorheriges Thema - Nächstes Thema

doman75

Hallo zusammen,

früher benutzte ich im DBlog Device das reducelogNBl, als ich neulich meine DB angesehen habe war die ziemlich groß. Dabei habe ich bemerkt das es den Befehl gar nicht mehr gibt. Ich habe dann etwas gelesen und gesehen das im dbrep ein reducelog ist und habe das mit 14 average aufgeführt und danach gemerkt das ich nicht weit genug gelesen habe, und nur noch Tagesmittelwerte hatte.
Nun habe ich über HeidiSQL und einem Backup die Werte wieder in die Datenbank inserted und habe beim attr Aggregation hour eingestellt.
Aber nach jedem Insert und dann reducelog average habe ich trotzdem nur einen Wert pro Tag drin stehen. Muss ich nach dem Insert den Index neu aufbauen oder was übersehe ich hier?

betateilchen

Falsches Unterforum für Fragen zu DbRep.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

RalfRog

#2
Hallo
Mit help dbrep siehst du das Unterforum...    (Module: 93_DbRep.pm Maintainer: DS_Starter Forum: Automatisierung )
und etwa in der Mitte des Hilfetextes, dass set <name> reducelog average den Mittelwert bildet:

ZitatreduceLog [<no>[:<nn>]] [mode] [EXCLUDE=device1:reading1,device2:reading2,...] [INCLUDE=device:reading]

Reduziert historische Datensätze.

Arbeitsweise ohne Angabe von Befehlszeilenoperatoren

Es werden die Daten innerhalb der durch die time.*-Attribute bestimmten Zeitgrenzen bereinigt. Es muss mindestens eines der time.*-Attribute gesetzt sein (siehe Tabelle unten). Die jeweils fehlende Zeitabgrenzung wird in diesem Fall durch das Modul ermittelt.
Der Arbeitsmodus wird durch die optionale Angabe von mode bestimmt:

    ohne Angabe von mode    : die Daten werden auf den ersten Eintrag pro Stunde je Device & Reading reduziert

    average    : numerische Werte werden auf einen Mittelwert pro Stunde je Device & Reading reduziert, sonst wie ohne mode

    average=day    : numerische Werte werden auf einen Mittelwert pro Tag je Device & Reading reduziert, sonst wie ohne mode
          Die FullDay-Option (es werden immer volle Tage selektiert) wird impliziert verwendet.
   
    max    : numerische Werte werden auf den Maximalwert pro Stunde je Device & Reading reduziert, sonst wie ohne mode
    max=day    : numerische Werte werden auf den Maximalwert pro Tag je Device & Reading reduziert, sonst wie ohne mode
          Die FullDay-Option (es werden immer volle Tage selektiert) wird impliziert verwendet.
    min    : numerische Werte werden auf den Minimalwert pro Stunde je Device & Reading reduziert, sonst wie ohne mode
    min=day    : numerische Werte werden auf den Minimalwert pro Tag je Device & Reading reduziert, sonst wie ohne mode
          Die FullDay-Option (es werden immer volle Tage selektiert) wird impliziert verwendet.
    sum    : numerische Werte werden auf die Summe pro Stunde je Device & Reading reduziert, sonst wie ohne mode
    sum=day    : numerische Werte werden auf die Summe pro Tag je Device & Reading reduziert, sonst wie ohne mode
          Die FullDay-Option (es werden immer volle Tage selektiert) wird impliziert verwendet.

DBrep tut das was du ihm sagst -> Average bilden.
Wenn du einen deiner Werte (z.b. den ersten pro Stunde) behalten willst, dann ohne Mode Parameter. Oder den Max/Min Wert mit dem entsprechenden Parameter.

Gruß Ralf
FHEM auf Proxmox VM Bookworm (Futro S740) - nanoCUL, HM-MOD-RPI-PCB und MAX!Cube über LAN
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder sowie Shelly 3EM, 1PM, PlugS und IT Schaltsteckdosen