mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-04-07 19:04:20 +00:00
73_AutoShuttersControl: fix little Shading bugs and Window clsed with shading state
git-svn-id: https://svn.fhem.de/fhem/trunk@21640 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
bb2e47130e
commit
138156bfff
@ -1117,8 +1117,11 @@ sub EventProcessingWindowRec {
|
|||||||
$shutters->setNoDelay(1);
|
$shutters->setNoDelay(1);
|
||||||
$shutters->setDriveCmd( $shutters->getShadingPos );
|
$shutters->setDriveCmd( $shutters->getShadingPos );
|
||||||
}
|
}
|
||||||
elsif ($shutters->getStatus != $shutters->getOpenPos
|
elsif (
|
||||||
|| $shutters->getStatus != $shutters->getLastManPos )
|
!$shutters->getIfInShading
|
||||||
|
&& ( $shutters->getStatus != $shutters->getOpenPos
|
||||||
|
|| $shutters->getStatus != $shutters->getLastManPos )
|
||||||
|
)
|
||||||
{
|
{
|
||||||
if ( $shutters->getPrivacyDownStatus == 2 ) {
|
if ( $shutters->getPrivacyDownStatus == 2 ) {
|
||||||
$shutters->setLastDrive(
|
$shutters->setLastDrive(
|
||||||
@ -1210,15 +1213,7 @@ sub EventProcessingWindowRec {
|
|||||||
if ( defined($posValue) && $posValue ) {
|
if ( defined($posValue) && $posValue ) {
|
||||||
$shutters->setLastDrive($setLastDrive);
|
$shutters->setLastDrive($setLastDrive);
|
||||||
$shutters->setNoDelay(1);
|
$shutters->setNoDelay(1);
|
||||||
$shutters->setDriveCmd(
|
$shutters->setDriveCmd($posValue);
|
||||||
|
|
||||||
# (
|
|
||||||
# $shutters->getShuttersPlace eq 'terrace'
|
|
||||||
# ? $shutters->getOpenPos
|
|
||||||
$posValue
|
|
||||||
|
|
||||||
# )
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2404,14 +2399,7 @@ sub ShadingProcessing {
|
|||||||
if ( $shutters->getShadingStatus eq 'in'
|
if ( $shutters->getShadingStatus eq 'in'
|
||||||
|| $shutters->getShadingStatus eq 'in reserved' );
|
|| $shutters->getShadingStatus eq 'in reserved' );
|
||||||
|
|
||||||
if (
|
if ( $shutters->getShadingStatus eq 'out reserved' ) {
|
||||||
(
|
|
||||||
$shutters->getShadingStatus eq 'out reserved'
|
|
||||||
and
|
|
||||||
( int( gettimeofday() ) - $shutters->getShadingStatusTimestamp )
|
|
||||||
) > $shutters->getShadingWaitingPeriod
|
|
||||||
)
|
|
||||||
{
|
|
||||||
$shutters->setShadingStatus('out');
|
$shutters->setShadingStatus('out');
|
||||||
$shutters->setShadingLastStatus('in')
|
$shutters->setShadingLastStatus('in')
|
||||||
if ( $shutters->getShadingLastStatus eq 'out' );
|
if ( $shutters->getShadingLastStatus eq 'out' );
|
||||||
@ -2443,11 +2431,7 @@ sub ShadingProcessing {
|
|||||||
if ( $shutters->getShadingStatus eq 'out'
|
if ( $shutters->getShadingStatus eq 'out'
|
||||||
|| $shutters->getShadingStatus eq 'out reserved' );
|
|| $shutters->getShadingStatus eq 'out reserved' );
|
||||||
|
|
||||||
if ( $shutters->getShadingStatus eq 'in reserved'
|
if ( $shutters->getShadingStatus eq 'in reserved' ) {
|
||||||
and
|
|
||||||
( int( gettimeofday() ) - $shutters->getShadingStatusTimestamp ) >
|
|
||||||
( $shutters->getShadingWaitingPeriod / 2 ) )
|
|
||||||
{
|
|
||||||
$shutters->setShadingStatus('in');
|
$shutters->setShadingStatus('in');
|
||||||
$shutters->setShadingLastStatus('out')
|
$shutters->setShadingLastStatus('out')
|
||||||
if ( $shutters->getShadingLastStatus eq 'in' );
|
if ( $shutters->getShadingLastStatus eq 'in' );
|
||||||
@ -2481,6 +2465,8 @@ sub ShadingProcessing {
|
|||||||
|| ( $shutters->getShadingStatus eq 'in'
|
|| ( $shutters->getShadingStatus eq 'in'
|
||||||
&& $shutters->getShadingLastStatus eq 'out' )
|
&& $shutters->getShadingLastStatus eq 'out' )
|
||||||
)
|
)
|
||||||
|
&& $shutters->getRoommatesStatus ne 'asleep'
|
||||||
|
&& $shutters->getRoommatesStatus ne 'gotosleep'
|
||||||
);
|
);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
@ -2502,32 +2488,25 @@ sub ShadingProcessingDriveCommand {
|
|||||||
if ( $shutters->getShadingMode eq 'always'
|
if ( $shutters->getShadingMode eq 'always'
|
||||||
|| $shutters->getShadingMode eq $homemode )
|
|| $shutters->getShadingMode eq $homemode )
|
||||||
{
|
{
|
||||||
$shutters->setShadingStatus( $shutters->getShadingStatus )
|
$shutters->setShadingStatus( $shutters->getShadingStatus );
|
||||||
if (
|
|
||||||
( int( gettimeofday() ) - $shutters->getShadingStatusTimestamp ) >
|
|
||||||
( $shutters->getShadingWaitingPeriod / 2 ) );
|
|
||||||
|
|
||||||
if ( $shutters->getShadingStatus eq 'in'
|
if (
|
||||||
&& $getShadingPos != $getStatus )
|
$shutters->getShadingStatus eq 'in'
|
||||||
|
&& $getShadingPos != $getStatus
|
||||||
|
&& ( CheckIfShuttersWindowRecOpen($shuttersDev) != 2
|
||||||
|
|| $shutters->getShuttersPlace ne 'terrace' )
|
||||||
|
)
|
||||||
{
|
{
|
||||||
if (
|
$shutters->setLastDrive('shading in');
|
||||||
!(
|
ShuttersCommandSet( $hash, $shuttersDev, $getShadingPos );
|
||||||
CheckIfShuttersWindowRecOpen($shuttersDev) == 2
|
|
||||||
&& $shutters->getShuttersPlace eq 'terrace'
|
|
||||||
)
|
|
||||||
)
|
|
||||||
{
|
|
||||||
$shutters->setLastDrive('shading in');
|
|
||||||
ShuttersCommandSet( $hash, $shuttersDev, $getShadingPos );
|
|
||||||
|
|
||||||
ASC_Debug( 'ShadingProcessingDriveCommand: '
|
ASC_Debug( 'ShadingProcessingDriveCommand: '
|
||||||
. $shutters->getShuttersDev
|
. $shutters->getShuttersDev
|
||||||
. ' - Der aktuelle Beschattungsstatus ist: '
|
. ' - Der aktuelle Beschattungsstatus ist: '
|
||||||
. $shutters->getShadingStatus
|
. $shutters->getShadingStatus
|
||||||
. ' und somit wird nun in die Position: '
|
. ' und somit wird nun in die Position: '
|
||||||
. $getShadingPos
|
. $getShadingPos
|
||||||
. ' zum Beschatten gefahren' );
|
. ' zum Beschatten gefahren' );
|
||||||
}
|
|
||||||
}
|
}
|
||||||
elsif ($shutters->getShadingStatus eq 'out'
|
elsif ($shutters->getShadingStatus eq 'out'
|
||||||
&& $getShadingPos == $getStatus )
|
&& $getShadingPos == $getStatus )
|
||||||
@ -2796,14 +2775,12 @@ sub ShuttersCommandSet {
|
|||||||
|
|
||||||
if (
|
if (
|
||||||
(
|
(
|
||||||
$posValue == $shutters->getShadingPos
|
$posValue == $shutters->getShadingPos
|
||||||
&& (
|
&& CheckIfShuttersWindowRecOpen($shuttersDev) == 2
|
||||||
CheckIfShuttersWindowRecOpen($shuttersDev) == 2
|
&& $shutters->getShuttersPlace eq 'terrace'
|
||||||
&& $shutters->getShuttersPlace eq 'terrace'
|
&& ( $shutters->getLockOut eq 'soft'
|
||||||
&& ( $shutters->getLockOut eq 'soft'
|
|| $shutters->getLockOut eq 'hard' )
|
||||||
|| $shutters->getLockOut eq 'hard' )
|
&& !$shutters->getQueryShuttersPos($posValue)
|
||||||
&& !$shutters->getQueryShuttersPos($posValue)
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
|| (
|
|| (
|
||||||
$posValue != $shutters->getShadingPos
|
$posValue != $shutters->getShadingPos
|
||||||
|
Loading…
x
Reference in New Issue
Block a user