diff --git a/73_AutoShuttersControl.pm b/73_AutoShuttersControl.pm index f69cc6c..07be0cf 100644 --- a/73_AutoShuttersControl.pm +++ b/73_AutoShuttersControl.pm @@ -1542,6 +1542,12 @@ sub EventProcessingResidents { && $shutters->getSelfDefenseMode ne 'off' || ( $getModeDown eq 'absent' || $getModeDown eq 'always' ) + || ( $shutters->getShadingMode eq 'absent' + && $shutters->getRoommatesStatus eq 'none' + ) + || ( $shutters->getShadingMode eq 'home' + && $shutters->getRoommatesStatus eq 'none' + ) ) { if ( @@ -1561,6 +1567,29 @@ sub EventProcessingResidents { $shutters->setSelfDefenseState(1); $shutters->setDriveCmd( $shutters->getClosedPos ); } + elsif ( $shutters->getIsDay + && $shutters->getIfInShading + && $shutters->getShadingMode eq 'absent' + && $shutters->getRoommatesStatus eq 'none' + ) + { + ShadingProcessingDriveCommand( $hash, $shuttersDev ); + } + elsif ( $shutters->getShadingMode eq 'home' + && $shutters->getIsDay + && $shutters->getIfInShading + && $shutters->getStatus == $shutters->getShadingPos + && $shutters->getRoommatesStatus eq 'none' + && !( + CheckIfShuttersWindowRecOpen($shuttersDev) == 2 + && $shutters->getShuttersPlace eq 'terrace' + ) + && !$shutters->getSelfDefenseState + ) + { + $shutters->setLastDrive('shading out'); + $shutters->setDriveCmd( $shutters->getLastPos ); + } elsif (( $getModeDown eq 'absent' || $getModeDown eq 'always' ) && !$shutters->getIsDay && IsAfterShuttersTimeBlocking($shuttersDev) @@ -1640,8 +1669,7 @@ sub EventProcessingResidents { && !$shutters->getSelfDefenseState ) { - $shutters->setLastDrive('shading in'); - $shutters->setDriveCmd( $shutters->getShadingPos ); + ShadingProcessingDriveCommand( $hash, $shuttersDev ); } elsif ( $shutters->getShadingMode eq 'absent'