From 4bdb540368d52fb90332360aa4d987b883185d13 Mon Sep 17 00:00:00 2001 From: Marko Oldenburg Date: Mon, 23 Mar 2020 12:02:17 +0100 Subject: [PATCH] add holidayWeekend Support for brightness --- 73_AutoShuttersControl.pm | 93 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 91 insertions(+), 2 deletions(-) diff --git a/73_AutoShuttersControl.pm b/73_AutoShuttersControl.pm index 8c1b0b7..cc41471 100644 --- a/73_AutoShuttersControl.pm +++ b/73_AutoShuttersControl.pm @@ -3900,9 +3900,98 @@ sub ShuttersSunrise($$) { } } elsif ( $shutters->getUp eq 'brightness' ) { - $shuttersSunriseUnixtime = - computeAlignTime( '24:00', $shutters->getTimeUpLate ); + if ( ( IsWe() or IsWeTomorrow() ) + and $ascDev->getSunriseTimeWeHoliday eq 'on' + and $shutters->getTimeUpWeHoliday ne '01:25' ) + { + if ( not IsWeTomorrow() ) { + if ( + IsWe() + and int( gettimeofday() / 86400 ) == int( + ( + computeAlignTime( '24:00', $shutters->getTimeUpWeHoliday ) + ) / 86400 + ) + ) + { + $shuttersSunriseUnixtime = + computeAlignTime( '24:00', $shutters->getTimeUpWeHoliday ); + } + elsif ( + int( gettimeofday() / 86400 ) == int( + ( + computeAlignTime( '24:00', $shutters->getTimeUpLate ) + ) / 86400 + ) + ) + { + $shuttersSunriseUnixtime = + computeAlignTime( '24:00', $shutters->getTimeUpWeHoliday ); + } + else { + $shuttersSunriseUnixtime = + computeAlignTime( '24:00', $shutters->getTimeUpLate ); + } + } + else { + if ( + IsWe() + and ( + int( gettimeofday() / 86400 ) == int( + ( + computeAlignTime( '24:00', $shutters->getTimeUpWeHoliday ) + ) / 86400 + ) + or int( gettimeofday() / 86400 ) != int( + ( + computeAlignTime( '24:00', $shutters->getTimeUpWeHoliday ) + ) / 86400 + ) + ) + ) + { + $shuttersSunriseUnixtime = + computeAlignTime( '24:00', $shutters->getTimeUpWeHoliday ); + } + elsif ( + int( gettimeofday() / 86400 ) == int( + ( + computeAlignTime( '24:00', $shutters->getTimeUpLate ) + ) / 86400 + ) + ) + { + $shuttersSunriseUnixtime = + computeAlignTime( '24:00', $shutters->getTimeUpLate ); + } + else { + if ( + int( gettimeofday() / 86400 ) == int( + ( + computeAlignTime( '24:00', $shutters->getTimeUpWeHoliday ) + ) / 86400 + ) + ) + { + $shuttersSunriseUnixtime = + computeAlignTime( '24:00', $shutters->getTimeUpWeHoliday ); + } + else { + $shuttersSunriseUnixtime = + computeAlignTime( '24:00', $shutters->getTimeUpWeHoliday ); + } + } + } + } + else { + + + + $shuttersSunriseUnixtime = + computeAlignTime( '24:00', $shutters->getTimeUpLate ); + } } + return $shuttersSunriseUnixtime; } elsif ( $tm eq 'real' ) {