Autor Thema: DbRep - averageValue display ohne Ausgabe  (Gelesen 290 mal)

Offline Motivierte linke Hände

  • Sr. Member
  • ****
  • Beiträge: 591
DbRep - averageValue display ohne Ausgabe
« am: 16 August 2022, 18:51:16 »
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...?
« Letzte Änderung: 16 August 2022, 18:53:12 von Motivierte linke Hände »
FHEM 6.0 in einer KVM VM mit Ubuntu
HM-CFG-USB2, 2xHM-CFG-HMLAN, HM-HMUARTLGW mit 100+ HomeMatic Devices, Geofencing, Fritzbox, Unifi, HUE, Harmony-Hub, Denon-Receiver-Modul, SSCAM, Calendar, GardenaSmartDevice, homebridge-fhem, Shelly und ein wenig 1Wire.

Offline DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 8421
Antw:DbRep - averageValue display ohne Ausgabe
« Antwort #1 am: 16 August 2022, 20:39:45 »
Du lässt den zeitgewichteten Mittelwert berechnen (averageCalcForm  = avgTimeWeightMean).


Zitat
Zeitgewichteter 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
« Letzte Änderung: 16 August 2022, 20:44:05 von DS_Starter »
ESXi 6.5 @NUC6i5SYH mit FHEM auf Debian 10, DbLog/DbRep mit MariaDB auf VM
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Offline Motivierte linke Hände

  • Sr. Member
  • ****
  • Beiträge: 591
Antw:DbRep - averageValue display ohne Ausgabe
« Antwort #2 am: 16 August 2022, 21:58:43 »
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ß!
FHEM 6.0 in einer KVM VM mit Ubuntu
HM-CFG-USB2, 2xHM-CFG-HMLAN, HM-HMUARTLGW mit 100+ HomeMatic Devices, Geofencing, Fritzbox, Unifi, HUE, Harmony-Hub, Denon-Receiver-Modul, SSCAM, Calendar, GardenaSmartDevice, homebridge-fhem, Shelly und ein wenig 1Wire.

Offline DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 8421
Antw:DbRep - averageValue display ohne Ausgabe
« Antwort #3 am: 16 August 2022, 22:10:46 »
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.
ESXi 6.5 @NUC6i5SYH mit FHEM auf Debian 10, DbLog/DbRep mit MariaDB auf VM
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter