Hi - Ich habe das Problem, dass ich in DbRep nach einem
set [DbRep] averageValue display
keine Readings finde, die die errechneten Werte zeigen. (Anders als z.B. bei diffValue, da kommen die Readings.)
Internals:
DATABASE fhem
DEF DBLog_Strom
FUUID 62fa4ba6-f33f-e1ef-8655-1c6adbbd7b03b9e6
FVERSION 93_DbRep.pm:v8.49.0-s26054/2022-05-17
LASTCMD averageValue display
MODEL Client
NAME DBRep_Strom_AvgPowerMinute
NOTIFYDEV global,DBRep_Strom_AvgPowerMinute
NR 1116
NTFY_ORDER 50-DBRep_Strom_AvgPowerMinute
ROLE Client
STATE done
TYPE DbRep
UTF8 1
eventCount 12
HELPER:
DBLOGDEVICE DBLog_Strom
GRANTS DELETE,INSERT,UPDATE,ALTER,INDEX,USAGE,SELECT
IDRETRIES 2
MINTS 2022-08-01 17:36:13
PACKAGE main
VERSION 8.49.0
CV:
aggregation minute
aggsec 60
destr 2022-08-15
dsstr 2022-08-14
epoch_seconds_end 1660581239.0572
mestr 08
msstr 08
testr 18:33:59
tsstr 18:33:59
wdadd 86400
yestr 2022
ysstr 2022
DBREPCOL:
COLSET 1
DEVICE 64
EVENT 512
READING 64
TYPE 64
UNIT 32
VALUE 128
OLDREADINGS:
READINGS:
2022-08-16 18:34:00 state done
Attributes:
aggregation minute
allowDeletion 1
averageCalcForm avgTimeWeightMean
device EM_Shelly_UG06
event-on-change-reading state
reading apower
room Cfg_DbLog
showproctime 1
timeDiffToNow d:2
timeOlderThan d:1
Ich habe dazu ein Verbose 5 Log, aber das ist ... sehr länglich... Ausschnittsweise:
2022.08.16 18:34:00 4: DbRep DBRep_Strom_AvgPowerMinute - -------- New selection ---------
2022.08.16 18:34:00 4: DbRep DBRep_Strom_AvgPowerMinute - Command: averageValue display
2022.08.16 18:34:00 4: DbRep DBRep_Strom_AvgPowerMinute - timeDiffToNow - year: , day: 2, hour: , min: , sec:
2022.08.16 18:34:00 4: DbRep DBRep_Strom_AvgPowerMinute - startMonth: 7 endMonth: 7 lastleapyear: baseYear: 2022 diffdaylight:1 isdaylight:1
2022.08.16 18:34:00 4: DbRep DBRep_Strom_AvgPowerMinute - timeOlderThan - year: 0, day: 1, hour: 0, min: 0, sec: 0
2022.08.16 18:34:00 4: DbRep DBRep_Strom_AvgPowerMinute - startMonth: 7 endMonth: 7 lastleapyear: baseYear: 2022 diffdaylight:1 isdaylight:1
2022.08.16 18:34:00 4: DbRep DBRep_Strom_AvgPowerMinute - FullDay option: 0
2022.08.16 18:34:00 4: DbRep DBRep_Strom_AvgPowerMinute - Time difference to current time for calculating Timestamp begin: 172801 sec
2022.08.16 18:34:00 5: DbRep DBRep_Strom_AvgPowerMinute - Timestamp begin epocheseconds: 1660494839.05715
2022.08.16 18:34:00 4: DbRep DBRep_Strom_AvgPowerMinute - Timestamp begin human readable: 2022-08-14 18:33:59
2022.08.16 18:34:00 4: DbRep DBRep_Strom_AvgPowerMinute - Time difference to current time for calculating Timestamp end: 86401 sec
2022.08.16 18:34:00 5: DbRep DBRep_Strom_AvgPowerMinute - Timestamp end epocheseconds: 1660581239.0572
2022.08.16 18:34:00 4: DbRep DBRep_Strom_AvgPowerMinute - Timestamp end human readable: 2022-08-15 18:33:59
2022.08.16 18:34:00 5: DbRep DBRep_Strom_AvgPowerMinute - weekday start for selection: So -> wdadd: 86400
2022.08.16 18:34:00 5: DbRep DBRep_Strom_AvgPowerMinute - Daylight savings changed: 0 (on Sun Aug 14 18:34:59 2022)
2022.08.16 18:34:00 5: DbRep DBRep_Strom_AvgPowerMinute - Daylight savings changed: 0 (on Sun Aug 14 18:35:59 2022)
2022.08.16 18:34:00 5: DbRep DBRep_Strom_AvgPowerMinute - Daylight savings changed: 0 (on Sun Aug 14 18:36:59 2022)
2022.08.16 18:34:00 5: DbRep DBRep_Strom_AvgPowerMinute - Daylight savings changed: 0 (on Sun Aug 14 18:37:59 2022)
2022.08.16 18:34:00 5: DbRep DBRep_Strom_AvgPowerMinute - Daylight savings changed: 0 (on Sun Aug 14 18:38:59 2022)
2022.08.16 18:34:00 5: DbRep DBRep_Strom_AvgPowerMinute - Daylight savings changed: 0 (on Sun Aug 14 18:39:59 2022)
2022.08.16 18:34:00 5: DbRep DBRep_Strom_AvgPowerMinute - Daylight savings changed: 0 (on Sun Aug 14 18:40:59 2022)
2022.08.16 18:34:00 5: DbRep DBRep_Strom_AvgPowerMinute - Daylight savings changed: 0 (on Sun Aug 14 18:41:59 2022)
2022.08.16 18:34:00 5: DbRep DBRep_Strom_AvgPowerMinute - Daylight savings changed: 0 (on Sun Aug 14 18:42:59 2022)
2022.08.16 18:34:00 5: DbRep DBRep_Strom_AvgPowerMinute - Daylight savings changed: 0 (on Sun Aug 14 18:43:59 2022)
2022.08.16 18:34:00 5: DbRep DBRep_Strom_AvgPowerMinute - Daylight savings changed: 0 (on Sun Aug 14 18:44:59 2022)
2022.08.16 18:34:00 5: DbRep DBRep_Strom_AvgPowerMinute - Daylight savings changed: 0 (on Sun Aug 14 18:45:59 2022)
2022.08.16 18:34:00 5: DbRep DBRep_Strom_AvgPowerMinute - Daylight savings changed: 0 (on Sun Aug 14 18:46:59 2022)
2022.08.16 18:34:00 5: DbRep DBRep_Strom_AvgPowerMinute - Daylight savings changed: 0 (on Sun Aug 14 18:47:59 2022)
2022.08.16 18:34:00 5: DbRep DBRep_Strom_AvgPowerMinute - Daylight savings changed: 0 (on Sun Aug 14 18:48:59 2022)
2022.08.16 18:34:00 5: DbRep DBRep_Strom_AvgPowerMinute - Daylight savings changed: 0 (on Sun Aug 14 18:49:59 2022)
2022.08.16 18:34:00 5: DbRep DBRep_Strom_AvgPowerMinute - Daylight savings changed: 0 (on Sun Aug 14 18:50:59 2022)
[...]
2022.08.16 18:34:00 5: DbRep DBRep_Strom_AvgPowerMinute - Daylight savings changed: 0 (on Mon Aug 15 18:34:59 2022)
2022.08.16 18:34:00 4: DbRep DBRep_Strom_AvgPowerMinute - Aggregation: minute
2022.08.16 18:34:00 5: DbRep DBRep_Strom_AvgPowerMinute - BlockingCall with PID "89514" started
2022.08.16 18:34:00 4: DbRep DBRep_Strom_AvgPowerMinute - Database connect - user: fh3m_DB, UTF-8 option set: yes
2022.08.16 18:34:00 4: DbRep DBRep_Strom_AvgPowerMinute - averageValue calculation sceme: avgTimeWeightMean
2022.08.16 18:34:00 5: DbRep DBRep_Strom_AvgPowerMinute - IsTimeSet: 1, IsAggrSet: 1
2022.08.16 18:34:00 5: DbRep DBRep_Strom_AvgPowerMinute - Timestamp-Array:
2022-08-14_18_33#2022-08-14 18:33:59#2022-08-14 18:34 2022-08-14_18_34#2022-08-14 18:34#2022-08-14 18:35 2022-08-14_18_35#2022-08-14 18:35#2022-08-14 18:36 2022-08-14_18_36#2022-08-14 18:36#2022-08-14 18:37 2022-08-14_18_37#2022-08-14 18:37#2022-08-14 18:38 2022-08-14_18_38#2022-08-14 18:38#2022-08-14 18:39 2022-08-14_18_39#2022-08-14 18:39#2022-08-14 18:40 2022-08-14_18_40#2022-08-14 18:40#2022-08-14 18:41 2022-08-14_18_41#2022-08-14 18:41#2022-08-14 18:42 2022-08-14_18_42#2022-08-14 18:42#2022-08-14 18:43 2022-08-14_18_43#2022-08-14 18:43#2022-08-14 18:44 2022-08-14_18_44#2022-08-14 18:44#2022-08-14 18:45 2022-08-14_18_45#2022-08-14 18:45#2022-08-14 18:46 2022-08-14_18_46#2022-08-14 18:46#2022-08-14 18:47 2022-08-14_18_47#2022-08-14 18:47#2022-08-14 18:48 2022-08-14_18_48#2022-08-14 18:48#2022-08-14 18:49 2022-08-14_18_49#2022-08-14 18:49#2022-08-14 18:50 2022-08-14_18_50#2022-08-14 18:50#2022-08-14 18:51 2022-08-14_18_51#2022-08-14 18:51#2022-08-14 18:52 2022-08-14_18_52#2022-08-14 18:52#2022-08-14 18:53 2022-08-14_18_53#2022-08-14 18:53#2022-08-14 18:54 2022-08-14_18_54#2022-08-14 18:54#2022-08-14 18:55 2022-08-14_18_55#2022-08-14 18:55#2022-08-14 18:56 2022-08-14_18_56#2022-08-14 18:56#2022-08-14 18:57 2022-08-14_18_57#2022-08-14 18:57#2022-08-14 18:58 2022-08-14_18_58#2022-08-14 18:58#2022-08-14 18:59 2022-08-14_18_59#2022-08-14 18:59#2022-08-14 19:00 2022-08-14_19_00#2022-08-14 19:00#2022-08-14 19:01 2022-08-14_19_01#2022-08-14 19:01#2022-08-14 19:02 2022-08-14_19_02#2022-08-14 19:02#2022-08-14 19:03 2022-08-14_19_03#2022-08-14 19:03#2022-08-14 19:04 2022-08-14_19_04#2022-08-14 19:04#2022-08-14 19:05 2022-08-14_19_05#2022-08-14 19:05#2022-08-14 19:06 2022-08-14_19_06#2022-08-14 19:06#2022-08-14 19:07 2022-08-14_19_07#2022-08-14 19:07#2022-08-14 19:08 2022-08-14_19_08#2022-08-14 19:08#2022-08-14 19:09 2022-08-14_19_09#2022-08-14 19:09#2022-08-14 19:10 2022-08-14_19_10#2022-08-14 19:10#2022-08-14 19:11 2022-08-14_19_11#2022-08-14 19:11#2022-08-14 19:12 2022-08-14_19_12#2022-08-14 19:12#2022-08-14 19:13 [...]
2022.08.16 18:34:00 5: DbRep DBRep_Strom_AvgPowerMinute - Devices for operation -
included (1): EM_Shelly_UG06
included with wildcard:
excluded (0):
excluded with wildcard:
2022.08.16 18:34:00 5: DbRep DBRep_Strom_AvgPowerMinute - Readings for operation -
included (1): apower
included with wildcard:
excluded (0):
excluded with wildcard:
2022.08.16 18:34:00 5: DbRep DBRep_Strom_AvgPowerMinute - Devices for operation -
included (1): EM_Shelly_UG06
included with wildcard:
excluded (0):
excluded with wildcard:
2022.08.16 18:34:00 5: DbRep DBRep_Strom_AvgPowerMinute - Readings for operation -
included (1): apower
included with wildcard:
excluded (0):
excluded with wildcard:
2022.08.16 18:34:00 2: DbRep DBRep_Strom_AvgPowerMinute -
2022.08.16 18:34:00 5: DbRep DBRep_Strom_AvgPowerMinute - BlockingCall PID "89514" finished
Mit "writeToDbSingle" scheint auch nichts in die DB geschrieben zu werden...?
Du lässt den zeitgewichteten Mittelwert berechnen (averageCalcForm = avgTimeWeightMean).
ZitatZeitgewichteter Mittelwert – Der Mittelwert gewichtet nach der Dauer, die jeder Wert hatte. Anders ausgedrückt: Zeitgewichtete Gesamtzeit / Gesamtzeit der Beobachtungen. Die zeitgewichtete Gesamtzeit ist die Summe der Werte multipliziert mit der Dauer, die jeder Wert hatte.
Das bedeutet du benötigst wegen den betrachteten Zeitscheiben "Minute" (aggregation = minute) mindestens zwei Werte pro Minute.
Ist das gegeben ?
Reicht nicht der Standard (averageCalcForm = avgArithmeticMean) ?
Grüße,
Heiko
Zitat von: DS_Starter am 16 August 2022, 20:39:45
Das bedeutet du benötigst wegen den betrachteten Zeitscheiben "Minute" (aggregation = minute) mindestens zwei Werte pro Minute.
Ist das gegeben ?
Manchmal ja, manchmal nein. Wenn der Stromverbrauch quasi gleich bleibt, gibt es nur einen Wert pro Minute. Schwankt der Verbrauch mehr, gibt es alle paar Sekunden einen Wert. D.h. mind. einen Wert pro Minute gibt es. Damit wäre (auch der zeitlich gewichtete) Durchschnitt gleich diesem Wert, oder?
Wegen der Datenmenge würde ich das gerne zurückrechnen auf Verbrauch pro Minute. Dabei ist das arithmetische Mittel deutlich weniger genau als das gewichtete. Wenn das arithmetische Mittel reichen würde, wäre reduceLog mit average das, was ich suche. Aber leider kann man da nicht einstellen, wie der Mittelwert berechnet werden soll. (Attribut averageCalcForm)
Eine andere Idee, wie ich das erreichen könnte?
Gruß!
Zitat
Wenn der Stromverbrauch quasi gleich bleibt, gibt es nur einen Wert pro Minute. Schwankt der Verbrauch mehr, gibt es alle paar Sekunden einen Wert. D.h. mind. einen Wert pro Minute gibt es. Damit wäre (auch der zeitlich gewichtete) Durchschnitt gleich diesem Wert, oder?
Nicht
einen Wert, man benötigt mindestens
zwei Werte pro Minute, weil der Faktor Zeit mit eingeht.
Wenn das gegeben ist, sollte auch ein Ergebnis für die besagte Minute herauskommen.
Wenn es nur einen Wert pro Minute gibt, dann ist dieser Wert sowohl max als auch min, sum oder average für diese Minute.
Es gibt dann nichts zu berechnen.
Richtig Sinn macht die zeitliche Gewichtung wenn es mehr als 2 Werte pro Minute (je aggregations-Scheibe) gibt, weil erst dann eine wirkliche Gewichtung über die Zeit greift.
reduceLog kann nur das einfache Mittel bestimmen.
Bessere Ideen habe ich gerade auch nicht, außer vllt. die Menge der geloggten Daten pro Minute zu erhöhen (z.B. via addLog).
Ob das zielführend ist, mußt du für dich entscheiden.
Hallo zusammen!
Ich hatte gerade möglicherweise das gleiche Problem bzw. zumindest die gleiche Auswirkung: Nach Losschicken des Befehls "set <DbRep-Device> averageValue display" wurde kein Reading mit dem Ergebnis angezeigt.
Ein Browser-Refresh nach dem Abschicken des Befehls (und ggf. warten, bis im State-Reading "done" steht) hat geholfen, steht so auch im Wiki-Eintrag für DbRep.
Ich bin durch Google auf diesen Thread gestoßen, deswegen antworte ich hier, obwohl das Thema schon etwas älter ist.
Gruß!
Ronny