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: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 2657 lib/FHEM/Automation/ShuttersControl/Dev.pm
|
||||||
UPD 2020-06-22_09:41:40 2493 lib/FHEM/Automation/ShuttersControl/Roommate.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
|
UPD 2020-06-29_09:05:05 30157 lib/FHEM/Automation/ShuttersControl/Shutters.pm
|
||||||
|
@ -441,11 +441,9 @@ sub Notify {
|
|||||||
) ne '{ ShuttersControl_DevStateIcon($name) }'
|
) ne '{ ShuttersControl_DevStateIcon($name) }'
|
||||||
);
|
);
|
||||||
CommandDeleteAttr( undef, $name . ' event-on-change-reading' )
|
CommandDeleteAttr( undef, $name . ' event-on-change-reading' )
|
||||||
if (
|
if ( AttrVal( $name, 'event-on-change-reading', 'none' ) ne 'none' );
|
||||||
AttrVal( $name, 'event-on-change-reading', 'none' ) ne 'none' );
|
|
||||||
CommandDeleteAttr( undef, $name . ' event-on-update-reading' )
|
CommandDeleteAttr( undef, $name . ' event-on-update-reading' )
|
||||||
if (
|
if ( AttrVal( $name, 'event-on-update-reading', 'none' ) ne 'none' );
|
||||||
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
|
# 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)
|
ShuttersDeviceScan($hash)
|
||||||
@ -453,7 +451,7 @@ sub Notify {
|
|||||||
}
|
}
|
||||||
return
|
return
|
||||||
if ( ref( $hash->{helper}{shuttersList} ) ne 'ARRAY'
|
if ( ref( $hash->{helper}{shuttersList} ) ne 'ARRAY'
|
||||||
&& scalar( @{ $hash->{helper}{shuttersList} } ) == 0 );
|
|| scalar( @{ $hash->{helper}{shuttersList} } ) == 0 );
|
||||||
|
|
||||||
my $posReading = $shutters->getPosCmd;
|
my $posReading = $shutters->getPosCmd;
|
||||||
|
|
||||||
@ -1229,7 +1227,7 @@ sub EventProcessingWindowRec {
|
|||||||
elsif ($match =~ m{[Oo]pen|false}xms
|
elsif ($match =~ m{[Oo]pen|false}xms
|
||||||
&& $shutters->getSubTyp eq 'threestate' )
|
&& $shutters->getSubTyp eq 'threestate' )
|
||||||
{
|
{
|
||||||
my $posValue = $shutters->getStatus;
|
my $posValue = $shutters->getStatus;
|
||||||
my $setLastDrive;
|
my $setLastDrive;
|
||||||
if ( $ascDev->getAutoShuttersControlComfort eq 'on'
|
if ( $ascDev->getAutoShuttersControlComfort eq 'on'
|
||||||
and
|
and
|
||||||
@ -1273,12 +1271,12 @@ sub EventProcessingRoommate {
|
|||||||
"AutoShuttersControl ($name) - EventProcessingRoommate: $shuttersDev und Events $events"
|
"AutoShuttersControl ($name) - EventProcessingRoommate: $shuttersDev und Events $events"
|
||||||
);
|
);
|
||||||
|
|
||||||
my $getModeUp = $shutters->getModeUp;
|
my $getModeUp = $shutters->getModeUp;
|
||||||
my $getModeDown = $shutters->getModeDown;
|
my $getModeDown = $shutters->getModeDown;
|
||||||
my $getRoommatesStatus = $shutters->getRoommatesStatus;
|
my $getRoommatesStatus = $shutters->getRoommatesStatus;
|
||||||
my $getRoommatesLastStatus = $shutters->getRoommatesLastStatus;
|
my $getRoommatesLastStatus = $shutters->getRoommatesLastStatus;
|
||||||
my $event = $1;
|
my $event = $1;
|
||||||
my $posValue = $shutters->getStatus;
|
my $posValue = $shutters->getStatus;
|
||||||
|
|
||||||
if (
|
if (
|
||||||
( $event eq 'home' || $event eq 'awoken' )
|
( $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',
|
int( gettimeofday() / 86400 ) == int(
|
||||||
$shutters->getTimeUpEarly ) / 86400
|
computeAlignTime( '24:00',
|
||||||
|
$shutters->getTimeUpEarly ) / 86400
|
||||||
|
)
|
||||||
|
&& (
|
||||||
|
!IsWe()
|
||||||
|
|| (
|
||||||
|
IsWe()
|
||||||
|
&& $ascDev->getSunriseTimeWeHoliday eq 'off'
|
||||||
|
|| (
|
||||||
|
$ascDev->getSunriseTimeWeHoliday eq 'on'
|
||||||
|
&& $shutters->getTimeUpWeHoliday eq
|
||||||
|
'01:25' )
|
||||||
|
)
|
||||||
|
)
|
||||||
)
|
)
|
||||||
&& (
|
|| (
|
||||||
!IsWe()
|
int( gettimeofday() / 86400 ) == int(
|
||||||
|| ( IsWe()
|
computeAlignTime( '24:00',
|
||||||
&& $ascDev->getSunriseTimeWeHoliday eq 'off' )
|
$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',
|
int( gettimeofday() / 86400 ) != int(
|
||||||
$shutters->getTimeUpWeHoliday ) / 86400
|
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'
|
int( gettimeofday() / 86400 ) != int(
|
||||||
&& $shutters->getTimeUpWeHoliday ne '01:25'
|
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(
|
||||||
int( gettimeofday() / 86400 ) == int(
|
computeAlignTime(
|
||||||
computeAlignTime( '24:00', $shutters->getTimeDownEarly ) /
|
'24:00', $shutters->getTimeDownEarly
|
||||||
86400
|
) / 86400
|
||||||
)
|
)
|
||||||
&& int( gettimeofday() / 86400 ) != int(
|
&& int( gettimeofday() / 86400 ) != int(
|
||||||
computeAlignTime( '24:00', $shutters->getTimeDownLate ) /
|
computeAlignTime( '24:00', $shutters->getTimeDownLate
|
||||||
86400
|
) / 86400
|
||||||
|
)
|
||||||
)
|
)
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@ -2166,7 +2223,7 @@ sub EventProcessingBrightness {
|
|||||||
|| $shutters->getModeDown eq 'always'
|
|| $shutters->getModeDown eq 'always'
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
my $posValue = $shutters->getStatus;
|
my $posValue = $shutters->getStatus;
|
||||||
my $lastDrive;
|
my $lastDrive;
|
||||||
|
|
||||||
## Setzt den PrivacyDown Modus für die Sichtschutzfahrt auf den Status 0
|
## Setzt den PrivacyDown Modus für die Sichtschutzfahrt auf den Status 0
|
||||||
@ -2224,8 +2281,8 @@ sub EventProcessingBrightness {
|
|||||||
|
|
||||||
if (
|
if (
|
||||||
$shutters->getPrivacyDownStatus != 2
|
$shutters->getPrivacyDownStatus != 2
|
||||||
&& ( $posValue != $shutters->getStatus
|
# && ( $posValue != $shutters->getStatus
|
||||||
|| $shutters->getSelfDefenseState )
|
# || $shutters->getSelfDefenseState )
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
$shutters->setSunrise(0);
|
$shutters->setSunrise(0);
|
||||||
@ -3034,9 +3091,10 @@ sub ShuttersCommandSet {
|
|||||||
|
|
||||||
## Sub welche die InternalTimer nach entsprechenden Sunset oder Sunrise zusammen stellt
|
## Sub welche die InternalTimer nach entsprechenden Sunset oder Sunrise zusammen stellt
|
||||||
sub CreateSunRiseSetShuttersTimer {
|
sub CreateSunRiseSetShuttersTimer {
|
||||||
my $hash = shift;
|
my $hash = shift;
|
||||||
my $shuttersDev = shift // return Log3( $hash->{NAME}, 1,
|
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 $name = $hash->{NAME};
|
||||||
my $shuttersDevHash = $defs{$shuttersDev};
|
my $shuttersDevHash = $defs{$shuttersDev};
|
||||||
@ -4964,7 +5022,6 @@ sub _CheckShuttersConditionsForShadingFn {
|
|||||||
my $warnMessage;
|
my $warnMessage;
|
||||||
my $infoMessage;
|
my $infoMessage;
|
||||||
|
|
||||||
|
|
||||||
$infoMessage .= (
|
$infoMessage .= (
|
||||||
$shutters->getShadingMode ne 'off'
|
$shutters->getShadingMode ne 'off'
|
||||||
&& $ascDev->getAutoShuttersControlShading eq 'on'
|
&& $ascDev->getAutoShuttersControlShading eq 'on'
|
||||||
|
Loading…
Reference in New Issue
Block a user