FHEM > Sonstiges

[gelöst] Jeden Tag: höchst tiefst mittel - in ein Log

(1/2) > >>

curt:
Hallo,

ich schaue mir gerade den bei mir gemessenen Temperaturgraphen (und Feinstaub usw.) über einen längeren Zeitraum (diesen Monat bzw. dieses Jahr) an - und sehe: Optisch unbrauchbar.

Ideal wäre, wenn ich für am Ende eines jeden Tags in ein weiteres Logfile die ermittelten Daten für Höchstwert, Tiefstwert sowie Mittelwert schreiben könnte.

Nur - wie macht man das denn? Hat das schon jemand gemacht?

Icinger:
Genau dafür gibts das statistics-Modul :)

Da bekommst du dann zB solche Daten raus:

--- Code: ---     2019-11-17 08:05:23   statTemperature Hour: 0.0 Day: 1.0 Month: 5.4 Year: 9.4
     2019-11-17 08:05:23   statTemperatureDay Min: 9.4 Avg: 9.5 Max: 10.4
     2019-11-17 08:05:23   statTemperatureDayAvg 9.5
     2019-11-16 23:59:55   statTemperatureDayAvgLast 9.7
     2019-11-16 23:59:55   statTemperatureDayLast Min: 7.9 Avg: 9.7 Max: 12.9
     2019-11-17 08:05:23   statTemperatureDayMax 10.4
     2019-11-16 23:59:55   statTemperatureDayMaxLast 12.9
     2019-11-17 08:05:23   statTemperatureDayMin 9.4
     2019-11-16 23:59:55   statTemperatureDayMinLast 7.9
     2019-11-17 08:05:23   statTemperatureHour Min: 10.4 Avg: 10.4 Max: 10.4
     2019-11-17 08:05:23   statTemperatureHourAvg 10.4
     2019-11-17 07:59:55   statTemperatureHourAvgLast 9.5
     2019-11-17 07:59:55   statTemperatureHourLast Min: 9.4 Avg: 9.5 Max: 10.4
     2019-11-17 08:05:23   statTemperatureHourMax 10.4
     2019-11-17 07:59:55   statTemperatureHourMaxLast 10.4
     2019-11-17 08:05:23   statTemperatureHourMin 10.4
     2019-11-17 07:59:55   statTemperatureHourMinLast 9.4
     2019-11-17 07:59:57   statTemperatureLast Hour: 1.0 Day: 0.4 Month: -8.1 Year: -1.3
     2019-11-17 08:05:23   statTemperatureMonth Min: -1.0 Avg: 7.0 Max: 16.3
     2019-10-31 23:59:55   statTemperatureMonthLast Min: -0.7 Avg: 10.6 Max: 22.6
     2019-11-17 08:05:23   statTemperatureYear Min: -9.8 Avg: 12.4 Max: 38.3
     2018-12-31 23:59:56   statTemperatureYearLast Min: -13.8 Avg: 11.5 Max: 34.2
--- Ende Code ---

lg, Stefan

curt:

--- Zitat von: Icinger am 17 November 2019, 08:16:10 ---Genau dafür gibts das statistics-Modul :)

--- Ende Zitat ---

Danke für den Hinweis, das wusste ich nicht: Klingt perfekt ... wenn im zuständigen Wiki_Artikel das kleinen Wörtchen "regex" nicht wäre.

Ehe ich mir dabei einen abbreche und dann doch scheitere:
Magst Du bitte zeigen, wie Du das ganz konkret mit dem Reading "temperature" bewerkstelligst?

