diff --git a/73_AutoShuttersControl.pm b/73_AutoShuttersControl.pm index 713a6a3..0e30e32 100644 --- a/73_AutoShuttersControl.pm +++ b/73_AutoShuttersControl.pm @@ -45,7 +45,7 @@ use strict; use warnings; use FHEM::Meta; -my $version = '0.6.10'; +my $version = '0.6.11'; sub AutoShuttersControl_Initialize($) { my ($hash) = @_; @@ -1216,6 +1216,18 @@ sub EventProcessingResidents($@) { $shutters->setLastDrive('residents home'); $shutters->setDriveCmd( $shutters->getClosedPos ); } + elsif ( + $shutters->getShadingMode eq 'home' + and IsDay($shuttersDev) + and $shutters->getIfInShading + and $shutters->getStatus != $shutters->getShadingPos + and not( CheckIfShuttersWindowRecOpen($shuttersDev) == 2 + and $shutters->getShuttersPlace eq 'terrace' ) + ) + { + $shutters->setLastDrive('shading in'); + $shutters->setDriveCmd( $shutters->getShadingPos ); + } elsif ( $ascDev->getSelfDefense eq 'on' and CheckIfShuttersWindowRecOpen($shuttersDev) != 0 @@ -1854,10 +1866,16 @@ sub ShadingProcessing($@) { . ' - Alle Werte für die weitere Verarbeitung sind korrekt vorhanden und es wird nun mit der Beschattungsverarbeitung begonnen' ); + # minimalen und maximalen Winkel des Fensters bestimmen. wenn die aktuelle Sonnenposition z.B. bei 205° läge und der Wert für angleMin/Max 85° wäre, dann würden zwischen 120° und 290° beschattet. + my $winPosMin = $winPos - $angleMinus; + my $winPosMax = $winPos + $anglePlus; + if ( ( $outTemp < $shutters->getShadingMinOutsideTemperature - 3 or not IsDay($shuttersDev) + or $azimuth < $winPosMin + or $azimuth > $winPosMax ) and $shutters->getShadingStatus ne 'out' and $getStatus != $getShadingPos @@ -1878,10 +1896,6 @@ sub ShadingProcessing($@) { ); } -# minimalen und maximalen Winkel des Fensters bestimmen. wenn die aktuelle Sonnenposition z.B. bei 205° läge und der Wert für angleMin/Max 85° wäre, dann würden zwischen 120° und 290° beschattet. - my $winPosMin = $winPos - $angleMinus; - my $winPosMax = $winPos + $anglePlus; - if ( $azimuth < $winPosMin or $azimuth > $winPosMax or $elevation < $shutters->getShadingMinElevation @@ -5019,9 +5033,9 @@ sub getblockAscDrivesAfterManual {

AutoShuttersControl


- Der Befehl erstellt ein AutoShuttersControl-Device mit Namen myASControl.
- Nach der Anlage des ASC-Device müssen anschließend die Rollläden in die Automatisierung aufgenommen werden. Dazu muss in den Rollläden-Geräten das Attribut ASC mit dem Wert 1 oder 2 gesetzt werden. Dabei bedeutet: -
-
ASC=1 Inverse oder Rollo
-
Rollo-Position oben = 0
-
Rollo-Position unten = 100
-
Der Befehl zum prozentualen Fahren lautet position
-
-
ASC=2 Homematic-Style
-
Rollo-Position oben = 100
-
Rollo-Positon unten = 0
-
Der Befehl zum prozentualen Fahren ist pct
-
- Nachdem das Attribut in den Rollläden entsprechend gesetzt wurde, ist ein Scandurchlauf (siehe: set ASC-Device scanForShutters) im ASC-Device durchzuführen. + Der Befehl erstellt ein AutoShuttersControl Device mit Namen myASControl.
+ Nachdem das Device angelegt wurde, muss in allen Rollläden Devices, welche gesteuert werden sollen, das Attribut ASC mit Wert 1 oder 2 gesetzt werden. + Dabei bedeutet 1 = "Prozent geschlossen" (z.B. ROLLO oder Siro Modul) - Rollo Oben 0, Rollo Unten 100, 2 = "Prozent geöffnet" (z.B. Homematic) - Rollo Oben 100, Rollo Unten 0. + Die Voreinstellung für den Befehl zum prozentualen Fahren ist in beiden Fällen unterschiedlich. 1="position" und 2="pct". Dies kann, soweit erforderlich, zu späterer Zeit noch angepaßt werden. + Habt Ihr das Attribut gesetzt, könnt Ihr den automatischen Scan nach den Devices anstossen.
@@ -5066,10 +5071,10 @@ sub getblockAscDrivesAfterManual {
  • room_... - Auflistung aller Rollläden, die in den jeweiligen Rämen gefunden wurde. Beispiel: room_Schlafzimmer: Terrasse
  • selfDefense - Selbstschutz-Status
  • state - Status des ASC-Devices: active, enabled, disabled oder weitere Statusinformationen
  • -
  • sunriseTimeWeHoliday - on/off - Status der Wochenendunterstützung
  • -
  • userAttrList - Das ASC-Modul verteilt diverse Benutzerattribute (userattr) Rollläden-Geräten. In diesem Reading kann der Status dieser Verteilung geprüft werden.
  • +
  • sunriseTimeWeHoliday - on/off - Status der Wochenendunterstützung
  • +
  • userAttrList - Das ASC-Modul verteilt diverse Benutzerattribute (userattr) Rollläden-Geräten. In diesem Reading kann der Status dieser Verteilung geprüft werden.

  • - In den Rollläden-Geräten + In den Rollläden-Geräten
    - In den Rollläden-Geräten + In den Rollläden-Geräten

  • ASC_ShuttersPlace - window/terrace - Wenn dieses Attribut auf terrace gesetzt ist, das Residence Device in den Status "gone" geht und SelfDefence aktiv ist (ohne das das Reading selfDefense gesetzt sein muss), wird das Rollo geschlossen (default: window)
  • ASC_Time_Down_Early - Sunset frühste Zeit zum Runterfahren (default: 16:00)
  • @@ -5225,7 +5230,7 @@ sub getblockAscDrivesAfterManual {
  • ASC_Ventilate_Pos - in 10 Schritten von 0 bis 100 (default: ist abhängig vom Attribut ASC)
  • ASC_Ventilate_Window_Open - auf lüften, wenn das Fenster gekippt/geöffnet wird und aktuelle Position unterhalb der Lüften-Position ist (default: on)
  • ASC_WiggleValue - Wert um welchen sich die Position des Rollladens ändern soll (default: 5)
  • -
  • ASC_WindParameters - TRIGGERMAX[:HYSTERESE] [DRIVEPOSITION] / Angabe von Max Wert ab dem für Wind getriggert werden soll, Hytsrese Wert ab dem der Windschutz aufgehoben werden soll TRIGGERMAX - HYSTERESE / Ist es bei einigen Rollläden nicht gewünscht das gefahren werden soll, so ist der TRIGGERMAX Wert mit -1 an zu geben. (default: '50:20 ClosedPosition')
  • +
  • ASC_WindParameters - TRIGGERMAX[:HYSTERESE] [DRIVEPOSITION] / Angabe von Max Wert ab dem für Wind getriggert werden soll, Hytsrese Wert ab dem der Windschutz aufgehoben werden soll TRIGGERMAX - HYSTERESE / Ist es bei einigen Rollläden nicht gewünscht das gefahren werden soll, so ist der TRIGGERMAX Wert mit -1 an zu geben. (default: '50:20 ClosedPosition')
  • ASC_WindowRec - Name des Fensterkontaktes, an dessen Fenster der Rollladen angebracht ist (default: none)
  • ASC_WindowRec_subType - Typ des verwendeten Fensterkontaktes: twostate (optisch oder magnetisch) oder threestate (Drehgriffkontakt) (default: twostate)