add condition for manual drive then shading

This commit is contained in:
Marko Oldenburg 2019-06-29 19:39:44 +02:00
parent b1aacde894
commit 1c190fb41a

View File

@ -2008,8 +2008,6 @@ sub ShadingProcessing($@) {
or $outTemp == -100 or $outTemp == -100
or ( int( gettimeofday() ) - $shutters->getShadingStatusTimestamp ) < or ( int( gettimeofday() ) - $shutters->getShadingStatusTimestamp ) <
( $shutters->getShadingWaitingPeriod / 2 ) ( $shutters->getShadingWaitingPeriod / 2 )
or not IsAfterShuttersTimeBlocking($shuttersDev)
or not IsAfterShuttersManualBlocking($shuttersDev)
or $shutters->getShadingMode eq 'off' ); or $shutters->getShadingMode eq 'off' );
Log3( $name, 4, Log3( $name, 4,
@ -2128,6 +2126,9 @@ sub ShadingProcessing($@) {
ShadingProcessingDriveCommand( $hash, $shuttersDev ) ShadingProcessingDriveCommand( $hash, $shuttersDev )
if ( if (
$shutters->getIsDay $shutters->getIsDay
and IsAfterShuttersTimeBlocking($shuttersDev)
and IsAfterShuttersManualBlocking($shuttersDev)
and not $shutters->getShadingManualDriveStatus
and ( and (
( (
$shutters->getShadingStatus eq 'out' $shutters->getShadingStatus eq 'out'
@ -2306,6 +2307,12 @@ sub EventProcessingShutters($@) {
$ascDev->setStateReading; $ascDev->setStateReading;
$shutters->setLastManPos($1); $shutters->setLastManPos($1);
$shutters->setShadingManualDriveStatus(1)
if (
$shutters->getIsDay
and $shutters->getIfInShading
);
ASC_Debug( ASC_Debug(
'EventProcessingShutters: eine manualle Fahrt wurde erkannt!'); 'EventProcessingShutters: eine manualle Fahrt wurde erkannt!');
} }
@ -4154,6 +4161,17 @@ sub setShadingLastStatus {
$self->{ $self->{shuttersDev} }{ShadingLastStatus}{TIME} = $self->{ $self->{shuttersDev} }{ShadingLastStatus}{TIME} =
int( gettimeofday() ) int( gettimeofday() )
if ( defined( $self->{ $self->{shuttersDev} }{ShadingLastStatus} ) ); if ( defined( $self->{ $self->{shuttersDev} }{ShadingLastStatus} ) );
$self->{ $self->{shuttersDev} }{ShadingManualDriveStatus}{VAL} = 0
if ( $value eq 'out' );
return 0;
}
sub setShadingManualDriveStatus {
my ( $self, $value ) = @_;
### Werte für value = in, out
$self->{ $self->{shuttersDev} }{ShadingManualDriveStatus}{VAL} = $value
if ( defined($value) );
return 0; return 0;
} }
@ -4190,6 +4208,16 @@ sub getShadingLastStatus { # Werte für value = in, out
); );
} }
sub getShadingManualDriveStatus { # Werte für value = in, out
my $self = shift;
return ( defined( $self->{ $self->{shuttersDev} }{ShadingManualDriveStatus} )
and defined( $self->{ $self->{shuttersDev} }{ShadingManualDriveStatus}{VAL} )
? $self->{ $self->{shuttersDev} }{ShadingManualDriveStatus}{VAL}
: 0
);
}
sub getIfInShading { sub getIfInShading {
my $self = shift; my $self = shift;
@ -6453,7 +6481,7 @@ sub getblockAscDrivesAfterManual {
"release_status": "under develop", "release_status": "under develop",
"license": "GPL_2", "license": "GPL_2",
"version": "v0.6.19", "version": "v0.6.19",
"x_developmentversion": "v0.6.19.26", "x_developmentversion": "v0.6.19.28",
"author": [ "author": [
"Marko Oldenburg <leongaultier@gmail.com>" "Marko Oldenburg <leongaultier@gmail.com>"
], ],