diff --git a/fhem/CHANGED b/fhem/CHANGED index b43a14e75..636dd9ced 100644 --- a/fhem/CHANGED +++ b/fhem/CHANGED @@ -1,7 +1,9 @@ # Add changes at the top of the list. Keep it in ASCII, and 80-char wide. # Do not insert empty lines here, update check depends on it. + - bugfix: 73_AutoShuttersControl: fix Commandref, skip ExternalTrigger Drive + from adv check - bugfix: 88_HMCCU: Fixed problems during shutdown / restart - - bugfix: 70_VIERA: avoid possible interaction GET status/SET command + - bugfix: 70_VIERA: avoid possible interaction GET status/SET command see also Forum #99994 - change: 33_readingsGroup: don't use events to update cells - feature: 98_WeekdayTimer: add support for weekprofile, add nl Forum: #105521 diff --git a/fhem/FHEM/73_AutoShuttersControl.pm b/fhem/FHEM/73_AutoShuttersControl.pm index 684f8cc22..2133abb85 100644 --- a/fhem/FHEM/73_AutoShuttersControl.pm +++ b/fhem/FHEM/73_AutoShuttersControl.pm @@ -2609,6 +2609,7 @@ sub EventProcessingExternalTriggerDevice($@) { $shutters->setLastDrive('external trigger device active'); $shutters->setNoDelay(1); + $shutters->setExternalTriggerState(1); ShuttersCommandSet( $hash, $shuttersDev, $triggerPosActive ); } elsif ( @@ -2625,6 +2626,7 @@ sub EventProcessingExternalTriggerDevice($@) { $shutters->setLastDrive('external trigger device inactive'); $shutters->setNoDelay(1); + $shutters->setExternalTriggerState(1); ShuttersCommandSet( $hash, $shuttersDev, $triggerPosInactive ); } @@ -4349,12 +4351,15 @@ sub setDriveCmd { ( $shutters->getPartyMode eq 'on' and $ascDev->getPartyMode eq 'on' ) or ( $shutters->getAdv and not $shutters->getQueryShuttersPos($posValue) - and not $shutters->getAdvDelay ) + and not $shutters->getAdvDelay + and not $shutters->getExternalTriggerState) ) { $shutters->setDelayCmd($posValue); $ascDev->setDelayCmdReading; $shutters->setNoDelay(0); + $shutters->setExternalTriggerState(0) + if ( $shutters->getExternalTriggerState ); FHEM::AutoShuttersControl::ASC_Debug( 'setDriveCmd: ' . $shutters->getShuttersDev @@ -4367,6 +4372,8 @@ sub setDriveCmd { $shutters->setDelayCmd('none') if ( $shutters->getDelayCmd ne 'none' ) ; # setzt den Wert auf none da der Rolladen nun gesteuert werden kann. + $shutters->setExternalTriggerState(0) + if ( $shutters->getExternalTriggerState ); ### antifreeze Routine if ( $shutters->getFreezeStatus > 0 ) { @@ -4888,6 +4895,14 @@ sub setRainProtectionStatus { # Werte protected, unprotected return 0; } +sub setExternalTriggerState { + my ( $self, $value ) = @_; + + $self->{ $self->{shuttersDev} }->{ASC_ExternalTrigger}->{event} = $value + if ( defined($value) ); + return 0; +} + sub setPushBrightnessInArray { my ( $self, $value ) = @_; @@ -5726,6 +5741,13 @@ sub getExternalTriggerPosInactive { ->{posinactive}; } +sub getExternalTriggerState { + my $self = shift; + + return ( (defined($self->{ $self->{shuttersDev} }->{ASC_ExternalTrigger}->{event}) + and $self->{ $self->{shuttersDev} }->{ASC_ExternalTrigger}->{event}) ? 1 : 0 ); +} + sub getDelay { my $self = shift; @@ -7559,8 +7581,8 @@ sub getblockAscDrivesAfterManual { In den Rollläden-Geräten @@ -7568,7 +7590,7 @@ sub getblockAscDrivesAfterManual { Set