change condition for GetUp roommate. no shutters drive if you have been on absent or gone

This commit is contained in:
Marko Oldenburg 2021-12-04 08:36:56 +01:00
parent 0255be94b5
commit 301fd32048
2 changed files with 37 additions and 39 deletions

View File

@ -1,10 +1,10 @@
UPD 2021-11-29_15:18:18 115678 FHEM/73_AutoShuttersControl.pm UPD 2021-12-04_08:08:23 115678 FHEM/73_AutoShuttersControl.pm
UPD 2021-11-29_15:01:56 75264 lib/FHEM/Automation/ShuttersControl.pm UPD 2021-11-29_15:01:56 75264 lib/FHEM/Automation/ShuttersControl.pm
UPD 2021-10-09_07:12:54 2657 lib/FHEM/Automation/ShuttersControl/Dev.pm UPD 2021-10-09_07:12:54 2657 lib/FHEM/Automation/ShuttersControl/Dev.pm
UPD 2021-10-09_07:12:54 2494 lib/FHEM/Automation/ShuttersControl/Roommate.pm UPD 2021-10-09_07:12:54 2494 lib/FHEM/Automation/ShuttersControl/Roommate.pm
UPD 2021-10-24_07:33:53 31900 lib/FHEM/Automation/ShuttersControl/Shutters.pm UPD 2021-10-24_07:33:53 31900 lib/FHEM/Automation/ShuttersControl/Shutters.pm
UPD 2021-10-09_07:12:54 25333 lib/FHEM/Automation/ShuttersControl/Shading.pm UPD 2021-10-09_07:12:54 25333 lib/FHEM/Automation/ShuttersControl/Shading.pm
UPD 2021-11-25_11:58:42 110681 lib/FHEM/Automation/ShuttersControl/EventProcessingFunctions.pm UPD 2021-12-04_08:36:32 110189 lib/FHEM/Automation/ShuttersControl/EventProcessingFunctions.pm
UPD 2021-11-14_14:03:06 40094 lib/FHEM/Automation/ShuttersControl/Helper.pm UPD 2021-11-14_14:03:06 40094 lib/FHEM/Automation/ShuttersControl/Helper.pm
UPD 2021-10-09_07:12:54 2173 lib/FHEM/Automation/ShuttersControl/Window.pm UPD 2021-10-09_07:12:54 2173 lib/FHEM/Automation/ShuttersControl/Window.pm
UPD 2021-10-09_07:12:54 11739 lib/FHEM/Automation/ShuttersControl/Dev/Attr.pm UPD 2021-10-09_07:12:54 11739 lib/FHEM/Automation/ShuttersControl/Dev/Attr.pm

View File

@ -588,15 +588,18 @@ sub EventProcessingRoommate {
"AutoShuttersControl ($name) - EventProcessingRoommate: $shuttersDev und Events $events" "AutoShuttersControl ($name) - EventProcessingRoommate: $shuttersDev und Events $events"
); );
my $getModeUp = $FHEM::Automation::ShuttersControl::shutters->getModeUp;
my $getModeDown = my $event = $1;
$FHEM::Automation::ShuttersControl::shutters->getModeDown; my $getModeUp = $FHEM::Automation::ShuttersControl::shutters->getModeUp;
my $getRoommatesStatus = my $getModeDown = $FHEM::Automation::ShuttersControl::shutters->getModeDown;
$FHEM::Automation::ShuttersControl::shutters->getRoommatesStatus; my $getRoommatesStatus = $FHEM::Automation::ShuttersControl::shutters->getRoommatesStatus;
my $getRoommatesLastStatus = my $getRoommatesLastStatus = $FHEM::Automation::ShuttersControl::shutters->getRoommatesLastStatus;
$FHEM::Automation::ShuttersControl::shutters->getRoommatesLastStatus; my $getUp = $FHEM::Automation::ShuttersControl::shutters->getUp;
my $event = $1; my $getDown = $FHEM::Automation::ShuttersControl::shutters->getDown;
my $posValue = $FHEM::Automation::ShuttersControl::shutters->getStatus; my $getIsDay = $FHEM::Automation::ShuttersControl::shutters->getIsDay;
my $posValue = $FHEM::Automation::ShuttersControl::shutters->getStatus; # !!! ACHTUNG!!!
if ( if (
( $event eq 'home' || $event eq 'awoken' ) ( $event eq 'home' || $event eq 'awoken' )
@ -604,8 +607,10 @@ sub EventProcessingRoommate {
|| $getRoommatesStatus eq 'awoken' ) || $getRoommatesStatus eq 'awoken' )
&& ( $FHEM::Automation::ShuttersControl::ascDev && ( $FHEM::Automation::ShuttersControl::ascDev
->getAutoShuttersControlMorning eq 'on' ->getAutoShuttersControlMorning eq 'on'
|| $FHEM::Automation::ShuttersControl::shutters->getUp eq || ( $getUp eq 'roommate'
'roommate' ) && $getRoommatesLastStatus ne 'absent'
&& $getRoommatesLastStatus ne 'gone' )
)
&& IsAfterShuttersManualBlocking($shuttersDev) && IsAfterShuttersManualBlocking($shuttersDev)
) )
{ {
@ -629,12 +634,10 @@ sub EventProcessingRoommate {
->getModeUp eq $event ) ->getModeUp eq $event )
) )
) )
&& ( $FHEM::Automation::ShuttersControl::shutters->getIsDay && ( $getIsDay
|| $FHEM::Automation::ShuttersControl::shutters->getUp eq || $getUp eq 'roommate' )
'roommate' )
&& ( IsAfterShuttersTimeBlocking($shuttersDev) && ( IsAfterShuttersTimeBlocking($shuttersDev)
|| $FHEM::Automation::ShuttersControl::shutters->getUp eq || $getUp eq 'roommate' )
'roommate' )
) )
{ {
Log3( $name, 4, Log3( $name, 4,
@ -675,7 +678,7 @@ sub EventProcessingRoommate {
) )
{ {
if ( if (
$FHEM::Automation::ShuttersControl::shutters->getIsDay $getIsDay
&& $FHEM::Automation::ShuttersControl::shutters && $FHEM::Automation::ShuttersControl::shutters
->getIfInShading ->getIfInShading
&& $FHEM::Automation::ShuttersControl::shutters->getStatus && $FHEM::Automation::ShuttersControl::shutters->getStatus
@ -695,11 +698,11 @@ sub EventProcessingRoommate {
ShadingProcessingDriveCommand( $hash, $shuttersDev, 1 ); ShadingProcessingDriveCommand( $hash, $shuttersDev, 1 );
} }
elsif ( elsif (
!$FHEM::Automation::ShuttersControl::shutters->getIsDay !$getIsDay
&& IsAfterShuttersTimeBlocking($shuttersDev) && IsAfterShuttersTimeBlocking($shuttersDev)
&& ( $getModeDown eq 'home' && ( $getModeDown eq 'home'
|| $getModeDown eq 'always' ) || $getModeDown eq 'always' )
&& $FHEM::Automation::ShuttersControl::shutters->getDown ne && $getDown ne
'roommate' 'roommate'
) )
{ {
@ -739,9 +742,8 @@ sub EventProcessingRoommate {
} }
elsif ( elsif (
( (
$FHEM::Automation::ShuttersControl::shutters->getIsDay $getIsDay
|| $FHEM::Automation::ShuttersControl::shutters->getUp || $getUp eq 'roommate'
eq 'roommate'
) )
&& IsAfterShuttersTimeBlocking($shuttersDev) && IsAfterShuttersTimeBlocking($shuttersDev)
&& ( $getModeUp eq 'home' && ( $getModeUp eq 'home'
@ -824,10 +826,10 @@ sub EventProcessingRoommate {
'absent' 'absent'
&& ( $FHEM::Automation::ShuttersControl::ascDev && ( $FHEM::Automation::ShuttersControl::ascDev
->getAutoShuttersControlEvening eq 'on' ->getAutoShuttersControlEvening eq 'on'
|| $FHEM::Automation::ShuttersControl::shutters->getDown eq || $getDown eq
'roommate' ) 'roommate' )
&& ( IsAfterShuttersManualBlocking($shuttersDev) && ( IsAfterShuttersManualBlocking($shuttersDev)
|| $FHEM::Automation::ShuttersControl::shutters->getDown eq || $getDown eq
'roommate' ) 'roommate' )
) )
{ {
@ -858,8 +860,8 @@ sub EventProcessingRoommate {
} }
elsif ( elsif (
$event eq 'absent' $event eq 'absent'
&& ( !$FHEM::Automation::ShuttersControl::shutters->getIsDay && ( !$getIsDay
|| $FHEM::Automation::ShuttersControl::shutters->getDown eq || $getDown eq
'roommate' 'roommate'
|| $FHEM::Automation::ShuttersControl::shutters->getShadingMode || $FHEM::Automation::ShuttersControl::shutters->getShadingMode
eq 'absent' eq 'absent'
@ -874,16 +876,12 @@ sub EventProcessingRoommate {
); );
if ( if (
( $getIsDay
$FHEM::Automation::ShuttersControl::shutters->getIsDay
|| $FHEM::Automation::ShuttersControl::shutters->getUp eq
'roommate'
)
&& $FHEM::Automation::ShuttersControl::shutters->getIfInShading && $FHEM::Automation::ShuttersControl::shutters->getIfInShading
&& !$FHEM::Automation::ShuttersControl::shutters && !$FHEM::Automation::ShuttersControl::shutters
->getQueryShuttersPos( ->getQueryShuttersPos(
$FHEM::Automation::ShuttersControl::shutters->getShadingPos $FHEM::Automation::ShuttersControl::shutters->getShadingPos
) )
&& $FHEM::Automation::ShuttersControl::shutters->getShadingMode && $FHEM::Automation::ShuttersControl::shutters->getShadingMode
eq 'absent' eq 'absent'
) )
@ -902,8 +900,8 @@ sub EventProcessingRoommate {
} }
elsif ( elsif (
( (
!$FHEM::Automation::ShuttersControl::shutters->getIsDay !$getIsDay
|| $FHEM::Automation::ShuttersControl::shutters->getDown eq || $getDown eq
'roommate' 'roommate'
) )
&& $getModeDown eq 'absent' && $getModeDown eq 'absent'
@ -922,7 +920,7 @@ sub EventProcessingRoommate {
$FHEM::Automation::ShuttersControl::shutters->getClosedPos $FHEM::Automation::ShuttersControl::shutters->getClosedPos
); );
} }
elsif ($FHEM::Automation::ShuttersControl::shutters->getIsDay elsif ($getIsDay
&& $FHEM::Automation::ShuttersControl::shutters->getModeUp eq && $FHEM::Automation::ShuttersControl::shutters->getModeUp eq
'absent' 'absent'
&& $getRoommatesStatus eq 'absent' ) && $getRoommatesStatus eq 'absent' )