ESA / EM unterstüzung in FHEM

Begonnen von Predictor, 26 Dezember 2012, 21:51:50

Vorheriges Thema - Nächstes Thema

mikka1

Müsste ich in dem Fall die 19_CUL_ESA.pm von Katastrophos nehmen und manuell kreieren. Der 1000WZ_LED wird als ESA200-LED per autocreate eingebunden.

stromer-12

Zitat von: mikka1 schrieb am Fr, 01 März 2013 17:182013.03.01 17:18:52 1: ESA2000 msg s1768c5011e000000bb0000001fc503cb
2013.03.01 17:18:52 1: ESA2000 seq 17
2013.03.01 17:18:52 1: ESA2000 device 68c5
2013.03.01 17:18:52 1: ESA2000 code 011e

War hier gerade kein Stromverbrauch, bzw welcher Teiler (1000) war hier eingestellt.

Habe mir gerade mal die 19_CUL_ESA angesehen, bis auf den Part den ESA2000 nicht nutzt (Zeitstempel) sind die Daten identisch
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL

mikka1

Da waren am 1000WZ-LED 931 eingestellt, jetz habe ich wieder auf 1000 gestellt unten der entsprechende Auszug

2013.03.01 19:13:45 1: ESA2000 msg sc468c5011e000000bb00000022740380
2013.03.01 19:13:45 1: ESA2000 seq c4
2013.03.01 19:13:45 1: ESA2000 device 68c5
2013.03.01 19:13:45 1: ESA2000 code 011e

stromer-12

Zitat von: mikka1 schrieb am Fr, 01 März 2013 19:16Da waren am 1000WZ-LED 931 eingestellt, jetz habe ich wieder auf 1000 gestellt unten der entsprechende Auszug

2013.03.01 19:13:45 1: ESA2000 msg sc468c5011e000000bb00000022740380
2013.03.01 19:13:45 1: ESA2000 seq c4
2013.03.01 19:13:45 1: ESA2000 device 68c5
2013.03.01 19:13:45 1: ESA2000 code 011e

Da passt zumindest meine Beobachtung mit dem Teiler.
Ändere einmal folgende Zeile in der 64_ESA2000.pm.

Zeile 120 von:

$v[4] =  hex(substr($val,18,4)) ^ 25; # XOR 25, whyever bit 1,4,5 are swapped?!?! Probably a (receive-) error in CUL-FW?

zu:

$v[4] =  hex(substr($val,18,4)) ^ hex(substr($msg,3,2));


Damit sollte der Teiler stimmen.

"reload 64_ESA2000.pm" nicht vergessen.
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL

mikka1

Passt, besten Dank.

2013-03-01_20:35:03 ESA2000_68c5 repeat: -
2013-03-01_20:35:03 ESA2000_68c5 sequence: 100
2013-03-01_20:35:03 ESA2000_68c5 total_ticks: 187
2013-03-01_20:35:03 ESA2000_68c5
2013-03-01_20:35:03 ESA2000_68c5 ticks_kwh: 1000
2013-03-01_20:35:03 ESA2000_68c5 raw: CNT: 100- CUM: 187 CUR: 0  TICKS: 1000 LR
2013-03-01_20:35:03 ESA2000_68c5
2013-03-01_20:35:03 ESA2000_68c5
2013-03-01_20:35:03 ESA2000_68c5
2013-03-01_20:35:03 ESA2000_68c5 diff_sec: 3062
2013-03-01_20:35:03 ESA2000_68c5
2013-03-01_20:35:03 ESA2000_68c5 last_sec: 1362166503
2013-03-01_20:35:03 ESA2000_68c5 raw_total_kwh: 0.187
2013-03-01_20:35:03 ESA2000_68c5
2013-03-01_20:35:03 ESA2000_68c5
2013-03-01_20:35:03 ESA2000_68c5
2013-03-01_20:35:03 ESA2000_68c5
2013-03-01_20:35:03 ESA2000_68c5 rate: LR
2013-03-01_20:35:03 ESA2000_68c5
2013-03-01_20:35:03 ESA2000_68c5
2013-03-01_20:35:03 ESA2000_68c5
2013-03-01_20:35:03 ESA2000_68c5
2013-03-01_20:35:03 ESA2000_68c5
2013-03-01_20:35:03 ESA2000_68c5
2013-03-01_20:35:03 ESA2000_68c5
2013-03-01_20:35:03 ESA2000_68c5
2013-03-01_20:35:03 ESA2000_68c5 CNT: 100- CUM: 0.000 CUR: 0.000 TICKS: 1000 LR

