add shutters->getShadingLastPos

for condition drivePos != ShadingLastPos
This commit is contained in:
2020-07-03 08:53:23 +02:00
parent 185fe7576b
commit 82934125fe
3 changed files with 85 additions and 57 deletions

View File

@ -334,6 +334,9 @@ sub ShadingProcessingDriveCommand {
. ' und somit wird nun in die Position: '
. $getShadingPos
. ' zum Beschatten gefahren' );
$FHEM::Automation::ShuttersControl::shutters
->setShadingLastPos($getShadingPos);
}
elsif ($FHEM::Automation::ShuttersControl::shutters->getShadingStatus eq 'out'
&& $getShadingPos == $getStatus )
@ -344,7 +347,8 @@ sub ShadingProcessingDriveCommand {
$hash,
$shuttersDev,
(
$getShadingPos == $FHEM::Automation::ShuttersControl::shutters->getLastPos
($getShadingPos == $FHEM::Automation::ShuttersControl::shutters->getLastPos
|| $getShadingPos == $FHEM::Automation::ShuttersControl::shutters->getShadingLastPos)
? $FHEM::Automation::ShuttersControl::shutters->getOpenPos
: (
$FHEM::Automation::ShuttersControl::shutters->getQueryShuttersPos( $FHEM::Automation::ShuttersControl::shutters->getLastPos )

View File

@ -453,6 +453,35 @@ sub setAdvDelay {
return;
}
sub setWindProtectionStatus { # Werte protected, unprotected
my $self = shift;
my $value = shift;
$self->{ $self->{shuttersDev} }->{ASC_WindParameters}->{VAL} = $value
if ( defined($value) );
return;
}
sub setRainProtectionStatus { # Werte protected, unprotected
my $self = shift;
my $value = shift;
$self->{ $self->{shuttersDev} }->{RainProtection}->{VAL} = $value
if ( defined($value) );
return;
}
sub setExternalTriggerStatus {
my $self = shift;
my $value = shift;
$self->{ $self->{shuttersDev} }->{ASC_ExternalTrigger}->{event} = $value
if ( defined($value) );
return;
}
sub getExternalTriggerStatus {
my $self = shift;
@ -697,6 +726,36 @@ sub getInTimerFuncHash {
return $self->{ $self->{shuttersDev} }{inTimerFuncHash};
}
sub getWindProtectionStatus { # Werte protected, unprotected
my $self = shift;
return (
(
defined( $self->{ $self->{shuttersDev} }->{ASC_WindParameters} )
&& defined(
$self->{ $self->{shuttersDev} }->{ASC_WindParameters}->{VAL}
)
)
? $self->{ $self->{shuttersDev} }->{ASC_WindParameters}->{VAL}
: 'unprotected'
);
}
sub getRainProtectionStatus { # Werte protected, unprotected
my $self = shift;
return (
(
defined( $self->{ $self->{shuttersDev} }->{RainProtection} )
&& defined(
$self->{ $self->{shuttersDev} }->{RainProtection}->{VAL}
)
)
? $self->{ $self->{shuttersDev} }->{RainProtection}->{VAL}
: 'unprotected'
);
}
sub getSunsetUnixTime {
my $self = shift;
@ -867,30 +926,11 @@ sub setShadingManualDriveStatus {
return;
}
sub setWindProtectionStatus { # Werte protected, unprotected
sub setShadingLastPos {
my $self = shift;
my $value = shift;
$self->{ $self->{shuttersDev} }->{ASC_WindParameters}->{VAL} = $value
if ( defined($value) );
return;
}
sub setRainProtectionStatus { # Werte protected, unprotected
my $self = shift;
my $value = shift;
$self->{ $self->{shuttersDev} }->{RainProtection}->{VAL} = $value
if ( defined($value) );
return;
}
sub setExternalTriggerStatus {
my $self = shift;
my $value = shift;
$self->{ $self->{shuttersDev} }->{ASC_ExternalTrigger}->{event} = $value
$self->{ $self->{shuttersDev} }{ShadingLastPos}{VAL} = $value
if ( defined($value) );
return;
@ -983,36 +1023,6 @@ sub getIfInShading {
);
}
sub getWindProtectionStatus { # Werte protected, unprotected
my $self = shift;
return (
(
defined( $self->{ $self->{shuttersDev} }->{ASC_WindParameters} )
&& defined(
$self->{ $self->{shuttersDev} }->{ASC_WindParameters}->{VAL}
)
)
? $self->{ $self->{shuttersDev} }->{ASC_WindParameters}->{VAL}
: 'unprotected'
);
}
sub getRainProtectionStatus { # Werte protected, unprotected
my $self = shift;
return (
(
defined( $self->{ $self->{shuttersDev} }->{RainProtection} )
&& defined(
$self->{ $self->{shuttersDev} }->{RainProtection}->{VAL}
)
)
? $self->{ $self->{shuttersDev} }->{RainProtection}->{VAL}
: 'unprotected'
);
}
sub getShadingStatusTimestamp {
my $self = shift;
@ -1036,6 +1046,20 @@ sub getShadingLastStatusTimestamp {
: 0
);
}
sub getShadingLastPos {
my $self = shift;
return (
defined( $self->{ $self->{shuttersDev} }{ShadingLastPos} )
&& defined(
$self->{ $self->{shuttersDev} }{ShadingLastPos}{VAL}
)
? $self->{ $self->{shuttersDev} }{ShadingLastPos}{VAL}
: $FHEM::Automation::ShuttersControl::shutters->getShadingPos
);
}
### Ende Beschattung
1;