From 3910f48818fae8bea5b257b896869d78cacc06cc Mon Sep 17 00:00:00 2001 From: LeonGaultier Date: Tue, 14 Apr 2020 10:09:09 +0000 Subject: [PATCH] 73_AutoShuttersControl: fix roommate absent and add code stable ti shading fn git-svn-id: https://svn.fhem.de/fhem/trunk@21670 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/CHANGED | 2 ++ fhem/FHEM/73_AutoShuttersControl.pm | 27 +++++++++++++++++++++++++-- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/fhem/CHANGED b/fhem/CHANGED index 04ef54c46..41ae06f4d 100644 --- a/fhem/CHANGED +++ b/fhem/CHANGED @@ -1,5 +1,7 @@ # Add changes at the top of the list. Keep it in ASCII, and 80-char wide. # Do not insert empty lines here, update check depends on it. + - bugfix: 73_AutoShuttersControl: fix roommate absent + and add code stable ti shading fn - change: 14_SD_WS_Maverick.pm: Attribute "IODev" in module deleted. - change: 14_SD_WS07.pm: Attribute "IODev" in module deleted. - change: 14_Hideki.pm: Attribute "IODev" in module deleted. diff --git a/fhem/FHEM/73_AutoShuttersControl.pm b/fhem/FHEM/73_AutoShuttersControl.pm index 4a09057c6..a07ce92fa 100644 --- a/fhem/FHEM/73_AutoShuttersControl.pm +++ b/fhem/FHEM/73_AutoShuttersControl.pm @@ -1355,14 +1355,23 @@ sub EventProcessingRoommate { && ( !$shutters->getIsDay || $shutters->getDown eq 'roommate' || $shutters->getShadingMode eq 'absent' - || $shutters->getUp eq 'absent' ) + || $shutters->getModeUp eq 'absent' + || $shutters->getModeDown eq 'absent' ) ) { + Log3( $name, 4, +"AutoShuttersControl ($name) - EventProcessingRoommate absent: $shuttersDev" + ); + if ( ( $shutters->getIsDay || $shutters->getUp eq 'roommate' ) && $shutters->getIfInShading && !$shutters->getQueryShuttersPos( $shutters->getShadingPos ) && $shutters->getShadingMode eq 'absent' ) { + Log3( $name, 4, +"AutoShuttersControl ($name) - EventProcessingRoommate Shading: $shuttersDev" + ); + $shutters->setLastDrive('shading in'); ShuttersCommandSet( $hash, $shuttersDev, $shutters->getShadingPos ); @@ -1371,17 +1380,30 @@ sub EventProcessingRoommate { && $getModeDown eq 'absent' && $getRoommatesStatus eq 'absent' ) { + Log3( $name, 4, +"AutoShuttersControl ($name) - EventProcessingRoommate Down: $shuttersDev" + ); + $shutters->setLastDrive('roommate absent'); ShuttersCommandSet( $hash, $shuttersDev, $shutters->getClosedPos ); } elsif ($shutters->getIsDay - && $shutters->getUp eq 'absent' ) + && $shutters->getModeUp eq 'absent' + && $getRoommatesStatus eq 'absent' ) { + Log3( $name, 4, +"AutoShuttersControl ($name) - EventProcessingRoommate Up: $shuttersDev" + ); + $shutters->setLastDrive('roommate absent'); ShuttersCommandSet( $hash, $shuttersDev, $shutters->getOpenPos ); } + + Log3( $name, 4, +"AutoShuttersControl ($name) - EventProcessingRoommate NICHTS: $shuttersDev" + ); } } @@ -2439,6 +2461,7 @@ sub ShadingProcessing { ) && $shutters->getRoommatesStatus ne 'asleep' && $shutters->getRoommatesStatus ne 'gotosleep' + && ( int( gettimeofday() ) - $shutters->getShadingStatusTimestamp ) < 2 ); return;