diff --git a/fhem/FHEM/98_THRESHOLD.pm b/fhem/FHEM/98_THRESHOLD.pm
index 86c287eee..b9c61557e 100644
--- a/fhem/FHEM/98_THRESHOLD.pm
+++ b/fhem/FHEM/98_THRESHOLD.pm
@@ -266,8 +266,10 @@ THRESHOLD_Set($@)
if ($arg eq "desired" ) {
return "$pn: set desired value:$value, desired value needs a numeric parameter" if(@a != 3 || $value !~ m/^[-\d\.]*$/);
- return $ret if ($desired_value == $value);
- Log3 $pn,2, "set $pn $arg $value";
+ if ($desired_value ne "") {
+ return $ret if ($desired_value == $value);
+ }
+ Log3 $pn,2, "set $pn $arg $value";
$mode = "active";
$state_format =~ s/\_m/$mode/g;
$state_format =~ s/\_dv/$value/g;
@@ -284,7 +286,7 @@ THRESHOLD_Set($@)
readingsBulkUpdate ($hash, "desired_value", $value);
readingsEndUpdate ($hash, 1);
} elsif ($arg eq "deactivated" ) {
- return "$pn: set deactivated, set desired value first" if (!$desired_value);
+ return "$pn: set deactivated, set desired value first" if ($desired_value eq "");
$ret=CommandAttr(undef, "$pn disable 1");
if (!$ret) {
readingsBeginUpdate ($hash);
@@ -299,7 +301,7 @@ THRESHOLD_Set($@)
readingsEndUpdate ($hash, 1);
}
} elsif ($arg eq "active" ) {
- return "$pn: set active, set desired value first" if (!$desired_value);
+ return "$pn: set active, set desired value first" if ($desired_value eq "");
$ret=CommandDeleteAttr(undef, "$pn disable");
if (!$ret) {
$mode="active";
@@ -333,7 +335,7 @@ THRESHOLD_Set($@)
} elsif ($arg eq "hysteresis" ) {
return "$pn: set hysteresis value:$value, hysteresis needs a numeric parameter" if (@a != 3 || $value !~ m/^[\d\.]*$/ );
$hash->{hysteresis} = $value;
- if ($desired_value) {
+ if ($desired_value ne "") {
readingsBeginUpdate ($hash);
readingsBulkUpdate ($hash, "threshold_min",$desired_value-$hash->{hysteresis}+$offset);
readingsBulkUpdate ($hash, "threshold_max", $desired_value+$offset);
@@ -344,7 +346,7 @@ THRESHOLD_Set($@)
return "$pn: set offset value:$value, offset needs a numeric parameter" if (@a != 3 || $value !~ m/^[-\d\.]*$/ );
$offset = $value;
$hash->{offset} = $offset;
- if ($desired_value) {
+ if ($desired_value ne "") {
readingsBeginUpdate ($hash);
readingsBulkUpdate ($hash, "threshold_min",$desired_value-$hash->{hysteresis}+$offset);
readingsBulkUpdate ($hash, "threshold_max", $desired_value+$offset);
@@ -388,9 +390,9 @@ THRESHOLD_Notify($$)
my $name = $dev->{NAME};
SELECT:{
- if (($name eq $sensor) and ReadingsVal($pn,"desired_value","")) {last SELECT;}
+ if (($name eq $sensor) and (ReadingsVal($pn,"desired_value","") ne "")) {last SELECT;}
if ($sensor2) {
- if (($name eq $sensor2) and ReadingsVal($pn,"desired_value","")) {last SELECT;}
+ if (($name eq $sensor2) and (ReadingsVal($pn,"desired_value","") ne "")) {last SELECT;}
}
if ($target_sensor) {
if (ReadingsVal($pn,"mode","") eq "external") {
@@ -626,8 +628,9 @@ THRESHOLD_setValue($$)
define TH_outdoor THRESHOLD outdoor:temperature:0:15define TH_room THRESHOLD indoor AND TH_outdoor:state:on heatingdefine TH_room THRESHOLD indoor OR TH_outdoor:state:off heatingset TH_room desired 21define TH_outdoor THRESHOLD outdoor:temperature:0:15define TH_room THRESHOLD indoor AND TH_outdoor:state:on heatingdefine TH_room THRESHOLD indoor OR TH_outdoor:state:off heatingset TH_room desired 21