From 5d94b511b9d65b704467cd66d724872571a058dd Mon Sep 17 00:00:00 2001 From: rudolfkoenig <> Date: Fri, 17 Nov 2017 10:57:56 +0000 Subject: [PATCH] 10_ZWave.pm: revert previous patch, proposing a new one (Forum #79659) git-svn-id: https://svn.fhem.de/fhem/trunk@15440 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/10_ZWave.pm | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/fhem/FHEM/10_ZWave.pm b/fhem/FHEM/10_ZWave.pm index 12d75b923..2a3952c48 100644 --- a/fhem/FHEM/10_ZWave.pm +++ b/fhem/FHEM/10_ZWave.pm @@ -1481,12 +1481,13 @@ ZWave_thermostatSetpointParse ($$) my $scale = (((hex($2) & 0x18)>>3) == 1) ? "F": "C"; my $size = (hex($2) & 0x07); - my $sp = hex($3); - if(length($3) != $size*2) { - $sp = ($sp & 0xfff0000) >> 16; #79659, Temporary? - } else { - $sp -= (2 ** ($size*8)) if($sp >= (2 ** ($size*8-1))); + if (length($3) < $size*2) { + Log3 $name, 1, "$name: THERMOSTAT_SETPOINT_REPORT " + ."wrong number of bytes received"; + return; } + my $sp = hex(substr($3,0,$size*2)); # 79659 + $sp -= (2 ** ($size*8)) if $sp >= (2 ** ($size*8-1)); $sp = $sp / (10 ** $prec); # output temperature with variable decimals as reported (according to $prec)