change IsDay Fn

This commit is contained in:
Marko Oldenburg
2019-04-23 14:53:39 +02:00
parent 5b9e769648
commit 225548b47b

View File

@ -44,7 +44,7 @@ use strict;
use warnings; use warnings;
use FHEM::Meta; use FHEM::Meta;
my $version = '0.5.99.3'; my $version = '0.5.99.4';
sub AutoShuttersControl_Initialize($) { sub AutoShuttersControl_Initialize($) {
my ($hash) = @_; my ($hash) = @_;
@ -2481,14 +2481,36 @@ sub IsDay($) {
ShuttersSunset( $shuttersDev, 'unix' ) ? 1 : 0 ); ShuttersSunset( $shuttersDev, 'unix' ) ? 1 : 0 );
my $respIsDay = $isday; my $respIsDay = $isday;
ASC_Debug( 'FnIsDay: ' . $shuttersDev . ' Allgemein: ' . $respIsDay );
ASC_Debug( 'FnIsDay: ' if (
. $shuttersDev (
. ' Allgemein: ' $shutters->getDown eq 'brightness'
. $respIsDay ); or $shutters->getUp eq 'brightness'
)
if ( $shutters->getDown eq 'brightness' and (
or $shutters->getUp eq 'brightness' ) (
int( gettimeofday() / 86400 ) != int(
computeAlignTime( '24:00', $shutters->getTimeUpEarly ) /
86400
)
and int( gettimeofday() / 86400 ) == int(
computeAlignTime( '24:00', $shutters->getTimeUpLate ) /
86400
)
)
or (
int( gettimeofday() / 86400 ) != int(
computeAlignTime( '24:00', $shutters->getTimeDownEarly ) /
86400
)
and int( gettimeofday() / 86400 ) == int(
computeAlignTime( '24:00', $shutters->getTimeDownLate ) /
86400
)
)
)
)
{ {
my $brightnessMinVal; my $brightnessMinVal;
if ( $shutters->getBrightnessMinVal > -1 ) { if ( $shutters->getBrightnessMinVal > -1 ) {
@ -2508,27 +2530,25 @@ sub IsDay($) {
$respIsDay = ( $respIsDay = (
( (
( ( $shutters->getBrightness > $brightnessMinVal and $isday )
$shutters->getBrightness > $brightnessMinVal
and $isday
)
or $shutters->getSunset or $shutters->getSunset
) ? 1 : 0 ) ? 1 : 0
) if ( $shutters->getDown eq 'brightness' ); ) if ( $shutters->getDown eq 'brightness' );
ASC_Debug( 'FnIsDay: ' ASC_Debug( 'FnIsDay: '
. $shuttersDev . $shuttersDev
. ' getDownBrightness: ' . $respIsDay . ' getDownBrightness: '
. ' Brightness: ' . $shutters->getBrightness . $respIsDay
. ' BrightnessMin: ' . $brightnessMinVal . ' Brightness: '
. ' Sunset: ' . $shutters->getSunset ); . $shutters->getBrightness
. ' BrightnessMin: '
. $brightnessMinVal
. ' Sunset: '
. $shutters->getSunset );
$respIsDay = ( $respIsDay = (
( (
( ( $shutters->getBrightness > $brightnessMaxVal and not $isday )
$shutters->getBrightness > $brightnessMaxVal
and not $isday
)
or $respIsDay or $respIsDay
or $shutters->getSunrise or $shutters->getSunrise
) ? 1 : 0 ) ? 1 : 0
@ -2536,10 +2556,14 @@ sub IsDay($) {
ASC_Debug( 'FnIsDay: ' ASC_Debug( 'FnIsDay: '
. $shuttersDev . $shuttersDev
. ' getUpBrightness: ' . $respIsDay . ' getUpBrightness: '
. ' Brightness: ' . $shutters->getBrightness . $respIsDay
. ' BrightnessMax: ' . $brightnessMaxVal . ' Brightness: '
. ' Sunset: ' . $shutters->getSunrise ); . $shutters->getBrightness
. ' BrightnessMax: '
. $brightnessMaxVal
. ' Sunset: '
. $shutters->getSunrise );
} }
return $respIsDay; return $respIsDay;