add more conditions to delaydrive

This commit is contained in:
Marko Oldenburg
2019-09-20 14:03:13 +02:00
parent ce425067b7
commit e76092fce4

View File

@ -2414,9 +2414,12 @@ sub ShuttersCommandSet($$$) {
if ( if (
$posValue != $shutters->getShadingPos $posValue != $shutters->getShadingPos
or ( $posValue == $shutters->getShadingPos or (
$posValue == $shutters->getShadingPos
and CheckIfShuttersWindowRecOpen($shuttersDev) == 2 and CheckIfShuttersWindowRecOpen($shuttersDev) == 2
and $shutters->getShuttersPlace eq 'terrace' and $shutters->getShuttersPlace eq 'terrace'
and ( $shutters->getLockOut eq 'soft'
or $shutters->getLockOut eq 'hard' )
) )
and ( and (
( (
@ -3770,7 +3773,8 @@ sub _SetCmdFn($) {
if ( defined( $h->{lastDrive} ) ); if ( defined( $h->{lastDrive} ) );
return return
unless ( $shutters->getASCenable eq 'on' unless (
$shutters->getASCenable eq 'on'
and $ascDev->getASCenable eq 'on' and $ascDev->getASCenable eq 'on'
and ( $idleDetection =~ /^$idleDetectionValue$/ and ( $idleDetection =~ /^$idleDetectionValue$/
or $idleDetection eq 'none' ) or $idleDetection eq 'none' )
@ -4719,27 +4723,32 @@ sub getTempSensorReading {
sub _getIdleDetectionReading { sub _getIdleDetectionReading {
my $self = shift; my $self = shift;
return $self->{ $self->{shuttersDev} }->{ASC_Shutter_IdleDetection}->{reading} return $self->{ $self->{shuttersDev} }->{ASC_Shutter_IdleDetection}
->{reading}
if ( if (
exists( exists(
$self->{ $self->{shuttersDev} }->{ASC_Shutter_IdleDetection}->{LASTGETTIME} $self->{ $self->{shuttersDev} }->{ASC_Shutter_IdleDetection}
->{LASTGETTIME}
) )
and ( gettimeofday() - and ( gettimeofday() -
$self->{ $self->{shuttersDev} }->{ASC_Shutter_IdleDetection}->{LASTGETTIME} ) $self->{ $self->{shuttersDev} }->{ASC_Shutter_IdleDetection}
< 2 ->{LASTGETTIME} ) < 2
); );
$self->{ $self->{shuttersDev} }->{ASC_Shutter_IdleDetection}->{LASTGETTIME} = $self->{ $self->{shuttersDev} }->{ASC_Shutter_IdleDetection}->{LASTGETTIME}
int( gettimeofday() ); = int( gettimeofday() );
my ( $reading, $value ) = my ( $reading, $value ) =
FHEM::AutoShuttersControl::GetAttrValues( $self->{shuttersDev}, FHEM::AutoShuttersControl::GetAttrValues( $self->{shuttersDev},
'ASC_Shutter_IdleDetection', 'none' ); 'ASC_Shutter_IdleDetection', 'none' );
### erwartetes Ergebnis ### erwartetes Ergebnis
# READING:VALUE # READING:VALUE
$self->{ $self->{shuttersDev} }->{ASC_Shutter_IdleDetection}->{reading} = $reading; $self->{ $self->{shuttersDev} }->{ASC_Shutter_IdleDetection}->{reading} =
$self->{ $self->{shuttersDev} }->{ASC_Shutter_IdleDetection}->{value} = $value; $reading;
$self->{ $self->{shuttersDev} }->{ASC_Shutter_IdleDetection}->{value} =
$value;
return $self->{ $self->{shuttersDev} }->{ASC_Shutter_IdleDetection}->{reading}; return $self->{ $self->{shuttersDev} }->{ASC_Shutter_IdleDetection}
->{reading};
} }
sub getIdleDetectionValue { sub getIdleDetectionValue {
@ -4748,16 +4757,20 @@ sub getIdleDetectionValue {
return $self->{ $self->{shuttersDev} }->{ASC_Shutter_IdleDetection}->{value} return $self->{ $self->{shuttersDev} }->{ASC_Shutter_IdleDetection}->{value}
if ( if (
exists( exists(
$self->{ $self->{shuttersDev} }->{ASC_Shutter_IdleDetection}->{LASTGETTIME} $self->{ $self->{shuttersDev} }->{ASC_Shutter_IdleDetection}
->{LASTGETTIME}
) )
and ( gettimeofday() - and ( gettimeofday() -
$self->{ $self->{shuttersDev} }->{ASC_Shutter_IdleDetection}->{LASTGETTIME} ) $self->{ $self->{shuttersDev} }->{ASC_Shutter_IdleDetection}
< 2 ->{LASTGETTIME} ) < 2
); );
$shutters->_getIdleDetectionReading; $shutters->_getIdleDetectionReading;
return ( return (
defined( $self->{ $self->{shuttersDev} }->{ASC_Shutter_IdleDetection}->{value} ) defined(
$self->{ $self->{shuttersDev} }->{ASC_Shutter_IdleDetection}
->{value}
)
? $self->{ $self->{shuttersDev} }->{ASC_Shutter_IdleDetection}->{value} ? $self->{ $self->{shuttersDev} }->{ASC_Shutter_IdleDetection}->{value}
: 'none' : 'none'
); );