diff --git a/FHEM/73_AutoShuttersControl.pm b/FHEM/73_AutoShuttersControl.pm index e704e2a..f6840eb 100644 --- a/FHEM/73_AutoShuttersControl.pm +++ b/FHEM/73_AutoShuttersControl.pm @@ -91,7 +91,8 @@ sub Initialize { . 'ASC_expert:1 ' . 'ASC_blockAscDrivesAfterManual:0,1 ' . 'ASC_debug:1 ' - . 'ASC_advDate:DeadSunday,FirstAdvent ' + . 'ASC_advStartDate:DeadSunday,FirstAdvent ' + . 'ASC_advEndDate:CandlemasDay,EpiphanyDay ' . $readingFnAttributes; $hash->{NotifyOrderPrefix} = '51-'; # Order Nummer für NotifyFn $hash->{FW_detailFn} = @@ -319,8 +320,11 @@ __END__
  • ASC_freezeTemp - Temperature threshold for the freeze protection. The freeze protection prevents the shutter to be operated by ASC. Last operating order will be kept.
  • - -
  • ASC_advDate - Advent Season, selected FirstAdvent or DeadSunday. + +
  • ASC_advStartDate - Begin of Advent Season, selected FirstAdvent or DeadSunday. +
  • + +
  • ASC_advEndDate - End of Advent Season, selected CandlemasDay 6. January or EpiphanyDay 2. February.
  • ASC_rainSensor DEVICENAME[:READINGNAME] MAXTRIGGER[:HYSTERESE] [CLOSEDPOS] - Contains @@ -997,8 +1001,10 @@ __END__
  • ASC_expert - ist der Wert 1, so werden erweiterte Informationen bezüglich des NotifyDevs unter set und get angezeigt
  • ASC_freezeTemp - Temperatur, ab welcher der Frostschutz greifen soll und der Rollladen nicht mehr fährt. Der letzte Fahrbefehl wird gespeichert.
  • - -
  • ASC_advDate - Adventszeit, Auswahl ab wann die Adventszeit beginnen soll.
  • + +
  • ASC_advStartDate - Start der Adventszeit, Auswahl ab wann die Adventszeit beginnen soll. 1. Advent oder Totensonntag
  • + +
  • ASC_advEndDate - Ende der Adventszeit, Auswahl ab wann die Adventszeit Enden soll. EpiphanyDay 6. Januar oder CandlemasDay 2. Februar
  • ASC_rainSensor - DEVICENAME[:READINGNAME] MAXTRIGGER[:HYSTERESE] [CLOSEDPOS:[WAITINGTIME]] - der Inhalt ist eine Kombination aus Devicename, Readingname, Wert ab dem getriggert werden soll, Hysterese Wert ab dem der Status Regenschutz aufgehoben werden soll und der "wegen Regen geschlossen Position", sowie der Wartezeit bis dann tatsächlich die aktion ausgeführt wird.
  • diff --git a/controls_AutoShuttersControl.txt b/controls_AutoShuttersControl.txt index d3bab46..30709bd 100644 --- a/controls_AutoShuttersControl.txt +++ b/controls_AutoShuttersControl.txt @@ -1,13 +1,13 @@ -UPD 2022-01-01_20:15:38 115601 FHEM/73_AutoShuttersControl.pm -UPD 2022-01-02_08:49:11 75839 lib/FHEM/Automation/ShuttersControl.pm +UPD 2022-01-10_10:41:35 116177 FHEM/73_AutoShuttersControl.pm +UPD 2022-01-10_10:41:35 75839 lib/FHEM/Automation/ShuttersControl.pm UPD 2022-01-02_07:57:18 2691 lib/FHEM/Automation/ShuttersControl/Dev.pm UPD 2022-01-02_07:57:18 2677 lib/FHEM/Automation/ShuttersControl/Roommate.pm -UPD 2022-01-02_08:24:00 32016 lib/FHEM/Automation/ShuttersControl/Shutters.pm +UPD 2022-01-02_08:52:49 32016 lib/FHEM/Automation/ShuttersControl/Shutters.pm UPD 2022-01-02_07:57:18 25452 lib/FHEM/Automation/ShuttersControl/Shading.pm UPD 2022-01-02_07:57:18 112122 lib/FHEM/Automation/ShuttersControl/EventProcessingFunctions.pm -UPD 2022-01-02_07:57:18 40322 lib/FHEM/Automation/ShuttersControl/Helper.pm +UPD 2022-01-10_11:04:15 40603 lib/FHEM/Automation/ShuttersControl/Helper.pm UPD 2022-01-02_07:57:18 2209 lib/FHEM/Automation/ShuttersControl/Window.pm -UPD 2022-01-01_20:15:38 11706 lib/FHEM/Automation/ShuttersControl/Dev/Attr.pm +UPD 2022-01-10_11:06:40 11857 lib/FHEM/Automation/ShuttersControl/Dev/Attr.pm UPD 2022-01-01_20:15:38 7265 lib/FHEM/Automation/ShuttersControl/Dev/Readings.pm UPD 2022-01-01_20:15:38 52751 lib/FHEM/Automation/ShuttersControl/Shutters/Attr.pm UPD 2022-01-01_20:15:38 2799 lib/FHEM/Automation/ShuttersControl/Shutters/Readings.pm diff --git a/lib/FHEM/Automation/ShuttersControl/Dev/Attr.pm b/lib/FHEM/Automation/ShuttersControl/Dev/Attr.pm index 12aa4ed..1215825 100644 --- a/lib/FHEM/Automation/ShuttersControl/Dev/Attr.pm +++ b/lib/FHEM/Automation/ShuttersControl/Dev/Attr.pm @@ -384,12 +384,20 @@ sub getBlockAscDrivesAfterManual { return ::AttrVal( $name, 'ASC_blockAscDrivesAfterManual', 0 ); } -sub getAdvDate { +sub getAdvStartDate { my $self = shift; my $name = $self->{name}; - return ::AttrVal( $name, 'ASC_advDate', 'FirstAdvent' ); + return ::AttrVal( $name, 'ASC_advStartDate', 'FirstAdvent' ); +} + +sub getAdvEndDate { + my $self = shift; + + my $name = $self->{name}; + + return ::AttrVal( $name, 'ASC_advEndDate', 'EpiphanyDay' ); } 1; diff --git a/lib/FHEM/Automation/ShuttersControl/Helper.pm b/lib/FHEM/Automation/ShuttersControl/Helper.pm index 6ca7c17..cd587fd 100644 --- a/lib/FHEM/Automation/ShuttersControl/Helper.pm +++ b/lib/FHEM/Automation/ShuttersControl/Helper.pm @@ -1020,17 +1020,24 @@ sub IsAdv { my $adv = 0; $year += 1900; - if ( $month < 1 ) { - if ( $monthday < 7 ) { - $adv = 1; - } + if ( $month < 1 + && $FHEM::Automation::ShuttersControl::ascDev->getAdvEndDate eq + 'EpiphanyDay' ) + { + $adv = $monthday < 7 ? 1 : 0; + } + elsif ($month < 2 + && $FHEM::Automation::ShuttersControl::ascDev->getAdvEndDate eq + 'CandlemasDay' ) + { + $adv = $month = 1 || ( $month = 2 && $monthday < 3 ) ? 1 : 0; } else { my $time = str2time( $year . '-12-25' ); my $wday = ( localtime($time) )[6]; $wday = $wday ? $wday : 7; $time -= ( - $FHEM::Automation::ShuttersControl::ascDev->getAdvDate eq + $FHEM::Automation::ShuttersControl::ascDev->getAdvStartDate eq 'DeadSunday' ? ( $wday + 27 ) * 86400 : ( $wday + 21 ) * 86400