add new attribut ASC_Shading_BetweenTheTime
for Shading In drive only between the Time
This commit is contained in:
@ -62,6 +62,7 @@ our @EXPORT_OK = qw(
|
||||
AverageBrightness
|
||||
PerlCodeCheck
|
||||
IsAdv
|
||||
IsInTime
|
||||
);
|
||||
our %EXPORT_TAGS = (
|
||||
ALL => [
|
||||
@ -80,6 +81,7 @@ our %EXPORT_TAGS = (
|
||||
AverageBrightness
|
||||
PerlCodeCheck
|
||||
IsAdv
|
||||
IsInTime
|
||||
)
|
||||
],
|
||||
);
|
||||
@ -1156,4 +1158,22 @@ sub IsAdv {
|
||||
return $adv;
|
||||
}
|
||||
|
||||
sub IsInTime {
|
||||
my $dfi = shift;
|
||||
|
||||
$dfi =~ s/{([^\x7d]*)}/$cmdFromAnalyze=$1; eval $1/ge; # Forum #69787
|
||||
my ($sec,$min,$hour,$mday,$month,$year,$wday,$yday,$isdst) = localtime(gettimeofday());
|
||||
my $dhms = sprintf("%s\@%02d:%02d:%02d", $wday, $hour, $min, $sec);
|
||||
foreach my $ft (split(" ", $dfi)) {
|
||||
my ($from, $to) = split("-", $ft);
|
||||
if(defined($from) && defined($to)) {
|
||||
$from = "$wday\@$from" if(index($from,"@") < 0);
|
||||
$to = "$wday\@$to" if(index($to, "@") < 0);
|
||||
return 1 if($from le $dhms && $dhms le $to);
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
1;
|
||||
|
@ -512,8 +512,8 @@ sub ShadingProcessingDriveCommand {
|
||||
$FHEM::Automation::ShuttersControl::shutters->setShadingStatus(
|
||||
$FHEM::Automation::ShuttersControl::shutters->getShadingStatus );
|
||||
|
||||
if (
|
||||
$FHEM::Automation::ShuttersControl::shutters->getShadingStatus eq 'in'
|
||||
if ( IsInTime($FHEM::Automation::ShuttersControl::shutters->getShadingBetweenTheTime)
|
||||
&& $FHEM::Automation::ShuttersControl::shutters->getShadingStatus eq 'in'
|
||||
&& $getShadingPos != $getStatus
|
||||
&& (
|
||||
FHEM::Automation::ShuttersControl::CheckIfShuttersWindowRecOpen(
|
||||
|
@ -1781,6 +1781,21 @@ sub getDown {
|
||||
return AttrVal( $self->{shuttersDev}, 'ASC_Down', 'astro' );
|
||||
}
|
||||
|
||||
sub setShadingBetweenTheTime {
|
||||
my $self = shift;
|
||||
my $attrVal = shift;
|
||||
|
||||
_setAttributs( $self->{shuttersDev}, 'ASC_Shading_BetweenTheTime', $attrVal );
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
sub getShadingBetweenTheTime {
|
||||
my $self = shift;
|
||||
|
||||
return AttrVal( $self->{shuttersDev}, 'ASC_Shading_BetweenTheTime', '00:00-24:00' );
|
||||
}
|
||||
|
||||
sub setTimeUpEarly {
|
||||
my $self = shift;
|
||||
my $attrVal = shift;
|
||||
|
Reference in New Issue
Block a user