fix shading routine

This commit is contained in:
Marko Oldenburg
2019-06-26 12:08:02 +02:00
parent 2ce59ed9a5
commit 2d9478be05

View File

@@ -1980,13 +1980,6 @@ sub ShadingProcessing($@) {
my $winPosMin = $winPos - $angleMinus; my $winPosMin = $winPos - $angleMinus;
my $winPosMax = $winPos + $anglePlus; my $winPosMax = $winPos + $anglePlus;
# $shutters->setShadingLastStatus( $shutters->getShadingStatus )
# if (
# $shutters->getShadingLastStatus ne $shutters->getShadingStatus
# and ( $shutters->getShadingStatus eq 'in'
# or $shutters->getShadingStatus eq 'out' )
# );
if ( if (
( (
$outTemp < $shutters->getShadingMinOutsideTemperature - 3 $outTemp < $shutters->getShadingMinOutsideTemperature - 3
@@ -2019,15 +2012,17 @@ sub ShadingProcessing($@) {
if ( $shutters->getShadingStatus eq 'in' if ( $shutters->getShadingStatus eq 'in'
or $shutters->getShadingStatus eq 'in reserved' ); or $shutters->getShadingStatus eq 'in reserved' );
$shutters->setShadingStatus('out')
if ( if (
( (
$shutters->getShadingStatus eq 'out reserved' $shutters->getShadingStatus eq 'out reserved'
and and
( int( gettimeofday() ) - $shutters->getShadingStatusTimestamp ) ( int( gettimeofday() ) - $shutters->getShadingStatusTimestamp )
> $shutters->getShadingWaitingPeriod ) > $shutters->getShadingWaitingPeriod
) )
); {
$shutters->setShadingStatus('out');
$shutters->setShadingLastStatus('in');
}
Log3( $name, 4, Log3( $name, 4,
"AutoShuttersControl ($name) - Shading Processing, Rollladen: " "AutoShuttersControl ($name) - Shading Processing, Rollladen: "
@@ -2055,11 +2050,15 @@ sub ShadingProcessing($@) {
if ( $shutters->getShadingStatus eq 'out' if ( $shutters->getShadingStatus eq 'out'
or $shutters->getShadingStatus eq 'out reserved' ); or $shutters->getShadingStatus eq 'out reserved' );
$shutters->setShadingStatus('in')
if ( $shutters->getShadingStatus eq 'in reserved' if ( $shutters->getShadingStatus eq 'in reserved'
and and
( int( gettimeofday() ) - $shutters->getShadingStatusTimestamp ) > ( int( gettimeofday() ) - $shutters->getShadingStatusTimestamp ) >
( $shutters->getShadingWaitingPeriod / 2 ) ); ( $shutters->getShadingWaitingPeriod / 2 ) )
{
$shutters->setShadingStatus('in');
$shutters->setShadingLastStatus('out');
}
Log3( $name, 4, Log3( $name, 4,
"AutoShuttersControl ($name) - Shading Processing, Rollladen: " "AutoShuttersControl ($name) - Shading Processing, Rollladen: "
. $shuttersDev . $shuttersDev