add first code to delay no rain drive
This commit is contained in:
parent
df3006fe25
commit
bd39083d67
@ -1511,40 +1511,46 @@ sub EventProcessingRain($@) {
|
|||||||
if ( $1 eq 'rain' ) { $val = $triggerMax + 1 }
|
if ( $1 eq 'rain' ) { $val = $triggerMax + 1 }
|
||||||
elsif ( $1 eq 'dry' ) { $val = $triggerMin }
|
elsif ( $1 eq 'dry' ) { $val = $triggerMin }
|
||||||
else { $val = $1 }
|
else { $val = $1 }
|
||||||
|
|
||||||
|
RainProtection($val,$triggerMax,$closedPos);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
foreach my $shuttersDev ( @{ $hash->{helper}{shuttersList} } ) {
|
sub RainProtection(@)
|
||||||
$shutters->setShuttersDev($shuttersDev);
|
my ($val,$triggerMax,$closedPos) = @_;
|
||||||
|
|
||||||
next
|
foreach my $shuttersDev ( @{ $hash->{helper}{shuttersList} } ) {
|
||||||
if ( $shutters->getRainProtection eq 'off' );
|
$shutters->setShuttersDev($shuttersDev);
|
||||||
|
|
||||||
if ( $val > $triggerMax
|
next
|
||||||
and $shutters->getStatus != $closedPos
|
if ( $shutters->getRainProtection eq 'off' );
|
||||||
and IsAfterShuttersManualBlocking($shuttersDev)
|
|
||||||
and $shutters->getRainProtectionStatus eq 'unprotected' )
|
if ( $val > $triggerMax
|
||||||
{
|
and $shutters->getStatus != $closedPos
|
||||||
$shutters->setLastDrive('rain protected');
|
and IsAfterShuttersManualBlocking($shuttersDev)
|
||||||
$shutters->setDriveCmd($closedPos);
|
and $shutters->getRainProtectionStatus eq 'unprotected' )
|
||||||
$shutters->setRainProtectionStatus('protected');
|
{
|
||||||
}
|
$shutters->setLastDrive('rain protected');
|
||||||
elsif ( ( $val == 0 or $val < $triggerMax )
|
$shutters->setDriveCmd($closedPos);
|
||||||
and $shutters->getStatus == $closedPos
|
$shutters->setRainProtectionStatus('protected');
|
||||||
and IsAfterShuttersManualBlocking($shuttersDev)
|
}
|
||||||
and $shutters->getRainProtectionStatus eq 'protected' )
|
elsif ( ( $val == 0 or $val < $triggerMax )
|
||||||
{
|
and $shutters->getStatus == $closedPos
|
||||||
$shutters->setLastDrive('rain un-protected');
|
and IsAfterShuttersManualBlocking($shuttersDev)
|
||||||
$shutters->setDriveCmd(
|
and $shutters->getRainProtectionStatus eq 'protected' )
|
||||||
(
|
{
|
||||||
$shutters->getIsDay ? $shutters->getLastPos
|
$shutters->setLastDrive('rain un-protected');
|
||||||
: (
|
$shutters->setDriveCmd(
|
||||||
$shutters->getPrivacyDownStatus == 2
|
(
|
||||||
? $shutters->getPrivacyDownPos
|
$shutters->getIsDay ? $shutters->getLastPos
|
||||||
: $shutters->getClosedPos
|
: (
|
||||||
)
|
$shutters->getPrivacyDownStatus == 2
|
||||||
|
? $shutters->getPrivacyDownPos
|
||||||
|
: $shutters->getClosedPos
|
||||||
)
|
)
|
||||||
);
|
)
|
||||||
$shutters->setRainProtectionStatus('unprotected');
|
);
|
||||||
}
|
$shutters->setRainProtectionStatus('unprotected');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -5978,7 +5984,7 @@ sub _getRainSensor {
|
|||||||
if ( exists( $self->{ASC_rainSensor}->{LASTGETTIME} )
|
if ( exists( $self->{ASC_rainSensor}->{LASTGETTIME} )
|
||||||
and ( gettimeofday() - $self->{ASC_rainSensor}->{LASTGETTIME} ) < 2 );
|
and ( gettimeofday() - $self->{ASC_rainSensor}->{LASTGETTIME} ) < 2 );
|
||||||
$self->{ASC_rainSensor}->{LASTGETTIME} = int( gettimeofday() );
|
$self->{ASC_rainSensor}->{LASTGETTIME} = int( gettimeofday() );
|
||||||
my ( $device, $reading, $max, $hyst, $pos ) =
|
my ( $device, $reading, $max, $hyst, $pos, $wait ) =
|
||||||
FHEM::AutoShuttersControl::GetAttrValues( $name, 'ASC_rainSensor',
|
FHEM::AutoShuttersControl::GetAttrValues( $name, 'ASC_rainSensor',
|
||||||
'none' );
|
'none' );
|
||||||
|
|
||||||
@ -5997,6 +6003,8 @@ sub _getRainSensor {
|
|||||||
);
|
);
|
||||||
$self->{ASC_rainSensor}->{shuttersClosedPos} =
|
$self->{ASC_rainSensor}->{shuttersClosedPos} =
|
||||||
( $pos ne 'none' ? $pos : $shutters->getClosedPos );
|
( $pos ne 'none' ? $pos : $shutters->getClosedPos );
|
||||||
|
$self->{ASC_rainSensor}->{waitingTime} =
|
||||||
|
( $pos ne 'none' ? $wait : 900 );
|
||||||
|
|
||||||
return $self->{ASC_rainSensor}->{device};
|
return $self->{ASC_rainSensor}->{device};
|
||||||
}
|
}
|
||||||
@ -6045,6 +6053,17 @@ sub getRainSensorShuttersClosedPos {
|
|||||||
return $self->{ASC_rainSensor}->{shuttersClosedPos};
|
return $self->{ASC_rainSensor}->{shuttersClosedPos};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub getRainWaitingTime {
|
||||||
|
my $self = shift;
|
||||||
|
my $name = $self->{name};
|
||||||
|
|
||||||
|
return $self->{ASC_rainSensor}->{waitingTime}
|
||||||
|
if ( exists( $self->{ASC_rainSensor}->{LASTGETTIME} )
|
||||||
|
and ( gettimeofday() - $self->{ASC_rainSensor}->{LASTGETTIME} ) < 2 );
|
||||||
|
$ascDev->_getRainSensor;
|
||||||
|
return $self->{ASC_rainSensor}->{waitingTime};
|
||||||
|
}
|
||||||
|
|
||||||
sub _getWindSensor {
|
sub _getWindSensor {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
my $name = $self->{name};
|
my $name = $self->{name};
|
||||||
|
Loading…
Reference in New Issue
Block a user