mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-01-31 06:39:11 +00:00
73_AutoShuttersControl: fix bugs and logic problems
git-svn-id: https://svn.fhem.de/fhem/trunk@19320 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
00f66cc673
commit
2e9eb155d0
@ -1,5 +1,6 @@
|
|||||||
# 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 bugs and logic problems
|
||||||
- feature: 98_weekprofile: HMCCU support
|
- feature: 98_weekprofile: HMCCU support
|
||||||
- change: 10_MYSENSORS_DEVICE: enhance support for SetExtensions;
|
- change: 10_MYSENSORS_DEVICE: enhance support for SetExtensions;
|
||||||
separate readings for heatrbeat, smartSleep & NACK
|
separate readings for heatrbeat, smartSleep & NACK
|
||||||
|
@ -44,7 +44,7 @@ use strict;
|
|||||||
use warnings;
|
use warnings;
|
||||||
use FHEM::Meta;
|
use FHEM::Meta;
|
||||||
|
|
||||||
my $version = '0.6.5';
|
my $version = '0.6.6';
|
||||||
|
|
||||||
sub AutoShuttersControl_Initialize($) {
|
sub AutoShuttersControl_Initialize($) {
|
||||||
my ($hash) = @_;
|
my ($hash) = @_;
|
||||||
@ -698,18 +698,6 @@ 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 );
|
||||||
@ -740,6 +728,23 @@ sub UserAttributs_Readings_ForShutters($$) {
|
|||||||
not defined( $attr{$_}{ ( split( ':', $attrib ) )[0] } )
|
not defined( $attr{$_}{ ( split( ':', $attrib ) )[0] } )
|
||||||
and $attrib eq 'ASC_Pos_Reading' );
|
and $attrib eq 'ASC_Pos_Reading' );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
### associatedWith damit man sieht das der Rollladen mit einem ASC Device verbunden ist
|
||||||
|
my $associatedString =
|
||||||
|
ReadingsVal( $_, 'associatedWith', 'none' );
|
||||||
|
if ( $associatedString ne 'none' ) {
|
||||||
|
my %hash;
|
||||||
|
%hash = map { ( $_ => 1 ) }
|
||||||
|
split( ',', "$associatedString,$name" );
|
||||||
|
|
||||||
|
readingsSingleUpdate( $defs{$_},
|
||||||
|
'associatedWith', join( ',', sort keys %hash ), 0 );
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
readingsSingleUpdate( $defs{$_},
|
||||||
|
'associatedWith', $name, 0 );
|
||||||
|
}
|
||||||
|
#######################################
|
||||||
}
|
}
|
||||||
## Oder das Attribut wird wieder gelöscht.
|
## Oder das Attribut wird wieder gelöscht.
|
||||||
elsif ( $cmd eq 'del' ) {
|
elsif ( $cmd eq 'del' ) {
|
||||||
@ -750,6 +755,21 @@ sub UserAttributs_Readings_ForShutters($$) {
|
|||||||
$_ . ' .?(AutoShuttersControl|ASC)_.*' );
|
$_ . ' .?(AutoShuttersControl|ASC)_.*' );
|
||||||
CommandDeleteAttr( undef, $_ . ' ASC' );
|
CommandDeleteAttr( undef, $_ . ' ASC' );
|
||||||
delFromDevAttrList( $_, $attrib );
|
delFromDevAttrList( $_, $attrib );
|
||||||
|
|
||||||
|
### associatedWith wird wieder entfernt
|
||||||
|
my $associatedString =
|
||||||
|
ReadingsVal( $_, 'associatedWith', 'none' );
|
||||||
|
my %hash;
|
||||||
|
%hash = map { ( $_ => 1 ) }
|
||||||
|
grep { " $name " !~ m/ $_ / }
|
||||||
|
split( ',', "$associatedString,$name" );
|
||||||
|
|
||||||
|
if ( keys %hash > 1 ) {
|
||||||
|
readingsSingleUpdate( $defs{$_},
|
||||||
|
'associatedWith', join( ',', sort keys %hash ), 0 );
|
||||||
|
}
|
||||||
|
else { CommandDeleteReading( undef, $_ . ' associatedWith' ); }
|
||||||
|
###################################
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -772,9 +792,9 @@ sub AddNotifyDev($@) {
|
|||||||
|
|
||||||
my %hash;
|
my %hash;
|
||||||
%hash = map { ( $_ => 1 ) }
|
%hash = map { ( $_ => 1 ) }
|
||||||
split( ",", "$notifyDev,$dev" );
|
split( ',', "$notifyDev,$dev" );
|
||||||
|
|
||||||
$hash->{NOTIFYDEV} = join( ",", sort keys %hash );
|
$hash->{NOTIFYDEV} = join( ',', sort keys %hash );
|
||||||
|
|
||||||
my @devs = split( ',', $dev );
|
my @devs = split( ',', $dev );
|
||||||
foreach (@devs) {
|
foreach (@devs) {
|
||||||
@ -802,13 +822,13 @@ sub DeleteNotifyDev($@) {
|
|||||||
if ( !keys %{ $hash->{monitoredDevs}{$notifyDev} } ) {
|
if ( !keys %{ $hash->{monitoredDevs}{$notifyDev} } ) {
|
||||||
delete $hash->{monitoredDevs}{$notifyDev};
|
delete $hash->{monitoredDevs}{$notifyDev};
|
||||||
my $notifyDevString = $hash->{NOTIFYDEV};
|
my $notifyDevString = $hash->{NOTIFYDEV};
|
||||||
$notifyDevString = "" if ( !$notifyDevString );
|
$notifyDevString = '' if ( !$notifyDevString );
|
||||||
my %hash;
|
my %hash;
|
||||||
%hash = map { ( $_ => 1 ) }
|
%hash = map { ( $_ => 1 ) }
|
||||||
grep { " $notifyDev " !~ m/ $_ / }
|
grep { " $notifyDev " !~ m/ $_ / }
|
||||||
split( ",", "$notifyDevString,$notifyDev" );
|
split( ',', "$notifyDevString,$notifyDev" );
|
||||||
|
|
||||||
$hash->{NOTIFYDEV} = join( ",", sort keys %hash );
|
$hash->{NOTIFYDEV} = join( ',', sort keys %hash );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
readingsSingleUpdate( $hash, '.monitoredDevs',
|
readingsSingleUpdate( $hash, '.monitoredDevs',
|
||||||
@ -1234,17 +1254,21 @@ sub EventProcessingRain($@) {
|
|||||||
|
|
||||||
if ( $val > $triggerMax
|
if ( $val > $triggerMax
|
||||||
and $shutters->getStatus != $closedPos
|
and $shutters->getStatus != $closedPos
|
||||||
and IsAfterShuttersManualBlocking($shuttersDev) )
|
and IsAfterShuttersManualBlocking($shuttersDev)
|
||||||
|
and $shutters->getRainProtectionStatus eq 'unprotection' )
|
||||||
{
|
{
|
||||||
$shutters->setLastDrive('rain protection');
|
$shutters->setLastDrive('rain protection');
|
||||||
$shutters->setDriveCmd($closedPos);
|
$shutters->setDriveCmd($closedPos);
|
||||||
|
$shutters->setRainProtectionStatus('protection');
|
||||||
}
|
}
|
||||||
elsif ( ( $val == 0 or $val < $triggerMax )
|
elsif ( ( $val == 0 or $val < $triggerMax )
|
||||||
and $shutters->getStatus == $closedPos
|
and $shutters->getStatus == $closedPos
|
||||||
and IsAfterShuttersManualBlocking($shuttersDev) )
|
and IsAfterShuttersManualBlocking($shuttersDev)
|
||||||
|
and $shutters->getRainProtectionStatus eq 'protection' )
|
||||||
{
|
{
|
||||||
$shutters->setLastDrive('rain un-protection');
|
$shutters->setLastDrive('rain un-protection');
|
||||||
$shutters->setDriveCmd( $shutters->getLastPos );
|
$shutters->setDriveCmd( $shutters->getLastPos );
|
||||||
|
$shutters->setRainProtectionStatus('unprotection');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1271,10 +1295,6 @@ sub EventProcessingWind($@) {
|
|||||||
. ' Bekommender Wert1: '
|
. ' Bekommender Wert1: '
|
||||||
. $1 );
|
. $1 );
|
||||||
|
|
||||||
$shutters->setWindProtectionStatus('unprotection')
|
|
||||||
if ( not defined( $shutters->getWindProtectionStatus )
|
|
||||||
or not $shutters->getWindProtectionStatus );
|
|
||||||
|
|
||||||
next
|
next
|
||||||
if (
|
if (
|
||||||
(
|
(
|
||||||
@ -1588,6 +1608,9 @@ sub EventProcessingShadingBrightness($@) {
|
|||||||
or $shutters->getShadingMode eq $homemode
|
or $shutters->getShadingMode eq $homemode
|
||||||
)
|
)
|
||||||
and IsDay($shuttersDev)
|
and IsDay($shuttersDev)
|
||||||
|
and $ascDev->getAutoShuttersControlShading eq 'on'
|
||||||
|
and $shutters->getRainProtectionStatus eq 'unprotection'
|
||||||
|
and $shutters->getWindProtectionStatus eq 'unprotection'
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
ShadingProcessing(
|
ShadingProcessing(
|
||||||
@ -1655,6 +1678,9 @@ sub EventProcessingTwilightDevice($@) {
|
|||||||
or $shutters->getShadingMode eq $homemode
|
or $shutters->getShadingMode eq $homemode
|
||||||
)
|
)
|
||||||
and IsDay($shuttersDev)
|
and IsDay($shuttersDev)
|
||||||
|
and $ascDev->getAutoShuttersControlShading eq 'on'
|
||||||
|
and $shutters->getRainProtectionStatus eq 'unprotection'
|
||||||
|
and $shutters->getWindProtectionStatus eq 'unprotection'
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
ShadingProcessing(
|
ShadingProcessing(
|
||||||
@ -2952,9 +2978,34 @@ sub ShuttersSunrise($$) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$shuttersSunriseUnixtime =
|
if (
|
||||||
computeAlignTime( '24:00',
|
IsWe()
|
||||||
$shutters->getTimeUpWeHoliday );
|
and int( gettimeofday() / 86400 ) == int(
|
||||||
|
computeAlignTime( '24:00',
|
||||||
|
$shutters->getTimeUpWeHoliday ) / 86400
|
||||||
|
)
|
||||||
|
)
|
||||||
|
{
|
||||||
|
$shuttersSunriseUnixtime =
|
||||||
|
computeAlignTime( '24:00',
|
||||||
|
$shutters->getTimeUpWeHoliday );
|
||||||
|
}
|
||||||
|
elsif (
|
||||||
|
int( gettimeofday() / 86400 ) == int(
|
||||||
|
computeAlignTime( '24:00',
|
||||||
|
$shutters->getTimeUpEarly ) / 86400
|
||||||
|
)
|
||||||
|
)
|
||||||
|
{
|
||||||
|
$shuttersSunriseUnixtime =
|
||||||
|
computeAlignTime( '24:00',
|
||||||
|
$shutters->getTimeUpEarly );
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$shuttersSunriseUnixtime =
|
||||||
|
computeAlignTime( '24:00',
|
||||||
|
$shutters->getTimeUpWeHoliday ) + 86400;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -3635,6 +3686,14 @@ sub setWindProtectionStatus { # Werte protection, unprotection
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub setRainProtectionStatus { # Werte protection, unprotection
|
||||||
|
my ( $self, $value ) = @_;
|
||||||
|
|
||||||
|
$self->{ $self->{shuttersDev} }->{RainProtection}->{VAL} = $value
|
||||||
|
if ( defined($value) );
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
sub getShadingStatus { # Werte für value = in, out, in reserved, out reserved
|
sub getShadingStatus { # Werte für value = in, out, in reserved, out reserved
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
|
|
||||||
@ -3658,11 +3717,26 @@ sub getIfInShading {
|
|||||||
sub getWindProtectionStatus { # Werte protection, unprotection
|
sub getWindProtectionStatus { # Werte protection, unprotection
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
|
|
||||||
return $self->{ $self->{shuttersDev} }->{ASC_WindParameters}->{VAL}
|
return (
|
||||||
if ( defined( $self->{ $self->{shuttersDev} }->{ASC_WindParameters} )
|
defined( $self->{ $self->{shuttersDev} }->{ASC_WindParameters} )
|
||||||
and
|
and defined(
|
||||||
defined( $self->{ $self->{shuttersDev} }->{ASC_WindParameters}->{VAL} )
|
$self->{ $self->{shuttersDev} }->{ASC_WindParameters}->{VAL}
|
||||||
);
|
)
|
||||||
|
? $self->{ $self->{shuttersDev} }->{ASC_WindParameters}->{VAL}
|
||||||
|
: 'unprotection'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
sub getRainProtectionStatus { # Werte protection, unprotection
|
||||||
|
my $self = shift;
|
||||||
|
|
||||||
|
return (
|
||||||
|
defined( $self->{ $self->{shuttersDev} }->{RainProtection} )
|
||||||
|
and
|
||||||
|
defined( $self->{ $self->{shuttersDev} }->{RainProtection}->{VAL} )
|
||||||
|
? $self->{ $self->{shuttersDev} }->{RainProtection}->{VAL}
|
||||||
|
: 'unprotection'
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
sub getShadingStatusTimestamp {
|
sub getShadingStatusTimestamp {
|
||||||
@ -4600,6 +4674,13 @@ sub getAutoShuttersControlComfort {
|
|||||||
return AttrVal( $name, 'ASC_autoShuttersControlComfort', 'off' );
|
return AttrVal( $name, 'ASC_autoShuttersControlComfort', 'off' );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub getAutoShuttersControlShading {
|
||||||
|
my $self = shift;
|
||||||
|
my $name = $self->{name};
|
||||||
|
|
||||||
|
return AttrVal( $name, 'ASC_autoShuttersControlShading', 'off' );
|
||||||
|
}
|
||||||
|
|
||||||
sub getFreezeTemp {
|
sub getFreezeTemp {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
my $name = $self->{name};
|
my $name = $self->{name};
|
||||||
@ -4942,7 +5023,7 @@ sub getblockAscDrivesAfterManual {
|
|||||||
<li>ASC_BlockingTime_afterManual - wie viel Sekunden soll die Automatik nach einer manuellen Fahrt aus setzen. / default 1200 wenn nicht gesetzt</li>
|
<li>ASC_BlockingTime_afterManual - wie viel Sekunden soll die Automatik nach einer manuellen Fahrt aus setzen. / default 1200 wenn nicht gesetzt</li>
|
||||||
<li>ASC_BlockingTime_beforDayOpen - wie viel Sekunden vor dem morgendlichen öffnen soll keine schließen Fahrt mehr statt finden. / default 3600 wenn nicht gesetzt</li>
|
<li>ASC_BlockingTime_beforDayOpen - wie viel Sekunden vor dem morgendlichen öffnen soll keine schließen Fahrt mehr statt finden. / default 3600 wenn nicht gesetzt</li>
|
||||||
<li>ASC_BlockingTime_beforNightClose - wie viel Sekunden vor dem nächtlichen schlie&zlig;en soll keine öffnen Fahrt mehr statt finden. / default 3600 wenn nicht gesetzt</li>
|
<li>ASC_BlockingTime_beforNightClose - wie viel Sekunden vor dem nächtlichen schlie&zlig;en soll keine öffnen Fahrt mehr statt finden. / default 3600 wenn nicht gesetzt</li>
|
||||||
<li>ASC_BrightnessSensor - DEVICE:READING WERT-MORGENS:WERT-ABENDS / 'Helligkeit:brightness 400:800' Angaben zum Helligkeitssensor und den Brightnesswerten für Sonnenuntergang und Sonnenaufgang. Die Sensor Device Angaben werden auch für die Beschattung verwendet. / default none wenn nicht gesetzt</li>
|
<li>ASC_BrightnessSensor - DEVICE[:READING] WERT-MORGENS:WERT-ABENDS / 'Sensorname[:brightness [400:800]]' Angaben zum Helligkeitssensor mit (Readingname, optional) für die Beschattung und dem Fahren der Rollladen nach brightness und den optionalen Brightnesswerten für Sonnenauf- und Sonnenuntergang. / default none wenn nicht gesetzt</li>
|
||||||
<li>ASC_Closed_Pos - in 10 Schritten von 0 bis 100, Default ist abhängig vom Attribut ASC</li>
|
<li>ASC_Closed_Pos - in 10 Schritten von 0 bis 100, Default ist abhängig vom Attribut ASC</li>
|
||||||
<li>ASC_ComfortOpen_Pos - in 10 Schritten von 0 bis 100, Default ist abhängig vom Attribut ASC</li>
|
<li>ASC_ComfortOpen_Pos - in 10 Schritten von 0 bis 100, Default ist abhängig vom Attribut ASC</li>
|
||||||
<li>ASC_Down - astro/time/brightness - bei astro wird Sonnenuntergang berechnet, bei time wird der Wert aus ASC_Time_Down_Early als Fahrzeit verwendet und bei brightness muss ASC_Time_Down_Early und ASC_Time_Down_Late korrekt gesetzt werden. Der Timer läuft dann nach ASC_Time_Down_Late Zeit, es wird aber in der Zeit zwischen ASC_Time_Down_Early und ASC_Time_Down_Late geschaut, ob die als Attribut im Moduldevice hinterlegte ASC_brightnessMinVal erreicht wurde. Wenn ja, wird der Rollladen runter gefahren / default astro wenn nicht gesetzt</li>
|
<li>ASC_Down - astro/time/brightness - bei astro wird Sonnenuntergang berechnet, bei time wird der Wert aus ASC_Time_Down_Early als Fahrzeit verwendet und bei brightness muss ASC_Time_Down_Early und ASC_Time_Down_Late korrekt gesetzt werden. Der Timer läuft dann nach ASC_Time_Down_Late Zeit, es wird aber in der Zeit zwischen ASC_Time_Down_Early und ASC_Time_Down_Late geschaut, ob die als Attribut im Moduldevice hinterlegte ASC_brightnessMinVal erreicht wurde. Wenn ja, wird der Rollladen runter gefahren / default astro wenn nicht gesetzt</li>
|
||||||
@ -5083,9 +5164,9 @@ sub getblockAscDrivesAfterManual {
|
|||||||
<a name="ASC_blockAscDrivesAfterManual"></a>
|
<a name="ASC_blockAscDrivesAfterManual"></a>
|
||||||
<li>ASC_blockAscDrivesAfterManual - 0,1 wenn der Wert auf 1 gesetzt ist und ein Rollladen im Reading ASC_ShuttersLastDrive ein manual stehen hat und der Rollladen eine unbekannte (nicht in den Attributen konfigueriebare) position hat wird dieser Rollladen vom ASC nicht mehr gesteuert.</li>
|
<li>ASC_blockAscDrivesAfterManual - 0,1 wenn der Wert auf 1 gesetzt ist und ein Rollladen im Reading ASC_ShuttersLastDrive ein manual stehen hat und der Rollladen eine unbekannte (nicht in den Attributen konfigueriebare) position hat wird dieser Rollladen vom ASC nicht mehr gesteuert.</li>
|
||||||
<a name="ASC_brightnessDriveUpDown"></a>
|
<a name="ASC_brightnessDriveUpDown"></a>
|
||||||
<li>ASC_brightnessDriveUpDown - WERT-MORGENS:WERT-ABENDS, Werte bei dem Schaltbedingungen für Sunrise und Sunset geprüft werden sollen. Diese globale Einstellung kann durch die WERT-MORGENS:WERT-ABENDS Einstellung von ASC_BrightnessSensor im Rollladen selbst überschrieben werden.</li>
|
<li>ASC_brightnessDriveUpDown - WERT-MORGENS:WERT-ABENDS, Werte bei dem Schaltbedingungen für Sunrise und Sunset geprüft werden sollen. Diese globale Einstellung kann durch die WERT-MORGENS:WERT-ABENDS Einstellung von ASC_BrightnessSensor im Rollladen selbst überschrieben werden.</li>
|
||||||
<a name="ASC_debug"></a>
|
<a name="ASC_debug"></a>
|
||||||
<li>ASC_debug - aktiviert die erweiterte Logausgabe für Debugausgaben</li>
|
<li>ASC_debug - aktiviert die erweiterte Logausgabe für Debugausgaben</li>
|
||||||
<a name="ASC_expert"></a>
|
<a name="ASC_expert"></a>
|
||||||
<li>ASC_expert - ist der Wert 1 werden erweiterte Informationen bezüglich des NotifyDevs unter set und get angezeigt</li>
|
<li>ASC_expert - ist der Wert 1 werden erweiterte Informationen bezüglich des NotifyDevs unter set und get angezeigt</li>
|
||||||
<a name="ASC_freezeTemp"></a>
|
<a name="ASC_freezeTemp"></a>
|
||||||
@ -5135,14 +5216,14 @@ sub getblockAscDrivesAfterManual {
|
|||||||
<li>ASC_AutoAstroModeMorning - aktuell REAL,CIVIL,NAUTIC,ASTRONOMIC / default none wenn nicht gesetzt</li>
|
<li>ASC_AutoAstroModeMorning - aktuell REAL,CIVIL,NAUTIC,ASTRONOMIC / default none wenn nicht gesetzt</li>
|
||||||
<li>ASC_AutoAstroModeMorningHorizon - Höhe über Horizont wenn beim Attribut ASC_autoAstroModeMorning HORIZON ausgewählt / default none wenn nicht gesetzt</li>
|
<li>ASC_AutoAstroModeMorningHorizon - Höhe über Horizont wenn beim Attribut ASC_autoAstroModeMorning HORIZON ausgewählt / default none wenn nicht gesetzt</li>
|
||||||
<li>ASC_BlockingTime_afterManual - wie viel Sekunden soll die Automatik nach einer manuellen Fahrt aus setzen. / default 1200 wenn nicht gesetzt</li>
|
<li>ASC_BlockingTime_afterManual - wie viel Sekunden soll die Automatik nach einer manuellen Fahrt aus setzen. / default 1200 wenn nicht gesetzt</li>
|
||||||
<li>ASC_BlockingTime_beforDayOpen - wie viel Sekunden vor dem morgendlichen öffnen soll keine schließen Fahrt mehr statt finden. / default 3600 wenn nicht gesetzt</li>
|
<li>ASC_BlockingTime_beforDayOpen - wie viel Sekunden vor dem morgendlichen öffnen soll keine schließen Fahrt mehr statt finden. / default 3600 wenn nicht gesetzt</li>
|
||||||
<li>ASC_BlockingTime_beforNightClose - wie viel Sekunden vor dem nächtlichen schlie&zlig;en soll keine öffnen Fahrt mehr statt finden. / default 3600 wenn nicht gesetzt</li>
|
<li>ASC_BlockingTime_beforNightClose - wie viel Sekunden vor dem nächtlichen schließen soll keine öffnen Fahrt mehr statt finden. / default 3600 wenn nicht gesetzt</li>
|
||||||
<li>ASC_BrightnessSensor - DEVICE:READING WERT-MORGENS:WERT-ABENDS / 'Helligkeit:brightness 400:800' Angaben zum Helligkeitssensor und den Brightnesswerten für Sonnenuntergang und Sonnenaufgang. Die Sensor Device Angaben werden auch für die Beschattung verwendet. / default none wenn nicht gesetzt</li>
|
<li>ASC_BrightnessSensor - DEVICE:READING WERT-MORGENS:WERT-ABENDS / 'Helligkeit:brightness 400:800' Angaben zum Helligkeitssensor und den Brightnesswerten für Sonnenuntergang und Sonnenaufgang. Die Sensor Device Angaben werden auch für die Beschattung verwendet. / default none wenn nicht gesetzt</li>
|
||||||
<li>ASC_Closed_Pos - in 10 Schritten von 0 bis 100, Default ist abhängig vom Attribut ASC</li>
|
<li>ASC_Closed_Pos - in 10 Schritten von 0 bis 100, Default ist abhängig vom Attribut ASC</li>
|
||||||
<li>ASC_ComfortOpen_Pos - in 10 Schritten von 0 bis 100, Default ist abhängig vom Attribut ASC</li>
|
<li>ASC_ComfortOpen_Pos - in 10 Schritten von 0 bis 100, Default ist abhängig vom Attribut ASC</li>
|
||||||
<li>ASC_Down - astro/time/brightness - bei astro wird Sonnenuntergang berechnet, bei time wird der Wert aus ASC_Time_Down_Early als Fahrzeit verwendet und bei brightness muss ASC_Time_Down_Early und ASC_Time_Down_Late korrekt gesetzt werden. Der Timer läuft dann nach ASC_Time_Down_Late Zeit, es wird aber in der Zeit zwischen ASC_Time_Down_Early und ASC_Time_Down_Late geschaut, ob die als Attribut im Moduldevice hinterlegte ASC_brightnessMinVal erreicht wurde. Wenn ja, wird der Rollladen runter gefahren / default astro wenn nicht gesetzt</li>
|
<li>ASC_Down - astro/time/brightness - bei astro wird Sonnenuntergang berechnet, bei time wird der Wert aus ASC_Time_Down_Early als Fahrzeit verwendet und bei brightness muss ASC_Time_Down_Early und ASC_Time_Down_Late korrekt gesetzt werden. Der Timer läuft dann nach ASC_Time_Down_Late Zeit, es wird aber in der Zeit zwischen ASC_Time_Down_Early und ASC_Time_Down_Late geschaut, ob die als Attribut im Moduldevice hinterlegte ASC_brightnessMinVal erreicht wurde. Wenn ja, wird der Rollladen runter gefahren / default astro wenn nicht gesetzt</li>
|
||||||
<li>ASC_DriveUpMaxDuration - die Dauer des hochfahrens vom Rollladen plus 5 Sekunden / default 60 wenn nicht gesetzt</li>
|
<li>ASC_DriveUpMaxDuration - die Dauer des hochfahrens vom Rollladen plus 5 Sekunden / default 60 wenn nicht gesetzt</li>
|
||||||
<li>ASC_Drive_Offset - maximaler Wert für einen zufällig ermittelte Verzögerungswert in Sekunden bei der Berechnung der Fahrzeiten, 0 bedeutet keine Verzögerung, -1 bedeutet, dass das gleichwertige Attribut aus dem ASC Device ausgewertet werden soll. / default -1 wenn nicht gesetzt</li>
|
<li>ASC_Drive_Offset - maximaler Wert für einen zufällig ermittelte Verzögerungswert in Sekunden bei der Berechnung der Fahrzeiten, 0 bedeutet keine Verzögerung / default -1 wenn nicht gesetzt</li>
|
||||||
<li>ASC_Drive_OffsetStart - in Sekunden verzögerter Wert ab welchen dann erst das Offset startet und dazu addiert wird. Funktioniert nur wenn gleichzeitig ein Drive_Offset gesetzt wird. / default -1 wenn nicht gesetzt</li>
|
<li>ASC_Drive_OffsetStart - in Sekunden verzögerter Wert ab welchen dann erst das Offset startet und dazu addiert wird. Funktioniert nur wenn gleichzeitig ein Drive_Offset gesetzt wird. / default -1 wenn nicht gesetzt</li>
|
||||||
<li>ASC_LockOut - soft/hard/off - stellt entsprechend den Aussperrschutz ein. Bei global aktivem Aussperrschutz (set ASC-Device lockOut soft) und einem Fensterkontakt open bleibt dann der Rollladen oben. Dies gilt nur bei Steuerbefehle über das ASC Modul. Stellt man global auf hard, wird bei entsprechender Möglichkeit versucht den Rollladen hardwareseitig zu blockieren. Dann ist auch ein Fahren über die Taster nicht mehr möglich. / default off wenn nicht gesetzt</li>
|
<li>ASC_LockOut - soft/hard/off - stellt entsprechend den Aussperrschutz ein. Bei global aktivem Aussperrschutz (set ASC-Device lockOut soft) und einem Fensterkontakt open bleibt dann der Rollladen oben. Dies gilt nur bei Steuerbefehle über das ASC Modul. Stellt man global auf hard, wird bei entsprechender Möglichkeit versucht den Rollladen hardwareseitig zu blockieren. Dann ist auch ein Fahren über die Taster nicht mehr möglich. / default off wenn nicht gesetzt</li>
|
||||||
<li>ASC_LockOut_Cmd - inhibit/blocked/protection - set Befehl für das Rollladen-Device zum Hardware sperren. Dieser Befehl wird gesetzt werden, wenn man "ASC_LockOut" auf hard setzt / default none wenn nicht gesetzt</li>
|
<li>ASC_LockOut_Cmd - inhibit/blocked/protection - set Befehl für das Rollladen-Device zum Hardware sperren. Dieser Befehl wird gesetzt werden, wenn man "ASC_LockOut" auf hard setzt / default none wenn nicht gesetzt</li>
|
||||||
@ -5151,21 +5232,31 @@ sub getblockAscDrivesAfterManual {
|
|||||||
<li>ASC_Open_Pos - in 10 Schritten von 0 bis 100, Default ist abhängig vom Attribut ASC</li>
|
<li>ASC_Open_Pos - in 10 Schritten von 0 bis 100, Default ist abhängig vom Attribut ASC</li>
|
||||||
<li>ASC_Partymode - on/off - schaltet den Partymodus an oder aus. Wird am ASC Device set ASC-DEVICE partyMode on geschalten, werden alle Fahrbefehle an den Rollläden, welche das Attribut auf on haben, zwischengespeichert und später erst ausgeführt / default off wenn nicht gesetzt</li>
|
<li>ASC_Partymode - on/off - schaltet den Partymodus an oder aus. Wird am ASC Device set ASC-DEVICE partyMode on geschalten, werden alle Fahrbefehle an den Rollläden, welche das Attribut auf on haben, zwischengespeichert und später erst ausgeführt / default off wenn nicht gesetzt</li>
|
||||||
<li>ASC_Pos_Reading - Name des Readings, welches die Position des Rollladen in Prozent an gibt; wird bei unbekannten Device Typen auch als set Befehl zum fahren verwendet</li>
|
<li>ASC_Pos_Reading - Name des Readings, welches die Position des Rollladen in Prozent an gibt; wird bei unbekannten Device Typen auch als set Befehl zum fahren verwendet</li>
|
||||||
<li>ASC_PrivacyDownTime_beforNightClose - wie viele Sekunden vor dem abendlichen schlie&zlig;en soll der Rollladen in die Sichtschutzposition fahren, -1 bedeutet das diese Funktion unbeachtet bleiben soll / default -1 wenn nicht gesetzt</li>
|
<li>ASC_PrivacyDownTime_beforNightClose - wie viele Sekunden vor dem abendlichen schließen soll der Rollladen in die Sichtschutzposition fahren, / default -1 wenn nicht gesetzt</li>
|
||||||
<li>ASC_PrivacyDown_Pos - Position den Rollladens für den Sichtschutz / default 50 wenn nicht gesetzt</li>
|
<li>ASC_PrivacyDown_Pos - Position den Rollladens für den Sichtschutz / default 50 wenn nicht gesetzt</li>
|
||||||
|
<li>ASC_WindProtection - on/off soll das Rolllo beim Regenschutz beachtet werden. On=JA, off=NEIN.</li>
|
||||||
<li>ASC_Roommate_Device - mit Komma getrennte Namen des/der Roommate Device/s, welche den/die Bewohner des Raumes vom Rollladen wiedergibt. Es macht nur Sinn in Schlaf- oder Kinderzimmern / default none wenn nicht gesetzt</li>
|
<li>ASC_Roommate_Device - mit Komma getrennte Namen des/der Roommate Device/s, welche den/die Bewohner des Raumes vom Rollladen wiedergibt. Es macht nur Sinn in Schlaf- oder Kinderzimmern / default none wenn nicht gesetzt</li>
|
||||||
<li>ASC_Roommate_Reading - das Reading zum Roommate Device, welches den Status wieder gibt / default state wenn nicht gesetzt</li>
|
<li>ASC_Roommate_Reading - das Reading zum Roommate Device, welches den Status wieder gibt / default state wenn nicht gesetzt</li>
|
||||||
<li>ASC_Self_Defense_Exclude - on/off - bei on Wert wird dieser Rollladen bei aktiven Self Defense und offenen Fenster nicht runter gefahren, wenn Residents absent ist. / default off wenn nicht gesetzt</li>
|
<li>ASC_Self_Defense_Exclude - on/off - bei on Wert wird dieser Rollladen bei aktiven Self Defense und offenen Fenster nicht runter gefahren, wenn Residents absent ist. / default off wenn nicht gesetzt</li>
|
||||||
<li>ASC_Shading_Angle_Left - Vorlaufwinkel im Bezug zum Fenster, ab wann abgeschattet wird. Beispiel: Fenster 180° - 85° ==> ab Sonnenpos. 95° wird abgeschattet / default 75 wenn nicht gesetzt</li>
|
<ul>
|
||||||
<li>ASC_Shading_Angle_Right - Nachlaufwinkel im Bezug zum Fenster, bis wann abgeschattet wird. Beispiel: Fenster 180° + 85° ==> bis Sonnenpos. 265° wird abgeschattet / default 75 wenn nicht gesetzt</li>
|
<b><u>Beschreibung der Beschattungsfunktion</u></b>
|
||||||
<li>ASC_Shading_Direction - Position in Grad, auf der das Fenster liegt - genau Osten wäre 90, Süden 180 und Westen 270 / default 180 wenn nicht gesetzt</li>
|
</br>Damit die Beschattung Funktion hat, müßen folgende Anforderungen erfüllt sein.
|
||||||
<li>ASC_Shading_Min_Elevation - ab welcher Höhe des Sonnenstandes soll beschattet werden, immer in Abhängikkeit der anderen einbezogenden Sensorwerte / default 25.0 wenn nicht gesetzt</li>
|
</br><b>Im ASC Device</b> das Attribut "ASC_autoShuttersControlShading" mit dem Wert on, sowie ein Astro/Twilight Device im Attribut "ASC_twilightDevice" und das Attribut "ASC_tempSensor".
|
||||||
<li>ASC_Shading_Min_OutsideTemperature - ab welcher Temperatur soll Beschattet werden, immer in Abhängikkeit der anderen einbezogenden Sensorwerte / default 18 wenn nicht gesetzt</li>
|
</br><b>In den Rollladendevices</b> benötigt ihr ein Helligkeitssensor als Attribut "ASC_BrightnessSensor", sofern noch nicht vorhanden. Findet der Sensor nur für die Beschattung Verwendung ist der Wert DEVICENAME[:READING] ausreichend.
|
||||||
<li>ASC_Shading_Mode - absent,always,off,home / wann soll die Beschattung nur statt finden. / default off wenn nicht gesetzt</li>
|
</br>Alle weiteren Attribute sind optional und wenn nicht gestezt mit default Werten belegt. Ihr solltet sie dennoch einmal anschauen und entsprechend Euren Gegebenheiten setzen. Die Werte für; die Fensterposition und den Vor- Nachlaufwinkel sowie die Granzwerte für die StateChange_Cloudy und StateChange_Sunny solltet ihr besondere Beachtung dabei schenken.
|
||||||
<li>ASC_Shading_Pos - Position des Rollladens für die Beschattung</li>
|
<ul>
|
||||||
<li>ASC_Shading_StateChange_Cloudy - Brightness Wert ab welchen die Beschattung aufgehoben werden soll, immer in Abhängikkeit der anderen einbezogenden Sensorwerte / default 20000 wenn nicht gesetzt</li>
|
<li>ASC_Shading_Angle_Left - Vorlaufwinkel im Bezug zum Fenster, ab wann abgeschattet wird. Beispiel: Fenster 180° - 85° ==> ab Sonnenpos. 95° wird abgeschattet / default 75 wenn nicht gesetzt</li>
|
||||||
<li>ASC_Shading_StateChange_Sunny - Brightness Wert ab welchen Beschattung statt finden soll, immer in Abhängikkeit der anderen einbezogenden Sensorwerte / default 35000 wenn nicht gesetzt</li>
|
<li>ASC_Shading_Angle_Right - Nachlaufwinkel im Bezug zum Fenster, bis wann abgeschattet wird. Beispiel: Fenster 180° + 85° ==> bis Sonnenpos. 265° wird abgeschattet / default 75 wenn nicht gesetzt</li>
|
||||||
<li>ASC_Shading_WaitingPeriod - wie viele Sekunden soll gewartet werden bevor eine weitere Auswertung der Sensordaten für die Beschattung statt finden soll / default 1200 wenn nicht gesetzt</li>
|
<li>ASC_Shading_Direction - Position in Grad, auf der das Fenster liegt - genau Osten wäre 90, Süden 180 und Westen 270 / default 180 wenn nicht gesetzt</li>
|
||||||
|
<li>ASC_Shading_Min_Elevation - ab welcher Höhe des Sonnenstandes soll beschattet werden, immer in Abhängikkeit der anderen einbezogenden Sensorwerte / default 25.0 wenn nicht gesetzt</li>
|
||||||
|
<li>ASC_Shading_Min_OutsideTemperature - ab welcher Temperatur soll Beschattet werden, immer in Abhängikkeit der anderen einbezogenden Sensorwerte / default 18 wenn nicht gesetzt</li>
|
||||||
|
<li>ASC_Shading_Mode - absent,always,off,home / wann soll die Beschattung nur statt finden. / default off wenn nicht gesetzt</li>
|
||||||
|
<li>ASC_Shading_Pos - Position des Rollladens für die Beschattung</li>
|
||||||
|
<li>ASC_Shading_StateChange_Cloudy - Brightness Wert ab welchen die Beschattung aufgehoben werden soll, immer in Abhängikkeit der anderen einbezogenden Sensorwerte / default 20000 wenn nicht gesetzt</li>
|
||||||
|
<li>ASC_Shading_StateChange_Sunny - Brightness Wert ab welchen Beschattung statt finden soll, immer in Abhängikkeit der anderen einbezogenden Sensorwerte / default 35000 wenn nicht gesetzt</li>
|
||||||
|
<li>ASC_Shading_WaitingPeriod - wie viele Sekunden soll gewartet werden bevor eine weitere Auswertung der Sensordaten für die Beschattung statt finden soll / default 1200 wenn nicht gesetzt</li>
|
||||||
|
</ul>
|
||||||
|
</ul>
|
||||||
<li>ASC_ShuttersPlace - window/terrace - Wenn dieses Attribut auf terrace gesetzt ist, das Residence Device in den Status "gone" geht und SelfDefence aktiv ist (ohne das das Reading selfDefense gesetzt sein muss), wird das Rollo geschlossen / default window wenn nicht gesetzt</li>
|
<li>ASC_ShuttersPlace - window/terrace - Wenn dieses Attribut auf terrace gesetzt ist, das Residence Device in den Status "gone" geht und SelfDefence aktiv ist (ohne das das Reading selfDefense gesetzt sein muss), wird das Rollo geschlossen / default window wenn nicht gesetzt</li>
|
||||||
<li>ASC_Time_Down_Early - Sunset frühste Zeit zum Runterfahren / default 16:00 wenn nicht gesetzt</li>
|
<li>ASC_Time_Down_Early - Sunset frühste Zeit zum Runterfahren / default 16:00 wenn nicht gesetzt</li>
|
||||||
<li>ASC_Time_Down_Late - Sunset späteste Zeit zum Runterfahren / default 22:00 wenn nicht gesetzt</li>
|
<li>ASC_Time_Down_Late - Sunset späteste Zeit zum Runterfahren / default 22:00 wenn nicht gesetzt</li>
|
||||||
@ -5177,7 +5268,7 @@ sub getblockAscDrivesAfterManual {
|
|||||||
<li>ASC_Ventilate_Pos - in 10 Schritten von 0 bis 100, Default ist abhängig vom Attribut ASC</li>
|
<li>ASC_Ventilate_Pos - in 10 Schritten von 0 bis 100, Default ist abhängig vom Attribut ASC</li>
|
||||||
<li>ASC_Ventilate_Window_Open - auf lüften, wenn das Fenster gekippt/geöffnet wird und aktuelle Position unterhalb der Lüften-Position ist / default on wenn nicht gesetzt</li>
|
<li>ASC_Ventilate_Window_Open - auf lüften, wenn das Fenster gekippt/geöffnet wird und aktuelle Position unterhalb der Lüften-Position ist / default on wenn nicht gesetzt</li>
|
||||||
<li>ASC_WiggleValue - Wert um welchen sich die Position des Rollladens ändern soll / default 5 wenn nicht gesetzt</li>
|
<li>ASC_WiggleValue - Wert um welchen sich die Position des Rollladens ändern soll / default 5 wenn nicht gesetzt</li>
|
||||||
<li>ASC_WindParameters - TRIGGERMAX[:HYSTERESE] [DRIVEPOSITION] / Angabe von Max Wert ab dem für Wind getriggert werden soll, Hytsrese Wert ab dem der Windschutz aufgehoben werden soll TRIGGERMAX - HYSTERESE / Ist es bei einigen Rollläden nicht gewünscht das gefahren werden soll, so ist das Attribut ASC_WindProtection auf off zu setzen. / default '50:20 ClosedPosition' wenn nicht gesetzt</li>
|
<li>ASC_WindParameters - TRIGGERMAX[:HYSTERESE] [DRIVEPOSITION] / Angabe von Max Wert ab dem für Wind getriggert werden soll, Hytsrese Wert ab dem der Windschutz aufgehoben werden soll TRIGGERMAX - HYSTERESE / Ist es bei einigen Rollläden nicht gewünscht das gefahren werden soll, so ist das Attribut ASC_WindProtection auf off zu setzen. / default '50:20 ClosedPosition' wenn nicht gesetzt</li>
|
||||||
<li>ASC_WindProtection - on/off aktiviert den Windschutz für diesen Rollladen. / default on wenn nicht gesetzt.</li>
|
<li>ASC_WindProtection - on/off aktiviert den Windschutz für diesen Rollladen. / default on wenn nicht gesetzt.</li>
|
||||||
<li>ASC_WindowRec - Name des Fensterkontaktes, an dessen Fenster der Rollladen angebracht ist / default none wenn nicht gesetzt</li>
|
<li>ASC_WindowRec - Name des Fensterkontaktes, an dessen Fenster der Rollladen angebracht ist / default none wenn nicht gesetzt</li>
|
||||||
<li>ASC_WindowRec_subType - Typ des verwendeten Fensterkontaktes: twostate (optisch oder magnetisch) oder threestate (Drehgriffkontakt) / default twostate wenn nicht gesetzt</li>
|
<li>ASC_WindowRec_subType - Typ des verwendeten Fensterkontaktes: twostate (optisch oder magnetisch) oder threestate (Drehgriffkontakt) / default twostate wenn nicht gesetzt</li>
|
||||||
|
Loading…
Reference in New Issue
Block a user