From f1f265b89a434cd4daba26d199478f1d774d65c2 Mon Sep 17 00:00:00 2001 From: Marko Oldenburg Date: Mon, 10 Jan 2022 10:43:51 +0100 Subject: [PATCH 1/4] add end of advent season variable change attribut ASC_advDate to ASC_advStartDate --- FHEM/73_AutoShuttersControl.pm | 16 +++++++++++----- controls_AutoShuttersControl.txt | 10 +++++----- .../Automation/ShuttersControl/Dev/Attr.pm | 12 ++++++++++-- lib/FHEM/Automation/ShuttersControl/Helper.pm | 18 +++++++++++++++--- 4 files changed, 41 insertions(+), 15 deletions(-) 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..be00552 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_10:41:32 40708 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_10:41:34 11858 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..fe19a6d 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', 'CandlemasDay' ); } 1; diff --git a/lib/FHEM/Automation/ShuttersControl/Helper.pm b/lib/FHEM/Automation/ShuttersControl/Helper.pm index 6ca7c17..d26ecb6 100644 --- a/lib/FHEM/Automation/ShuttersControl/Helper.pm +++ b/lib/FHEM/Automation/ShuttersControl/Helper.pm @@ -1020,8 +1020,20 @@ sub IsAdv { my $adv = 0; $year += 1900; - if ( $month < 1 ) { - if ( $monthday < 7 ) { + if ( $month < 2 ) { + if ( + ( + $month < 1 + && $FHEM::Automation::ShuttersControl::ascDev->getAdvEndDate eq + 'EpiphanyDay' + && $monthday < 7 + ) + || ( $month < 2 + && $FHEM::Automation::ShuttersControl::ascDev->getAdvEndDate eq + 'CandlemasDay' + && $monthday < 3 ) + ) + { $adv = 1; } } @@ -1030,7 +1042,7 @@ sub IsAdv { 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 -- 2.39.2 From a1d19a797defc3e3f17b2b7ba13fc9e0edaa6147 Mon Sep 17 00:00:00 2001 From: Marko Oldenburg Date: Mon, 10 Jan 2022 11:01:07 +0100 Subject: [PATCH 2/4] fix error in adv condition --- controls_AutoShuttersControl.txt | 2 +- lib/FHEM/Automation/ShuttersControl/Helper.pm | 27 ++++++++----------- 2 files changed, 12 insertions(+), 17 deletions(-) diff --git a/controls_AutoShuttersControl.txt b/controls_AutoShuttersControl.txt index be00552..0fb09b7 100644 --- a/controls_AutoShuttersControl.txt +++ b/controls_AutoShuttersControl.txt @@ -5,7 +5,7 @@ UPD 2022-01-02_07:57:18 2677 lib/FHEM/Automation/ShuttersControl/Roommate.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-10_10:41:32 40708 lib/FHEM/Automation/ShuttersControl/Helper.pm +UPD 2022-01-10_11:00:42 40571 lib/FHEM/Automation/ShuttersControl/Helper.pm UPD 2022-01-02_07:57:18 2209 lib/FHEM/Automation/ShuttersControl/Window.pm UPD 2022-01-10_10:41:34 11858 lib/FHEM/Automation/ShuttersControl/Dev/Attr.pm UPD 2022-01-01_20:15:38 7265 lib/FHEM/Automation/ShuttersControl/Dev/Readings.pm diff --git a/lib/FHEM/Automation/ShuttersControl/Helper.pm b/lib/FHEM/Automation/ShuttersControl/Helper.pm index d26ecb6..202cfbf 100644 --- a/lib/FHEM/Automation/ShuttersControl/Helper.pm +++ b/lib/FHEM/Automation/ShuttersControl/Helper.pm @@ -1020,22 +1020,17 @@ sub IsAdv { my $adv = 0; $year += 1900; - if ( $month < 2 ) { - if ( - ( - $month < 1 - && $FHEM::Automation::ShuttersControl::ascDev->getAdvEndDate eq - 'EpiphanyDay' - && $monthday < 7 - ) - || ( $month < 2 - && $FHEM::Automation::ShuttersControl::ascDev->getAdvEndDate eq - 'CandlemasDay' - && $monthday < 3 ) - ) - { - $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 = $monthday < 3 ? 1 : 0; } else { my $time = str2time( $year . '-12-25' ); -- 2.39.2 From 12f48e98b54380f6e704bf5e8f5656cf5f62f7dd Mon Sep 17 00:00:00 2001 From: Marko Oldenburg Date: Mon, 10 Jan 2022 11:04:43 +0100 Subject: [PATCH 3/4] fix condition --- controls_AutoShuttersControl.txt | 2 +- lib/FHEM/Automation/ShuttersControl/Helper.pm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/controls_AutoShuttersControl.txt b/controls_AutoShuttersControl.txt index 0fb09b7..8a44fce 100644 --- a/controls_AutoShuttersControl.txt +++ b/controls_AutoShuttersControl.txt @@ -5,7 +5,7 @@ UPD 2022-01-02_07:57:18 2677 lib/FHEM/Automation/ShuttersControl/Roommate.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-10_11:00:42 40571 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-10_10:41:34 11858 lib/FHEM/Automation/ShuttersControl/Dev/Attr.pm UPD 2022-01-01_20:15:38 7265 lib/FHEM/Automation/ShuttersControl/Dev/Readings.pm diff --git a/lib/FHEM/Automation/ShuttersControl/Helper.pm b/lib/FHEM/Automation/ShuttersControl/Helper.pm index 202cfbf..cd587fd 100644 --- a/lib/FHEM/Automation/ShuttersControl/Helper.pm +++ b/lib/FHEM/Automation/ShuttersControl/Helper.pm @@ -1030,7 +1030,7 @@ sub IsAdv { && $FHEM::Automation::ShuttersControl::ascDev->getAdvEndDate eq 'CandlemasDay' ) { - $adv = $monthday < 3 ? 1 : 0; + $adv = $month = 1 || ( $month = 2 && $monthday < 3 ) ? 1 : 0; } else { my $time = str2time( $year . '-12-25' ); -- 2.39.2 From d8881ff6d15ad9ed46749f23c1cf6a9bf2ca7195 Mon Sep 17 00:00:00 2001 From: Marko Oldenburg Date: Mon, 10 Jan 2022 11:07:42 +0100 Subject: [PATCH 4/4] change default value for ASC_advEndDate --- controls_AutoShuttersControl.txt | 2 +- lib/FHEM/Automation/ShuttersControl/Dev/Attr.pm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/controls_AutoShuttersControl.txt b/controls_AutoShuttersControl.txt index 8a44fce..30709bd 100644 --- a/controls_AutoShuttersControl.txt +++ b/controls_AutoShuttersControl.txt @@ -7,7 +7,7 @@ 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-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-10_10:41:34 11858 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 fe19a6d..1215825 100644 --- a/lib/FHEM/Automation/ShuttersControl/Dev/Attr.pm +++ b/lib/FHEM/Automation/ShuttersControl/Dev/Attr.pm @@ -397,7 +397,7 @@ sub getAdvEndDate { my $name = $self->{name}; - return ::AttrVal( $name, 'ASC_advEndDate', 'CandlemasDay' ); + return ::AttrVal( $name, 'ASC_advEndDate', 'EpiphanyDay' ); } 1; -- 2.39.2