Statistics Module: deltaReading gibt falsche Werte aus

Begonnen von axel.mohnen, 17 September 2014, 14:02:13

Vorheriges Thema - Nächstes Thema

axel.mohnen

Hallo Fhem'ler,

ich habe das 98_statistics Module auf meinen Stromzähler angesetzt.
Dabei möchte ich mittels "DeltaReading" den Tages/Monats/Jahresverbrauch berechnen lassen.
Als Referenzwert nutze ich das reading "Zählerstand-Bezug-Total" aus dem SMLUSB device.

Leider sind die kumulierten werden nicht korrekt. Im Anhang befindet sich ein Auzug aus dem FileLog.

Habe ich noch eine Einstellung vergessen?

XMLLIST von meinem Stromzähler (SMLUSB) und Statistics Definition:

<SMLUSB_LIST>
<SMLUSB name="eg.hw.sz.haushalt" state="W: 362.00 - Bezug" sets="" attrs="verbose:0,1,2,3,4,5 room group comment alias eventMap userReadings loglevel:0,1,2,3,4,5,6event-on-change-reading event-on- specialDeltaPeriodHours singularReadings tendencyReadings event-on-change-reading event-on-update-reading event-min-interval stateFormat custom_graph devStateIcon devStateStyle icon sortby webCmd widgetOverride">

                       <INT key="DEF" value="eg.hw.sz.haushalt"/>
                       <INT key="DEV_REGEXP" value="eg.hw.sz.haushalt"/>
                       <INT key="NAME" value="eg.hw.sz.haushalt.stat"/>
                       <INT key="NR" value="86"/>
                       <INT key="NTFY_ORDER" value="10-eg.hw.sz.haushalt.stat"/>
                       <INT key="PREFIX" value="stat"/>
                       <INT key="STATE" value="Updated stats for: eg.hw.sz.haushalt"/>
                       <INT key="TYPE" value="statistics"/>
                       <ATTR key="deltaReadings" value="Zählerstand-Bezug-Total"/>
                       <STATE key="monitoredDevicesSMLUSB" value="eg.hw.sz.haushalt" measured="2014-09-14 19:48:39"/>
                       <STATE key="nextPeriodChangeCalc" value="2014-09-16 21:59:55" measured="2014-09-16 20:59:55"/>
                       <STATE key="state" value="Updated stats for: eg.hw.sz.haushalt" measured="2014-09-16 21:04:58"/>
               </statistics>
        </statistics_LIST>


Vielen Dank im Voraus

Viele Grüsse

Axel

tupol

#1
Kannst Du bitte ein
attr global showInternalValues 1
list <device> für den Zähler und das statistik Modul
attr global showInternalValues 0
einstellen?

Ich kenne diese XML-Sache nicht.

tupol

Noch eine Idee. Es könnte auch darin liegen, das "deltaReadings" auf eine Stelle nach dem Komma gerundet werden. Habe es in 3 geändert.

axel.mohnen

Hallo Tupol,

das XMLLIST ist das gleiche wie LIST halt nur in XML Format.
Anbei habe ich Dir die List Werte angehangen:
Internals:
   CHANGED
   DEF        /dev/ttyUSB0
   DeviceName /dev/ttyUSB0
   FD         12
   NAME       eg.hw.sz.haushalt
   NR         66
   PARTIAL
   STATE      W: 2989.00 - Bezug
   TYPE       SMLUSB
   Readings:
     2014-09-30 21:39:28   Momentanleistung 2989.00
     2014-09-30 21:39:28   Zählerstand-Bezug-Total 6657.56
     2014-09-30 21:39:28   Zählerstand-Tarif-1-Bezug 6657.56
     2014-09-24 23:59:57   Zählerstand-Tarif-2-Bezug 0.03
     2014-09-30 21:31:59   statZählerstand-Bezug-Total Hour: 0.5 Day: 6.8 Month: 32.1 Year: 32.1 (since: 2014-09-25 )
     2014-09-30 20:59:55   statZählerstand-Bezug-TotalLast Hour: 0.9 Day: 10.9 Month: - Year: -
   Helper:
     PARTIAL    1B1B1B0101010176050723C7096200620072630101760101050261425909080535342D4C81650101639DA40076050723C70A6200620072630701770109080535342D4C8165070100620AFFFF7262016504FF18677B77078181C78203FF010101010449534B0177070100000009FF0101010109080535342D4C81650177070100010800FF650000018201621E52FF590000000003F7DD100177070100010801FF0101621E52FF590000000003F7DD100177070100010802FF0101621E52FF59000000000000000001770701000F0700FF0101621B52006500000B950177070100150700FF0101621B520065000000780177070100290700FF0101621B5200650000099301770701003D0700FF
     _98_statistics eg.hw.sz.haushalt.stat
Attributes:
   alias      Stromzähler Haushalt
   event-min-interval *:600
   room       HWR


Internals:
   DEF        eg.hw.sz.haushalt
   DEV_REGEXP eg.hw.sz.haushalt
   NAME       eg.hw.sz.haushalt.stat
   NR         86
   NTFY_ORDER 10-eg.hw.sz.haushalt.stat
   PREFIX     stat
   STATE      Updated stats for: eg.hw.sz.haushalt
   TYPE       statistics
   Readings:
     2014-09-28 20:26:21   monitoredDevicesSMLUSB eg.hw.sz.haushalt
     2014-09-30 20:59:55   nextPeriodChangeCalc 2014-09-30 21:59:55
     2014-09-30 21:31:59   state           Updated stats for: eg.hw.sz.haushalt
Attributes:
   deltaReadings Zählerstand-Bezug-Total


Viele Gruße

Axel

axel.mohnen

und noch einmal... ich glaube ich hatte das "attr global showInternalValues"  nicht auf 1 gesetzt ;-)

Internals:
   .lastTimeMomentanleistung 1412106525.73512
   .lastTimeZählerstand-Bezug-Total 1412106525.73512
   .lastTimeZählerstand-Tarif-1-Bezug 1412106525.73512
   .lastTimestatZählerstand-Bezug-Total 1412106525.75018
   CHANGED
   DEF        /dev/ttyUSB0
   DeviceName /dev/ttyUSB0
   FD         12
   NAME       eg.hw.sz.haushalt
   NR         66
   PARTIAL
   STATE      W: 809.00 - Bezug
   TYPE       SMLUSB
   Readings:
     2014-09-30 21:48:56   Momentanleistung 809.00
     2014-09-30 21:48:56   Zählerstand-Bezug-Total 6657.82
     2014-09-30 21:48:56   Zählerstand-Tarif-1-Bezug 6657.82
     2014-09-24 23:59:57   Zählerstand-Tarif-2-Bezug 0.03
     2014-09-30 21:48:55   statZählerstand-Bezug-Total Hour: 1.1 Day: 7.4 Month: 32.7 Year: 32.7 (since: 2014-09-25 )
     2014-09-30 20:59:55   statZählerstand-Bezug-TotalLast Hour: 0.9 Day: 10.9 Month: - Year: -
   Helper:
     PARTIAL    1B1B1B0101010176050723CC736200620072630101760101050261442709080535342D4C8165010163AB640076050723CC746200620072630701770109080535342D4C8165070100620AFFFF7262016504FF1A9F7B77078181C78203FF010101010449534B0177070100000009FF0101010109080535342D4C81650177070100010800FF650000018201621E52FF590000000003F7E6F40177070100010801FF0101621E52FF590000000003F7E6F40177070100010802FF0101621E52FF59000000000000000001770701000F0700FF0101621B520065000003210177070100150700FF0101621B5200650000007E0177070100290700FF0101621B5200650000011D01770701003D0700FF0101621B520065000001860177070100600505FF0101010165000001820177078181C78205FF0101010183023FD9892643654A1FEE5C76E83C4E25EF97EC41AF9D2599C72624E39C69F0966673E7F8C5D0D72D183B83CE710741E77D0101016318DB0076050723CC756200620072630201710163FF70001B1B1B1B1A005755
     _98_statistics eg.hw.sz.haushalt.stat
Attributes:
   alias      Stromzähler Haushalt
   event-min-interval *:600
   room       HWR


Internals:
   DEF        eg.hw.sz.haushalt
   DEV_REGEXP eg.hw.sz.haushalt
   NAME       eg.hw.sz.haushalt.stat
   NR         86
   NTFY_ORDER 10-eg.hw.sz.haushalt.stat
   PREFIX     stat
   STATE      Updated stats for: eg.hw.sz.haushalt
   TYPE       statistics
   Readings:
     2014-09-30 21:48:55   .eg.hw.sz.haushalt:Zählerstand-Bezug-Total LastValue: 6657.82 ShowDate: 4
     2014-09-30 21:48:45   monitoredDevicesSMLUSB eg.hw.sz.haushalt
     2014-09-30 21:48:55   nextPeriodChangeCalc 2014-09-30 21:59:55
     2014-09-30 21:48:55   state           Updated stats for: eg.hw.sz.haushalt
Attributes:
   deltaReadings Zählerstand-Bezug-Total

axel.mohnen

Hallo Tupol,

ich habe Dein update am Freitag eingespielt und die Statistics Werte zurückgesetzt.
Bis jetzt werden die Delta Werte korrekt berechnet.
Damit ist mein Problem gelöst.....

Nochmals vielen Dank.

Viele Güsse

Axel

tupol

Hallo Axel,

