fix Perlcode use in Position Attributs
This commit is contained in:
parent
775219b034
commit
770fd0d26f
@ -4341,8 +4341,8 @@ sub IsWe {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sub _DetermineSlatCmd {
|
sub _DetermineSlatCmd {
|
||||||
my $value = shift;
|
my $value = shift;
|
||||||
my $posValue = shift;
|
my $posValue = shift;
|
||||||
|
|
||||||
return $posValue == $shutters->getShadingPos
|
return $posValue == $shutters->getShadingPos
|
||||||
&& $shutters->getShadingPositionAssignment ne 'none' ? $shutters->getShadingPositionAssignment
|
&& $shutters->getShadingPositionAssignment ne 'none' ? $shutters->getShadingPositionAssignment
|
||||||
@ -4414,7 +4414,7 @@ sub _SetCmdFn {
|
|||||||
elsif ($shutters->getShadingPositionAssignment ne 'none'
|
elsif ($shutters->getShadingPositionAssignment ne 'none'
|
||||||
&& $shutters->getShadingPositionAssignment =~ m{\A\d{1,3}\z}xms )
|
&& $shutters->getShadingPositionAssignment =~ m{\A\d{1,3}\z}xms )
|
||||||
{
|
{
|
||||||
|
|
||||||
$slatPos = _DetermineSlatCmd( $slatPos, $posValue );
|
$slatPos = _DetermineSlatCmd( $slatPos, $posValue );
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4428,14 +4428,15 @@ sub _SetCmdFn {
|
|||||||
CommandSet(
|
CommandSet(
|
||||||
undef,
|
undef,
|
||||||
(
|
(
|
||||||
$shutters->getSlatDevice ne 'none' ? $shutters->getSlatDevice
|
$shutters->getSlatDevice ne 'none'
|
||||||
|
? $shutters->getSlatDevice
|
||||||
: $shuttersDev
|
: $shuttersDev
|
||||||
)
|
)
|
||||||
. ' '
|
. ' '
|
||||||
. $shutters->getSlatPosCmd
|
. $shutters->getSlatPosCmd . ' '
|
||||||
. ' '
|
|
||||||
. $slatPos
|
. $slatPos
|
||||||
) if ( $slatPos > -1
|
)
|
||||||
|
if ( $slatPos > -1
|
||||||
&& $shutters->getSlatPosCmd ne 'none' );
|
&& $shutters->getSlatPosCmd ne 'none' );
|
||||||
|
|
||||||
$shutters->setSelfDefenseAbsent( 0, 0 )
|
$shutters->setSelfDefenseAbsent( 0, 0 )
|
||||||
@ -4484,7 +4485,7 @@ sub _perlCodeCheck {
|
|||||||
my $exec = shift;
|
my $exec = shift;
|
||||||
my $val = undef;
|
my $val = undef;
|
||||||
|
|
||||||
if ( $exec =~ m{^\{(.+)\}$}xms ) {
|
if ( $exec =~ m{\A\{(.+)\}\z}xms ) {
|
||||||
$val = main::AnalyzePerlCommand( undef, $1 );
|
$val = main::AnalyzePerlCommand( undef, $1 );
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5590,13 +5591,50 @@ sub _getPosition {
|
|||||||
);
|
);
|
||||||
$self->{ $self->{shuttersDev} }->{$attr}->{LASTGETTIME} =
|
$self->{ $self->{shuttersDev} }->{$attr}->{LASTGETTIME} =
|
||||||
int( gettimeofday() );
|
int( gettimeofday() );
|
||||||
my ( $position, $posAssignment ) =
|
|
||||||
FHEM::AutoShuttersControl::GetAttrValues(
|
my $position;
|
||||||
$self->{shuttersDev},
|
my $posAssignment;
|
||||||
$attr,
|
|
||||||
$userAttrList{$userAttrList}
|
if (
|
||||||
[ AttrVal( $self->{shuttersDev}, 'ASC', 2 ) ]
|
AttrVal( $self->{shuttersDev}, $attr,
|
||||||
);
|
$userAttrList{$userAttrList}
|
||||||
|
[ AttrVal( $self->{shuttersDev}, 'ASC', 2 ) ] ) =~
|
||||||
|
m{\A\{.+\}\z}xms
|
||||||
|
)
|
||||||
|
{
|
||||||
|
my $response = FHEM::AutoShuttersControl::_perlCodeCheck(
|
||||||
|
AttrVal(
|
||||||
|
$self->{shuttersDev},
|
||||||
|
$attr,
|
||||||
|
$userAttrList{$userAttrList}
|
||||||
|
[ AttrVal( $self->{shuttersDev}, 'ASC', 2 ) ]
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
( $position, $posAssignment ) = split ':', $response;
|
||||||
|
|
||||||
|
$position = (
|
||||||
|
$position =~ m{\A\d+(\.\d+)?\z}xms
|
||||||
|
? $position
|
||||||
|
: $userAttrList{$userAttrList}
|
||||||
|
[ AttrVal( $self->{shuttersDev}, 'ASC', 2 ) ]
|
||||||
|
);
|
||||||
|
|
||||||
|
$posAssignment = (
|
||||||
|
$posAssignment =~ m{\A\d+(\.\d+)?\z}xms
|
||||||
|
? $posAssignment
|
||||||
|
: 'none'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
( $position, $posAssignment ) =
|
||||||
|
FHEM::AutoShuttersControl::GetAttrValues(
|
||||||
|
$self->{shuttersDev},
|
||||||
|
$attr,
|
||||||
|
$userAttrList{$userAttrList}
|
||||||
|
[ AttrVal( $self->{shuttersDev}, 'ASC', 2 ) ]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
### erwartetes Ergebnis
|
### erwartetes Ergebnis
|
||||||
# DEVICE:READING
|
# DEVICE:READING
|
||||||
@ -5714,7 +5752,9 @@ sub getSlatDevice {
|
|||||||
);
|
);
|
||||||
$shutters->getSlatPosCmd;
|
$shutters->getSlatPosCmd;
|
||||||
|
|
||||||
return ( $self->{ $self->{shuttersDev} }->{ASC_SlatPosCmd_SlatDevice}->{device} );
|
return (
|
||||||
|
$self->{ $self->{shuttersDev} }->{ASC_SlatPosCmd_SlatDevice}->{device}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
sub getPrivacyUpTime {
|
sub getPrivacyUpTime {
|
||||||
@ -8585,7 +8625,7 @@ sub getBlockAscDrivesAfterManual {
|
|||||||
],
|
],
|
||||||
"release_status": "testing",
|
"release_status": "testing",
|
||||||
"license": "GPL_2",
|
"license": "GPL_2",
|
||||||
"version": "v0.9.4",
|
"version": "v0.9.5",
|
||||||
"author": [
|
"author": [
|
||||||
"Marko Oldenburg <leongaultier@gmail.com>"
|
"Marko Oldenburg <leongaultier@gmail.com>"
|
||||||
],
|
],
|
||||||
|
Loading…
Reference in New Issue
Block a user