From c229e974a45e2c5291a28545bf981ac46157eee5 Mon Sep 17 00:00:00 2001 From: rudolfkoenig <> Date: Fri, 20 Jan 2012 18:12:56 +0000 Subject: [PATCH] desired-temp list moved from FHEMWEB to the source module. git-svn-id: https://svn.fhem.de/fhem/trunk/fhem@1193 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- FHEM/10_CUL_HM.pm | 15 +++++++++++---- FHEM/11_FHT.pm | 14 +++++++++----- webfrontend/pgm2/01_FHEMWEB.pm | 3 +-- 3 files changed, 21 insertions(+), 11 deletions(-) diff --git a/FHEM/10_CUL_HM.pm b/FHEM/10_CUL_HM.pm index a3f365fd5..a27466635 100755 --- a/FHEM/10_CUL_HM.pm +++ b/FHEM/10_CUL_HM.pm @@ -1075,6 +1075,7 @@ CUL_HM_Set($@) } $hash->{STATE} = $state if($state); + Log GetLogLevel($name,2), "CUL_HM set $name " . join(" ", @a[1..$#a]); CUL_HM_ProcessCmdStack($hash) if(!$isSender); return ""; @@ -1458,10 +1459,16 @@ CUL_HM_encodeTime16($) sub CUL_HM_convTemp($) { - my ($in) = @_; - return "$in is not a number" if($in !~ m/^\d+$/ && $in !~ m/\d+\.\d+$/); - return "$in is out of bounds (6 .. 30)" if($in < 6 || $in > 30); - return sprintf("%02X", $in*2); + my ($val) = @_; + + my @list = map { ($_.".0", $_+0.5) } (6..30); + pop @list; + return "Invalid temperature $val, choose one of on off " . join(" ",@list) + if(!($val eq "on" || $val eq "off" || + ($val =~ m/^\d*\.?\d+$/ && $val >= 6 && $val <= 30))); + $val = 100 if($val eq "on"); + $val = 0 if($val eq "off"); + return sprintf("%02X", $val*2); } ############################# diff --git a/FHEM/11_FHT.pm b/FHEM/11_FHT.pm index c80a4ba16..43ec4be64 100755 --- a/FHEM/11_FHT.pm +++ b/FHEM/11_FHT.pm @@ -219,12 +219,16 @@ FHT_Set($@) if ($cmd =~ m/-temp/) { - return "Invalid temperature, use NN.N" if($val !~ m/^\d*\.?\d+$/); - return "Invalid temperature, must between 5.5 and 30.5" - if($val < 5.5 || $val > 30.5); + my @list = map { ($_.".0", $_+0.5) } (6..30); + pop @list; + return "Invalid temperature $val, choose one of on off " . join(" ",@list) + if(!($val eq "on" || $val eq "off" || + ($val =~ m/^\d*\.?\d+$/ && $val >= 5.5 && $val <= 30.5))); + + $val = 30.5 if($val eq "on"); + $val = 5.5 if($val eq "off"); my $a = int($val*2); $arg .= sprintf("%02x", $a); - $ret .= sprintf("Rounded temperature to %.1f", $a/2) if($a/2 != $val); $val = sprintf("%.1f", $a/2); } elsif($cmd =~ m/-from/ || $cmd =~ m/-to/) { @@ -239,7 +243,7 @@ FHT_Set($@) } elsif($cmd eq "mode") { - return "Invalid mode, use one of " . join(" ", sort keys %m2c) + return "Invalid mode, choose one of " . join(" ", sort keys %m2c) if(!defined($m2c{$val})); $arg .= sprintf("%02x", $m2c{$val}); diff --git a/webfrontend/pgm2/01_FHEMWEB.pm b/webfrontend/pgm2/01_FHEMWEB.pm index 6d36af012..2049fb948 100755 --- a/webfrontend/pgm2/01_FHEMWEB.pm +++ b/webfrontend/pgm2/01_FHEMWEB.pm @@ -889,8 +889,7 @@ FW_showRoom() $txt = ReadingsVal($d, "measured-temp", ""); $txt =~ s/ .*//; $txt = sprintf("%2.1f", int(2*$txt)/2) if($txt =~ m/[0-9.-]/); - my @tv = map { ($_.".0", $_+0.5) } (5..30); - shift(@tv); # 5.0 is not valid + my @tv = split(" ", getAllSets("$d desired-temp")); $txt = int($txt*20)/$txt if($txt =~ m/^[0-9].$/); FW_pO "