Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt

Begonnen von John, 08 April 2013, 22:11:55

Vorheriges Thema - Nächstes Thema

Depechem

Zitat von: pappn am 14 Februar 2018, 09:40:30
Schau mal bei readingsgroup bzw. readingshistory. Das sollte dir helfen.

Gesendet von meinem HUAWEI VNS-L31 mit Tapatalk



Readingsgroup und readingshistory ist doch nur ein Anzeigemodul oder!?
Ich benötige erst einmal die monatlichen Daten. Und wie geschrieben nicht nur Monat & Vormonat sondern für jeden Monat
RaspberryPi2 / FHEM / 3 Wand-Tablets mit Tablet UI / HM USB / verschiedene HM-Aktoren / JeeLink USB für WS1600 und mehrere LaCrosse Sensoren / HEOS ...

pappn

Dann richte dir zunächst erst mal 99_UtilsHourCounter wie im Wiki beschrieben ein. https://wiki.fhem.de/wiki/HourCounter
Das liefert dir dann appCountsPerDay, appCountsPerMonth und appCountsPerYear. Damit hast du dann alle Tages, Monats und Jahreswerte im Log und kannst sie mit Readingshistory tabellarisch oder graphisch als SVG darstellen.

Gesendet von meinem SM-T580 mit Tapatalk

"When all else fails, read the instructions."

CUL868, RFXTFX433 und CCU3
FS20, S300TH, UNIRoll, Homematic IP, OZW672, diverse HOMEEASY, IT kompatible und China Zeugs

Depechem

#542
Zitat von: pappn am 14 Februar 2018, 16:19:56
Dann richte dir zunächst erst mal 99_UtilsHourCounter wie im Wiki beschrieben ein. https://wiki.fhem.de/wiki/HourCounter
Das liefert dir dann appCountsPerDay, appCountsPerMonth und appCountsPerYear. Damit hast du dann alle Tages, Monats und Jahreswerte im Log und kannst sie mit Readingshistory tabellarisch oder graphisch als SVG darstellen.

Gesendet von meinem SM-T580 mit Tapatalk



Das gleiche funktioniert doch mit dem Statistik Modul, oder?
Dann hab ich die aktuellen Tages, Monats und Jahreswerte im log. Aber nicht die Werte für jeden Monat, Jahr zugeordnet geloggt?
Aber kann ich die dann auf den jeweiligen Monat in der readingshistory darstellen?
Also wie soll das dann funktionieren das dort der Wert für Januar, Februar, März... richtig zugeordnet wird?!
Entweder wir reden aneinander vorbei oder ich verstehe es nicht.

Vielen Dank im Voraus
RaspberryPi2 / FHEM / 3 Wand-Tablets mit Tablet UI / HM USB / verschiedene HM-Aktoren / JeeLink USB für WS1600 und mehrere LaCrosse Sensoren / HEOS ...

pappn

Zitat von: Depechem am 14 Februar 2018, 16:42:55
Das gleiche funktioniert doch mit dem Statistik Modul, oder?
Dann hab ich die aktuellen Tages, Monats und Jahreswerte im log. Aber nicht die Werte für jeden Monat, Jahr zugeordnet geloggt?
Aber kann ich die dann auf den jeweiligen Monat in der readingshistory darstellen?
Also wie soll das dann funktionieren das dort der Wert für Januar, Februar, März... richtig zugeordnet wird?!
Entweder wir reden aneinander vorbei oder ich verstehe es nicht.

Vielen Dank im Voraus
Die aktuellen Werte sind z.B. appCountsPerDayTemp für den laufenden Tag. Für jeden Tag bekommst du einen Eintrag (Reading) als appCountsPerDay also 365 pro Jahr, die du dann entsprechen anzeigen oder auswerten kannst. Siehe Anhang.

Das gleiche gilt für Monat (appCountsPerMonthTemp für den laufenden Monat, ein Eintrag appCountsPerMonth pro Monat) und Jahr analog.


Gesendet von meinem SM-T580 mit Tapatalk

"When all else fails, read the instructions."

CUL868, RFXTFX433 und CCU3
FS20, S300TH, UNIRoll, Homematic IP, OZW672, diverse HOMEEASY, IT kompatible und China Zeugs

Depechem

