Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt

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

Vorheriges Thema - Nächstes Thema

backbone10


hyper2910

Das Modul hat sich über das update ja aktualisiert, aber die lists sehen momentan richtig sch... Aus.

Cubietruck mit FHEM, CUL V3 443MHz, 2 x CULV3 868MHz, Milights, Max Heizungssteuerung, Homematic, IT,

hyper2910

Das Modul hat sich über das update ja aktualisiert, aber die lists sehen momentan richtig sch... Aus.

Was kann man da machen?
Cubietruck mit FHEM, CUL V3 443MHz, 2 x CULV3 868MHz, Milights, Max Heizungssteuerung, Homematic, IT,

hyper2910

Das Modul hat sich über das update ja aktualisiert, aber die lists sehen momentan richtig sch... Aus.

Was kann man da machen?
Cubietruck mit FHEM, CUL V3 443MHz, 2 x CULV3 868MHz, Milights, Max Heizungssteuerung, Homematic, IT,

John

Hallo hyper2910,
ich unterstütze dich gern bei der Fehlersuche (oder du mich, je nachdem was am Ende rauskommt).

Aber ich brauche konkrete Daten. Mit einer ReadingsGroup der abgeleiteten Größen kann ich nichts anfangen.

Mir ist nicht klar, was du erwartest und was nicht paßt. Bitte formuliere das möglichst präzise, am besten mit Hilfe der
Grunddaten vom HourCounter.

Wie ist dieser definiert ?
Ein "list <deinHourcounter>" wäre hilfreich.

John

CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

hyper2910

Hi,


so

hier mal das List


Internals:
   CFGFN      /opt/fhem/FHEM/oel.cfg
   DEF        oelzaehler:onoff:.0 oelzaehler:onoff:.1
   NAME       CN.Test
   NR         361
   NTFY_ORDER 50-CN.Test
   STATE      26
   TYPE       HourCounter
   Readings:
     2014-11-26 12:12:27   appCountsOverallTemp 498
     2014-11-26 00:00:05   appCountsPerDay 59
     2014-11-26 12:00:01   appCountsPerHour 2
     2014-11-26 12:12:27   appCountsPerHourTemp 1
     2014-11-26 12:12:27   appCountsPerMonthTemp 498
     2014-11-23 00:00:02   appCountsPerWeek 336
     2014-11-26 12:12:27   appCountsPerWeekTemp 162
     2014-11-26 12:12:27   appCountsPerYearTemp 498
     2014-11-26 00:00:05   appOpHoursPerDay 4.15916666666667
     2014-11-26 12:16:25   appOpHoursPerDayTemp 1.77888888888889
     2014-11-26 00:00:05   appOpHoursPerMonthTemp 36.7755555555555
     2014-11-23 00:00:02   appOpHoursPerWeek 24.7136111111111
     2014-11-26 00:00:05   appOpHoursPerWeekTemp 12.0619444444444
     2014-11-26 00:00:05   appOpHoursPerYearTemp 36.7755555555555
     2014-11-26 00:00:05   appTanklevel    2116.47362718212
     2014-11-26 00:00:05   appUtilization  17.3726896167635
     2014-11-26 12:16:25   appUtilizationTemp 14.4936064275207
     2014-11-26 12:16:25   appUtilizationTempOld 14.0305367829431
     2014-11-14 14:49:48   clearDate       2014-11-14 14:49:48
     2014-11-26 12:12:27   countsOverall   498
     2014-11-26 12:12:27   countsPerDay    26
     2014-11-26 12:12:27   pauseTimeIncrement 747
     2014-11-26 12:12:27   pauseTimeOverall 882738
     2014-11-26 12:12:27   pauseTimePerDay 37777
     2014-11-26 12:16:25   pulseTimeIncrement 238
     2014-11-26 12:16:25   pulseTimeOverall 138796
     2014-11-26 12:16:25   pulseTimePerDay 6404
     2014-11-26 12:12:27   state           26
     2014-11-26 00:00:05   tickDay         1
     2014-11-26 12:00:00   tickHour        1
     2014-11-25 09:05:04   tickMonth       0
     2014-11-25 09:05:04   tickWeek        0
     2014-11-25 09:05:04   tickYear        0
     2014-11-26 12:16:25   value           0
   Helper:
     OFF_Regexp oelzaehler:onoff:.1
     ON_Regexp  oelzaehler:onoff:.0
     calledByEvent
     changedTimestamp 2014-11-26 12:16:25
     forceClear
     forceDayChange
     forceHourChange
     forceMonthChange
     forceWeekChange
     forceYearChange
     isFirstRun
     sdRoundHourLast 1416999600
     value      0
     cmdQueue:
