2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-04-28 23:14:10 +00:00

73_AutoShuttersControl: fix selfedefense Condition for sunrise

git-svn-id: https://svn.fhem.de/fhem/trunk@26950 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
LeonGaultier 2023-01-03 07:09:44 +00:00
parent 2951227168
commit 52999c8a1a
16 changed files with 65 additions and 65 deletions

View File

@ -2,7 +2,7 @@
#
# Developed with VSCodium and richterger perl plugin
#
# (c) 2018-2022 Copyright: Marko Oldenburg (fhemdevelopment at cooltux dot net)
# (c) 2018-2023 Copyright: Marko Oldenburg (fhemdevelopment at cooltux dot net)
# All rights reserved
#
# Special thanks goes to:
@ -1029,11 +1029,11 @@ __END__
<a id="AutoShuttersControl-attr-ASC_Antifreeze_Pos"></a>
<li><strong>ASC_Antifreeze_Pos</strong> - Position die angefahren werden soll, wenn der Fahrbefehl komplett schlie&szlig;en lautet, aber der Frostschutz aktiv ist (Default: ist abh&auml;ngig vom Attribut<em>ASC</em> 85/15) !!!Verwendung von Perlcode ist m&ouml;glich, dieser muss in {} eingeschlossen sein. R&uuml;ckgabewert muss eine positive Zahl/Dezimalzahl sein!!!</li>
<a id="AutoShuttersControl-attr-ASC_AutoAstroModeEvening"></a>
<li><strong>ASC_AutoAstroModeEvening</strong> - aktuell REAL,CIVIL,NAUTIC,ASTRONOMIC (default: none)</li>
<li><strong>ASC_AutoAstroModeEvening</strong> - aktuell REAL,CIVIL,NAUTIC,ASTRONOMIC oder HORIZON (default: none)</li>
<a id="AutoShuttersControl-attr-ASC_AutoAstroModeEveningHorizon"></a>
<li><strong>ASC_AutoAstroModeEveningHorizon</strong> - H&ouml;he &uuml;ber Horizont, wenn beim Attribut ASC_autoAstroModeEvening HORIZON ausgew&auml;hlt (default: none)</li>
<a id="AutoShuttersControl-attr-ASC_AutoAstroModeMorning"></a>
<li><strong>ASC_AutoAstroModeMorning</strong> - aktuell REAL,CIVIL,NAUTIC,ASTRONOMIC (default: none)</li>
<li><strong>ASC_AutoAstroModeMorning</strong> - aktuell REAL,CIVIL,NAUTIC,ASTRONOMIC oder HORIZON (default: none)</li>
<a id="AutoShuttersControl-attr-ASC_AutoAstroModeMorningHorizon"></a>
<li><strong>ASC_AutoAstroModeMorningHorizon</strong> - H&ouml;he &uuml;ber Horizont,a wenn beim Attribut ASC_autoAstroModeMorning HORIZON ausgew&auml;hlt (default: none)</li>
<a id="AutoShuttersControl-attr-ASC_BlockingTime_afterManual"></a>
@ -1045,7 +1045,7 @@ __END__
<a id="AutoShuttersControl-attr-ASC_BrightnessSensor"></a>
<li><strong>ASC_BrightnessSensor - DEVICE[:READING] WERT-MORGENS:WERT-ABENDS</strong> / 'Sensorname[:brightness [400:800]]' Angaben zum Helligkeitssensor mit (Readingname, optional) f&uuml;r die Beschattung und dem Fahren der Rollladen nach brightness und den optionalen Brightnesswerten f&uuml;r Sonnenauf- und Sonnenuntergang. (default: none)</li>
<a id="AutoShuttersControl-attr-ASC_Down"></a>
<li><strong>ASC_Down - astro/time/brightness</strong> - 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_brightnessDriveUpDown der Down Wert erreicht wurde. Wenn ja, wird der Rollladen runter gefahren (default: astro)</li>
<li><strong>ASC_Down - astro/time/brightness/roommate</strong> - 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_brightnessDriveUpDown der Down Wert erreicht wurde. Wenn ja, wird der Rollladen runter gefahren (default: astro)</li>
<ul></p>
<strong><u>Beschreibung der besonderen Positionsattribute</u></strong>
<a id="AutoShuttersControl-attr-ASC_Closed_Pos"></a>
@ -1152,7 +1152,7 @@ __END__
<a id="AutoShuttersControl-attr-ASC_Time_Up_WE_Holiday"></a>
<li><strong>ASC_Time_Up_WE_Holiday</strong> - Sonnenaufgang fr&uuml;hste Zeit zum Hochfahren am Wochenende und/oder Urlaub (holiday2we wird beachtet). (default: 08:00) ACHTUNG!!! in Verbindung mit Brightness f&uuml;r <em>ASC_Up</em> muss die Uhrzeit kleiner sein wie die Uhrzeit aus <em>ASC_Time_Up_Late</em> !!!Verwendung von Perlcode ist möglich, dieser muss in {} eingeschlossen sein. Rückgabewert muss ein Zeitformat in Form HH:MM[:SS] sein!!!</li>
<a id="AutoShuttersControl-attr-ASC_Up"></a>
<li><strong>ASC_Up - astro/time/brightness</strong> - 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 Down Wert von ASC_brightnessDriveUpDown erreicht wurde. Wenn ja, wird der Rollladen hoch gefahren (default: astro)</li>
<li><strong>ASC_Up - astro/time/brightness/roommate</strong> - 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 Down Wert von ASC_brightnessDriveUpDown erreicht wurde. Wenn ja, wird der Rollladen hoch gefahren (default: astro)</li>
<a id="AutoShuttersControl-attr-ASC_Ventilate_Window_Open"></a>
<li><strong>ASC_Ventilate_Window_Open</strong> - auf l&uuml;ften, wenn das Fenster gekippt/ge&ouml;ffnet wird und aktuelle Position unterhalb der L&uuml;ften-Position ist (default: on)</li>
<a id="AutoShuttersControl-attr-ASC_WiggleValue"></a>
@ -1323,7 +1323,7 @@ __END__
<tr><td>Sunrise</td><td>1=Morgenfahrt wurde durchgef&uuml;hrt, 0=noch keine Morgenfahrt durchgef&uuml;hrt</td></tr>
<tr><td>RoommatesStatus</td><td>aktueller Status der/des Roommate/s f&uuml;r den Rollladen</td></tr>
<tr><td>RoommatesLastStatus</td><td>letzter Status der/des Roommate/s f&uuml;r den Rollladen</td></tr>
<tr><td>ShadingStatus</td><td>Ausgabe des aktuellen Shading Status, in, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>out, in reserved, out reserved</td></tr>
<tr><td>ShadingStatus</td><td>Ausgabe des aktuellen Shading Status, <EFBFBD><EFBFBD><EFBFBD>in, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>out, in reserved, out reserved</td></tr>
<tr><td>ShadingStatusTimestamp</td><td>Timestamp des letzten Beschattungsstatus</td></tr>
<tr><td>IfInShading</td><td>Befindet sich der Rollladen, in Abh&auml;ngigkeit des Shading Mode, in der Beschattung</td></tr>
<tr><td>DelayCmd</td><td>letzter Fahrbefehl welcher in die Warteschlange kam. Grund z.B. Partymodus.</td></tr>
@ -1462,7 +1462,7 @@ __END__
],
"release_status": "stable",
"license": "GPL_2",
"version": "v0.10.24",
"version": "v0.10.25",
"author": [
"Marko Oldenburg <fhemdevelopment@cooltux.net>"
],

