Commandref Patch von Tom eingearbietet, erste Objektroutinen für die Beschattung erstellt

This commit is contained in:
Marko Oldenburg 2018-11-12 12:56:18 +01:00
parent 2c9b546a2f
commit 76c38ee079

View File

@ -9,6 +9,8 @@
# - Bernd (Cluni) this module is based on the logic of his script "Rollladensteuerung für HM/ROLLO inkl. Abschattung und Komfortfunktionen in Perl" (https://forum.fhem.de/index.php/topic,73964.0.html) # - Bernd (Cluni) this module is based on the logic of his script "Rollladensteuerung für HM/ROLLO inkl. Abschattung und Komfortfunktionen in Perl" (https://forum.fhem.de/index.php/topic,73964.0.html)
# - Beta-User for many tests and ideas # - Beta-User for many tests and ideas
# - pc1246 write english commandref # - pc1246 write english commandref
# - sledge fix many typo in commandref
# - many User that use with modul and report bugs
# #
# #
# This script is free software; you can redistribute it and/or modify # This script is free software; you can redistribute it and/or modify
@ -39,7 +41,7 @@ package main;
use strict; use strict;
use warnings; use warnings;
my $version = "0.2.1dev9"; my $version = "0.2.1dev11";
sub AutoShuttersControl_Initialize($) { sub AutoShuttersControl_Initialize($) {
my ($hash) = @_; my ($hash) = @_;
@ -200,6 +202,7 @@ my %userAttrList = (
'ASC_Self_Defense_Exclude:on,off' => 'off', 'ASC_Self_Defense_Exclude:on,off' => 'off',
'ASC_BrightnessMinVal' => -1, 'ASC_BrightnessMinVal' => -1,
'ASC_BrightnessMaxVal' => -1, 'ASC_BrightnessMaxVal' => -1,
'ASC_WiggleValue' => 5,
); );
my %posSetCmds = ( my %posSetCmds = (
@ -259,7 +262,7 @@ sub Define($$) {
CommandAttr( undef, $name . ' ASC_temperatureReading temperature' ) CommandAttr( undef, $name . ' ASC_temperatureReading temperature' )
if ( $ascDev->getTempReading eq 'none' ); if ( $ascDev->getTempReading eq 'none' );
CommandAttr( undef, $name . ' ASC_freezeTemp 3' ) CommandAttr( undef, $name . ' ASC_freezeTemp 3' )
if ( $ascDev->getAntifreezeTemp eq 'none' ); if ( $ascDev->getFreezeTemp eq 'none' );
CommandAttr( undef, CommandAttr( undef,
$name $name
. ' devStateIcon selfeDefense.terrace:fts_door_tilt created.new.drive.timer:clock .*asleep:scene_sleeping roommate.(awoken|home):user_available residents.(home|awoken):status_available manual:fts_shutter_manual selfeDefense.active:status_locked selfeDefense inactive:status_open day.open:scene_day night close:scene_night' . ' devStateIcon selfeDefense.terrace:fts_door_tilt created.new.drive.timer:clock .*asleep:scene_sleeping roommate.(awoken|home):user_available residents.(home|awoken):status_available manual:fts_shutter_manual selfeDefense.active:status_locked selfeDefense inactive:status_open day.open:scene_day night close:scene_night'
@ -392,7 +395,7 @@ sub Notify($$) {
} }
} }
elsif ( grep /^partyMode:.off$/, @{$events} ) { elsif ( grep /^partyMode:.off$/, @{$events} ) {
PartyModeEventProcessing($hash); EventProcessingPartyMode($hash);
} }
elsif ( grep /^sunriseTimeWeHoliday:.(on|off)$/, @{$events} ) { elsif ( grep /^sunriseTimeWeHoliday:.(on|off)$/, @{$events} ) {
RenewSunRiseSetShuttersTimer($hash); RenewSunRiseSetShuttersTimer($hash);
@ -406,7 +409,7 @@ sub Notify($$) {
@{$events} @{$events}
) )
{ {
GeneralEventProcessing( $hash, undef, join( ' ', @{$events} ) ); EventProcessingGeneral( $hash, undef, join( ' ', @{$events} ) );
} }
elsif ( elsif (
grep grep
@ -414,20 +417,20 @@ sub Notify($$) {
@{$events} @{$events}
) )
{ {
GeneralEventProcessing( $hash, undef, join( ' ', @{$events} ) ); EventProcessingGeneral( $hash, undef, join( ' ', @{$events} ) );
} }
} }
elsif ( grep /^($posReading):\s\d+$/, @{$events} ) { elsif ( grep /^($posReading):\s\d+$/, @{$events} ) {
ShuttersEventProcessing( $hash, $devname, join( ' ', @{$events} ) ); EventProcessingShutters( $hash, $devname, join( ' ', @{$events} ) );
} }
else { else {
GeneralEventProcessing( $hash, $devname, join( ' ', @{$events} ) ) EventProcessingGeneral( $hash, $devname, join( ' ', @{$events} ) )
; # bei allen anderen Events wird die entsprechende Funktion zur Verarbeitung aufgerufen ; # bei allen anderen Events wird die entsprechende Funktion zur Verarbeitung aufgerufen
} }
return; return;
} }
sub GeneralEventProcessing($$$) { sub EventProcessingGeneral($$$) {
my ( $hash, $devname, $events ) = @_; my ( $hash, $devname, $events ) = @_;
my $name = $hash->{NAME}; my $name = $hash->{NAME};
@ -436,20 +439,20 @@ sub GeneralEventProcessing($$$) {
while ( my ( $device, $deviceAttr ) = while ( my ( $device, $deviceAttr ) =
each %{ $hash->{monitoredDevs}{$devname} } ) each %{ $hash->{monitoredDevs}{$devname} } )
{ {
WindowRecEventProcessing( $hash, $device, $events ) EventProcessingWindowRec( $hash, $device, $events )
if ( $deviceAttr eq 'ASC_WindowRec' ) if ( $deviceAttr eq 'ASC_WindowRec' )
; # ist es ein Fensterdevice wird die Funktion gestartet ; # ist es ein Fensterdevice wird die Funktion gestartet
RoommateEventProcessing( $hash, $device, $events ) EventProcessingRoommate( $hash, $device, $events )
if ( $deviceAttr eq 'ASC_Roommate_Device' ) if ( $deviceAttr eq 'ASC_Roommate_Device' )
; # ist es ein Bewohner Device wird diese Funktion gestartet ; # ist es ein Bewohner Device wird diese Funktion gestartet
ResidentsEventProcessing( $hash, $device, $events ) EventProcessingResidents( $hash, $device, $events )
if ( $deviceAttr eq 'ASC_residentsDevice' ); if ( $deviceAttr eq 'ASC_residentsDevice' );
RainEventProcessing( $hash, $device, $events ) EventProcessingRain( $hash, $device, $events )
if ( $deviceAttr eq 'ASC_rainSensorDevice' ); if ( $deviceAttr eq 'ASC_rainSensorDevice' );
$shutters->setShuttersDev($device) $shutters->setShuttersDev($device)
if ( $deviceAttr eq 'ASC_Shading_Brightness_Sensor' ); if ( $deviceAttr eq 'ASC_Shading_Brightness_Sensor' );
BrightnessEventProcessing( $hash, $device, $events ) EventProcessingBrightness( $hash, $device, $events )
if ( if (
$deviceAttr eq 'ASC_Shading_Brightness_Sensor' $deviceAttr eq 'ASC_Shading_Brightness_Sensor'
and ( $shutters->getDown eq 'brightness' and ( $shutters->getDown eq 'brightness'
@ -824,7 +827,7 @@ sub DeleteNotifyDev($@) {
} }
## Sub zum steuern der Rolläden bei einem Fenster Event ## Sub zum steuern der Rolläden bei einem Fenster Event
sub WindowRecEventProcessing($@) { sub EventProcessingWindowRec($@) {
my ( $hash, $shuttersDev, $events ) = @_; my ( $hash, $shuttersDev, $events ) = @_;
my $name = $hash->{NAME}; my $name = $hash->{NAME};
@ -888,7 +891,7 @@ sub WindowRecEventProcessing($@) {
} }
## Sub zum steuern der Rolladen bei einem Bewohner/Roommate Event ## Sub zum steuern der Rolladen bei einem Bewohner/Roommate Event
sub RoommateEventProcessing($@) { sub EventProcessingRoommate($@) {
my ( $hash, $shuttersDev, $events ) = @_; my ( $hash, $shuttersDev, $events ) = @_;
my $name = $hash->{NAME}; my $name = $hash->{NAME};
@ -897,10 +900,10 @@ sub RoommateEventProcessing($@) {
if ( $events =~ m#$reading:\s(absent|gotosleep|asleep|awoken|home)# ) { if ( $events =~ m#$reading:\s(absent|gotosleep|asleep|awoken|home)# ) {
Log3( $name, 4, Log3( $name, 4,
"AutoShuttersControl ($name) - RoommateEventProcessing: $shutters->getRoommatesReading" "AutoShuttersControl ($name) - EventProcessingRoommate: $shutters->getRoommatesReading"
); );
Log3( $name, 4, Log3( $name, 4,
"AutoShuttersControl ($name) - RoommateEventProcessing: $shuttersDev und Events $events" "AutoShuttersControl ($name) - EventProcessingRoommate: $shuttersDev und Events $events"
); );
if ( if (
@ -990,7 +993,7 @@ sub RoommateEventProcessing($@) {
} }
} }
sub ResidentsEventProcessing($@) { sub EventProcessingResidents($@) {
my ( $hash, $device, $events ) = @_; my ( $hash, $device, $events ) = @_;
my $name = $device; my $name = $device;
@ -1092,7 +1095,7 @@ sub ResidentsEventProcessing($@) {
} }
} }
sub RainEventProcessing($@) { sub EventProcessingRain($@) {
my ( $hash, $device, $events ) = @_; my ( $hash, $device, $events ) = @_;
my $name = $device; my $name = $device;
my $reading = $ascDev->getRainSensorReading; my $reading = $ascDev->getRainSensorReading;
@ -1124,7 +1127,7 @@ sub RainEventProcessing($@) {
} }
} }
sub BrightnessEventProcessing($@) { sub EventProcessingBrightness($@) {
my ( $hash, $shuttersDev, $events ) = @_; my ( $hash, $shuttersDev, $events ) = @_;
my $name = $hash->{NAME}; my $name = $hash->{NAME};
$shutters->setShuttersDev($shuttersDev); $shutters->setShuttersDev($shuttersDev);
@ -1163,7 +1166,7 @@ sub BrightnessEventProcessing($@) {
) )
{ {
Log3( $name, 4, Log3( $name, 4,
"AutoShuttersControl ($shuttersDev) - BrightnessEventProcessing: Steuerung für Morgens" "AutoShuttersControl ($shuttersDev) - EventProcessingBrightness: Steuerung für Morgens"
); );
my $homemode = $shutters->getRoommatesStatus; my $homemode = $shutters->getRoommatesStatus;
$homemode = $ascDev->getResidentsStatus $homemode = $ascDev->getResidentsStatus
@ -1201,7 +1204,7 @@ sub BrightnessEventProcessing($@) {
) )
{ {
Log3( $name, 4, Log3( $name, 4,
"AutoShuttersControl ($shuttersDev) - BrightnessEventProcessing: Steuerung für Abends" "AutoShuttersControl ($shuttersDev) - EventProcessingBrightness: Steuerung für Abends"
); );
my $posValue; my $posValue;
@ -1225,7 +1228,7 @@ sub BrightnessEventProcessing($@) {
} }
} }
sub PartyModeEventProcessing($) { sub EventProcessingPartyMode($) {
my ($hash) = @_; my ($hash) = @_;
my $name = $hash->{NAME}; my $name = $hash->{NAME};
@ -1236,16 +1239,16 @@ sub PartyModeEventProcessing($) {
and $shutters->getSubTyp eq 'threestate' ) and $shutters->getSubTyp eq 'threestate' )
{ {
Log3( $name, 4, Log3( $name, 4,
"AutoShuttersControl ($name) - PartyModeEventProcessing Fenster offen" "AutoShuttersControl ($name) - EventProcessingPartyMode Fenster offen"
); );
$shutters->setDelayCmd( $shutters->getClosedPos ); $shutters->setDelayCmd( $shutters->getClosedPos );
Log3( $name, 4, Log3( $name, 4,
"AutoShuttersControl ($name) - PartyModeEventProcessing - Spring in ShuttersCommandDelaySet" "AutoShuttersControl ($name) - EventProcessingPartyMode - Spring in ShuttersCommandDelaySet"
); );
} }
else { else {
Log3( $name, 4, Log3( $name, 4,
"AutoShuttersControl ($name) - PartyModeEventProcessing Fenster nicht offen" "AutoShuttersControl ($name) - EventProcessingPartyMode Fenster nicht offen"
); );
ShuttersCommandSet( ShuttersCommandSet(
$hash, $hash,
@ -1261,7 +1264,7 @@ sub PartyModeEventProcessing($) {
} }
} }
sub ShuttersEventProcessing($@) { sub EventProcessingShutters($@) {
my ( $hash, $shuttersDev, $events ) = @_; my ( $hash, $shuttersDev, $events ) = @_;
my $name = $hash->{NAME}; my $name = $hash->{NAME};
@ -1299,7 +1302,7 @@ sub ShuttersCommandSet($$$) {
and $ascDev->getLockOut eq 'on' and $ascDev->getLockOut eq 'on'
) )
or ( $shutters->getAntiFreeze eq 'on' or ( $shutters->getAntiFreeze eq 'on'
and $ascDev->getOutTemp <= $ascDev->getAntifreezeTemp ) and $ascDev->getOutTemp <= $ascDev->getFreezeTemp )
) )
{ {
$shutters->setDelayCmd($posValue); $shutters->setDelayCmd($posValue);
@ -1473,15 +1476,15 @@ sub wiggle($$) {
if ( $shutters->getShuttersPosCmdValueNegate ) { if ( $shutters->getShuttersPosCmdValueNegate ) {
if ( $shutters->getStatus >= $shutters->getOpenPos / 2 ) { if ( $shutters->getStatus >= $shutters->getOpenPos / 2 ) {
$shutters->setDriveCmd( $shutters->getStatus + 5 ); $shutters->setDriveCmd( $shutters->getStatus + $shutters->getWiggleValue );
} }
else { $shutters->setDriveCmd( $shutters->getStatus - 5 ); } else { $shutters->setDriveCmd( $shutters->getStatus - $shutters->getWiggleValue ); }
} }
else { else {
if ( $shutters->getStatus >= $shutters->getOpenPos / 2 ) { if ( $shutters->getStatus >= $shutters->getOpenPos / 2 ) {
$shutters->setDriveCmd( $shutters->getStatus - 5 ); $shutters->setDriveCmd( $shutters->getStatus - $shutters->getWiggleValue );
} }
else { $shutters->setDriveCmd( $shutters->getStatus + 5 ); } else { $shutters->setDriveCmd( $shutters->getStatus + $shutters->getWiggleValue ); }
} }
InternalTimer( gettimeofday() + 60, 'AutoShuttersControl::SetCmdFn', \%h ); InternalTimer( gettimeofday() + 60, 'AutoShuttersControl::SetCmdFn', \%h );
@ -2107,6 +2110,10 @@ sub SetCmdFn($) {
. $posValue ); . $posValue );
} }
sub EventProcessingTwilightDevice() {
}
########## Begin der Klassendeklarierungen für OOP (Objektorientierte Programmierung) ######################### ########## Begin der Klassendeklarierungen für OOP (Objektorientierte Programmierung) #########################
## Klasse Rolläden (Shutters) und die Subklassen Attr und Readings ## ## Klasse Rolläden (Shutters) und die Subklassen Attr und Readings ##
## desweiteren wird noch die Klasse ASC_Roommate mit eingebunden ## desweiteren wird noch die Klasse ASC_Roommate mit eingebunden
@ -2436,6 +2443,12 @@ sub getSelfDefenseExclude {
return AttrVal( $self->{shuttersDev}, 'ASC_Self_Defense_Exclude', 'off' ); return AttrVal( $self->{shuttersDev}, 'ASC_Self_Defense_Exclude', 'off' );
} }
sub getWiggleValue {
my $self = shift;
return AttrVal( $self->{shuttersDev}, 'ASC_WiggleValue', 5 );
}
sub getShadingBrightnessSensor { sub getShadingBrightnessSensor {
my $self = shift; my $self = shift;
my $default = $self->{defaultarg}; my $default = $self->{defaultarg};
@ -2454,6 +2467,24 @@ sub getShadingBrightnessReading {
$default ); $default );
} }
sub getDirection {
my $self = shift;
return AttrVal( $self->{shuttersDev}, 'ASC_Shading_Direction', -1 );
}
sub getShadingAngleLeft {
my $self = shift;
return AttrVal( $self->{shuttersDev}, 'ASC_Shading_Angle_Left', -1 );
}
sub getShadingAngleRight {
my $self = shift;
return AttrVal( $self->{shuttersDev}, 'ASC_Shading_Angle_Right', -1 );
}
sub getOffset { sub getOffset {
my $self = shift; my $self = shift;
@ -2887,7 +2918,7 @@ sub getOutTemp {
my $self = shift; my $self = shift;
my $name = $self->{name}; my $name = $self->{name};
return ReadingsVal( $ascDev->getTempSensor, $ascDev->getTempReading, 100 ); return ReadingsVal( $ascDev->_getTempSensor, $ascDev->getTempReading, 100 );
} }
sub getResidentsStatus { sub getResidentsStatus {
@ -3010,16 +3041,16 @@ sub getAutoShuttersControlComfort {
return AttrVal( $name, 'ASC_autoShuttersControlComfort', 'off' ); return AttrVal( $name, 'ASC_autoShuttersControlComfort', 'off' );
} }
sub getAntifreezeTemp { sub getFreezeTemp {
my $self = shift; my $self = shift;
my $name = $self->{name}; my $name = $self->{name};
my $default = $self->{defaultarg}; my $default = $self->{defaultarg};
$default = 'none' if ( not defined($default) ); $default = 'none' if ( not defined($default) );
return AttrVal( $name, 'ASC_antifreezeTemp', $default ); return AttrVal( $name, 'ASC_freezeTemp', $default );
} }
sub getTempSensor { sub _getTempSensor {
my $self = shift; my $self = shift;
my $name = $self->{name}; my $name = $self->{name};
my $default = $self->{defaultarg}; my $default = $self->{defaultarg};
@ -3102,10 +3133,10 @@ sub getRainSensorShuttersClosedPos {
<br><br> <br><br>
Example: Example:
<ul><br> <ul><br>
<code>define shuttersteuerung AutoShuttersControl</code><br> <code>define myASControl AutoShuttersControl</code><br>
</ul> </ul>
<br> <br>
This command creates a AutoShuttersControl device named shutter.<br> This command creates a AutoShuttersControl device named myASControl.<br>
After creating the device, all shutter devices which shall be controlled have to get set the attribut AutoShuttersControl with value 1 or 2.<br> After creating the device, all shutter devices which shall be controlled have to get set the attribut AutoShuttersControl with value 1 or 2.<br>
Value 1 means "Inverse or shutter e.g.: shutter up 0,shutter down 100 and the command for percentual movement is position",2 = "Homematic Style e.g.: shutter up 100,shutter down 0 and the command for percentual movement istpct.<br> Value 1 means "Inverse or shutter e.g.: shutter up 0,shutter down 100 and the command for percentual movement is position",2 = "Homematic Style e.g.: shutter up 100,shutter down 0 and the command for percentual movement istpct.<br>
If the attribute is set, you may start automatic scan for your devices . If the attribute is set, you may start automatic scan for your devices .
@ -3141,7 +3172,7 @@ sub getRainSensorShuttersClosedPos {
<li>partyMode - on/off activates the global party mode. see reading partyMode</li> <li>partyMode - on/off activates the global party mode. see reading partyMode</li>
<li>lockOut - on/off activates the global lock out mode. see reading lockOut</li> <li>lockOut - on/off activates the global lock out mode. see reading lockOut</li>
<li>renewSetSunriseSunsetTimer - refreshes the timer for sunset, sunrise and the internal timers.</li> <li>renewSetSunriseSunsetTimer - refreshes the timer for sunset, sunrise and the internal timers.</li>
<li>scanForShutters - searches all FHEM devices with attribute "AutoShuttersControl" 1/2</li> <li>scanForShutters - searches all FHEM devices with attribute "ASC" 1/2</li>
<li>sunriseTimeWeHoliday - on/off activates/deactivates respecting attribute ASC_Time_Up_WE_Holiday</li> <li>sunriseTimeWeHoliday - on/off activates/deactivates respecting attribute ASC_Time_Up_WE_Holiday</li>
<li>createNewNotifyDev - recreates the internal structure for NOTIFYDEV - attribute ASC_expert has value 1.</li> <li>createNewNotifyDev - recreates the internal structure for NOTIFYDEV - attribute ASC_expert has value 1.</li>
<li>selfDefense - on/off,activates/deactivates the mode self defense. If the resident device says absent and selfDefense is active, each shutter for open windows will be closed.</li> <li>selfDefense - on/off,activates/deactivates the mode self defense. If the resident device says absent and selfDefense is active, each shutter for open windows will be closed.</li>
@ -3160,7 +3191,7 @@ sub getRainSensorShuttersClosedPos {
<ul> <ul>
In module device In module device
<ul> <ul>
<li>ASC_antifreezeTemp - temperature which inhibits movement of shutter. The last drive command will be stored.</li> <li>ASC_freezeTemp - temperature which inhibits movement of shutter. The last drive command will be stored.</li>
<li>ASC_autoAstroModeEvening - actual REAL,CIVIL,NAUTIC,ASTRONOMIC</li> <li>ASC_autoAstroModeEvening - actual REAL,CIVIL,NAUTIC,ASTRONOMIC</li>
<li>ASC_autoAstroModeEveningHorizon - heighth above horizon if HORIZON is selected at attribute ASC_autoAstroModeEvening.</li> <li>ASC_autoAstroModeEveningHorizon - heighth above horizon if HORIZON is selected at attribute ASC_autoAstroModeEvening.</li>
<li>ASC_autoAstroModeMorning - actual REAL,CIVIL,NAUTIC,ASTRONOMIC</li> <li>ASC_autoAstroModeMorning - actual REAL,CIVIL,NAUTIC,ASTRONOMIC</li>
@ -3190,15 +3221,15 @@ sub getRainSensorShuttersClosedPos {
<li>ASC_AutoAstroModeEveningHorizon - heighth above horizon if HORIZON is selected at attribute ASC_autoAstroModeEvening.</li> <li>ASC_AutoAstroModeEveningHorizon - heighth above horizon if HORIZON is selected at attribute ASC_autoAstroModeEvening.</li>
<li>ASC_AutoAstroModeMorning - actual REAL,CIVIL,NAUTIC,ASTRONOMIC</li> <li>ASC_AutoAstroModeMorning - actual REAL,CIVIL,NAUTIC,ASTRONOMIC</li>
<li>ASC_AutoAstroModeMorningHorizon - heighth above horizon if HORIZON is selected at attribute ASC_autoAstroModeMorning.</li> <li>ASC_AutoAstroModeMorningHorizon - heighth above horizon if HORIZON is selected at attribute ASC_autoAstroModeMorning.</li>
<li>ASC_Closed_Pos - in 10th steps from 0 to 100, default value is pending on attribute AutoShuttersControl</li> <li>ASC_Closed_Pos - in 10th steps from 0 to 100, default value is pending on attribute ASC</li>
<li>ASC_Down - astro/time/brightness with astro sunset will be calculated, with time the value of ASC_Time_Down_Early will be used and with brightness ASC_Time_Down_Early and ASC_Time_Down_Late has to be defined corectly. The timer uses ASC_Time_Down_Late time, during this time ASC_Time_Down_Early and ASC_Time_Down_Late are respected also, to control ASC_brightnessMinVal. If reached the shutter will travel down.</li> <li>ASC_Down - astro/time/brightness with astro sunset will be calculated, with time the value of ASC_Time_Down_Early will be used and with brightness ASC_Time_Down_Early and ASC_Time_Down_Late has to be defined corectly. The timer uses ASC_Time_Down_Late time, during this time ASC_Time_Down_Early and ASC_Time_Down_Late are respected also, to control ASC_brightnessMinVal. If reached the shutter will travel down.</li>
<li>ASC_Mode_Down - always/home/absent/off automatic is used: always/home/absent/off (if no roommate defined and absent is set no control will happen)</li> <li>ASC_Mode_Down - always/home/absent/off automatic is used: always/home/absent/off (if no roommate defined and absent is set no control will happen)</li>
<li>ASC_Mode_Up - always/home/absent/off automatic is used: always/home/absent/off (if no roommate defined and absent is set no control will happen)</li> <li>ASC_Mode_Up - always/home/absent/off automatic is used: always/home/absent/off (if no roommate defined and absent is set no control will happen)</li>
<li>ASC_Drive_Offset - maximum random delay in seconds for calculating drivetimes, 0 means no delay, -1 means the corresponding attribute of the ASC device shall be taken into account.</li> <li>ASC_Drive_Offset - maximum random delay in seconds for calculating drivetimes, 0 means no delay, -1 means the corresponding attribute of the ASC device shall be taken into account.</li>
<li>ASC_Open_Pos - in 10th steps from 0 bis 100, default value is pending from attribute AutoShuttersControl</li> <li>ASC_Open_Pos - in 10th steps from 0 bis 100, default value is pending from attribute ASC</li>
<li>ASC_Partymode - on/off turns the partymode on or off. In case of setting ASC-DEVICE to partyMode on, all drive commands of the shutters which have the attribute set to on, will be stored for later usage.</li> <li>ASC_Partymode - on/off turns the partymode on or off. In case of setting ASC-DEVICE to partyMode on, all drive commands of the shutters which have the attribute set to on, will be stored for later usage.</li>
<li>ASC_Pos_Reading - name of the reading which represents the position of the shutter in percent, is used at unknown device types for set command.</li> <li>ASC_Pos_Reading - name of the reading which represents the position of the shutter in percent, is used at unknown device types for set command.</li>
<li>ASC_Pos_after_ComfortOpen - in 10th steps from 0 bis 100, default value is pending from attribute AutoShuttersControl</li> <li>ASC_Pos_after_ComfortOpen - in 10th steps from 0 bis 100, default value is pending from attribute ASC</li>
<li>ASC_Roommate_Reading - the reading of the roommate device which represents the state</li> <li>ASC_Roommate_Reading - the reading of the roommate device which represents the state</li>
<li>ASC_Roommate_Device - comma seperated names of the roommate device/s representing the habitants of the room of the shutter. Senseless in in any rooms besides sleepingroom and childrens room.</li> <li>ASC_Roommate_Device - comma seperated names of the roommate device/s representing the habitants of the room of the shutter. Senseless in in any rooms besides sleepingroom and childrens room.</li>
<li>ASC_Time_Down_Early - Sunset earliest time to travel down</li> <li>ASC_Time_Down_Early - Sunset earliest time to travel down</li>
@ -3207,7 +3238,7 @@ sub getRainSensorShuttersClosedPos {
<li>ASC_Time_Up_Late - Sunrise latest time to travel up</li> <li>ASC_Time_Up_Late - Sunrise latest time to travel up</li>
<li>ASC_Time_Up_WE_Holiday - Sunrise earliest time to travel up at weekend and/or holiday (we2holiday is respected). Attention should not be bigger than ASC_Time_Up_Late otherwise ASC_Time_Up_Late will be used.</li> <li>ASC_Time_Up_WE_Holiday - Sunrise earliest time to travel up at weekend and/or holiday (we2holiday is respected). Attention should not be bigger than ASC_Time_Up_Late otherwise ASC_Time_Up_Late will be used.</li>
<li>ASC_Up - astro/time/brightness with astro sunrise is calculated, with time the value of ASC_Time_Up_Early is used and with brightness ASC_Time_Up_Early and ASC_Time_Up_Late has to be set correctly. The Timer starts after ASC_Time_Up_Late, but during this time ASC_Time_Up_Early and ASC_Time_Up_Late are used, in combination with the attribute ASC_brightnessMinVal reached, if yes the shutter will travel down</li> <li>ASC_Up - astro/time/brightness with astro sunrise is calculated, with time the value of ASC_Time_Up_Early is used and with brightness ASC_Time_Up_Early and ASC_Time_Up_Late has to be set correctly. The Timer starts after ASC_Time_Up_Late, but during this time ASC_Time_Up_Early and ASC_Time_Up_Late are used, in combination with the attribute ASC_brightnessMinVal reached, if yes the shutter will travel down</li>
<li>ASC_Ventilate_Pos - in 10th steps from 0 bis 100, default value is pending from attribute AutoShuttersControl</li> <li>ASC_Ventilate_Pos - in 10th steps from 0 bis 100, default value is pending from attribute ASC</li>
<li>ASC_Ventilate_Window_Open - drive to airing position if the window is tilted or opened and actual position is below airing position</li> <li>ASC_Ventilate_Window_Open - drive to airing position if the window is tilted or opened and actual position is below airing position</li>
<li>ASC_WindowRec - name of the window sensor mounted to window</li> <li>ASC_WindowRec - name of the window sensor mounted to window</li>
<li>ASC_WindowRec_subType - type of the used window sensor: twostate (optical oder magnetic) or threestate (rotating handle sensor)</li> <li>ASC_WindowRec_subType - type of the used window sensor: twostate (optical oder magnetic) or threestate (rotating handle sensor)</li>
@ -3227,11 +3258,11 @@ sub getRainSensorShuttersClosedPos {
=begin html_DE =begin html_DE
<a name="AutoShuttersControl"></a> <a name="AutoShuttersControl"></a>
<h3>Automatische Rolladensteuerung - ASC</h3> <h3>Automatische Rollladensteuerung - ASC</h3>
<ul> <ul>
<u><b>AutoShuttersControl oder kurz ASC,steuert automatisch Deine Rolladen nach bestimmten Vorgaben. Zum Beispiel Sonnenaufgang und Sonnenuntergang oder je nach Fenstervent</b></u> <u><b>AutoShuttersControl - oder kurz ASC - steuert automatisch Deine Rollläden nach bestimmten Vorgaben. Zum Beispiel Sonnenaufgang und Sonnenuntergang oder je nach Fenstervent</b></u>
<br> <br>
Dieses Modul soll alle vom Modul &uuml;berwachten Roll&auml;den entsprechend der Konfiguration &uuml;ber die Attribute im Rolladen Device steuern. Es wird bei entsprechender Konfiguration zum Beispiel die Roll&auml;den hochfahren wenn ein Bewohner erwacht ist und draussen bereits die Sonne aufgegangen ist. Auch ist es m&ouml;glich das bei ankippen eines Fensters der geschlossene Rolladen in eine L&uuml;ftungsposition f&auml;hrt. Dieses Modul soll alle vom Modul &uuml;berwachten Rolll&auml;den entsprechend der Konfiguration &uuml;ber die Attribute im Rollladen Device steuern. Es wird bei entsprechender Konfiguration zum Beispiel die Rolll&auml;den hochfahren, wenn ein Bewohner erwacht ist und draussen bereits die Sonne aufgegangen ist. Auch ist es m&ouml;glich, dass der geschlossene Rollladen bei Ankippen eines Fensters in eine L&uuml;ftungsposition f&auml;hrt.
<br><br> <br><br>
<a name="AutoShuttersControlDefine"></a> <a name="AutoShuttersControlDefine"></a>
<b>Define</b> <b>Define</b>
@ -3240,12 +3271,12 @@ sub getRainSensorShuttersClosedPos {
<br><br> <br><br>
Example: Example:
<ul><br> <ul><br>
<code>define Rolladensteuerung AutoShuttersControl</code><br> <code>define myASControl AutoShuttersControl</code><br>
</ul> </ul>
<br> <br>
Der Befehl erstellt ein AutoShuttersControl Device mit Namen Rolladen.<br> Der Befehl erstellt ein AutoShuttersControl Device mit Namen myASControl.<br>
Nachdem das Device angelegt wurde,m&uuml;ssen in allen Roll&auml;den Devices welche gesterut werden sollen das Attribut AutoShuttersControl mit Wert 1 oder 2 gesetzt werden.<br> Nachdem das Device angelegt wurde, muss in allen Rolll&auml;den Devices, welche gesteuert werden sollen, das Attribut ASC mit Wert 1 oder 2 gesetzt werden.<br>
Dabei bedeutet 1 = "Inverse oder Rollo Bsp.: Rollo Oben 0,Rollo Unten 100 und der Befehl zum Prozentualen fahren ist position",2 = "Homematic Style Bsp.: Rollo Oben 100,Rollo Unten 0 und der Befehl zum Prozentualen fahren ist pct.<br> Dabei bedeutet 1 = "Inverse oder Rollo - Bsp.: Rollo Oben 0,Rollo Unten 100 und der Befehl zum prozentualen Fahren ist position",2 = "Homematic Style - Bsp.: Rollo Oben 100,Rollo Unten 0 und der Befehl zum prozentualen Fahren ist pct.<br>
Habt Ihr das Attribut gesetzt, k&ouml;nnt Ihr den automatischen Scan nach den Devices anstossen. Habt Ihr das Attribut gesetzt, k&ouml;nnt Ihr den automatischen Scan nach den Devices anstossen.
</ul> </ul>
<br><br> <br><br>
@ -3254,35 +3285,35 @@ sub getRainSensorShuttersClosedPos {
<ul> <ul>
Im Modul Device Im Modul Device
<ul> <ul>
<li>..._nextAstroTimeEvent - Uhrzeit des n&auml;chsten Astro Events,Sonnenauf,Sonnenuntergang oder feste Zeit pro Rollonamen</li> <li>..._nextAstroTimeEvent - Uhrzeit des n&auml;chsten Astro Events: Sonnenauf- oder Sonnenuntergang oder feste Zeit pro Rollonamen</li>
<li>..._PosValue - aktuelle Position des Rolladen</li> <li>..._PosValue - aktuelle Position des Rollladen</li>
<li>..._lastPosValue - letzte Position des Rolladen</li> <li>..._lastPosValue - letzte Position des Rollladen</li>
<li>..._lastDelayPosValue - letzter abgesetzter Fahrbefehl welcher beim n&auml;chsten zul&auml;ssigen Event ausgef&uuml;hrt wird.</li> <li>..._lastDelayPosValue - letzter abgesetzter Fahrbefehl, welcher beim n&auml;chsten zul&auml;ssigen Event ausgef&uuml;hrt wird.</li>
<li>partyMode - on/off aktiviert den globalen Partymodus,alle Roll&auml;den welche das Attribut ASC_Partymode bei sich auf on gestellt haben werden nicht mehr gesteuert. Der letzte Schaltbefehle welcher durch ein Fensterevent oder Bewohnerstatus an die Roll&auml;den gesendet wurde,wird beim off setzen durch set ASC-Device partyMode off ausgef&uuml;hrt</li> <li>partyMode - on/off - aktiviert den globalen Partymodus: Alle Rollladen Devices, welche das Attribut ASC_Partymode auf on gestellt haben, werden nicht mehr gesteuert. Der letzte Schaltbefehl, der durch ein Fensterevent oder Bewohnerstatus an die Rolll&auml;den gesendet wurde, wird beim off setzen durch set ASC-Device partyMode off ausgef&uuml;hrt</li>
<li>lockOut - on/off f&uuml;r das aktivieren des Aussperrschutzes gem&auml;&szlig; dem entsprechenden Attribut ASC_lock-out im jeweiligen Rolladen. (siehe Beschreibung bei den Attributen f&uuml;r die Rolladendevices)</li> <li>lockOut - on/off - f&uuml;r das Aktivieren des Aussperrschutzes gem&auml;&szlig; des entsprechenden Attributs ASC_lock-out im jeweiligen Rollladen. (siehe Beschreibung bei den Attributen f&uuml;r die Rollladendevices)</li>
<li>room_... - Auflistung aller Roll&auml;den welche in den jeweiligen R&auml;men gefunden wurde,Bsp.: room_Schlafzimmer,Terrasse</li> <li>room_... - Auflistung aller Rolll&auml;den, welche in den jeweiligen R&auml;men gefunden wurde,Bsp.: room_Schlafzimmer,Terrasse</li>
<li>state - Status des Devices active,enabled,disabled</li> <li>state - Status des Devices: active,enabled,disabled oder Info zur letzten Fahrt</li>
<li>sunriseTimeWeHoliday - on/off wird das Rolladen Device Attribut Attributes ASC_Time_Up_WE_Holiday Beachtet oder nicht</li> <li>sunriseTimeWeHoliday - on/off - wird das Rollladen Device Attribut ASC_Time_Up_WE_Holiday beachtet oder nicht</li>
<li>userAttrList - Status der UserAttribute welche an die Roll&auml;den gesendet werden</li> <li>userAttrList - Status der UserAttribute, welche an die Rolll&auml;den gesendet werden</li>
</ul><br> </ul><br>
In den Roll&auml;den Devices In den Rolll&auml;den Devices
<ul> <ul>
<li>ASC_Time_DriveUp - Sonnenaufgangszei f&uuml;r das Rollo</li> <li>ASC_Time_DriveUp - Sonnenaufgangszeit f&uuml;r das Rollo</li>
<li>ASC_Time_DriveDown - Sonnenuntergangszeit f&uuml;r das Rollo</li> <li>ASC_Time_DriveDown - Sonnenuntergangszeit f&uuml;r das Rollo</li>
<li>ASC_ShuttersLastDrive - Grund des letzten fahrens vom Rolladen</li> <li>ASC_ShuttersLastDrive - Grund des letzten Fahrens vom Rollladen</li>
</ul> </ul>
</ul> </ul>
<br><br> <br><br>
<a name="AutoShuttersControlSet"></a> <a name="AutoShuttersControlSet"></a>
<b>Set</b> <b>Set</b>
<ul> <ul>
<li>partyMode - on/off aktiviert den globalen Partymodus. Siehe Reading partyMode</li> <li>partyMode - on/off - aktiviert den globalen Partymodus. Siehe Reading partyMode</li>
<li>lockOut - on/off aktiviert den globalen Aussperrschutz. Siehe Reading partyMode</li> <li>lockOut - on/off - aktiviert den globalen Aussperrschutz. Siehe Reading partyMode</li>
<li>renewSetSunriseSunsetTimer - erneuert bei allen Roll&auml;den die Zeiten f&uuml;r Sunset und Sunrise und setzt die internen Timer neu.</li> <li>renewSetSunriseSunsetTimer - erneuert bei allen Rolll&auml;den die Zeiten f&uuml;r Sunset und Sunrise und setzt die internen Timer neu.</li>
<li>scanForShutters - sucht alle FHEM Devices mit dem Attribut "AutoShuttersControl" 1/2</li> <li>scanForShutters - sucht alle FHEM Devices mit dem Attribut "ASC" = 1 oder 2</li>
<li>sunriseTimeWeHoliday - on/off aktiviert/deaktiviert die Beachtung des Rolladen Device Attributes ASC_Time_Up_WE_Holiday</li> <li>sunriseTimeWeHoliday - on/off - aktiviert/deaktiviert die Beachtung des Rollladen Device Attributes ASC_Time_Up_WE_Holiday</li>
<li>createNewNotifyDev - Legt die interne Struktur f&uuml;r NOTIFYDEV neu an - das Attribut ASC_expert muss 1 sein.</li> <li>createNewNotifyDev - Legt die interne Struktur f&uuml;r NOTIFYDEV neu an - das Attribut ASC_expert muss 1 sein.</li>
<li>selfDefense - on/off,aktiviert/deaktiviert den Selbstschutz,wenn das Residents Device absent meldet und selfDefense aktiv ist und ein Fenster im Haus steht noch offen,wird an diesem Fenster das Rollo runter gefahren</li> <li>selfDefense - on/off - aktiviert/deaktiviert den Selbstschutz, wenn das Residents Device absent meldet, selfDefense aktiv ist und ein Fenster im Haus noch offen steht, wird an diesem Fenster das Rollo runtergefahren</li>
<li>wiggle - bewegt einen Rollladen oder alle Rolll&auml;den (f&uuml;r Abschreckungszwecke bei der Alarmierung) um 5%, und nach 1 Minute wieder zur&uuml;ck zur Ursprungsposition</li> <li>wiggle - bewegt einen Rollladen oder alle Rolll&auml;den (f&uuml;r Abschreckungszwecke bei der Alarmierung) um 5%, und nach 1 Minute wieder zur&uuml;ck zur Ursprungsposition</li>
</ul> </ul>
<br><br> <br><br>
@ -3290,7 +3321,7 @@ sub getRainSensorShuttersClosedPos {
<b>Get</b> <b>Get</b>
<ul> <ul>
<li>showShuttersInformations - zeigt eine &Uuml;bersicht der Autofahrzeiten</li> <li>showShuttersInformations - zeigt eine &Uuml;bersicht der Autofahrzeiten</li>
<li>showNotifyDevsInformations - zeigt eine &Uuml;bersicht der abgelegten NOTIFYDEV Struktur. Diehnt zur Kontrolle - das Attribut ASC_expert muss 1 sein.</li> <li>showNotifyDevsInformations - zeigt eine &Uuml;bersicht der abgelegten NOTIFYDEV Struktur. Dient zur Kontrolle - das Attribut ASC_expert muss 1 sein.</li>
</ul> </ul>
<br><br> <br><br>
<a name="AutoShuttersControlAttributes"></a> <a name="AutoShuttersControlAttributes"></a>
@ -3298,65 +3329,66 @@ sub getRainSensorShuttersClosedPos {
<ul> <ul>
Im Modul Device Im Modul Device
<ul> <ul>
<li>ASC_antifreezeTemp - Temperatur ab welcher der Frostschutz greifen soll und das Rollo nicht mehr f&auml;hrt. Der letzte Fahrbefehl wird gespeichert.</li> <li>ASC_freezeTemp - Temperatur, ab welcher der Frostschutz greifen soll und das Rollo nicht mehr f&auml;hrt. Der letzte Fahrbefehl wird gespeichert.</li>
<li>ASC_autoAstroModeEvening - aktuell REAL,CIVIL,NAUTIC,ASTRONOMIC</li> <li>ASC_autoAstroModeEvening - aktuell REAL,CIVIL,NAUTIC,ASTRONOMIC</li>
<li>ASC_autoAstroModeEveningHorizon - H&ouml;he &uuml;ber Horizont wenn beim Attribut ASC_autoAstroModeEvening HORIZON ausgew&auml;hlt</li> <li>ASC_autoAstroModeEveningHorizon - H&ouml;he &uuml;ber Horizont wenn beim Attribut ASC_autoAstroModeEvening HORIZON ausgew&auml;hlt</li>
<li>ASC_autoAstroModeMorning - aktuell REAL,CIVIL,NAUTIC,ASTRONOMIC</li> <li>ASC_autoAstroModeMorning - aktuell REAL,CIVIL,NAUTIC,ASTRONOMIC</li>
<li>ASC_autoAstroModeMorningHorizon - H&ouml;he &uuml;ber Horizont wenn beim Attribut ASC_autoAstroModeMorning HORIZON ausgew&auml;hlt</li> <li>ASC_autoAstroModeMorningHorizon - H&ouml;he &uuml;ber Horizont wenn beim Attribut ASC_autoAstroModeMorning HORIZON ausgew&auml;hlt</li>
<li>ASC_autoShuttersControlComfort - on/off schaltet die Komfortfunktion an. Bedeutet das ein Rolladen mit einem threestate Sensor am Fenster beim &ouml;ffnen in eine weit offen Position f&auml;hrt. Die Offenposition wird beim Rolladen &uuml;ber das Attribut ASC_Pos_after_ComfortOpen eingestellt.</li> <li>ASC_autoShuttersControlComfort - on/off - schaltet die Komfortfunktion an. Bedeutet, dass ein Rollladen mit einem threestate Sensor am Fenster beim &ouml;ffnen in eine Offenposition f&auml;hrt, die beim Rollladen &uuml;ber das Attribut ASC_Pos_after_ComfortOpen eingestellt wird.</li>
<li>ASC_autoShuttersControlEvening - on/off,ob Abends die Roll&auml;den automatisch nach Zeit gesteuert werden sollen</li> <li>ASC_autoShuttersControlEvening - on/off - ob Abends die Rolll&auml;den automatisch nach Zeit gesteuert werden sollen</li>
<li>ASC_autoShuttersControlMorning - on/off,ob Morgens die Roll&auml;den automatisch nach Zeit gesteuert werden sollen</li> <li>ASC_autoShuttersControlMorning - on/off - ob Morgens die Rolll&auml;den automatisch nach Zeit gesteuert werden sollen</li>
<li>ASC_temperatureReading - Reading f&uuml;r die Aussentemperatur</li> <li>ASC_temperatureReading - Reading f&uuml;r die Aussentemperatur</li>
<li>ASC_temperatureSensor - Device f&uuml;r die Aussentemperatur</li> <li>ASC_temperatureSensor - Device f&uuml;r die Aussentemperatur</li>
<li>ASC_timeUpHolidayDevice - Device zur Urlaubserkennung oder Sonstiges / muss 0 oder 1 im Reading beinhalten.</li> <li>ASC_timeUpHolidayDevice - Device zur Urlaubserkennung oder Sonstiges / muss 0 oder 1 im Reading beinhalten.</li>
<li>ASC_timeUpHolidayReading - passendes Reading zum ASC_timeUpHolidayDevice zur Urlaubserkennung oder Sonstiges / muss 0 oder 1 beinhalten.</li> <li>ASC_timeUpHolidayReading - passendes Reading zum ASC_timeUpHolidayDevice zur Urlaubserkennung oder Sonstiges / muss 0 oder 1 beinhalten.</li>
<li>ASC_residentsDevice - Devicenamen vom Residents Device der obersten Ebene</li> <li>ASC_residentsDevice - Devicenamen des Residents Device der obersten Ebene</li>
<li>ASC_residentsDeviceReading - Status Reading vom Residents Device der obersten Ebene</li> <li>ASC_residentsDeviceReading - Status Reading vom Residents Device der obersten Ebene</li>
<li>ASC_brightnessMinVal - minimaler Lichtwert ab welchen Schaltbedingungen gepr&uuml;ft werden sollen</li> <li>ASC_brightnessMinVal - minimaler Lichtwert, bei dem Schaltbedingungen gepr&uuml;ft werden sollen</li>
<li>ASC_brightnessMaxVal - maximaler Lichtwert ab welchen Schaltbedingungen gepr&uuml;ft werden sollen</li> <li>ASC_brightnessMaxVal - maximaler Lichtwert, bei dem Schaltbedingungen gepr&uuml;ft werden sollen</li>
<li>ASC_rainSensorDevice - Device welches bei Regen getriggert werden soll</li> <li>ASC_rainSensorDevice - Device, welches bei Regen getriggert werden soll</li>
<li>ASC_rainSensorReading - das ensprechende Reading zum Regendevice</li> <li>ASC_rainSensorReading - das ensprechende Reading zum Regendevice</li>
<li>ASC_rainSensorShuttersClosedPos - Position n welche der Rolladen fahren soll wenn es Regnet</li> <li>ASC_rainSensorShuttersClosedPos - Position in pct, welche der Rollladen anfahren soll, wenn es Regnet</li>
<li>ASC_shuttersDriveOffset - maximale zuf&auml;llige Verz&ouml;gerung in Sekunden bei der Berechnung der Fahrzeiten, 0 bedeutet sofort</li> <li>ASC_shuttersDriveOffset - maximal zuf&auml;llige Verz&ouml;gerung in Sekunden bei der Berechnung der Fahrzeiten, 0 bedeutet keine Verz&ouml;gerung</li>
<li>ASC_twilightDevice - Device welches Informationen zum Sonnenstand liefert, wird unter anderem f&uuml;r die Beschattung verwendet. Nach dem ersten automatischen finden steht das Device noch nicht in der NOTIFYDEV, hierf&uuml;r muss einmalig unter den Attributen auf den Attributsnamen geklickt werden und dann auf das 'attr ASC_twilightDevice ...'</li> <li>ASC_twilightDevice - Device welches Informationen zum Sonnenstand liefert, wird unter anderem f&uuml;r die Beschattung verwendet. Nach dem ersten automatischen finden steht das Device noch nicht in der NOTIFYDEV, hierf&uuml;r muss einmalig unter den Attributen auf den Attributsnamen geklickt werden und dann auf das 'attr ASC_twilightDevice ...'</li>
<li>ASC_expert - ist der Wert 1 werden erweiterte Informationen bez&uuml;glich des NotifyDevs unter set und get angezeigt</li> <li>ASC_expert - ist der Wert 1 werden erweiterte Informationen bez&uuml;glich des NotifyDevs unter set und get angezeigt</li>
</ul><br> </ul><br>
In den Roll&auml;den Devices In den Rolll&auml;den Devices
<ul> <ul>
<li>AutoShuttersControl - 0/1/2 1 = "Inverse oder Rollo Bsp.: Rollo Oben 0,Rollo Unten 100 und der Befehl zum Prozentualen fahren ist position",2 = "Homematic Style Bsp.: Rollo Oben 100,Rollo Unten 0 und der Befehl zum Prozentualen fahren ist pct</li> <li>ASC - 0/1/2 1 = "Inverse oder Rollo - Bsp.: Rollo Oben 0, Rollo Unten 100 und der Befehl zum prozentualen Fahren ist position",2 = "Homematic Style - Bsp.: Rollo Oben 100, Rollo Unten 0 und der Befehl zum prozentualen Fahren ist pct</li>
<li>ASC_Antifreeze - on/off Frostschutz an oder aus</li> <li>ASC_Antifreeze - on/off - Frostschutz an oder aus</li>
<li>ASC_AutoAstroModeEvening - aktuell REAL,CIVIL,NAUTIC,ASTRONOMIC</li> <li>ASC_AutoAstroModeEvening - aktuell REAL,CIVIL,NAUTIC,ASTRONOMIC</li>
<li>ASC_AutoAstroModeEveningHorizon - H&ouml;he &uuml;ber Horizont wenn beim Attribut ASC_autoAstroModeEvening HORIZON ausgew&auml;hlt</li> <li>ASC_AutoAstroModeEveningHorizon - H&ouml;he &uuml;ber Horizont wenn beim Attribut ASC_autoAstroModeEvening HORIZON ausgew&auml;hlt</li>
<li>ASC_AutoAstroModeMorning - aktuell REAL,CIVIL,NAUTIC,ASTRONOMIC</li> <li>ASC_AutoAstroModeMorning - aktuell REAL,CIVIL,NAUTIC,ASTRONOMIC</li>
<li>ASC_AutoAstroModeMorningHorizon - H&ouml;he &uuml;ber Horizont wenn beim Attribut ASC_autoAstroModeMorning HORIZON ausgew&auml;hlt</li> <li>ASC_AutoAstroModeMorningHorizon - H&ouml;he &uuml;ber Horizont wenn beim Attribut ASC_autoAstroModeMorning HORIZON ausgew&auml;hlt</li>
<li>ASC_Closed_Pos - in 10 Schritten von 0 bis 100,default Vorgabe ist abh&auml;ngig vom Attribut AutoShuttersControl</li> <li>ASC_Closed_Pos - in 10 Schritten von 0 bis 100, Default ist abh&auml;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&auml;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 Rolladen runter gefahren</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&auml;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</li>
<li>ASC_Mode_Down - always/home/absent/off wann darf die Automatik steuern. immer,niemals,bei abwesenheit des Roommate (ist kein Roommate und absent eingestellt wird gar nicht gesteuert)</li> <li>ASC_Mode_Down - always/home/absent/off - Wann darf die Automatik steuern. immer, niemals, bei Abwesenheit des Roommate (ist kein Roommate und absent eingestellt, wird gar nicht gesteuert)</li>
<li>ASC_Mode_Up - always/home/absent/off wann darf die Automatik steuern. immer,niemals,bei abwesenheit des Roommate (ist kein Roommate und absent eingestellt wird gar nicht gesteuert)</li> <li>ASC_Mode_Up - always/home/absent/off - Wann darf die Automatik steuern. immer, niemals, bei Abwesenheit des Roommate (ist kein Roommate und absent eingestellt, wird gar nicht gesteuert)</li>
<li>ASC_Drive_Offset - maximale zuf&auml;llige Verz&ouml;gerung in Sekunden bei der Berechnung der Fahrzeiten, 0 bedeutet sofort, -1 bedeutet das das gleichwertige Attribut aus dem ASC Device ausgewertet werden soll.</li> <li>ASC_Drive_Offset - maximale zuf&auml;llige Verz&ouml;gerung in Sekunden bei der Berechnung der Fahrzeiten, 0 bedeutet keine Verz&ouml;gerung, -1 bedeutet, dass das gleichwertige Attribut aus dem ASC Device ausgewertet werden soll.</li>
<li>ASC_Open_Pos - in 10 Schritten von 0 bis 100,default Vorgabe ist abh&auml;ngig vom Attribut AutoShuttersControl</li> <li>ASC_Open_Pos - in 10 Schritten von 0 bis 100, Default ist abh&auml;ngig vom Attribut ASC</li>
<li>ASC_Partymode - on/off schaltet den Partymodus an oder aus,Wird dann am ASC Device set ASC-DEVICE partyMode on geschalten,werden alle Fahrbefehle an den Roll&auml;den welche das Attribut auf on haben zwischen gespeichert und sp&auml;ter erst ausgef&uuml;hrt</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&auml;den, welche das Attribut auf on haben, zwischengespeichert und sp&auml;ter erst ausgef&uuml;hrt</li>
<li>ASC_Pos_Reading - Name des Readings welches die Position des Rolladen 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_Pos_after_ComfortOpen - in 10 Schritten von 0 bis 100,default Vorgabe ist abh&auml;ngig vom Attribut AutoShuttersControl</li> <li>ASC_Pos_after_ComfortOpen - in 10 Schritten von 0 bis 100, Default ist abh&auml;ngig vom Attribut ASC</li>
<li>ASC_Roommate_Reading - das Reading zum Roommate Device welches den Status wieder gibt</li> <li>ASC_Roommate_Reading - das Reading zum Roommate Device, welches den Status wieder gibt</li>
<li>ASC_Roommate_Device - mit Komma getrennte Namen des/der Roommate Device/s welche den/die Bewohner des Raumes vom Rolladen wieder gibt. Es macht nur Sinn in Schlaf- oder Kinderzimmern</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</li>
<li>ASC_Time_Down_Early - Sunset fr&uuml;hste Zeit zum runter fahren</li> <li>ASC_Time_Down_Early - Sunset fr&uuml;hste Zeit zum Runterfahren</li>
<li>ASC_Time_Down_Late - Sunset sp&auml;teste Zeit zum runter fahren</li> <li>ASC_Time_Down_Late - Sunset sp&auml;teste Zeit zum Runterfahren</li>
<li>ASC_Time_Up_Early - Sunrise fr&uuml;hste Zeit zum hoch fahren</li> <li>ASC_Time_Up_Early - Sunrise fr&uuml;hste Zeit zum Hochfahren</li>
<li>ASC_Time_Up_Late - Sunrise sp&auml;teste Zeit zum hoch fahren</li> <li>ASC_Time_Up_Late - Sunrise sp&auml;teste Zeit zum Hochfahren</li>
<li>ASC_Time_Up_WE_Holiday - Sunrise fr&uuml;hste Zeit zum hochfahren am Wochenende und/oder Urlaub (we2holiday wird beachtet),Achtung sollte nicht gr&ouml;&szlig;er sein wie ASC_Time_Up_Late sonst wird ASC_Time_Up_Late verwendet</li> <li>ASC_Time_Up_WE_Holiday - Sunrise fr&uuml;hste Zeit zum Hochfahren am Wochenende und/oder Urlaub (we2holiday wird beachtet). Achtung: Sollte nicht gr&ouml;&szlig;er sein als ASC_Time_Up_Late, sonst wird ASC_Time_Up_Late verwendet</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 Rolladen runter gefahren</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 runtergefahren</li>
<li>ASC_Ventilate_Pos - in 10 Schritten von 0 bis 100,default Vorgabe ist abh&auml;ngig vom Attribut AutoShuttersControl</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</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</li>
<li>ASC_WindowRec - Name des Fensterkontaktes an welchen Fenster der Rolladen angebracht ist</li> <li>ASC_WindowRec - Name des Fensterkontaktes, an dessen Fenster der Rollladen angebracht ist</li>
<li>ASC_WindowRec_subType - Typ des verwendeten Fensterkontakts: twostate (optisch oder magnetisch) oder threestate (Drehgriffkontakt)</li> <li>ASC_WindowRec_subType - Typ des verwendeten Fensterkontaktes: twostate (optisch oder magnetisch) oder threestate (Drehgriffkontakt)</li>
<li>ASC_lock-out - soft/hard stellt entsprechend den Aussperrschutz ein. Bei global aktiven Aussperrschutz (set ASC-Device lockOut soft) und einem Fensterkontakt open bleibt dann der Rolladen oben. Dies gilt nur bei Steuerbefehle über das ASC Modul. Stellt man global auf hard,wird bei entsprechender M&ouml;glichkeit versucht den Rolladen Hardwareseitig zu blockieren. Dann ist auch ein fahren &uuml;ber die Taster nicht mehr m&ouml;glich.</li> <li>ASC_lock-out - soft/hard - 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&ouml;glichkeit versucht den Rollladen hardwareseitig zu blockieren. Dann ist auch ein Fahren &uuml;ber die Taster nicht mehr m&ouml;glich.</li>
<li>ASC_lock-outCmd - inhibit/blocked set Befehl f&uuml;r das Rolladen-Device zum Hardware sperren. Zum gesetzt werden wenn man "ASC_lock-out" auf hard setzt</li> <li>ASC_lock-outCmd - inhibit/blocked - set Befehl f&uuml;r das Rollladen-Device zum Hardware sperren. Dieser Befehl wird gesetzt werden, wenn man "ASC_lock-out" auf hard setzt</li>
<li>ASC_Self_Defense_Exclude - on/off bei on Wert wird dieser Rolladen bei aktiven Self Defense und offenen Fenster nicht runter gefahren wenn Residents absent ist.</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.</li>
<li>ASC_Shading_Brightness_Sensor - Sensor Device welches f&uuml;r die Lichtwerte verwendet wird. ACHTUNG! Findet auch Verwendung bei ASC_Down - brightness</li> <li>ASC_Shading_Brightness_Sensor - Sensor Device, welches f&uuml;r die Lichtwerte verwendet wird. ACHTUNG! Findet auch Verwendung bei ASC_Down - brightness</li>
<li>ASC_BrightnessMinVal - minimaler Lichtwert ab welchen Schaltbedingungen gepr&uuml;ft werden sollen / wird der Wert von -1 nicht ge&auml;ndert, so wird automatisch der Wert aus dem Moduldevice genommen</li> <li>ASC_BrightnessMinVal - minimaler Lichtwert, bei dem Schaltbedingungen gepr&uuml;ft werden sollen / wird der Wert von -1 nicht ge&auml;ndert, so wird automatisch der Wert aus dem Moduldevice genommen</li>
<li>ASC_BrightnessMaxVal - maximaler Lichtwert ab welchen Schaltbedingungen gepr&uuml;ft werden sollen / wird der Wert von -1 nicht ge&auml;ndert, so wird automatisch der Wert aus dem Moduldevice genommen</li> <li>ASC_BrightnessMaxVal - maximaler Lichtwert, bei dem Schaltbedingungen gepr&uuml;ft werden sollen / wird der Wert von -1 nicht ge&auml;ndert, so wird automatisch der Wert aus dem Moduldevice genommen</li>
<li>ASC_ShuttersPlace - window/terrace, wenn dieses Attribut auf terrace gesetzt ist und das Residence Device in den Status "done" geht und SelfDefence aktiv ist wird das Rollo geschlossen</li> <li>ASC_ShuttersPlace - window/terrace - Wenn dieses Attribut auf terrace gesetzt ist, das Residence Device in den Status "done" geht und SelfDefence aktiv ist, wird das Rollo geschlossen</li>
<li>ASC_WiggleValue - Wert um welchen sich die Position des Rollladens &auml;ndern soll</li>
</ul> </ul>
</ul> </ul>
</ul> </ul>