Zitat von: pappn am 14 Februar 2018, 17:53:43
Die aktuellen Werte sind z.B. appCountsPerDayTemp für den laufenden Tag. Für jeden Tag bekommst du einen Eintrag (Reading) als appCountsPerDay also 365 pro Jahr, die du dann entsprechen anzeigen oder auswerten kannst. Siehe Anhang.

Das gleiche gilt für Monat (appCountsPerMonthTemp für den laufenden Monat, ein Eintrag appCountsPerMonth pro Monat) und Jahr analog.


Gesendet von meinem SM-T580 mit Tapatalk



Soll heißen in 365 Tagen habe ich
365 neue appCountsPerDay Readings untereinander im HourCounter?
RaspberryPi2 / FHEM / 3 Wand-Tablets mit Tablet UI / HM USB / verschiedene HM-Aktoren / JeeLink USB für WS1600 und mehrere LaCrosse Sensoren / HEOS ...

Depechem

Zitat von: Depechem am 14 Februar 2018, 19:57:46
Soll heißen in 365 Tagen habe ich
365 neue appCountsPerDay Readings untereinander im HourCounter? Oder meinst du damit das in diesem Reading täglich die neuen Werte kommen?
RaspberryPi2 / FHEM / 3 Wand-Tablets mit Tablet UI / HM USB / verschiedene HM-Aktoren / JeeLink USB für WS1600 und mehrere LaCrosse Sensoren / HEOS ...

pappn

In diesem Reading stehen täglich die Werte des vergangenen Tages. Die Werte Der davor liegenden Tage sind im LogFile gespeichert.

Anbei ein Beispiel aus meinem LogFile mit den Operating Hours, da ich keine Counts logge.

2018-01-07_00:00:01 BrennerTest2 appOpHoursPerDay: 0.912222222222222
.
.
2018-01-08_00:00:01 BrennerTest2 appOpHoursPerDay: 3.22055555555556
.
.
2018-01-09_00:00:00 BrennerTest2 appOpHoursPerDay: 2.64527777777778


Gesendet von meinem SM-T580 mit Tapatalk
"When all else fails, read the instructions."

CUL868, RFXTFX433 und CCU3
FS20, S300TH, UNIRoll, Homematic IP, OZW672, diverse HOMEEASY, IT kompatible und China Zeugs

Depechem

#547
Zitat von: pappn am 14 Februar 2018, 21:41:45
In diesem Reading stehen täglich die Werte des vergangenen Tages. Die Werte Der davor liegenden Tage sind im LogFile gespeichert.

Anbei ein Beispiel aus meinem LogFile mit den Operating Hours, da ich keine Counts logge.

2018-01-07_00:00:01 BrennerTest2 appOpHoursPerDay: 0.912222222222222
.
.
2018-01-08_00:00:01 BrennerTest2 appOpHoursPerDay: 3.22055555555556
.
.
2018-01-09_00:00:00 BrennerTest2 appOpHoursPerDay: 2.64527777777778


Gesendet von meinem SM-T580 mit Tapatalk


Ok, das habe ich nun verstanden und war mir eigentlich auch soweit klar.
Meine eigentliche Frage war ja wie ich die Daten aus dem Logfile in eine Readingshistory, Dummy oder sonst irgendwie bekomme wo dann folgendes zu finden ist.
ZitatGasverbrauch
Januar 2017 = 778m3
Februar 2017 = 666m3
März 2017...
...

Jahr 2016 = 1111m3
Jahr 2017 = 2222m3

Ich möchte eben in FHEM eine Art Liste oder Tabelle auf der, auf dem ersten Blick sichtbar ist, wie viel Gas ich in welchem Monat oder Jahr verbraucht habe und man sofort vergleichen kann wie der Vorjahresverbrauch im gleiche Monat war.
Dies ist doch eigentlich der Sinn des ganzen Mitschneidens der Gasuhr. Ich möchte es vergleichen können
RaspberryPi2 / FHEM / 3 Wand-Tablets mit Tablet UI / HM USB / verschiedene HM-Aktoren / JeeLink USB für WS1600 und mehrere LaCrosse Sensoren / HEOS ...

pappn

