"Statistics Modul" Welche Geräte werden unterstützt?

Begonnen von PowderK, 19 Mai 2014, 21:41:33

Vorheriges Thema - Nächstes Thema

cwagner

#75
1. Versuchte, das Prefix mit attr <MeinModulname> Prefix stat_ zu ändern, weil ich dann einfacher Readings von 98_statistics zum Beispiel vom state-Reading unterscheiden kann: Offenbar ist das setzen dieses Attributes aber entgegen der commandref nicht implementiert.

2. Zur Codeänderung von gestern Abend: Benutze ich diese mit der Definition:
Internals:
   CFGFN
   DEF        Wetterstation|CC.[^(t)]*?|TF.*|T_.*|SW_.*
   DEV_REGEXP Wetterstation|CC.[^(t)]*?|TF.*|T_.*|SW_.*
   NAME       Statistik
   NR         745
   NTFY_ORDER 10-Statistik
   PREFIX     stat
   STATE      Updated stats for: T_Heizung
   TYPE       statistics
   Readings:
     2014-12-06 23:30:24   monitoredDevicesCUL_HM CC_Bad_EG,CC_Wohnzimmer,CC_Bad_OG,CC_Jula,CC_Kueche,CC_Schlafzimmer,CC_Suedzimmer,SW_01_Ruecklaufanhebung,SW_02_WW_Pumpe,SW_03_Heizpumpe,SW_04_FBH_Pumpe,TF_Waschkueche,T_Galerie_Fussboden,Wetterstation
     2014-12-06 23:30:22   monitoredDevicesOWMULTI TF_Galerie
     2014-12-06 23:30:24   monitoredDevicesOWTHERM T_Heizung,T_Ruecklauf,T_Ruecklauf_Anhebung,T_Vorlauf_FBH,T_Warmwasser
     2014-12-06 23:30:21   monitoredDevicesUnsupported CC_Bad_EG_WindowRec#CUL_HM,CC_Bad_OG_WindowRec#CUL_HM,CC_Jula_WindowRec#CUL_HM,CC_Kueche_WindowRec#CUL_HM,CC_Schlafzimmer_WindowRec#CUL_HM,CC_Suedzimmer_WindowRec#CUL_HM,CC_Wohnzimmer_WindowRec#CUL_HM
     2014-12-07 06:59:55   nextPeriodChangeCalc 2014-12-07 07:59:55
     2014-12-07 07:29:44   state           Updated stats for: T_Heizung
   Fhem:
     modulVersion $Date: 2014-12-06 19:54:39 +0000 (Sat, 06 Dec 2014) $
Attributes:
   minAvgMaxReadings measured-temp
   room       _house
   tendencyReadings Rel_Luftdruck


werden nur die Readings brightness und humidity ausgelesen/aktualisiert. Habe dann sämtlich stat.*-Readings mit deleteReadings entfernt und mit gelöschter fhem.save neu gestartet. Auch nach vielen Stunden wurden keine temperature, windSpeed Readings gelesen. Wiederum nur brightness und humidity - keine Tendenz von Rel_Luftdruck!

Heute morgen habe ich nach derselben Vorbereitung wieder die Version vom 1.12. eingespielt und alle gewünschten Readings klappen.

3. An anderer Stelle wurde ja bereits die Überschneidung mit HourCounter angesprochen. Statistics kann dabei (fast) alles, außer die Zahl der Ein-/Ausschaltvorgänge zu zählen. Es macht ja einen Unterscheid, ob der Brenner einer Heizung am Tag 100mal 1 Minute läuft und 100mal 10 Minuten auskühlt, oder 2 * 50 Minuten läuft... Also: Ich könnte mir noch einen Statistiktyp "Count" vorstellen, der schlicht die Zahl der ON- und der OFF-Events [0|1, an|aus] zählt.

Viele Grüße
Christian

Grüße
Christian
PI 2B+/5 Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

tupol

1. ??? steht so aber nicht in der commandref 
2. Danke. Habe die alte Version wieder eingestellt.
3. Gute Idee. Werde mal drüber nachdenken.
Gruß
tupol

cwagner

zu 1. Richtig, lesen bringt den Vorteil, es ist eine Ergänzung der Definition - hab' gelernt. Und es funktiont! Danke schön.
PI 2B+/5 Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

cwagner

Wenn ich zu unterschiedlichen Tageswechselzeiten Statistiken schreiben will, dann muss ich mehrere statistics-Devices definieren, schriebst Du in einem früheren Thread. Exkludiere ich z.B. Statistik1 [Tageswechsel Standard um 0:00) das Reading rain in meiner Wetterstation und definiere ich dies als singularReading in Statistik2 (Tageswechsel 6.50 Uhr), dann erhalte ich diese Fehlermeldung:

2014.12.07 18:57:34 3: statistics Statistik2: DoStatistics.386 Device 'Wetterstation' identified as supported but already servered by 'Statistik'.


Die macht ja Sinn als Warnung, aber ist es zwingend notwendig damit die Nutzung des Moduls statistics auf ein und dasselbe Device zu verhindern? Ich muss jetzt mit einem Dummy und einem Notify das Reading "kopieren"...
PI 2B+/5 Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

tupol

Habe eine neue Version aufgespielt. Sollte Deine Konfiguration ermöglichen, wenn Du das Prefix änderst.

Außerdem kommt ermöglicht die neue Version die vordefinierte Zuordnung von Readings zu Statistiktype zu ändern. D.h. sie kommt auch mit Doppeldeklarierungen zurecht.

Gruß

tupol

cwagner

#80
Hi tupol,

hatte ich gestern schon im Repository gesehen und ausprobiert. Dabei hatte ich aber einiges Durcheinander und wollte dies verifzieren und bin erstmal zur alten Version zurück. Heute Abend habe ich es noch einmal probiert:

Tatsächlich kann ich mit anderem Prefix über dasselbe Device noch einmal ein statistics-Device definieren. ABER: das zweite Device gräbt bei mir nur den State der Wetterstation ab, obwohl das Reading, auf das es schauen soll, definitiv existiert. Konsequenterweise hagelt es im fhem.log auch Fehlermeldung, da der State der Wetterstation so'n Konglomerat ist.

Fehlermeldung in fhem.log:
2014.12.10 22:16:59 1: PERL WARNING: Argument "WDR:" isn't numeric in numeric gt (>) at ./FHEM/98_statistics.pm line 971.
2014.12.10 22:16:59 1: PERL WARNING: Argument "B:" isn't numeric in numeric gt (>) at ./FHEM/98_statistics.pm line 971.
2014.12.10 22:16:59 1: PERL WARNING: Argument "IR:" isn't numeric in numeric gt (>) at ./FHEM/98_statistics.pm line 971.
2014.12.10 22:16:59 1: PERL WARNING: Argument "WD:" isn't numeric in numeric gt (>) at ./FHEM/98_statistics.pm line 971.
2014.12.10 22:16:59 1: PERL WARNING: Argument "S:" isn't numeric in numeric gt (>) at ./FHEM/98_statistics.pm line 971.
2014.12.10 22:16:59 1: PERL WARNING: Argument "R:" isn't numeric in numeric gt (>) at ./FHEM/98_statistics.pm line 971.
2014.12.10 22:16:59 1: PERL WARNING: Argument "W:" isn't numeric in numeric gt (>) at ./FHEM/98_statistics.pm line 971.


Listing der Wetterstation:
Internals:
   CFGFN      ./FHEM/wetter.cfg
   CHANGED
   CUL_0_MSGCNT 18
   CUL_0_RAWMSG A13F486701DBB9A000000002A551545C04F41C109::-76.5:CUL_0
   CUL_0_RSSI -76.5
   CUL_0_TIME 2014-12-10 22:49:51
   DEF        1DBB9A
   IODev      CUL_0
   LASTInputDev CUL_0
   MSGCNT     18
   NAME       Wetterstation
   NR         543
   STATE      T: 4.2 H: 85 W: 7.9 R: 1606.275 IR: 0 WD: 325 WDR: 67.5 S: 193 B: 9
   TYPE       CUL_HM
   lastMsg    No:F4 - t:70 s:1DBB9A d:000000 002A551545C04F41C109
   protLastRcv 2014-12-10 22:49:51
   rssi_at_CUL_0 avg:-74.72 min:-76.5 max:-73 lst:-76.5 cnt:18
   Readings:
     2014-12-10 22:13:08   Activity        alive
     2014-12-07 16:56:18   D-firmware      1.3
     2014-12-07 16:56:18   D-serialNr      JEQ0532158
     2014-12-10 22:51:30   Rel_Luftdruck   1013
     2014-12-10 22:51:30   Sonnenstunden   31.4172222222222
     2014-12-10 22:45:32   Taupunkt        1.9
     2014-12-10 22:51:30   Wind_Bft        1
     2014-12-10 22:49:51   Windchill       2.2
     2014-12-10 22:49:51   brightness      9
     2014-12-10 22:51:30   calcRegen       1368.2
     2014-12-10 22:49:51   humidity        85
     2014-12-10 22:49:51   isRaining       0
     2014-12-10 22:49:51   rain            1606.275
     2014-12-10 06:50:02   rain_last_day   0
     2014-12-10 22:50:59   stat2_StateDay  1606.275 00:00:00 193 00:00:00 T:: 00:07:00 67.5 00:00:00 125 00:00:00 4.1 00:00:00 6.7 00:00:00 4.2 00:00:00 0 00:00:00 275 00:00:00 325 00:00:00 85 00:00:00 9.1 00:00:00 9 00:00:00 7.9 00:00:00 270 00:00:00 (since: 2014-12-10_22:43:59)
     2014-12-10 22:50:59   stat2_StateMonth 1606.275 00:00:00 193 00:00:00 T:: 00:07:00 67.5 00:00:00 125 00:00:00 4.1 00:00:00 6.7 00:00:00 4.2 00:00:00 0 00:00:00 275 00:00:00 325 00:00:00 85 00:00:00 9.1 00:00:00 9 00:00:00 7.9 00:00:00 270 00:00:00 (since: 2014-12-10_22:43:59)
     2014-12-10 22:50:59   stat_HumidityDay Min: 0 Avg: 90 Max: 97 (since:  )
     2014-12-10 22:50:59   stat_HumidityMonth Min: 0 Avg: 90 Max: 97 (since:  )
     2014-12-10 22:50:59   stat_HumidityYear Min: 0 Avg: 90 Max: 97 (since:  )
     2014-12-10 21:59:56   stat_Rel_LuftdruckTendency 1h: +1.0 2h: +0.0 3h: -1.0 6h: -1.0
     2014-12-10 22:50:59   stat_TemperatureDay Min: 0.0 Avg: 4.7 Max: 7.0 (since:  )
     2014-12-10 22:50:59   stat_TemperatureMonth Min: 0.0 Avg: 4.7 Max: 7.0 (since:  )
     2014-12-10 22:50:59   stat_TemperatureYear Min: 0.0 Avg: 4.7 Max: 7.0 (since:  )
     2014-12-10 21:59:56   stat_WindSpeedDay Min: 1 Avg: 6 Max: 11 (since: 2014-12-10_20:55:33 )
     2014-12-10 21:59:56   stat_WindSpeedHour Min: 3.6 Avg: 3.6 Max: 3.6
     2014-12-10 21:59:56   stat_WindSpeedHourLast Min: 2 Avg: 6 Max: 11
     2014-12-10 21:59:56   stat_WindSpeedMonth Min: 1 Avg: 6 Max: 11 (since: 2014-12-10_20:55:33 )
     2014-12-10 21:59:56   stat_WindSpeedYear Min: 1 Avg: 6 Max: 11 (since: 2014-12-10_20:55:33 )
     2014-12-10 22:49:51   state           T: 4.2 H: 85 W: 7.9 R: 1606.275 IR: 0 WD: 325 WDR: 67.5 S: 193 B: 9
     2014-12-10 22:49:51   sunshine        193
     2014-12-10 22:49:51   temperature     4.2
     2014-12-10 22:49:51   windDirRange    67.5
     2014-12-10 22:49:51   windDirection   325
     2014-12-10 22:49:51   windSpeed       7.9
   Helper:
     _98_statistics Statistik2
     mId        0040
...


Listing von Statistik (soll temperature, humidity, windSpeed und den Relative Luftdruck auswerten)
Internals:
   DEF        Wetterstation|SW_.*|Switch_Heizkeller stat_
   DEV_REGEXP Wetterstation|SW_.*|Switch_Heizkeller
   NAME       Statistik
   NR         729
   NTFY_ORDER 10-Statistik
   PREFIX     stat_
   STATE      Updated stats for: Wetterstation
   TYPE       statistics
   Readings:
     2014-12-10 22:13:10   monitoredDevicesCUL_HM SW_01_Ruecklaufanhebung,SW_02_WW_Pumpe,SW_03_Heizpumpe,SW_04_FBH_Pumpe,Wetterstation
     2014-12-10 22:13:09   monitoredDevicesOWSWITCH Switch_Heizkeller
     2014-12-10 22:13:09   nextPeriodChangeCalc 2014-12-10 22:59:55
     2014-12-10 22:55:20   state           Updated stats for: Wetterstation
   Fhem:
     modulVersion $Date: 2014-12-09 19:37:31 +0100 (Tue, 09 Dec 2014) $
Attributes:
   durationReadings Brenner,Mischer_weniger,Mischer_mehr,Waschkueche,EWT
   excludedReadings Wetterstation:rain.*|Wetterstation:brightness|Wetterstation:windSpeed
   minAvgMaxReadings measured-temp
   room       _house
   tendencyReadings Rel_Luftdruck 

Statistik2 (soll eben obiges NICHT und ausschließlich calcRegen auswerten:
Internals:
   DEF        Wetterstation stat2_
   DEV_REGEXP Wetterstation
   NAME       Statistik2
   NR         731
   NTFY_ORDER 10-Statistik2
   PREFIX     stat2_
   STATE      Updated stats for: Wetterstation
   TYPE       statistics
   Readings:
     2014-12-10 22:43:59   monitoredDevicesCUL_HM Wetterstation
     2014-12-10 22:54:30   state           Updated stats for: Wetterstation
   Fhem:
     modulVersion $Date: 2014-12-09 19:37:31 +0100 (Tue, 09 Dec 2014) $
Attributes:
   dayChangeTime 06:50
   deltaReadings calcRegen
   excludedReadings Wetterstation:brightness|Wetterstation:humidity|Wetterstation:temperature|Wetterstation:rel_Luftdruck|Wetterstation:windSpeed|Wetterstation:rain|Wetterstation:state
   room       _house



Auch beim Switch_Heizkeller habe ich mit dieser Version plötzlich eine Statistik über das State dieses Devices mit 8 Schaltern, entsprechend gibt es auch hier vergleichbare Fehlermeldungen, weil der State nicht numerisch ist.
Die Aktivitäten der Schalter werden mit dieser Version nicht gelogt - vermutlich, weil er sie nicht als on/off-Devices erkennt.

Ich geh' jetzt erstmal wieder zurück zur Version 7113.

Danke Christian
PI 2B+/5 Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

tupol

Danke für die Rückmeldung. Sollte jetzt laufen. Am besten mal im Log mit Modul-verbose 5 zuschauen

cwagner

Das klappt jetzt. Danke für den Bugfix

Nun fallen aber zwei weitere Sachen auf:
1. Für meine Regenmessung habe ich 06:50 als Tageswechselzeit eingegeben. Dann müsste also der aufgelaufene Regen (davon gibt's aktuell viel) von stat2_CalcRegen nach stat2_CalcRegenLast Übertragen werden. Das scheint aber um 6:59 Uhr zu passieren. Und im Log habe ich passend dazu eine Fehlermeldung:
2014.12.12 06:59:55 1: PERL WARNING: Use of uninitialized value $last[9] in concatenation (.) or string at ./FHEM/98_statistics.pm line 767.

2. Die Tageswertübertragung für die gesammelten Einschaltdauern geht etwas schief: Wenn der Schalter den ganzen Tag OFF-Zeit war, dann wird nach Last nur eine OFF-Zeit von 0:00:00 übertragen.

Herzliche Grüße
Christian
PI 2B+/5 Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

tupol

Für 1. habe ich gerade ein update hochgespielt. Bitte testen

cwagner

#84
Eingespielt gestern 22.19 Uhr - Neustart von FHEM. Dennoch heute morgen um 6.59 Daychange.

Internals:
   DEF        Wetterstation stat2_
   DEV_REGEXP Wetterstation
   NAME       Statistik2
   NR         731
   NTFY_ORDER 10-Statistik2
   PREFIX     stat2_
   STATE      Updated stats for: Wetterstation
   TYPE       statistics
   Readings:
     2014-12-16 22:19:27   monitoredDevicesCUL_HM Wetterstation
     2014-12-17 06:59:55   nextPeriodChangeCalc 2014-12-17 07:59:55
     2014-12-17 07:34:50   state           Updated stats for: Wetterstation
   Fhem:
     modulVersion $Date: 2014-12-16 19:37:55 +0100 (Tue, 16 Dec 2014) $
Attributes:
   dayChangeTime 06:50
   deltaReadings calcRegen
   excludedReadings Wetterstation:brightness|Wetterstation:humidity|Wetterstation:temperature|Wetterstation:rel_Luftdruck|Wetterstation:windSpeed|Wetterstation:rain|Wetterstation:state
   room       _house


Nr.2 (ChangeDaylast bei Duration) ist aber gelöst - ich habe jetzt stimmige "Last"-Werte.
PI 2B+/5 Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

tupol

Das ist der Stundenwechsel. Der Tageswechsel sollte um 6:50 stattgefunden haben. Läßt sich mit modul-verbose 4 kontrollieren.

cwagner

Perfekt. Genau so ist es:

Internals:
   DEF        Wetterstation stat2_
   Readings:
     2014-12-17 21:35:32   monitoredDevicesCUL_HM Wetterstation
     2014-12-18 05:59:55   nextPeriodChangeCalc 2014-12-18 06:49:55 (Day Change)
     2014-12-18 06:34:59   state           Updated stats for: Wetterstation
   Fhem:
     modulVersion $Date: 2014-12-16 19:37:55 +0100 (Tue, 16 Dec 2014) $
Attributes:
   dayChangeTime 06:50
   deltaReadings calcRegen
   excludedReadings Wetterstation:brightness|Wetterstation:humidity|Wetterstation:temperature|Wetterstation:rel_Luftdruck|Wetterstation:windSpeed|Wetterstation:rain|Wetterstation:state
   room       _house
   verbose    4


Danke fürs Fixing!
PI 2B+/5 Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

tupol

Deine Konfiguration wird jetzt durch eine neues Attribut erleichtert: ignoreDefaultAssignments

cwagner

das ist eine sehr gute Idee - freu mich und bin es schon am ausprobieren. Sieht gut aus.
PI 2B+/5 Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

tupol

Zitat von: cwagner am 07 Dezember 2014, 08:28:47
3. An anderer Stelle wurde ja bereits die Überschneidung mit HourCounter angesprochen. Statistics kann dabei (fast) alles, außer die Zahl der Ein-/Ausschaltvorgänge zu zählen. Es macht ja einen Unterscheid, ob der Brenner einer Heizung am Tag 100mal 1 Minute läuft und 100mal 10 Minuten auskühlt, oder 2 * 50 Minuten läuft... Also: Ich könnte mir noch einen Statistiktyp "Count" vorstellen, der schlicht die Zahl der ON- und der OFF-Events [0|1, an|aus] zählt.
Habe gerade ein Update hochgespielt. Bei Duration-Readings sollten jetzt auch die Anzahl als state_Count angezeigt werden. Wie üblich lassen sie sich per singleReading auskoppeln.

Bitte testen.

PS: Was statistics nicht kann bzw. können will, ist die Integralfunktionen von HourCounter ersetzen.