Ich war doof, ich habe mir schon vorher deine Korrekturen angeschaut, auch die genannte, habe aber den Teil hinter der Raute geänder... ;-(

stromer-12

So, habe noch ein Paar Änderungen vorgenommen, "readingFnAttributes" werden jetzt unterstützt.
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL

rudolfkoenig

Ich wuerde es einchecken, kann es aber leider nicht testen. Insb. die Aenderungen, die $cde und $dev umtauschen machen mir etwas Kopfzereberechen. Kann das jemand ausser str0mer bestaetigen, dass es funktioniert?

Apropos Kommentar:
# XOR 25, whyever bit 1,4,5 are swapped?!?! Probably a (receive-) error in CUL-FW?

Culfw dreht weder bits noch bytes um. Empfangsfehler ist moeglich aber wg. CRC unwahrscheinlich.

stromer-12

Zitat von: rudolfkoenig schrieb am Mo, 04 März 2013 11:50Ich wuerde es einchecken, kann es aber leider nicht testen. Insb. die Aenderungen, die $cde und $dev umtauschen machen mir etwas Kopfzereberechen. Kann das jemand ausser str0mer bestaetigen, dass es funktioniert?

Ich hatte ein paar Kennungen Zusammengetragen. Bei mir selber haben alle 3 ein 011e, das wie es ausschaut alle gemeinsam haben.
Es musste bisher von jeden der Code in der Datei angepasst werden.

ZitatApropos Kommentar:
# XOR 25, whyever bit 1,4,5 are swapped?!?! Probably a (receive-) error in CUL-FW?

Culfw dreht weder bits noch bytes um. Empfangsfehler ist moeglich aber wg. CRC unwahrscheinlich.
das war ein Kommentar vom Programm Autor da er wohl keine weitere Testmöglichtkeit hatte.
Es wird der Impulsteiler mit dem höherwertigen Byte der GeräteID XOR verknüpft.
Danach erscheint der richtige Wert des Impulsteilers wie er im Gerät eingestellt ist.

Habe aber noch eine Abweichung zur Vorgängerversion festgestellt. Die CNT:... Zeile wird im Moment nicht ins Log geschrieben. Muss mal sehen, was ich da anders machen muss.
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL

Johannes

Zitat von: rudolfkoenig schrieb am Mo, 04 März 2013 11:50Ich wuerde es einchecken, kann es aber leider nicht testen. Insb. die Aenderungen, die $cde und $dev umtauschen machen mir etwas Kopfzereberechen. Kann das jemand ausser str0mer bestaetigen, dass es funktioniert?
Ich teste das gerade, bekomme damit aber meinen ESA2000_LED nicht ans laufen.
Habe den folgenden Codeblock aus meiner aktuellen 64_ESA2000.pm in die von Stromer übernommen

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

bringt


Unknown ESA2000 device 6461, please define it


Änderung auf

my %codes = (
  "6461" => "ESA2000_LED",
);


als auch


my %codes = (
  "6461" => "ESA2000",
);


brachte den selben Fehler.

Austausch der Zeilen dev und cde zurück auf den Ursprung:

my $cde = substr($msg, 3, 4);
my $dev = substr($msg, 7, 4);


funktioniert zusammen mit den codes:


my %codes = (
  "6461" => "ESA2000",
);

einwandfrei.
Fazit: So sollte es nicht eingecheckt werden.
Lasse es jetzt in der aktuellen Konfiguration, also mit den alten Deklarationen zu dev und code erstmal laufen und schaue, ob Probleme kommen.
Stehe gerne für weitere Tests bereit.

Gruß,
Johannes

Johannes

Zitat von: str0mer schrieb am Mo, 04 März 2013 18:30Habe aber noch eine Abweichung zur Vorgängerversion festgestellt. Die CNT:... Zeile wird im Moment nicht ins Log geschrieben. Muss mal sehen, was ich da anders machen muss.
Kann ich bestätigen

stromer-12

Zitat von: Johannes schrieb am Mo, 04 März 2013 19:36
Zitat von: rudolfkoenig schrieb am Mo, 04 März 2013 11:50Ich wuerde es einchecken, kann es aber leider nicht testen. Insb. die Aenderungen, die $cde und $dev umtauschen machen mir etwas Kopfzereberechen. Kann das jemand ausser str0mer bestaetigen, dass es funktioniert?
Ich teste das gerade, bekomme damit aber meinen ESA2000_LED nicht ans laufen.
Habe den folgenden Codeblock aus meiner aktuellen 64_ESA2000.pm in die von Stromer übernommen

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

bringt


Unknown ESA2000 device 6461, please define it


Diese 6461 ist der Wert welcher beim define angegeben werden muss, den musste bisher jeder in die esa2000.pm selber eintragen.
Die 011e, welche bei dir sicherlich im define steht, hat jedes Gerät.

Gruß
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL

Johannes

mein define:

define ESA2000_LED_011e ESA2000 011e

meine codes:

my %codes = (
  "6461" => "ESA2000",
);

das Parsing:

  my $cde = substr($msg, 3, 4);
  my $dev = substr($msg, 7, 4);

Damit läufts. Umgekehrt (cde durch dev getauscht) nicht. Wollte damit gesagt haben, dass das also nicht für alle problemlos umgedreht werden kann. Oder habe ich einen Denkfehler?

stromer-12

Zitat von: Johannes schrieb am Mo, 04 März 2013 20:12mein define:

define ESA2000_LED_011e ESA2000 011e
Hier sollte die 6461 rein, da braucht man an der 64_ESA2000.pm nichts mehr anpassen.
das 011e darf es in der Fhem ja nur einmal geben, und ich hätte bei mir 3 davon gehabt.
Zitatmeine codes:

my %codes = (
  "6461" => "ESA2000",
);

das Parsing:

  my $cde = substr($msg, 3, 4);
  my $dev = substr($msg, 7, 4);

Damit läufts. Umgekehrt (cde durch dev getauscht) nicht. Wollte damit gesagt haben, dass das also nicht für alle problemlos umgedreht werden kann. Oder habe ich einen Denkfehler?
Diese Änderung braucht du bei dir nicht. Ich musste das ändern, damit erzeugt autocreate bei mir 3 Geräte und die zugehörigen Logfiles welche auch je Gerät befüllt werden.
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL

mikka1

So, ich melde mich auch mal wieder. Ich habe einen Bausatz, ESA 1000WZ_LED und einen Fertigen Zähler, ESA2000_LED, laut ELV ist der unterschied nur die Spannungsversorgung und der 1000 ist ein Bausatz, der 2000 ist komplett zusammengebaut.
Habe die 64_ESA2000.pm von str0mer unverändert eingefügt (besten Dank), ohne jedoch bei my codes etwas zu ändern. Danach neu shutdown restart und die 2 Zähler angehängt.
Die beiden Zähler werden jetzt erkannt, und das jeweilige Log füllt sich, mein Problem ist, ich kriege keine Ticks.
Ausserdem erscheint im fhem.log kein Eintrag mehr, die Einträge erscheinen nur im jeweiligen Device Log.
Hat da ev. jemand eine Idee?

Hier noch die jeweiligen Log Einträge:

COC_RAWMSG: SA96205011E000000010000000000038A2C

2013-03-04_21:08:43 ESA2000_6205 repeat: -
2013-03-04_21:08:43 ESA2000_6205 sequence: 41
2013-03-04_21:08:43 ESA2000_6205 total_ticks: 1
2013-03-04_21:08:43 ESA2000_6205 actual_ticks: 0
2013-03-04_21:08:43 ESA2000_6205 ticks_kwh: 1000
2013-03-04_21:08:43 ESA2000_6205 raw: CNT: 41- CUM: 1 CUR: 0  TICKS: 1000 LR
2013-03-04_21:08:43 ESA2000_6205 total_kwh: 0.001
2013-03-04_21:08:43 ESA2000_6205 actual_kwh: 0.000
2013-03-04_21:08:43 ESA2000_6205 diff_kwh: 0.0000
2013-03-04_21:08:43 ESA2000_6205 diff_sec: 136
2013-03-04_21:08:43 ESA2000_6205 diff_ticks: 0
2013-03-04_21:08:43 ESA2000_6205 last_sec: 1362427723
2013-03-04_21:08:43 ESA2000_6205 raw_total_kwh: 0.001
2013-03-04_21:08:43 ESA2000_6205 day_kwh: 0.001
2013-03-04_21:08:43 ESA2000_6205 month_kwh: 0.001
2013-03-04_21:08:43 ESA2000_6205 year_kwh: 0.001
2013-03-04_21:08:43 ESA2000_6205 rate: LR
2013-03-04_21:08:43 ESA2000_6205 lr_kwh: 0
2013-03-04_21:08:43 ESA2000_6205 day_lr_kwh: 0
2013-03-04_21:08:43 ESA2000_6205 month_lr_kwh: 0
2013-03-04_21:08:43 ESA2000_6205 type: ESA2000

    
COC_RAWMSG: S9468C5011E0000016400000089FD038026

2013-03-04_21:03:17 ESA2000_68c5 sequence: 20
2013-03-04_21:03:17 ESA2000_68c5 total_ticks: 356
2013-03-04_21:03:17 ESA2000_68c5 actual_ticks: 0
2013-03-04_21:03:17 ESA2000_68c5 ticks_kwh: 1000
2013-03-04_21:03:17 ESA2000_68c5 raw: CNT: 20+ CUM: 356 CUR: 0  TICKS: 1000 LR
2013-03-04_21:03:17 ESA2000_68c5 total_kwh: 0.169
2013-03-04_21:03:17 ESA2000_68c5 actual_kwh: 0.000
2013-03-04_21:03:17 ESA2000_68c5 diff_kwh: 0.0000
2013-03-04_21:03:17 ESA2000_68c5 diff_sec: 1357
2013-03-04_21:03:17 ESA2000_68c5 diff_ticks: 0
2013-03-04_21:03:17 ESA2000_68c5 last_sec: 1362427397
2013-03-04_21:03:17 ESA2000_68c5 raw_total_kwh: 0.356
2013-03-04_21:03:17 ESA2000_68c5 day_kwh: 0
2013-03-04_21:03:17 ESA2000_68c5 month_kwh: 0.169
2013-03-04_21:03:17 ESA2000_68c5 year_kwh: 0.169
2013-03-04_21:03:17 ESA2000_68c5 rate: LR
2013-03-04_21:03:17 ESA2000_68c5 lr_kwh: 0.147
2013-03-04_21:03:17 ESA2000_68c5 day_lr_kwh: 0.169
2013-03-04_21:03:17 ESA2000_68c5 month_lr_kwh: 0.169
2013-03-04_21:03:17 ESA2000_68c5 type: ESA2000

stromer-12

FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL