mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-04-19 12:46:03 +00:00
fixed bug desired_value=0
git-svn-id: https://svn.fhem.de/fhem/trunk@4105 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
84fae0d311
commit
1ca7255e24
@ -266,7 +266,9 @@ THRESHOLD_Set($@)
|
|||||||
|
|
||||||
if ($arg eq "desired" ) {
|
if ($arg eq "desired" ) {
|
||||||
return "$pn: set desired value:$value, desired value needs a numeric parameter" if(@a != 3 || $value !~ m/^[-\d\.]*$/);
|
return "$pn: set desired value:$value, desired value needs a numeric parameter" if(@a != 3 || $value !~ m/^[-\d\.]*$/);
|
||||||
|
if ($desired_value ne "") {
|
||||||
return $ret if ($desired_value == $value);
|
return $ret if ($desired_value == $value);
|
||||||
|
}
|
||||||
Log3 $pn,2, "set $pn $arg $value";
|
Log3 $pn,2, "set $pn $arg $value";
|
||||||
$mode = "active";
|
$mode = "active";
|
||||||
$state_format =~ s/\_m/$mode/g;
|
$state_format =~ s/\_m/$mode/g;
|
||||||
@ -284,7 +286,7 @@ THRESHOLD_Set($@)
|
|||||||
readingsBulkUpdate ($hash, "desired_value", $value);
|
readingsBulkUpdate ($hash, "desired_value", $value);
|
||||||
readingsEndUpdate ($hash, 1);
|
readingsEndUpdate ($hash, 1);
|
||||||
} elsif ($arg eq "deactivated" ) {
|
} 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");
|
$ret=CommandAttr(undef, "$pn disable 1");
|
||||||
if (!$ret) {
|
if (!$ret) {
|
||||||
readingsBeginUpdate ($hash);
|
readingsBeginUpdate ($hash);
|
||||||
@ -299,7 +301,7 @@ THRESHOLD_Set($@)
|
|||||||
readingsEndUpdate ($hash, 1);
|
readingsEndUpdate ($hash, 1);
|
||||||
}
|
}
|
||||||
} elsif ($arg eq "active" ) {
|
} 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");
|
$ret=CommandDeleteAttr(undef, "$pn disable");
|
||||||
if (!$ret) {
|
if (!$ret) {
|
||||||
$mode="active";
|
$mode="active";
|
||||||
@ -333,7 +335,7 @@ THRESHOLD_Set($@)
|
|||||||
} elsif ($arg eq "hysteresis" ) {
|
} elsif ($arg eq "hysteresis" ) {
|
||||||
return "$pn: set hysteresis value:$value, hysteresis needs a numeric parameter" if (@a != 3 || $value !~ m/^[\d\.]*$/ );
|
return "$pn: set hysteresis value:$value, hysteresis needs a numeric parameter" if (@a != 3 || $value !~ m/^[\d\.]*$/ );
|
||||||
$hash->{hysteresis} = $value;
|
$hash->{hysteresis} = $value;
|
||||||
if ($desired_value) {
|
if ($desired_value ne "") {
|
||||||
readingsBeginUpdate ($hash);
|
readingsBeginUpdate ($hash);
|
||||||
readingsBulkUpdate ($hash, "threshold_min",$desired_value-$hash->{hysteresis}+$offset);
|
readingsBulkUpdate ($hash, "threshold_min",$desired_value-$hash->{hysteresis}+$offset);
|
||||||
readingsBulkUpdate ($hash, "threshold_max", $desired_value+$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\.]*$/ );
|
return "$pn: set offset value:$value, offset needs a numeric parameter" if (@a != 3 || $value !~ m/^[-\d\.]*$/ );
|
||||||
$offset = $value;
|
$offset = $value;
|
||||||
$hash->{offset} = $offset;
|
$hash->{offset} = $offset;
|
||||||
if ($desired_value) {
|
if ($desired_value ne "") {
|
||||||
readingsBeginUpdate ($hash);
|
readingsBeginUpdate ($hash);
|
||||||
readingsBulkUpdate ($hash, "threshold_min",$desired_value-$hash->{hysteresis}+$offset);
|
readingsBulkUpdate ($hash, "threshold_min",$desired_value-$hash->{hysteresis}+$offset);
|
||||||
readingsBulkUpdate ($hash, "threshold_max", $desired_value+$offset);
|
readingsBulkUpdate ($hash, "threshold_max", $desired_value+$offset);
|
||||||
@ -388,9 +390,9 @@ THRESHOLD_Notify($$)
|
|||||||
my $name = $dev->{NAME};
|
my $name = $dev->{NAME};
|
||||||
|
|
||||||
SELECT:{
|
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 ($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 ($target_sensor) {
|
||||||
if (ReadingsVal($pn,"mode","") eq "external") {
|
if (ReadingsVal($pn,"mode","") eq "external") {
|
||||||
@ -626,8 +628,9 @@ THRESHOLD_setValue($$)
|
|||||||
<br>
|
<br>
|
||||||
<br>
|
<br>
|
||||||
<li><b>AND|OR</b> (optional)<br>
|
<li><b>AND|OR</b> (optional)<br>
|
||||||
logical operator with an optional second sensor
|
logical operator with an optional second sensor<br>
|
||||||
</li>
|
</li>
|
||||||
|
<br>
|
||||||
<li><b>sensor2</b> (optional, nur in Verbindung mit AND oder OR)<br>
|
<li><b>sensor2</b> (optional, nur in Verbindung mit AND oder OR)<br>
|
||||||
the second sensor
|
the second sensor
|
||||||
</li>
|
</li>
|
||||||
@ -765,7 +768,7 @@ THRESHOLD_setValue($$)
|
|||||||
It should be heated when the room temperature drops below 21 degrees and the outside temperature is below 15 degrees:<br>
|
It should be heated when the room temperature drops below 21 degrees and the outside temperature is below 15 degrees:<br>
|
||||||
<br>
|
<br>
|
||||||
<code>define TH_outdoor THRESHOLD outdoor:temperature:0:15</code><br>
|
<code>define TH_outdoor THRESHOLD outdoor:temperature:0:15</code><br>
|
||||||
<code>define TH_room THRESHOLD indoor AND TH_outdoor:state:on heating</code><br>
|
<code>define TH_room THRESHOLD indoor OR TH_outdoor:state:off heating</code><br>
|
||||||
<code>set TH_room desired 21</code><br>
|
<code>set TH_room desired 21</code><br>
|
||||||
<br>
|
<br>
|
||||||
<br>
|
<br>
|
||||||
@ -873,7 +876,7 @@ THRESHOLD_setValue($$)
|
|||||||
Das Modul beginnt mit der Steuerung erst dann, wenn ein Sollwert gesetzt wird!<br>
|
Das Modul beginnt mit der Steuerung erst dann, wenn ein Sollwert gesetzt wird!<br>
|
||||||
<br>
|
<br>
|
||||||
Alternativ kann die Vorgabe des Sollwertes von einem weiteren Sensor kommen. Damit kann eine Steuerung durch den Vergleich zweier Sensoren stattfinden.
|
Alternativ kann die Vorgabe des Sollwertes von einem weiteren Sensor kommen. Damit kann eine Steuerung durch den Vergleich zweier Sensoren stattfinden.
|
||||||
Typisches Anwendungsbeispiel ist z. B. die Steuerung von Umwelz- oder Zirkulationspumpen.<br>
|
Typisches Anwendungsbeispiel ist z. B. die Steuerung von Umwälz- oder Zirkulationspumpen.<br>
|
||||||
<br>
|
<br>
|
||||||
Ebenso können beliebige Wandthermostate (z. B. HM, MAX, FHT) für die Vorgabe der Solltemperatur genutzt werden.<br>
|
Ebenso können beliebige Wandthermostate (z. B. HM, MAX, FHT) für die Vorgabe der Solltemperatur genutzt werden.<br>
|
||||||
<br>
|
<br>
|
||||||
@ -1055,7 +1058,7 @@ THRESHOLD_setValue($$)
|
|||||||
Es soll geheizt werden, wenn die Zimmertemperatur unter 21 Grad fällt und die Außentemperatur unter 15 Grad ist:<br>
|
Es soll geheizt werden, wenn die Zimmertemperatur unter 21 Grad fällt und die Außentemperatur unter 15 Grad ist:<br>
|
||||||
<br>
|
<br>
|
||||||
<code>define TH_outdoor THRESHOLD outdoor:temperature:0:15</code><br>
|
<code>define TH_outdoor THRESHOLD outdoor:temperature:0:15</code><br>
|
||||||
<code>define TH_room THRESHOLD indoor AND TH_outdoor:state:on heating</code><br>
|
<code>define TH_room THRESHOLD indoor OR TH_outdoor:state:off heating</code><br>
|
||||||
<code>set TH_room desired 21</code><br>
|
<code>set TH_room desired 21</code><br>
|
||||||
<br>
|
<br>
|
||||||
<br>
|
<br>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user