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-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-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-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-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

View File

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