diff --git a/fhem/FHEM/15_CUL_EM.pm b/fhem/FHEM/15_CUL_EM.pm index 166fa2d3c..44bde3cf4 100755 --- a/fhem/FHEM/15_CUL_EM.pm +++ b/fhem/FHEM/15_CUL_EM.pm @@ -23,7 +23,7 @@ CUL_EM_Initialize($) $hash->{ParseFn} = "CUL_EM_Parse"; $hash->{AttrList} = "IODev do_not_notify:0,1 showtime:0,1 " . "model:EMEM,EMWZ,EMGZ ignore:0,1 ". - "maxPeak ". + "maxPeak CounterOffset ". $readingFnAttributes; $hash->{AutoCreate}= { "CUL_EM.*" => { GPLOT => "power8:Power,", FILTER => "%NAME:CNT.*" } }; @@ -98,7 +98,7 @@ CUL_EM_Parse($$) # basis_cnt= correction to total (cumulated) value in ticks to account for # counter wraparounds # total = total (cumulated) value in device units - # current = current value (average over latest 5 minutes) in device units + # current_cnt = current value (average over latest 5 minutes) in device units # peak = maximum value in device units my $seqno = hex($a[5].$a[6]); @@ -177,8 +177,9 @@ CUL_EM_Parse($$) $basis_cnt += ($total_cnt_last > 65000 ? 65536 : $total_cnt_last); $readings{basis} = $basis_cnt; } + my $counter_offset = AttrVal($n,"CounterOffset",0); - my $total = ($basis_cnt+$total_cnt)*$corr2; + my $total = (($basis_cnt+$total_cnt)*$corr2)+$counter_offset; my $current = $current_cnt*$corr1; $val = sprintf("CNT: %d CUM: %0.3f 5MIN: %0.3f TOP: %0.3f", @@ -350,7 +351,18 @@ CUL_EM_Parse($$) For example if it's not possible to consume more than 40kW of power set maxPeak to 40 to make the readings of the power meter more robust. +
+ +
  • CounterOffset
    + Specifies the difference between true (gas) meter value and + value reported by the EMGZ.
    + CounterOffset = true Value - Reading "total"
    + Example: +
  • +
    @@ -372,16 +384,19 @@ CUL_EM_Parse($$) define <name> CUL_EM <code> [corr1 corr2 CostPerUnit BasicFeePerMonth]

    - <code> ist der Code, der am EM Gerät eingestellt wird. Gütige Werte sind - 1 bis 12. 1-4 gilt für EMWZ, 5-8 für EMEM und 9-12 für EMGZ Geräte.

    + <code> ist der Code, der am EM Gerät eingestellt wird. + Gütige Werte sind 1 bis 12. 1-4 gilt für EMWZ, 5-8 für EMEM + und 9-12 für EMGZ Geräte.

    + + corr1 ist der Kalibrierfaktor für den Momentanverbrauch, + corr2 für den Gesamtverbrauch. - corr1 ist der Kalibrierfaktor für den Momentanverbrauch, corr2 - für den Gesamtverbrauch.
    @@ -399,12 +414,12 @@ CUL_EM_Parse($$) CUM_MONTH: 212.319 CUM: 60123.4 COST: 44.34
    - Tipp: Das EMWZ Gerät kann so konfiguriert werden, dass es in der CUM Spalte - des STATE Wertes den aktuellen Wert des Stromzählers anzeigt. - Hierfür muss der aktuell am Stromzähler abgelesene Wert mit corr1 (U/kW) - multipliziert werden und der CUM Rohwert aus der aktuellen fhem Messung ('reading') - davon abgezogen werden. Dann muss dieser Wert als Basiswert des EMWZ Gerätes - (im Beispiel emwz) gesetzt werden.
    + Tipp: Das EMWZ Gerät kann so konfiguriert werden, dass es in der CUM + Spalte des STATE Wertes den aktuellen Wert des Stromzählers anzeigt. + Hierfür muss der aktuell am Stromzähler abgelesene Wert mit corr1 + (U/kW) multipliziert werden und der CUM Rohwert aus der aktuellen fhem + Messung ('reading') davon abgezogen werden. Dann muss dieser Wert als + Basiswert des EMWZ Gerätes (im Beispiel emwz) gesetzt werden.

    @@ -432,7 +447,16 @@ CUL_EM_Parse($$) Wenn es z.B. nicht möglich ist mehr zu 40kW Leistung zu beziehen setzt man maxPeak auf 40 um das Auslesen des Stromzählers robuster zu machen. - +
    +
  • CounterOffset
    + Gibt den Unterschied zwischen dem tatsächlichen Zählerstand und + dem vom EMGZ gemeldeten Wert an.
    + CounterOffset = tatsächlicher Zählerstand - Reading "total"
    + Beispiel: + +