From c0104a3c531c5f50e6a09b075584a20e85f06441 Mon Sep 17 00:00:00 2001 From: Marko Oldenburg Date: Sun, 12 Apr 2020 11:21:18 +0200 Subject: [PATCH] fix drive up then roommate absent and ASC_Up absent --- 73_AutoShuttersControl.pm | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/73_AutoShuttersControl.pm b/73_AutoShuttersControl.pm index 8b4bee9..e8e136d 100644 --- a/73_AutoShuttersControl.pm +++ b/73_AutoShuttersControl.pm @@ -1336,9 +1336,8 @@ sub EventProcessingRoommate { && $shutters->getShadingMode eq 'home' ) { $shutters->setLastDrive('shading in'); - $posValue = $shutters->getShadingPos; - - ShuttersCommandSet( $hash, $shuttersDev, $posValue ); + ShuttersCommandSet( $hash, $shuttersDev, + $shutters->getShadingPos ); } elsif ( ( @@ -1363,9 +1362,9 @@ sub EventProcessingRoommate { : 'shading out' ) ); - $posValue = $shutters->getOpenPos; - ShuttersCommandSet( $hash, $shuttersDev, $posValue ); + ShuttersCommandSet( $hash, $shuttersDev, + $shutters->getOpenPos ); } } } @@ -1401,7 +1400,8 @@ sub EventProcessingRoommate { $1 eq 'absent' && ( !$shutters->getIsDay || $shutters->getDown eq 'roommate' - || $shutters->getShadingMode eq 'absent' ) + || $shutters->getShadingMode eq 'absent' + || $shutters->getUp eq 'absent' ) ) { if ( ( $shutters->getIsDay || $shutters->getUp eq 'roommate' ) @@ -1409,17 +1409,24 @@ sub EventProcessingRoommate { && !$shutters->getQueryShuttersPos( $shutters->getShadingPos ) && $shutters->getShadingMode eq 'absent' ) { - $posValue = $shutters->getShadingPos; $shutters->setLastDrive('shading in'); - ShuttersCommandSet( $hash, $shuttersDev, $posValue ); + ShuttersCommandSet( $hash, $shuttersDev, + $shutters->getShadingPos ); } elsif (( !$shutters->getIsDay || $shutters->getDown eq 'roommate' ) && $getModeDown eq 'absent' && $getRoommatesStatus eq 'absent' ) { - $posValue = $shutters->getClosedPos; $shutters->setLastDrive('roommate absent'); - ShuttersCommandSet( $hash, $shuttersDev, $posValue ); + ShuttersCommandSet( $hash, $shuttersDev, + $shutters->getClosedPos ); + } + elsif ($shutters->getIsDay + && $shutters->getUp eq 'absent' ) + { + $shutters->setLastDrive('roommate absent'); + ShuttersCommandSet( $hash, $shuttersDev, + $shutters->getOpenPos ); } } }