Hallo zusammen,
ich habe einen ganz doofen Fehler mit dem hourcounter und komme nicht dahinter, was mir diesen Fehler verursacht.
Ich habe meinen Gaszähler / Gasverbrauch über den hourcounter realisiert. Leider gibt es den Blog nicht mehr in dem die Anleitung dafür war.
Mein Problem ist, dass scheinbar der hourcounter unregelmäßig einen Event generiert, auch wenn gerade keine Werte geändert werden. Da aber der hourcounter ein Notify triggert, dass den Gasverbrauch pro Stunde berechnet, generiert dieser Event einen Logeintrag mit dem Wert des letzten Gasverbrauchs. Ich habe schon Stunden mit Beobachten des Eventmonitors und Gedankenmachen über das Problem verbracht, aber ich finde keine Lösung. In dem Screenshot im Anhang kann man ganz gut die einzelnen unregelmäßigen Logeinträge sehen.
Ich würde mich freuen wenn mir jemand einen Tipp geben kann wie ich dieses Verhalten verhindere.
Danke!
Hier mal die Internals der betroffenen Devices:
Internals:
DEF 23
EXCEPT_FD 23
GPIO_Basedir /sys/class/gpio
GPIO_Nr 23
NAME GPIOGaszaehler
NR 51
STATE off
TYPE RPI_GPIO
WiringPi_gpio /usr/local/bin/gpio
lasttrg 1547238821.22049
Helper:
DBLOG:
state:
logdb:
TIME 1547238836.99145
VALUE off
READINGS:
2019-01-11 21:33:56 Dblclick off
2019-01-11 21:33:56 Longpress off
2019-01-11 21:33:56 Pinlevel low
2019-01-11 21:33:56 state off
fhem:
interfaces switch
Attributes:
active_low yes
direction input
interrupt both
pud_resistor off
toggletostate yes
Internals:
DEF GPIOGaszaehler:on GPIOGaszaehler:off
NAME Gasverbrauch
NR 52
NTFY_ORDER 50-Gasverbrauch
STATE 357
TYPE HourCounter
VERSION 1.0.1.2 - 24.12.2014
Helper:
DBLOG:
countsOverall:
logdb:
TIME 1547238836.96207
VALUE 363184
countsPerDay:
logdb:
TIME 1547238836.96207
VALUE 357
state:
logdb:
TIME 1547238836.96207
VALUE 357
READINGS:
2019-01-11 21:33:56 countsOverall 363184
2019-01-11 21:33:56 countsPerDay 357
2019-01-11 21:33:56 pauseTimeEdge 99
2019-01-11 21:33:56 pauseTimeIncrement 0
2019-01-11 21:33:56 pauseTimeOverall 20651884
2019-01-11 21:33:56 pauseTimePerDay 72500
2019-01-11 21:33:56 pulseTimeEdge 15
2019-01-11 21:33:56 pulseTimeIncrement 15
2019-01-11 21:33:56 pulseTimeOverall 1744310
2019-01-11 21:33:56 pulseTimePerDay 5136
2019-01-10 14:30:00 statCountsOverall Hour: 0 Day: 313 Month: 3558 Year: 3558
2019-01-10 14:30:00 statCountsOverallDay 313
2019-01-09 23:59:55 statCountsOverallDayLast 549
2019-01-10 14:30:00 statCountsOverallHour 0
2019-01-10 13:59:55 statCountsOverallHourLast 43
2019-01-10 13:59:55 statCountsOverallLast Hour: 43 Day: 549 Month: 3310 Year: 3310 (since: 2018-12-25 )
2019-01-10 14:30:00 statCountsOverallMonth 3558
2018-12-31 23:59:55 statCountsOverallMonthLast 3310
2019-01-10 14:30:00 statCountsOverallYear 3558
2018-12-31 23:59:55 statCountsOverallYearLast 3310
2019-01-11 21:33:56 state 357
2019-01-11 21:33:56 tickChanged 910
2019-01-11 00:00:00 tickDay 1
2019-01-11 21:00:00 tickHour 22
2019-01-10 23:17:56 tickMonth 0
2019-01-11 21:33:56 tickUpdated 116
2019-01-10 23:17:56 tickWeek 0
2019-01-10 23:17:56 tickYear 0
2019-01-11 21:33:56 value 0
helper:
OFF_Regexp GPIOGaszaehler:off
ON_Regexp GPIOGaszaehler:on
calledByEvent
changedTimestamp 2019-01-11 21:33:56
forceClear
forceDayChange
forceHourChange
forceMonthChange
forceWeekChange
forceYearChange
isFirstRun
sdRoundHourLast 1547236800
value 0
cmdQueue:
Attributes:
Internals:
DEF Gasverbrauch:value.* {
my $GasUmlaufzeit=ReadingsVal("Gasverbrauch","pauseTimeEdge","0")+ReadingsVal("Gasverbrauch","pulseTimeEdge","0");
my $GasProStd=36/$GasUmlaufzeit;
my $GasProStdRounded=int(100 * $GasProStd + 0.5) / 100;
fhem("set GasverbrauchStd $GasProStdRounded");;
if(defined($defs{'tmp_time_gas'})) { fhem "modify tmp_time_gas +00:02:00" } else
{ fhem "define tmp_time_gas at +00:02:00 set GasverbrauchStd 0" };;
}
NAME GasverbrauchStdNoti
NOTIFYDEV Gasverbrauch
NR 55
NTFY_ORDER 50-GasverbrauchStdNoti
REGEXP Gasverbrauch:value.*
STATE 2019-01-11 21:35:51
TRIGGERTIME 1547238951.11754
TYPE notify
READINGS:
2019-01-10 23:17:40 state active
Attributes: