check brightness sunset and sunrise

change code
This commit is contained in:
Marko Oldenburg 2020-06-29 13:41:46 +02:00
parent 4a5b4d9ac1
commit 9f2eeea6d8
2 changed files with 101 additions and 44 deletions

View File

@ -1,5 +1,5 @@
UPD 2020-06-29_09:05:05 97824 FHEM/73_AutoShuttersControl.pm
UPD 2020-06-29_09:58:24 187022 lib/FHEM/Automation/ShuttersControl.pm
UPD 2020-06-29_12:59:48 189668 lib/FHEM/Automation/ShuttersControl.pm
UPD 2020-06-22_09:41:40 2657 lib/FHEM/Automation/ShuttersControl/Dev.pm
UPD 2020-06-22_09:41:40 2493 lib/FHEM/Automation/ShuttersControl/Roommate.pm
UPD 2020-06-29_09:05:05 30157 lib/FHEM/Automation/ShuttersControl/Shutters.pm

View File

@ -441,11 +441,9 @@ sub Notify {
) ne '{ ShuttersControl_DevStateIcon($name) }'
);
CommandDeleteAttr( undef, $name . ' event-on-change-reading' )
if (
AttrVal( $name, 'event-on-change-reading', 'none' ) ne 'none' );
if ( AttrVal( $name, 'event-on-change-reading', 'none' ) ne 'none' );
CommandDeleteAttr( undef, $name . ' event-on-update-reading' )
if (
AttrVal( $name, 'event-on-update-reading', 'none' ) ne 'none' );
if ( AttrVal( $name, 'event-on-update-reading', 'none' ) ne 'none' );
# Ist der Event ein globaler und passt zum Rest der Abfrage oben wird nach neuen Rolläden Devices gescannt und eine Liste im Rolladenmodul sortiert nach Raum generiert
ShuttersDeviceScan($hash)
@ -453,7 +451,7 @@ sub Notify {
}
return
if ( ref( $hash->{helper}{shuttersList} ) ne 'ARRAY'
&& scalar( @{ $hash->{helper}{shuttersList} } ) == 0 );
|| scalar( @{ $hash->{helper}{shuttersList} } ) == 0 );
my $posReading = $shutters->getPosCmd;
@ -1908,6 +1906,11 @@ sub EventProcessingBrightness {
&& $shutters->getUp ne 'brightness'
)
|| (
(
$shutters->getDown eq 'brightness'
|| $shutters->getUp eq 'brightness'
)
&& (
(
(
(
@ -1917,8 +1920,14 @@ sub EventProcessingBrightness {
)
&& (
!IsWe()
|| ( IsWe()
&& $ascDev->getSunriseTimeWeHoliday eq 'off' )
|| (
IsWe()
&& $ascDev->getSunriseTimeWeHoliday eq 'off'
|| (
$ascDev->getSunriseTimeWeHoliday eq 'on'
&& $shutters->getTimeUpWeHoliday eq
'01:25' )
)
)
)
|| (
@ -1931,19 +1940,67 @@ sub EventProcessingBrightness {
&& $shutters->getTimeUpWeHoliday ne '01:25'
)
)
&& int( gettimeofday() / 86400 ) == int(
computeAlignTime( '24:00', $shutters->getTimeUpLate ) /
86400
)
|| (
(
int( gettimeofday() / 86400 ) != int(
computeAlignTime( '24:00',
$shutters->getTimeUpEarly ) / 86400
)
&& (
!IsWe()
|| (
IsWe()
&& $ascDev->getSunriseTimeWeHoliday eq 'off'
|| (
$ascDev->getSunriseTimeWeHoliday eq 'on'
&& $shutters->getTimeUpWeHoliday eq
'01:25' )
)
)
)
|| (
int( gettimeofday() / 86400 ) != int(
computeAlignTime( '24:00',
$shutters->getTimeUpWeHoliday ) / 86400
)
&& IsWe()
&& $ascDev->getSunriseTimeWeHoliday eq 'on'
&& $shutters->getTimeUpWeHoliday ne '01:25'
)
)
&& int( gettimeofday() / 86400 ) != int(
computeAlignTime( '24:00', $shutters->getTimeUpLate ) /
86400
)
)
|| (
&& (
(
int( gettimeofday() / 86400 ) == int(
computeAlignTime( '24:00', $shutters->getTimeDownEarly ) /
86400
computeAlignTime(
'24:00', $shutters->getTimeDownEarly
) / 86400
)
&& int( gettimeofday() / 86400 ) == int(
computeAlignTime( '24:00', $shutters->getTimeDownLate
) / 86400
)
)
|| (
int( gettimeofday() / 86400 ) != int(
computeAlignTime(
'24:00', $shutters->getTimeDownEarly
) / 86400
)
&& int( gettimeofday() / 86400 ) != int(
computeAlignTime( '24:00', $shutters->getTimeDownLate ) /
86400
computeAlignTime( '24:00', $shutters->getTimeDownLate
) / 86400
)
)
)
)
)
@ -2224,8 +2281,8 @@ sub EventProcessingBrightness {
if (
$shutters->getPrivacyDownStatus != 2
&& ( $posValue != $shutters->getStatus
|| $shutters->getSelfDefenseState )
# && ( $posValue != $shutters->getStatus
# || $shutters->getSelfDefenseState )
)
{
$shutters->setSunrise(0);
@ -3036,7 +3093,8 @@ sub ShuttersCommandSet {
sub CreateSunRiseSetShuttersTimer {
my $hash = shift;
my $shuttersDev = shift // return Log3( $hash->{NAME}, 1,
"AutoShuttersControl ($hash->{NAME}) - Error in function CreateSunRiseSetShuttersTimer. No shuttersDev given");
"AutoShuttersControl ($hash->{NAME}) - Error in function CreateSunRiseSetShuttersTimer. No shuttersDev given"
);
my $name = $hash->{NAME};
my $shuttersDevHash = $defs{$shuttersDev};
@ -4964,7 +5022,6 @@ sub _CheckShuttersConditionsForShadingFn {
my $warnMessage;
my $infoMessage;
$infoMessage .= (
$shutters->getShadingMode ne 'off'
&& $ascDev->getAutoShuttersControlShading eq 'on'