fix partyMode and window open condition

This commit is contained in:
Marko Oldenburg 2019-09-20 20:35:48 +02:00
parent 07c3a5d634
commit 8035f9a5c6

View File

@ -1178,7 +1178,8 @@ sub EventProcessingRoommate($@) {
and $getRoommatesStatus eq 'home' and $getRoommatesStatus eq 'home'
) )
{ {
if ( not $shutters->getIsDay if (
not $shutters->getIsDay
and IsAfterShuttersTimeBlocking($shuttersDev) and IsAfterShuttersTimeBlocking($shuttersDev)
and ( $getModeDown eq 'home' and ( $getModeDown eq 'home'
or $getModeDown eq 'always' ) or $getModeDown eq 'always' )
@ -2408,48 +2409,50 @@ sub ShuttersCommandSet($$$) {
my $name = $hash->{NAME}; my $name = $hash->{NAME};
$shutters->setShuttersDev($shuttersDev); $shutters->setShuttersDev($shuttersDev);
if ( if (($posValue == $shutters->getShadingPos
$posValue != $shutters->getShadingPos and (
or ( CheckIfShuttersWindowRecOpen($shuttersDev) == 2
$posValue == $shutters->getShadingPos
and CheckIfShuttersWindowRecOpen($shuttersDev) == 2
and $shutters->getShuttersPlace eq 'terrace' and $shutters->getShuttersPlace eq 'terrace'
and ( $shutters->getLockOut eq 'soft' and ( $shutters->getLockOut eq 'soft'
or $shutters->getLockOut eq 'hard' ) or $shutters->getLockOut eq 'hard' )
and not $shutters->getQueryShuttersPos($posValue)
)
) )
and ( or ($posValue != $shutters->getShadingPos
( and (
$shutters->getPartyMode eq 'on' (
and $ascDev->getPartyMode eq 'on' $shutters->getPartyMode eq 'on'
) and $ascDev->getPartyMode eq 'on'
or ( )
or (
CheckIfShuttersWindowRecOpen($shuttersDev) == 2
and $shutters->getSubTyp eq 'threestate'
and ( $ascDev->getAutoShuttersControlComfort eq 'off'
or $shutters->getComfortOpenPos != $posValue )
and $shutters->getVentilateOpen eq 'on'
and $shutters->getShuttersPlace eq 'window'
and $shutters->getLockOut ne 'off'
)
or ( CheckIfShuttersWindowRecOpen($shuttersDev) == 2
and $shutters->getSubTyp eq 'threestate'
and $ascDev->getAutoShuttersControlComfort eq 'on'
and $shutters->getVentilateOpen eq 'off'
and $shutters->getShuttersPlace eq 'window'
and $shutters->getLockOut ne 'off' )
or (
CheckIfShuttersWindowRecOpen($shuttersDev) == 2 CheckIfShuttersWindowRecOpen($shuttersDev) == 2
and $shutters->getSubTyp eq 'threestate' and ( $shutters->getLockOut eq 'soft'
and ( $ascDev->getAutoShuttersControlComfort eq 'off' or $shutters->getLockOut eq 'hard' )
or $shutters->getComfortOpenPos != $posValue ) and not $shutters->getQueryShuttersPos($posValue)
and $shutters->getVentilateOpen eq 'on' )
and $shutters->getShuttersPlace eq 'window' or ( CheckIfShuttersWindowRecOpen($shuttersDev) == 2
and $shutters->getLockOut ne 'off' and $shutters->getShuttersPlace eq 'terrace'
and not $shutters->getQueryShuttersPos($posValue) )
or ( $shutters->getRainProtectionStatus eq 'protected'
and $shutters->getWindProtectionStatus eq 'protected' )
)
) )
or ( CheckIfShuttersWindowRecOpen($shuttersDev) == 2
and $shutters->getSubTyp eq 'threestate'
and $ascDev->getAutoShuttersControlComfort eq 'on'
and $shutters->getVentilateOpen eq 'off'
and $shutters->getShuttersPlace eq 'window'
and $shutters->getLockOut ne 'off' )
or (
CheckIfShuttersWindowRecOpen($shuttersDev) == 2
and ( $shutters->getLockOut eq 'soft'
or $shutters->getLockOut eq 'hard' )
and not $shutters->getQueryShuttersPos($posValue)
)
or ( CheckIfShuttersWindowRecOpen($shuttersDev) == 2
and $shutters->getShuttersPlace eq 'terrace'
and not $shutters->getQueryShuttersPos($posValue) )
or ( $shutters->getRainProtectionStatus eq 'protected'
and $shutters->getWindProtectionStatus eq 'protected' )
) )
)
{ {
$shutters->setDelayCmd($posValue); $shutters->setDelayCmd($posValue);
$ascDev->setDelayCmdReading; $ascDev->setDelayCmdReading;