2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-03-04 05:16:45 +00:00

99_SUNRISE_EL.pm: Patch from Dietmar63 (Forum #27471)

git-svn-id: https://svn.fhem.de/fhem/trunk@6765 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
rudolfkoenig 2014-10-14 18:24:29 +00:00
parent 62b6091a32
commit da2019a2ba

View File

@ -48,16 +48,17 @@ sub
sr($$$$$$)
{
my ($rise, $seconds, $isrel, $daycheck, $min, $max) = @_;
sr_alt(time(), $rise, $isrel, $daycheck, $defaultaltit, $seconds, $min, $max);
sr_alt(time(), $rise, $isrel, $daycheck, 1, $defaultaltit,$seconds,$min,$max);
}
sub
sr_alt($$$$$$$$)
sr_alt($$$$$$$$$)
{
my $nt=shift;
my $rise=shift;
my $isrel=shift;
my $daycheck=shift;
my $nextDay=shift;
my $altit = defined($_[0]) ? $_[0] : "";
if(exists $alti{uc($altit)}) {
$altit=$alti{uc($altit)};
@ -99,8 +100,8 @@ sr_alt($$$$$$$$)
$sst = hms2h($max) if(defined($max) && (hms2h($max) < $sst));
my $diff = 0;
if($data{AT_RECOMPUTE} || # compute it for tommorow
int(($nh-$sst)*3600) >= 0) { # if called a subsec earlier
if (($data{AT_RECOMPUTE} || # compute it for tommorow
int(($nh-$sst)*3600) >= 0) && $nextDay) { # if called a subsec earlier
$nt += 86400;
@lt = localtime($nt);
my $ngmtoff = _calctz($nt,@lt); # in hour
@ -359,18 +360,30 @@ h2hms_fmt($)
return sprintf("%02d:%02d:%02d", $h, $m, $s);
}
sub
sr_noon($)
{
my ($date) = @_;
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($date);
return $date - $hour*3600 - $min*60 - $sec + 12*3600;
}
sub sunrise_coord($$$) { ($long, $lat, $tz) = @_; return undef; }
sub sunrise_rel (@) { return sr_alt(time(), 1, 1, 0, shift, shift, shift, shift) }
sub sunset_rel (@) { return sr_alt(time(), 0, 1, 0, shift, shift, shift, shift) }
sub sunrise_abs (@) { return sr_alt(time(), 1, 0, 0, shift, shift, shift, shift) }
sub sunset_abs (@) { return sr_alt(time(), 0, 0, 0, shift, shift, shift, shift) }
sub sunrise (@) { return sr_alt(time(), 1, 2, 0, shift, shift, shift, shift) }
sub sunset (@) { return sr_alt(time(), 0, 2, 0, shift, shift, shift, shift) }
sub isday (@) { return sr_alt(time(), 1, 0, 1, shift, 0, undef, undef) }
sub sunrise_rel(@) { return sr_alt(time(),1,1,0,1,shift,shift,shift,shift); }
sub sunset_rel (@) { return sr_alt(time(),0,1,0,1,shift,shift,shift,shift); }
sub sunrise_abs(@) { return sr_alt(time(),1,0,0,1,shift,shift,shift,shift); }
sub sunset_abs (@) { return sr_alt(time(),0,0,0,1,shift,shift,shift,shift); }
sub sunrise (@) { return sr_alt(time(),1,2,0,1,shift,shift,shift,shift); }
sub sunset (@) { return sr_alt(time(),0,2,0,1,shift,shift,shift,shift); }
sub isday (@) { return sr_alt(time(),1,0,1,1,shift, 0,undef,undef); }
sub sunrise_abs_dat(@) { return sr_alt(shift, 1, 0, 0, shift, shift, shift, shift) }
sub sunset_abs_dat (@) { return sr_alt(shift, 0, 0, 0, shift, shift, shift, shift) }
sub sunrise_abs_dat(@) {
return sr_alt(sr_noon(shift),1,0,0,0,shift,shift,shift,shift);
}
sub sunset_abs_dat (@) {
return sr_alt(sr_noon(shift),0,0,0,0,shift,shift,shift,shift);
}
1;