check brightness sunset and sunrise
change code
This commit is contained in:
parent
4a5b4d9ac1
commit
9f2eeea6d8
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
@ -1229,7 +1227,7 @@ sub EventProcessingWindowRec {
|
|||
elsif ($match =~ m{[Oo]pen|false}xms
|
||||
&& $shutters->getSubTyp eq 'threestate' )
|
||||
{
|
||||
my $posValue = $shutters->getStatus;
|
||||
my $posValue = $shutters->getStatus;
|
||||
my $setLastDrive;
|
||||
if ( $ascDev->getAutoShuttersControlComfort eq 'on'
|
||||
and
|
||||
|
@ -1273,12 +1271,12 @@ sub EventProcessingRoommate {
|
|||
"AutoShuttersControl ($name) - EventProcessingRoommate: $shuttersDev und Events $events"
|
||||
);
|
||||
|
||||
my $getModeUp = $shutters->getModeUp;
|
||||
my $getModeDown = $shutters->getModeDown;
|
||||
my $getRoommatesStatus = $shutters->getRoommatesStatus;
|
||||
my $getRoommatesLastStatus = $shutters->getRoommatesLastStatus;
|
||||
my $event = $1;
|
||||
my $posValue = $shutters->getStatus;
|
||||
my $getModeUp = $shutters->getModeUp;
|
||||
my $getModeDown = $shutters->getModeDown;
|
||||
my $getRoommatesStatus = $shutters->getRoommatesStatus;
|
||||
my $getRoommatesLastStatus = $shutters->getRoommatesLastStatus;
|
||||
my $event = $1;
|
||||
my $posValue = $shutters->getStatus;
|
||||
|
||||
if (
|
||||
( $event eq 'home' || $event eq 'awoken' )
|
||||
|
@ -1909,42 +1907,101 @@ sub EventProcessingBrightness {
|
|||
)
|
||||
|| (
|
||||
(
|
||||
$shutters->getDown eq 'brightness'
|
||||
|| $shutters->getUp eq 'brightness'
|
||||
)
|
||||
&& (
|
||||
(
|
||||
(
|
||||
int( gettimeofday() / 86400 ) == int(
|
||||
computeAlignTime( '24:00',
|
||||
$shutters->getTimeUpEarly ) / 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' )
|
||||
)
|
||||
)
|
||||
)
|
||||
&& (
|
||||
!IsWe()
|
||||
|| ( IsWe()
|
||||
&& $ascDev->getSunriseTimeWeHoliday eq 'off' )
|
||||
|| (
|
||||
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->getTimeUpWeHoliday ) / 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' )
|
||||
)
|
||||
)
|
||||
)
|
||||
&& IsWe()
|
||||
&& $ascDev->getSunriseTimeWeHoliday eq 'on'
|
||||
&& $shutters->getTimeUpWeHoliday ne '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->getTimeUpLate ) /
|
||||
86400
|
||||
&& (
|
||||
(
|
||||
int( gettimeofday() / 86400 ) == int(
|
||||
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
|
||||
|| (
|
||||
int( gettimeofday() / 86400 ) != int(
|
||||
computeAlignTime(
|
||||
'24:00', $shutters->getTimeDownEarly
|
||||
) / 86400
|
||||
)
|
||||
&& int( gettimeofday() / 86400 ) != int(
|
||||
computeAlignTime( '24:00', $shutters->getTimeDownLate
|
||||
) / 86400
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
|
@ -2166,7 +2223,7 @@ sub EventProcessingBrightness {
|
|||
|| $shutters->getModeDown eq 'always'
|
||||
)
|
||||
{
|
||||
my $posValue = $shutters->getStatus;
|
||||
my $posValue = $shutters->getStatus;
|
||||
my $lastDrive;
|
||||
|
||||
## Setzt den PrivacyDown Modus für die Sichtschutzfahrt auf den Status 0
|
||||
|
@ -2224,8 +2281,8 @@ sub EventProcessingBrightness {
|
|||
|
||||
if (
|
||||
$shutters->getPrivacyDownStatus != 2
|
||||
&& ( $posValue != $shutters->getStatus
|
||||
|| $shutters->getSelfDefenseState )
|
||||
# && ( $posValue != $shutters->getStatus
|
||||
# || $shutters->getSelfDefenseState )
|
||||
)
|
||||
{
|
||||
$shutters->setSunrise(0);
|
||||
|
@ -3034,9 +3091,10 @@ sub ShuttersCommandSet {
|
|||
|
||||
## Sub welche die InternalTimer nach entsprechenden Sunset oder Sunrise zusammen stellt
|
||||
sub CreateSunRiseSetShuttersTimer {
|
||||
my $hash = shift;
|
||||
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'
|
||||
|
|
Loading…
Reference in New Issue
Block a user