fix trigger ASC_ShuttersLastDrive Event

This commit is contained in:
Marko Oldenburg 2019-07-03 11:54:01 +02:00
parent b4ab616774
commit 81a8ef64ec

View File

@ -2577,7 +2577,7 @@ sub wiggle($$) {
} }
InternalTimer( gettimeofday() + 60, InternalTimer( gettimeofday() + 60,
'FHEM::AutoShuttersControl::SetCmdFn', \%h ); 'FHEM::AutoShuttersControl::_SetCmdFn', \%h );
} }
#### ####
@ -3580,7 +3580,7 @@ sub IsWeTomorrow() {
return $we; return $we;
} }
sub SetCmdFn($) { sub _SetCmdFn($) {
my $h = shift; my $h = shift;
my $shuttersDev = $h->{shuttersDev}; my $shuttersDev = $h->{shuttersDev};
my $posValue = $h->{posValue}; my $posValue = $h->{posValue};
@ -3629,6 +3629,16 @@ sub SetCmdFn($) {
and $shutters->getSelfDefenseAbsentTimerrun ); and $shutters->getSelfDefenseAbsentTimerrun );
} }
sub _setShuttersLastDriveDelayed($) {
my $h = shift;
my $shuttersDevHash = $h->{devHash};
my $lastDrive = $h->{lastDrive};
readingsSingleUpdate( $shuttersDevHash, 'ASC_ShuttersLastDrive', $lastDrive, 1 );
# print('Ausgabe Funktion wurde aufgerufen - LastDrive: ' . $lastDrive . ', DevHash and Name: ' . $shuttersDevHash . ':: ' . $shuttersDevHash->{NAME} . "\n");
}
sub ASC_Debug($) { sub ASC_Debug($) {
return return
unless ( AttrVal( $ascDev->getName, 'ASC_debug', 0 ) ); unless ( AttrVal( $ascDev->getName, 'ASC_debug', 0 ) );
@ -3768,20 +3778,20 @@ sub setDriveCmd {
and $ascDev->getSelfDefense eq 'on' ) and $ascDev->getSelfDefense eq 'on' )
{ {
InternalTimer( gettimeofday() + $shutters->getSelfDefenseAbsentDelay, InternalTimer( gettimeofday() + $shutters->getSelfDefenseAbsentDelay,
'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->getNoOffset ) {
InternalTimer( InternalTimer(
gettimeofday() + int( rand($offSet) + $shutters->getOffsetStart ), gettimeofday() + int( rand($offSet) + $shutters->getOffsetStart ),
'FHEM::AutoShuttersControl::SetCmdFn', \%h ); 'FHEM::AutoShuttersControl::_SetCmdFn', \%h );
FHEM::AutoShuttersControl::ASC_Debug( 'FnSetDriveCmd: ' FHEM::AutoShuttersControl::ASC_Debug( 'FnSetDriveCmd: '
. $shutters->getShuttersDev . $shutters->getShuttersDev
. ' - versetztes fahren' ); . ' - versetztes fahren' );
} }
elsif ( $offSetStart < 1 or $shutters->getNoOffset ) { elsif ( $offSetStart < 1 or $shutters->getNoOffset ) {
FHEM::AutoShuttersControl::SetCmdFn( \%h ); FHEM::AutoShuttersControl::_SetCmdFn( \%h );
FHEM::AutoShuttersControl::ASC_Debug( 'FnSetDriveCmd: ' FHEM::AutoShuttersControl::ASC_Debug( 'FnSetDriveCmd: '
. $shutters->getShuttersDev . $shutters->getShuttersDev
. ' - NICHT versetztes fahren' ); . ' - NICHT versetztes fahren' );
@ -3848,8 +3858,14 @@ sub setLastDriveReading {
my $self = shift; my $self = shift;
my $shuttersDevHash = $defs{ $self->{shuttersDev} }; my $shuttersDevHash = $defs{ $self->{shuttersDev} };
readingsSingleUpdate( $shuttersDevHash, 'ASC_ShuttersLastDrive', my %h = (
$shutters->getLastDrive, 1 ); devHash => $shuttersDevHash,
lastDrive => $shutters->getLastDrive,
);
InternalTimer(
gettimeofday() + 0.1,
'FHEM::AutoShuttersControl::_setShuttersLastDriveDelayed', \%h );
return 0; return 0;
} }
@ -6499,7 +6515,7 @@ sub getblockAscDrivesAfterManual {
"release_status": "under develop", "release_status": "under develop",
"license": "GPL_2", "license": "GPL_2",
"version": "v0.6.19", "version": "v0.6.19",
"x_developmentversion": "v0.6.19.32", "x_developmentversion": "v0.6.19.33",
"author": [ "author": [
"Marko Oldenburg <leongaultier@gmail.com>" "Marko Oldenburg <leongaultier@gmail.com>"
], ],