73_AutoShuttersControl: fix Residents Home Bug

git-svn-id: https://svn.fhem.de/fhem/trunk@22009 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
CoolTux
2020-05-23 05:43:38 +00:00
parent 8d598c4e82
commit 40f40e2475
2 changed files with 36 additions and 15 deletions

View File

@@ -1,5 +1,6 @@
# Add changes at the top of the list. Keep it in ASCII, and 80-char wide. # 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. # Do not insert empty lines here, update check depends on it.
- bugfix: 73_AutoShuttersControl: fix Residents Home Bug
- feature: 82_LGTV_WebOS: add Disney in App list - feature: 82_LGTV_WebOS: add Disney in App list
- feature: 98_RandomTimer: Add perlSyntaxCheck to condition attribute - feature: 98_RandomTimer: Add perlSyntaxCheck to condition attribute
- bugfix: dashboard.js: Dashboard no longer requires dummy readingsgroup - bugfix: dashboard.js: Dashboard no longer requires dummy readingsgroup

View File

@@ -2151,7 +2151,7 @@ sub EventProcessingShadingBrightness {
my $name = $hash->{NAME}; my $name = $hash->{NAME};
$shutters->setShuttersDev($shuttersDev); $shutters->setShuttersDev($shuttersDev);
my $reading = $shutters->getBrightnessReading; my $reading = $shutters->getBrightnessReading;
my $outTemp = $ascDev->getOutTemp; my $outTemp = ( $shutters->getOutTemp != -100 ? $shutters->getOutTemp : $ascDev->getOutTemp );
Log3( $name, 4, Log3( $name, 4,
"AutoShuttersControl ($shuttersDev) - EventProcessingShadingBrightness" "AutoShuttersControl ($shuttersDev) - EventProcessingShadingBrightness"
@@ -2185,8 +2185,6 @@ sub EventProcessingShadingBrightness {
&& $shutters->getRainProtectionStatus eq 'unprotected' && $shutters->getRainProtectionStatus eq 'unprotected'
&& $shutters->getWindProtectionStatus eq 'unprotected' ) && $shutters->getWindProtectionStatus eq 'unprotected' )
{ {
$outTemp = $shutters->getOutTemp
if ( $shutters->getOutTemp != -100 );
ShadingProcessing( ShadingProcessing(
$hash, $hash,
$shuttersDev, $shuttersDev,
@@ -2224,16 +2222,16 @@ sub EventProcessingTwilightDevice {
); );
if ( $events =~ m{(azimuth|elevation|SunAz|SunAlt):\s(\d+.\d+)}xms ) { if ( $events =~ m{(azimuth|elevation|SunAz|SunAlt):\s(\d+.\d+)}xms ) {
my $name = $device; my $name = $device;
my ( $azimuth, $elevation ); my ( $azimuth, $elevation );
my $outTemp = $ascDev->getOutTemp; my $outTemp = $ascDev->getOutTemp;
$azimuth = $2 if ( $1 eq 'azimuth' || $1 eq 'SunAz' ); $azimuth = $2 if ( $1 eq 'azimuth' || $1 eq 'SunAz' );
$elevation = $2 if ( $1 eq 'elevation' || $1 eq 'SunAlt' ); $elevation = $2 if ( $1 eq 'elevation' || $1 eq 'SunAlt' );
$azimuth = $ascDev->getAzimuth $azimuth = $ascDev->getAzimuth
if ( !defined($azimuth) && !$azimuth ); if ( !defined($azimuth) && !$azimuth );
$elevation = $ascDev->getElevation $elevation = $ascDev->getElevation
if ( !defined($elevation) && !$elevation ); if ( !defined($elevation) && !$elevation );
ASC_Debug( 'EventProcessingTwilightDevice: ' ASC_Debug( 'EventProcessingTwilightDevice: '
@@ -2356,7 +2354,7 @@ sub ShadingProcessing {
if ( if (
( (
$outTemp < $shutters->getShadingMinOutsideTemperature - 3 $outTemp < $shutters->getShadingMinOutsideTemperature - 4
|| $azimuth < $azimuthLeft || $azimuth < $azimuthLeft
|| $azimuth > $azimuthRight || $azimuth > $azimuthRight
|| !$shutters->getIsDay || !$shutters->getIsDay
@@ -2381,7 +2379,7 @@ sub ShadingProcessing {
|| $elevation < $shutters->getShadingMinElevation || $elevation < $shutters->getShadingMinElevation
|| $elevation > $shutters->getShadingMaxElevation || $elevation > $shutters->getShadingMaxElevation
|| $brightness < $shutters->getShadingStateChangeCloudy || $brightness < $shutters->getShadingStateChangeCloudy
|| $outTemp < $shutters->getShadingMinOutsideTemperature ) || $outTemp < $shutters->getShadingMinOutsideTemperature - 1 )
{ {
$shutters->setShadingStatus('out reserved') $shutters->setShadingStatus('out reserved')
if ( $shutters->getShadingStatus eq 'in' if ( $shutters->getShadingStatus eq 'in'
@@ -2456,6 +2454,8 @@ sub ShadingProcessing {
if ( if (
IsAfterShuttersTimeBlocking($shuttersDev) IsAfterShuttersTimeBlocking($shuttersDev)
&& !$shutters->getShadingManualDriveStatus && !$shutters->getShadingManualDriveStatus
&& $shutters->getRoommatesStatus ne 'gotosleep'
&& $shutters->getRoommatesStatus ne 'asleep'
&& ( && (
( (
$shutters->getShadingStatus eq 'out' $shutters->getShadingStatus eq 'out'
@@ -2464,9 +2464,23 @@ sub ShadingProcessing {
|| ( $shutters->getShadingStatus eq 'in' || ( $shutters->getShadingStatus eq 'in'
&& $shutters->getShadingLastStatus eq 'out' ) && $shutters->getShadingLastStatus eq 'out' )
) )
&& $shutters->getRoommatesStatus ne 'asleep' && ( $shutters->getShadingMode eq 'always'
&& $shutters->getRoommatesStatus ne 'gotosleep' || $shutters->getShadingMode eq $homemode )
&& ( int( gettimeofday() ) - $shutters->getShadingStatusTimestamp ) < 2 && (
$shutters->getModeUp eq 'always'
|| $shutters->getModeUp eq $homemode
|| ( $shutters->getModeUp eq 'home'
&& $homemode ne 'asleep' )
|| $shutters->getModeUp eq 'off'
)
&& (
( int( gettimeofday() ) - $shutters->getShadingStatusTimestamp ) < 2
|| ( !$shutters->getQueryShuttersPos( $shutters->getShadingPos )
&& $shutters->getIfInShading
&& $shutters->getStatus != $shutters->getShadingPos )
|| ( !$shutters->getIfInShading
&& $shutters->getStatus == $shutters->getShadingPos )
)
); );
return; return;
@@ -2761,7 +2775,13 @@ sub EventProcessingExternalTriggerDevice {
$shutters->setLastDrive('external trigger device inactive'); $shutters->setLastDrive('external trigger device inactive');
$shutters->setNoDelay(1); $shutters->setNoDelay(1);
$shutters->setExternalTriggerState(1); $shutters->setExternalTriggerState(1);
ShuttersCommandSet( $hash, $shuttersDev, $triggerPosInactive ); ShuttersCommandSet( $hash, $shuttersDev,
(
$shutters->getIsDay
? $triggerPosInactive
: $shutters->getClosedPos
)
);
} }
ASC_Debug( ASC_Debug(
@@ -8419,7 +8439,7 @@ sub getBlockAscDrivesAfterManual {
], ],
"release_status": "testing", "release_status": "testing",
"license": "GPL_2", "license": "GPL_2",
"version": "v0.8.29", "version": "v0.8.30",
"author": [ "author": [
"Marko Oldenburg <leongaultier@gmail.com>" "Marko Oldenburg <leongaultier@gmail.com>"
], ],