fix bug then coming home

This commit is contained in:
Marko Oldenburg 2018-10-30 15:26:04 +01:00
parent 8ecd3dc580
commit f504135628

View File

@ -38,7 +38,7 @@ package main;
use strict; use strict;
use warnings; use warnings;
my $version = "0.1.83"; my $version = "0.1.84";
sub AutoShuttersControl_Initialize($) { sub AutoShuttersControl_Initialize($) {
my ($hash) = @_; my ($hash) = @_;
@ -849,9 +849,9 @@ sub RoommateEventProcessing($@) {
or $shutters->getRoommatesLastStatus eq 'gone' or $shutters->getRoommatesLastStatus eq 'gone'
or $shutters->getRoommatesLastStatus eq 'home') or $shutters->getRoommatesLastStatus eq 'home')
and $shutters->getModeUp eq 'home' and $shutters->getModeUp eq 'home'
and $shutters->getRoommatesStatus eq 'home' and $shutters->getRoommatesStatus eq 'home' )
and not IsDay( $hash, $shuttersDev ) )
{ {
if ( not IsDay( $hash, $shuttersDev ) ) {
my $position; my $position;
if ( CheckIfShuttersWindowRecOpen($shuttersDev) == 0 if ( CheckIfShuttersWindowRecOpen($shuttersDev) == 0
or $shutters->getVentilateOpen eq 'off' ) or $shutters->getVentilateOpen eq 'off' )
@ -863,6 +863,12 @@ sub RoommateEventProcessing($@) {
$shutters->setLastDrive('roommate home'); $shutters->setLastDrive('roommate home');
ShuttersCommandSet( $hash, $shuttersDev, $position ); ShuttersCommandSet( $hash, $shuttersDev, $position );
} }
elsif ( IsDay( $hash, $shuttersDev )
and $shutters->getStatus == $shutters->getClosedPos) {
$shutters->setLastDrive('roommate home');
ShuttersCommandSet( $hash, $shuttersDev, $shutters->getOpenPos );
}
}
} }
elsif ( ($shutters->getModeDown eq 'always' elsif ( ($shutters->getModeDown eq 'always'
or $shutters->getModeUp eq 'home' ) or $shutters->getModeUp eq 'home' )
@ -900,14 +906,15 @@ sub ResidentsEventProcessing($@) {
{ {
foreach my $shuttersDev ( @{ $hash->{helper}{shuttersList} } ) { foreach my $shuttersDev ( @{ $hash->{helper}{shuttersList} } ) {
$shutters->setShuttersDev($shuttersDev); $shutters->setShuttersDev($shuttersDev);
$shutters->setLastDrive('selfeDefense active');
$shutters->setDriveCmd( $shutters->getClosedPos )
if ( CheckIfShuttersWindowRecOpen($shuttersDev) != 0 if ( CheckIfShuttersWindowRecOpen($shuttersDev) != 0
and $shutters->getSelfDefenseExclude eq 'off' and $shutters->getSelfDefenseExclude eq 'off'
or ($shutters->getUpMode eq 'absent' or ($shutters->getUpMode eq 'absent'
and not IsDay( $hash, $shuttersDev )) and not IsDay( $hash, $shuttersDev )) )
); {
$shutters->setLastDrive('selfeDefense active');
$shutters->setDriveCmd( $shutters->getClosedPos );
}
} }
} }
elsif ( $events =~ m#$reading:\s(gone)# elsif ( $events =~ m#$reading:\s(gone)#
@ -915,9 +922,11 @@ sub ResidentsEventProcessing($@) {
{ {
foreach my $shuttersDev ( @{ $hash->{helper}{shuttersList} } ) { foreach my $shuttersDev ( @{ $hash->{helper}{shuttersList} } ) {
$shutters->setShuttersDev($shuttersDev); $shutters->setShuttersDev($shuttersDev);
if ( $shutters->getShuttersPlace eq 'terrace' ) {
$shutters->setLastDrive('selfeDefense terrace'); $shutters->setLastDrive('selfeDefense terrace');
$shutters->setDriveCmd( $shutters->getClosedPos ) $shutters->setDriveCmd( $shutters->getClosedPos );
if ( $shutters->getShuttersPlace eq 'terrace' ); }
} }
} }
elsif ( elsif (