Patch beliebigen Fahrbefehl zulassen #53
This commit is contained in:
		@@ -1,15 +1,15 @@
 | 
				
			|||||||
UPD 2021-10-24_07:33:53 111901 FHEM/73_AutoShuttersControl.pm
 | 
					UPD 2021-10-24_07:33:53 111901 FHEM/73_AutoShuttersControl.pm
 | 
				
			||||||
UPD 2021-10-24_18:37:41 74468 lib/FHEM/Automation/ShuttersControl.pm
 | 
					UPD 2021-10-25_17:49:27 75117 lib/FHEM/Automation/ShuttersControl.pm
 | 
				
			||||||
UPD 2021-10-09_07:12:54 2657 lib/FHEM/Automation/ShuttersControl/Dev.pm
 | 
					UPD 2021-10-09_07:12:54 2657 lib/FHEM/Automation/ShuttersControl/Dev.pm
 | 
				
			||||||
UPD 2021-10-09_07:12:54 2494 lib/FHEM/Automation/ShuttersControl/Roommate.pm
 | 
					UPD 2021-10-09_07:12:54 2494 lib/FHEM/Automation/ShuttersControl/Roommate.pm
 | 
				
			||||||
UPD 2021-10-24_07:33:53 31900 lib/FHEM/Automation/ShuttersControl/Shutters.pm
 | 
					UPD 2021-10-24_07:33:53 31900 lib/FHEM/Automation/ShuttersControl/Shutters.pm
 | 
				
			||||||
UPD 2021-10-09_07:12:54 25333 lib/FHEM/Automation/ShuttersControl/Shading.pm
 | 
					UPD 2021-10-09_07:12:54 25333 lib/FHEM/Automation/ShuttersControl/Shading.pm
 | 
				
			||||||
UPD 2021-10-25_09:47:08 110681 lib/FHEM/Automation/ShuttersControl/EventProcessingFunctions.pm
 | 
					UPD 2021-10-25_10:08:13 110681 lib/FHEM/Automation/ShuttersControl/EventProcessingFunctions.pm
 | 
				
			||||||
UPD 2021-10-09_07:12:54 40628 lib/FHEM/Automation/ShuttersControl/Helper.pm
 | 
					UPD 2021-10-09_07:12:54 40628 lib/FHEM/Automation/ShuttersControl/Helper.pm
 | 
				
			||||||
UPD 2021-10-09_07:12:54 2173 lib/FHEM/Automation/ShuttersControl/Window.pm
 | 
					UPD 2021-10-09_07:12:54 2173 lib/FHEM/Automation/ShuttersControl/Window.pm
 | 
				
			||||||
UPD 2021-10-09_07:12:54 11739 lib/FHEM/Automation/ShuttersControl/Dev/Attr.pm
 | 
					UPD 2021-10-09_07:12:54 11739 lib/FHEM/Automation/ShuttersControl/Dev/Attr.pm
 | 
				
			||||||
UPD 2021-10-09_07:12:54 7249 lib/FHEM/Automation/ShuttersControl/Dev/Readings.pm
 | 
					UPD 2021-10-09_07:12:54 7249 lib/FHEM/Automation/ShuttersControl/Dev/Readings.pm
 | 
				
			||||||
UPD 2021-10-09_07:12:54 52523 lib/FHEM/Automation/ShuttersControl/Shutters/Attr.pm
 | 
					UPD 2021-10-25_17:36:18 52649 lib/FHEM/Automation/ShuttersControl/Shutters/Attr.pm
 | 
				
			||||||
UPD 2021-10-09_07:12:54 2901 lib/FHEM/Automation/ShuttersControl/Shutters/Readings.pm
 | 
					UPD 2021-10-09_07:12:54 2901 lib/FHEM/Automation/ShuttersControl/Shutters/Readings.pm
 | 
				
			||||||
UPD 2021-10-09_07:12:54 3978 lib/FHEM/Automation/ShuttersControl/Window/Attr.pm
 | 
					UPD 2021-10-09_07:12:54 3978 lib/FHEM/Automation/ShuttersControl/Window/Attr.pm
 | 
				
			||||||
UPD 2021-10-09_07:12:54 2286 lib/FHEM/Automation/ShuttersControl/Window/Readings.pm
 | 
					UPD 2021-10-09_07:12:54 2286 lib/FHEM/Automation/ShuttersControl/Window/Readings.pm
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -184,9 +184,7 @@ BEGIN {
 | 
				
			|||||||
          delFromAttrList
 | 
					          delFromAttrList
 | 
				
			||||||
          gettimeofday
 | 
					          gettimeofday
 | 
				
			||||||
          InternalTimer
 | 
					          InternalTimer
 | 
				
			||||||
          RemoveInternalTimer
 | 
					          RemoveInternalTimer)
 | 
				
			||||||
          computeAlignTime
 | 
					 | 
				
			||||||
          ReplaceEventMap)
 | 
					 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    #-- Export to main context with different name
 | 
					    #-- Export to main context with different name
 | 
				
			||||||
@@ -265,6 +263,7 @@ our %userAttrList = (
 | 
				
			|||||||
    'ASC_RainProtection:on,off'             => '-',
 | 
					    'ASC_RainProtection:on,off'             => '-',
 | 
				
			||||||
    'ASC_ExternalTrigger'                   => '-',
 | 
					    'ASC_ExternalTrigger'                   => '-',
 | 
				
			||||||
    'ASC_Adv:on,off'                        => '-',
 | 
					    'ASC_Adv:on,off'                        => '-',
 | 
				
			||||||
 | 
					    'ASC_CommandTemplate'                   => '-',
 | 
				
			||||||
    'ASC_SlatPosCmd_SlatDevice'             => '-',
 | 
					    'ASC_SlatPosCmd_SlatDevice'             => '-',
 | 
				
			||||||
);
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1769,8 +1768,9 @@ sub _SetCmdFn {
 | 
				
			|||||||
          . '. Grund der Fahrt: '
 | 
					          . '. Grund der Fahrt: '
 | 
				
			||||||
          . $shutters->getLastDrive );
 | 
					          . $shutters->getLastDrive );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    my $driveCommand = $shutters->getPosSetCmd . ' ' . $posValue;
 | 
					    my $driveCommand    = $shutters->getPosSetCmd . ' ' . $posValue;
 | 
				
			||||||
    my $slatPos      = -1;
 | 
					    my $commandTemplate = $shutters->getCommandTemplte;
 | 
				
			||||||
 | 
					    my $slatPos         = -1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (   $shutters->getShadingPositionAssignment ne 'none'
 | 
					    if (   $shutters->getShadingPositionAssignment ne 'none'
 | 
				
			||||||
        || $shutters->getOpenPositionAssignment ne 'none'
 | 
					        || $shutters->getOpenPositionAssignment ne 'none'
 | 
				
			||||||
@@ -1822,32 +1822,47 @@ sub _SetCmdFn {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    CommandSet( undef,
 | 
					    if ( $commandTemplate ne 'none' ) {     # Patch von Beta-User Forum https://forum.fhem.de/index.php/topic,123659.0.html
 | 
				
			||||||
            $shuttersDev
 | 
					        # Nutzervariablen setzen
 | 
				
			||||||
          . ':FILTER='
 | 
					        my %specials = (
 | 
				
			||||||
          . $shutters->getPosCmd . '!='
 | 
					             '$name'        => $shuttersDev,
 | 
				
			||||||
          . $posValue . ' '
 | 
					             '$level'       => $posValue,
 | 
				
			||||||
          . $driveCommand );
 | 
					             '$slatLevel'   => $slatPos
 | 
				
			||||||
 | 
					        );
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
    InternalTimer(
 | 
					        $commandTemplate  = ::EvalSpecials($commandTemplate, %specials);
 | 
				
			||||||
        gettimeofday() + 3,
 | 
					        # CMD ausführen
 | 
				
			||||||
        sub() {
 | 
					        ::AnalyzeCommandChain( $h, $commandTemplate );
 | 
				
			||||||
            CommandSet(
 | 
					    }
 | 
				
			||||||
                undef,
 | 
					    else {
 | 
				
			||||||
                (
 | 
					        CommandSet( undef,
 | 
				
			||||||
                      $shutters->getSlatDevice ne 'none'
 | 
					                $shuttersDev
 | 
				
			||||||
                    ? $shutters->getSlatDevice
 | 
					            . ':FILTER='
 | 
				
			||||||
                    : $shuttersDev
 | 
					            . $shutters->getPosCmd . '!='
 | 
				
			||||||
                  )
 | 
					            . $posValue . ' '
 | 
				
			||||||
                  . ' '
 | 
					            . $driveCommand );
 | 
				
			||||||
                  . $shutters->getSlatPosCmd . ' '
 | 
					
 | 
				
			||||||
                  . $slatPos
 | 
					        InternalTimer(
 | 
				
			||||||
            );
 | 
					            gettimeofday() + 3,
 | 
				
			||||||
        },
 | 
					            sub() {
 | 
				
			||||||
        $shuttersDev
 | 
					                CommandSet(
 | 
				
			||||||
      )
 | 
					                    undef,
 | 
				
			||||||
      if ( $slatPos > -1
 | 
					                    (
 | 
				
			||||||
        && $shutters->getSlatPosCmd ne 'none' );
 | 
					                        $shutters->getSlatDevice ne 'none'
 | 
				
			||||||
 | 
					                        ? $shutters->getSlatDevice
 | 
				
			||||||
 | 
					                        : $shuttersDev
 | 
				
			||||||
 | 
					                    )
 | 
				
			||||||
 | 
					                    . ' '
 | 
				
			||||||
 | 
					                    . $shutters->getSlatPosCmd . ' '
 | 
				
			||||||
 | 
					                    . $slatPos
 | 
				
			||||||
 | 
					                );
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            $shuttersDev
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 | 
					        if ( $slatPos > -1
 | 
				
			||||||
 | 
					            && $shutters->getSlatPosCmd ne 'none' );
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    $shutters->setSelfDefenseAbsent( 0, 0 )
 | 
					    $shutters->setSelfDefenseAbsent( 0, 0 )
 | 
				
			||||||
      if (!$shutters->getSelfDefenseAbsent
 | 
					      if (!$shutters->getSelfDefenseAbsent
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -516,6 +516,12 @@ sub getSelfDefenseAbsentDelay {
 | 
				
			|||||||
    return AttrVal( $self->{shuttersDev}, 'ASC_Self_Defense_AbsentDelay', 300 );
 | 
					    return AttrVal( $self->{shuttersDev}, 'ASC_Self_Defense_AbsentDelay', 300 );
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					sub getCommandTemplate {
 | 
				
			||||||
 | 
					    my $self = shift;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return AttrVal( $self->{shuttersDev}, 'ASC_CommandTemplate', 'none' );
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
sub setWiggleValue {
 | 
					sub setWiggleValue {
 | 
				
			||||||
    my $self    = shift;
 | 
					    my $self    = shift;
 | 
				
			||||||
    my $attrVal = shift;
 | 
					    my $attrVal = shift;
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user