ESA2000 Device 011e (Unknown type: )

Begonnen von Guest, 01 Februar 2012, 21:07:00

Vorheriges Thema - Nächstes Thema

Guest

Originally posted by: <email address deleted>

Ich habe auch diesen LED Sensor in Betrieb.

Dieser wurde auch sofort über autocreate in die fhem.cfg eingebunden.

Im der fhem Log-Datei erscheint nun immer: ESA2000 Device 011e
(Unknown type: )

Ich habe auch schon versucht, wie in anderen Beiträgen erklärt, in die
Datei 64ESA2000.pm folgende Einträge zu ergänzen:

my %codes = (
  "011e" => "ESA2000_LED",
  "0178" => "ESA2000_LED",
   "018f" => "ESA2000_LED",

leider auch nur Blindleistung !

Kann mir jemand helfen ?

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Ist niemand da, der mir evtl. helfen kann?


On 1 Feb., 21:07, udobru wrote:
> Ich habe auch diesen LED Sensor in Betrieb.
>
> Dieser wurde auch sofort über autocreate in die fhem.cfg eingebunden.
>
> Im der fhem Log-Datei erscheint nun immer: ESA2000 Device 011e
> (Unknown type: )
>
> Ich habe auch schon versucht, wie in anderen Beiträgen erklärt, in die
> Datei 64ESA2000.pm folgende Einträge zu ergänzen:
>
> my %codes = (
>   "011e" => "ESA2000_LED",
>   "0178" => "ESA2000_LED",
>    "018f" => "ESA2000_LED",
>
> leider auch nur Blindleistung !
>
> Kann mir jemand helfen ?

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Ich habe nun alles versucht... ESA2000 wird erkannt.
Gibt Meldungen an fhem weiter.
Es kommt in der log die Fehlermeldung (Unknow type:), woraus ich
schließen würde, dass der Typ nicht richtig eingetragen ist. Leider
bekomme ich aber keine weiteren Log Informationen.

Ist wirklich schade...

On 1 Feb., 21:07, udobru wrote:
> Ich habe auch diesen LED Sensor in Betrieb.
>
> Dieser wurde auch sofort über autocreate in die fhem.cfg eingebunden.
>
> Im der fhem Log-Datei erscheint nun immer: ESA2000 Device 011e
> (Unknown type: )
>
> Ich habe auch schon versucht, wie in anderen Beiträgen erklärt, in die
> Datei 64ESA2000.pm folgende Einträge zu ergänzen:
>
> my %codes = (
>   "011e" => "ESA2000_LED",
>   "0178" => "ESA2000_LED",
>    "018f" => "ESA2000_LED",
>
> leider auch nur Blindleistung !
>
> Kann mir jemand helfen ?

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Ich hatte das gleiche Problem und habe die pm Datei etwas abgeändert
wie folgt ( vgl. Kommentar für my $type1 ):

##############################################
# (c) by STefan Mayer (stefan(at)clumsy.ch)  #
#                                            #
# please feel free to contact me for any     #
# changes, improvments, suggestions, etc     #
#                                            #
##############################################
# $Id: 64_ESA2000.pm 1098 2011-11-12 07:51:08Z rudolfkoenig $

package main;

use strict;
use warnings;

my %codes = (
  "19fa" => "ESA2000_LED",
  "63E0" => "ESA2000_LED",
);


#####################################
sub
ESA2000_Initialize($)
{
  my ($hash) = @_;

#                        S0119FA011E00007D6E003100000007C9 ESA2000_LED

  $hash->{Match}     = "^S................................\$";
  $hash->{DefFn}     = "ESA2000_Define";
  $hash->{UndefFn}   = "ESA2000_Undef";
  $hash->{ParseFn}   = "ESA2000_Parse";
  $hash->{AttrList}  = "IODev do_not_notify:0,1 showtime:0,1
model:esa2000-led loglevel:0,1,2,3,4,5,6 ignore:0,1 base_1 base_2";
}

#####################################
sub
ESA2000_Define($$)
{
  my ($hash, $def) = @_;
  my @a = split("[ \t][ \t]*", $def);

  return "wrong syntax: define ESA2000 CODE" if(int(@a) != 3);
  $a[2] = lc($a[2]);
  return "Define $a[0]: wrong CODE format: specify a 4 digit hex
value"
        if($a[2] !~ m/^[a-f0-9][a-f0-9][a-f0-9][a-f0-9]$/);


  $hash->{CODE} = $a[2];
  $modules{ESA2000}{defptr}{$a[2]} = $hash;
  AssignIoPort($hash);
  return undef;
}

#####################################
sub
ESA2000_Undef($$)
{
  my ($hash, $name) = @_;
  delete($modules{ESA2000}{defptr}{$hash->{CODE}})
        if(defined($hash->{CODE}) &&
           defined($modules{ESA2000}{defptr}{$hash->{CODE}}));
  return undef;
}

#####################################
sub
ESA2000_Parse($$)
{
  my ($hash, $msg) = @_;

# 0123456789012345678901234567890123456789
# S0119FA011E00007D6E003100000007C9F9 ESA2000_LED
  $msg = lc($msg);
  my $seq = substr($msg, 1, 2);
  my $cde = substr($msg, 3, 4);
  my $dev = substr($msg, 7, 4);
  my $val = substr($msg, 11, 22);

  Log 5, "ESA2000 msg $msg";
  Log 5, "ESA2000 seq $seq";
  Log 5, "ESA2000 device $dev";
  Log 5, "ESA2000 code $cde";

  my $type = "ESA2000_LED";
  foreach my $c (keys %codes) {
    $c = lc($c);
    if($cde =~ m/$c/) {
      $type = $codes{$c};
      last;
    }
  }

  if(!defined($modules{ESA2000}{defptr}{$dev})) {
    Log 3, "Unknown ESA2000 device $dev, please define it";
    $type = "ESA2000" if(!$type);
    return "UNDEFINED ${type}_$dev ESA2000 $dev";
  }

  my $def = $modules{ESA2000}{defptr}{$dev};
  my $name = $def->{NAME};
  return "" if(IsIgnored($name));

  my $now = TimeNow();
  my (@v, @txt);

#  ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =
gmtime(time);
#  $year = $year + 1900;

  my $type1 = "ESA2000_LED"; ## dies setzt die Abfrage ausser Kraft

  if($type1 eq "ESA2000_LED") {

    @txt = ( "repeat", "sequence", "total_ticks", "actual_ticks",
"ticks_kwh", "raw", "total_kwh", "actual_kwh", "diff_kwh", "diff_sec",
"diff_ticks", "last_sec", "raw_total_kwh", "max_kwh", "day_kwh",
"month_kwh", "year_kwh", "rate", "hr_kwh", "lr_kwh", "day_hr_kwh",
"day_lr_kwh", "month_hr_kwh", "month_lr_kwh", "year_hr_kwh",
"year_lr_kwh" );


    # Codierung Hex
    $v[0] =  int(hex($seq) / 128) ? "+" : "-"; # repeated
    $v[1] =  hex($seq) % 128;
    $v[2] =  hex(substr($val,0,8));
    $v[3] =  hex(substr($val,8,4));
    $v[4] =  hex(substr($val,18,4)) ^ 25; # XOR 25, whyever bit 1,4,5
are swapped?!?! Probably a (receive-) error in CUL-FW?

    $v[11] = time();
    # check if low-rate or high-rate. note that this is different per
electricity company! (Here weekday from 6-20 is high rate)
    my ($sec,$min,$hour,$mday,$month,$year,$wday,$yday,$isdst) =
localtime;
    if ( (0 < $wday ) && ($wday < 6) && (5 < $hour) && ($hour < 20) )
{
      $v[17] = "HR";
    } else {
      $v[17] = "LR";
    }

    $v[5] = sprintf("CNT: %d%s CUM: %d CUR: %d  TICKS: %d %s",
                         $v[1], $v[0], $v[2], $v[3], $v[4], $v[17] );

    if (defined($def->{READINGS}{$txt[11]}{VAL})) {
      $v[9] =  $v[11] - $def->{READINGS}{$txt[11]}{VAL}; # seconds
since last update
    }
    if(defined($v[9]) && $v[9] != 0) {
      $v[7] =  $v[3]/$v[4]/$v[9]*3600; # calculate kW/h since last
update
    } else {
      $v[7] = -1;
    }
    $v[8] =  $v[3]/$v[4]; # calculate kWh diff from readings (raw from
device....), whats this relly?
    if(defined($def->{READINGS}{$txt[2]}{VAL})) {
      if($def->{READINGS}{$txt[2]}{VAL} <=$v[2]) { # check for
resetted counter.... only accept increase in counter
        $v[10] = $v[2] - $def->{READINGS}{$txt[2]}{VAL}; # shoudl be
the same as actual_ticks if no packets are lost
      }
    }
    if(defined($v[10])) {
      $v[6] = $v[10]/$v[4] + (defined($def->{READINGS}{$txt[6]}
{VAL}) ? $def->{READINGS}{$txt[6]}{VAL} : 0); # cumulate kWh to ensure
tick-changes are calculated correctly (does this ever happen?)
      if(defined($def->{READINGS}{$txt[14]}{TIME})) {
        if(substr($now,0,10) eq substr($def->{READINGS}{$txt[14]}
{TIME},0,10)) { # a bit clumsy, I agree, but it works and its logical
and this is pearl, right?
          $v[14] = $v[10]/$v[4] + (defined($def->{READINGS}{$txt[14]}
{VAL}) ? $def->{READINGS}{$txt[14]}{VAL} : 0); # cumulate kWh to
ensure tick-changes are calculated correctly (does this ever happen?)
          if ($v[17] eq "HR" ) {
            $v[18] = $v[10]/$v[4] + (defined($def->{READINGS}{$txt[18]}
{VAL}) ? $def->{READINGS}{$txt[18]}{VAL} : 0); # high-rate
          } else {
            $v[19] = $v[10]/$v[4] + (defined($def->{READINGS}{$txt[19]}
{VAL}) ? $def->{READINGS}{$txt[19]}{VAL} : 0); # low-rate
          }
        } else {
          $v[14] = $v[10]/$v[4];
          if ($v[17] eq "HR" ) {
            $v[18] = $v[10]/$v[4];
          } else {
            $v[19] = $v[10]/$v[4];
          }
       }
      } else {
          $v[14] = $v[10]/$v[4];
          if ($v[17] eq "HR" ) {
            $v[18] = $v[10]/$v[4];
          } else {
            $v[19] = $v[10]/$v[4];
          }
        }
      if(defined($def->{READINGS}{$txt[15]}{TIME})) {
        if(substr($now,0,7) eq substr($def->{READINGS}{$txt[15]}{TIME},
0,7)) { # a bit clumsy, I agree, but it works and its logical and this
is pearl, right?
          $v[15] = $v[10]/$v[4] + (defined($def->{READINGS}{$txt[15]}
{VAL}) ? $def->{READINGS}{$txt[15]}{VAL} : 0); # cumulate kWh to
ensure tick-changes are calculated correctly (does this ever happen?)
          if ($v[17] eq "HR" ) {
            $v[20] = $v[10]/$v[4] + (defined($def->{READINGS}{$txt[20]}
{VAL}) ? $def->{READINGS}{$txt[20]}{VAL} : 0); # high-rate
          } else {
            $v[21] = $v[10]/$v[4] + (defined($def->{READINGS}{$txt[21]}
{VAL}) ? $def->{READINGS}{$txt[21]}{VAL} : 0); # low-rate
          }
        } else {
          $v[15] = $v[10]/$v[4];
          if ($v[17] eq "HR" ) {
            $v[20] = $v[10]/$v[4];
          } else {
            $v[21] = $v[10]/$v[4];
          }
        }
      } else {
          $v[15] = $v[10]/$v[4];
          if ($v[17] eq "HR" ) {
            $v[20] = $v[10]/$v[4];
          } else {
            $v[21] = $v[10]/$v[4];
          }
        }
      if(defined($def->{READINGS}{$txt[16]}{TIME})) {
        if(substr($now,0,4) eq substr($def->{READINGS}{$txt[16]}{TIME},
0,4)) { # a bit clumsy, I agree, but it works and its logical and this
is pearl, right?
          $v[16] = $v[10]/$v[4] + (defined($def->{READINGS}{$txt[16]}
{VAL}) ? $def->{READINGS}{$txt[16]}{VAL} : 0); # cumulate kWh to
ensure tick-changes are calculated correctly (does this ever happen?)
          if ($v[17] eq "HR" ) {
            $v[22] = $v[10]/$v[4] + (defined($def->{READINGS}{$txt[22]}
{VAL}) ? $def->{READINGS}{$txt[22]}{VAL} : 0); # high-rate
          } else {
            $v[23] = $v[10]/$v[4] + (defined($def->{READINGS}{$txt[23]}
{VAL}) ? $def->{READINGS}{$txt[23]}{VAL} : 0); # low-rate
          }
        } else {
          $v[16] = $v[10]/$v[4];
          if ($v[17] eq "HR" ) {
            $v[22] = $v[10]/$v[4];
          } else {
            $v[23] = $v[10]/$v[4];
          }
        }
      } else {
          $v[16] = $v[10]/$v[4];
          if ($v[17] eq "HR" ) {
            $v[22] = $v[10]/$v[4];
          } else {
            $v[23] = $v[10]/$v[4];
          }
        }
    } else {
      $v[6] = 0;
    }

    $v[12] =  $v[2]/$v[4]; # calculate kWh total since reset of device
(does only make sense if ticks per kWh does not change!!)
    if(defined($def->{READINGS}{$txt[13]}{VAL})) {
      if($v[7] >= $def->{READINGS}{$txt[13]}{VAL}) {
        $v[13] = $v[7]; # update max kw/h
      }
    } else {
      $v[13] = $v[7]; # update max kw/h
    }


    # add counter_1 and counter_2 (Hoch- und Niedertarif Basiswerte)
    if(defined($attr{$name}) &&
       defined($attr{$name}{"count_1"}) &&
       ($attr{$name}{"count_1"}>0)) {
         $v[13] = $v[12] + $attr{$name}{"count_1"};
      }

    if(defined($attr{$name}) &&
       defined($attr{$name}{"count_2"}) &&
       ($attr{$name}{"count_2"}>0)) {
        $v[13] = $v[12] + $attr{$name}{"count_2"};
      }

    $val = sprintf("CNT: %d%s CUM: %0.3f CUR: %0.3f TICKS: %d %s",
                         $v[1], $v[0], $v[6], $v[7], $v[4], $v[17]);

  } else {

    Log 3, "ESA2000 Device $dev (Unknown type: $type)";
    return "";

  }


  my $max = int(@txt);

  if ( (defined($def->{READINGS}{"sequence"}{VAL}) ? $def->{READINGS}
{"sequence"}{VAL} : "") ne $v[1] ) {
    Log GetLogLevel($name,4), "ESA2000 $name: $val";
    for( my $i = 0; $i < $max; $i++) {
      if ( $v[$i] ) {
        $def->{READINGS}{$txt[$i]}{TIME} = $now;
        $def->{READINGS}{$txt[$i]}{VAL} = $v[$i];
        $def->{CHANGED}[$i] = "$txt[$i]: $v[$i]";
      }
    }
    $def->{READINGS}{type}{TIME} = $now;
    $def->{READINGS}{type}{VAL} = $type;

    $def->{STATE} = $val;
    $def->{CHANGED}[$max++] = $val;
  } else {
    Log GetLogLevel($name,4), "(ESA2000/DISCARDED $name: $val)";
    return "($name)";
  }

  return $name;
}

1;


On 2 Feb., 11:14, udobru wrote:
> Ich habe nun alles versucht... ESA2000 wird erkannt.
> Gibt Meldungen an fhem weiter.
> Es kommt in der log die Fehlermeldung (Unknow type:), woraus ich
> schließen würde, dass der Typ nicht richtig eingetragen ist. Leider
> bekomme ich aber keine weiteren Log Informationen.
>
> Ist wirklich schade...
>
> On 1 Feb., 21:07, udobru wrote:
>
>
>
>
>
>
>
> > Ich habe auch diesen LED Sensor in Betrieb.
>
> > Dieser wurde auch sofort über autocreate in die fhem.cfg eingebunden.
>
> > Im der fhem Log-Datei erscheint nun immer: ESA2000 Device 011e
> > (Unknown type: )
>
> > Ich habe auch schon versucht, wie in anderen Beiträgen erklärt, in die
> > Datei 64ESA2000.pm folgende Einträge zu ergänzen:
>
> > my %codes = (
> >   "011e" => "ESA2000_LED",
> >   "0178" => "ESA2000_LED",
> >    "018f" => "ESA2000_LED",
>
> > leider auch nur Blindleistung !
>
> > Kann mir jemand helfen ?

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Das war es, VIELEN DANK.

Jetzt bekomme ich Daten.

Was mir noch fehlt, ist diese zu interpretieren.
Ich habe mal meine erste Vermutung hinter geschrieben

2012-02-04_01:13:38 ESA2000_011e sequence: 20             # Ich denke
dieses ist eine Nummer Übertragung/Tag
2012-02-04_01:13:38 ESA2000_011e total_ticks: 441514     # Impulse
gesamt
2012-02-04_01:13:38 ESA2000_011e actual_ticks: 167        # Impulse in
der Sequenz
2012-02-04_01:13:38 ESA2000_011e ticks_kwh: 10092        #
Impulswertigkeit = Imp/kWh
2012-02-04_01:13:38 ESA2000_011e raw: CNT: 20- CUM: 441514 CUR: 167
TICKS: 10092 LR    # ?????
2012-02-04_01:13:38 ESA2000_011e total_kwh: 0.0850178359096314     #
Kumulierten kWh
2012-02-04_01:13:38 ESA2000_011e actual_kwh: 0.399811665562729     #
kWh in der Sequenz
2012-02-04_01:13:38 ESA2000_011e diff_kwh: 0.0165477606024574       #
Differenz zur vorhergehenden Sequenz
2012-02-04_01:13:38 ESA2000_011e diff_sec:
149                                  # Dauer der Sequenz
2012-02-04_01:13:38 ESA2000_011e diff_ticks:
167                                # Impulse in der Sequenz
2012-02-04_01:13:38 ESA2000_011e last_sec:
1328314418                     # ???
2012-02-04_01:13:38 ESA2000_011e raw_total_kwh: 43.7489100277447
# ???
2012-02-04_01:13:38 ESA2000_011e max_kwh: 0.399811665562729         #
Max kWh in der Sequenz
2012-02-04_01:13:38 ESA2000_011e day_kwh: 0.0850178359096314        #
Tagesverbrauch in kWh
2012-02-04_01:13:38 ESA2000_011e month_kwh: 0.0850178359096314    #
Monatsverbrauch in kWh
2012-02-04_01:13:38 ESA2000_011e year_kwh: 0.0850178359096314       #
Jahresverbrauch in kWh
2012-02-04_01:13:38 ESA2000_011e rate:
LR                                          # Nieder- / Hochtarif
2012-02-04_01:13:38
ESA2000_011e
# ????
2012-02-04_01:13:38 ESA2000_011e lr_kwh: 0.0850178359096314
# ????
2012-02-04_01:13:38
ESA2000_011e
# ????
2012-02-04_01:13:38 ESA2000_011e day_lr_kwh: 0.0850178359096314
# ????
2012-02-04_01:13:38
ESA2000_011e
# ????
2012-02-04_01:13:38 ESA2000_011e month_lr_kwh: 0.0850178359096314
# ????
2012-02-04_01:13:38
ESA2000_011e
# ????
2012-02-04_01:13:38
ESA2000_011e
# ????
2012-02-04_01:13:38 ESA2000_011e CNT: 20- CUM: 0.085 CUR: 0.400 TICKS:
10092 LR     # ????


# ???? für diese habe ich noch keine Idee, aber ich muss mich jetzt
erst mal orientieren.

Der Wert " ticks_kwh: 10092" macht mich auch noch etwas stutzig.
Sollte das die Zählerkonstante darstellen, wäre diese für meinen
Zähler nicht richtig. Die wäre bei mir genau 10000. Ich müßte diese
dann irgendwie umstellen.
Habe aber jetzt beim überfliegen keinen Punkt gefunden wo ich das tun
könnte.

Auch habe macht mich dieser Wert nachdenklich: "total_kwh:
0.0850178359096314". Ist ja extrem gering.

Die erste Frage die sich mir in den Weg stellt ist: "Muss ich am Gerät
selber die eingestellte Konstante von 10000 auf 0 setzen?.

Aber bei all diesen offenen Fragen möchte ich mich auf alle Fälle für
die Hilfe bedanken.




On 3 Feb., 23:29, "Dr. Volker Daum" wrote:
> Ich hatte das gleiche Problem und habe die pm Datei etwas abgeändert
> wie folgt ( vgl. Kommentar für my $type1 ):
>
> ##############################################
> # (c) by STefan Mayer (stefan(at)clumsy.ch)  #
> #                                            #
> # please feel free to contact me for any     #
> # changes, improvments, suggestions, etc     #
> #                                            #
> ##############################################
> # $Id: 64_ESA2000.pm 1098 2011-11-12 07:51:08Z rudolfkoenig $
>
> package main;
>
> use strict;
> use warnings;
>
> my %codes = (
>   "19fa" => "ESA2000_LED",
>   "63E0" => "ESA2000_LED",
> );
>
> #####################################
> sub
> ESA2000_Initialize($)
> {
>   my ($hash) = @_;
>
> #                        S0119FA011E00007D6E003100000007C9 ESA2000_LED
>
>   $hash->{Match}     = "^S................................\$";
>   $hash->{DefFn}     = "ESA2000_Define";
>   $hash->{UndefFn}   = "ESA2000_Undef";
>   $hash->{ParseFn}   = "ESA2000_Parse";
>   $hash->{AttrList}  = "IODev do_not_notify:0,1 showtime:0,1
> model:esa2000-led loglevel:0,1,2,3,4,5,6 ignore:0,1 base_1 base_2";
>
> }
>
> #####################################
> sub
> ESA2000_Define($$)
> {
>   my ($hash, $def) = @_;
>   my @a = split("[ \t][ \t]*", $def);
>
>   return "wrong syntax: define ESA2000 CODE" if(int(@a) != 3);
>   $a[2] = lc($a[2]);
>   return "Define $a[0]: wrong CODE format: specify a 4 digit hex
> value"
>                 if($a[2] !~ m/^[a-f0-9][a-f0-9][a-f0-9][a-f0-9]$/);
>
>   $hash->{CODE} = $a[2];
>   $modules{ESA2000}{defptr}{$a[2]} = $hash;
>   AssignIoPort($hash);
>   return undef;
>
> }
>
> #####################################
> sub
> ESA2000_Undef($$)
> {
>   my ($hash, $name) = @_;
>   delete($modules{ESA2000}{defptr}{$hash->{CODE}})
>         if(defined($hash->{CODE}) &&
>            defined($modules{ESA2000}{defptr}{$hash->{CODE}}));
>   return undef;
>
> }
>
> #####################################
> sub
> ESA2000_Parse($$)
> {
>   my ($hash, $msg) = @_;
>
> # 0123456789012345678901234567890123456789
> # S0119FA011E00007D6E003100000007C9F9 ESA2000_LED
>   $msg = lc($msg);
>   my $seq = substr($msg, 1, 2);
>   my $cde = substr($msg, 3, 4);
>   my $dev = substr($msg, 7, 4);
>   my $val = substr($msg, 11, 22);
>
>   Log 5, "ESA2000 msg $msg";
>   Log 5, "ESA2000 seq $seq";
>   Log 5, "ESA2000 device $dev";
>   Log 5, "ESA2000 code $cde";
>
>   my $type = "ESA2000_LED";
>   foreach my $c (keys %codes) {
>     $c = lc($c);
>     if($cde =~ m/$c/) {
>       $type = $codes{$c};
>       last;
>     }
>   }
>
>   if(!defined($modules{ESA2000}{defptr}{$dev})) {
>     Log 3, "Unknown ESA2000 device $dev, please define it";
>     $type = "ESA2000" if(!$type);
>     return "UNDEFINED ${type}_$dev ESA2000 $dev";
>   }
>
>   my $def = $modules{ESA2000}{defptr}{$dev};
>   my $name = $def->{NAME};
>   return "" if(IsIgnored($name));
>
>   my $now = TimeNow();
>   my (@v, @txt);
>
> #  ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =
> gmtime(time);
> #  $year = $year + 1900;
>
>   my $type1 = "ESA2000_LED"; ## dies setzt die Abfrage ausser Kraft
>
>   if($type1 eq "ESA2000_LED") {
>
>     @txt = ( "repeat", "sequence", "total_ticks", "actual_ticks",
> "ticks_kwh", "raw", "total_kwh", "actual_kwh", "diff_kwh", "diff_sec",
> "diff_ticks", "last_sec", "raw_total_kwh", "max_kwh", "day_kwh",
> "month_kwh", "year_kwh", "rate", "hr_kwh", "lr_kwh", "day_hr_kwh",
> "day_lr_kwh", "month_hr_kwh", "month_lr_kwh", "year_hr_kwh",
> "year_lr_kwh" );
>
>     # Codierung Hex
>     $v[0] =  int(hex($seq) / 128) ? "+" : "-"; # repeated
>     $v[1] =  hex($seq) % 128;
>     $v[2] =  hex(substr($val,0,8));
>     $v[3] =  hex(substr($val,8,4));
>     $v[4] =  hex(substr($val,18,4)) ^ 25; # XOR 25, whyever bit 1,4,5
> are swapped?!?! Probably a (receive-) error in CUL-FW?
>
>     $v[11] = time();
>     # check if low-rate or high-rate. note that this is different per
> electricity company! (Here weekday from 6-20 is high rate)
>     my ($sec,$min,$hour,$mday,$month,$year,$wday,$yday,$isdst) =
> localtime;
>     if ( (0 < $wday ) && ($wday < 6) && (5 < $hour) && ($hour < 20) )
> {
>       $v[17] = "HR";
>     } else {
>       $v[17] = "LR";
>     }
>
>     $v[5] = sprintf("CNT: %d%s CUM: %d CUR: %d  TICKS: %d %s",
>                          $v[1], $v[0], $v[2], $v[3], $v[4], $v[17] );
>
>     if (defined($def->{READINGS}{$txt[11]}{VAL})) {
>       $v[9] =  $v[11] - $def->{READINGS}{$txt[11]}{VAL}; # seconds
> since last update
>     }
>     if(defined($v[9]) && $v[9] != 0) {
>       $v[7] =  $v[3]/$v[4]/$v[9]*3600; # calculate kW/h since last
> update
>     } else {
>       $v[7] = -1;
>     }
>     $v[8] =  $v[3]/$v[4]; # calculate kWh diff from readings (raw from
> device....), whats this relly?
>     if(defined($def->{READINGS}{$txt[2]}{VAL})) {
>       if($def->{READINGS}{$txt[2]}{VAL} <=$v[2]) { # check for
> resetted counter.... only accept increase in counter
>         $v[10] = $v[2] - $def->{READINGS}{$txt[2]}{VAL}; # shoudl be
> the same as actual_ticks if no packets are lost
>       }
>     }
>     if(defined($v[10])) {
>       $v[6] = $v[10]/$v[4] + (defined($def->{READINGS}{$txt[6]}
> {VAL}) ? $def->{READINGS}{$txt[6]}{VAL} : 0); # cumulate kWh to ensure
> tick-changes are calculated correctly (does this ever happen?)
>       if(defined($def->{READINGS}{$txt[14]}{TIME})) {
>         if(substr($now,0,10) eq substr($def->{READINGS}{$txt[14]}
> {TIME},0,10)) { # a bit clumsy, I agree, but it works and its logical
> and this is pearl, right?
>           $v[14] = $v[10]/$v[4] + (defined($def->{READINGS}{$txt[14]}
> {VAL}) ? $def->{READINGS}{$txt[14]}{VAL} : 0); # cumulate kWh to
> ensure tick-changes are calculated correctly (does this ever happen?)
>           if ($v[17] eq "HR" ) {
>             $v[18] = $v[10]/$v[4] + (defined($def->{READINGS}{$txt[18]}
> {VAL}) ? $def->{READINGS}{$txt[18]}{VAL} : 0); # high-rate
>           } else {
>             $v[19] = $v[10]/$v[4] + (defined($def->{READINGS}{$txt[19]}
> {VAL}) ? $def->{READINGS}{$txt[19]}{VAL} : 0); # low-rate
>           }
>         } else {
>           $v[14] = $v[10]/$v[4];
>           if ($v[17] eq "HR" ) {
>             $v[18] = $v[10]/$v[4];
>           } else {
>             $v[19] = $v[10]/$v[4];
>           }
>        }
>       } else {
>           $v[14] = $v[10]/$v[4];
>           if ($v[17] eq "HR" ) {
>             $v[18] = $v[10]/$v[4];
>           } else {
>             $v[19] = $v[10]/$v[4];
>           }
>         }
>       if(defined($def->{READINGS}{$txt[15]}{TIME})) {
>         if(substr($now,0,7) eq substr($def->{READINGS}{$txt[15]}{TIME},
> 0,7)) { # a bit clumsy, I agree, but it works and its logical and this
> is pearl, right?
>           $v[15] = $v[10]/$v[4] + (defined($def->{READINGS}{$txt[15]}
> {VAL}) ? $def->{READINGS}{$txt[15]}{VAL} : 0); # cumulate kWh to
> ensure tick-changes are calculated correctly (does this ever happen?)
>           if ($v[17] eq "HR" ) {
>             $v[20] = $v[10]/$v[4] + (defined($def->{READINGS}{$txt[20]}
> {VAL}) ? $def->{READINGS}{$txt[20]}{VAL} : 0); # high-rate
>           } else {
>             $v[21] = $v[10]/$v[4] + (defined($def->{READINGS}{$txt[21]}
> {VAL}) ? $def->{READINGS}{$txt[21]}{VAL} : 0); # low-rate
>           }
>         } else {
>           $v[15] = $v[10]/$v[4];
>           if ($v[17] eq "HR" ) {
>             $v[20] = $v[10]/$v[4];
>           } else {
>             $v[21] = $v[10]/$v[4];
>           }
>         }
>       } else {
>           $v[15] = $v[10]/$v[4];
>           if ($v[17] eq "HR" ) {
>             $v[20] = $v[10]/$v[4];
>           } else {
>             $v[21] = $v[10]/$v[4];
>           }
>         }
>       if(defined($def->{READINGS}{$txt[16]}{TIME})) {
>         if(substr($now,0,4) eq substr($def->{READINGS}{$txt[16]}{TIME},
> 0,4)) { # a bit clumsy, I agree, but it works and its logical and this
> is pearl, right?
>           $v[16] = $v[10]/$v[4] + (defined($def->{READINGS}{$txt[16]}
> {VAL}) ? $def->{READINGS}{$txt[16]}{VAL} : 0); # cumulate kWh to
> ensure tick-changes are calculated correctly (does this ever happen?)
>           if ($v[17] eq "HR" ) {
>             $v[22] = $v[10]/$v[4] + (defined($def->{READINGS}{$txt[22]}
> {VAL}) ? $def->{READINGS}{$txt[22]}{VAL} : 0); # high-rate
>           } else {
>             $v[23] = $v[10]/$v[4] + (defined($def->{READINGS}{$txt[23]}
> {VAL}) ? $def->{READINGS}{$txt[23]}{VAL} : 0); # low-rate
>           }
>         } else {
>           $v[16] = $v[10]/$v[4];
>           if ($v[17] eq "HR" ) {
>             $v[22] = $v[10]/$v[4];
>           } else {
>             $v[23] = $v[10]/$v[4];
>           }
>         }
>       } else {
>           $v[16] = $v[10]/$v[4];
>           if ($v[17] eq "HR" ) {
>             $v[22] = $v[10]/$v[4];
>           } else {
>             $v[23] = $v[10]/$v[4];
>           }
>         }
>     } else {
>       $v[6] = 0;
>     }
>
>     $v[12] =  $v[2]/$v[4]; # calculate kWh total since reset of device
> (does only make sense if ticks per kWh does not change!!)
>     if(defined($def->{READINGS}{$txt[13]}{VAL})) {
>       if($v[7] >= $def->{READINGS}{$txt[13]}{VAL}) {
>         $v[13] = $v[7]; # update max kw/h
>       }
>     } else {
>       $v[13] = $v[7]; # update max kw/h
>     }
>
>     # add counter_1 and counter_2 (Hoch- und Niedertarif Basiswerte)
>     if(defined($attr{$name}) &&
>        defined($attr{$name}{"count_1"}) &&
>        ($attr{$name}{"count_1"}>0)) {
>          $v[13] = $v[12] + $attr{$name}{"count_1"};
>       }
>
>     if(defined($attr{$name}) &&
>        defined($attr{$name}{"count_2"}) &&
>        ($attr{$name}{"count_2"}>0)) {
>         $v[13] = $v[12] + $attr{$name}{"count_2"};
>       }
>
>     $val = sprintf("CNT: %d%s CUM: %0.3f CUR: %0.3f TICKS: %d %s",
>                          $v[1], $v[0], $v[6], $v[7], $v[4], $v[17]);
>
>   } else {
>
>     Log 3, "ESA2000 Device $dev (Unknown type: $type)";
>     return "";
>
>   }
>
>   my $max = int(@txt);
>
>   if ( (defined($def->{READINGS}{"sequence"}{VAL}) ? $def->{READINGS}
> {"sequence"}{VAL} : "") ne $v[1] ) {
>     Log GetLogLevel($name,4), "ESA2000 $name: $val";
>     for( my $i = 0; $i < $max; $i++) {
>       if ( $v[$i] ) {
> ...
>
> Erfahren Sie mehr »

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Das kann an dem Sender liegen. Bei meinem Stromzähler war die Anzahl
der Impulse 10000 und nicht 1000 oder 2000 wie in der
Gebrauchsanleitung angegeben. Nach der Anpassung am Sender hatte ich
dann auch die richtigen Werte ohne dass ich Zählerkonstanten anpassen
musste (wäre aber sicherlich auch möglich).


On 4 Feb., 01:34, udobru wrote:
> Das war es, VIELEN DANK.
>
> Jetzt bekomme ich Daten.
>
> Was mir noch fehlt, ist diese zu interpretieren.
> Ich habe mal meine erste Vermutung hinter geschrieben
>
> 2012-02-04_01:13:38 ESA2000_011e sequence: 20             # Ich denke
> dieses ist eine Nummer Übertragung/Tag
> 2012-02-04_01:13:38 ESA2000_011e total_ticks: 441514     # Impulse
> gesamt
> 2012-02-04_01:13:38 ESA2000_011e actual_ticks: 167        # Impulse in
> der Sequenz
> 2012-02-04_01:13:38 ESA2000_011e ticks_kwh: 10092        #
> Impulswertigkeit = Imp/kWh
> 2012-02-04_01:13:38 ESA2000_011e raw: CNT: 20- CUM: 441514 CUR: 167
> TICKS: 10092 LR    # ?????
> 2012-02-04_01:13:38 ESA2000_011e total_kwh: 0.0850178359096314     #
> Kumulierten kWh
> 2012-02-04_01:13:38 ESA2000_011e actual_kwh: 0.399811665562729     #
> kWh in der Sequenz
> 2012-02-04_01:13:38 ESA2000_011e diff_kwh: 0.0165477606024574       #
> Differenz zur vorhergehenden Sequenz
> 2012-02-04_01:13:38 ESA2000_011e diff_sec:
> 149                                  # Dauer der Sequenz
> 2012-02-04_01:13:38 ESA2000_011e diff_ticks:
> 167                                # Impulse in der Sequenz
> 2012-02-04_01:13:38 ESA2000_011e last_sec:1328314418                    # ???
> 2012-02-04_01:13:38 ESA2000_011e raw_total_kwh:43.7489100277447
> # ???
> 2012-02-04_01:13:38 ESA2000_011e max_kwh: 0.399811665562729         #
> Max kWh in der Sequenz
> 2012-02-04_01:13:38 ESA2000_011e day_kwh: 0.0850178359096314        #
> Tagesverbrauch in kWh
> 2012-02-04_01:13:38 ESA2000_011e month_kwh: 0.0850178359096314    #
> Monatsverbrauch in kWh
> 2012-02-04_01:13:38 ESA2000_011e year_kwh: 0.0850178359096314       #
> Jahresverbrauch in kWh
> 2012-02-04_01:13:38 ESA2000_011e rate:
> LR                                          # Nieder- / Hochtarif
> 2012-02-04_01:13:38
> ESA2000_011e
> # ????
> 2012-02-04_01:13:38 ESA2000_011e lr_kwh: 0.0850178359096314
> # ????
> 2012-02-04_01:13:38
> ESA2000_011e
> # ????
> 2012-02-04_01:13:38 ESA2000_011e day_lr_kwh: 0.0850178359096314
> # ????
> 2012-02-04_01:13:38
> ESA2000_011e
> # ????
> 2012-02-04_01:13:38 ESA2000_011e month_lr_kwh: 0.0850178359096314
> # ????
> 2012-02-04_01:13:38
> ESA2000_011e
> # ????
> 2012-02-04_01:13:38
> ESA2000_011e
> # ????
> 2012-02-04_01:13:38 ESA2000_011e CNT: 20- CUM: 0.085 CUR: 0.400 TICKS:
> 10092 LR     # ????
>
> # ???? für diese habe ich noch keine Idee, aber ich muss mich jetzt
> erst mal orientieren.
>
> Der Wert " ticks_kwh: 10092" macht mich auch noch etwas stutzig.
> Sollte das die Zählerkonstante darstellen, wäre diese für meinen
> Zähler nicht richtig. Die wäre bei mir genau 10000. Ich müßte diese
> dann irgendwie umstellen.
> Habe aber jetzt beim überfliegen keinen Punkt gefunden wo ich das tun
> könnte.
>
> Auch habe macht mich dieser Wert nachdenklich: "total_kwh:
> 0.0850178359096314". Ist ja extrem gering.
>
> Die erste Frage die sich mir in den Weg stellt ist: "Muss ich am Gerät
> selber die eingestellte Konstante von 10000 auf 0 setzen?.
>
> Aber bei all diesen offenen Fragen möchte ich mich auf alle Fälle für
> die Hilfe bedanken.
>
> On 3 Feb., 23:29, "Dr. Volker Daum" wrote:
>
>
>
>
>
>
>
> > Ich hatte das gleiche Problem und habe die pm Datei etwas abgeändert
> > wie folgt ( vgl. Kommentar für my $type1 ):
>
> > ##############################################
> > # (c) by STefan Mayer (stefan(at)clumsy.ch)  #
> > #                                            #
> > # please feel free to contact me for any     #
> > # changes, improvments, suggestions, etc     #
> > #                                            #
> > ##############################################
> > # $Id: 64_ESA2000.pm1098 2011-11-1207:51:08Z rudolfkoenig $
>
> > package main;
>
> > use strict;
> > use warnings;
>
> > my %codes = (
> >   "19fa" => "ESA2000_LED",
> >   "63E0" => "ESA2000_LED",
> > );
>
> > #####################################
> > sub
> > ESA2000_Initialize($)
> > {
> >   my ($hash) = @_;
>
> > #                        S0119FA011E00007D6E003100000007C9 ESA2000_LED
>
> >   $hash->{Match}     = "^S................................\$";
> >   $hash->{DefFn}     = "ESA2000_Define";
> >   $hash->{UndefFn}   = "ESA2000_Undef";
> >   $hash->{ParseFn}   = "ESA2000_Parse";
> >   $hash->{AttrList}  = "IODev do_not_notify:0,1 showtime:0,1
> > model:esa2000-led loglevel:0,1,2,3,4,5,6 ignore:0,1 base_1 base_2";
>
> > }
>
> > #####################################
> > sub
> > ESA2000_Define($$)
> > {
> >   my ($hash, $def) = @_;
> >   my @a = split("[ \t][ \t]*", $def);
>
> >   return "wrong syntax: define ESA2000 CODE" if(int(@a) != 3);
> >   $a[2] = lc($a[2]);
> >   return "Define $a[0]: wrong CODE format: specify a 4 digit hex
> > value"
> >                 if($a[2] !~ m/^[a-f0-9][a-f0-9][a-f0-9][a-f0-9]$/);
>
> >   $hash->{CODE} = $a[2];
> >   $modules{ESA2000}{defptr}{$a[2]} = $hash;
> >   AssignIoPort($hash);
> >   return undef;
>
> > }
>
> > #####################################
> > sub
> > ESA2000_Undef($$)
> > {
> >   my ($hash, $name) = @_;
> >   delete($modules{ESA2000}{defptr}{$hash->{CODE}})
> >         if(defined($hash->{CODE}) &&
> >            defined($modules{ESA2000}{defptr}{$hash->{CODE}}));
> >   return undef;
>
> > }
>
> > #####################################
> > sub
> > ESA2000_Parse($$)
> > {
> >   my ($hash, $msg) = @_;
>
> > # 0123456789012345678901234567890123456789
> > # S0119FA011E00007D6E003100000007C9F9 ESA2000_LED
> >   $msg = lc($msg);
> >   my $seq = substr($msg, 1, 2);
> >   my $cde = substr($msg, 3, 4);
> >   my $dev = substr($msg, 7, 4);
> >   my $val = substr($msg, 11, 22);
>
> >   Log 5, "ESA2000 msg $msg";
> >   Log 5, "ESA2000 seq $seq";
> >   Log 5, "ESA2000 device $dev";
> >   Log 5, "ESA2000 code $cde";
>
> >   my $type = "ESA2000_LED";
> >   foreach my $c (keys %codes) {
> >     $c = lc($c);
> >     if($cde =~ m/$c/) {
> >       $type = $codes{$c};
> >       last;
> >     }
> >   }
>
> >   if(!defined($modules{ESA2000}{defptr}{$dev})) {
> >     Log 3, "Unknown ESA2000 device $dev, please define it";
> >     $type = "ESA2000" if(!$type);
> >     return "UNDEFINED ${type}_$dev ESA2000 $dev";
> >   }
>
> >   my $def = $modules{ESA2000}{defptr}{$dev};
> >   my $name = $def->{NAME};
> >   return "" if(IsIgnored($name));
>
> >   my $now = TimeNow();
> >   my (@v, @txt);
>
> > #  ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =
> > gmtime(time);
> > #  $year = $year + 1900;
>
> >   my $type1 = "ESA2000_LED"; ## dies setzt die Abfrage ausser Kraft
>
> >   if($type1 eq "ESA2000_LED") {
>
> >     @txt = ( "repeat", "sequence", "total_ticks", "actual_ticks",
> > "ticks_kwh", "raw", "total_kwh", "actual_kwh", "diff_kwh", "diff_sec",
> > "diff_ticks", "last_sec", "raw_total_kwh", "max_kwh", "day_kwh",
> > "month_kwh", "year_kwh", "rate", "hr_kwh", "lr_kwh", "day_hr_kwh",
> > "day_lr_kwh", "month_hr_kwh", "month_lr_kwh", "year_hr_kwh",
> > "year_lr_kwh" );
>
> >     # Codierung Hex
> >     $v[0] =  int(hex($seq) / 128) ? "+" : "-"; # repeated
> >     $v[1] =  hex($seq) % 128;
> >     $v[2] =  hex(substr($val,0,8));
> >     $v[3] =  hex(substr($val,8,4));
> >     $v[4] =  hex(substr($val,18,4)) ^ 25; # XOR 25, whyever bit 1,4,5
> > are swapped?!?! Probably a (receive-) error in CUL-FW?
>
> >     $v[11] = time();
> >     # check if low-rate or high-rate. note that this is different per
> > electricity company! (Here weekday from 6-20 is high rate)
> >     my ($sec,$min,$hour,$mday,$month,$year,$wday,$yday,$isdst) =
> > localtime;
> >     if ( (0 < $wday ) && ($wday < 6) && (5 < $hour) && ($hour < 20) )
> > {
> >       $v[17] = "HR";
> >     } else {
> >       $v[17] = "LR";
> >     }
>
> >     $v[5] = sprintf("CNT: %d%s CUM: %d CUR: %d  TICKS: %d %s",
> >                          $v[1], $v[0], $v[2], $v[3], $v[4], $v[17] );
>
> >     if (defined($def->{READINGS}{$txt[11]}{VAL})) {
> >       $v[9] =  $v[11] - $def->{READINGS}{$txt[11]}{VAL}; # seconds
> > since last update
> >     }
> >     if(defined($v[9]) && $v[9] != 0) {
> >       $v[7] =  $v[3]/$v[4]/$v[9]*3600; # calculate kW/h since last
> > update
> >     } else {
> >       $v[7] = -1;
> >     }
> >     $v[8] =  $v[3]/$v[4]; # calculate kWh diff from readings (raw from
> > device....), whats this relly?
> >     if(defined($def->{READINGS}{$txt[2]}{VAL})) {
> >       if($def->{READINGS}{$txt[2]}{VAL} <=$v[2]) { # check for
> > resetted counter.... only accept increase in counter
> >         $v[10] = $v[2] - $def->{READINGS}{$txt[2]}{VAL}; # shoudl be
> > the same as actual_ticks if no packets are lost
> >       }
> >     }
> >     if(defined($v[10])) {
> >       $v[6] = $v[10]/$v[4] + (defined($def->{READINGS}{$txt[6]}
> > {VAL}) ? $def->{READINGS}{$txt[6]}{VAL} : 0); # cumulate kWh to ensure
> > tick-changes are calculated correctly (does this ever happen?)
> >       if(defined($def->{READINGS}{$txt[14]}{TIME})) {
> >         if(substr($now,0,10) eq substr($def->{READINGS}{$txt[14]}
> > {TIME},0,10)) { # a bit clumsy, I agree, but it works and its logical
> > and this is pearl, right?
> >           $v[14] = $v[10]/$v[4] + (defined($def->{READINGS}{$txt[14]}
> > {VAL}) ? $def->{READINGS}{$txt[14]}{VAL} : 0); # cumulate kWh to
> > ensure tick-changes are calculated correctly (does this ever happen?)
> >           if ($v[17] eq "HR" ) {
> >             $v[18] = $v[10]/$v[4] + (defined($def->{READINGS}{$txt[18]}
> > {VAL}) ? $def->{READINGS}{$txt[18]}{VAL} : 0); # high-rate
> >           } else {
> >             $v[19] = $v[10]/$v[4] + (defined($def->{READINGS}{$txt[19]}
> > {VAL}) ? $def->{READINGS}{$txt[19]}{VAL} : 0); # low-rate
> >           }
> >         } else {
> >           $v[14] = $v[10]/$v[4];
> >           if ($v[17] eq "HR" ) {
> >             $v[18] = $v[10]/$v[4];
> >           } else {
> >             $v[19] = $v[10]/$v[4];
> >           }
> >        }
> >       } else {
> >
>
> ...
>
> Erfahren Sie mehr »

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Habe jetzt mal versucht, die Werte in ein Plot zu bekommen.

Tue mich da sehr schwer mit. Ich möchte eigentlich, das die Leistung
in kW, nicht die Arbeit in kWh im Plot angezeigt wird.
Ich habe mal versucht durch das Modul 64_ESA2000.pm durch zu hangeln.

Wenn ich das mit meinem "gefährlichen Halbwissen" richtig
interpretiere, müsste ich mit der Formel:

3600 * diff_ticks / ticks_kWh / diff_sec     oder auch:

3600 * $v[10] / $v[4] / $v[9]

doch die aktuelle Leistung errechnen können.
Kann man diese dann an eine .gplot weitergeben und ein Plot von
machen????
Oder gibt es evtl. einen ganz einfachen Weg?

Hast das bei deinem Zähler evtl. als Plot laufen?

On 4 Feb., 10:26, "Dr. Volker Daum" wrote:
> Das kann an dem Sender liegen. Bei meinem Stromzähler war die Anzahl
> der Impulse 10000 und nicht 1000 oder 2000 wie in der
> Gebrauchsanleitung angegeben. Nach der Anpassung am Sender hatte ich
> dann auch die richtigen Werte ohne dass ich Zählerkonstanten anpassen
> musste (wäre aber sicherlich auch möglich).
>
> On 4 Feb., 01:34, udobru wrote:
>
> > Das war es, VIELEN DANK.
>
> > Jetzt bekomme ich Daten.
>
> > Was mir noch fehlt, ist diese zu interpretieren.
> > Ich habe mal meine erste Vermutung hinter geschrieben
>
> > 2012-02-04_01:13:38 ESA2000_011e sequence: 20             # Ich denke
> > dieses ist eine Nummer Übertragung/Tag
> > 2012-02-04_01:13:38 ESA2000_011e total_ticks: 441514     # Impulse
> > gesamt
> > 2012-02-04_01:13:38 ESA2000_011e actual_ticks: 167        # Impulse in
> > der Sequenz
> > 2012-02-04_01:13:38 ESA2000_011e ticks_kwh: 10092        #
> > Impulswertigkeit = Imp/kWh
> > 2012-02-04_01:13:38 ESA2000_011e raw: CNT: 20- CUM: 441514 CUR: 167
> > TICKS: 10092 LR    # ?????
> > 2012-02-04_01:13:38 ESA2000_011e total_kwh: 0.0850178359096314     #
> > Kumulierten kWh
> > 2012-02-04_01:13:38 ESA2000_011e actual_kwh: 0.399811665562729     #
> > kWh in der Sequenz
> > 2012-02-04_01:13:38 ESA2000_011e diff_kwh: 0.0165477606024574       #
> > Differenz zur vorhergehenden Sequenz
> > 2012-02-04_01:13:38 ESA2000_011e diff_sec:
> > 149                                  # Dauer der Sequenz
> > 2012-02-04_01:13:38 ESA2000_011e diff_ticks:
> > 167                                # Impulse in der Sequenz
> > 2012-02-04_01:13:38 ESA2000_011e last_sec:1328314418                    # ???
> > 2012-02-04_01:13:38 ESA2000_011e raw_total_kwh:43.7489100277447
> > # ???
> > 2012-02-04_01:13:38 ESA2000_011e max_kwh: 0.399811665562729         #
> > Max kWh in der Sequenz
> > 2012-02-04_01:13:38 ESA2000_011e day_kwh: 0.0850178359096314        #
> > Tagesverbrauch in kWh
> > 2012-02-04_01:13:38 ESA2000_011e month_kwh: 0.0850178359096314    #
> > Monatsverbrauch in kWh
> > 2012-02-04_01:13:38 ESA2000_011e year_kwh: 0.0850178359096314       #
> > Jahresverbrauch in kWh
> > 2012-02-04_01:13:38 ESA2000_011e rate:
> > LR                                          # Nieder- / Hochtarif
> > 2012-02-04_01:13:38
> > ESA2000_011e
> > # ????
> > 2012-02-04_01:13:38 ESA2000_011e lr_kwh: 0.0850178359096314
> > # ????
> > 2012-02-04_01:13:38
> > ESA2000_011e
> > # ????
> > 2012-02-04_01:13:38 ESA2000_011e day_lr_kwh: 0.0850178359096314
> > # ????
> > 2012-02-04_01:13:38
> > ESA2000_011e
> > # ????
> > 2012-02-04_01:13:38 ESA2000_011e month_lr_kwh: 0.0850178359096314
> > # ????
> > 2012-02-04_01:13:38
> > ESA2000_011e
> > # ????
> > 2012-02-04_01:13:38
> > ESA2000_011e
> > # ????
> > 2012-02-04_01:13:38 ESA2000_011e CNT: 20- CUM: 0.085 CUR: 0.400 TICKS:
> > 10092 LR     # ????
>
> > # ???? für diese habe ich noch keine Idee, aber ich muss mich jetzt
> > erst mal orientieren.
>
> > Der Wert " ticks_kwh: 10092" macht mich auch noch etwas stutzig.
> > Sollte das die Zählerkonstante darstellen, wäre diese für meinen
> > Zähler nicht richtig. Die wäre bei mir genau 10000. Ich müßte diese
> > dann irgendwie umstellen.
> > Habe aber jetzt beim überfliegen keinen Punkt gefunden wo ich das tun
> > könnte.
>
> > Auch habe macht mich dieser Wert nachdenklich: "total_kwh:
> > 0.0850178359096314". Ist ja extrem gering.
>
> > Die erste Frage die sich mir in den Weg stellt ist: "Muss ich am Gerät
> > selber die eingestellte Konstante von 10000 auf 0 setzen?.
>
> > Aber bei all diesen offenen Fragen möchte ich mich auf alle Fälle für
> > die Hilfe bedanken.
>
> > On 3 Feb., 23:29, "Dr. Volker Daum" wrote:
>
> > > Ich hatte das gleiche Problem und habe die pm Datei etwas abgeändert
> > > wie folgt ( vgl. Kommentar für my $type1 ):
>
> > > ##############################################
> > > # (c) by STefan Mayer (stefan(at)clumsy.ch)  #
> > > #                                            #
> > > # please feel free to contact me for any     #
> > > # changes, improvments, suggestions, etc     #
> > > #                                            #
> > > ##############################################
> > > # $Id: 64_ESA2000.pm1098 2011-11-1207:51:08Z rudolfkoenig $
>
> > > package main;
>
> > > use strict;
> > > use warnings;
>
> > > my %codes = (
> > >   "19fa" => "ESA2000_LED",
> > >   "63E0" => "ESA2000_LED",
> > > );
>
> > > #####################################
> > > sub
> > > ESA2000_Initialize($)
> > > {
> > >   my ($hash) = @_;
>
> > > #                        S0119FA011E00007D6E003100000007C9 ESA2000_LED
>
> > >   $hash->{Match}     = "^S................................\$";
> > >   $hash->{DefFn}     = "ESA2000_Define";
> > >   $hash->{UndefFn}   = "ESA2000_Undef";
> > >   $hash->{ParseFn}   = "ESA2000_Parse";
> > >   $hash->{AttrList}  = "IODev do_not_notify:0,1 showtime:0,1
> > > model:esa2000-led loglevel:0,1,2,3,4,5,6 ignore:0,1 base_1 base_2";
>
> > > }
>
> > > #####################################
> > > sub
> > > ESA2000_Define($$)
> > > {
> > >   my ($hash, $def) = @_;
> > >   my @a = split("[ \t][ \t]*", $def);
>
> > >   return "wrong syntax: define ESA2000 CODE" if(int(@a) != 3);
> > >   $a[2] = lc($a[2]);
> > >   return "Define $a[0]: wrong CODE format: specify a 4 digit hex
> > > value"
> > >                 if($a[2] !~ m/^[a-f0-9][a-f0-9][a-f0-9][a-f0-9]$/);
>
> > >   $hash->{CODE} = $a[2];
> > >   $modules{ESA2000}{defptr}{$a[2]} = $hash;
> > >   AssignIoPort($hash);
> > >   return undef;
>
> > > }
>
> > > #####################################
> > > sub
> > > ESA2000_Undef($$)
> > > {
> > >   my ($hash, $name) = @_;
> > >   delete($modules{ESA2000}{defptr}{$hash->{CODE}})
> > >         if(defined($hash->{CODE}) &&
> > >            defined($modules{ESA2000}{defptr}{$hash->{CODE}}));
> > >   return undef;
>
> > > }
>
> > > #####################################
> > > sub
> > > ESA2000_Parse($$)
> > > {
> > >   my ($hash, $msg) = @_;
>
> > > # 0123456789012345678901234567890123456789
> > > # S0119FA011E00007D6E003100000007C9F9 ESA2000_LED
> > >   $msg = lc($msg);
> > >   my $seq = substr($msg, 1, 2);
> > >   my $cde = substr($msg, 3, 4);
> > >   my $dev = substr($msg, 7, 4);
> > >   my $val = substr($msg, 11, 22);
>
> > >   Log 5, "ESA2000 msg $msg";
> > >   Log 5, "ESA2000 seq $seq";
> > >   Log 5, "ESA2000 device $dev";
> > >   Log 5, "ESA2000 code $cde";
>
> > >   my $type = "ESA2000_LED";
> > >   foreach my $c (keys %codes) {
> > >     $c = lc($c);
> > >     if($cde =~ m/$c/) {
> > >       $type = $codes{$c};
> > >       last;
> > >     }
> > >   }
>
> > >   if(!defined($modules{ESA2000}{defptr}{$dev})) {
> > >     Log 3, "Unknown ESA2000 device $dev, please define it";
> > >     $type = "ESA2000" if(!$type);
> > >     return "UNDEFINED ${type}_$dev ESA2000 $dev";
> > >   }
>
> > >   my $def = $modules{ESA2000}{defptr}{$dev};
> > >   my $name = $def->{NAME};
> > >   return "" if(IsIgnored($name));
>
> > >   my $now = TimeNow();
> > >   my (@v, @txt);
>
> > > #  ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =
> > > gmtime(time);
> > > #  $year = $year + 1900;
>
> > >   my $type1 = "ESA2000_LED"; ## dies setzt die Abfrage ausser Kraft
>
> > >   if($type1 eq "ESA2000_LED") {
>
> > >     @txt = ( "repeat", "sequence", "total_ticks", "actual_ticks",
> > > "ticks_kwh", "raw", "total_kwh", "actual_kwh", "diff_kwh", "diff_sec",
> > > "diff_ticks", "last_sec", "raw_total_kwh", "max_kwh", "day_kwh",
> > > "month_kwh", "year_kwh", "rate", "hr_kwh", "lr_kwh", "day_hr_kwh",
> > > "day_lr_kwh", "month_hr_kwh", "month_lr_kwh", "year_hr_kwh",
> > > "year_lr_kwh" );
>
> > >     # Codierung Hex
> > >     $v[0] =  int(hex($seq) / 128) ? "+" : "-"; # repeated
> > >     $v[1] =  hex($seq) % 128;
> > >     $v[2] =  hex(substr($val,0,8));
> > >     $v[3] =  hex(substr($val,8,4));
> > >     $v[4] =  hex(substr($val,18,4)) ^ 25; # XOR 25, whyever bit 1,4,5
> > > are swapped?!?! Probably a (receive-) error in CUL-FW?
>
> > >     $v[11] = time();
> > >     # check if low-rate or high-rate. note that this is different per
> > > electricity company! (Here weekday from 6-20 is high rate)
> > >     my ($sec,$min,$hour,$mday,$month,$year,$wday,$yday,$isdst) =
> > > localtime;
> > >     if ( (0 < $wday ) && ($wday < 6) && (5 < $hour) && ($hour < 20) )
> > > {
> > >       $v[17] = "HR";
> > >     } else {
> > >       $v[17] = "LR";
> > >     }
>
> > >     $v[5] = sprintf("CNT: %d%s CUM: %d CUR: %d  TICKS: %d %s",
> > >                          $v[1], $v[0], $v[2], $v[3], $v[4], $v[17] );
>
> > >     if (defined($def->{READINGS}{$txt[11]}{VAL})) {
> > >       $v[9] =  $v[11] - $def->{READINGS}{$txt[11]}{VAL}; # seconds
> > > since last update
> > >     }
> > >     if(defined($v[9]) && $v[9] != 0) {
> > >       $v[7] =  $v[3]/$v[4]/$v[9]*3600; # calculate kW/h since last
> > > update
> > >     } else {
> > >       $v[7] = -1;
> > >     }
> > >     $v[8] =  $v[3]/$v[4]; # calculate kWh diff from readings (raw from
> > > device....), whats this relly?
> > >     if(defined($def->{READINGS}{$txt[2]}{VAL})) {
> > >       if($def->{READINGS}{$txt[2]}{VAL} <=$v[2]) { # check for
> > > resetted counter.... only accept increase in counter
> > >         $v[10] = $v[2] - $def->{READINGS}{$txt[2]}{VAL}; # shoudl be
> > > the same as actual_ticks if no packets are lost
> > >       }
> > >     }
> > >     if(defined($v[10])) {
> > >       $v[6] = $v[10]/$v[4] + (defined($def->{READINGS}{$txt[6]}
> > > {VAL}) ? $def->{READINGS}{$txt[6]}{VAL} : 0); # cumulate kWh to ensure
> > > tick-changes are calculated correctly (does this ever happen?)
> > >       if(defined($def->{READINGS}{$txt[14]}{TIME})) {
> > >         if(substr($now,0,10) eq substr($def->{READINGS}{$txt[14]}
> > > {TIME},0,10)) { # a bit clumsy, I agree,
>
> ...
>
> Erfahren Sie mehr »

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Kann mir jemand von den Perl Experten helfen?

Ich möchte gerne aus diesem Modul die tatsächliche Leistung heraus
haben.
Diese dann in dem Plot mit anzeigen.

Kann mir das jemand umbasteln.
Ich habe versucht es vorsichtig zu ändern.
Ich kann wohl den Plot ändern, so das andere der vorgegebenen Wert
geplottet werden, kann aber meine Formel
zur Berechnung nicht unter bringen.
Ich weiß schlicht und ergreifend nicht wo.

Falls mir jemand bereit wäre mir zu helfen, würde ich noch mal mit
näheren Informationen kommen, falls nötig.

On 5 Feb., 01:15, udobru wrote:
> Habe jetzt mal versucht, die Werte in ein Plot zu bekommen.
>
> Tue mich da sehr schwer mit. Ich möchte eigentlich, das die Leistung
> in kW, nicht die Arbeit in kWh im Plot angezeigt wird.
> Ich habe mal versucht durch das Modul 64_ESA2000.pm durch zu hangeln.
>
> Wenn ich das mit meinem "gefährlichen Halbwissen" richtig
> interpretiere, müsste ich mit der Formel:
>
> 3600 * diff_ticks / ticks_kWh / diff_sec     oder auch:
>
> 3600 * $v[10] / $v[4] / $v[9]
>
> doch die aktuelle Leistung errechnen können.
> Kann man diese dann an eine .gplot weitergeben und ein Plot von
> machen????
> Oder gibt es evtl. einen ganz einfachen Weg?
>
> Hast das bei deinem Zähler evtl. als Plot laufen?
>
> On 4 Feb., 10:26, "Dr. Volker Daum" wrote:
>
> > Das kann an dem Sender liegen. Bei meinem Stromzähler war die Anzahl
> > der Impulse 10000 und nicht 1000 oder 2000 wie in der
> > Gebrauchsanleitung angegeben. Nach der Anpassung am Sender hatte ich
> > dann auch die richtigen Werte ohne dass ich Zählerkonstanten anpassen
> > musste (wäre aber sicherlich auch möglich).
>
> > On 4 Feb., 01:34, udobru wrote:
>
> > > Das war es, VIELEN DANK.
>
> > > Jetzt bekomme ich Daten.
>
> > > Was mir noch fehlt, ist diese zu interpretieren.
> > > Ich habe mal meine erste Vermutung hinter geschrieben
>
> > > 2012-02-04_01:13:38 ESA2000_011e sequence: 20             # Ich denke
> > > dieses ist eine Nummer Übertragung/Tag
> > > 2012-02-04_01:13:38 ESA2000_011e total_ticks: 441514     # Impulse
> > > gesamt
> > > 2012-02-04_01:13:38 ESA2000_011e actual_ticks: 167        # Impulse in
> > > der Sequenz
> > > 2012-02-04_01:13:38 ESA2000_011e ticks_kwh: 10092        #
> > > Impulswertigkeit = Imp/kWh
> > > 2012-02-04_01:13:38 ESA2000_011e raw: CNT: 20- CUM: 441514 CUR: 167
> > > TICKS: 10092 LR    # ?????
> > > 2012-02-04_01:13:38 ESA2000_011e total_kwh: 0.0850178359096314     #
> > > Kumulierten kWh
> > > 2012-02-04_01:13:38 ESA2000_011e actual_kwh: 0.399811665562729     #
> > > kWh in der Sequenz
> > > 2012-02-04_01:13:38 ESA2000_011e diff_kwh: 0.0165477606024574       #
> > > Differenz zur vorhergehenden Sequenz
> > > 2012-02-04_01:13:38 ESA2000_011e diff_sec:
> > > 149                                  # Dauer der Sequenz
> > > 2012-02-04_01:13:38 ESA2000_011e diff_ticks:
> > > 167                                # Impulse in der Sequenz
> > > 2012-02-04_01:13:38 ESA2000_011e last_sec:1328314418                    # ???
> > > 2012-02-04_01:13:38 ESA2000_011e raw_total_kwh:43.7489100277447
> > > # ???
> > > 2012-02-04_01:13:38 ESA2000_011e max_kwh: 0.399811665562729         #
> > > Max kWh in der Sequenz
> > > 2012-02-04_01:13:38 ESA2000_011e day_kwh: 0.0850178359096314        #
> > > Tagesverbrauch in kWh
> > > 2012-02-04_01:13:38 ESA2000_011e month_kwh: 0.0850178359096314    #
> > > Monatsverbrauch in kWh
> > > 2012-02-04_01:13:38 ESA2000_011e year_kwh: 0.0850178359096314       #
> > > Jahresverbrauch in kWh
> > > 2012-02-04_01:13:38 ESA2000_011e rate:
> > > LR                                          # Nieder- / Hochtarif
> > > 2012-02-04_01:13:38
> > > ESA2000_011e
> > > # ????
> > > 2012-02-04_01:13:38 ESA2000_011e lr_kwh: 0.0850178359096314
> > > # ????
> > > 2012-02-04_01:13:38
> > > ESA2000_011e
> > > # ????
> > > 2012-02-04_01:13:38 ESA2000_011e day_lr_kwh: 0.0850178359096314
> > > # ????
> > > 2012-02-04_01:13:38
> > > ESA2000_011e
> > > # ????
> > > 2012-02-04_01:13:38 ESA2000_011e month_lr_kwh: 0.0850178359096314
> > > # ????
> > > 2012-02-04_01:13:38
> > > ESA2000_011e
> > > # ????
> > > 2012-02-04_01:13:38
> > > ESA2000_011e
> > > # ????
> > > 2012-02-04_01:13:38 ESA2000_011e CNT: 20- CUM: 0.085 CUR: 0.400 TICKS:
> > > 10092 LR     # ????
>
> > > # ???? für diese habe ich noch keine Idee, aber ich muss mich jetzt
> > > erst mal orientieren.
>
> > > Der Wert " ticks_kwh: 10092" macht mich auch noch etwas stutzig.
> > > Sollte das die Zählerkonstante darstellen, wäre diese für meinen
> > > Zähler nicht richtig. Die wäre bei mir genau 10000. Ich müßte diese
> > > dann irgendwie umstellen.
> > > Habe aber jetzt beim überfliegen keinen Punkt gefunden wo ich das tun
> > > könnte.
>
> > > Auch habe macht mich dieser Wert nachdenklich: "total_kwh:
> > > 0.0850178359096314". Ist ja extrem gering.
>
> > > Die erste Frage die sich mir in den Weg stellt ist: "Muss ich am Gerät
> > > selber die eingestellte Konstante von 10000 auf 0 setzen?.
>
> > > Aber bei all diesen offenen Fragen möchte ich mich auf alle Fälle für
> > > die Hilfe bedanken.
>
> > > On 3 Feb., 23:29, "Dr. Volker Daum" wrote:
>
> > > > Ich hatte das gleiche Problem und habe die pm Datei etwas abgeändert
> > > > wie folgt ( vgl. Kommentar für my $type1 ):
>
> > > > ##############################################
> > > > # (c) by STefan Mayer (stefan(at)clumsy.ch)  #
> > > > #                                            #
> > > > # please feel free to contact me for any     #
> > > > # changes, improvments, suggestions, etc     #
> > > > #                                            #
> > > > ##############################################
> > > > # $Id: 64_ESA2000.pm1098 2011-11-1207:51:08Z rudolfkoenig $
>
> > > > package main;
>
> > > > use strict;
> > > > use warnings;
>
> > > > my %codes = (
> > > >   "19fa" => "ESA2000_LED",
> > > >   "63E0" => "ESA2000_LED",
> > > > );
>
> > > > #####################################
> > > > sub
> > > > ESA2000_Initialize($)
> > > > {
> > > >   my ($hash) = @_;
>
> > > > #                        S0119FA011E00007D6E003100000007C9 ESA2000_LED
>
> > > >   $hash->{Match}     = "^S................................\$";
> > > >   $hash->{DefFn}     = "ESA2000_Define";
> > > >   $hash->{UndefFn}   = "ESA2000_Undef";
> > > >   $hash->{ParseFn}   = "ESA2000_Parse";
> > > >   $hash->{AttrList}  = "IODev do_not_notify:0,1 showtime:0,1
> > > > model:esa2000-led loglevel:0,1,2,3,4,5,6 ignore:0,1 base_1 base_2";
>
> > > > }
>
> > > > #####################################
> > > > sub
> > > > ESA2000_Define($$)
> > > > {
> > > >   my ($hash, $def) = @_;
> > > >   my @a = split("[ \t][ \t]*", $def);
>
> > > >   return "wrong syntax: define ESA2000 CODE" if(int(@a) != 3);
> > > >   $a[2] = lc($a[2]);
> > > >   return "Define $a[0]: wrong CODE format: specify a 4 digit hex
> > > > value"
> > > >                 if($a[2] !~ m/^[a-f0-9][a-f0-9][a-f0-9][a-f0-9]$/);
>
> > > >   $hash->{CODE} = $a[2];
> > > >   $modules{ESA2000}{defptr}{$a[2]} = $hash;
> > > >   AssignIoPort($hash);
> > > >   return undef;
>
> > > > }
>
> > > > #####################################
> > > > sub
> > > > ESA2000_Undef($$)
> > > > {
> > > >   my ($hash, $name) = @_;
> > > >   delete($modules{ESA2000}{defptr}{$hash->{CODE}})
> > > >         if(defined($hash->{CODE}) &&
> > > >            defined($modules{ESA2000}{defptr}{$hash->{CODE}}));
> > > >   return undef;
>
> > > > }
>
> > > > #####################################
> > > > sub
> > > > ESA2000_Parse($$)
> > > > {
> > > >   my ($hash, $msg) = @_;
>
> > > > # 0123456789012345678901234567890123456789
> > > > # S0119FA011E00007D6E003100000007C9F9 ESA2000_LED
> > > >   $msg = lc($msg);
> > > >   my $seq = substr($msg, 1, 2);
> > > >   my $cde = substr($msg, 3, 4);
> > > >   my $dev = substr($msg, 7, 4);
> > > >   my $val = substr($msg, 11, 22);
>
> > > >   Log 5, "ESA2000 msg $msg";
> > > >   Log 5, "ESA2000 seq $seq";
> > > >   Log 5, "ESA2000 device $dev";
> > > >   Log 5, "ESA2000 code $cde";
>
> > > >   my $type = "ESA2000_LED";
> > > >   foreach my $c (keys %codes) {
> > > >     $c = lc($c);
> > > >     if($cde =~ m/$c/) {
> > > >       $type = $codes{$c};
> > > >       last;
> > > >     }
> > > >   }
>
> > > >   if(!defined($modules{ESA2000}{defptr}{$dev})) {
> > > >     Log 3, "Unknown ESA2000 device $dev, please define it";
> > > >     $type = "ESA2000" if(!$type);
> > > >     return "UNDEFINED ${type}_$dev ESA2000 $dev";
> > > >   }
>
> > > >   my $def = $modules{ESA2000}{defptr}{$dev};
> > > >   my $name = $def->{NAME};
> > > >   return "" if(IsIgnored($name));
>
> > > >   my $now = TimeNow();
> > > >   my (@v, @txt);
>
> > > > #  ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =
> > > > gmtime(time);
> > > > #  $year = $year + 1900;
>
> > > >   my $type1 = "ESA2000_LED"; ## dies setzt die Abfrage ausser Kraft
>
> > > >   if($type1 eq "ESA2000_LED") {
>
> > > >     @txt = ( "repeat", "sequence", "total_ticks", "actual_ticks",
> > > > "ticks_kwh", "raw", "total_kwh", "actual_kwh", "diff_kwh", "diff_sec",
> > > > "diff_ticks", "last_sec", "raw_total_kwh", "max_kwh", "day_kwh",
> > > > "month_kwh", "year_kwh", "rate", "hr_kwh", "lr_kwh", "day_hr_kwh",
> > > > "day_lr_kwh", "month_hr_kwh", "month_lr_kwh", "year_hr_kwh",
> > > > "year_lr_kwh" );
>
> > > >     # Codierung Hex
> > > >     $v[0] =  int(hex($seq) / 128) ? "+" : "-"; # repeated
> > > >     $v[1] =  hex($seq) % 128;
> > > >     $v[2] =  hex(substr($val,0,8));
> > > >     $v[3] =  hex(substr($val,8,4));
> > > >     $v[4] =  hex(substr($val,18,4)) ^ 25; # XOR 25, whyever bit 1,4,5
> > > > are swapped?!?! Probably a (receive-) error in CUL-FW?
>
> > > >     $v[11] = time();
> > > >     # check if low-rate or high-rate. note that this is different per
> > > > electricity company! (Here weekday from 6-20 is high rate)
> > > >     my ($sec,$min,$hour,$mday,$month,$year,$wday,$yday,$isdst) =
> > > > localtime;
> > > >     if ( (0 < $wday ) && ($wday < 6) && (5 < $hour) && ($hour < 20) )
> > > > {
> > > >       $v[17] = "HR";
> > > >     } else {
> > > >       $v[17] = "LR";
> > > >     }
>
> > > >     $v[5] = sprintf("CNT: %d%s CUM: %d CUR: %d  TICKS: %d %s",
> > > >                          $v[1], $v[0], $v[2], $v[3], $v[4], $v[17] );
>
> > > >     if (defined($def->{READINGS}{$txt[11]}{VAL})) {
> > > >       $v[9] =  $v[11] -
>
> ...
>
> Erfahren Sie mehr »

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com