commandref Anpassungen, Beschreibung der geänderten getter für das ascAPIget

This commit is contained in:
Marko Oldenburg
2019-09-17 16:52:19 +02:00
parent 8d1bc376d5
commit 2e92283a65

View File

@@ -708,8 +708,6 @@ sub ShuttersDeviceScan($) {
$shutters->setShuttersDev($_); $shutters->setShuttersDev($_);
#### Ab hier können temporäre Änderungen der Attribute gesetzt werden #### Ab hier können temporäre Änderungen der Attribute gesetzt werden
#### Gleichlautende Attribute wo lediglich die Parameter geändert werden sollen müssen hier gelöscht und die Parameter in der Funktion renewSetSunriseSunsetTimer gesetzt werden, #### Gleichlautende Attribute wo lediglich die Parameter geändert werden sollen müssen hier gelöscht und die Parameter in der Funktion renewSetSunriseSunsetTimer gesetzt werden,
#### vorher empfiehlt es sich die dort vergebenen Parameter aus zu lesen um sie dann hier wieder neu zu setzen. Dazu wird das shutters Objekt um einen Eintrag #### vorher empfiehlt es sich die dort vergebenen Parameter aus zu lesen um sie dann hier wieder neu zu setzen. Dazu wird das shutters Objekt um einen Eintrag
@@ -731,8 +729,6 @@ sub ShuttersDeviceScan($) {
delFromDevAttrList( $_, 'ASC_Self_Defense_Exclude' ); delFromDevAttrList( $_, 'ASC_Self_Defense_Exclude' );
} }
CommandAttr( undef, CommandAttr( undef,
$name $name
. ' ASC_shuttersDriveDelay ' . ' ASC_shuttersDriveDelay '
@@ -748,7 +744,7 @@ sub ShuttersDeviceScan($) {
$shutters->setLastManPos( $shutters->getStatus ); $shutters->setLastManPos( $shutters->getStatus );
$shutters->setLastPos( $shutters->getStatus ); $shutters->setLastPos( $shutters->getStatus );
$shutters->setDelayCmd('none'); $shutters->setDelayCmd('none');
$shutters->setNoOffset(0); $shutters->setNoDelay(0);
$shutters->setSelfDefenseAbsent( 0, 0 ); $shutters->setSelfDefenseAbsent( 0, 0 );
$shutters->setPosSetCmd( $posSetCmds{ $defs{$_}->{TYPE} } ); $shutters->setPosSetCmd( $posSetCmds{ $defs{$_}->{TYPE} } );
$shutters->setShadingStatus( $shutters->setShadingStatus(
@@ -1014,14 +1010,14 @@ sub EventProcessingWindowRec($@) {
and $shutters->getShadingPos != $shutters->getStatus ) and $shutters->getShadingPos != $shutters->getStatus )
{ {
$shutters->setLastDrive('shading in'); $shutters->setLastDrive('shading in');
$shutters->setNoOffset(1); $shutters->setNoDelay(1);
$shutters->setDriveCmd( $shutters->getShadingPos ); $shutters->setDriveCmd( $shutters->getShadingPos );
} }
elsif ($shutters->getStatus != $shutters->getOpenPos elsif ($shutters->getStatus != $shutters->getOpenPos
or $shutters->getStatus != $shutters->getLastManPos ) or $shutters->getStatus != $shutters->getLastManPos )
{ {
$shutters->setLastDrive('window closed at day'); $shutters->setLastDrive('window closed at day');
$shutters->setNoOffset(1); $shutters->setNoDelay(1);
$shutters->setDriveCmd( $shutters->setDriveCmd(
( (
$shutters->getVentilatePosAfterDayClosed eq 'open' $shutters->getVentilatePosAfterDayClosed eq 'open'
@@ -1042,7 +1038,7 @@ sub EventProcessingWindowRec($@) {
) )
{ {
$shutters->setLastDrive('window closed at night'); $shutters->setLastDrive('window closed at night');
$shutters->setNoOffset(1); $shutters->setNoDelay(1);
$shutters->setDriveCmd( $shutters->setDriveCmd(
( (
$shutters->getSleepPos > 0 $shutters->getSleepPos > 0
@@ -1063,7 +1059,7 @@ sub EventProcessingWindowRec($@) {
) )
{ {
$shutters->setLastDrive('ventilate - window open'); $shutters->setLastDrive('ventilate - window open');
$shutters->setNoOffset(1); $shutters->setNoDelay(1);
$shutters->setDriveCmd( $shutters->setDriveCmd(
( (
( (
@@ -1094,7 +1090,7 @@ sub EventProcessingWindowRec($@) {
if ( defined($posValue) and $posValue ) { if ( defined($posValue) and $posValue ) {
$shutters->setLastDrive($setLastDrive); $shutters->setLastDrive($setLastDrive);
$shutters->setNoOffset(1); $shutters->setNoDelay(1);
$shutters->setDriveCmd( $shutters->setDriveCmd(
# ( # (
@@ -1193,10 +1189,11 @@ sub EventProcessingRoommate($@) {
if ( CheckIfShuttersWindowRecOpen($shuttersDev) == 0 if ( CheckIfShuttersWindowRecOpen($shuttersDev) == 0
or $shutters->getVentilateOpen eq 'off' ) or $shutters->getVentilateOpen eq 'off' )
{ {
$posValue = $posValue = (
( $shutters->getSleepPos > 0 $shutters->getSleepPos > 0
? $shutters->getSleepPos ? $shutters->getSleepPos
: $shutters->getClosedPos ); : $shutters->getClosedPos
);
} }
else { else {
$posValue = $shutters->getVentilatePos; $posValue = $shutters->getVentilatePos;
@@ -1259,10 +1256,11 @@ sub EventProcessingRoommate($@) {
if ( CheckIfShuttersWindowRecOpen($shuttersDev) == 0 if ( CheckIfShuttersWindowRecOpen($shuttersDev) == 0
or $shutters->getVentilateOpen eq 'off' ) or $shutters->getVentilateOpen eq 'off' )
{ {
$posValue = $posValue = (
( $shutters->getSleepPos > 0 $shutters->getSleepPos > 0
? $shutters->getSleepPos ? $shutters->getSleepPos
: $shutters->getClosedPos ); : $shutters->getClosedPos
);
} }
else { else {
$posValue = $shutters->getVentilatePos; $posValue = $shutters->getVentilatePos;
@@ -1847,10 +1845,11 @@ sub EventProcessingBrightness($@) {
elsif ( CheckIfShuttersWindowRecOpen($shuttersDev) == 0 elsif ( CheckIfShuttersWindowRecOpen($shuttersDev) == 0
or $shutters->getVentilateOpen eq 'off' ) or $shutters->getVentilateOpen eq 'off' )
{ {
$posValue = $posValue = (
( $shutters->getSleepPos > 0 $shutters->getSleepPos > 0
? $shutters->getSleepPos ? $shutters->getSleepPos
: $shutters->getClosedPos ); : $shutters->getClosedPos
);
} }
else { $posValue = $shutters->getVentilatePos; } else { $posValue = $shutters->getVentilatePos; }
@@ -2455,7 +2454,7 @@ sub ShuttersCommandSet($$$) {
{ {
$shutters->setDelayCmd($posValue); $shutters->setDelayCmd($posValue);
$ascDev->setDelayCmdReading; $ascDev->setDelayCmdReading;
$shutters->setNoOffset(0); $shutters->setNoDelay(0);
Log3( $name, 4, Log3( $name, 4,
"AutoShuttersControl ($name) - ShuttersCommandSet in Delay" ); "AutoShuttersControl ($name) - ShuttersCommandSet in Delay" );
@@ -2609,8 +2608,6 @@ sub RenewSunRiseSetShuttersTimer($) {
$shutters->setInTimerFuncHash(undef); $shutters->setInTimerFuncHash(undef);
CreateSunRiseSetShuttersTimer( $hash, $_ ); CreateSunRiseSetShuttersTimer( $hash, $_ );
#### Temporär angelegt damit die neue Attributs Parameter Syntax verteilt werden kann #### Temporär angelegt damit die neue Attributs Parameter Syntax verteilt werden kann
#### Gleichlautende Attribute wo lediglich die Parameter geändert werden sollen müssen bereits in der Funktion ShuttersDeviceScan gelöscht werden #### Gleichlautende Attribute wo lediglich die Parameter geändert werden sollen müssen bereits in der Funktion ShuttersDeviceScan gelöscht werden
#### vorher empfiehlt es sich die dort vergebenen Parameter aus zu lesen um sie dann hier wieder neu zu setzen. Dazu wird das shutters Objekt um einen Eintrag #### vorher empfiehlt es sich die dort vergebenen Parameter aus zu lesen um sie dann hier wieder neu zu setzen. Dazu wird das shutters Objekt um einen Eintrag
@@ -2633,7 +2630,6 @@ sub RenewSunRiseSetShuttersTimer($) {
$shutters->getAttrUpdateChanges('ASC_Self_Defense_Exclude') eq $shutters->getAttrUpdateChanges('ASC_Self_Defense_Exclude') eq
'on' ); 'on' );
CommandDeleteReading( undef, $_ . ' .ASC_AttrUpdateChanges_.*' ) CommandDeleteReading( undef, $_ . ' .ASC_AttrUpdateChanges_.*' )
if ( if (
ReadingsVal( $_, '.ASC_AttrUpdateChanges_' . $hash->{VERSION}, ReadingsVal( $_, '.ASC_AttrUpdateChanges_' . $hash->{VERSION},
@@ -2645,14 +2641,14 @@ sub RenewSunRiseSetShuttersTimer($) {
} }
$attr{$_}{ASC_Drive_Delay} = AttrVal( $_, 'ASC_Drive_Offset', 'none' ) $attr{$_}{ASC_Drive_Delay} = AttrVal( $_, 'ASC_Drive_Offset', 'none' )
if ( AttrVal( $_, 'ASC_Drive_Offset', 'none' ) ne 'none' ); if ( AttrVal( $_, 'ASC_Drive_Offset', 'none' ) ne 'none' );
delFromDevAttrList( $_, 'ASC_Drive_Offset' ); delFromDevAttrList( $_, 'ASC_Drive_Offset' );
$attr{$_}{ASC_Drive_DelayStart} = AttrVal( $_, 'ASC_Drive_OffsetStart', 'none' ) $attr{$_}{ASC_Drive_DelayStart} =
if ( AttrVal( $_, 'ASC_Drive_OffsetStart', 'none' ) ne 'none' ); AttrVal( $_, 'ASC_Drive_OffsetStart', 'none' )
if ( AttrVal( $_, 'ASC_Drive_OffsetStart', 'none' ) ne 'none' );
delFromDevAttrList( $_, 'ASC_Drive_OffsetStart' ); delFromDevAttrList( $_, 'ASC_Drive_OffsetStart' );
} }
} }
@@ -2677,7 +2673,7 @@ sub wiggleAll($) {
sub wiggle($$) { sub wiggle($$) {
my ( $hash, $shuttersDev ) = @_; my ( $hash, $shuttersDev ) = @_;
$shutters->setShuttersDev($shuttersDev); $shutters->setShuttersDev($shuttersDev);
$shutters->setNoOffset(1); $shutters->setNoDelay(1);
$shutters->setLastDrive('wiggle begin drive'); $shutters->setLastDrive('wiggle begin drive');
my %h = ( my %h = (
@@ -3902,10 +3898,10 @@ sub setHardLockOut {
return 0; return 0;
} }
sub setNoOffset { sub setNoDelay {
my ( $self, $noOffset ) = @_; my ( $self, $noDelay ) = @_;
$self->{ $self->{shuttersDev} }{noOffset} = $noOffset; $self->{ $self->{shuttersDev} }{noDelay} = $noDelay;
return 0; return 0;
} }
@@ -3959,7 +3955,7 @@ sub setDriveCmd {
'FHEM::AutoShuttersControl::_SetCmdFn', \%h ); 'FHEM::AutoShuttersControl::_SetCmdFn', \%h );
$shutters->setSelfDefenseAbsent( 1, 0, \%h ); $shutters->setSelfDefenseAbsent( 1, 0, \%h );
} }
elsif ( $offSetStart > 0 and not $shutters->getNoOffset ) { elsif ( $offSetStart > 0 and not $shutters->getNoDelay ) {
InternalTimer( InternalTimer(
gettimeofday() + int( rand($offSet) + $shutters->getDelayStart ), gettimeofday() + int( rand($offSet) + $shutters->getDelayStart ),
'FHEM::AutoShuttersControl::_SetCmdFn', \%h ); 'FHEM::AutoShuttersControl::_SetCmdFn', \%h );
@@ -3968,7 +3964,7 @@ sub setDriveCmd {
. $shutters->getShuttersDev . $shutters->getShuttersDev
. ' - versetztes fahren' ); . ' - versetztes fahren' );
} }
elsif ( $offSetStart < 1 or $shutters->getNoOffset ) { elsif ( $offSetStart < 1 or $shutters->getNoDelay ) {
FHEM::AutoShuttersControl::_SetCmdFn( \%h ); FHEM::AutoShuttersControl::_SetCmdFn( \%h );
FHEM::AutoShuttersControl::ASC_Debug( 'FnSetDriveCmd: ' FHEM::AutoShuttersControl::ASC_Debug( 'FnSetDriveCmd: '
. $shutters->getShuttersDev . $shutters->getShuttersDev
@@ -3977,9 +3973,9 @@ sub setDriveCmd {
FHEM::AutoShuttersControl::ASC_Debug( 'FnSetDriveCmd: ' FHEM::AutoShuttersControl::ASC_Debug( 'FnSetDriveCmd: '
. $shutters->getShuttersDev . $shutters->getShuttersDev
. ' - NoOffset: ' . ' - NoDelay: '
. ( $shutters->getNoOffset ? 'JA' : 'NEIN' ) ); . ( $shutters->getNoDelay ? 'JA' : 'NEIN' ) );
$shutters->setNoOffset(0); $shutters->setNoDelay(0);
return 0; return 0;
} }
@@ -4178,10 +4174,10 @@ sub getPosSetCmd {
); );
} }
sub getNoOffset { sub getNoDelay {
my $self = shift; my $self = shift;
return $self->{ $self->{shuttersDev} }{noOffset}; return $self->{ $self->{shuttersDev} }{noDelay};
} }
sub getSelfDefenseAbsent { sub getSelfDefenseAbsent {
@@ -6309,7 +6305,7 @@ sub getblockAscDrivesAfterManual {
<td>1 = soft, 2 = daytime, 3 = hard</td> <td>1 = soft, 2 = daytime, 3 = hard</td>
</tr> </tr>
<tr> <tr>
<td>NoOffset</td> <td>NoDelay</td>
<td>Was the offset handling deactivated (e.g. by operations triggered by a window event)</td> <td>Was the offset handling deactivated (e.g. by operations triggered by a window event)</td>
</tr> </tr>
<tr> <tr>
@@ -6656,7 +6652,7 @@ sub getblockAscDrivesAfterManual {
<table border="1"> <table border="1">
<tr><th>Getter</th><th>Erl&auml;uterung</th></tr> <tr><th>Getter</th><th>Erl&auml;uterung</th></tr>
<tr><td>FreezeStatus</td><td>1=soft, 2=Daytime, 3=hard</td></tr> <tr><td>FreezeStatus</td><td>1=soft, 2=Daytime, 3=hard</td></tr>
<tr><td>NoOffset</td><td>Wurde die Behandlung von Offset deaktiviert (Beispiel bei Fahrten &uuml;ber Fensterevents)</td></tr> <tr><td>NoDelay</td><td>Wurde die Behandlung von Offset deaktiviert (Beispiel bei Fahrten &uuml;ber Fensterevents)</td></tr>
<tr><td>LastDrive</td><td>Grund des letzten Fahrens</td></tr> <tr><td>LastDrive</td><td>Grund des letzten Fahrens</td></tr>
<tr><td>LastPos</td><td>die letzte Position des Rollladens</td></tr> <tr><td>LastPos</td><td>die letzte Position des Rollladens</td></tr>
<tr><td>LastPosTimestamp</td><td>Timestamp der letzten festgestellten Position</td></tr> <tr><td>LastPosTimestamp</td><td>Timestamp der letzten festgestellten Position</td></tr>
@@ -6726,7 +6722,7 @@ sub getblockAscDrivesAfterManual {
], ],
"release_status": "under develop", "release_status": "under develop",
"license": "GPL_2", "license": "GPL_2",
"version": "v0.6.100", "version": "v0.6.101",
"author": [ "author": [
"Marko Oldenburg <leongaultier@gmail.com>" "Marko Oldenburg <leongaultier@gmail.com>"
], ],