View File

@ -2,7 +2,7 @@
#
# Developed with VSCodium and richterger perl plugin
#
# (c) 2018-2022 Copyright: Marko Oldenburg (fhemdevelopment at cooltux dot net)
# (c) 2018-2023 Copyright: Marko Oldenburg (fhemdevelopment at cooltux dot net)
# All rights reserved
#
# Special thanks goes to:
@ -80,7 +80,7 @@ use FHEM::Automation::ShuttersControl::Dev;
use FHEM::Automation::ShuttersControl::Shading
qw (CheckASC_ConditionsForShadingFn);
use FHEM::Automation::ShuttersControl::EventProcessingFunctions qw (:ALL);
use FHEM::Automation::ShuttersControl::Helper qw (:ALL);
use FHEM::Automation::ShuttersControl::Helper qw (:ALL);
# try to use JSON::MaybeXS wrapper
# for chance of better performance + open code
@ -167,7 +167,7 @@ BEGIN {
ascAPIget
ascAPIset
DevStateIcon
)
)
);
}
@ -187,24 +187,24 @@ our %userAttrList = (
'ASC_Open_Pos:0,10,20,30,40,50,60,70,80,90,100' => [ '', 0, 100 ],
'ASC_Closed_Pos:0,10,20,30,40,50,60,70,80,90,100' => [ '', 100, 0 ],
'ASC_Sleep_Pos:0,10,20,30,40,50,60,70,80,90,100' => [ '', -1, -1 ],
'ASC_Pos_Reading' => [ '', 'position', 'pct' ],
'ASC_Time_Up_Early' => '-',
'ASC_Time_Up_Late' => '-',
'ASC_Time_Up_WE_Holiday' => '-',
'ASC_Time_Down_Early' => '-',
'ASC_Time_Down_Late' => '-',
'ASC_PrivacyUpValue_beforeDayOpen' => '-',
'ASC_PrivacyDownValue_beforeNightClose' => '-',
'ASC_PrivacyUp_Pos' => [ '', 50, 50 ],
'ASC_PrivacyDown_Pos' => [ '', 50, 50 ],
'ASC_TempSensor' => '-',
'ASC_Ventilate_Window_Open:on,off' => '-',
'ASC_LockOut:soft,hard,off' => '-',
'ASC_LockOut_Cmd:inhibit,blocked,protection' => '-',
'ASC_BlockingTime_afterManual' => '-',
'ASC_BlockingTime_beforeNightClose' => '-',
'ASC_BlockingTime_beforeDayOpen' => '-',
'ASC_BrightnessSensor' => '-',
'ASC_Pos_Reading' => [ '', 'position', 'pct' ],
'ASC_Time_Up_Early' => '-',
'ASC_Time_Up_Late' => '-',
'ASC_Time_Up_WE_Holiday' => '-',
'ASC_Time_Down_Early' => '-',
'ASC_Time_Down_Late' => '-',
'ASC_PrivacyUpValue_beforeDayOpen' => '-',
'ASC_PrivacyDownValue_beforeNightClose' => '-',
'ASC_PrivacyUp_Pos' => [ '', 50, 50 ],
'ASC_PrivacyDown_Pos' => [ '', 50, 50 ],
'ASC_TempSensor' => '-',
'ASC_Ventilate_Window_Open:on,off' => '-',
'ASC_LockOut:soft,hard,off' => '-',
'ASC_LockOut_Cmd:inhibit,blocked,protection' => '-',
'ASC_BlockingTime_afterManual' => '-',
'ASC_BlockingTime_beforeNightClose' => '-',
'ASC_BlockingTime_beforeDayOpen' => '-',
'ASC_BrightnessSensor' => '-',
'ASC_Shading_Pos:10,20,30,40,50,60,70,80,90,100' => [ '', 80, 20 ],
'ASC_Shading_Mode:absent,always,off,home' => '-',
'ASC_Shading_InOutAzimuth' => '-',
@ -1447,10 +1447,14 @@ sub SunRiseShuttersAfterTimerFn {
|| $shutters->getSelfDefenseMode eq 'off'
|| (
$ascDev->getSelfDefense eq 'on'
&& ( $shutters->getSelfDefenseMode eq 'gone'
|| $shutters->getSelfDefenseMode eq 'absent' )
&& $ascDev->getResidentsStatus ne 'gone'
&& $ascDev->getResidentsStatus ne 'absent'
&& (
(
$shutters->getSelfDefenseMode eq 'gone'
&& $ascDev->getResidentsStatus ne 'gone'
)
|| ( $shutters->getSelfDefenseMode eq 'absent'
&& $ascDev->getResidentsStatus ne 'absent' )
)
)
)
&& (
@ -1849,7 +1853,7 @@ sub SetCmdFn {
if ( $commandTemplate ne 'none' )
{ # Patch von Beta-User Forum https://forum.fhem.de/index.php/topic,123659.0.html
# Nutzervariablen setzen
# Nutzervariablen setzen
my %specials = (
'$name' => $shuttersDev,
'$pos' => $posValue,

View File

@ -2,7 +2,7 @@
#
# Developed with VSCodium and richterger perl plugin
#
# (c) 2018-2022 Copyright: Marko Oldenburg (fhemdevelopment at cooltux dot net)
# (c) 2018-2023 Copyright: Marko Oldenburg (fhemdevelopment at cooltux dot net)
# All rights reserved
#
# Special thanks goes to:

View File

@ -2,7 +2,7 @@
#
# Developed with VSCodium and richterger perl plugin
#
# (c) 2018-2022 Copyright: Marko Oldenburg (fhemdevelopment at cooltux dot net)
# (c) 2018-2023 Copyright: Marko Oldenburg (fhemdevelopment at cooltux dot net)
# All rights reserved
#
# Special thanks goes to:

View File

@ -2,7 +2,7 @@
#
# Developed with VSCodium and richterger perl plugin
#
# (c) 2018-2022 Copyright: Marko Oldenburg (fhemdevelopment at cooltux dot net)
# (c) 2018-2023 Copyright: Marko Oldenburg (fhemdevelopment at cooltux dot net)
# All rights reserved
#
# Special thanks goes to:

View File

@ -2,7 +2,7 @@
#
# Developed with VSCodium and richterger perl plugin
#
# (c) 2018-2022 Copyright: Marko Oldenburg (fhemdevelopment at cooltux dot net)
# (c) 2018-2023 Copyright: Marko Oldenburg (fhemdevelopment at cooltux dot net)
# All rights reserved
#
# Special thanks goes to:
@ -47,8 +47,8 @@ use utf8;
use Data::Dumper; #only for Debugging
use FHEM::Automation::ShuttersControl::Helper qw (:ALL);
use FHEM::Automation::ShuttersControl::Shading qw (:ALL);
use FHEM::Automation::ShuttersControl::Helper qw (:ALL);
use FHEM::Automation::ShuttersControl::Shading qw (:ALL);
use FHEM::Automation::ShuttersControl::Rainprotection qw (:ALL);
require Exporter;
@ -68,7 +68,7 @@ our %EXPORT_TAGS = (
EventProcessingGeneral
EventProcessingShutters
EventProcessingAdvShuttersClose
)
)
],
);
@ -144,7 +144,7 @@ sub EventProcessingGeneral {
|ASC_twilightDevice)
\s(.*)$}xms
)
{ # wurde den Attributen unserer Rolläden ein Wert zugewiesen ?
{ # wurde den Attributen unserer Rolläden ein Wert zugewiesen ?
FHEM::Automation::ShuttersControl::AddNotifyDev( $hash, $3, $1, $2 )
if ( $3 ne 'none' );
::Log3( $name, 4,

View File

@ -2,7 +2,7 @@
#
# Developed with VSCodium and richterger perl plugin
#
# (c) 2018-2022 Copyright: Marko Oldenburg (fhemdevelopment at cooltux dot net)
# (c) 2018-2023 Copyright: Marko Oldenburg (fhemdevelopment at cooltux dot net)
# All rights reserved
#
# Special thanks goes to:
@ -84,7 +84,7 @@ our %EXPORT_TAGS = (
PerlCodeCheck
IsAdv
IsInTime
)
)
],
);
@ -207,7 +207,7 @@ sub CheckIfShuttersWindowRecOpen {
m{[Cc]lose|true}xms )
{
return 0;
} # CK: covers: close|closed
} # CK: covers: close|closed
}
sub ExtractNotifyDevFromEvent {
@ -408,7 +408,7 @@ sub _IsDay {
sub ShuttersSunrise {
my $shuttersDev = shift;
my $tm = shift; # Tm steht für Timemode und bedeutet Realzeit oder Unixzeit
my $tm = shift; # Tm steht für Timemode und bedeutet Realzeit oder Unixzeit
my $autoAstroMode;
$FHEM::Automation::ShuttersControl::shutters->setShuttersDev($shuttersDev);
@ -829,7 +829,7 @@ sub ShuttersSunrise {
sub ShuttersSunset {
my $shuttersDev = shift;
my $tm = shift; # Tm steht für Timemode und bedeutet Realzeit oder Unixzeit
my $tm = shift; # Tm steht für Timemode und bedeutet Realzeit oder Unixzeit
my $autoAstroMode;
$FHEM::Automation::ShuttersControl::shutters->setShuttersDev($shuttersDev);

View File

@ -2,7 +2,7 @@
#
# Developed with VSCodium and richterger perl plugin
#
# (c) 2018-2022 Copyright: Marko Oldenburg (fhemdevelopment at cooltux dot net)
# (c) 2018-2023 Copyright: Marko Oldenburg (fhemdevelopment at cooltux dot net)
# All rights reserved
#
# Special thanks goes to:
@ -57,7 +57,7 @@ our %EXPORT_TAGS = (
ALL => [
qw(
RainProcessing
)
)
],
);

View File

@ -2,7 +2,7 @@
#
# Developed with VSCodium and richterger perl plugin
#
# (c) 2018-2022 Copyright: Marko Oldenburg (fhemdevelopment at cooltux dot net)
# (c) 2018-2023 Copyright: Marko Oldenburg (fhemdevelopment at cooltux dot net)
# All rights reserved
#
# Special thanks goes to:
@ -57,7 +57,7 @@ our %EXPORT_TAGS = (
qw(
getRoommateStatus
getRoommateLastStatus
)
)
],
);

View File

@ -2,7 +2,7 @@
#
# Developed with VSCodium and richterger perl plugin
#
# (c) 2018-2022 Copyright: Marko Oldenburg (fhemdevelopment at cooltux dot net)
# (c) 2018-2023 Copyright: Marko Oldenburg (fhemdevelopment at cooltux dot net)
# All rights reserved
#
# Special thanks goes to:
@ -62,7 +62,7 @@ our %EXPORT_TAGS = (
CheckASC_ConditionsForShadingFn
ShadingProcessing
ShadingProcessingDriveCommand
)
)
],
);

