From 10e677ad0a5c9a94d9b7e91eb61bdcf6bebe5ad8 Mon Sep 17 00:00:00 2001 From: martinp876 <> Date: Mon, 24 Mar 2014 10:04:44 +0000 Subject: [PATCH] another update to levelRange git-svn-id: https://svn.fhem.de/fhem/trunk@5316 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/10_CUL_HM.pm | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/fhem/FHEM/10_CUL_HM.pm b/fhem/FHEM/10_CUL_HM.pm index 50813d548..d4c10ec39 100755 --- a/fhem/FHEM/10_CUL_HM.pm +++ b/fhem/FHEM/10_CUL_HM.pm @@ -1358,13 +1358,15 @@ sub CUL_HM_Parse($$) {######################################################### my $vl = ReadingsVal($vh->{NAME},"level","???"); my $vs = ($vl eq "100"?"on":($vl eq "0"?"off":"$vl")); my($clvlMin,$clvlMax)=split",",AttrVal($vh->{NAME}, "levelRange", "0,100"); - my $plc = int(($pl-$clvlMin)/($clvlMax - $clvlMin)*200+.99)/2; + my $plc = int(($pl-$clvlMin)/($clvlMax - $clvlMin)*200)/2; + $plc = 1 if ($pl && $plc <= 0); $vs = ($plc ne $vl)?"chn:$vs phys:$plc":$vs; push @evtEt,[$vh,1,"state:$vs"]; push @evtEt,[$vh,1,"phyLevel:$plc"]; } - - $pl = int(($pl-$lvlMin)/($lvlMax - $lvlMin)*200+.99)/2; + $pl = (($pl-$lvlMin)<=0 && $pl) + ? 1 + : int(($pl-$lvlMin)/($lvlMax - $lvlMin)*200)/2; push @evtEt,[$shash,1,"phyLevel:$pl"]; #phys level $physLvl = $pl; } @@ -1375,7 +1377,9 @@ sub CUL_HM_Parse($$) {######################################################### } } my $pVal = $val;# necessary for roper 'off', not logical off - $val = int((($val-$lvlMin)/($lvlMax - $lvlMin))*200+.99)/2; + $val = (($val-$lvlMin)<=0 && $val) + ? 1 + : int((($val-$lvlMin)/($lvlMax - $lvlMin))*200)/2; $physLvl = ReadingsVal($name,"phyLevel",$val) if(!defined $physLvl); #not updated? use old or ignore my $vs = ($val==100 ? "on":($pVal==0 ? "off":"$val")); # user string...