Attributes:
   alias      BrennerTest
   room       0.1 OelHeizung



Wie du siehst, steht überall jetzt 0.00 Stunden, bislang stand dort Gestern, letztes Intervall etc.
wie eigentlich auch definiert:

<>,<%time_clock>
CN.Test:<Laufzeiten>
CN.Test:<letzter&nbsp;Zyklus>,pulseTimeIncrement
CN.Test:<Heute>,appOpHoursPerDayTemp,<&nbsp;&nbsp;&nbsp;>,<Gestern>,appOpHoursPerDay
CN.Test:<Aktuelle&nbsp;Woche>,appOpHoursPerWeekTemp,<&nbsp;&nbsp;&nbsp;>,<Letzte&nbsp;Woche>,appOpHoursPerWeek
CN.Test:<Aktueller&nbsp;Monat>,appOpHoursPerMonthTemp,<&nbsp;&nbsp;&nbsp;>,<Letzter&nbsp;Monat>,appOpHoursPerMonth
CN.Test:<Aktuelles&nbsp;Jahr>,appOpHoursPerYearTemp,<&nbsp;&nbsp;&nbsp;>,<Letztes&nbsp;Jahr>,appOpHoursPerYear
CN.Test:<Gesamtlaufzeit>,pulseTimeOverall



Gruss Dirk
Cubietruck mit FHEM, CUL V3 443MHz, 2 x CULV3 868MHz, Milights, Max Heizungssteuerung, Homematic, IT,

John

Hi Dirk,

die Readings im Listauszug von <list CN.Test> sehen alle plausibel aus oder siehst du das anders ?

John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

hyper2910

Ja klar, nur die Anzeige sieht nicht gut aus,  siehe Screenshot oben.
Cubietruck mit FHEM, CUL V3 443MHz, 2 x CULV3 868MHz, Milights, Max Heizungssteuerung, Homematic, IT,

pappn

Das problem liegt hier nicht bei Hour Counter und auch nicht im ReadiungsGroup. Ich hatte die falsche Darstellung auch schon. Offensichtlich hat sich im Zusammenspiel der ReadingsGroup Definitionen und dem dazugehörigen Attribut Valueformat etwas geändert. Du musst also den Code für valueformat anpassen.

Ich habe es von:attr Brenneruebersicht_2 valueFormat { if($READING eq "pulseTimeOverall"){sprintf("%.2f Stunden", $VALUE/3600);;}elsif($READING eq "pulseTimeIncrement"){sprintf("%.2f Minuten", $VALUE/60);;}else{sprintf("%.2f Stunden", $VALUE);;}}
auf { if($READING eq "pulseTimeOverall"){sprintf("%.2f Stunden", $VALUE/3600);}elsif($READING eq "pulseTimeIncrement"){sprintf("%.2f Minuten", $VALUE/60);}else{if($READING =~ m/app/){sprintf("%.2f Stunden", $VALUE);}}} geändert.

Jetzt passt wieder alles.
"When all else fails, read the instructions."

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

hyper2910

Cubietruck mit FHEM, CUL V3 443MHz, 2 x CULV3 868MHz, Milights, Max Heizungssteuerung, Homematic, IT,

koenigd

Hallo Hyper2910,