Zitat von: Depechem am 14 Februar 2018, 22:41:30
Ok, das habe ich nun verstanden und war mir eigentlich auch soweit klar.
Meine eigentliche Frage war ja wie ich die Daten aus dem Logfile in eine Readingshistory, Dummy oder sonst irgendwie bekomme wo dann folgendes zu finden ist.
Ich möchte eben in FHEM eine Art Liste oder Tabelle auf der, auf dem ersten Blick sichtbar ist, wie viel Gas ich in welchem Monat oder Jahr verbraucht habe und man sofort vergleichen kann wie der Vorjahresverbrauch im gleiche Monat war.
Dies ist doch eigentlich der Sinn des ganzen Mitschneidens der Gasuhr. Ich möchte es vergleichen können
Genau! Das sollte sich mit einer Kombination aus Readingshistory und readingsgroup bewerkstelligen lassen.
Dazu muss ich dich aber auf die Command Ref und WIKI verweisen. Ich habe mit Readingshistory noch nicht gearbeitet.
Ob und wie das graphisch mit SVG im Monatsvergleich über mehrere Jahre gehen könnte, kann ich auch nicht sagen. Hier gilt auch Command Ref oder ggf. WIKI lesen.

Gesendet von meinem SM-T580 mit Tapatalk
"When all else fails, read the instructions."

CUL868, RFXTFX433 und CCU3
FS20, S300TH, UNIRoll, Homematic IP, OZW672, diverse HOMEEASY, IT kompatible und China Zeugs

Depechem

#549
Noch eine andere Frage.

wie und wo müsste ich etwas an der "99_UtilsHourCounter.pm" oder wo auch immer ändern das mir die readings

appCountsPerHourTemp
appCountsPerMonthTemp
appCountsPerWeekTemp
appCountsPerYearTemp


keine ganzen Zahlen sondern *0,01 geloggt werden.
Also jeder Count sind bei mir 0,01m³
Nun wird in meiner Logdatei leider keine m³ ausgegeben sondern mit falscher Kommastelle. Also statt 0,50m³ wird 50 angezeigt.
Mit Userreadings könnte ich neue Readings für alle bauen
Tagesverbrauch {sprintf (ReadingsVal("$name","countsPerDay",0)*0.01)}countsPerDay",0)

das müsste ich dann aber für viele Readings machen und es würden dann viele Readings doppelt drin stehen.
Daher dachte ich, kann man es direkt ändern!?

Vielen Dank im voraus
RaspberryPi2 / FHEM / 3 Wand-Tablets mit Tablet UI / HM USB / verschiedene HM-Aktoren / JeeLink USB für WS1600 und mehrere LaCrosse Sensoren / HEOS ...

pappn

Deswegen ja Readingshistory um die Werte aus dem Log zu holen und ReadingsGroup zur Darstellung.

Wenn die Readingsgroup definiert ist, kannst du mit einer Zeile
attr xxxx valueformat {sprintf("%.2f m³",$VALUE*0.01)}
alle Readings berechnen und formatieren. Ich mache genau das Gleiche, wenn ich für die Darstellung appOpHours* in Liter umrechne.

Dazu gibt es etliche Beispiele in der Command Ref, dem Wiki und im Forum.
Was hast du denn dazu bisher gelesen?

Gesendet von meinem SM-T580 mit Tapatalk
"When all else fails, read the instructions."

CUL868, RFXTFX433 und CCU3
FS20, S300TH, UNIRoll, Homematic IP, OZW672, diverse HOMEEASY, IT kompatible und China Zeugs

Depechem

Zitat von: pappn am 14 Februar 2018, 21:41:45
In diesem Reading stehen täglich die Werte des vergangenen Tages. Die Werte Der davor liegenden Tage sind im LogFile gespeichert.

Anbei ein Beispiel aus meinem LogFile mit den Operating Hours, da ich keine Counts logge.

2018-01-07_00:00:01 BrennerTest2 appOpHoursPerDay: 0.912222222222222
.
.
2018-01-08_00:00:01 BrennerTest2 appOpHoursPerDay: 3.22055555555556
.
.
2018-01-09_00:00:00 BrennerTest2 appOpHoursPerDay: 2.64527777777778


Gesendet von meinem SM-T580 mit Tapatalk

Hallo pappn,
ein SVG mit Balkendiagramm habe ich nun hinbekommen.
Dazu aber folgendes.
Im Filelog wird um 0 Uhr das Reading "appCountsPerDay" mit 9.84 m³ geschrieben.

