fix selfDefense then coming home at night with brightnes

This commit is contained in:
Marko Oldenburg 2019-12-09 14:18:24 +01:00
parent 4d52cd52a4
commit eb61c5c7e0

View File

@ -1392,9 +1392,10 @@ sub EventProcessingResidents($@) {
) )
) )
{ {
$shutters->setLastDrive('selfDefense active'); $shutters->setLastDrive('selfDefense absent 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
$shutters->setSelfDefenseState(1);
$shutters->setDriveCmd( $shutters->getClosedPos ); $shutters->setDriveCmd( $shutters->getClosedPos );
} }
elsif ( elsif (
@ -1421,7 +1422,8 @@ sub EventProcessingResidents($@) {
$shutters->setHardLockOut('off'); $shutters->setHardLockOut('off');
if ( $shutters->getSelfDefenseMode ne 'off' ) { if ( $shutters->getSelfDefenseMode ne 'off' ) {
$shutters->setLastDrive('selfDefense'); $shutters->setLastDrive('selfDefense gone active');
$shutters->setSelfDefenseState(1);
$shutters->setDriveCmd( $shutters->getClosedPos ); $shutters->setDriveCmd( $shutters->getClosedPos );
} }
} }
@ -1448,6 +1450,7 @@ sub EventProcessingResidents($@) {
and ( $getResidentsLastStatus ne 'asleep' and ( $getResidentsLastStatus ne 'asleep'
or $getResidentsLastStatus ne 'awoken' ) or $getResidentsLastStatus ne 'awoken' )
and IsAfterShuttersTimeBlocking($shuttersDev) and IsAfterShuttersTimeBlocking($shuttersDev)
and not $shutters->getSelfDefenseState
) )
{ {
$shutters->setLastDrive('residents come home'); $shutters->setLastDrive('residents come home');
@ -1465,6 +1468,7 @@ sub EventProcessingResidents($@) {
and not $shutters->getShadingManualDriveStatus and not $shutters->getShadingManualDriveStatus
and not( CheckIfShuttersWindowRecOpen($shuttersDev) == 2 and not( CheckIfShuttersWindowRecOpen($shuttersDev) == 2
and $shutters->getShuttersPlace eq 'terrace' ) and $shutters->getShuttersPlace eq 'terrace' )
and not $shutters->getSelfDefenseState
) )
{ {
$shutters->setLastDrive('shading in'); $shutters->setLastDrive('shading in');
@ -1479,6 +1483,7 @@ sub EventProcessingResidents($@) {
and not $shutters->getShadingManualDriveStatus and not $shutters->getShadingManualDriveStatus
and not( CheckIfShuttersWindowRecOpen($shuttersDev) == 2 and not( CheckIfShuttersWindowRecOpen($shuttersDev) == 2
and $shutters->getShuttersPlace eq 'terrace' ) and $shutters->getShuttersPlace eq 'terrace' )
and not $shutters->getSelfDefenseState
) )
{ {
$shutters->setLastDrive('shading out'); $shutters->setLastDrive('shading out');
@ -1490,7 +1495,7 @@ sub EventProcessingResidents($@) {
and not $shutters->getIfInShading and not $shutters->getIfInShading
and ( $getResidentsLastStatus eq 'gone' and ( $getResidentsLastStatus eq 'gone'
or $getResidentsLastStatus eq 'absent' ) or $getResidentsLastStatus eq 'absent' )
and $shutters->getLastDrive eq 'selfDefense active' and $shutters->getSelfDefenseState
) )
{ {
RemoveInternalTimer( $shutters->getSelfDefenseAbsentTimerhash ) RemoveInternalTimer( $shutters->getSelfDefenseAbsentTimerhash )
@ -1511,6 +1516,7 @@ sub EventProcessingResidents($@) {
or $getModeUp eq 'off' ) or $getModeUp eq 'off' )
); );
$shutters->setSelfDefenseState(0);
$shutters->setLastDrive('selfDefense inactive'); $shutters->setLastDrive('selfDefense inactive');
$shutters->setDriveCmd( $shutters->setDriveCmd(
( (
@ -1529,6 +1535,7 @@ sub EventProcessingResidents($@) {
or $getModeUp eq 'always' ) or $getModeUp eq 'always' )
and IsAfterShuttersTimeBlocking($shuttersDev) and IsAfterShuttersTimeBlocking($shuttersDev)
and not $shutters->getIfInShading and not $shutters->getIfInShading
and not $shutters->getSelfDefenseState
) )
{ {
if ( $getResidentsLastStatus eq 'asleep' if ( $getResidentsLastStatus eq 'asleep'
@ -1997,7 +2004,8 @@ sub EventProcessingBrightness($@) {
$shutters->setLastDrive($lastDrive); $shutters->setLastDrive($lastDrive);
if ( $shutters->getPrivacyDownStatus != 2 if ( $shutters->getPrivacyDownStatus != 2
and $posValue != $shutters->getStatus ) # and $posValue != $shutters->getStatus
)
{ {
print( 'ASC_DEBUG!!! PrivacyStatus_2: ' print( 'ASC_DEBUG!!! PrivacyStatus_2: '
. $shutters->getPrivacyDownStatus . $shutters->getPrivacyDownStatus
@ -4352,7 +4360,8 @@ sub setDriveCmd {
or ( $shutters->getAdv or ( $shutters->getAdv
and not $shutters->getQueryShuttersPos($posValue) and not $shutters->getQueryShuttersPos($posValue)
and not $shutters->getAdvDelay and not $shutters->getAdvDelay
and not $shutters->getExternalTriggerState) and not $shutters->getExternalTriggerState
and not $shutters->getSelfDefenseState)
) )
{ {
$shutters->setDelayCmd($posValue); $shutters->setDelayCmd($posValue);
@ -4403,7 +4412,7 @@ sub setDriveCmd {
if ( $shutters->getSelfDefenseAbsent if ( $shutters->getSelfDefenseAbsent
and not $shutters->getSelfDefenseAbsentTimerrun and not $shutters->getSelfDefenseAbsentTimerrun
and $shutters->getSelfDefenseMode ne 'off' and $shutters->getSelfDefenseMode ne 'off'
and $shutters->getLastDrive eq 'selfDefense active' and $shutters->getSelfDefenseState
and $ascDev->getSelfDefense eq 'on' ) and $ascDev->getSelfDefense eq 'on' )
{ {
InternalTimer( InternalTimer(
@ -4563,6 +4572,13 @@ sub setPrivacyUpStatus {
return 0; return 0;
} }
sub setSelfDefenseState {
my ( $self, $value ) = @_;
$self->{ $self->{shuttersDev} }{selfDefenseState} = $value;
return 0;
}
sub setAdvDelay { sub setAdvDelay {
my ( $self, $advDelay ) = @_; my ( $self, $advDelay ) = @_;
@ -4673,6 +4689,18 @@ sub getNoDelay {
return $self->{ $self->{shuttersDev} }{noDelay}; return $self->{ $self->{shuttersDev} }{noDelay};
} }
sub getSelfDefenseState {
my $self = shift;
return $self->{ $self->{shuttersDev} }{selfDefenseState}
if (
defined(
$self->{ $self->{shuttersDev} }{selfDefenseState}
)
);
}
sub getSelfDefenseAbsent { sub getSelfDefenseAbsent {
my $self = shift; my $self = shift;
@ -7812,7 +7840,7 @@ sub getblockAscDrivesAfterManual {
], ],
"release_status": "under develop", "release_status": "under develop",
"license": "GPL_2", "license": "GPL_2",
"version": "v0.8.6", "version": "v0.8.7",
"author": [ "author": [
"Marko Oldenburg <leongaultier@gmail.com>" "Marko Oldenburg <leongaultier@gmail.com>"
], ],