change selfDefense Code in ResidentsFn

This commit is contained in:
Marko Oldenburg 2019-09-16 10:12:28 +02:00
parent 2b5368ef0f
commit 4c72e24ca7

View File

@ -1290,19 +1290,14 @@ sub EventProcessingResidents($@) {
) )
{ {
if ( if (
( $shutters->getSelfDefenseMode eq 'absent'
CheckIfShuttersWindowRecOpen($shuttersDev) != 0
or $shutters->getSelfDefenseMode eq 'absent'
)
and $ascDev->getSelfDefense eq 'on' and $ascDev->getSelfDefense eq 'on'
and $shutters->getSelfDefenseExclude eq 'off' and $shutters->getSelfDefenseExclude eq 'off'
) )
{ {
$shutters->setLastDrive('selfDefense active'); $shutters->setLastDrive('selfDefense active');
$shutters->setSelfDefenseAbsent( 0, 1 $shutters->setSelfDefenseAbsent( 0, 1
) # der erste Wert ist ob der timer schon läuft, der zweite ist ob self defense aktiv ist durch die Bedingungen ); # der erste Wert ist ob der timer schon läuft, der zweite ist ob self defense aktiv ist durch die Bedingungen
if ( CheckIfShuttersWindowRecOpen($shuttersDev) == 0
and $shutters->getSelfDefenseMode eq 'absent' );
$shutters->setDriveCmd( $shutters->getClosedPos ); $shutters->setDriveCmd( $shutters->getClosedPos );
} }
elsif ( elsif (
@ -1322,15 +1317,14 @@ sub EventProcessingResidents($@) {
} }
} }
elsif ( $events =~ m#$reading:\s(gone)# elsif ( $events =~ m#$reading:\s(gone)#
and $ascDev->getSelfDefense eq 'on' and $ascDev->getSelfDefense eq 'on' )
and $shutters->getSelfDefenseMode eq 'gone'
and $shutters->getSelfDefenseExclude eq 'off' )
{ {
foreach my $shuttersDev ( @{ $hash->{helper}{shuttersList} } ) { foreach my $shuttersDev ( @{ $hash->{helper}{shuttersList} } ) {
$shutters->setShuttersDev($shuttersDev); $shutters->setShuttersDev($shuttersDev);
$shutters->setHardLockOut('off'); $shutters->setHardLockOut('off');
if ( $shutters->getShuttersPlace eq 'terrace' ) { if ( $shutters->getSelfDefenseExclude eq 'off' ) {
$shutters->setLastDrive('selfDefense terrace');
$shutters->setLastDrive('selfDefense');
$shutters->setDriveCmd( $shutters->getClosedPos ); $shutters->setDriveCmd( $shutters->getClosedPos );
} }
} }
@ -1395,12 +1389,8 @@ sub EventProcessingResidents($@) {
$shutters->setDriveCmd( $shutters->getLastPos ); $shutters->setDriveCmd( $shutters->getLastPos );
} }
elsif ( elsif (
( $ascDev->getSelfDefense eq 'on'
$ascDev->getSelfDefense eq 'on' and $shutters->getSelfDefenseExclude eq 'off'
and $shutters->getSelfDefenseExclude eq 'off'
or ( $getResidentsLastStatus eq 'gone'
and $shutters->getShuttersPlace eq 'terrace' )
)
and not $shutters->getIfInShading and not $shutters->getIfInShading
and ( $getResidentsLastStatus eq 'gone' and ( $getResidentsLastStatus eq 'gone'
or $getResidentsLastStatus eq 'absent' ) or $getResidentsLastStatus eq 'absent' )
@ -1411,7 +1401,6 @@ sub EventProcessingResidents($@) {
if ( $getResidentsLastStatus eq 'absent' if ( $getResidentsLastStatus eq 'absent'
and $ascDev->getSelfDefense eq 'on' and $ascDev->getSelfDefense eq 'on'
and $shutters->getSelfDefenseExclude eq 'off' and $shutters->getSelfDefenseExclude eq 'off'
and CheckIfShuttersWindowRecOpen($shuttersDev) == 0
and not $shutters->getSelfDefenseAbsent and not $shutters->getSelfDefenseAbsent
and $shutters->getSelfDefenseAbsentTimerrun ); and $shutters->getSelfDefenseAbsentTimerrun );