diff --git a/73_AutoShuttersControl.pm b/73_AutoShuttersControl.pm index 3855ce3..c59e284 100644 --- a/73_AutoShuttersControl.pm +++ b/73_AutoShuttersControl.pm @@ -2008,8 +2008,6 @@ sub ShadingProcessing($@) { or $outTemp == -100 or ( int( gettimeofday() ) - $shutters->getShadingStatusTimestamp ) < ( $shutters->getShadingWaitingPeriod / 2 ) - or not IsAfterShuttersTimeBlocking($shuttersDev) - or not IsAfterShuttersManualBlocking($shuttersDev) or $shutters->getShadingMode eq 'off' ); Log3( $name, 4, @@ -2128,6 +2126,9 @@ sub ShadingProcessing($@) { ShadingProcessingDriveCommand( $hash, $shuttersDev ) if ( $shutters->getIsDay + and IsAfterShuttersTimeBlocking($shuttersDev) + and IsAfterShuttersManualBlocking($shuttersDev) + and not $shutters->getShadingManualDriveStatus and ( ( $shutters->getShadingStatus eq 'out' @@ -2306,6 +2307,12 @@ sub EventProcessingShutters($@) { $ascDev->setStateReading; $shutters->setLastManPos($1); + $shutters->setShadingManualDriveStatus(1) + if ( + $shutters->getIsDay + and $shutters->getIfInShading + ); + ASC_Debug( 'EventProcessingShutters: eine manualle Fahrt wurde erkannt!'); } @@ -4154,6 +4161,17 @@ sub setShadingLastStatus { $self->{ $self->{shuttersDev} }{ShadingLastStatus}{TIME} = int( gettimeofday() ) 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; } @@ -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 { my $self = shift; @@ -6453,7 +6481,7 @@ sub getblockAscDrivesAfterManual { "release_status": "under develop", "license": "GPL_2", "version": "v0.6.19", - "x_developmentversion": "v0.6.19.26", + "x_developmentversion": "v0.6.19.28", "author": [ "Marko Oldenburg " ],