ich habe eine neue Version aufgespielt, bei der die Dezimalstellen der delta-Werte immer von den Original-Werten bestimmt werden. Bitte mal testen, ob das noch passt.
(Durch die internen Ungenauigkeiten von Perl muss leider immer gerundet werden.)

Gruß

tupol

axel.mohnen

Hallo Tupol,

ich habe am Montag das update eingespielt (siehe Auszüge aus dem Logfile). Leider sind die Werte nicht mehr so genau wie bei 3 Dezimalstellen.
Wäre es möglich die Anzahl der Dezimalstellen über ein Attribute mitzuliefern?

Seit dem Update wird im FHEM log folgende Warnung bei jeder Reading Änderung ausgegeben:
2014.10.22 18:22:21 1: PERL WARNING: Use of uninitialized value in numeric eq (==) at ./FHEM/98_statistics.pm line 973.

Auszug aus dem SMLUSB Filelog:
2014-10-20_21:46:24 eg.hw.sz.haushalt Zählerstand-Bezug-Total: 6827.73
2014-10-20_21:46:24 eg.hw.sz.haushalt Zählerstand-Tarif-1-Bezug: 6827.73
2014-10-20_21:46:24 eg.hw.sz.haushalt Momentanleistung: 239.00
2014-10-20_21:46:24 eg.hw.sz.haushalt statZählerstand-Bezug-Total: Hour: 0.21 Day: 10.30 Month: 139.80 Year: 139.80 (since: 2014-10-04 )


2014-10-22_19:42:28 eg.hw.sz.haushalt Zählerstand-Bezug-Total: 6844.39
2014-10-22_19:42:28 eg.hw.sz.haushalt Zählerstand-Tarif-1-Bezug: 6844.39
2014-10-22_19:42:28 eg.hw.sz.haushalt Momentanleistung: 276.00
2014-10-22_19:42:28 eg.hw.sz.haushalt statZählerstand-Bezug-Total: Hour: 0.43 Day: 5.97 Month: 156.46 Year: 156.46 (since: 2014-10-04 )

tupol

Hallo Axel,
Der Bug aus dem Log ist bereits gefixt.

Warum rechnet es ungenau? Deine Monats-Werte passen doch jetzt.

Gruß
tupol

axel.mohnen

Hallo Tupol,

habe das letzte update gerade eingespielt, der Bug ist gefixt!
Die Monats-Werte sind auch korrekt, man muss nur richtig rechnen ;-) Ich mache besser Feierabend.....

Merci,

Viele Grüße

Axel

Dieter1

Hallo Axel,
ich habe die gleiche Fragestellung wie du: Statistik für den hochzählenden Verbrauch eines Stromzählers. Dabei kämpfe gerade mit dem statistics Modul.
Bei dir scheint es ja zu funktionieren.
Bitte poste deine statistics und log fhem.cfg Definitionen und ggf. die entspechenden Teile der Stromzähler-Definition. Wäre sehr nett und würde mir echt helfen.

Grüsse

Dieter
FHEM V5.6 auf Raspberry Pi, HMLAN, div. Homematic Komponenten, SDM630 über Modbus/LAN/RS485

Posti123

bei mir funktioniert es so:

define Statistik_Stromverbrauch statistics HAUS.STROM
attr Statistik_Stromverbrauch singularReadings HAUS.STROM:energy:Delta:(Hour|Day|Month)
18xHM-CC-RT-DN, 5xHM-TC-IT-WM-W-EU, HMLAN, 2xJeeLink 868, 1xJeeLink433, 1xCUL868, HM-LC-Bl1PBU-FM, HM-LC-Sw2-FM, HM-LC-SW1-FM, HM-LC-Sw1PBU-FM, 5xHM-Sec-SC-2, 2xHM-Sec-SCo, HM-ES-TX-WM, HM-Sen-MDIR-O-2, HM-WDS10-TH-O, 6xTechnoline, 2x PCA301,2xHM-PB-2-WM55-2,2xHM-RC-4-2,2xHM-WDS30-T-O, HM-SEC-WDS-2

axel.mohnen

Hallo Dieter,

besser spät als nie ;-)
Hier ist meine Config:
#----------------------------------------------------------------------
# Powermeter Definition:
#----------------------------------------------------------------------
define eg.hw.sz.wp SMLUSB /dev/ttyUSB1
attr eg.hw.sz.wp alias Stromzähler Wärmepumpe
attr eg.hw.sz.wp event-min-interval *:1800
attr eg.hw.sz.wp room HWR

#----------------------------------------------------------------------
# Statistics Definition: Heating Pump Powermeter
#----------------------------------------------------------------------
define eg.hw.sz.wp.stat statistics eg.hw.sz.wp
attr eg.hw.sz.wp.stat deltaReadings Zählerstand-Bezug-Total

Gruss Axel