Fix little Bugs in Shading and Window open with shading state

This commit is contained in:
Marko Oldenburg 2020-04-11 15:53:21 +02:00
parent 6fa8fa8817
commit 18b6286cbc

View File

@ -1117,8 +1117,11 @@ sub EventProcessingWindowRec {
$shutters->setNoDelay(1);
$shutters->setDriveCmd( $shutters->getShadingPos );
}
elsif ($shutters->getStatus != $shutters->getOpenPos
|| $shutters->getStatus != $shutters->getLastManPos )
elsif (
!$shutters->getIfInShading
&& ( $shutters->getStatus != $shutters->getOpenPos
|| $shutters->getStatus != $shutters->getLastManPos )
)
{
if ( $shutters->getPrivacyDownStatus == 2 ) {
$shutters->setLastDrive(
@ -2463,6 +2466,7 @@ sub ShadingProcessing {
&& $shutters->getShadingLastStatus eq 'out' )
)
&& $shutters->getRoommatesStatus ne 'asleep'
&& $shutters->getRoommatesStatus ne 'gotosleep'
);
return;
@ -2486,27 +2490,23 @@ sub ShadingProcessingDriveCommand {
{
$shutters->setShadingStatus( $shutters->getShadingStatus );
if ( $shutters->getShadingStatus eq 'in'
&& $getShadingPos != $getStatus )
if (
$shutters->getShadingStatus eq 'in'
&& $getShadingPos != $getStatus
&& ( CheckIfShuttersWindowRecOpen($shuttersDev) != 2
|| $shutters->getShuttersPlace ne 'terrace' )
)
{
if (
!(
CheckIfShuttersWindowRecOpen($shuttersDev) == 2
&& $shutters->getShuttersPlace eq 'terrace'
)
)
{
$shutters->setLastDrive('shading in');
ShuttersCommandSet( $hash, $shuttersDev, $getShadingPos );
$shutters->setLastDrive('shading in');
ShuttersCommandSet( $hash, $shuttersDev, $getShadingPos );
ASC_Debug( 'ShadingProcessingDriveCommand: '
. $shutters->getShuttersDev
. ' - Der aktuelle Beschattungsstatus ist: '
. $shutters->getShadingStatus
. ' und somit wird nun in die Position: '
. $getShadingPos
. ' zum Beschatten gefahren' );
}
ASC_Debug( 'ShadingProcessingDriveCommand: '
. $shutters->getShuttersDev
. ' - Der aktuelle Beschattungsstatus ist: '
. $shutters->getShadingStatus
. ' und somit wird nun in die Position: '
. $getShadingPos
. ' zum Beschatten gefahren' );
}
elsif ($shutters->getShadingStatus eq 'out'
&& $getShadingPos == $getStatus )
@ -2775,14 +2775,12 @@ sub ShuttersCommandSet {
if (
(
$posValue == $shutters->getShadingPos
&& (
CheckIfShuttersWindowRecOpen($shuttersDev) == 2
&& $shutters->getShuttersPlace eq 'terrace'
&& ( $shutters->getLockOut eq 'soft'
|| $shutters->getLockOut eq 'hard' )
&& !$shutters->getQueryShuttersPos($posValue)
)
$posValue == $shutters->getShadingPos
&& CheckIfShuttersWindowRecOpen($shuttersDev) == 2
&& $shutters->getShuttersPlace eq 'terrace'
&& ( $shutters->getLockOut eq 'soft'
|| $shutters->getLockOut eq 'hard' )
&& !$shutters->getQueryShuttersPos($posValue)
)
|| (
$posValue != $shutters->getShadingPos