add new attribut ASC_Shading_BetweenTheTime
for Shading In drive only between the Time
This commit is contained in:
parent
fa82a77665
commit
eb28fef84f
@ -964,6 +964,7 @@ sub Initialize {
|
||||
<li><strong>ASC_Shading_Pos</strong> - Position des Rollladens für die Beschattung (Default: ist abhängig vom Attribut<em>ASC</em> 80/20) !!!Verwendung von Perlcode ist möglich, dieser muss in {} eingeschlossen sein. Rückgabewert muss eine positive Zahl/Dezimalzahl sein!!!</li>
|
||||
<li><strong>ASC_Shading_StateChange_SunnyCloudy</strong> - Brightness Wert ab welchen die Beschattung stattfinden und aufgehoben werden soll, immer in Abhängigkeit der anderen einbezogenen Sensorwerte. Ein optionaler dritter Wert gibt an wie, viele Brightnesswerte für den aktuellen Brightness-Durchschnitt berücksichtigt werden. Standard ist 3, es sollten nicht mehr als 5 berücksichtigt werden. (default: 35000:20000 [3])</li>
|
||||
<li><strong>ASC_Shading_WaitingPeriod</strong> - wie viele Sekunden soll gewartet werden bevor eine weitere Auswertung der Sensordaten für die Beschattung stattfinden soll (default: 1200)</li>
|
||||
<li><strong>ASC_Shading_BetweenTheTime</strong> - das fahren in die Beschattung erfolgt bei Angabe nur innerhalb des Zeitraumes, Bsp: 9:00-13:00 11:25-15:30</li>
|
||||
</ul></p>
|
||||
<li><strong>ASC_ShuttersPlace - window/terrace/awning</strong> - Wenn dieses Attribut auf terrace gesetzt ist, das Residence Device in den Status "gone" geht und SelfDefense aktiv ist (ohne das das Reading selfDefense gesetzt sein muss), wird das Rollo geschlossen. awning steht für Markise und wirkt sich auf die Beschattungssteuerung aus. (default: window)</li>
|
||||
<li><strong>ASC_Time_Down_Early</strong> - Sonnenuntergang frühste Zeit zum Runterfahren (default: 16:00) !!!Verwendung von Perlcode ist möglich, dieser muss in {} eingeschlossen sein. Rückgabewert muss ein Zeitformat in Form HH:MM[:SS] sein!!!</li>
|
||||
@ -1127,6 +1128,7 @@ sub Initialize {
|
||||
<tr><td>IsDay</td><td>Abfrage ob das Rollo im Tag oder Nachtmodus ist. Also nach Sunset oder nach Sunrise</td></tr>
|
||||
<tr><td>PrivacyDownStatus</td><td>Abfrage ob das Rollo aktuell im PrivacyDown Status steht</td></tr>
|
||||
<tr><td>OutTemp</td><td>aktuelle Außentemperatur sofern ein Sensor definiert ist, wenn nicht kommt -100 als Wert zurück</td></tr>
|
||||
<tr><td>ShadingBetweenTheTime</td><td>Konfiguration für die Zeit der Beschattung</td></tr>
|
||||
</table>
|
||||
</p>
|
||||
<u>Übersicht für das Rollladen-Device mit Parameterübergabe Getter</u>
|
||||
@ -1196,6 +1198,7 @@ sub Initialize {
|
||||
<tr><td>DriveUpMaxDuration</td><td> </td></tr>
|
||||
<tr><td>SubTyp</td><td> </td></tr>
|
||||
<tr><td>WinDev</td><td> </td></tr>
|
||||
<tr><td>ShadingBetweenTheTime</td><td>Konfiguration für die Zeit der Beschattung, Beispiel: 09:00-13:00</td></tr>
|
||||
</table>
|
||||
</p>
|
||||
<u>Übersicht für das ASC Device Getter</u>
|
||||
|
@ -1,15 +1,15 @@
|
||||
UPD 2020-07-09_10:33:29 97125 FHEM/73_AutoShuttersControl.pm
|
||||
UPD 2020-07-09_10:28:16 74067 lib/FHEM/Automation/ShuttersControl.pm
|
||||
UPD 2020-07-09_11:03:23 97534 FHEM/73_AutoShuttersControl.pm
|
||||
UPD 2020-07-09_11:09:17 74134 lib/FHEM/Automation/ShuttersControl.pm
|
||||
UPD 2020-06-22_09:41:40 2657 lib/FHEM/Automation/ShuttersControl/Dev.pm
|
||||
UPD 2020-07-07_14:49:19 2496 lib/FHEM/Automation/ShuttersControl/Roommate.pm
|
||||
UPD 2020-07-09_09:43:45 30760 lib/FHEM/Automation/ShuttersControl/Shutters.pm
|
||||
UPD 2020-07-09_10:40:33 23321 lib/FHEM/Automation/ShuttersControl/Shading.pm
|
||||
UPD 2020-07-09_11:09:17 23407 lib/FHEM/Automation/ShuttersControl/Shading.pm
|
||||
UPD 2020-07-09_09:43:45 108076 lib/FHEM/Automation/ShuttersControl/EventProcessingFunctions.pm
|
||||
UPD 2020-07-09_09:43:45 44235 lib/FHEM/Automation/ShuttersControl/Helper.pm
|
||||
UPD 2020-07-09_10:46:01 44885 lib/FHEM/Automation/ShuttersControl/Helper.pm
|
||||
UPD 2020-06-22_09:41:40 2175 lib/FHEM/Automation/ShuttersControl/Window.pm
|
||||
UPD 2020-07-09_09:43:45 11569 lib/FHEM/Automation/ShuttersControl/Dev/Attr.pm
|
||||
UPD 2020-07-03_11:29:10 7251 lib/FHEM/Automation/ShuttersControl/Dev/Readings.pm
|
||||
UPD 2020-07-09_09:43:45 51957 lib/FHEM/Automation/ShuttersControl/Shutters/Attr.pm
|
||||
UPD 2020-07-09_11:09:17 52284 lib/FHEM/Automation/ShuttersControl/Shutters/Attr.pm
|
||||
UPD 2020-06-22_09:41:40 2903 lib/FHEM/Automation/ShuttersControl/Shutters/Readings.pm
|
||||
UPD 2020-06-22_09:41:40 3972 lib/FHEM/Automation/ShuttersControl/Window/Attr.pm
|
||||
UPD 2020-06-22_09:41:40 2288 lib/FHEM/Automation/ShuttersControl/Window/Readings.pm
|
||||
|
@ -239,6 +239,7 @@ our %userAttrList = (
|
||||
'ASC_Shading_MinMax_Elevation' => '-',
|
||||
'ASC_Shading_Min_OutsideTemperature' => '-',
|
||||
'ASC_Shading_WaitingPeriod' => '-',
|
||||
'ASC_Shading_BetweenTheTime' => '-',
|
||||
'ASC_Drive_Delay' => '-',
|
||||
'ASC_Drive_DelayStart' => '-',
|
||||
'ASC_Shutter_IdleDetection' => '-',
|
||||
|
@ -62,6 +62,7 @@ our @EXPORT_OK = qw(
|
||||
AverageBrightness
|
||||
PerlCodeCheck
|
||||
IsAdv
|
||||
IsInTime
|
||||
);
|
||||
our %EXPORT_TAGS = (
|
||||
ALL => [
|
||||
@ -80,6 +81,7 @@ our %EXPORT_TAGS = (
|
||||
AverageBrightness
|
||||
PerlCodeCheck
|
||||
IsAdv
|
||||
IsInTime
|
||||
)
|
||||
],
|
||||
);
|
||||
@ -1156,4 +1158,22 @@ sub IsAdv {
|
||||
return $adv;
|
||||
}
|
||||
|
||||
sub IsInTime {
|
||||
my $dfi = shift;
|
||||
|
||||
$dfi =~ s/{([^\x7d]*)}/$cmdFromAnalyze=$1; eval $1/ge; # Forum #69787
|
||||
my ($sec,$min,$hour,$mday,$month,$year,$wday,$yday,$isdst) = localtime(gettimeofday());
|
||||
my $dhms = sprintf("%s\@%02d:%02d:%02d", $wday, $hour, $min, $sec);
|
||||
foreach my $ft (split(" ", $dfi)) {
|
||||
my ($from, $to) = split("-", $ft);
|
||||
if(defined($from) && defined($to)) {
|
||||
$from = "$wday\@$from" if(index($from,"@") < 0);
|
||||
$to = "$wday\@$to" if(index($to, "@") < 0);
|
||||
return 1 if($from le $dhms && $dhms le $to);
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
1;
|
||||
|
@ -512,8 +512,8 @@ sub ShadingProcessingDriveCommand {
|
||||
$FHEM::Automation::ShuttersControl::shutters->setShadingStatus(
|
||||
$FHEM::Automation::ShuttersControl::shutters->getShadingStatus );
|
||||
|
||||
if (
|
||||
$FHEM::Automation::ShuttersControl::shutters->getShadingStatus eq 'in'
|
||||
if ( IsInTime($FHEM::Automation::ShuttersControl::shutters->getShadingBetweenTheTime)
|
||||
&& $FHEM::Automation::ShuttersControl::shutters->getShadingStatus eq 'in'
|
||||
&& $getShadingPos != $getStatus
|
||||
&& (
|
||||
FHEM::Automation::ShuttersControl::CheckIfShuttersWindowRecOpen(
|
||||
|
@ -1781,6 +1781,21 @@ sub getDown {
|
||||
return AttrVal( $self->{shuttersDev}, 'ASC_Down', 'astro' );
|
||||
}
|
||||
|
||||
sub setShadingBetweenTheTime {
|
||||
my $self = shift;
|
||||
my $attrVal = shift;
|
||||
|
||||
_setAttributs( $self->{shuttersDev}, 'ASC_Shading_BetweenTheTime', $attrVal );
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
sub getShadingBetweenTheTime {
|
||||
my $self = shift;
|
||||
|
||||
return AttrVal( $self->{shuttersDev}, 'ASC_Shading_BetweenTheTime', '00:00-24:00' );
|
||||
}
|
||||
|
||||
sub setTimeUpEarly {
|
||||
my $self = shift;
|
||||
my $attrVal = shift;
|
||||
|
Loading…
Reference in New Issue
Block a user