2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-02-28 21:14:52 +00:00

73_AutoShuttersControl: fix shutters drive after partyMode off and shutter have partyMode off attribut

git-svn-id: https://svn.fhem.de/fhem/trunk@19283 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
LeonGaultier 2019-04-28 19:11:30 +00:00
parent 35bad9b519
commit 8923b6c7ac
2 changed files with 37 additions and 6 deletions

View File

@ -1,5 +1,7 @@
# Add changes at the top of the list. Keep it in ASCII, and 80-char wide. # Add changes at the top of the list. Keep it in ASCII, and 80-char wide.
# Do not insert empty lines here, update check depends on it. # Do not insert empty lines here, update check depends on it.
- bugfix: 73_AutoShuttersControl: fix shutters drive after partyMode off and
shutter have partyMode off attribut
- feature: 93_DbRep: FHEM command "dbReadingsVal" implemented - feature: 93_DbRep: FHEM command "dbReadingsVal" implemented
- change: 49_SSCam: Meta.json and minor code change - change: 49_SSCam: Meta.json and minor code change
- change: 50_MOBILEALERTSGW: Checksum check added - change: 50_MOBILEALERTSGW: Checksum check added

View File

@ -44,7 +44,7 @@ use strict;
use warnings; use warnings;
use FHEM::Meta; use FHEM::Meta;
my $version = '0.6.0'; my $version = '0.6.1';
sub AutoShuttersControl_Initialize($) { sub AutoShuttersControl_Initialize($) {
my ($hash) = @_; my ($hash) = @_;
@ -693,6 +693,18 @@ sub WriteReadingsShuttersList($) {
'none' 'none'
) eq 'none' ) eq 'none'
); );
### associatedWith damit man sieht das der Rollladen mit einem ASC Device verbunden ist
readingsSingleUpdate(
$defs{$_},
'associatedWith',
(
ReadingsVal( $_, 'associatedWith', $name ) eq $name
? $name
: ReadingsVal( $_, 'associatedWith', 'none' ) . ',' . $name
),
0
);
} }
readingsBulkUpdate( $hash, 'state', 'active' ); readingsBulkUpdate( $hash, 'state', 'active' );
readingsEndUpdate( $hash, 0 ); readingsEndUpdate( $hash, 0 );
@ -1281,9 +1293,22 @@ sub EventProcessingBrightness($@) {
) )
or ( or (
( (
int( gettimeofday() / 86400 ) != int( (
computeAlignTime( '24:00', $shutters->getTimeUpEarly ) / (
86400 int( gettimeofday() / 86400 ) != int(
computeAlignTime( '24:00',
$shutters->getTimeUpEarly ) / 86400
)
and not IsWe()
)
or (
int( gettimeofday() / 86400 ) != int(
computeAlignTime( '24:00',
$shutters->getTimeUpWeHoliday ) / 86400
)
and IsWe()
and $ascDev->getSunriseTimeWeHoliday eq 'on'
)
) )
and int( gettimeofday() / 86400 ) == int( and int( gettimeofday() / 86400 ) == int(
computeAlignTime( '24:00', $shutters->getTimeUpLate ) / computeAlignTime( '24:00', $shutters->getTimeUpLate ) /
@ -1859,6 +1884,9 @@ sub EventProcessingPartyMode($) {
foreach my $shuttersDev ( @{ $hash->{helper}{shuttersList} } ) { foreach my $shuttersDev ( @{ $hash->{helper}{shuttersList} } ) {
$shutters->setShuttersDev($shuttersDev); $shutters->setShuttersDev($shuttersDev);
next
if ( $shutters->getPartyMode eq 'off' );
if ( not IsDay($shuttersDev) if ( not IsDay($shuttersDev)
and $shutters->getModeDown ne 'off' and $shutters->getModeDown ne 'off'
and IsAfterShuttersManualBlocking($shuttersDev) ) and IsAfterShuttersManualBlocking($shuttersDev) )
@ -4325,7 +4353,7 @@ sub getPartyMode {
my $self = shift; my $self = shift;
my $name = $self->{name}; my $name = $self->{name};
return ReadingsVal( $name, 'partyMode', 'none' ); return ReadingsVal( $name, 'partyMode', 'off' );
} }
sub getHardLockOut { sub getHardLockOut {
@ -5083,7 +5111,8 @@ sub getblockAscDrivesAfterManual {
<li>ASC_Time_Down_Late - Sunset sp&auml;teste Zeit zum Runterfahren / default 22:00 wenn nicht gesetzt</li> <li>ASC_Time_Down_Late - Sunset sp&auml;teste Zeit zum Runterfahren / default 22:00 wenn nicht gesetzt</li>
<li>ASC_Time_Up_Early - Sunrise fr&uuml;hste Zeit zum Hochfahren / default 05:00 wenn nicht gesetzt</li> <li>ASC_Time_Up_Early - Sunrise fr&uuml;hste Zeit zum Hochfahren / default 05:00 wenn nicht gesetzt</li>
<li>ASC_Time_Up_Late - Sunrise sp&auml;teste Zeit zum Hochfahren / default 08:30 wenn nicht gesetzt</li> <li>ASC_Time_Up_Late - Sunrise sp&auml;teste Zeit zum Hochfahren / default 08:30 wenn nicht gesetzt</li>
<li>ASC_Time_Up_WE_Holiday - Sunrise fr&uuml;hste Zeit zum Hochfahren am Wochenende und/oder Urlaub (holiday2we wird beachtet). / default 08:00 wenn nicht gesetzt</li> <li>ASC_Time_Up_WE_Holiday - Sunrise fr&uuml;hste Zeit zum Hochfahren am Wochenende und/oder Urlaub (holiday2we wird beachtet). / default 08:00 wenn nicht gesetzt
ACHTUNG!!! in Verbindung mit Brightness f&uuml;r ASC_Up muss die Uhrzeit kleiner sein wie die Uhrzeit aus ASC_Time_Up_Late</li>
<li>ASC_Up - astro/time/brightness - bei astro wird Sonnenaufgang berechnet, bei time wird der Wert aus ASC_Time_Up_Early als Fahrzeit verwendet und bei brightness muss ASC_Time_Up_Early und ASC_Time_Up_Late korrekt gesetzt werden. Der Timer l&auml;uft dann nach ASC_Time_Up_Late Zeit, es wird aber in der Zeit zwischen ASC_Time_Up_Early und ASC_Time_Up_Late geschaut, ob die als Attribut im Moduldevice hinterlegte ASC_brightnessMinVal erreicht wurde. Wenn ja, wird der Rollladen hoch gefahren / default astro wenn nicht gesetzt</li> <li>ASC_Up - astro/time/brightness - bei astro wird Sonnenaufgang berechnet, bei time wird der Wert aus ASC_Time_Up_Early als Fahrzeit verwendet und bei brightness muss ASC_Time_Up_Early und ASC_Time_Up_Late korrekt gesetzt werden. Der Timer l&auml;uft dann nach ASC_Time_Up_Late Zeit, es wird aber in der Zeit zwischen ASC_Time_Up_Early und ASC_Time_Up_Late geschaut, ob die als Attribut im Moduldevice hinterlegte ASC_brightnessMinVal erreicht wurde. Wenn ja, wird der Rollladen hoch gefahren / default astro wenn nicht gesetzt</li>
<li>ASC_Ventilate_Pos - in 10 Schritten von 0 bis 100, Default ist abh&auml;ngig vom Attribut ASC</li> <li>ASC_Ventilate_Pos - in 10 Schritten von 0 bis 100, Default ist abh&auml;ngig vom Attribut ASC</li>
<li>ASC_Ventilate_Window_Open - auf l&uuml;ften, wenn das Fenster gekippt/ge&ouml;ffnet wird und aktuelle Position unterhalb der L&uuml;ften-Position ist / default on wenn nicht gesetzt</li> <li>ASC_Ventilate_Window_Open - auf l&uuml;ften, wenn das Fenster gekippt/ge&ouml;ffnet wird und aktuelle Position unterhalb der L&uuml;ften-Position ist / default on wenn nicht gesetzt</li>