fix many bugs in Sunrise timer calculation
This commit is contained in:
parent
a4b57312e9
commit
44fb531517
@ -47,7 +47,7 @@ use strict;
|
||||
use warnings;
|
||||
use FHEM::Meta;
|
||||
|
||||
my $version = '0.4.0.11beta61';
|
||||
my $version = '0.4.0.11beta67';
|
||||
|
||||
sub AutoShuttersControl_Initialize($) {
|
||||
my ($hash) = @_;
|
||||
@ -2473,15 +2473,107 @@ sub ShuttersSunrise($$$) {
|
||||
}
|
||||
}
|
||||
else {
|
||||
$shuttersSunriseUnixtime = (
|
||||
computeAlignTime(
|
||||
'24:00',
|
||||
sunrise_abs(
|
||||
$autoAstroMode, 0,
|
||||
$shutters->getTimeUpWeHoliday
|
||||
)
|
||||
) + 1
|
||||
);
|
||||
if (
|
||||
IsWe()
|
||||
and ( int( gettimeofday() / 86400 ) == int(
|
||||
(
|
||||
computeAlignTime(
|
||||
'24:00',
|
||||
sunrise_abs(
|
||||
$autoAstroMode, 0,
|
||||
$shutters->getTimeUpWeHoliday
|
||||
)
|
||||
) + 1
|
||||
) / 86400
|
||||
)
|
||||
or int( gettimeofday() / 86400 ) != int(
|
||||
(
|
||||
computeAlignTime(
|
||||
'24:00',
|
||||
sunrise_abs(
|
||||
$autoAstroMode, 0,
|
||||
$shutters->getTimeUpWeHoliday
|
||||
)
|
||||
) + 1
|
||||
) / 86400
|
||||
)
|
||||
)
|
||||
)
|
||||
{
|
||||
$shuttersSunriseUnixtime = (
|
||||
computeAlignTime(
|
||||
'24:00',
|
||||
sunrise_abs(
|
||||
$autoAstroMode, 0,
|
||||
$shutters->getTimeUpWeHoliday
|
||||
)
|
||||
) + 1
|
||||
);
|
||||
}
|
||||
elsif (
|
||||
int( gettimeofday() / 86400 ) == int(
|
||||
(
|
||||
computeAlignTime(
|
||||
'24:00',
|
||||
sunrise_abs(
|
||||
$autoAstroMode,
|
||||
0,
|
||||
$shutters->getTimeUpEarly,
|
||||
$shutters->getTimeUpLate
|
||||
)
|
||||
) + 1
|
||||
) / 86400
|
||||
)
|
||||
)
|
||||
{
|
||||
$shuttersSunriseUnixtime = (
|
||||
computeAlignTime(
|
||||
'24:00',
|
||||
sunrise_abs(
|
||||
$autoAstroMode, 0,
|
||||
$shutters->getTimeUpEarly,
|
||||
$shutters->getTimeUpLate
|
||||
)
|
||||
) + 1
|
||||
);
|
||||
}
|
||||
else {
|
||||
if (
|
||||
int( gettimeofday() / 86400 ) == int(
|
||||
(
|
||||
computeAlignTime(
|
||||
'24:00',
|
||||
sunrise_abs(
|
||||
$autoAstroMode, 0,
|
||||
$shutters->getTimeUpWeHoliday
|
||||
)
|
||||
) + 1
|
||||
) / 86400
|
||||
)
|
||||
)
|
||||
{
|
||||
$shuttersSunriseUnixtime = (
|
||||
computeAlignTime(
|
||||
'24:00',
|
||||
sunrise_abs(
|
||||
$autoAstroMode, 0,
|
||||
$shutters->getTimeUpWeHoliday
|
||||
)
|
||||
) + 86401
|
||||
);
|
||||
}
|
||||
else {
|
||||
$shuttersSunriseUnixtime = (
|
||||
computeAlignTime(
|
||||
'24:00',
|
||||
sunrise_abs(
|
||||
$autoAstroMode, 0,
|
||||
$shutters->getTimeUpWeHoliday
|
||||
)
|
||||
) + 1
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
Loading…
x
Reference in New Issue
Block a user