From 72a42853870966fcdff9b64d5d64bdafeab4337c Mon Sep 17 00:00:00 2001 From: rudolfkoenig <> Date: Sat, 28 Feb 2015 18:08:19 +0000 Subject: [PATCH] 10_ZWave.pm: ccs: fix negative temperature set/report. Change SETPOINT temperature event to setpointTemp git-svn-id: https://svn.fhem.de/fhem/trunk@8110 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/10_ZWave.pm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/fhem/FHEM/10_ZWave.pm b/fhem/FHEM/10_ZWave.pm index d001dee4e..844518f94 100755 --- a/fhem/FHEM/10_ZWave.pm +++ b/fhem/FHEM/10_ZWave.pm @@ -146,7 +146,7 @@ my %zwave_class = ( set => { setpointHeating => "010101%02x", setpointCooling => "010201%02x"}, get => { setpoint => "02" }, - parse => { "064303(..)(..)(....)" => 'sprintf("temperature:%0.1f %s %s", '. + parse => { "064303(..)(..)(....)" => 'sprintf("setpointTemp:%0.1f %s %s", '. 'hex($3)/(10**int(hex($2)/32)), '. 'hex($2)&8 ? "F":"C", $1==1 ? "heating":"cooling")' }, }, THERMOSTAT_FAN_MODE => { id => '44', }, @@ -729,10 +729,10 @@ ZWave_ccsSet($) return ("Unknown weekday $wds, use one of ".join(" ", @zwave_wd), "") if(!defined($ret)); for(my $i=0; $i<@arg; $i+=2) { - return ($usage, "") if($arg[$i] !~ m/^(\d\d):(\d\d)$/); + return ($usage, "") if($arg[$i] !~ m/^(\d+):(\d\d)$/); $ret .= sprintf("%02x%02x", $1, $2); return ($usage, "") if($arg[$i+1] !~ m/^([-.\d]+)$/ || $1 < -12 || $1 > 12); - $ret .= sprintf("%02x", $1 < 0 ? (0x80 | (-$1*10)) : ($1*10)); + $ret .= sprintf("%02x", $1 < 0 ? (255+$1*10) : ($1*10)); } for(my $i=@arg; $i<18; $i+=2) { $ret .= "00007f"; @@ -774,7 +774,7 @@ ZWave_ccsParse($$) last if($3 eq "7f"); # unused $p = $4; my $t = hex($3); - $t = ($t == 0x7a ? "EnergySave" : $t >= 0x80 ? -$t/10 : $t/10); + $t = ($t == 0x7a ? "energySave" : $t >= 0x80 ? -(255-$t)/10 : $t/10); push @v, sprintf("%02d:%02d %0.1f", hex($1), hex($2), $t); } return "$n:".(@v ? join(" ",@v) : "N/A"); @@ -1780,7 +1780,7 @@ s2Hex($)