Pelletzähler mit Reedkontakt

Begonnen von exot, 23 Februar 2016, 19:22:41

Vorheriges Thema - Nächstes Thema

exot

Hallo,
Ich habe den Gaszähler von Jan versucht für meinen Pelletbrenner zu nutzen.
Installation des Reedkontaktes erfolgte über der Förderschneckenwelle.
Auf der Welle wurde ein Magnet befestigt, der den Reedkontakt schaltet.
Das entspricht der Installation am Gaszähler.
Der Brennstoffzaehler ist wie folgt definiert:
define GPIOBrennstoffzaehler RPI_GPIO 23
attr GPIOBrennstoffzaehler direction input
attr GPIOBrennstoffzaehler active_low yes
attr GPIOBrennstoffzaehler interrupt both
attr GPIOBrennstoffzaehler pud_resistor up
attr GPIOBrennstoffzaehler toggletostate yes

list GPIOBrennstoffzähler:
Internals:
   CFGFN
   DEF        23
   EXCEPT_FD  39
   NAME       GPIOBrennstoffzaehler
   NR         182
   RPI_pin    23
   STATE      on
   TYPE       RPI_GPIO
   Readings:
     2016-02-23 19:17:35   Longpress       on
     2016-02-23 19:17:34   Pinlevel        high
     2016-02-23 19:17:34   state           on
   Fhem:
     interfaces switch
Attributes:
   active_low yes
   direction  input
   interrupt  both
   pud_resistor up
   room       1.3.1 Heizraum,Unsorted
   toggletostate yes

Danach wurde der HourCounter definiert:
define Brennstoffverbrauch HourCounter GPIOBrennstoffzaehler:on GPIOBrennstoffzaehler:off
list Brennstoffverbrauch:
Internals:
   CFGFN
   DEF        GPIOBrennstoffzaehler:on GPIOBrennstoffzaehler:off
   NAME       Brennstoffverbrauch
   NR         200
   NTFY_ORDER 50-Brennstoffverbrauch
   STATE      22
   TYPE       HourCounter
   VERSION    1.0.1.2 - 24.12.2014
   Readings:
     2016-02-23 10:47:04   clearDate       2016-02-23 10:47:04
     2016-02-23 19:12:39   countsOverall   22
     2016-02-23 19:12:39   countsPerDay    22
     2016-02-23 19:12:39   pauseTimeEdge   31
     2016-02-23 19:12:39   pauseTimeIncrement 31
     2016-02-23 19:12:39   pauseTimeOverall 5070
     2016-02-23 19:12:39   pauseTimePerDay 5070
     2016-02-23 19:12:39   pulseTimeEdge   1721
     2016-02-23 19:12:39   pulseTimeIncrement 2227
     2016-02-23 19:12:39   pulseTimeOverall 25262
     2016-02-23 19:12:39   pulseTimePerDay 25262
     2016-02-23 19:12:39   state           22
     2016-02-23 18:35:32   tickChanged     297
     2016-02-23 00:00:00   tickDay         2
     2016-02-23 19:00:00   tickHour        56
     2016-02-21 11:27:37   tickMonth       0
     2016-02-23 19:12:39   tickUpdated     102
     2016-02-21 11:27:37   tickWeek        0
     2016-02-21 11:27:37   tickYear        0
     2016-02-23 19:12:39   value           1
   Helper:
     OFF_Regexp GPIOBrennstoffzaehler:off
     ON_Regexp  GPIOBrennstoffzaehler:on
     calledByEvent
     changedTimestamp 2016-02-23 19:12:39
     forceClear
     forceDayChange
     forceHourChange
     forceMonthChange
     forceWeekChange
     forceYearChange
     isFirstRun
     sdRoundHourLast 1456250400
     value      1
     cmdQueue:
Attributes:
   event-on-change-reading .*
   room       1.3.1 Heizraum

Bis hier funktioniert es soweit.
Nun kommt aber der problematische Teil und zwar die Parameter des Gaszählers:
10Lieter = 1 Impuls
1m³       =100 Impulse = 77cent
durch meine  Parameter zu ersetzen.
Der Brennstoff wird in Säcken zu 25 kg geliefert.
0,229 kg        = 1 Impuls Umdrehung)
25 kg             = 109 Impulse (Umdrehungen)
5,83 €/Sack   = 0,233 €/kg
Definition Dummy Brennstoffverbrauch:
define BrennstoffverbrauchStd dummy
Definition Notify Brennstoffverbrauch:
efine BrennstoffverbrauchStdNoti notify Brennstoffverbrauch {

my $BrennstoffUmlaufzeit=ReadingsVal("Brennstoffverbrauch","pauseTimeEdge","0")+ReadingsVal("Brennstoffverbrauch","pulseTimeEdge","0");
my $BrennstoffProStd=36/$BrennstoffUmlaufzeit;
my $BrennstoffProStdRounded=int(100 * $BrennstoffProStd + 0.5) / 100;

fhem("set BrennstoffverbrauchStd $BrennstoffProStdRounded");;
fhem("delete tmp_time_brennstoff");;
fhem("define tmp_time_brennstoff at +00:02:00 set BrennstoffverbrauchStd 0");;
}

list notify Brennstoffverbrauch:
Internals:
   CFGFN
   DEF        Brennstoffverbrauch {

my$BrennstoffUmlaufzeit=ReadingsVal("Brennstoffverbrauch","pauseTimeEdge","0")+ReadingsVal("Brennstoffverbrauch","pulseTimeEdge","0");
my $BrennstoffProStd=36/$BrennstoffUmlaufzeit;
my $BrennstoffProStdRounded=int(100 * $BrennstoffProStd + 0.5) / 100;

fhem("set BrennstoffverbrauchStd $BrennstoffProStdRounded");;
fhem("delete tmp_time_Brennstoff");;
fhem("define tmp_time_Brennstoff at +00:02:00 set BrennstoffverbrauchStd 0");;
}
   NAME       BrennstoffverbrauchStdNoti
   NOTIFYDEV  Brennstoffverbrauch
   NR         1448
   NTFY_ORDER 50-BrennstoffverbrauchStdNoti
   REGEXP     Brennstoffverbrauch
   STATE      2016-02-23 19:18:33
   TYPE       notify
   Readings:
     2016-02-23 19:06:55   state           active
Attributes:
   room       1.3.1 Heizraum

Mir erschließt sich nicht, wo ich meine Werte einsetzen soll.
Wer kann mir helfen
Danke Michael

exot

Hallo,
Schade, das sich kein Helfer gefunden hat.
Die countsOverall (Umdrehungen gesamt)sowie
countsPerDay (Umdrehungen Tag) werden sauber erfasst.
Aber wo soll ich meine Werte eintragen, damit der Brennstoffverbrauch richtig angezeigt wird.
Danke Michael