change code
This commit is contained in:
parent
f91b97b162
commit
1e7c01739a
@ -837,7 +837,7 @@ sub EventProcessingWindowRec($@) {
|
|||||||
|
|
||||||
if (
|
if (
|
||||||
$1 eq 'closed'
|
$1 eq 'closed'
|
||||||
and IsAfterShuttersTimeBlocking( $hash, $shuttersDev )
|
and IsAfterShuttersTimeBlocking($shuttersDev)
|
||||||
and ( $shutters->getStatus == $shutters->getVentilatePos
|
and ( $shutters->getStatus == $shutters->getVentilatePos
|
||||||
or $shutters->getStatus == $shutters->getComfortOpenPos
|
or $shutters->getStatus == $shutters->getComfortOpenPos
|
||||||
or $shutters->getStatus == $shutters->getOpenPos )
|
or $shutters->getStatus == $shutters->getOpenPos )
|
||||||
@ -848,7 +848,7 @@ sub EventProcessingWindowRec($@) {
|
|||||||
if ( $homemode eq 'none' );
|
if ( $homemode eq 'none' );
|
||||||
|
|
||||||
if (
|
if (
|
||||||
IsDay( $hash, $shuttersDev )
|
IsDay($shuttersDev)
|
||||||
and $shutters->getStatus != $shutters->getOpenPos
|
and $shutters->getStatus != $shutters->getOpenPos
|
||||||
and ( $homemode ne 'asleep'
|
and ( $homemode ne 'asleep'
|
||||||
or $homemode ne 'gotosleep'
|
or $homemode ne 'gotosleep'
|
||||||
@ -860,7 +860,7 @@ sub EventProcessingWindowRec($@) {
|
|||||||
$shutters->setDriveCmd( $shutters->getLastPos );
|
$shutters->setDriveCmd( $shutters->getLastPos );
|
||||||
}
|
}
|
||||||
|
|
||||||
elsif (not IsDay( $hash, $shuttersDev )
|
elsif (not IsDay($shuttersDev)
|
||||||
or $homemode eq 'asleep'
|
or $homemode eq 'asleep'
|
||||||
or $homemode eq 'gotosleep' )
|
or $homemode eq 'gotosleep' )
|
||||||
{
|
{
|
||||||
@ -950,8 +950,8 @@ sub EventProcessingRoommate($@) {
|
|||||||
$getRoommatesLastStatus eq 'asleep'
|
$getRoommatesLastStatus eq 'asleep'
|
||||||
or $getRoommatesLastStatus eq 'awoken'
|
or $getRoommatesLastStatus eq 'awoken'
|
||||||
)
|
)
|
||||||
and IsDay( $hash, $shuttersDev )
|
and IsDay($shuttersDev)
|
||||||
and IsAfterShuttersTimeBlocking( $hash, $shuttersDev )
|
and IsAfterShuttersTimeBlocking($shuttersDev)
|
||||||
and ( $getModeUp eq 'home'
|
and ( $getModeUp eq 'home'
|
||||||
or $getModeUp eq 'always' )
|
or $getModeUp eq 'always' )
|
||||||
)
|
)
|
||||||
@ -974,8 +974,8 @@ sub EventProcessingRoommate($@) {
|
|||||||
)
|
)
|
||||||
{
|
{
|
||||||
if (
|
if (
|
||||||
not IsDay( $hash, $shuttersDev )
|
not IsDay($shuttersDev)
|
||||||
and IsAfterShuttersTimeBlocking( $hash, $shuttersDev )
|
and IsAfterShuttersTimeBlocking($shuttersDev)
|
||||||
and ( $getModeDown eq 'home'
|
and ( $getModeDown eq 'home'
|
||||||
or $getModeDown eq 'always' )
|
or $getModeDown eq 'always' )
|
||||||
)
|
)
|
||||||
@ -997,9 +997,9 @@ sub EventProcessingRoommate($@) {
|
|||||||
ShuttersCommandSet( $hash, $shuttersDev, $position );
|
ShuttersCommandSet( $hash, $shuttersDev, $position );
|
||||||
}
|
}
|
||||||
elsif (
|
elsif (
|
||||||
IsDay( $hash, $shuttersDev )
|
IsDay($shuttersDev)
|
||||||
and $shutters->getStatus == $shutters->getClosedPos
|
and $shutters->getStatus == $shutters->getClosedPos
|
||||||
and IsAfterShuttersTimeBlocking( $hash, $shuttersDev )
|
and IsAfterShuttersTimeBlocking($shuttersDev)
|
||||||
and ( $getModeUp eq 'home'
|
and ( $getModeUp eq 'home'
|
||||||
or $getModeUp eq 'always' )
|
or $getModeUp eq 'always' )
|
||||||
and not $shutters->getIfInShading
|
and not $shutters->getIfInShading
|
||||||
@ -1039,7 +1039,7 @@ sub EventProcessingRoommate($@) {
|
|||||||
}
|
}
|
||||||
elsif ( $getModeDown eq 'absent'
|
elsif ( $getModeDown eq 'absent'
|
||||||
and $1 eq 'absent'
|
and $1 eq 'absent'
|
||||||
and not IsDay( $hash, $shuttersDev ) )
|
and not IsDay($shuttersDev) )
|
||||||
{
|
{
|
||||||
$shutters->setLastDrive('roommate absent');
|
$shutters->setLastDrive('roommate absent');
|
||||||
ShuttersCommandSet( $hash, $shuttersDev, $shutters->getClosedPos );
|
ShuttersCommandSet( $hash, $shuttersDev, $shutters->getClosedPos );
|
||||||
@ -1069,8 +1069,8 @@ sub EventProcessingResidents($@) {
|
|||||||
$getModeDown eq 'absent'
|
$getModeDown eq 'absent'
|
||||||
or $getModeDown eq 'always'
|
or $getModeDown eq 'always'
|
||||||
)
|
)
|
||||||
and not IsDay( $hash, $shuttersDev )
|
and not IsDay($shuttersDev)
|
||||||
and IsAfterShuttersTimeBlocking( $hash, $shuttersDev )
|
and IsAfterShuttersTimeBlocking($shuttersDev)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
@ -1115,13 +1115,13 @@ sub EventProcessingResidents($@) {
|
|||||||
|
|
||||||
if (
|
if (
|
||||||
$shutters->getStatus != $shutters->getClosedPos
|
$shutters->getStatus != $shutters->getClosedPos
|
||||||
and not IsDay( $hash, $shuttersDev )
|
and not IsDay($shuttersDev)
|
||||||
and $shutters->getRoommatesStatus eq 'none'
|
and $shutters->getRoommatesStatus eq 'none'
|
||||||
and ( $getModeDown eq 'home'
|
and ( $getModeDown eq 'home'
|
||||||
or $getModeDown eq 'always' )
|
or $getModeDown eq 'always' )
|
||||||
and ( $getResidentsLastStatus ne 'asleep'
|
and ( $getResidentsLastStatus ne 'asleep'
|
||||||
or $getResidentsLastStatus ne 'awoken' )
|
or $getResidentsLastStatus ne 'awoken' )
|
||||||
and IsAfterShuttersTimeBlocking( $hash, $shuttersDev )
|
and IsAfterShuttersTimeBlocking($shuttersDev)
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
$shutters->setLastDrive('residents home');
|
$shutters->setLastDrive('residents home');
|
||||||
@ -1146,11 +1146,11 @@ sub EventProcessingResidents($@) {
|
|||||||
}
|
}
|
||||||
elsif (
|
elsif (
|
||||||
$shutters->getStatus == $shutters->getClosedPos
|
$shutters->getStatus == $shutters->getClosedPos
|
||||||
and IsDay( $hash, $shuttersDev )
|
and IsDay($shuttersDev)
|
||||||
and $shutters->getRoommatesStatus eq 'none'
|
and $shutters->getRoommatesStatus eq 'none'
|
||||||
and ( $getModeUp eq 'home'
|
and ( $getModeUp eq 'home'
|
||||||
or $getModeUp eq 'always' )
|
or $getModeUp eq 'always' )
|
||||||
and IsAfterShuttersTimeBlocking( $hash, $shuttersDev )
|
and IsAfterShuttersTimeBlocking($shuttersDev)
|
||||||
and not $shutters->getIfInShading
|
and not $shutters->getIfInShading
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
@ -1497,7 +1497,7 @@ sub EventProcessingShadingBrightness($@) {
|
|||||||
$shutters->getShadingMode eq 'always'
|
$shutters->getShadingMode eq 'always'
|
||||||
or $shutters->getShadingMode eq $homemode
|
or $shutters->getShadingMode eq $homemode
|
||||||
)
|
)
|
||||||
and IsDay( $hash, $shuttersDev )
|
and IsDay($shuttersDev)
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
ShadingProcessing(
|
ShadingProcessing(
|
||||||
@ -1564,7 +1564,7 @@ sub EventProcessingTwilightDevice($@) {
|
|||||||
$shutters->getShadingMode eq 'always'
|
$shutters->getShadingMode eq 'always'
|
||||||
or $shutters->getShadingMode eq $homemode
|
or $shutters->getShadingMode eq $homemode
|
||||||
)
|
)
|
||||||
and IsDay( $hash, $shuttersDev )
|
and IsDay($shuttersDev)
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
ShadingProcessing(
|
ShadingProcessing(
|
||||||
@ -1586,7 +1586,7 @@ sub EventProcessingTwilightDevice($@) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$shutters->setShadingStatus('out')
|
$shutters->setShadingStatus('out')
|
||||||
if ( not IsDay( $hash, $shuttersDev )
|
if ( not IsDay($shuttersDev)
|
||||||
and $shutters->getShadingStatus ne 'out' );
|
and $shutters->getShadingStatus ne 'out' );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1621,9 +1621,7 @@ sub ShadingProcessing($@) {
|
|||||||
. ', Winkel Rechts: '
|
. ', Winkel Rechts: '
|
||||||
. $anglePlus
|
. $anglePlus
|
||||||
. ', Ist es nach der Zeitblockadezeit: '
|
. ', Ist es nach der Zeitblockadezeit: '
|
||||||
. (
|
. ( IsAfterShuttersTimeBlocking($shuttersDev) ? 'JA' : 'NEIN' )
|
||||||
IsAfterShuttersTimeBlocking( $hash, $shuttersDev ) ? 'JA' : 'NEIN'
|
|
||||||
)
|
|
||||||
. ', Ist es nach der manuellen Blockadezeit: '
|
. ', Ist es nach der manuellen Blockadezeit: '
|
||||||
. ( IsAfterShuttersManualBlocking($shuttersDev) ? 'JA' : 'NEIN' )
|
. ( IsAfterShuttersManualBlocking($shuttersDev) ? 'JA' : 'NEIN' )
|
||||||
. ', Ist es nach der Hälfte der Beschattungswartezeit: '
|
. ', Ist es nach der Hälfte der Beschattungswartezeit: '
|
||||||
@ -1634,7 +1632,7 @@ sub ShadingProcessing($@) {
|
|||||||
);
|
);
|
||||||
|
|
||||||
$shutters->setShadingStatus('out')
|
$shutters->setShadingStatus('out')
|
||||||
if ( not IsDay( $hash, $shuttersDev )
|
if ( not IsDay($shuttersDev)
|
||||||
and $shutters->getShadingStatus ne 'out' );
|
and $shutters->getShadingStatus ne 'out' );
|
||||||
|
|
||||||
Log3( $name, 4,
|
Log3( $name, 4,
|
||||||
@ -1656,7 +1654,7 @@ sub ShadingProcessing($@) {
|
|||||||
or $outTemp == -100
|
or $outTemp == -100
|
||||||
or ( int( gettimeofday() ) - $shutters->getShadingStatusTimestamp ) <
|
or ( int( gettimeofday() ) - $shutters->getShadingStatusTimestamp ) <
|
||||||
( $shutters->getShadingWaitingPeriod / 2 )
|
( $shutters->getShadingWaitingPeriod / 2 )
|
||||||
or not IsAfterShuttersTimeBlocking( $hash, $shuttersDev )
|
or not IsAfterShuttersTimeBlocking($shuttersDev)
|
||||||
or not IsAfterShuttersManualBlocking($shuttersDev) );
|
or not IsAfterShuttersManualBlocking($shuttersDev) );
|
||||||
|
|
||||||
Log3( $name, 4,
|
Log3( $name, 4,
|
||||||
@ -1676,7 +1674,7 @@ sub ShadingProcessing($@) {
|
|||||||
if (
|
if (
|
||||||
(
|
(
|
||||||
$outTemp < $shutters->getShadingMinOutsideTemperature - 3
|
$outTemp < $shutters->getShadingMinOutsideTemperature - 3
|
||||||
or not IsDay( $hash, $shuttersDev )
|
or not IsDay($shuttersDev)
|
||||||
)
|
)
|
||||||
and $shutters->getShadingStatus ne 'out'
|
and $shutters->getShadingStatus ne 'out'
|
||||||
and $getStatus != $getShadingPos
|
and $getStatus != $getShadingPos
|
||||||
@ -1836,7 +1834,7 @@ sub EventProcessingPartyMode($) {
|
|||||||
|
|
||||||
foreach my $shuttersDev ( @{ $hash->{helper}{shuttersList} } ) {
|
foreach my $shuttersDev ( @{ $hash->{helper}{shuttersList} } ) {
|
||||||
$shutters->setShuttersDev($shuttersDev);
|
$shutters->setShuttersDev($shuttersDev);
|
||||||
if ( not IsDay( $hash, $shuttersDev )
|
if ( not IsDay($shuttersDev)
|
||||||
and $shutters->getModeDown ne 'off'
|
and $shutters->getModeDown ne 'off'
|
||||||
and IsAfterShuttersManualBlocking($shuttersDev) )
|
and IsAfterShuttersManualBlocking($shuttersDev) )
|
||||||
{
|
{
|
||||||
@ -1867,7 +1865,7 @@ sub EventProcessingPartyMode($) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elsif ( IsDay( $hash, $shuttersDev )
|
elsif ( IsDay($shuttersDev)
|
||||||
and IsAfterShuttersManualBlocking($shuttersDev) )
|
and IsAfterShuttersManualBlocking($shuttersDev) )
|
||||||
{
|
{
|
||||||
$shutters->setLastDrive('drive after party mode');
|
$shutters->setLastDrive('drive after party mode');
|
||||||
@ -1970,10 +1968,8 @@ sub CreateSunRiseSetShuttersTimer($$) {
|
|||||||
|
|
||||||
return if ( IsDisabled($name) );
|
return if ( IsDisabled($name) );
|
||||||
|
|
||||||
my $shuttersSunriseUnixtime =
|
my $shuttersSunriseUnixtime = ShuttersSunrise( $shuttersDev, 'unix' ) + 1;
|
||||||
ShuttersSunrise( $hash, $shuttersDev, 'unix' ) + 1;
|
my $shuttersSunsetUnixtime = ShuttersSunset( $shuttersDev, 'unix' ) + 1;
|
||||||
my $shuttersSunsetUnixtime =
|
|
||||||
ShuttersSunset( $hash, $shuttersDev, 'unix' ) + 1;
|
|
||||||
|
|
||||||
$shutters->setSunriseUnixTime($shuttersSunriseUnixtime);
|
$shutters->setSunriseUnixTime($shuttersSunriseUnixtime);
|
||||||
$shutters->setSunsetUnixTime($shuttersSunsetUnixtime);
|
$shutters->setSunsetUnixTime($shuttersSunsetUnixtime);
|
||||||
@ -2477,17 +2473,14 @@ sub ExtractNotifyDevFromEvent($$$) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
## Ist Tag oder Nacht für den entsprechende Rolladen
|
## Ist Tag oder Nacht für den entsprechende Rolladen
|
||||||
sub IsDay($$) {
|
sub IsDay($) {
|
||||||
my ( $hash, $shuttersDev ) = @_;
|
my ($shuttersDev) = @_;
|
||||||
$shutters->setShuttersDev($shuttersDev);
|
$shutters->setShuttersDev($shuttersDev);
|
||||||
|
|
||||||
my $name = $hash->{NAME};
|
my $isday = ( ShuttersSunrise( $shuttersDev, 'unix' ) >
|
||||||
my $isday = ( ShuttersSunrise( $hash, $shuttersDev, 'unix' ) >
|
ShuttersSunset( $shuttersDev, 'unix' ) ? 1 : 0 );
|
||||||
ShuttersSunset( $hash, $shuttersDev, 'unix' ) ? 1 : 0 );
|
|
||||||
my $respIsDay = $isday;
|
my $respIsDay = $isday;
|
||||||
|
|
||||||
printf 'IsDay ist: ' . $respIsDay . "\n";
|
|
||||||
|
|
||||||
$respIsDay = (
|
$respIsDay = (
|
||||||
(
|
(
|
||||||
(
|
(
|
||||||
@ -2498,8 +2491,6 @@ sub IsDay($$) {
|
|||||||
) ? 0 : 1
|
) ? 0 : 1
|
||||||
) if ( $shutters->getDown eq 'brightness' );
|
) if ( $shutters->getDown eq 'brightness' );
|
||||||
|
|
||||||
printf 'IsDay Sunset ist: ' . $respIsDay . "\n";
|
|
||||||
|
|
||||||
$respIsDay = (
|
$respIsDay = (
|
||||||
(
|
(
|
||||||
(
|
(
|
||||||
@ -2511,15 +2502,12 @@ sub IsDay($$) {
|
|||||||
) ? 1 : 0
|
) ? 1 : 0
|
||||||
) if ( $shutters->getUp eq 'brightness' );
|
) if ( $shutters->getUp eq 'brightness' );
|
||||||
|
|
||||||
printf 'IsDay Sunrise ist: ' . $respIsDay . "\n";
|
|
||||||
|
|
||||||
return $respIsDay;
|
return $respIsDay;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub ShuttersSunrise($$$) {
|
sub ShuttersSunrise($$) {
|
||||||
my ( $hash, $shuttersDev, $tm ) =
|
my ( $shuttersDev, $tm ) =
|
||||||
@_; # Tm steht für Timemode und bedeutet Realzeit oder Unixzeit
|
@_; # Tm steht für Timemode und bedeutet Realzeit oder Unixzeit
|
||||||
my $name = $hash->{NAME};
|
|
||||||
my $autoAstroMode;
|
my $autoAstroMode;
|
||||||
$shutters->setShuttersDev($shuttersDev);
|
$shutters->setShuttersDev($shuttersDev);
|
||||||
|
|
||||||
@ -2824,17 +2812,17 @@ sub ShuttersSunrise($$$) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sub IsAfterShuttersTimeBlocking($$) {
|
sub IsAfterShuttersTimeBlocking($) {
|
||||||
my ( $hash, $shuttersDev ) = @_;
|
my ($shuttersDev) = @_;
|
||||||
$shutters->setShuttersDev($shuttersDev);
|
$shutters->setShuttersDev($shuttersDev);
|
||||||
|
|
||||||
if (
|
if (
|
||||||
( int( gettimeofday() ) - $shutters->getLastManPosTimestamp ) <
|
( int( gettimeofday() ) - $shutters->getLastManPosTimestamp ) <
|
||||||
$shutters->getBlockingTimeAfterManual
|
$shutters->getBlockingTimeAfterManual
|
||||||
or ( not IsDay( $hash, $shuttersDev )
|
or ( not IsDay($shuttersDev)
|
||||||
and $shutters->getSunriseUnixTime - ( int( gettimeofday() ) ) <
|
and $shutters->getSunriseUnixTime - ( int( gettimeofday() ) ) <
|
||||||
$shutters->getBlockingTimeBeforDayOpen )
|
$shutters->getBlockingTimeBeforDayOpen )
|
||||||
or ( IsDay( $hash, $shuttersDev )
|
or ( IsDay($shuttersDev)
|
||||||
and $shutters->getSunsetUnixTime - ( int( gettimeofday() ) ) <
|
and $shutters->getSunsetUnixTime - ( int( gettimeofday() ) ) <
|
||||||
$shutters->getBlockingTimeBeforNightClose )
|
$shutters->getBlockingTimeBeforNightClose )
|
||||||
)
|
)
|
||||||
@ -2870,10 +2858,9 @@ sub IsAfterShuttersManualBlocking($) {
|
|||||||
else { return 1 }
|
else { return 1 }
|
||||||
}
|
}
|
||||||
|
|
||||||
sub ShuttersSunset($$$) {
|
sub ShuttersSunset($$) {
|
||||||
my ( $hash, $shuttersDev, $tm ) =
|
my ( $shuttersDev, $tm ) =
|
||||||
@_; # Tm steht für Timemode und bedeutet Realzeit oder Unixzeit
|
@_; # Tm steht für Timemode und bedeutet Realzeit oder Unixzeit
|
||||||
my $name = $hash->{NAME};
|
|
||||||
my $autoAstroMode;
|
my $autoAstroMode;
|
||||||
$shutters->setShuttersDev($shuttersDev);
|
$shutters->setShuttersDev($shuttersDev);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user