View File

@ -2,7 +2,7 @@
#
# Developed with VSCodium and richterger perl plugin
#
# (c) 2018-2022 Copyright: Marko Oldenburg (fhemdevelopment at cooltux dot net)
# (c) 2018-2023 Copyright: Marko Oldenburg (fhemdevelopment at cooltux dot net)
# All rights reserved
#
# Special thanks goes to:
@ -162,10 +162,6 @@ sub setDriveCmd {
$FHEM::Automation::ShuttersControl::ascDev->setDelayCmdReading;
$FHEM::Automation::ShuttersControl::shutters->setNoDelay(0);
# $FHEM::Automation::ShuttersControl::shutters->setExternalTriggerStatus(0)
# if ( $FHEM::Automation::ShuttersControl::shutters
# ->getExternalTriggerStatus );
FHEM::Automation::ShuttersControl::ASC_Debug( 'setDriveCmd: '
. $FHEM::Automation::ShuttersControl::shutters->getShuttersDev
. ' - Die Fahrt wird zurückgestellt. Grund kann ein geöffnetes Fenster sein oder ein aktivierter Party Modus oder Weihnachtszeit'
@ -598,7 +594,7 @@ sub getShuttersPosCmdValueNegate {
sub getQueryShuttersPos
{ # Es wird geschaut ob die aktuelle Position des Rollos unterhalb der Zielposition ist
my $self = shift;
my $posValue = shift; # wenn dem so ist wird 1 zurück gegeben ansonsten 0
my $posValue = shift; # wenn dem so ist wird 1 zurück gegeben ansonsten 0
return (
$FHEM::Automation::ShuttersControl::shutters
@ -889,7 +885,7 @@ sub getIdleDetection {
### Begin Beschattung Objekt mit Daten befüllen
sub setShadingStatus {
my $self = shift;
my $value = shift; ### Werte für value = in, out, in reserved, out reserved
my $value = shift; ### Werte für value = in, out, in reserved, out reserved
# Es wird durch das return die ShadingWaitingTime nicht mehr beachtet, Bugmeldung von Bernd Griemsmann
# return
@ -1002,7 +998,7 @@ sub getBrightnessAverage {
return;
}
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;
return (

View File

@ -2,7 +2,7 @@
#
# Developed with VSCodium and richterger perl plugin
#
# (c) 2018-2022 Copyright: Marko Oldenburg (fhemdevelopment at cooltux dot net)
# (c) 2018-2023 Copyright: Marko Oldenburg (fhemdevelopment at cooltux dot net)
# All rights reserved
#
# Special thanks goes to:

View File

@ -2,7 +2,7 @@
#
# Developed with VSCodium and richterger perl plugin
#
# (c) 2018-2022 Copyright: Marko Oldenburg (fhemdevelopment at cooltux dot net)
# (c) 2018-2023 Copyright: Marko Oldenburg (fhemdevelopment at cooltux dot net)
# All rights reserved
#
# Special thanks goes to:

View File

@ -2,7 +2,7 @@
#
# Developed with VSCodium and richterger perl plugin
#
# (c) 2018-2022 Copyright: Marko Oldenburg (fhemdevelopment at cooltux dot net)
# (c) 2018-2023 Copyright: Marko Oldenburg (fhemdevelopment at cooltux dot net)
# All rights reserved
#
# Special thanks goes to:

View File

@ -2,7 +2,7 @@
#
# Developed with VSCodium and richterger perl plugin
#
# (c) 2018-2022 Copyright: Marko Oldenburg (fhemdevelopment at cooltux dot net)
# (c) 2018-2023 Copyright: Marko Oldenburg (fhemdevelopment at cooltux dot net)
# All rights reserved
#
# Special thanks goes to:

View File

@ -2,7 +2,7 @@
#
# Developed with VSCodium and richterger perl plugin
#
# (c) 2018-2022 Copyright: Marko Oldenburg (fhemdevelopment at cooltux dot net)
# (c) 2018-2023 Copyright: Marko Oldenburg (fhemdevelopment at cooltux dot net)
# All rights reserved
#
# Special thanks goes to: