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:
@@ -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
|
||||||
|
|||||||
@@ -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>"
|
||||||
],
|
],
|
||||||
|
|||||||
Reference in New Issue
Block a user