2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-03-04 05:16:45 +00:00

10_ZWave.pm: add noUnits for SENSOR_MULTILEVEL too (Forum #126384)

git-svn-id: https://svn.fhem.de/fhem/trunk@29303 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
rudolfkoenig 2024-10-27 12:05:57 +00:00
parent af1c52331f
commit ab07110b94

View File

@ -138,7 +138,8 @@ my %zwave_class = (
"043003(..)(..)"=> 'ZWave_sensorbinaryV2Parse($1,$2)' } },
SENSOR_MULTILEVEL => { id => '31',
get => { smStatus => "04" },
parse => { "..3105(..)(..)(.*)" => 'ZWave_multilevelParse($1,$2,$3)'} },
parse => { "..3105(..)(..)(.*)"
=> 'ZWave_multilevelParse($hash,$1,$2,$3)'} },
METER => { id => '32',
set => { meterReset => "05",
meterResetToValue => 'ZWave_meterSet($cmd, "%s")' },
@ -2146,9 +2147,10 @@ my %zwave_ml_tbl = (
);
sub
ZWave_multilevelParse($$$)
ZWave_multilevelParse($$$$)
{
my ($type,$fl,$arg) = @_;
my ($hash,$type,$fl,$arg) = @_;
my $name = $hash->{NAME};
my $pr = (hex($fl)>>5)&0x07; # precision
my $sc = (hex($fl)>>3)&0x03; # scale
@ -2159,8 +2161,10 @@ ZWave_multilevelParse($$$)
my $val = $msb ? -( 2 ** (8 * $bc) - hex($arg) ) : hex($arg); # 2's complement
my $ml = $zwave_ml_tbl{$type};
return "UNKNOWN multilevel type: $type fl: $fl arg: $arg" if(!$ml);
return sprintf("%s:%.*f %s", $ml->{n}, $pr, $val/(10**$pr),
int(@{$ml->{st}}) > $sc ? $ml->{st}->[$sc] : "");
my $unit_text = int(@{$ml->{st}}) > $sc ? $ml->{st}->[$sc] : "";
$unit_text = AttrVal($name, "noUnits", 0) ? "" : " $unit_text"; #126384
return sprintf("%s:%.*f%s", $ml->{n}, $pr, $val/(10**$pr),$unit_text);
}
sub