From ab07110b94c264bc573c40412fc5b02824faa461 Mon Sep 17 00:00:00 2001 From: rudolfkoenig <> Date: Sun, 27 Oct 2024 12:05:57 +0000 Subject: [PATCH] 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 --- fhem/FHEM/10_ZWave.pm | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/fhem/FHEM/10_ZWave.pm b/fhem/FHEM/10_ZWave.pm index 7b56cc035..59b860d84 100644 --- a/fhem/FHEM/10_ZWave.pm +++ b/fhem/FHEM/10_ZWave.pm @@ -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