2018-02-14_00:00:19 CN.Gasverbrauch appCountsPerDay: 9.84

Das bedeutet ja das am 13.02.18 von 0 Uhr bis 23.59 Uhr 9.84 m³ geloggt wurden!? Richtig oder?

Nun wird durch den Filelog Eintrag der Gasverbrauch des Tages aber im SVG der Tagesverbrauch für den 14.02.18 angenommen. Weil Datum des loggs ja der 14.02.18 ist.
Siehe Bild im Anhang sind die Balkendiagramme nun im falschen Tag.
Wo muss ich ansetzen um dies korrekt anzeigen zu können.

Gruß Thomas


RaspberryPi2 / FHEM / 3 Wand-Tablets mit Tablet UI / HM USB / verschiedene HM-Aktoren / JeeLink USB für WS1600 und mehrere LaCrosse Sensoren / HEOS ...

pappn

Zitat von: Depechem am 15 Februar 2018, 11:15:36
Hallo pappn,
ein SVG mit Balkendiagramm habe ich nun hinbekommen.
Dazu aber folgendes.
Im Filelog wird um 0 Uhr das Reading "appCountsPerDay" mit 9.84 m³ geschrieben.

2018-02-14_00:00:19 CN.Gasverbrauch appCountsPerDay: 9.84

Das bedeutet ja das am 13.02.18 von 0 Uhr bis 23.59 Uhr 9.84 m³ geloggt wurden!? Richtig oder?

Nun wird durch den Filelog Eintrag der Gasverbrauch des Tages aber im SVG der Tagesverbrauch für den 14.02.18 angenommen. Weil Datum des loggs ja der 14.02.18 ist.
Siehe Bild im Anhang sind die Balkendiagramme nun im falschen Tag.
Wo muss ich ansetzen um dies korrekt anzeigen zu können.

Gruß Thomas
Klar, der Wert kann ja erst gelogged werden, wenn der Tag rum ist. Für die korrekte Darstellung solltest du dir logProxy ansehen. Damit kannst du die Darstellung auf den richtigem Tag rücken.

Gesendet von meinem SM-T580 mit Tapatalk

"When all else fails, read the instructions."

CUL868, RFXTFX433 und CCU3
FS20, S300TH, UNIRoll, Homematic IP, OZW672, diverse HOMEEASY, IT kompatible und China Zeugs

DarkT

hallo zusammen,

habe den hour Counter wie folgt definiert:


defmod WZ.Tur.Counter HourCounter HM_TuerStatus_Terasse:.open HM_TuerStatus_Terasse:.close


um meinen Homematic Türsensor zu monitoren:


defmod HM_TuerStatus_Terasse CUL_HM 59F819
attr HM_TuerStatus_Terasse IODev CUL_0
attr HM_TuerStatus_Terasse actCycle 002:50
attr HM_TuerStatus_Terasse actStatus alive
attr HM_TuerStatus_Terasse alarmDevice Sensor
attr HM_TuerStatus_Terasse alarmSettings alarm0,|HM_TuerStatus_Terasse:open|Terrassen Tür offen|on
attr HM_TuerStatus_Terasse alias Terassen Tür
attr HM_TuerStatus_Terasse autoReadReg 4_reqStatus
attr HM_TuerStatus_Terasse devStateIcon .*open:fts_door_open .*closed:fts_door
attr HM_TuerStatus_Terasse expert 2_raw
attr HM_TuerStatus_Terasse firmware 1.0
attr HM_TuerStatus_Terasse group Terassentür,Wohnzimmer
attr HM_TuerStatus_Terasse model HM-SEC-SCo
attr HM_TuerStatus_Terasse room Z_System->Komponenten
attr HM_TuerStatus_Terasse serialNr OEQ0564496
attr HM_TuerStatus_Terasse subType threeStateSensor


Leider sehe ich keine Events. Hat einer eine Idee was ich falsch definiert habe?

pappn

Bin mir nicht ganz sicher, aber vielleicht solltest du den Punkt weglassen und so definieren:

defmod WZ.Tur.Counter HourCounter HM_TuerStatus_Terasse:open HM_TuerStatus_Terasse:close
"When all else fails, read the instructions."

CUL868, RFXTFX433 und CCU3
FS20, S300TH, UNIRoll, Homematic IP, OZW672, diverse HOMEEASY, IT kompatible und China Zeugs