TechemHKV: 4/8 digit ID wird nicht erkannt/vertausch

Begonnen von tca, 11 August 2016, 01:57:46

Vorheriges Thema - Nächstes Thema

tca

Hallo,

ich habe mehrere TechemHKV (ca.40) in Fhem angelegt. Zwei TechemHKVs werden aber anscheinend nicht richtig anhand der '8 digit ID' erkannt.

Die entsprechenden Einträge in der fhem.cfg lauten:

define 2GR_W2 TechemHKV 92815061
define 3GR_W1 TechemHKV 92825061


Der erste HKV hat also die ID "92815061" der zweite die ID "92825061". Es wird der erste HKV erkannt, der zweite nicht.

Aber: Im 'Internals' Eintrag zum ersten HKV steht "DEF 92815061" (also die ID), dann heisst es "longID 92825061" (die ID des zweiten HKV). Die Werte für previous_period und current_period entsprechen auch dem zweiten HKV!

Sieht also so aus, als ob hier evtl. nur die letzen 4 zum Erkennen verwendet werden - und die HKVs falsch zugewiesen, bzw. nicht erkannt werden?

Habe ich eine Einstellung übersehen, oder könnte das ein Bug sein?

Vielen Dank, Tom

herrmannj

das könnte ;) ein bug sein. Danke, schau ich an.

vg
joerg

tca

Hallo Joerg,

kurze Nachfrage ... hast Du schon etwas finden können?

Danke und VG,
Tom

herrmannj

Hi,

ja, ich habe gesehen woran es liegt. Bin jedoch erst im September wieder zurück und kann es fixen.

vg
joerg

tca

Hi Joerg, ... freundliche Anfrage :-) ... hattest du schon eine Möglichkeit nachzusehen?

herrmannj

Danke für reminder. Noch nicht, schau die Tage.

vg
joerg

tca

#6
Hallo Joerg,

ich habe mich etwas an das 32_TechemHKV.pm herangetraut und mir sind 4 Zeilen aufgefallen, die die Ursache sein könnten. Natürlich habe ich es schon ausprobiert, aber es klappt noch nicht ganz. Die Readings für HKV_ID 92825064 und HKV_ID 92815064 sind immer noch gleich:


alt 55:$modules{TechemHKV}{defptr}{$id} = $hash;
neu 55:$modules{TechemHKV}{defptr}{$lid} = $hash;



alt 57: $hash->{LID} = $id if (length($id) == 8);
neu 57: $hash->{LID} = $lid if (length($lid) == 8);

[ok, das ist nicht ganz sauber, aber length($id) ist immer '4'...]


alt 208: if (exists($modules{TechemHKV}{defptr}{$message->{short}})) {
neu 208: if (exists($modules{TechemHKV}{defptr}{$message->{long}})) {



alt 209: my $deviceHash = $modules{TechemHKV}{defptr}{$message->{short}};
neu 209: my $deviceHash = $modules{TechemHKV}{defptr}{$message->{long}};


Könnte es in/an TechemHKV_Parse oder TechemHKV_ParseID liegen?

herrmannj

#7
Hallo Tom,

bitte schau mal ob die Version im Anhang funktioniert.

vg
joerg

tca

Ja, ich habe es seit ca. 2 Stunden laufen und es sieht gut aus/funktioniert :-)

Danke!

herrmannj

schön. Ich habe noch eine neue fw version aufgenommen. Wenn die auch läuft check ich das ein.

Die 4 digit Umsetzung ist jetzt so: wenn nur 4 digit angegeben werden "krallt" sich das modul die erste longID welche "passt". Wenn jetzt, wie bei Dir, mehrere in Frage kommen dann kann es passieren das nach einem Neustart ein anderer, mit gleicher 4 digit ID, angezeigt wird.

Als ich das geschrieben habe dachte ich das würde nie praxis-relevant sein. So kann man sich täuschen. Man sollte also schon die 8 digit angeben.

vg
joerg

tca

... nach 2 Tagen sieht immer noch alles gut aus :-)

zur Info: ich habe ca. 45 Techem-HKV(s), wobei sich 3 HKV-Paare nur über die 8 digit-ID eindeutig identifizieren/unterscheiden lassen.

Sollte mir mit der 'neuen fw version' noch etwas anderes auffallen?

VG
Tom

herrmannj

Moin,

ne - die ist für jemand anders. Anderer thread.

Aber dann ist bei Dir ja alles gut.

vg
joerg

tca


tca

Hallo Joerg,

könntest Du die Änderungen an der 32_TechemHKV.pm "commit'en" ?
(wenn ich ein update auf Fhem mache, kopiere ich anschliessend die 'neueste' 32_TechemHKV.pm manuell rüber...)
Danke ;-)
VG Tom

tca

Hallo Joerg,

freundliche Nachfrage: könntest Du 32_TechemHKV.pm einchecken? :-)

Danke