fix privacy mode bug, add privacy condition to wind and rain unprotection drive
This commit is contained in:
		| @@ -1213,8 +1213,7 @@ sub EventProcessingResidents($@) { | |||||||
|                     $ascDev->getSelfDefense eq 'on' |                     $ascDev->getSelfDefense eq 'on' | ||||||
|                 and $shutters->getSelfDefenseExclude eq 'off' |                 and $shutters->getSelfDefenseExclude eq 'off' | ||||||
|                 or (   $getModeDown eq 'absent' |                 or (   $getModeDown eq 'absent' | ||||||
|                     or $getModeDown eq 'always' |                     or $getModeDown eq 'always' ) | ||||||
|                 ) |  | ||||||
|               ) |               ) | ||||||
|             { |             { | ||||||
|                 if ( |                 if ( | ||||||
| @@ -1234,8 +1233,9 @@ sub EventProcessingResidents($@) { | |||||||
|                     $shutters->setDriveCmd( $shutters->getClosedPos ); |                     $shutters->setDriveCmd( $shutters->getClosedPos ); | ||||||
|                 } |                 } | ||||||
|                 elsif ( |                 elsif ( | ||||||
|                     (   $getModeDown eq 'absent' |                     ( | ||||||
|                      or $getModeDown eq 'always' |                            $getModeDown eq 'absent' | ||||||
|  |                         or $getModeDown eq 'always' | ||||||
|                     ) |                     ) | ||||||
|                     and not IsDay($shuttersDev) |                     and not IsDay($shuttersDev) | ||||||
|                     and IsAfterShuttersTimeBlocking($shuttersDev) |                     and IsAfterShuttersTimeBlocking($shuttersDev) | ||||||
| @@ -1350,7 +1350,7 @@ sub EventProcessingResidents($@) { | |||||||
|                     $shutters->setLastDrive('selfDefense inactive'); |                     $shutters->setLastDrive('selfDefense inactive'); | ||||||
|                     $shutters->setDriveCmd( |                     $shutters->setDriveCmd( | ||||||
|                         ( |                         ( | ||||||
|                               $shutters->getPrivacyDownStatus |                               $shutters->getPrivacyDownStatus == 2 | ||||||
|                             ? $shutters->getPrivacyDownPos |                             ? $shutters->getPrivacyDownPos | ||||||
|                             : $shutters->getOpenPos |                             : $shutters->getOpenPos | ||||||
|                         ) |                         ) | ||||||
| @@ -1415,7 +1415,14 @@ sub EventProcessingRain($@) { | |||||||
|                 and $shutters->getRainProtectionStatus eq 'protected' ) |                 and $shutters->getRainProtectionStatus eq 'protected' ) | ||||||
|             { |             { | ||||||
|                 $shutters->setLastDrive('rain un-protected'); |                 $shutters->setLastDrive('rain un-protected'); | ||||||
|                 $shutters->setDriveCmd( $shutters->getLastPos ); |                 $shutters->setDriveCmd( | ||||||
|  |                     ( | ||||||
|  |                         IsDay($shuttersDev) ? $shutters->getLastPos | ||||||
|  |                         : (   $shutters->getPrivacyDownStatus == 2 | ||||||
|  |                             ? $shutters->getPrivacyDownPos | ||||||
|  |                             : $shutters->getClosedPos ) | ||||||
|  |                     ) | ||||||
|  |                 ); | ||||||
|                 $shutters->setRainProtectionStatus('unprotected'); |                 $shutters->setRainProtectionStatus('unprotected'); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
| @@ -1463,7 +1470,14 @@ sub EventProcessingWind($@) { | |||||||
|                 and $shutters->getWindProtectionStatus eq 'protected' ) |                 and $shutters->getWindProtectionStatus eq 'protected' ) | ||||||
|             { |             { | ||||||
|                 $shutters->setLastDrive('wind un-protected'); |                 $shutters->setLastDrive('wind un-protected'); | ||||||
|                 $shutters->setDriveCmd( $shutters->getLastPos ); |                 $shutters->setDriveCmd( | ||||||
|  |                     ( | ||||||
|  |                         IsDay($shuttersDev) ? $shutters->getLastPos | ||||||
|  |                         : (   $shutters->getPrivacyDownStatus == 2 | ||||||
|  |                             ? $shutters->getPrivacyDownPos | ||||||
|  |                             : $shutters->getClosedPos ) | ||||||
|  |                     ) | ||||||
|  |                 ); | ||||||
|                 $shutters->setWindProtectionStatus('unprotected'); |                 $shutters->setWindProtectionStatus('unprotected'); | ||||||
|             } |             } | ||||||
|  |  | ||||||
| @@ -2375,14 +2389,15 @@ sub CreateSunRiseSetShuttersTimer($$) { | |||||||
|     my %funcHash = ( |     my %funcHash = ( | ||||||
|         hash           => $hash, |         hash           => $hash, | ||||||
|         shuttersdevice => $shuttersDev, |         shuttersdevice => $shuttersDev, | ||||||
|  |         sunsettime     => $shuttersSunsetUnixtime, | ||||||
|         #         privacyMode    => 0, |         sunrisetime    => $shuttersSunriseUnixtime | ||||||
|         sunsettime  => $shuttersSunsetUnixtime, |  | ||||||
|         sunrisetime => $shuttersSunriseUnixtime |  | ||||||
|     ); |     ); | ||||||
|  |  | ||||||
|     ## Setzt den PrivacyDown Modus für die Sichtschutzfahrt auf den Status 0 |     ## Setzt den PrivacyDown Modus für die Sichtschutzfahrt auf den Status 0 | ||||||
|     $shutters->setPrivacyDownStatus(0); |     ##  1 bedeutet das PrivacyDown Timer aktiviert wurde, 2 beudet das er im privacyDown ist | ||||||
|  |     ##  also das Rollo in privacyDown Position steht und VOR der endgültigen Nachfahrt | ||||||
|  |     $shutters->setPrivacyDownStatus(0) | ||||||
|  |       if ( not defined( $shutters->setPrivacyDownStatus ) ); | ||||||
|  |  | ||||||
|     ## Ich brauche beim löschen des InternalTimer den Hash welchen ich mitgegeben habe,dieser muss gesichert werden |     ## Ich brauche beim löschen des InternalTimer den Hash welchen ich mitgegeben habe,dieser muss gesichert werden | ||||||
|     $shutters->setInTimerFuncHash( \%funcHash ); |     $shutters->setInTimerFuncHash( \%funcHash ); | ||||||
| @@ -2403,10 +2418,8 @@ sub CreateSunRiseSetShuttersTimer($$) { | |||||||
|                 ), |                 ), | ||||||
|                 0 |                 0 | ||||||
|             ); |             ); | ||||||
|  |  | ||||||
|             #             $funcHash{privacyMode} = 1; |  | ||||||
|             ## Setzt den PrivacyDown Modus für die Sichtschutzfahrt auf den Status 1 |             ## Setzt den PrivacyDown Modus für die Sichtschutzfahrt auf den Status 1 | ||||||
|             $shutters->setPrivacyDownStatus(0); |             $shutters->setPrivacyDownStatus(1); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
| @@ -2520,14 +2533,18 @@ sub SunSetShuttersAfterTimerFn($) { | |||||||
|       ) |       ) | ||||||
|     { |     { | ||||||
|  |  | ||||||
|         if ( $funcHash->{privacyMode} == 1 ) { |         if ( $shutters->getPrivacyDownStatus == 1 ) { | ||||||
|             $shutters->setPrivacyDownStatus(1); |             $shutters->setPrivacyDownStatus(2); | ||||||
|             $shutters->setLastDrive('privacy position'); |             $shutters->setLastDrive('privacy position'); | ||||||
|             ShuttersCommandSet( $hash, $shuttersDev, |             ShuttersCommandSet( | ||||||
|                 PositionValueWindowRec( $shuttersDev, $shutters->getClosedPos ) |                 $hash, | ||||||
|  |                 $shuttersDev, | ||||||
|  |                 PositionValueWindowRec( | ||||||
|  |                     $shuttersDev, $shutters->getPrivacyDownPos | ||||||
|  |                 ) | ||||||
|             ); |             ); | ||||||
|         } |         } | ||||||
|         elsif ( $funcHash->{privacyMode} == 0 ) { |         else { | ||||||
|             $shutters->setPrivacyDownStatus(0); |             $shutters->setPrivacyDownStatus(0); | ||||||
|             $shutters->setLastDrive('night close'); |             $shutters->setLastDrive('night close'); | ||||||
|             ShuttersCommandSet( $hash, $shuttersDev, |             ShuttersCommandSet( $hash, $shuttersDev, | ||||||
| @@ -2695,7 +2712,8 @@ sub GetShuttersInformation($) { | |||||||
|         $ret .= "<td> </td>"; |         $ret .= "<td> </td>"; | ||||||
|         $ret .= "<td>" . $shutters->getLockOut . "</td>"; |         $ret .= "<td>" . $shutters->getLockOut . "</td>"; | ||||||
|         $ret .= "<td> </td>"; |         $ret .= "<td> </td>"; | ||||||
|         $ret .= "<td>" . ReadingsVal( $shutter, 'ASC_ShuttersLastDrive', 'none' ) . "</td>"; |         $ret .= "<td>" | ||||||
|  |           . ReadingsVal( $shutter, 'ASC_ShuttersLastDrive', 'none' ) . "</td>"; | ||||||
|         $ret .= "<td> </td>"; |         $ret .= "<td> </td>"; | ||||||
|         $ret .= "<td>" . $shutters->getStatus . "</td>"; |         $ret .= "<td>" . $shutters->getStatus . "</td>"; | ||||||
|         $ret .= "<td> </td>"; |         $ret .= "<td> </td>"; | ||||||
| @@ -6368,7 +6386,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.18", |   "x_developmentversion": "v0.6.19.19", | ||||||
|   "author": [ |   "author": [ | ||||||
|     "Marko Oldenburg <leongaultier@gmail.com>" |     "Marko Oldenburg <leongaultier@gmail.com>" | ||||||
|   ], |   ], | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user