Hallo Martin,
Der BatteryStatus und der SabotageError funktionieren beim HM-SEC-RHS nicht richtig. Folgende zwei zwei Änderungen im 10_CUL_HM.pm beheben das Problem.
Zeile 2715 ändern in
($chn,$state,$err) = (hex($mI[1]), $mI[2], hex($mI[3]));
Zeile 2721 ändern in
if ( $mh{md} =~ m/^(HM-SEC-SC.*|HM-SEC-RHS|Roto_ZEL-STG-RM-F.K)$/){
Martin könntest Du das mal reviewen und dann einchecken ?
Danke
Holger
ich sehe nicht, was der Unterschied sein soll und kenne dein Problem nicht.
Die erste Zeile ist eleganter - aber inhaltlich nicht anders
Die 2. Zeile ist identisch zur aktuellen Version.
Zitat von: martinp876 am 12 August 2017, 07:45:47
Die 2. Zeile ist identisch zur aktuellen Version.
fast:
if ( $mh{md} =~ m/^(HM-SEC-SC.*|HM-S
EC-RHS|Roto_ZEL-STG-RM-F.K)$/){
if ( $mh{md} =~ m/^(HM-SEC-SC.*|HM-S
ec-RHS|Roto_ZEL-STG-RM-F.K)$/){
VG
joschi2009
Zitat von: martinp876 am 12 August 2017, 07:45:47
ich sehe nicht, was der Unterschied sein soll und kenne dein Problem nicht.
Die erste Zeile ist eleganter - aber inhaltlich nicht anders
Die 2. Zeile ist identisch zur aktuellen Version.
Das Problem liegt darin, das weder Batterie low noch der Sabotage Error in FHEM angezeigt werden. Sprich die entsprechenden Readings bleiben unverändert.
Ich bin jetzt kein Perl-Profi - aber soweit ich weiss, ist der Match-Operator case sensitive. Somit matched der Operator in Zeile 2721 nie und es wird kein
SabotageError angelegt. Dafür aber das
Cover Reading.
Allerdings wurden die Werte erst korrekt aktualisiert nachdem ich die Zeile 2715 von
($chn,$state,$err) = (hex($1), $2, hex($3));
nach
($chn,$state,$err) = (hex($mI[1]), $mI[2], hex($mI[3]));
geändert hatte. Ich weiss nicht, wo hier genau der Unterschied ist, aber für andere Geräte wird das auch so gemacht.
Ich hoffe, das klärt die Sachlage etwas. Mehr kann ich mit meinen bescheidenen Perl-Kenntnissen nicht tun.
sollte jetzt funktionieren
Danke