ich habe mir erlaubt, ein wenig in Deinem 88_HMCCU.pm rumzupfuschen.
Eine Ausnahmeabfrage für -0.005 und -0.5 behebt das Problem mit dem in FHEM falsch angezeigten Status - zeigt korrekt "locked" an und tut das auch.
Nach der HomeMatic-Script Dokumentation, scheint dieser Ausnahmewert -0.005, bei WinMatic, der Einzige zu sein, so dass unpassende Folgeerscheinungen eher unwahrscheinlich sind. Die Thermostate HM_CC_RT_DN zeigen jedenfalls auch mit der Codeänderung noch korrekte Werte.
Der Code 88_HMCCU.pm ab Zeile 9545:
elsif (defined($unit) && $unit =~ /^([0-9]+)%$/) {
# percentage values
my $f = $1;
$min //= 0;
$max //= 1.0;
HMCCU_Trace ($hash, 2, "value of $dpt = $value"); # Änderung!
if ($value == -0.5) { # Änderung!
$value = -0.005; # Änderung!
HMCCU_Trace ($hash, 2, "set value of $dpt = $value"); # Änderung!
} # Änderung!
elsif ($value == -0.005) { # Änderung!
$value = -0.5; # Änderung!
HMCCU_Trace ($hash, 2, "set value of $dpt = $value"); # Änderung!
} # Änderung!
else { # Änderung!
if ($mode == 0 || $mode == 2) {
$value = HMCCU_MinMax ($value, $min, $max)*$f;
}
else {
$value = $boundsChecking ? HMCCU_MinMax($value, $min*$f, $max*$f)/$f : $value/$f;
}
HMCCU_Trace ($hash, 2, "Auto scaled value of $dpt = $value"); # Änderung!
} # Änderung!
}
#HMCCU_Trace ($hash, 2, "Auto scaled value of $dpt = $value"); # Änderung!
return $value;
Der Lock-Button funktioniert damit allerdings immer noch nicht.