(Eigentlich gehören solche Beispiele in https://wiki.fhem.de/wiki/Statistics - man wird ja mal träumen dürfen ...)

Hilfst Du bitte?

(Also mir ... um den Wiki-Artikel würde ich mich dann notfalls kümmern.)

Icinger:
Hier mal das komplette DEF von meinem Statistics-Modul:

--- Code: ---defmod Stat_Strom statistics Anemometer|Temp_.*|PoolController|Sonoff_POW.*|myLuftdaten|DevOPB_Temp.*
attr Stat_Strom DbLogExclude .*
attr Stat_Strom durationReadings Brenner,FilterPump,SolarPump
attr Stat_Strom excludedReadings CUL_HM_HM_SWI_3_FM_10DC29_Sw_02:state|Strom:state
attr Stat_Strom minAvgMaxReadings wind_dir,temperature,pressure,humidity,PoolTemp,SolarTemp,TecTemp,PM10,PM2.5,POWER.
attr Stat_Strom singularReadings myLuftdaten:PM.*:(Min|Max|Avg):(Hour|Day|Month|Year)|\
Strom:energy_total:(Max|Delta):(Hour|Day|Month|Year)|\
Anemometer:wind_speed:(Avg|Max):(Hour)|\
Anemometer:wind_dir:(Avg):(Hour)|\
.*:temperature:(Min|Max|Avg):(Hour|Day)|\
.*:pressure:(Max):(Hour)|\
.*:pressure:(Tendency):(1h|2h|3h|6h)|\
.*:POWER.:(Min|Max|Avg):(Hour|Day|Month|Year)
attr Stat_Strom tendencyReadings pressure,humidity

--- Ende Code ---

Das ist nicht nur für die Temps zuständig, sondern für div. andere Geräte auch.
Das wichtige kannst du dir aber sicher raussuchen :D Ist ziemlich selbsterklärend.
Bei Fragen, einfach melden.

lg, Stefan

curt:
@Icinger
Schüchtern meld ...

Es kann nicht am Wiki-Artikel liegen und auch nicht an der commandref (als neugieriger Neuling habe ich den Eindruck, dass beide von Wissenden für Wissende geschrieben wurden) - der Fehler sitzt grundsätzlich vor dem Gerät. Ich weiß. Ich habe etwas übersehen oder falsch verstanden - ich erzähle Dir mal.

Ich dachte aus Erfahrung: Wir fangen mal ganz klein an, nur eine Quelle, nur ganz wenige Optionen, nur mal sehen, was das Dingens überhaupt macht (das sparen die Artikel leider aus: Welches Ergebnis ist zu erwarten? Und vor allem: Wo?)

Ich habe eine Wetterstation, die Device heißt passenderweise Wetterstation und hat als Hintergrund ws980wifi. Dort gibt es das Reading temperature. Ich dachte in meiner Naivität, dass das doch sehr nahe meines Ziels liegt: Da höchst/tiefst/mittel pro Periode herauszufinden. Sinnvollerweise so einfach wie möglich, damit es möglichst wenige Fehlerquellen gibt:


--- Code: ---define Statistik_1 statistics Wetterstation
attr Statistik_1 room 99 System
attr Statistik_1 singularReadings .*:temperature:(Min|Max|Avg):(Hour|Day|Month|Year)

--- Ende Code ---

Hour steht übrigens drin, weil man ja auch mal sehen will, wie die Ergebnisse so aussehen. - Allein: Es gibt keine Ergebnisse. :(

Sowohl der Wiki-Artikel als auch die commandref lassen leider aus, was eigentlich das Ergebnis der Veranstaltung ist: Offenbar irgendwas mit stat*. Also suchte ich sowohl in der Device Wetterstation als auch in der Device Statistik_1 nach derartigen Readings - allein: Da sind keine.

Ok, vorsichtshalber mal ein LogFile für die Device Statistik_1 bauen:

--- Code: ---define FileLog_Statistik_1 FileLog ./log/Statistik_1-%Y.log Statistik_1
attr FileLog_Statistik_1 logtype text
attr FileLog_Statistik_1 room 99 System

--- Ende Code ---

Das ist leider leer. Orrr, ich hab verbose nicht gesetzt, das sehe ich gerade. Aber egal, das bringt jetzt nicht weiter.

Zudem "lernte" ich in den Texten auch, dass mein Konstrukt offenbar nur zusätzlich irgendwas tut. Was es aber grundsätzlich ohne dieses zusätzlich tut - das ist mir völlig schleierhaft: ich sehe nirgendwo ein Ergebnis. Und ich bin darüber sehr traurig - ich bin zu doof.

Du willst nun das list sehen:

--- Code: ---Internals:
   DEF        Wetterstation
   DEV_REGEXP Wetterstation
   FUUID      5dd2e37d-f33f-769b-c0c4-6b9db8ad6cfb65e8
   NAME       Statistik_1
   NOTIFYDEV  global,Wetterstation
   NR         1081
   NTFY_ORDER 10-Statistik_1
   PREFIX     stat
   STATE      Waiting for notifications
   TYPE       statistics
   .attraggr:
   .attrminint:
   READINGS:
     2019-11-20 02:59:55   nextPeriodChangeCalc 2019-11-20 03:59:55
   fhem:
     modulVersion $Date: 2018-03-18 19:51:57 +0100 (Sun, 18 Mar 2018) $
     nextPeriodChangeTime 1574218795
Attributes:
   room       99 System
   singularReadings .*:temperature:(Min|Max|Avg):(Hour|Day|Month|Year)

--- Ende Code ---

<seufzt>
Was mache ich denn so alles falsch? Was habe ich grundsätzlich falsch verstanden? Welche Daten habe ich zudem zu liefern?

Ich danke Dir für deine Bereitschaft zu helfen.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln