2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-03-10 09:16:53 +00:00

bugfixing of 59_HCS.pm

git-svn-id: https://svn.fhem.de/fhem/trunk@2094 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
mfr69bs 2012-11-07 22:11:29 +00:00
parent 9afd02ba1f
commit fee2357cdf

View File

@ -284,7 +284,7 @@ HCS_setState($$) {
my $eventOnUpdate = AttrVal($name,"event-on-update-reading","");
if(!$eventOnChange ||
($eventOnUpdate && $eventOnUpdate =~ m/device/) ||
($eventOnChange && ($eventOnChange =~ m/device/ || $eventOnChange == 1) && $cmd ne $stateDevice)) {
($eventOnChange && $eventOnChange =~ m/device/ && $cmd ne $stateDevice)) {
if(!$idlePeriod || ($idlePeriod && $diffPeriodTime >= $idlePeriod)) {
my $cmdret = CommandSet(undef,"$device $cmd");
$hash->{helper}{lastSend} = $newPeriodTime;
@ -338,74 +338,76 @@ HCS_getValves($$) {
# get current actuator state from each device
$valveState = $defs{$d}{READINGS}{"actuator"}{VAL};
$valveState =~ s/[\s%]//g;
if($valveState) {
$valveState =~ s/[\s%]//g;
if($attr{$d}{ignore}) {
$value = "$valveState% (ignored)";
if($attr{$d}{ignore}) {
$value = "$valveState% (ignored)";
$valves{$defs{$d}{NAME}}{state} = $value;
$valves{$defs{$d}{NAME}}{demand} = 0;
$ret .= "$defs{$d}{NAME}: $value\n" if($list);
Log $ll+1, "$type $name $defs{$d}{NAME}: $value";
$sumIgnored++;
$sumValves++;
$sumFHT++ if($defs{$d}{TYPE} eq "FHT");
$sumHMCCTC++ if(defined($attr{$d}{model}) && $attr{$d}{model} eq "HM-CC-TC");
next;
}
if($excluded =~ m/$d/) {
$value = "$valveState% (excluded)";
$valves{$defs{$d}{NAME}}{state} = $value;
$valves{$defs{$d}{NAME}}{demand} = 0;
$ret .= "$defs{$d}{NAME}: $value\n" if($list);
Log $ll+1, "$type $name $defs{$d}{NAME}: $value";
$sumExcluded++;
$sumValves++;
$sumFHT++ if($defs{$d}{TYPE} eq "FHT");
$sumHMCCTC++ if(defined($attr{$d}{model}) && $attr{$d}{model} eq "HM-CC-TC");
next;
}
$value = "$valveState%";
$valves{$defs{$d}{NAME}}{state} = $value;
$valves{$defs{$d}{NAME}}{demand} = 0;
$ret .= "$defs{$d}{NAME}: $value\n" if($list);
$ret .= "$defs{$d}{NAME}: $value" if($list);
Log $ll+1, "$type $name $defs{$d}{NAME}: $value";
$sumIgnored++;
$sumValves++;
$sumFHT++ if($defs{$d}{TYPE} eq "FHT");
$sumHMCCTC++ if(defined($attr{$d}{model}) && $attr{$d}{model} eq "HM-CC-TC");
next;
}
if($excluded =~ m/$d/) {
$value = "$valveState% (excluded)";
$valves{$defs{$d}{NAME}}{state} = $value;
$valves{$defs{$d}{NAME}}{demand} = 0;
$ret .= "$defs{$d}{NAME}: $value\n" if($list);
Log $ll+1, "$type $name $defs{$d}{NAME}: $value";
$sumExcluded++;
$sumValves++;
$sumFHT++ if($defs{$d}{TYPE} eq "FHT");
$sumHMCCTC++ if(defined($attr{$d}{model}) && $attr{$d}{model} eq "HM-CC-TC");
next;
}
# get last readings
$valveLastDemand = ReadingsVal($name,$d."_demand",0);
$value = "$valveState%";
$valves{$defs{$d}{NAME}}{state} = $value;
$ret .= "$defs{$d}{NAME}: $value" if($list);
Log $ll+1, "$type $name $defs{$d}{NAME}: $value";
# check heat demand from each valve
if($valveState >= $valveThresholdOn) {
$heatDemand = 1;
$valveNewDemand = $heatDemand;
$ret .= " (demand)\n" if($list);
$sumDemand++;
} else {
# get last readings
$valveLastDemand = ReadingsVal($name,$d."_demand",0);
# check heat demand from each valve
if($valveState >= $valveThresholdOn) {
$heatDemand = 1;
$valveNewDemand = $heatDemand;
$ret .= " (demand)\n" if($list);
$sumDemand++;
} else {
if($valveLastDemand == 1) {
if($valveState > $valveThresholdOff) {
$heatDemand = 1;
$valveNewDemand = $heatDemand;
$ret .= " (demand)\n" if($list);
$sumDemand++;
if($valveLastDemand == 1) {
if($valveState > $valveThresholdOff) {
$heatDemand = 1;
$valveNewDemand = $heatDemand;
$ret .= " (demand)\n" if($list);
$sumDemand++;
} else {
$valveNewDemand = 0;
$ret .= " (idle)\n" if($list);
$valvesIdle++;
}
} else {
$valveNewDemand = 0;
$ret .= " (idle)\n" if($list);
$valvesIdle++;
}
} else {
$valveNewDemand = 0;
$ret .= " (idle)\n" if($list);
$valvesIdle++;
}
$valves{$defs{$d}{NAME}}{demand} = $valveNewDemand;
# count devices
$sumFHT++ if($defs{$d}{TYPE} eq "FHT");
$sumHMCCTC++ if(defined($attr{$d}{model}) && $attr{$d}{model} eq "HM-CC-TC");
$sumValves++;
}
$valves{$defs{$d}{NAME}}{demand} = $valveNewDemand;
# count devices
$sumFHT++ if($defs{$d}{TYPE} eq "FHT");
$sumHMCCTC++ if($attr{$d}{model} eq "HM-CC-TC");
$sumValves++;
}
# overdrive mode
@ -591,6 +593,7 @@ HCS_getValves($$) {
</li><br>
<li>valvesExcluded<br>
space separated list of devices (FHT or HM-CC-TC) for excluding
</li><br>
<li>valveThresholdOn<br>
see Set
</li><br>