Eintrag in Logfiles von Tageswerten

Begonnen von razzoe, 16 November 2016, 19:37:44

Vorheriges Thema - Nächstes Thema

razzoe

Hi zusammen,

zur Gasmessung habe ich einen Reedkontakt an meinem Gaszähler, welcher an einem Arduino und LAN hängt. Ich zähle mit HourCounter alle Ticks (CN.Gaszaehler) und kann somit meinen Gasverbrauch errechnen, ein Tick ergibt nämlich 0,01 m³ Gas. Damit ich meinen Tagesverbrauch in FTUI schön darstellen kann, habe ich ein Userreading "GasverbrauchTag" erstellt, der die "countsPerDay" durch 100 teilt, da 1 tick ergibt dann genau 0,01 und das kann ich dann grafisch darstellen. Hier mal der Code für das Ganze:

define CN.Gaszaehler HourCounter CN.Gaszaehler_Reedkontakt:reading:.on
attr CN.Gaszaehler group Devices
attr CN.Gaszaehler room Allgemein
attr CN.Gaszaehler stateFormat {sprintf("Hour %.2f m³ - Day: %.2f m³", ReadingsVal($name,"GasverbrauchStunde",0), ReadingsVal($name,"GasverbrauchTag",0))}
attr CN.Gaszaehler userReadings GasverbrauchTag { ReadingsVal("CN.Gaszaehler","countsPerDay",0)/100.0;; }, GasverbrauchStunde { ReadingsVal("CN.Gaszaehler","appCountsPerHour",0)/100.0;; }

define Filelog_CN.Gaszaehler FileLog ./log/CN.Gaszaehler-%Y.log CN.Gaszaehler:.*
attr Filelog_CN.Gaszaehler room Logfiles


Funktioniert soweit auch wunderbar. Jetzt gibt es folgendes Problem: um in FTUI Frontend den Gasverbrauch pro Tag in einer Wochenübersicht mit schönen breiten Balken darzustellen, muss ich die delta-d funktion nutzen:

data-logdevice='["Filelog_CN.Gaszaehler","FileLog_Stromzaehler"]'
data-columnspec='["4:CN.Gaszaehler.GasverbrauchTag::delta-d","4:Stromzaehler.day::delta-d"]'


Das Problem ist, dass das userReading in die Logfile beim Tageswechsel um 00:00:00 immer noch das Reading des letzten Tages einträgt und ein paar Zeilen später, ebenfalls um 00:00:00, erst auf 0 resettet wird. Dadurch funktioniert delta-d nicht, da es vom Wert um 0 Uhr ausgeht und somit noch den Wert des Vortages nimmt. Sehr ärgerlich, denn somit stimmt der errechnete Tagesverbrauch im Graphen nicht.

Hier mal der Logauszug:
2016-11-15_23:59:41 CN.Gaszaehler GasverbrauchTag: 2.74
2016-11-15_23:59:41 CN.Gaszaehler GasverbrauchStunde: 0.26
2016-11-15_23:59:41 CN.Gaszaehler appCountsPerHourTemp: 28
2016-11-15_23:59:41 CN.Gaszaehler appCountsPerWeekTemp: 336
2016-11-15_23:59:41 CN.Gaszaehler appCountsPerMonthTemp: 336
2016-11-15_23:59:41 CN.Gaszaehler appCountsPerYearTemp: 336
2016-11-15_23:59:41 CN.Gaszaehler GasverbrauchStunde: 0.26
2016-11-15_23:59:41 CN.Gaszaehler GasverbrauchTag: 2.74
2016-11-16_00:00:00 CN.Gaszaehler countsPerDay: 274
2016-11-16_00:00:00 CN.Gaszaehler countsOverall: 337
2016-11-16_00:00:00 CN.Gaszaehler value: 1
2016-11-16_00:00:00 CN.Gaszaehler 274
2016-11-16_00:00:00 CN.Gaszaehler tickUpdated: 366
2016-11-16_00:00:00 CN.Gaszaehler GasverbrauchStunde: 0.26
2016-11-16_00:00:00 CN.Gaszaehler GasverbrauchTag: 2.74
2016-11-16_00:00:00 CN.Gaszaehler tickHour: 1
2016-11-16_00:00:00 CN.Gaszaehler GasverbrauchTag: 2.74
2016-11-16_00:00:00 CN.Gaszaehler GasverbrauchStunde: 0.26
2016-11-16_00:00:00 CN.Gaszaehler tickDay: 1
2016-11-16_00:00:00 CN.Gaszaehler GasverbrauchTag: 2.74
2016-11-16_00:00:00 CN.Gaszaehler GasverbrauchStunde: 0.26
2016-11-16_00:00:00 CN.Gaszaehler appOpHoursPerDayTemp: 0
2016-11-16_00:00:00 CN.Gaszaehler appUtilizationTemp: 0
2016-11-16_00:00:00 CN.Gaszaehler appUtilizationTempOld: 0
2016-11-16_00:00:00 CN.Gaszaehler GasverbrauchTag: 2.74
2016-11-16_00:00:00 CN.Gaszaehler GasverbrauchStunde: 0.26
2016-11-16_00:00:00 CN.Gaszaehler appCountsPerHourTemp: 0
2016-11-16_00:00:00 CN.Gaszaehler appCountsPerHour: 28
2016-11-16_00:00:00 CN.Gaszaehler GasverbrauchStunde: 0.28
2016-11-16_00:00:00 CN.Gaszaehler GasverbrauchTag: 2.74
2016-11-16_00:00:00 CN.Gaszaehler appCountsPerDay: 274
2016-11-16_00:00:00 CN.Gaszaehler appOpHoursPerDay: 0
2016-11-16_00:00:00 CN.Gaszaehler appOpHoursPerDayTemp: 0
2016-11-16_00:00:00 CN.Gaszaehler appOpHoursPerWeekTemp: 0
2016-11-16_00:00:00 CN.Gaszaehler appOpHoursPerMonthTemp: 0
2016-11-16_00:00:00 CN.Gaszaehler appOpHoursPerYearTemp: 0
2016-11-16_00:00:00 CN.Gaszaehler appUtilization: 0
2016-11-16_00:00:00 CN.Gaszaehler GasverbrauchTag: 2.74
2016-11-16_00:00:00 CN.Gaszaehler GasverbrauchStunde: 0.28
2016-11-16_00:00:00 CN.Gaszaehler countsPerDay: 0
2016-11-16_00:00:00 CN.Gaszaehler pulseTimePerDay: 0
2016-11-16_00:00:00 CN.Gaszaehler pauseTimePerDay: 0
2016-11-16_00:00:00 CN.Gaszaehler GasverbrauchTag: 0
2016-11-16_00:00:00 CN.Gaszaehler GasverbrauchStunde: 0.28


Hat jemand eine Idee, wie ich das verhindern kann, dass GasverbrauchTag mit dem Wert vom Vortag noch einmal in die Logfile eingetragen wird? Dafür wäre ich unendlich dankbar!