change Attribut ASC_PrivacyDownTime_beforNightClose to ASC_PrivacyDownValue_beforNightClose, fix shutters drive in the morning if residents state absent
This commit is contained in:
		| @@ -208,7 +208,7 @@ my %userAttrList = ( | ||||
|     'ASC_Time_Up_WE_Holiday'                     => '-', | ||||
|     'ASC_Time_Down_Early'                        => '-', | ||||
|     'ASC_Time_Down_Late'                         => '-', | ||||
|     'ASC_PrivacyDownTime_beforNightClose'        => '-', | ||||
|     'ASC_PrivacyDownValue_beforNightClose'       => '-', | ||||
|     'ASC_PrivacyDown_Pos'                        => '-', | ||||
|     'ASC_TempSensor'                             => '-', | ||||
|     'ASC_Ventilate_Window_Open:on,off'           => '-', | ||||
| @@ -1500,6 +1500,9 @@ sub EventProcessingResidents($@) { | ||||
| } | ||||
|  | ||||
| sub EventProcessingRain($@) { | ||||
|  | ||||
|     #### Ist noch nicht fertig, es fehlt noch das verzögerte Prüfen auf erhalten bleiben des getriggerten Wertes. | ||||
|  | ||||
|     my ( $hash, $device, $events ) = @_; | ||||
|     my $name    = $device; | ||||
|     my $reading = $ascDev->getRainSensorReading; | ||||
| @@ -1706,6 +1709,8 @@ sub EventProcessingBrightness($@) { | ||||
|             $brightnessMaxVal = $ascDev->getBrightnessMaxVal; | ||||
|         } | ||||
|  | ||||
|         my $brightnessPrivacyVal = $shutters->getPrivacyDownTime; | ||||
|  | ||||
|         ASC_Debug( 'EventProcessingBrightness: ' | ||||
|               . $shutters->getShuttersDev | ||||
|               . ' - Es wird geprüft ob Sunset oder Sunrise gefahren werden soll und der aktuelle übergebene Brightness-Wert: ' | ||||
| @@ -1822,7 +1827,8 @@ sub EventProcessingBrightness($@) { | ||||
|             and int( gettimeofday() / 86400 ) == int( | ||||
|                 computeAlignTime( '24:00', $shutters->getTimeDownLate ) / 86400 | ||||
|             ) | ||||
|             and $1 < $brightnessMinVal | ||||
|             and (  $1 < $brightnessMinVal | ||||
|                 or $1 < $brightnessPrivacyVal ) | ||||
|             and $shutters->getDown eq 'brightness' | ||||
|             and not $shutters->getSunset | ||||
|             and IsAfterShuttersManualBlocking($shuttersDev) | ||||
| @@ -1850,7 +1856,31 @@ sub EventProcessingBrightness($@) { | ||||
|               ) | ||||
|             { | ||||
|                 my $posValue; | ||||
|                 if (    CheckIfShuttersWindowRecOpen($shuttersDev) == 2 | ||||
|  | ||||
|                 ## Setzt den PrivacyDown Modus für die Sichtschutzfahrt auf den Status 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->getPrivacyDownStatus ) ); | ||||
|  | ||||
|                 if (    $1 > $brightnessMinVal | ||||
|                     and $1 < $brightnessPrivacyVal ) | ||||
|                 { | ||||
|                     $shutters->setLastDrive('privacy position'); | ||||
|                     ShuttersCommandSet( $hash, $shuttersDev, | ||||
|                         $shutters->getPrivacyDownPos ) | ||||
|                       unless ( | ||||
|                         $shutters->getQueryShuttersPos( | ||||
|                             $shutters->getPrivacyDownPos | ||||
|                         ) | ||||
|                       ); | ||||
|  | ||||
|                     ASC_Debug( 'EventProcessingBrightness: ' | ||||
|                           . $shutters->getShuttersDev | ||||
|                           . ' - Verarbeitung für Sunset Privacy Down. Roommatestatus korrekt zum fahren. Fahrbefehl wird an die Funktion FnShuttersCommandSet gesendet. Grund des fahrens: ' | ||||
|                           . $shutters->getLastDrive ); | ||||
|                 } | ||||
|                 elsif ( CheckIfShuttersWindowRecOpen($shuttersDev) == 2 | ||||
|                     and $shutters->getSubTyp eq 'threestate' | ||||
|                     and $ascDev->getAutoShuttersControlComfort eq 'on' ) | ||||
|                 { | ||||
| @@ -2582,7 +2612,9 @@ sub CreateSunRiseSetShuttersTimer($$) { | ||||
|     $shutters->setInTimerFuncHash( \%funcHash ); | ||||
|  | ||||
|     ## Abfrage für die Sichtschutzfahrt am Abend vor dem eigentlichen kompletten schließen | ||||
|     if ( $shutters->getPrivacyDownTime > 0 ) { | ||||
|     if (    $shutters->getPrivacyDownTime > 0 | ||||
|         and $shutters->getDown ne 'brightness' ) | ||||
|     { | ||||
|         if ( ( $shuttersSunsetUnixtime - $shutters->getPrivacyDownTime ) > | ||||
|             ( gettimeofday() + 1 ) ) | ||||
|         { | ||||
| @@ -2689,6 +2721,12 @@ sub RenewSunRiseSetShuttersTimer($) { | ||||
|         delFromDevAttrList( $_, 'ASC_Shading_Direction' ); | ||||
|         delFromDevAttrList( $_, 'ASC_Shading_Angle_Left' ); | ||||
|         delFromDevAttrList( $_, 'ASC_Shading_Angle_Right' ); | ||||
|  | ||||
|         $attr{$_}{ASC_PrivacyDownValue_beforNightClose} = | ||||
|             AttrVal( $_, 'ASC_PrivacyDownTime_beforNightClose', 'none' ) | ||||
|           if ( AttrVal( $_, 'ASC_PrivacyDownTime_beforNightClose', 'none' ) ne | ||||
|             'none' ); | ||||
|         delFromDevAttrList( $_, 'ASC_PrivacyDownTime_beforNightClose' ); | ||||
|     } | ||||
| } | ||||
|  | ||||
| @@ -2778,8 +2816,8 @@ sub SunSetShuttersAfterTimerFn($) { | ||||
|                 and $ascDev->getResidentsStatus ne 'gone' ) | ||||
|         ) | ||||
|         and ( | ||||
|                $shutters->getDown ne 'brightness' | ||||
|             or (    $shutters->getDown eq 'brightness' | ||||
|             $shutters->getDown ne 'brightness' | ||||
|             or ( $shutters->getDown eq 'brightness' | ||||
|                 and not $shutters->getSunset ) | ||||
|         ) | ||||
|       ) | ||||
| @@ -2844,8 +2882,8 @@ sub SunRiseShuttersAfterTimerFn($) { | ||||
|                 and $ascDev->getResidentsStatus ne 'gone' ) | ||||
|         ) | ||||
|         and ( | ||||
|                $shutters->getUp ne 'brightness' | ||||
|             or (    $shutters->getUp eq 'brightness' | ||||
|             $shutters->getUp ne 'brightness' | ||||
|             or ( $shutters->getUp eq 'brightness' | ||||
|                 and not $shutters->getSunrise ) | ||||
|         ) | ||||
|       ) | ||||
| @@ -4657,7 +4695,7 @@ sub getPrivacyDownTime { | ||||
|     my $self = shift; | ||||
|  | ||||
|     return AttrVal( $self->{shuttersDev}, | ||||
|         'ASC_PrivacyDownTime_beforNightClose', -1 ); | ||||
|         'ASC_PrivacyDownValue_beforNightClose', -1 ); | ||||
| } | ||||
|  | ||||
| sub getPrivacyDownPos { | ||||
| @@ -6480,8 +6518,8 @@ sub getblockAscDrivesAfterManual { | ||||
|             <li><strong>ASC_Pos_Reading</strong> - Points to the reading name, which contains the current | ||||
|                 position for the shutter in percent. Will be used for <em>set</em> at devices of unknown kind. | ||||
|             </li> | ||||
|             <li><strong>ASC_PrivacyDownTime_beforNightClose</strong> - How many seconds is the privacy mode activated | ||||
|                 before the shutter is closed in the evening. A value of <em>-1</em> disables this. -1 is the default | ||||
|             <li><strong>ASC_PrivacyDownValue_beforNightClose</strong> - How many seconds is the privacy mode activated | ||||
|                 before the shutter is closed in the evening, or then brightness use brightness value. A value of <em>-1</em> disables this. -1 is the default | ||||
|                 value. | ||||
|             </li> | ||||
|             <li><strong>ASC_PrivacyDown_Pos</strong> - | ||||
| @@ -6932,7 +6970,7 @@ sub getblockAscDrivesAfterManual { | ||||
|             <li><strong>ASC_Mode_Up - always/home/absent/off</strong> - Wann darf die Automatik steuern. immer, niemals, bei Abwesenheit des Roommate (ist kein Roommate und absent eingestellt, wird gar nicht gesteuert) (default: always)</li> | ||||
|             <li><strong>ASC_Partymode -  on/off</strong> - schaltet den Partymodus an oder aus. Wird am ASC Device set ASC-DEVICE partyMode on geschalten, werden alle Fahrbefehle an den Rollläden, welche das Attribut auf on haben, zwischengespeichert und später erst ausgeführt (default: off)</li> | ||||
|             <li><strong>ASC_Pos_Reading</strong> - Name des Readings, welches die Position des Rollladen in Prozent an gibt; wird bei unbekannten Device Typen auch als set Befehl zum fahren verwendet</li> | ||||
|             <li><strong>ASC_PrivacyDownTime_beforNightClose</strong> - wie viele Sekunden vor dem abendlichen schließen soll der Rollladen in die Sichtschutzposition fahren, -1 bedeutet das diese Funktion unbeachtet bleiben soll (default: -1)</li> | ||||
|             <li><strong>ASC_PrivacyDownValue_beforNightClose</strong> - wie viele Sekunden vor dem abendlichen schließen soll der Rollladen in die Sichtschutzposition fahren, oder bei Brightness ab welchem minimum Brightnesswert soll das Rollo in die Privacy Position fahren, -1 bedeutet das diese Funktion unbeachtet bleiben soll (default: -1)</li> | ||||
|             <li><strong>ASC_PrivacyDown_Pos</strong> - Position den Rollladens für den Sichtschutz (default: 50) !!!Verwendung von Perlcode ist möglich, dieser muss in {} eingeschlossen sein. Rückgabewert muss eine positive Zahl/Dezimalzahl sein!!!</li> | ||||
|             <li><strong>ASC_WindProtection - on/off</strong> - soll der Rollladen beim Regenschutz beachtet werden. on=JA, off=NEIN.</li> | ||||
|             <li><strong>ASC_Roommate_Device</strong> - mit Komma getrennte Namen des/der Roommate Device/s, welche den/die Bewohner des Raumes vom Rollladen wiedergibt. Es macht nur Sinn in Schlaf- oder Kinderzimmern (default: none)</li> | ||||
| @@ -7051,7 +7089,7 @@ sub getblockAscDrivesAfterManual { | ||||
|   ], | ||||
|   "release_status": "under develop", | ||||
|   "license": "GPL_2", | ||||
|   "version": "v0.6.114", | ||||
|   "version": "v0.6.120", | ||||
|   "author": [ | ||||
|     "Marko Oldenburg <leongaultier@gmail.com>" | ||||
|   ], | ||||
|   | ||||
		Reference in New Issue
	
	Block a user