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 warnings;
|
||||||
use FHEM::Meta;
|
use FHEM::Meta;
|
||||||
|
|
||||||
my $version = '0.4.0.11beta61';
|
my $version = '0.4.0.11beta67';
|
||||||
|
|
||||||
sub AutoShuttersControl_Initialize($) {
|
sub AutoShuttersControl_Initialize($) {
|
||||||
my ($hash) = @_;
|
my ($hash) = @_;
|
||||||
@ -2473,6 +2473,33 @@ sub ShuttersSunrise($$$) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
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 = (
|
$shuttersSunriseUnixtime = (
|
||||||
computeAlignTime(
|
computeAlignTime(
|
||||||
'24:00',
|
'24:00',
|
||||||
@ -2483,6 +2510,71 @@ sub ShuttersSunrise($$$) {
|
|||||||
) + 1
|
) + 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 {
|
else {
|
||||||
$shuttersSunriseUnixtime = (
|
$shuttersSunriseUnixtime = (
|
||||||
|
Loading…
x
Reference in New Issue
Block a user