fix window closed after sunset and ModeUp absent, fix other bugs

This commit is contained in:
Marko Oldenburg 2019-04-30 09:53:45 +02:00
parent 6528876e23
commit ae7363d1f1

View File

@ -44,7 +44,7 @@ use strict;
use warnings;
use FHEM::Meta;
my $version = '0.6.3';
my $version = '0.6.3.4';
sub AutoShuttersControl_Initialize($) {
my ($hash) = @_;
@ -844,6 +844,15 @@ sub EventProcessingWindowRec($@) {
? $shutters->getStatus > $shutters->getComfortOpenPos
: $shutters->getStatus < $shutters->getComfortOpenPos
);
ASC_Debug( 'EventProcessingWindowRec: '
. $shutters->getShuttersDev
. ' - HOMEMODE: '
. $homemode
. ' : QueryShuttersPosWinRecTilted'
. $queryShuttersPosWinRecTilted
. ' QueryShuttersPosWinRecComfort: '
. $queryShuttersPosWinRecComfort );
if (
$1 eq 'closed'
@ -853,19 +862,17 @@ sub EventProcessingWindowRec($@) {
or $shutters->getStatus == $shutters->getOpenPos )
)
{
my $homemode = $shutters->getRoommatesStatus;
$homemode = $ascDev->getResidentsStatus
if ( $homemode eq 'none' );
if (
IsDay($shuttersDev)
and $shutters->getStatus != $shutters->getOpenPos
and ( $homemode ne 'asleep'
or $homemode ne 'gotosleep'
and ( ( $homemode ne 'asleep'
and $homemode ne 'gotosleep' )
or $homemode eq 'none' )
and $shutters->getModeUp ne 'absent'
and $shutters->getModeUp ne 'off'
)
{
$shutters->setLastDrive('window day closed');
$shutters->setLastDrive('window closed at day');
$shutters->setNoOffset(1);
$shutters->setDriveCmd(
(
@ -876,11 +883,16 @@ sub EventProcessingWindowRec($@) {
);
}
elsif (not IsDay($shuttersDev)
or $homemode eq 'asleep'
or $homemode eq 'gotosleep' )
elsif ( $shutters->getModeUp ne 'absent'
and $shutters->getModeUp ne 'off'
and ( not IsDay($shuttersDev)
or $homemode eq 'asleep'
or $homemode eq 'gotosleep' )
and $shutters->getModeDown ne 'absent'
and $shutters->getModeDown ne 'off'
)
{
$shutters->setLastDrive('window night closed');
$shutters->setLastDrive('window closed at night');
$shutters->setNoOffset(1);
$shutters->setDriveCmd( $shutters->getClosedPos );
}