add new attribut ASC_Shading_BetweenTheTime

for Shading In drive only between the Time
This commit is contained in:
Marko Oldenburg 2020-07-09 11:09:49 +02:00
parent fa82a77665
commit eb28fef84f
6 changed files with 46 additions and 7 deletions

View File

@ -964,6 +964,7 @@ sub Initialize {
<li><strong>ASC_Shading_Pos</strong> - Position des Rollladens f&uuml;r die Beschattung (Default: ist abh&auml;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&auml;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&uuml;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&uuml;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&uuml;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&szlig;entemperatur sofern ein Sensor definiert ist, wenn nicht kommt -100 als Wert zur&uuml;ck</td></tr>
<tr><td>ShadingBetweenTheTime</td><td>Konfiguration f&uuml;r die Zeit der Beschattung</td></tr>
</table>
</p>
<u>&Uuml;bersicht f&uuml;r das Rollladen-Device mit Parameter&uuml;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&uuml;r die Zeit der Beschattung, Beispiel: 09:00-13:00</td></tr>
</table>
</p>
<u>&Uuml;bersicht f&uuml;r das ASC Device Getter</u>

View File

@ -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

View File

@ -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' => '-',

View File

@ -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;

View File

@ -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(

View File

@ -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;