könntest du vielleicht deinen Auszug aus der cfg posten der dein "Brennerlaufzeit neu" Ausdruck ergibt.

Versuche sowas auch, aber kriege das irgendwie nicht hin.

Danke

Gruß Daniel

koenigd

Hallo Hyper2910,

könntest du vielleicht deinen Auszug aus der cfg posten der dein "Brennerlaufzeit neu" Ausdruck ergibt.

Versuche sowas auch, aber kriege das irgendwie nicht hin.

Danke

Gruß Daniel

hyper2910

#282
Hier mal alles

define oelzaehler MAX ShutterContact 0fec48
attr oelzaehler IODev CULMAX0
attr oelzaehler group heiz
attr oelzaehler room 0.1 OelHeizung

define FileLog_oelzaehler FileLog ./log/oelzaehler-%Y-%m.log oelzaehler
attr FileLog_oelzaehler logtype text
attr FileLog_oelzaehler room 0.1 OelHeizung

define CN.Test.FileDay FileLog ./log/CN.Test-Day-%Y.log CN.Test:app\w+(Utilization|PerHour|PerDay|PerWeek|PerMonth|PerYear)(?!Temp).*
attr CN.Test.FileDay room 0.1 OelHeizung

define OelVerbrauch SVG CN.Test.File:SVG_CN.Test.File_1:CURRENT
attr OelVerbrauch group 01 BrennerDiagramme
attr OelVerbrauch room 0.1 OelHeizung

define CN.Event notify CN.Test:(countsOverall:|value:|tickHour:|tickDay:|tickWeek:|tickMonth:|tickYear:).* {appHCNotify("%NAME","%EVTPART0","%EVTPART1");;}
attr CN.Event room 0.1 OelHeizung


define CN.Test HourCounter oelzaehler:onoff:.0 oelzaehler:onoff:.1
attr CN.Test alias BrennerTest
attr CN.Test room 0.1 OelHeizung

define CN.Test.File FileLog ./log/CN.Test-%Y.log (CN\.Test:.*)
attr CN.Test.File alias oelverbrauch-log
attr CN.Test.File room 0.1 OelHeizung



define Brenneruebersicht_1 readingsGroup <>,<%secur_smoke_detector> \
CN.Test:<Starts> \
CN.Test:<Heute>,countsPerDay,<&nbsp;;&nbsp;;&nbsp;;>,<Gestern>,appCountsPerDay \
CN.Test:<Aktuelle&nbsp;;Woche>,appCountsPerWeekTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Letzte&nbsp;;Woche>,appCountsPerWeek \
CN.Test:<Aktueller&nbsp;;Monat>,appCountsPerMonthTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Letzter&nbsp;;Monat>,appCountsPerMonth \
CN.Test:<Aktuelles&nbsp;;Jahr>,appCountsPerYearTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Letztes&nbsp;;Jahr>,appCountsPerYear \
CN.Test:<Gesamtstarts>,countsOverall
attr Brenneruebersicht_1 alias 02 Brennerstarts neu
attr Brenneruebersicht_1 group 01 Brenner/Pumpen
attr Brenneruebersicht_1 mapping &nbsp;;
attr Brenneruebersicht_1 room 0.1 OelHeizung
attr Brenneruebersicht_1 valueStyle {'style="color:green;;;;text-align:right"'}

define Brenneruebersicht_2 readingsGroup <>,<%time_clock> \
CN.Test:<Laufzeiten> \
CN.Test:<letzter&nbsp;;Zyklus>,pulseTimeIncrement \
CN.Test:<Heute>,appOpHoursPerDayTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Gestern>,appOpHoursPerDay \
CN.Test:<Aktuelle&nbsp;;Woche>,appOpHoursPerWeekTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Letzte&nbsp;;Woche>,appOpHoursPerWeek \
CN.Test:<Aktueller&nbsp;;Monat>,appOpHoursPerMonthTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Letzter&nbsp;;Monat>,appOpHoursPerMonth \
CN.Test:<Aktuelles&nbsp;;Jahr>,appOpHoursPerYearTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Letztes&nbsp;;Jahr>,appOpHoursPerYear \
CN.Test:<Gesamtlaufzeit>,pulseTimeOverall
attr Brenneruebersicht_2 alias 02 Brennerlaufzeiten neu
attr Brenneruebersicht_2 group 01 Brenner/Pumpen
attr Brenneruebersicht_2 mapping &nbsp;;
attr Brenneruebersicht_2 room 0.1 OelHeizung
attr Brenneruebersicht_2 valueFormat { if($READING eq "pulseTimeOverall"){sprintf("%.2f Stunden", $VALUE/3600);;}elsif($READING eq "pulseTimeIncrement"){sprintf("%.2f Minuten", $VALUE/60);;}else{if($READING =~ m/app/){sprintf("%.2f Stunden", $VALUE);;}}}
attr Brenneruebersicht_2 valueStyle {'style="color:green;;;;text-align:right"'}

define Brenneruebersicht_3 readingsGroup <>,<%measure_water_meter> \
CN.Test:<Verbr&aumluche> \
CN.Test:<Heute>,appOpHoursPerDayTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Gestern>,appOpHoursPerDay \
CN.Test:<Aktuelle&nbsp;;Woche>,appOpHoursPerWeekTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Letzte&nbsp;;Woche>,appOpHoursPerWeek \
CN.Test:<Aktueller&nbsp;;Monat>,appOpHoursPerMonthTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Letzter&nbsp;;Monat>,appOpHoursPerMonth \
CN.Test:<Aktuelles&nbsp;;Jahr>,appOpHoursPerYearTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Letztes&nbsp;;Jahr>,appOpHoursPerYear \
CN.Test:<Gesamtverbrauch>,pulseTimeOverall,<&nbsp;;&nbsp;;&nbsp;;>,<Tankinhalt>,appTanklevel
attr Brenneruebersicht_3 alias 02 Brennerverbr&aumluche neu
attr Brenneruebersicht_3 group 01 Brenner/Pumpen
attr Brenneruebersicht_3 mapping &nbsp;;
attr Brenneruebersicht_3 room 0.1 OelHeizung
attr Brenneruebersicht_3 valueFormat { if($READING eq "pulseTimeOverall"){sprintf("%.2f Stunden", $VALUE/3600);;}elsif($READING eq "pulseTimeIncrement"){sprintf("%.2f Minuten", $VALUE/60);;}else{if($READING =~ m/app/){sprintf("%.2f Stunden", $VALUE);;}}}
attr Brenneruebersicht_3 valueStyle {'style="color:green;;;;text-align:right"'}
Cubietruck mit FHEM, CUL V3 443MHz, 2 x CULV3 868MHz, Milights, Max Heizungssteuerung, Homematic, IT,

koenigd

Hallo Dirk,

hat funktioniert super, vielen Dank.

Lediglich die Zeile
attr Brenneruebersicht_3 valueFormat { if($READING eq "pulseTimeOverall"){sprintf("%.2f Stunden", $VALUE/3600);;}elsif($READING eq "pulseTimeIncrement"){sprintf("%.2f Minuten", $VALUE/60);;}else{if($READING =~ m/app/){sprintf("%.2f Stunden", $VALUE);;}}}

stimmt nicht, da hier noch Stunden und nicht Liter drin stehen und kein Faktor für den Heizölverbrauch dabei.
mit welcherm Verbrauch rechnest du bei deinem Brenner??

Den Restbestand denke ich errechnest du aus Tankinhalt - den aktuellen Gesamtverbrauch, und du nullst den Zähler dann beim Tanken?

Gruß Daniel

hyper2910

Genau, den tankinhalt setze ich beim tanken, der Ölverbrauch pro Sekunde, steht in der 99_utilshourcounter.

Gruß dirk
Cubietruck mit FHEM, CUL V3 443MHz, 2 x CULV3 868MHz, Milights, Max Heizungssteuerung, Homematic, IT,