patch Julian for more residents events

This commit is contained in:
Marko Oldenburg 2019-05-24 11:31:07 +02:00
parent 35f0f01bbc
commit 09c7194f0b

View File

@ -12,6 +12,7 @@
# - FunkOdyssey commandref style # - FunkOdyssey commandref style
# - sledge fix many typo in commandref # - sledge fix many typo in commandref
# - many User that use with modul and report bugs # - many User that use with modul and report bugs
# - Julian (Loredo) expand Residents Events for new Residents functions
# #
# #
# This script is free software; you can redistribute it and/or modify # This script is free software; you can redistribute it and/or modify
@ -1158,7 +1159,7 @@ sub EventProcessingResidents($@) {
my $reading = $ascDev->getResidentsReading; my $reading = $ascDev->getResidentsReading;
my $getResidentsLastStatus = $ascDev->getResidentsLastStatus; my $getResidentsLastStatus = $ascDev->getResidentsLastStatus;
if ( $events =~ m#$reading:\s(absent)# ) { if ( $events =~ m#$reading:\s((?:pet_[a-z]+)|(?:absent))# ) {
foreach my $shuttersDev ( @{ $hash->{helper}{shuttersList} } ) { foreach my $shuttersDev ( @{ $hash->{helper}{shuttersList} } ) {
$shutters->setShuttersDev($shuttersDev); $shutters->setShuttersDev($shuttersDev);
my $getModeUp = $shutters->getModeUp; my $getModeUp = $shutters->getModeUp;
@ -1205,7 +1206,7 @@ sub EventProcessingResidents($@) {
} }
} }
elsif ( elsif (
$events =~ m#$reading:\s(home)# $events =~ m#$reading:\s((?:[a-z]+_)?home)#
and ( $getResidentsLastStatus eq 'absent' and ( $getResidentsLastStatus eq 'absent'
or $getResidentsLastStatus eq 'gone' or $getResidentsLastStatus eq 'gone'
or $getResidentsLastStatus eq 'asleep' or $getResidentsLastStatus eq 'asleep'
@ -4666,15 +4667,47 @@ sub getOutTemp {
sub getResidentsStatus { sub getResidentsStatus {
my $self = shift; my $self = shift;
my $val =
return ReadingsVal( $ascDev->_getResidentsDev, $ascDev->getResidentsReading, ReadingsVal( $ascDev->_getResidentsDev, $ascDev->getResidentsReading,
'none' ); 'none' );
if ( $val =~ m/^(?:(.+)_)?(.+)$/ ) {
return ( $1, $2 ) if (wantarray);
return $1 && $1 eq 'pet' ? 'absent' : $2;
}
elsif (
ReadingsVal( $ascDev->_getResidentsDev, 'homealoneType', '-' )
eq 'PET' )
{
return ( 'pet', 'absent' ) if (wantarray);
return 'absent';
}
else {
return ( undef, $val ) if (wantarray);
return $val;
}
} }
sub getResidentsLastStatus { sub getResidentsLastStatus {
my $self = shift; my $self = shift;
my $val = ReadingsVal( $ascDev->_getResidentsDev, 'lastState', 'none' );
return ReadingsVal( $ascDev->_getResidentsDev, 'lastState', 'none' ); if ( $val =~ m/^(?:(.+)_)?(.+)$/ ) {
return ( $1, $2 ) if (wantarray);
return $1 && $1 eq 'pet' ? 'absent' : $2;
}
elsif (
ReadingsVal( $ascDev->_getResidentsDev, 'lastHomealoneType',
'-' ) eq 'PET'
)
{
return ( 'pet', 'absent' ) if (wantarray);
return 'absent';
}
else {
return ( undef, $val ) if (wantarray);
return $val;
}
} }
sub getAutoShuttersControlShading { sub getAutoShuttersControlShading {