AutoShuttersControl: Unterschied zwischen den Versionen

Aus FHEMWiki
K (set war veraltet, nun gibt es ein Attribut)
 
(130 dazwischenliegende Versionen von 12 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Baustelle}}
{{Infobox Modul
{{Infobox Modul
|ModPurpose=Steuerung von Rollläden
|ModPurpose=Steuerung von Rollläden
Zeile 7: Zeile 6:
|ModTechName=73_AutoShuttersControl.pm
|ModTechName=73_AutoShuttersControl.pm
|ModOwner=CoolTux ({{Link2FU|13684|Forum}}/[[Benutzer Diskussion:CoolTux|Wiki]])}}
|ModOwner=CoolTux ({{Link2FU|13684|Forum}}/[[Benutzer Diskussion:CoolTux|Wiki]])}}
 
Mit [[AutoShuttersControl]] oder kurz '''ASC''' können Rollläden automatisch hoch und herunter gefahren werden. Zum Beispiel Öffnen bei Sonnenaufgang, Schließen bei Sonnenuntergang, Beschatten abhängig vom Sonnenstand oder Anfahren von Lüftungspositionen nach Öffnen des zugehörigen Fensters.  
Mit [[AutoShuttersControl]] oder kurz ASC können typische Aufgabenstellungen im Zusammenhang mit Rollläden u.ä. automatisiert werden, wie zum Beispiel das Öffnen bei Sonnenaufgang, Schließen bei Sonnenuntergang oder das Anfahren von Lüftungspositionen beim Öffnen des zugehörigen Fensters.  
 
{{Hinweis|Das Modul befindet sich derzeit noch in der Entwicklung; der jeweils aktuelle Stand ist  diesem {{Link2Forum|Topic=90751|LinkText="Thread im Forum"}} zu entnehmen.}}


== Basics ==
== Basics ==
Zur Nutzung des Moduls sollten folgende andere FHEM-Devices vorhanden sein:
{{Hinweis|Das Modul befindet sich derzeit noch in der Entwicklung; der derzeit aktuelle Stand ist  diesem {{Link2Forum|Topic=112325|LinkText="Thread im Forum"}} zu entnehmen.}}
* Rollläden
Als Voraussetzung sollten folgende FHEM-Devices bereits vorhanden sein:
* Fensterkontakte und
* Rollläden,
* Bewohnerstatus auf Basis von Residents/Roomates in englisch. Ersatzweise andere Devices, z.B. Dummys, welche als ''state'' ''home'', ''asleep'', ''gotosleep'' und ''awoken'' setzen sowie ein Reading ''lastState''.
* Fensterkontakte,
* Optional:
* Bewohnerstatus auf Basis von Residents/Roomates in englisch. Ersatzweise andere Devices, z.B. Dummys, welche als ''state'' ''home'', ''absent'', ''asleep'', ''gotosleep'' und ''awoken'' setzen sowie ein Reading ''lastState''.
** Ein Helligkeitssensor (Steuerung nach Helligkeit und Beschattung)
* Helligkeitssensor (Steuerung nach Helligkeit für Beschattung)
** Ein Device zur Bestimmung des Sonnenstands (nur für Beschattungf). Unterstützt werden derzeit [[Astro]] und [[twilight]]<ref>Dabei müssen ggf. in [[global]] auch Angaben zu longitude und latitude vorhanden sein</ref>.  
* Ein Device zur Bestimmung des Sonnenstands (nur für Beschattung). Unterstützt werden derzeit [[Modul Astro|Astro]] und [[Twilight]]<ref>Dabei müssen ggf. in [[Global|global]] auch Angaben zu ''longitude'' und ''latitude'' vorhanden sein</ref>.  
** Wenn Feiertage berücksichtigt werden sollen: Ein oder mehrere [[holiday2we]]-Angaben in [[global]] samt entsprechender [[holiday]]-Dateien<ref>Es kann auch z.B. ein Dummy-Device verwendet werden, dieses sollte dann aber auch in einem Reading ''tomorrow'' Angaben zu anstehenden Feiertagen enthalten.</ref> <ref>Bitte verfahren Sie entsprechend, wenn Urlaubs- oder Ferientage wie Feiertage behandelt werden sollen.</ref>.
* Wenn Feiertage berücksichtigt werden sollen: Ein oder mehrere {{Link2CmdRef|Anker=holiday2we|Lang=en|Label=holiday2we}}-Angaben in [[Global|global]] samt entsprechender [[Wochenende, Feiertage und Schulferien#Feiertage mittels holiday-Datei|holiday]]-Dateien<ref>Es kann auch z.B. ein Dummy-Device verwendet werden, dieses sollte dann aber neben dem eigentlichen Feiertags-''state'' auch in einem Reading ''tomorrow'' Angaben zu anstehenden Feiertagen enthalten.</ref> <ref>Bitte verfahren Sie entsprechend, wenn Urlaubs- oder Ferientage wie Feiertage behandelt werden sollen.</ref>.


Die Einrichtung des Moduls bzw. dessen Funktionalität erfolgt in mehreren Schritten:
Die Einrichtung des Moduls bzw. dessen Funktionalität erfolgt in mehreren Schritten:
Zeile 34: Zeile 30:


=== Vorbereitung ===
=== Vorbereitung ===
Zunächst sollten die in den [[Basics]] beschriebenen Geräte vorhanden und funktionsfähig sein.  
Zunächst sollten die in den [[#Basics|Basics]] beschriebenen Geräte vorhanden und funktionsfähig sein.  


=== Define des ASC-Devices ===
=== Define des ASC-Devices ===
Zeile 42: Zeile 38:


=== Einstellung zentraler Vorgaben ===
=== Einstellung zentraler Vorgaben ===
Es stehen am ASC-Device einige Attribute zur Verfügung, über die sich das Verhalten des ASC-Devices insgesamt steuern lässt, z.B. zur Vermeidung von morgendlichen oder abendlichen Fahrten sowie bei Gefahr von Schäden an den Rollläden durch Frost oder zur Reaktion auf Fensterkontakte. Details sind der Commandref zu entnehmen.
Mit Attributen am ASC-Device wird das Verhalten des ASC-Devices eingestellt, z.B. Vermeiden von morgendlichen oder abendlichen Fahrten, Frostschutzfunktion bei Gefahr von festgefrorenen Rollläden oder die Reaktion auf Fensterkontakte. Details sind der Commandref zu entnehmen.
Diese Attribute können auch nachträglich noch geändert werden.
Diese Attribute können jederzeit geändert werden.


=== Markieren zu steuernder Rollladen-Devices ===
=== Auswählen zu steuernder Rollladen-Devices ===
Um einen oder mehrere Rollläden durch das ASC-Device zu steuern, wird für jeden Rollladen jeweils das neue globale Attribut ''ASC'' gesetzt. Der Wert ist mit 1 oder 2 festzulegen, wobei '''1''' bedeutet, dass
Für jeden vom ASC-Device kontrollierten Rollladen muss das globale Attribut ''ASC'' gesetzt werden. Das steht nach dem Definieren des ASC-Devices zur Verfügung. Das Attribut ist mit 1 oder 2 festzulegen:
* die Offen-Position kleiner ist als die Geschlossen-Position, also typischerweise 0 ''offen'' bedeutet und 100 für ''geschlossen'' steht
# Je ''kleiner'' der <code>pct</code> Wert um so weiter ist der Rollladen geschlossen. Typischerweise ist dann 0 ''offen'' und 100 ''geschlossen''. Dies ist z.B. die  passende Wahl für ROLLO-Devices
* eine bestimmte Position mit '''position''' angefahren wird, also z.B. <code>set <name> position 70</code>.
# Je ''größer'' der <code>pct</code> Wert desto weiter ist der Rollladen geschlossen, also ''offen'' für <code>set <name> pct 100</code>. Typische Vertreter dieses Typs sind HomeMatic (CUL_HM-) Geräte oder die Shelly2-Aktoren.
Dies ist z.B. die passende Wahl für ROLLO-Devices


Die '''2''' steht für ein umgekehrtes Verhalten und den Befehlsteil ''pct'', also ''offen'' für <code>set <name> pct 100</code>. Typischer Vertreter dieses Typs sind HomeMatic (CUL_HM-) Geräte oder die Shelly2-Aktoren.
Basierend auf dem Parameter leitet das Modul bestimmte Voreinstellungen (''defaults'') für den Rollladen ab. Es genügt daher, nur jeweils die Einstellungen zu verändern, die anders gewünscht werden oder für den Rollladenaktortyp anders sein müssen (z.B. ''dim 99'' für vollständiges Öffnen eines ZWave-Aktors).
{{Hinweis|Das Vorstehende gilt jeweils für den nicht-invertierten Modus! Wer z.B. ein HomeMatic-Gerät mit ''levelinverse'' betreibt, sollte ''ASC'' auf "1" setzen usw.. Maßgeblich ist letztlich nur die Frage, ob die Offen-Positionsangabe nummerisch kleiner oder größer als die Geschlossen-Positionsangabe ist; die konkreten Zahlenwerte spielen dabei keine Rolle, die Angabe ''position'' oder ''pct'' kann auch später über ein weiteres Attribut passend eingestellt werden.}}


=== Einbinden in das ASC-Device ===
=== Einbinden in das ASC-Device ===
Nachdem man das obige Attribut bei einem oder mehreren Rollladen-Devices gesetzt hat, kann mit  
Nachdem das ASC Attribut für die betreffenden Rollladen-Devices gesetzt ist, muss mit <code>set <name> scanForShutters</code> ein Suchlauf gestartet werden, mit dem diese Rollläden in die Steuerungslogik eingebunden werden.
<code>set <name> scanForShutters</code> ein Suchlauf gestartet werden, mit dem dann diese Rollläden durch das Modul gefunden und in die Steuerungslogik eingebunden werden.


=== Einstellen der individuellen Vorgaben ===
=== Einstellen der individuellen Vorgaben ===
Nach der Einbindung sind an den Rollladen-Devices weitere Attribute verfügbar, mit denen die für den jeweiligen Rollladen geltenden Einstellungen vorgenommen werden können.  
Die gefundenen Rollladen-Devices erhalten weitere Attribute, mit denen für den jeweiligen Rollladen benötigte Einstellungen vorgenommen werden.  
Die Beschreibung der Attribute ist in der commandref enthalten.
Diese Attribute sind in der commandref beschrieben.
 
=== Einrichtungsbeispiel ===
==== Zielsetzung und Vorgaben ====
Es sollen alle Rollläden und Jalousien in einem Haus innerhalb bestimmter zeitlicher Grenzen Morgens und Abends sonnenstandsabhängig gefahren werden, an den Wochenenden und an Ferientagen soll etwas später geöffnet werden. Es sind Tür- und Fensterkontakte vorhanden (Türkontakte: twoState, Fensterkontakte: threeState), wobei bei jeder Öffnung ein eventuell geschlossener Rollladen geöffnet werden soll. Bei allen Rollladnaktoren, Tür- und Fensterkontakten handelt es sich um CUL_HM-Geräte.
 
==== Vorarbeiten ====
Im global-Device sind Angaben zu latitude und longitude vorhanden, holiday2we wie folgt<ref>ferien ist eine automatisiert erstellte holiday-Datei nach diesem Foren-Beitrag.</ref>:
attr global holiday2we bw,ferien
Weitere Angaben benötigen wir zunächst nicht, die Festlegung eines Astro-Devices erfolgt hier erst im Rahmen der Beschattung.
Dann erfolgt das ''Define des ASC-Devices'' wie oben beschrieben:
<code>define Rollladenautomatik AutoShuttersControl</code>
Folgen die einzubindenden Rollladenaktoren einem einheitlichen Namensschema, können diese sodann z.B. mit
attr (Jalousie|Rolladen)_.* ASC 2
auf einen Rutsch mit dem passenden ASC-Typ gekennzeichnet werden. Dann verteilen wir mir
set Rollladenautomatik scanForShutters
die nachfolgend weiter zu bearbeitenden Attribute.


===== Konfiguration des ASC-Devices =====
Da wir sonnenstandsabhängig Fahrzeiten wollen, legen wir erst einmal fest, dass dies morgens und abends berücksichtigt werden soll:
<pre>
attr Rollladenautomatik ASC_autoAstroModeEvening CIVIL
attr Rollladenautomatik ASC_autoAstroModeMorning CIVIL
attr Rollladenautomatik ASC_autoShuttersControlEvening on
attr Rollladenautomatik ASC_autoShuttersControlMorning on
</pre>
Aus der Angabe ''CIVIL'' und den Vorgaben in den einzelnen Rollladen wird dabei mit Hilfe von [[SUNRISE_EL]] die effektive Fahrzeit berechnet, dort finden sich auch weitere Hinweise, zu den meisten anderen Optionen für die ersten beiden Attribute.
Bei allen Fensteröffnungen soll auf Lüften-Position gefahren werden, also schalten wir diese Funktion ebenfalls zentral an<ref>Sonst wird bei threeState-Sensoren nur bei ''tilted'' gefahren.</ref>:
attr Rollladenautomatik ASC_autoShuttersControlComfort on
Zuletzt legen wir noch einen Temperatur-Sensor fest. Dieser wird beim Frostschutz sowie bei der Beschattung berücksichtigt.
<pre>
attr Rollladenautomatik ASC_temperatureSensor Aussentemperatur_Nord
attr Rollladenautomatik ASC_temperatureReading temperature
attr Rollladenautomatik ASC_freezeTemp 3
</pre>
tbd: Rain
===== Fahrzeiten =====
Zur Konfiguration der Fahrzeiten bietet es sich an, eine ReadingsGroup zu nutzen, wie unter [[Hilfsmittel]] dargestellt. Alternativ kann man die Zeiten auch manuell in den einzelnen Rollläden hinterlegen.
===== Fensterkontakte =====
<!-- 2. Schritt:
Festlegen der Roomates etc.; sollte soweit klar sein, cref ist an sich ok, das Wiki enthält dazu einige weitere Angaben, das ganze ist aber nicht im Sinne einer "Schritt-für-Schritt-Anleitung" ausgeführt: Das mit den Residents (und den Readings) findet sich (nur) im Zusammenhang mit den Voraussetzungen (sollte "man" ergänzen, oder?).
3. Schritt:
Festlegen der Fensterkontakte
Von der Einrichtung her nachvollziehbar; unklar ist mir noch, ob auf meine Three-state richtig reagiert wird - habe das mit der neuen Version bisher nur bewußt im Schlafzimmer getestet, da ging der Rollladen beim Fenster-auf nicht hoch; kann aber auch am Status das Roommate-Devices gelegen haben. Muß ich selbst noch testen.
threeState/tilted: ASC_autoShuttersControlComfort im ASC auf on setzen.
4. Wind
Ähm, bin nicht auf dem letzten Stand, aber sollte das nicht integriert werden? Passende Attribute finde ich aber keine...
(Ich habe hier 4 Außenjalousien, die ich bei unterschiedlichen Windgeschwindigkeiten gerne komplett einfahren würde; im Moment macht das noch ein separates notify).
5. Beschattung
Dann wollte ich mich also an den eigentlichen neuen Teil machen, die Beschattung.
Wie die ganzen Attribute ineinandergreifen, steht scheinbar nirgends. M.E. ein dringliches todo.
a) Da finde ich ziemlich zentral ein "ASC_twilightDevice", ohne dass hier irgendwo (cref/Wiki) mehr erläutert wäre, als dass man es irgendwie im Rahmen der Beschattung benötigt. Sehr aufschlußreich... Da es nicht irgendwas mit Brightness heißt, scheint es sich um was anderes zu handeln ("Informationen zum Sonnenstand"). Aber woher werden dann die Helligkeitsschwellen bedient, die man zentral bzw. an den Rollläden einstellen kann? OK, gesehen, das wird wieder (nur) verteilt an allen einzelnen Rollläden festgelegt. Hm, aber warum das? (Ich habe derzeit eigentlich nur einen Lieferanten für Brightness; es würde mir daher ausreichen, wenn der für alle zentral festlegbar wäre).
Daher die Frage zu ASC_twilightDevice: Für was wird es noch verwendet und wie im Rahmen der Beschattung?
Hab's also erst mal weggelassen, zumal das ausnahmsweise keine explizite Angabe eines Readingsnamens vorsah und es auch irgendwie ungut an das aktuell nicht funktionierende "twilight"-Modul anzuknüpfen scheint.
CT: Um es gleich vorweg zu sagen. ASC_brightnessMinVal und ASC_brightnessMaxVal haben mit der Beschattung gar nichts zu tun.
Das Astro oder Twilight Modul (je nach dem welches als erstes gefunden wird bei einer automatischen Suche) wird verwendet um die Sonnenposition zu erkennen.
Azimut und Elevation. Der eigentliche Trigger ist aber in der Tat Brightness. Nur wenn sich der Brightness Wert ändert werden Azimut, Elevation, Temperatur und die Ein und Ausfallswinkel Ausgelesen und/oder Berechnet und basierend auf diesen Werten entschieden ob shading in oder shading out.
b) Dann habe ich also erst mal die Winkelangaben gemacht. An sich selbsterklärend, aber was mache ich mit den Fenstern auf der Nordseite?
Auf Risiko haben die jetzt also erst mal alle einen Wert in der Nähe von 0, aber immer noch die Varianz von +/- 85°. Paßt das, oder sollte ich das ändern (so dass keine Werte <0° rauskommen können)?!? Oder gar das Attribut bei den Nordfenstern ganz löschen?
c) Ok, dann gibt es eine Reihe weiterer "ASC_Shading.*"-Attribute. Die sind irgendwie vorbelegt, allerdings wäre es vermutlich hilfreich, wenn wir im Wiki ggf. erklären, wie die Werte zu verstehen sind und diese zusammenwirken.
d) Letztlich scheinen die ASC_brightnessMinVal-etc.-Attribute die eigentich entscheidenen Angaben zu sein. Aber wie wirkt das alles jetzt zusammen?
Ein paar erläuternde Worte wären hilfreich, sonst muß ich doch Quellcode lesen oder einfach testen...
6. Sonstiges
Dann gibt's da noch ein paar weitere Features, die zwar in der cref bzw. im Wiki erwähnt sind, deren Bedeutung sich mir aber nicht auf die Schnelle erschließt, so dass ich nicht beurteilen kann, ob und wie ich das anwende (-n will):
a) Privacy: Ist (praktisch) nur in der cref drin.
Möchte jemand ein Anwendungsbeispiel im Wiki ergänzen, damit man besser nachvollziehen kann, was die beiden Attribute bewirken?
CT: Hier geht es nur darum eine bestimmte Zeit vor dem eigentlichen schließen der Rollläden diese schon mal auf sagen wir 50% zu fahren. Ein Anwendungsfall war gewesen das die Rollläden zur Straße hin mit viel Fußgängerverkehr waren und Abends schon vor dem schließen dieser das Licht drin an ging. Somit konnte man gut rein schauen.
b) BlockingTime
In welchem Zusammenhang wirkt sich das jeweils aus, wann sollte/kann man das verwenden?
CT: Das verwendet sich von alleine. Nach einer manuellen Fahrt wird eine vom ASC Modul initiierte Fahrt ausgesetzt. Das geschieht so lange bis die im Attribute angegebene Zeit überschritten ist, eine dann vom ASC Modul initiierte Fahrt wird durchgeführt.
Genau so wird ein hochfahren eines Rollos durch das ASC Modul nicht mehr ausgeführt wenn es innerhalb der Zeit von ASC_BlockingTime_beforNightClose und das runterfahren wird nicht mehr erfolgen wenn es innerhalb von ASC_BlockingTime_beforDayOpen ist.
Beispiel: Meine Tochter geht früh aus Haus und Ihre Rollos sind nicht hoch gefahren. Diese fahren auch nicht mehr hoch da die ausschließlich bei home (anwesend) fahren sollen. Nun kommt sie am Nachmittag um 16:23 Uhr nach Hause, eigentlich sollten nun die Rollos fahren. Doch die Sonnenuntergangsfahrt (schließen) wäre schon 16:51 Uhr und damit innerhalb der 3600 ASC_BlockingTime_beforNightClose. Die Rollos bleiben also unten. Es lohnt sich für die paar Minuten einfach nicht mehr.
c) wiggle
(OK, das ist klar, man kann mit einem "set <ASC-Device> wiggle" alle Rollladen mit einem entsprechenden Attribut zu einer kurzen Fahrt veranlassen. Gehe mal davon aus, dass um den Wert in Richtung closed gefahren wird, und dann nach Ablauf der Minute wieder um denselben Wert zurück.) Steht nur noch nichts im Wiki zu...
CT: Fast. Es wird geschaut wo der Rollladen steht und dann wird in die Richtung gefahren wo er den meisten Weg hat. Wenn also zu 70% geschlossen ist, wird er hoch fahren.
d) Partymode, lock-out etc
(Auch hier: Doku ist etwas verteilt, könnte man im Wiki jeweils unter einem eigenen Unterabschnitt im Zusammenhang darstellen)
Wäre nett, wenn der eine oder andere Licht ins Dunkel bringen könnte, dann kann ich mich auch dran machen, das im Wiki irgendwie zu verarbeiten.
CT: Noch mal ein zwei Worte zum Thema Dokumentation. Ich denke im Wiki wären Anwendungsbeispiele ganz gut aufgehoben.
Gerade die Sache mit dem Privacy. Wozu kann man es verwenden?
Dann auch SelfDefense. Das bei einem absent nur da die Rollläden geschlossen werden wo das Fenster vergessen wurde zu schließen.
Beim wechsel in gone wird nur an den makierten Terassentüren der Rollladen runter gefahren. -->
== Readings ==
== Readings ==
===Readings im zentralen ASC-Device ===


===Readings im ASC-Device selbst.===
{| class="wikitable"
 
|-
{|class="wikitable"
! Name !! Datentyp/<BR />Wertebereich !! Bedeutung 
|-
|..._nextAstroTimeEvent || || Zeit wird abhängig von der eingestellten Attribute ASC_Time_Up/ASC_Time_Down angezeigt. Bei ''astro'' die Uhrzeit des  Sonnenauf- oder Sonnenuntergang, bei ''time'' und ''brightness'' die Zeit aus ASC_Time_Up_Early/ASC_Time_Down_Late pro Rollonamen
|-
|..._lastPosValue || || Position pro Rollonamen, bevor ASC die Rollläden verfahren hat.
|-
|-
! Name !! Datentyp/<BR/>Wertebereich !! Bedeutung 
|..._PosValue || ||aktuelle Position pro Rollonamen.
|-
|-
|..._nextAstroTimeEvent || ||Uhrzeit des nächsten Astro-Events, Sonnenauf- oder Sonnenuntergang oder feste Zeit pro Rollonamen
|ascEnable||on, off ||globale ASC Steuerung bei den Rollläden aktiv oder inaktiv
|-
|-
|..._lastPosValue || ||zuletzt abgesetzter Fahrbefehl pro Rollonamen
|controlShading||on, off ||globale Beschattungsfunktion aktiv oder inaktiv
|-
|-
|..._lastDelayPosValue || ||zuletzt abgesetzter Fahrbefehl, welcher beim nächsten zulässigen Event ausgeführt wird
|hardLockOut || on, off ||Status des hardwareseitigen Aussperrschutzes / gilt nur für Rollläden mit dem Attribut bei denen das Attributs ASC_LockOut entsprechend auf hard gesetzt ist.
|-
|-
|partyMode ||on, off || aktiviert den globalen Partymodus. Alle Rollläden, welche das Attribut ''AutoShuttersControl_Partymode'' bei sich auf ''on'' gestellt haben, werden nicht mehr gesteuert. Der letzte Schaltbefehl, welcher durch ein Fensterevent oder Bewohnerstatus an die Rollläden gesendet wurde, wird erst beim off-setzen (set <ASC-Device> partyMode off) ausgeführt
|selfDefense || on, off ||globale Selbstschutzfunktion aktiv oder inaktiv
|-
|-
|lockOut || on, off ||für das Aktivieren des Aussperrschutzes gemäß des entsprechenden Attributs ''AutoShuttersControl_lock-out'' im jeweiligen Rolladen (siehe Beschreibung bei den Attributen für die Rolladendevices)
|partyMode ||on, off || globaler Partymodus aktiv oder inaktiv
|-
|-
|room_... || ||Auflistung aller Rollläden, welche in den jeweiligen Räumen gefunden wurden, Bsp.: room_Schlafzimmer,Terrasse
|state || ||Status des ASC-Devices: active, enabled, disabled oder weitere Statusinformationen wie z.B. Grund der letzen Fahrt.
|-
|-
|state || ||Status des <ASC-Device> active, enabled, disabled
|room_... || ||Auflistung aller Rollläden, welche in den jeweiligen Räumen gefunden wurden, Bsp.: room_Schlafzimmer,Terrasse.
|-
|-
|sunriseTimeWeHoliday|| on,off ||legt fest, ob das Rolladendevice das Attribut ''AutoShuttersControl_Time_Up_WE_Holiday'' beachtet oder nicht
|sunriseTimeWeHoliday|| on,off ||globale Wochenendunterstützung aktiv oder inaktiv.
|-
|-
|userAttrList || rolled out ||Status der UserAttribute, welche an die Rollläden gesendet werden
|userAttrList || rolled out ||Das ASC-Modul verteilt an die gesteuerten Rollladen-Geräte diverse Benutzerattribute (userattr). In diesem Reading kann der Status dieser Verteilung geprüft werden.
 
|}
|}


===Readings in den Rolllädendevices===
=== Readings in den Rolllädendevices ===


{|class="wikitable"
{| class="wikitable"
|-
|-
! Name !! Bedeutung   
! Name !! Bedeutung   
|-
|-
|ASC_Time_DriveUp ||Sonnenaufgangszeit für das Rollo
|ASC_Enable ||Status von ASC_Enable (on,off).
|-
|ASC_ShuttersLastDrive ||Grund der letzten Fahrt des Rollladens.
|-
|-
|ASC_Time_DriveDown ||Sonnenuntergangszeit für das Rollo
|ASC_Time_DriveDown ||Zeit wird abhängig von der eingestellten Attribute ASC_Time_Down angezeigt. Bei astro die Uhrzeit des Sonnenuntergangs, bei time und brightness die Zeit aus /ASC_Time_Down_Late
|-
|-
|ASC_ShuttersLastDrive ||Grund des letzten Fahrens vom Rolladen
|ASC_Time_DriveUp ||Zeit wird abhängig von der eingestellten Attribute ASC_Time_Up angezeigt. Bei astro die Uhrzeit des Sonnenaufgangs, bei time und brightness die Zeit aus /ASC_Time_Up_Early
|}
|}


== Settings ==
==set- und get-Befehle für das ASC-Device==
 
=== set-Anweisungen ===
===Set Befehle für ASC-Device===
{| class="wikitable"
 
|-
{|class="wikitable"
! Name !! Datentyp/<BR />Wertebereich !! Beschreibung 
|-
|advDriveDown ||on, off ||Nachholen der durch ASC_Adv on ausgesetzten Fahrten.
|-
|ascEnable||on, off ||Aktiviert oder deaktiviert die globale ASC-Steuerung.
|-
|controlShading||on, off ||Aktiviert oder deaktiviert die globale Beschattungssteuerung.
|-
|createNewNotifyDev || ||Legt die interne Struktur für NOTIFYDEV neu an. (Diese Funktion steht nur zur Verfügung, wenn Attribut ASC_expert auf 1 gesetzt ist.)
|-
|-
! Name !! Datentyp/<BR/>Wertebereich !! Beschreibung
|hardLockOut ||on, off ||Aktiviert den hardwareseitigen Aussperrschutz für die Rollläden, bei denen das Attributs ASC_LockOut auf hard gesetzt ist. Mehr Informationen in der Beschreibung bei den Attributen für die Rollladengeräten.
|-
|-
|partyMode ||on, off ||aktiviert den globalen Partymodus. Siehe Reading ''partyMode''
|partyMode ||on, off ||Aktiviert den globalen Partymodus. Alle Rollladen-Geräten, in welchen das Attribut ASC_Partymode auf on gesetzt ist, werden durch ASC nicht mehr gesteuert. Der letzte Schaltbefehl, der bspw. durch ein Fensterevent oder Wechsel des Bewohnerstatus an die Rollläden gesendet wurde, wird beim Deaktivieren des Partymodus ausgeführt
|-
|-
|lockOut ||on, off ||aktiviert den globalen Aussperrschutz. Siehe Reading ''lockOut''
|renewAllTimer || ||Erneuert bei allen Rollläden die Zeiten gemäß ASC_UP/ASC_DOWN und setzt die internen Timer neu.
|-
|-
|renewSetSunriseSunsetTimer || || erneuert bei allen Rollläden die Zeiten für Sunset und Sunrise und setzt die internen Timer neu.
|renewTimer || ||Erneuert bei dem ausgewählten Rollladen die Zeiten gemäß ASC_UP/ASC_DOWN und setzt die internen Timer neu.
|-
|-
|scanForShutters || ||sucht alle FHEM Devices mit dem Attribut ''AutoShuttersControl'' ''1'' oder ''2''
|scanForShutters || ||Sucht alle FHEM Devices mit dem Attribut ''ASC'' ''1'' oder ''2'' und legt diese im ASC-Modul an
|-
|-
|sunriseTimeWeHoliday || on,off ||aktiviert/deaktiviert die Beachtung des Attributes ''AutoShuttersControl_Time_Up_WE_Holiday'' für Rollladen-Devices
|selfDefence ||on, off||Aktiviert bzw. deaktiviert die Selbstschutzfunktion. Beispiel 1: Wenn das Residents-Gerät ''gone'' meldet, alle Rollläden dann heruntergefahren.  Beispiel 2 : Wenn das Residents-Gerät ''absent'' meldet, das Attribut ASC_ShuttersPlace=terrace ist und ein Fenster im Haus noch geöffnet ist, so wird an diesem Fenster der Rollladen dann heruntergefahren.
|-
|-
|createNewNotifyDev || ||Legt die interne Struktur für NOTIFYDEV neu an
|shutterASCenableToggle || ||Aktivieren oder deaktivieren der ASC Kontrolle des einzelnen Rollladens.
|-
|-
|selfDefence ||on, off||aktiviert/deaktiviert den Selbstschutz: wenn das Residents-Device ''absent'' meldet, ''selfDefence'' aktiv ist und ein Fenster im Haus noch offen steht, wird an diesem Fenster das Rollo runtergefahren
|sunriseTimeWeHoliday || on,off ||Aktiviert die Wochenendunterstützung. Dann wird das Attribut ASC_Time_Up_WE_Holiday am Rollladen-Device beachtet.
|-
|-
|wiggle ||||bewegt einen Rollladen oder alle Rollläden (für Abschreckungszwecke bei der Alarmierung) um ''ASC_WiggleValue''-%, und nach 1 Minute wieder zurück zur Ursprungsposition
|wiggle ||||Bewegt einen oder mehrere Rollläden um einen definierten Wert (Default: 5%) und nach einer Minute wieder zurück in die Ursprungsposition. Diese Funktion könnte bspw. zur Abschreckung in einem Alarmsystem eingesetzt werden.
|-
|-
|||||
|||||
|}
|}


== Get ==
=== get-Anweisungen ===


{|class="wikitable"
{| class="wikitable"
|-
|-
! Name !! Beschreibung
! Name !! Beschreibung
|-
|-
| showShuttersInformations ||zeigt eine Übersicht der Automatik-Fahrzeiten
| showNotifyDevsInformations ||Zeigt eine Übersicht der abgelegten NOTIFYDEV Struktur. Diese Funktion wird für das Debugging genutzt. Hierzu ist das Attribut ASC_expert = 1 zu setzen.
|-
| showNotifyDevsInformations ||zeigt eine Übersicht der abgelegten NOTIFYDEV Struktur. Dient zur Kontrolle
|}
|}
== Attribute ==
== Attribute ==
{{Hinweis|Die Attributnamen haben sich teilweise geändert, nachfolgend ist der Stand von Modulversion v0.8.x wiedergegeben.}}
{{Hinweis|In der commandref findet sich häufig die Schreibweise <code><nowiki>ASC_BrightnessSensor Sensorname[:brightness [400:800]]</nowiki></code>. Dabei sind die Angaben in den eckigen Klammern optional. Dies müssen also nicht angegeben werden, stattdessen verwendet das Modul dann Standardwerte (siehe cref), die in der cref zu findenden Angaben entsprechen dabei den defaults. Werden Werte angegeben, sind die eckigen Klammern '''wegzulassen'''! Beispiel: <code>ASC_BrightnessSensor hm_motion_1 70:100</code> würde das brightness-Reading des Sensors hm_motion_1 verwenden und einen morgendlichen Schwellenwert von 70 bzw. 100 für abends.}}
===Attribute direkt am ASC-Device ===


===Attribute im AutoShuttersControl Device selbst.===
{| class="wikitable"
 
{|class="wikitable"
|-
! Name !! Datentyp/<BR/>Wertebereich !! Default-Wert !! Beschreibung
|-
|-
|ASC_antifreezeTemp || || ||Temperatur, ab welcher der Frostschutz greift und das Rollo nicht mehr fährt. Der letzte Fahrbefehl wird gespeichert
! Name !! Datentyp/<BR />Wertebereich !! Default-Wert !! Beschreibung
|-
|-
|ASC_autoAstroModeEvening ||aktuell REAL, CIVIL, NAUTIC, ASTRONOMIC || || (in genau dieser Schreibweise)
|ASC_autoAstroModeEvening || ||REAL, CIVIL, NAUTIC, ASTRONOMIC oder HORIZON ||nach welchem ASTRO-Modus soll die Abendfahrt berechnet werden
|-
|-
|ASC_autoAstroModeEveningHorizon || || || Höhe über Horizont, wenn beim Attribut ''AutoShuttersControl_autoAstroModeEvening'' ''HORIZON'' ausgewählt
|ASC_autoAstroModeEveningHorizon || - 9 bis 9 || 0|| Höhe über dem Horizont. Wird nur berücksichtigt, wenn im Attribut ASC_autoAstroModeEvening der Wert HORIZON ausgewählt wurde.
|-
|-
|ASC_autoAstroModeMorning ||aktuell REAL, CIVIL, NAUTIC, ASTRONOMIC || ||(in genau dieser Schreibweise)
|ASC_autoAstroModeMorning || ||REAL, CIVIL, NAUTIC, ASTRONOMIC oder HORIZON || nach welchem ASTRO-Modus soll die Morgendfahrt berechnet werden
|-
|-
|ASC_autoAstroModeMorningHorizon || || ||Höhe über Horizont, wenn beim Attribut ''AutoShuttersControl_autoAstroModeMorning'' ''HORIZON'' ausgewählt
|ASC_autoAstroModeMorningHorizon || - 9 bis 9|| 0|| Höhe über dem Horizont. Wird nur berücksichtigt, wenn im Attribut ASC_autoAstroModeMorning der Wert HORIZON ausgewählt wurde.
|-
|-
|ASC_autoShuttersControlComfort ||on, off || ||aktiviert die Komfortfunktion. Bedeutet, dass ein Rollladen mit einem threestate (Drehgriff-) Sensor am Fenster beim Öffnen in die "Komfortposition" fährt. Diese wird beim Rollladendevice über das Attribut ''AutoShuttersControl_Pos_after_ComfortOpen'' eingestellt.
|ASC_autoShuttersControlComfort ||on, off || off ||schaltet die Komfortfunktion an. Bedeutet, dass ein Rollladen mit einem threestate-Sensor am Fenster beim Öffnen in eine Offenposition fährt. Hierzu muss beim Rollladen das Attribut ASC_ComfortOpen_Pos entsprechend konfiguriert sein.  
|-  
|-  
|ASC_autoShuttersControlEvening ||on, off || ||ob Abends die Rollläden automatisch zeitgesteuert werden sollen
|ASC_autoShuttersControlEvening ||on, off || ||Aktiviert die automatische Steuerung durch das ASC-Modul am Abend.
|-
|ASC_autoShuttersControlMorning ||on, off || ||ob Morgens die Rollläden automatisch zeitgesteuert werden sollen
|-
|-
|ASC_temperatureReading || || ||Reading für die Außentemperatur
|ASC_autoShuttersControlMorning ||on, off || ||Aktiviert die automatische Steuerung durch das ASC-Modul am Morgen.
|-
|-
|ASC_temperatureSensor || || ||Device für die Außentemperatur
|ASC_blockASCDrivesAfterManual ||0, 1 || ||wenn dieser Wert auf 1 gesetzt ist, dann werden Rollläden vom ASC-Modul nicht mehr gesteuert, wenn zuvor manuell eingegriffen wurde. Voraussetzung hierfür ist jedoch, dass im Reading ASC_ShuttersLastDrive der Status manual enthalten ist und sich der Rollladen auf eine unbekannte (nicht in den Attributen anderweitig konfigurierte) Position befindet.
|-
|-
|ASC_timeUpHolidayDevice || || ||Device zur Urlaubserkennung oder Sonstiges / muss ''0'' oder ''1'' im Reading ''state'' beinhalten.
|ASC_brightnessDriveUpDown || || || Werte (z.B. Lux) bei dem Schaltbedingungen für Sonnenauf- und -untergang geprüft werden sollen. Diese globale Einstellung kann durch die WERT-MORGENS:WERT-ABENDS Einstellung von ASC_BrightnessSensor im Rollladen selbst überschrieben werden.
|-
|-
|ASC_residentsDevice|| || ||Devicenamen des Residents-Device der obersten Ebene
|ASC_debug ||0, 1 || 0||Aktiviert die erweiterte Logausgabe für Debugausgaben (nur nach Aufforderung nutzen)
|-
|-
|ASC_residentsDeviceReading|| || ||Status Reading des Residents-Device der obersten Ebene
|ASC_expert ||0, 1 ||0 ||ist der Wert 1, so werden erweiterte Informationen bezüglich des NotifyDevs unter ''set und get'' angezeigt
|-
|-
|ASC_brightnessMinVal|| || ||minimaler Lichtwert, bei dem Schaltbedingungen noch geprüft werden sollen
|ASC_freezeTemp ||-5 bis 5 || ||Temperatur, ab welcher der Frostschutz greifen soll und der Rollladen nicht mehr fährt. Der letzte Fahrbefehl wird gespeichert.
|-
|-
|ASC_brightnessMaxVal || || ||maximaler Lichtwert, bei dem Schaltbedingungen noch geprüft werden sollen
|ASC_rainSensor || || ||DEVICENAME[:READINGNAME] MAXTRIGGER[:HYSTERESE] [CLOSEDPOS] - 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".
|-
|-
|ASC_rainSensorDevice || || ||Device, welches bei Regen getriggert wird
|ASC_residentsDev  || || ||DEVICENAME[:READINGNAME] - der Inhalt ist eine Kombination aus Devicenamen und Readingnamen des Residents-Device der obersten Ebene (z.B. rgr_Residents:state)
|-
|-
|ASC_rainSensorReading || || ||das ensprechende Reading zum Regendevice
|ASC_shuttersDriveDelay  || || ||maximale Zufallsverzögerung in Sekunden bei der Berechnung der Fahrzeiten. 0 bedeutet keine Verzögerung
|-
|-
|ASC_rainSensorShuttersClosedPos || || ||Position in pct, welche der Rollladen bei Regen anfahren soll
|ASC_tempSensor || || ||DEVICENAME[:READINGNAME] - der Inhalt ist eine Kombination aus Device und Reading für die Außentemperatur
|-
|-
|ASC_shuttersDriveOffset  || || ||maximale zufällige Verzögerung in Sekunden bei der Berechnung der Fahrzeiten, ''0'' bedeutet keine Verzögerung
|ASC_twilightDevice || || ||das Device, welches die Informationen zum Sonnenstand liefert. Wird unter anderem für die Beschattung verwendet.
|-
|-
|ASC_twilightDevice || || ||Device, welches Informationen zum Sonnenstand liefert, wird unter anderem für die Beschattung verwendet.
|ASC_windSensor || || ||DEVICE[:READING] - Sensor für die Windgeschwindigkeit. Kombination aus Device und Reading.
|-
|ASC_expert || || ||bei ''1'' werden erweiterte Informationen bezüglich des NotifyDevs unter ''set'' und ''get'' angezeigt
|-
|-
| || || ||
| || || ||
Zeile 297: Zeile 200:
===Attribute in den Rolllädendevices===
===Attribute in den Rolllädendevices===


{|class="wikitable"
{| class="wikitable"
|-
! Name !! Datentyp/<BR />Wertebereich !! Default-Wert !! Beschreibung
|-
|ASC || 0, 1, 2|| ||"kein Anlegen der Attribute beim ersten Scan bzw. keine Beachtung eines Fahrbefehles",1 = "Inverse oder Rollo - Bsp.: Rollo oben 0, Rollo unten 100 und der Befehl zum prozentualen Fahren ist position",2 = "Homematic Style - Bsp.: Rollo oben 100, Rollo unten 0 und der Befehl zum prozentualen Fahren ist pct
|-
|ASC_Adv || on, off||||bei on wird das runterfahren des Rollos während der Weihnachtszeit (1. Advent bis 6. Januar) ausgesetzt! Durch set <ASCDEVICE> advDriveDown werden alle ausgesetzten Fahrten nachgeholt.
|-
|ASC_Antifreeze ||off, soft, hard, am, pm || ||Frostschutz, wenn soft fährt der Rollladen in die ASC_Antifreeze_Pos, bei hard/am/pm wird gar nicht oder innerhalb der entsprechenden Tageszeit nicht gefahren
|-
|ASC_Antifreeze_Pos || || ||Position des Rolllades die angefahren werden soll, wenn der Fahrbefehl komplett schließen lautet, aber der Frostschutz aktiv ist  !!!Verwendung von Perlcode ist möglich, dieser muss in {} eingeschlossen sein. Rückgabewert muss eine positive Zahl/Dezimalzahl sein!!!
|-
|ASC_autoAstroModeEvening ||REAL, CIVIL, NAUTIC, ASTRONOMIC oder HORIZON || ||nach welchem ASTRO-Modus soll die Abendfahrt berechnet werden
|-
|ASC_autoAstroModeEveningHorizon || - 9 bis 9 || 0|| Höhe über dem Horizont. Wird nur berücksichtigt, wenn im Attribut ASC_autoAstroModeEvening der Wert HORIZON ausgewählt wurde.
|-
|ASC_autoAstroModeMorning ||REAL, CIVIL, NAUTIC, ASTRONOMIC oder HORIZON || || nach welchem ASTRO-Modus soll die Morgendfahrt berechnet werden
|-
|ASC_autoAstroModeMorningHorizon || - 9 bis 9|| 0|| Höhe über dem Horizont. Wird nur berücksichtigt, wenn im Attribut ASC_autoAstroModeMorning der Wert HORIZON ausgewählt wurde.
|-
|-
! Name !! Datentyp/<BR/>Wertebereich !! Default-Wert !! Beschreibung
|ASC_BlockingTime_afterManual || ||1200 ||wie viel Sekunden soll die Automatik nach einer manuellen Fahrt aussetzen
|-
|-
|ASC || 0, 1, 2|| ||0 = "kein Anlegen der Attribute beim ersten Scan bzw. keine Beachtung eines Fahrbefehles",1 = "Inverse oder Rollo - Bsp.: Rollo Oben 0, Rollo Unten 100 und der Befehl zum prozentualen Fahren ist position",2 = "Homematic Style - Bsp.: Rollo Oben 100, Rollo Unten 0 und der Befehl zum prozentualen Fahren ist pct
|ASC_BlockingTime_beforeDayOpen || ||3600 ||wie viel Sekunden vor dem morgendlichen öffnen soll keine schließen Fahrt mehr stattfinden.
|-
|-
|ASC_Antifreeze || soft, am, pm, hard, off|| ||Frostschutz, wenn ''soft'' fährt der Rollladen in die ''ASC_Antifreeze_Pos'', bei ''hard/am/pm'' wird gar nicht oder innerhalb der entsprechenden Tageszeit nicht gefahren
|ASC_BlockingTime_beforeNightClose || ||3600 ||ie viel Sekunden vor dem nächtlichen schließen soll keine öffnen Fahrt mehr stattfinden.
|-
|-
|ASC_Antifreeze_Pos || || ||Position, die angefahren werden soll, wenn der Fahrbefehl komplett schließen lautet, aber der Frostschutz aktiv ist
|ASC_BrightnessSensor || ||none ||DEVICE[:READING] WERT-MORGENS:WERT-ABENDS / 'Sensorname[:brightness [400:800]]' Angaben zum Helligkeitssensor mit (Readingname, optional) für die Beschattung und dem Fahren der Rollladen nach brightness und den optionalen Brightnesswerten für Sonnenauf- und Sonnenuntergang
|-
|-
|ASC_AutoAstroModeEvening ||REAL, CIVIL, NAUTIC, ASTRONOMIC|| ||aktuell REAL,CIVIL,NAUTIC,ASTRONOMIC
|ASC_Closed_Pos || ||default Vorgabe ist abhängig vom Attribut ''ASC''||in 10er-Schritten von 0 bis 100
wird angefahren wenn SelfDefense aktiv ist
|-
|-
|ASC_AutoAstroModeEveningHorizon || || ||Höhe über Horizont, wenn beim Attribut ''ASC_autoAstroModeEvening'' ''HORIZON'' ausgewählt ist
|ASC_ComfortOpen_Pos || || || in 10er Schritten von 0 bis 100 !!! Die eingestellte Position wird bei einem threestate Sensor angefahren. Verwendung von Perlcode ist möglich, dieser muss in {} eingeschlossen sein. Rückgabewert muss eine positive Zahl/Dezimalzahl sein!!!
|-
|-
|ASC_AutoAstroModeMorning ||REAL, CIVIL, NAUTIC, ASTRONOMIC|| ||aktuell REAL,CIVIL,NAUTIC,ASTRONOMIC
|ASC_Down || time, astro, brightness, roommate || astro||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ä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.
|-
|-
|ASC_AutoAstroModeMorningHorizon || || ||Höhe über Horizont, wenn beim Attribut ''ASC_autoAstroModeMorning'' ''HORIZON'' ausgewählt ist
|ASC_DiveUpMaxDuration || || 60||die Dauer des Hochfahrens des Rollladens plus 5 Sekunden
|-
|-
|ASC_Closed_Pos || || ||in 10er Schritten von 0 bis 100,default Vorgabe ist abhängig vom Attribut ''ASC''
|ASC_Drive_Delay || || -1|| maximaler Wert für einen zufällig ermittelte Verzögerungswert in Sekunden bei der Berechnung der Fahrzeiten, 0 bedeutet keine Verzögerung, -1 bedeutet, dass das ??gleichwertige Attribut?? aus dem ASC Device ausgewertet werden soll
|-
|-
|ASC_Down || astro, time, brightness || ||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ä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_brightnessMinVal'' erreicht wurde. Wenn ja, wird der Rolladen runter gefahren
|ASC_Drive_DelayStart || || -1|| in Sekunden verzögerter Wert ab welchen dann erst das Offset startet und dazu addiert wird. Funktioniert nur wenn gleichzeitig ASC_DriveDelay gesetzt wird.
|-
|-
|ASC_Mode_Down ||always, home, absent, off || ||wann darf die Automatik herunterfahren. immer, niemals oder bei Abwesenheit des Roommate (ist kein Roommate und ''absent'' eingestellt, wird gar nicht gesteuert)
|ASC_ExternalTrigger || |||| DEVICE:READING VALUEACTIVE:VALUEINACTIVE POSACTIVE:POSINACTIVE, Beispiel: "WohnzimmerTV:state on:off 66:100" bedeutet das wenn ein "state:on" Event kommt soll das Rollo in Position 66 fahren, kommt ein "state:off" Event soll es in Position 100 fahren. Es ist möglich die POSINACTIVE weg zu lassen dann fährt das Rollo in LastStatus Position.
|-
|-
|ASC_Mode_Up ||always, home, absent, off || ||wann darf die Automatik hochfahren. immer, niemals oder bei Abwesenheit des Roommate (ist kein Roommate und ''absent'' eingestellt, wird gar nicht gesteuert)
|ASC_GuestRoom || on, off |||| aktuell noch nicht umgesetzt...
|-
|-
|ASC_Drive_Offset || || ||maximale zufällige Verzögerung in Sekunden bei der Berechnung der Fahrzeiten, ''0'' bedeutet sofort, ''-1'' bedeutet, dass das gleichwertige Attribut aus dem ASC-Device ausgewertet werden soll
|ASC_LockOut || soft, hard, off ||off || stellt entsprechend den Aussperrschutz ein. Bei global aktivem Aussperrschutz (set ASC-Device lockOut soft) und einem Fensterkontakt open bleibt dann der Rollladen oben. Dies gilt nur bei Steuerbefehlen über das ASC Modul. Stellt man global auf hard, wird bei entsprechender Möglichkeit versucht den Rollladen hardwareseitig zu blockieren. Dann ist auch ein Fahren über die Taster nicht mehr möglich
|-
|-
|ASC_Open_Pos || || ||in 10er-Schritten von 0 bis 100, default Vorgabe ist abhängig vom Attribut ''ASC''
|ASC_LockOut_Cmd || inhibit, blocked, protection ||none|| set Befehl für das Rollladen-Device zum Hardware sperren. Dieser Befehl wird gesetzt werden, wenn man "ASC_LockOut" auf hard setzt
|-
|-
|ASC_Partymode || on, off || ||schaltet den Partymodus an oder aus. Wird dann am ASC Device ''set <ASC-DEVICE> partyMode on'' geschaltet, werden alle Fahrbefehle an den Rollläden, welche das Attribut auf ''on'' haben, zwischengespeichert und erst später ausgeführt
|ASC_Mode_Down ||absent, always, off, home || always ||Wann darf die Automatik steuern. immer, niemals, bei Abwesenheit des Roommate (ist kein Roommate und absent eingestellt, wird gar nicht gesteuert)
|-
|ASC_Mode_Up ||absent, always, off, home || always ||Wann darf die Automatik steuern. immer, niemals, bei Abwesenheit des Roommate (ist kein Roommate und absent eingestellt, wird gar nicht gesteuert)
|-
|ASC_Open_Pos || ||default Vorgabe ist abhängig vom Attribut ''ASC''||in 10er-Schritten von 0 bis 100
|-
|ASC_Partymode || on, off || off ||schaltet den Partymodus an oder aus. Wird am ASC Device set ASC-DEVICE partyMode on geschalten, werden alle Fahrbefehle an den Rollläden, welche das Attribut auf on haben, zwischengespeichert und später erst ausgeführ
|-
|-
|ASC_Pos_Reading || || ||Name des Readings, welches die Position des Rollladen in Prozent angibt. Wird bei unbekannten Device-Typen auch als ''set'' Befehl zum Fahren verwendet
|ASC_Pos_Reading || || ||Name des Readings, welches die Position des Rollladen in Prozent angibt. Wird bei unbekannten Device-Typen auch als ''set'' Befehl zum Fahren verwendet
|-
|-
|ASC_Pos_after_ComfortOpen || || ||in 10er-Schritten von 0 bis 100, default Vorgabe ist abhängig vom Attribut ''ASC''
|ASC_PrivacyDownValue_beforNightClose || || -1||wie viele Sekunden vor dem abendlichen schließen soll der Rollladen in die Sichtschutzposition fahren, oder bei Brightness ab welchem minimum Brightnesswert soll das Rollo in die Privacy Position fahren. Bei Brightness muss zusätzlich zum Zeitwert der Brightnesswert mit angegeben werden 1800:300 bedeutet 30 min vor night close oder bei unter einem Brightnesswert von 300
|-
|ASC_PrivacyDown_Pos || ||50||Position den Rollladens für den abendlichen Sichtschutz!Verwendung von Perlcode ist möglich, dieser muss in {} eingeschlossen sein. Rückgabewert muss eine positive Zahl/Dezimalzahl sein!!!
|-
|ASC_PrivacyUpValue_beforDay || || -1||wie viele Sekunden vor dem morgendlichen öffnen soll der Rollladen in die Sichtschutzposition fahren, oder bei Brightness ab welchem minimum Brightnesswert soll das Rollo in die Privacy Position fahren. Bei Brightness muss zusätzlich zum Zeitwert der Brightnesswert mit angegeben werden 1800:600 bedeutet 30 min vor day open oder bei über einem Brightnesswert von 600
|-
|ASC_PrivacyUp_Pos || ||50||Position den Rollladens für den morgendlichen Sichtschutz!Verwendung von Perlcode ist möglich, dieser muss in {} eingeschlossen sein. Rückgabewert muss eine positive Zahl/Dezimalzahl sein!!!
|-
|ASC_RainProtection ||on, off || ||soll der Rollladen beim Regenschutz beachtet werden. on=JA, off=NEIN.
|-
|ASC_Roommate_Device || || none ||mit Komma getrennte Namen des/der Roommate-Device/s welche den/die Bewohner des Rollladen-Raumes wiedergibt. Macht nur Sinn in Schlaf- oder Kinderzimmern
|-
|-
|ASC_Roommate_Reading || || ||Reading des Roommate-Device, welches den Status wieder gibt
|ASC_Roommate_Reading || || ||Reading des Roommate-Device, welches den Status wieder gibt
|-
|-
|ASC_Roommate_Device || || ||mit Komma getrennte Namen des/der Roommate-Device/s welche den/die Bewohner des Rollladen-Raumes wiedergibt. Macht nur Sinn in Schlaf- oder Kinderzimmern
|ASC_Self_Defense_AbsentDelay || || 300||um wie viele Sekunden soll das fahren in Selfdefense bei Residents absent verzögert werden
|-
|ASC_Self_Defense_Mode || || gone||ab welchen Residents Status soll Selfdefense aktiv werden ohne das Fenster auf sind
|-
|-
|ASC_Time_Down_Early || || ||Sunset früheste Zeit zum Runterfahren
|ASC_Shading_InOutAzimuth || ||95:265 ||Azimut Wert ab dem bei Überschreiten Beschattet und bei Unterschreiten Endschattet werden soll
|-
|-
|ASC_Time_Down_Late || || ||Sunset späteste Zeit zum Runterfahren
|ASC_Shading_MinMax_Elevation || ||25.0:100.0 ||ab welcher min Höhe des Sonnenstandes soll beschattet und ab welcher max Höhe wieder beendet werden, immer in Abhängigkeit der anderen einbezogenen Sensorwerte
|-
|-
|ASC_Time_Up_Early || || ||Sunrise früheste Zeit zum Hochfahren
|ASC_Shading_MinOutsideTemperature_ || ||18 ||ab welcher Temperatur soll Beschattet werden, immer in Abhängigkeit der anderen einbezogenen Sensorwert
|-
|-
|ASC_Time_Up_Late || || ||Sunrise späteste Zeit zum Hochfahren
|ASC_ShadingMode ||absent, always, off, home || off||wann soll die Beschattung nur stattfinden
|-
|-
|ASC_Time_Up_WE_Holiday || || ||Sunrise früheste Zeit zum Hochfahren am Wochenende und/oder Urlaub (we2holiday wird beachtet).
|ASC_Shading_Pos || || ||Position des Rollladens für die Beschattung !!!Verwendung von Perlcode ist möglich, dieser muss in {} eingeschlossen sein. Rückgabewert muss eine positive Zahl/Dezimalzahl sein!!!
|-
|-
|ASC_Up || astro, time, brightness || ||bei ''astro'' wird Sonnenaufgang berechnet, bei ''time'' wird der Wert aus ''ASC_Time_Up_Early'' als Fahrzeit verwendet und bei ''brightness'' müssen ''ASC_Time_Up_Early'' und ''ASC_Time_Up_Late'' korrekt gesetzt werden. Der Timer lä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 ''ASC_brightnessMinVal'' erreicht wurde. Wenn ja, wird der Rolladen runter gefahren
|ASC_Shading_StateChange_SunnyCloudy || ||35000:20000 ||Brightness Wert ab welchen die Beschattung stattfinden und aufgehoben werden soll, immer in Abhängigkeit der anderen einbezogenen Sensorwerte
|-
|-
|ASC_Ventilate_Pos || || ||in 10er-Schritten von 0 bis 100, default Vorgabe ist abhängig vom Attribut ''ASC''
|ASC_Shading_WaitingPeriod || ||1200 ||wie viele Sekunden soll gewartet werden bevor eine weitere Auswertung der Sensordaten für die Beschattung stattfinden soll
|-
|-
|ASC_Ventilate_Window_Open || || ||auf lüften, wenn das Fenster gekippt/geöffnet wird und aktuelle Position unterhalb der Lüften-Position ist
|ASC_Shutter_IdleDetection || ||||READING:VALUE gibt das Reading an welches Auskunft über den Fahrstatus des Rollos gibt, sowie als zweites den Wert im Reading welcher aus sagt das das Rollo nicht fährt
|-
|-
|ASC_WindowRec || || ||Name des Fensterkontakts, an welchen Fenster der Rollladen angebracht ist. Sein Reading ''state'' muss die Werte ''open'', ''closed'' oder ''tilted'' enthalten.
|ASC_ShuttersPlace || window, terrace || ||wenn dieses Attribut auf ''terrace'' gesetzt ist und das Residents-Device in den Status ''absent'' geht, ''selfDefence'' aktiv ist und das Fenster geöffnet ist, wird das Rollo  geschlossen. Wenn ein twostate Senso genutzt wird und dieses Attribut auf ''terrace'' gesetzt ist wird ASC_Ventilate_Pos ignoriert und das Rollo wird beim öffnen des Fenster komplett geöffnet. Wenn dieses Attribut auf ''window'' gesetzt ist wird ASC_Ventilate_Pos berücksichtigt und das Rollo wird entsprechend der ASC_Ventilate_Pos geöffnet. Wenn das Fenster wieder geschlossen wird, dann wird das Rollo unabhängig von ''windows oder terrace'' vollständig geschlossen.
|-
|-
|ASC_WindowRec_subType || || ||Typ des verwendeten Fensterkontakts: ''twostate'' (optisch oder magnetisch) oder ''threestate'' (Drehgriffkontakt)
|ASC_Sleep_Pos || || ||in 10er-Schritten von 0 bis 100, default Vorgabe ist abhängig vom Attribut ''ASC.'' Position wird angefahren wenn Bedingung für modeDown aktiv ist. Hiermit kann z.B. das komplette abendliche Schließen des Rollos begrenzt werden.
|-
|-
|ASC_lock-out || soft, hard || ||stellt entsprechend den Aussperrschutz ein. Bei global aktiven Aussperrschutz (''set ASC-Device lockOut soft'') und einem Fensterkontakt ''open'' bleibt dann der Rolladen oben. Dies gilt nur bei Steuerbefehle über das ASC-Modul. Stellt man global auf ''hard'', wird bei entsprechender Möglichkeit versucht, den Rollladen hardwareseitig zu blockieren. Dann ist auch ein Fahren über die Taster nicht mehr möglich.
|ASC_TempSensor || || ||DEVICENAME[:READINGNAME] - der Inhalt ist eine Kombination aus Device und Reading für die Außentemperatur
|-
|-
|ASC_lock-outCmd || inhibit, blocked || ||set Befehl für das Rolladen-Device zum Sperren per Hardware. Der Befehl wird verwendet, wenn ''ASC_lock-out'' auf ''hard'' gesetzt ist
|ASC_Time_Down_Early || ||16:00 ||Sonnenuntergang frühste Zeit zum Runterfahren !!!Verwendung von Perlcode ist möglich, dieser muss in {} eingeschlossen sein. Rückgabewert muss ein Zeitformat in Form HH:MM[:SS] sein!!!
|-
|-
|ASC_Self_Defense_Exclude || on, off || ||bei ''on'' wird dieser Rolladen bei aktiven ''selfDefence'' und offenen Fenster nicht runter gefahren, wenn Residents absent ist
|ASC_Time_Down_Late || ||22:00 ||Sonnenuntergang späteste Zeit zum Runterfahren !!!Verwendung von Perlcode ist möglich, dieser muss in {} eingeschlossen sein. Rückgabewert muss ein Zeitformat in Form HH:MM[:SS] sein!!!
|-
|-
|ASC_Shading_Brightness_Sensor || || ||Sensor-Device, welches für die Lichtwerte verwendet wird. ACHTUNG! Findet auch Verwendung bei ASC_Down - brightness
|ASC_Time_Up_Early || || 05:00||Sonnenaufgang frühste Zeit zum Hochfahren !!!Verwendung von Perlcode ist möglich, dieser muss in {} eingeschlossen sein. Rückgabewert muss ein Zeitformat in Form HH:MM[:SS] sein!!!
|-
|-
|ASC_BrightnessMinVal || || ||minimaler Lichtwert, bei dem Schaltbedingungen noch geprüft werden sollen / wird der Wert von ''-1'' nicht geändert, so wird automatisch der Wert aus dem Moduldevice genommen
|ASC_Time_Up_Late || ||08:30 ||Sonnenaufgang späteste Zeit zum Hochfahren  !!!Verwendung von Perlcode ist möglich, dieser muss in {} eingeschlossen sein. Rückgabewert muss ein Zeitformat in Form HH:MM[:SS] sein!!!
|-
|-
|ASC_BrightnessMaxVal || || ||maximaler Lichtwert, bei dem Schaltbedingungen noch geprüft werden sollen / wird der Wert von ''-1'' nicht geändert, so wird automatisch der Wert aus dem Moduldevice genommen
|ASC_Time_Up_WE_Holiday || ||08:00 ||Sonnenaufgang frühste Zeit zum Hochfahren am Wochenende und/oder Urlaub (holiday2we wird beachtet).ACHTUNG!!! in Verbindung mit Brightness für ASC_Up muss die Uhrzeit kleiner sein wie die Uhrzeit aus ASC_Time_Up_Late !!!Verwendung von Perlcode ist möglich, dieser muss in {} eingeschlossen sein. Rückgabewert muss ein Zeitformat in Form HH:MM[:SS] sein!!!
|-
|-
|ASC_ShuttersPlace || window, terrace || ||wenn dieses Attribut auf ''terrace'' gesetzt ist und das Residents-Device in den Status ''gone'' geht und ''selfDefence'' aktiv ist, wird das Rollo geschlossen
|ASC_Ventilate_Window_Open ||on, off ||on||auf lüften, wenn das Fenster gekippt/geöffnet wird und aktuelle Position unterhalb der Lüften-Position ist
|-
|-
|ASC_WiggleValue || || ||Wert, um welchen sich die Position des Rollladens bei ''Wiggle'' ändern soll  
|ASC_WiggleValue || ||5 ||Wert, um welchen sich die Position des Rollladens bei ''Wiggle'' ändern soll  
|-
|ASC_WindParameters || ||5 ||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_WindProtection ||on, off || ||soll der Rollladen beim Windschutz beachtet werden. on=JA, off=NEIN.
|-
|ASC_WindowRec ||
|none ||Name des Fensterkontaktes, an dessen Fenster der Rollladen angebracht ist  WINDOWREC:[READING], Reading ist optional. Die Kontakte müssen open/opened, close/closed bzw. tilt/tilted liefern.
|-
|ASC_WindowRec_PosAfterDayClosed ||open, lastManual ||open ||Position auf die das das Rollo nach dem Schließen tagsüber fahren soll. Geöffnet oder letzte gespeicherte manuelle Position (default: open)
|-
|-
| || || ||
|ASC_WindowRec_subType ||twostate, threestate ||twostate||Typ des verwendeten Fensterkontaktes: twostate (optisch oder magnetisch) oder threestate (Drehgriffkontakt)
|- 
| || || ||
|-
|-
| || || ||   
|ASC_SlatPosCmd_SlatDevice
|- 
| || ||Angaben zu einem Slat (Lamellen) CMD und sofern diese Lamellen über ein anderes Device gesteuert werden. Beispiel: attr ROLLO ASC_SlatPosCmd_SlatDevice slatPct [:ROLLOSLATDEVICE] oder attr ROLLO ASC_SlatPosCmd_SlatDevice slatPct:ROLLOSLATDEVICE.
 
Für die Positionsangaben ASC_Open_Pos, ASC_Closed_Pos, ASC_Ventilate_Pos, ASC_ComfortOpen_Pos, ASC_Shading_Pos und ASC_Sleep_Pos muss ein weiterer Parameter für die Lamellenstellung angegeben werden.
| || || ||
| || || ||
|-
|-
Zeile 388: Zeile 337:
|}
|}


== Hilfsmittel Allgemein==
== Hilfsmittel ==
Achtung: Die Device-Namen sind auf die entsprechende Konfiguration des einzelnen Anzupassen.
{{Hinweis|Die Device-Namen sind auf die eigene Installation anzupassen.}}


=== Hilfsmittel Übersicht ===
{{Hinweis|Codezeilen sind im [[Import von Code Snippets|RAW]]-Format.}}


define ASC_Jalousie_Info weblink htmlCode {AutoShuttersControl::GetShuttersInformation($defs{'JalousieControl'})}
{{Randnotiz|RNTyp=g|RNText= Stand 2019-05-03
* Erfolgreich getestet mit Homematic Devices, Beta-User
* Die Farbgebung entspricht dem Standard, wenn unter dem Style f18 der Farbpreset ''light'' gewählt wird.
}}


[[Datei:ASC Overview.JPG|600px|]]
=== readingsGroup für Level ===
<pre style="width:65%;word-wrap: break-word;">defmod rg_ASC_Rolllaeden_Level readingsGroup <Gerät>,<Stand>,<Schliessen bis>,<Öffnen auf>,<Beschattung>,<Komfort>,<Lüften>,<Privacy> (Rollladen_.*|Jalousie_.*)..:level,!?ASC_Closed_Pos,!?ASC_Open_Pos,!?ASC_Shading_Pos,!?ASC_ComfortOpen_Pos,!?ASC_Ventilate_Pos,!?ASC_PrivacyDown_Pos
attr rg_ASC_Rolllaeden_Level commands {level => 'pct:selectnumbers,0,5,100,0,lin',\
ASC_Closed_Pos => 'ASC_Closed_Pos:selectnumbers,0,5,100,0,lin',\
ASC_Open_Pos => 'ASC_Open_Pos:selectnumbers,0,5,100,0,lin',\
ASC_Shading_Pos => 'ASC_Shading_Pos:selectnumbers,0,5,100,0,lin',\
ASC_Ventilate_Pos => 'ASC_Ventilate_Pos:selectnumbers,0,5,100,0,lin',\
ASC_ComfortOpen_Pos => 'ASC_ComfortOpen_Pos:selectnumbers,0,5,100,0,lin',\
ASC_PrivacyDown_Pos => 'ASC_PrivacyDown_Pos:selectnumbers,0,5,100,0,lin'}
</pre>


 
=== readingsGroup für Zeiten ===
== Hilfsmittel Reading Group für Homematic Devices==
[[Bild:ReadingsGroup ASC times.png|thumb|right|ReadingsGroup - Zeitenbeispiel]]
readingsGroup, um die diversen Level einzustellen
<pre style="width:65%;word-wrap: break-word;">defmod rg_ASC_Rolllaeden_Times readingsGroup <Gerät>,<Position>,<Time_Up_Early>,<Time_Up_Late>,<Time_Up_WE/Hol>,<Time_Down_Early>,<Time_Down_Late>,<Mode_Down>,<Mode_Up> \
 
  (.*Rollo.*|.*Rollladen|Jalousie_.*):level,!?ASC_Time_Up_Early,!?ASC_Time_Up_Late,!?ASC_Time_Up_WE_Holiday,!?ASC_Time_Down_Early,!?ASC_Time_Down_Late,!?ASC_Mode_Down,!?ASC_Mode_Up
Erfolgreich getestet mit Homematic Devices, Stand 2019-01-28 no_Legend
attr rg_ASC_Rolllaeden_Times commands {level => 'pct:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100', \
 
Achtung: Codezeilen wurden aus der Config Datei kopiert.
[[Datei:RG AutoShuttersControl Homematic.png|600px|]]
 
define rg_ASC_Rollaeden_Level readingsGroup <Gerät>,<ASC>,<Antifreeze>,<Antifreeze_Pos>,<Closed_Pos>,<Open_Pos>,<ASC_Ventilate_Pos> \
(.*Rollladen.*|.*Rollladen|Jalousie_.*):?ASC,?ASC_Antifreeze,?ASC_Antifreeze_Pos,?ASC_Closed_Pos,?ASC_Open_Pos,?ASC_Ventilate_Pos
setuuid rg_ASC_Rollaeden_Level 5c4308e1-f33f-abd1-167d-cc1b5f137cf793c8
attr rg_ASC_Rollaeden_Level commands {ASC => 'ASC:0,1,2',\
ASC_Antifreeze => 'ASC_Antifreeze:off,soft,hard,am,pm',\
ASC_Antifreeze_Pos =>'ASC_Antifreeze_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100', \
ASC_Closed_Pos => 'ASC_Closed_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100', \
ASC_Open_Pos => 'ASC_Open_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100', \
ASC_Ventilate_Pos => 'ASC_Ventilate_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100'}
attr rg_ASC_Rollaeden_Level room 9.72_Rolladen
 
define rg_ASC_Rollaeden_Times readingsGroup <Gerät>,<Position>,<Time_Up_Early>,<Time_Up_Late>,<Time_Up_WE/Hol>,<Time_Down_Early>,<Time_Down_Late>,<Mode_Down>,<Mode_Up> \
  (.*Rollladen.*|.*Rollladen|Jalousie_.*):level,?ASC_Time_Up_Early,?ASC_Time_Up_Late,?ASC_Time_Up_WE_Holiday,?ASC_Time_Down_Early,?ASC_Time_Down_Late,?ASC_Mode_Down,?ASC_Mode_Up
setuuid rg_ASC_Rollaeden_Times 5c4308e1-f33f-abd1-94a7-fbf717635760f863
attr rg_ASC_Rollaeden_Times commands {level => 'pct:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100', \
  ASC_Time_Down_Early => 'ASC_Time_Down_Early:15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00', \
  ASC_Time_Down_Early => 'ASC_Time_Down_Early:15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00', \
  ASC_Time_Down_Late  => 'ASC_Time_Down_Late:19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30', \
  ASC_Time_Down_Late  => 'ASC_Time_Down_Late:19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30', \
  ASC_Time_Up_WE_Holiday => 'ASC_Time_Up_WE_Holiday:06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00',\
  ASC_Time_Up_WE_Holiday => 'ASC_Time_Up_WE_Holiday:06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00',\
  ASC_Time_Up_Early => 'ASC_Time_Up_Early:05:00,05:05,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00',  \
  ASC_Time_Up_Early => 'ASC_Time_Up_Early:05:00,05:05,05:30,05:55,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00',  \
  ASC_Time_Up_Late => 'ASC_Time_Up_Late:06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00', \
  ASC_Time_Up_Late => 'ASC_Time_Up_Late:06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00', \
  ASC_Mode_Down => 'ASC_Mode_Down:always,absent,off', \
  ASC_Mode_Down => 'ASC_Mode_Down:always,absent,off', \
  ASC_Mode_Up => 'ASC_Mode_Up:always,absent,off' }
  ASC_Mode_Up => 'ASC_Mode_Up:always,absent,off' }
attr rg_ASC_Rollaeden_Times room 9.72_Rolladen
attr rg_ASC_Rolllaeden_Times room Rollladen</pre>
 
=== Hilfsmittel Reading Group für FIBARO Roller Shutter FGR-222 Devices===
 
Getestet von majestro84 https://forum.fhem.de/index.php/topic,92628.msg897099.html#msg897099
 
Stand 2019-01-28 
 
[[Datei:ASC Jalousien Level.JPG|600px|]]
 
[[Datei:ASC Jalousien Times.JPG|600px|]]


[[Bild:ASC RG Zeiten HM ZWave Siro.png|thumb|right|ReadingsGroup - CUL_HM+ZWave+Siro mit widgets]]Neue Version mit time-Widgets und pct/dim/position-widget (5-er Schritte), passend für CUL_HM, ZWave und Siro-Geräte:
<pre style="width:65%;word-wrap: break-word;">defmod rg_ASC_Rolllaeden_Times readingsGroup <Gerät>,<Stand>,<Time_Up_Early  >,<Time_Up_WE  >,<Time_Up_Late  >,<Time_Down_Early>,<Time_Down_Late>,<Mode_Down>,<Mode_Up> (Rollo_.*|Jalousie_.*)..:(level|dim|position),!?ASC_Time_Up_Early,!?ASC_Time_Up_WE_Holiday,!?ASC_Time_Up_Late,!?ASC_Time_Down_Early,!?ASC_Time_Down_Late,!?ASC_Mode_Down,!?ASC_Mode_Up
attr rg_ASC_Rolllaeden_Times commands {level => 'pct:selectnumbers,0,5,100,0,lin', \
dim => 'dim:selectnumbers,0,5,99,0,lin',\
position => 'pct:selectnumbers,0,5,99,0,lin',\
ASC_Mode_Down => 'ASC_Mode_Down:always,absent,off',\
ASC_Mode_Up => 'ASC_Mode_Up:always,absent,off',\
ASC_Time_Down_Early => 'ASC_Time_Down_Early:time', \
ASC_Time_Down_Late  => 'ASC_Time_Down_Late:time',\
ASC_Time_Up_Early => 'ASC_Time_Up_Early:time', \
ASC_Time_Up_Late =>'ASC_Time_Up_Late:time',\
ASC_Time_Up_WE_Holiday =>'ASC_Time_Up_WE_Holiday:time'}
attr rg_ASC_Rolllaeden_Times room Rollladen
</pre>


===  readingsGroup für die Beschattung ===
[[Datei:Shading.png.png|alternativtext=|mini|ReadingsGroup - Beschattungsbeispiel]]
<pre style="width:65%;word-wrap: break-word;">
defmod RG_test readingsGroup <Gerät>,<InAzi>,<OutAzi>,<MinEle>,<MaxEle>,<Sunny>,<Cloudy>\
(Rollo|Jalousie)_.*..:<{ascAPIget('ShadingAzimuthLeft',$DEVICE)}>,<{ascAPIget('ShadingAzimuthRight',$DEVICE)}>,<{ascAPIget('ShadingMinElevation',$DEVICE)}>,<{ascAPIget('ShadingMaxElevation',$DEVICE)}>,<{ascAPIget('ShadingStateChangeSunny',$DEVICE)}>,<{ascAPIget('ShadingStateChangeCloudy',$DEVICE)}></pre>


===  readingsGroup für FIBARO Roller Shutter FGR-222 Devices ===
{{Randnotiz|RNTyp=g|RNText=Getestet von majestro84, Stand 2019-01-28.
* {{Link2Forum|Topic=92628|Message=897099|LinkText=Forenbeitrag dazu}}
* Die Farbgebung entspricht dem Standard, wenn unter dem Style f18 der Farbpreset ''dark'' gewählt wird}}
[[Bild:ASC Jalousien Times.JPG|thumb|right|Beispiel]]
<pre style="width:65%;word-break: break-all;word-wrap: break-word;">define ASC_Jalousien_Times readingsGroup <Gerät>,<Stand>,<Time_Up_Early>,<Time_Up_WE>,<Time_Up_Late>,<Time_Down_Early>,<Time_Down_Late>,<Mode_Down>,<Mode_Up>,<PartyMode>,<LockOut> (.*_Jalousie.*):position,!?ASC_Time_Up_Early,!?ASC_Time_Up_WE_Holiday,!?ASC_Time_Up_Late,!?ASC_Time_Down_Early,!?ASC_Time_Down_Late,!?ASC_Mode_Down,!?ASC_Mode_Up,!?ASC_Partymode,!?ASC_LockOut


define ASC_Jalousien_Times readingsGroup <Gerät>,<Stand>,<Time_Up_Early>,<Time_Up_WE>,<Time_Up_Late>,<Time_Down_Early>,<Time_Down_Late>,<Mode_Down>,<Mode_Up>,<PartyMode>,<LockOut> (.*_Jalousie.*):position,?ASC_Time_Up_Early,?ASC_Time_Up_WE_Holiday,?ASC_Time_Up_Late,?ASC_Time_Down_Early,?ASC_Time_Down_Late,?ASC_Mode_Down,?ASC_Mode_Up,?ASC_Partymode,?ASC_LockOut
  attr ASC_Jalousien_Times commands {position => 'dim:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,99',
  attr ASC_Jalousien_Times commands {position => 'dim:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,99',
  ASC_Mode_Down => 'ASC_Mode_Down:always,absent,off',
  ASC_Mode_Down => 'ASC_Mode_Down:always,absent,off',
Zeile 455: Zeile 410:
  ASC_Time_Up_Late =>'ASC_Time_Up_Late:06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00',
  ASC_Time_Up_Late =>'ASC_Time_Up_Late:06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00',
  ASC_Time_Up_WE_Holiday => 'ASC_Time_Up_WE_Holiday:06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00'}
  ASC_Time_Up_WE_Holiday => 'ASC_Time_Up_WE_Holiday:06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00'}
  attr ASC_Jalousien_Times room Jalousien
  attr ASC_Jalousien_Times room Jalousien</pre>


define Jalousien_Level readingsGroup <Gerät>,<Closed_Pos>,<Open_Pos>,<Comfort_Pos>,<Ventilate_Pos>,<PrivacyDown_Pos>,<Shading_Pos> (.*_Jalousie.*):?ASC_Closed_Pos,?ASC_Open_Pos,?ASC_ComfortOpen_Pos,?ASC_Ventilate_Pos,?ASC_PrivacyDown_Pos,?ASC_Shading_Pos
[[Bild:ASC Jalousien Level.JPG|thumb|right|Beispiel]]
<pre style="width:65%;word-break: break-all;word-wrap: break-word;"> define Jalousien_Level readingsGroup <Gerät>,<Closed_Pos>,<Open_Pos>,<Comfort_Pos>,<Ventilate_Pos>,<PrivacyDown_Pos>,<Shading_Pos> (.*_Jalousie.*):!?ASC_Closed_Pos,!?ASC_Open_Pos,!?ASC_ComfortOpen_Pos,!?ASC_Ventilate_Pos,!?ASC_PrivacyDown_Pos,!?ASC_Shading_Pos
  attr Jalousien_Level commands { ASC_Closed_Pos => 'ASC_Closed_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,99',
  attr Jalousien_Level commands { ASC_Closed_Pos => 'ASC_Closed_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,99',
  ASC_Open_Pos => 'ASC_Open_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,99',
  ASC_Open_Pos => 'ASC_Open_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,99',
Zeile 464: Zeile 420:
  ASC_PrivacyDown_Pos => 'ASC_PrivacyDown_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,99',
  ASC_PrivacyDown_Pos => 'ASC_PrivacyDown_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,99',
  ASC_Shading_Pos => 'ASC_Shading_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,99'}
  ASC_Shading_Pos => 'ASC_Shading_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,99'}
  attr Jalousien_Level room Jalousien
  attr Jalousien_Level room Jalousien</pre>


=== Hilfsmittel ===
== Einrichtungsbeispiel (nach Sonnenstand) ==
tbd
=== Ziel und Vorgaben ===
Es sollen die Rollläden und Jalousien innerhalb bestimmter zeitlicher Perioden sonnenstandsabhängig geöffnet und geschlossen werden. An den Wochenenden und an Ferientagen soll etwas später geöffnet werden. Es sind Tür- und Fensterkontakte vorhanden (Türkontakte: twoState, Fensterkontakte: threeState), wobei bei jeder Öffnung ein eventuell geschlossener Rollladen geöffnet werden soll. Bei allen Rollladenaktoren, Tür- und Fensterkontakten handelt es sich um CUL_HM-Geräte.


readingsGroup, um die diversen Level einzustellen:  
=== Vorarbeiten ===
Im global-Device sind Angaben zu latitude und longitude vorhanden, holiday2we wie folgt<ref>''ferien'' ist eine automatisiert erstellte holiday-Datei nach diesem {{Link2Forum|Topic=85759|Message=885883|LinkText=Foren-Beitrag}}.</ref>:
attr global holiday2we bw,ferien
Weitere Angaben werden zunächst nicht benötigt, das Astro-Device wird erst in der Beschattungskonfiguration definiert.
Dann erfolgt das ''Define des ASC-Devices'' wie oben beschrieben:
<code>define Rollladenautomatik AutoShuttersControl</code>
Folgen die einzubindenden Rollladenaktoren einem einheitlichen Namensschema, können diese sodann z.B. mit
attr (Jalousie|Rollladen)_.* ASC 2
auf einen Rutsch mit dem passenden ASC-Typ gekennzeichnet werden. 
 
{{Hinweis|Achtung: Das AutoShuttersControl-Device selbst darf kein ASC-Attribut bekommen!}}
 
Dann werden mit
set Rollladenautomatik scanForShutters
die nachfolgend weiter zu bearbeitenden Attribute angelegt.
=== Schließen morgens und abends ===
{{Randnotiz|RNTyp=g|RNText=Alternative: Fahren nach brightness:
Soll insgesamt oder an einzelnen Rollläden helligkeitsgesteuert gefahren werden, muß zentral oder für jeden Rollladen ein Helligkeitssensor definiert und die Helligkeitsgrenzwerte festgelegt sein (''ASC_BrightnessSensor'' etc.), bei deren Überschreitung geöffnet bzw. Unterschreitung geschlossen werden soll.}}
==== Konfiguration des ASC-Devices ====
Sonnenstandsabhängige Fahrzeiten werden wie folgt aktiviert:
<pre>
attr Rollladenautomatik ASC_autoAstroModeEvening CIVIL
attr Rollladenautomatik ASC_autoAstroModeMorning CIVIL
</pre>
Aus der Angabe ''CIVIL'' und den Vorgaben in den einzelnen Rollladen wird dabei mit Hilfe von [[SUNRISE_EL]] die effektive Fahrzeit berechnet, dort finden sich auch weitere Hinweise, zu den meisten anderen Optionen für die ersten beiden Attribute.
Bei allen Fensteröffnungen soll auf eine Lüften-Position gefahren werden, also schalten wir diese Funktion ebenfalls zentral an<ref>Sonst wird bei threeState-Sensoren nur bei ''tilted'' auf die in ''ASC_Ventilate_Pos'' gefahren.</ref>:
attr Rollladenautomatik ASC_autoShuttersControlComfort on
Zuletzt legen wir noch einen Temperatur-Sensor fest. Dieser wird beim Frostschutz sowie bei der Beschattung berücksichtigt.
<pre>
attr Rollladenautomatik ASC_tempSensor Aussentemperatur_Nord:temperature
attr Rollladenautomatik ASC_freezeTemp 3
</pre>{{Hinweis|Achtung: Für jede weitere Sensor-Information (z.B. zu Regen oder Wind) muß ein eigenes Device verwendet werden. Sollen unterschiedliche Readings desselben Sensors ausgewertet werden, müssen diese in ein eigenes Device übertragen werden, z.B. über einen readingsProxy mit gesetztem event-on-update-reading-Attribut (sonst triggert dieser nicht bei Aktualisierung des Readings)!}}
 
tbd:  
* Rain
* Wind
==== Konfiguration der Rollladendevices ====
{{Hinweis|Positionen dürfen sich innerhalb eines Rollos nicht überschneiden - Auch ASC_Closed_Pos 100 ASC_Shading_Pos 98 ASC_ComfortOpen_Pos 97 usw... sind bereits unterschiedliche Positionen.}}
 
===== Fahrzeiten =====
Zur Konfiguration der Fahrzeiten bietet es sich an, eine ReadingsGroup zu nutzen, wie unter [[#Hilfsmittel|Hilfsmittel]] dargestellt. Alternativ kann man die Zeiten auch manuell in den einzelnen Rollläden hinterlegen.
===== Bewohner =====
Wird ein Raum von einer oder mehreren bestimmten Person/en bewohnt oder gibt es ein Sammel-Gerät für mehrere Bewohner, kann dies mit den Attributen ''ASC_Roommate_Device'' und ''ASC_Roommate_Reading'' einem Rollladen zugeordnet werden. Ist einer der Bewohner ''asleep'', wird morgens erst geöffnet, wenn auch der letzte Roommate nicht mehr ''asleep'' ist.
===== Fensterkontakte  =====
Gegebenenfalls vorhandene Fensterkontakte werden mit ''ASC_WindowRec'' zugeordnet. Der dazugehörige Sensortyp wird mit ''ASC_WindowRec_subType'' festgelegt. Für threeState-Sensoren (auf, gekippt, zu) wird das übergreifende ''ASC_autoShuttersControlComfort'' beachtet. Bei vollständig geöffneten Fenster wird denn auf den in ''ASC_ComfortOpen_Pos'' festgelegten Wert gefahren.


define rg_ASC_Rollaeden_Level readingsGroup <Gerät>,<Closed_Pos>,<Open_Pos>,<Shading_Pos>,<Ventilate_Pos> (Rolladen_.*|Jalousie_.*)..:?ASC_Closed_Pos,?ASC_Open_Pos,?ASC_Shading_Pos,?ASC_Ventilate_Pos
===== Frostschutz =====
attr rg_ASC_Rollaeden_Level commands { ASC_Closed_Pos => 'ASC_Closed_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100',\
Zuletzt können die Attribute ''ASC_Antifreeze'' und ''ASC_Antifreeze_Pos'' festgelegt werden, wenn die Frostschutzfunktion aktiviert werden soll.
ASC_Open_Pos => 'ASC_Open_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100',\
ASC_Shading_Pos => 'ASC_Shading_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100',\
ASC_Ventilate_Pos => 'ASC_Ventilate_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100'}
[[Datei:ReadingsGroup ASC Level.png|600px|]]
readingsGroup, um die diversen Zeiten einzustellen:


define rg_ASC_Rollaeden_Times readingsGroup <Gerät>,<Stand>,<Time_Up_Early>,<Time_Up_WE>,<Time_Up_Late>,<Time_Down_Early>,<Time_Down_Late>,<Mode_Down>,<Mode_Up> (Rolladen_.*|Jalousie_.*)..:level,?ASC_Time_Up_Early,?ASC_Time_Up_WE_Holiday,?ASC_Time_Up_Late,?ASC_Time_Down_Early,?ASC_Time_Down_Late,?ASC_Mode_Down,?ASC_Mode_Up
=== Beschattung ===
attr rg_ASC_Rollaeden_Times commands {level => 'pct:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100', \
==== Konfiguration des ASC-Devices ====
ASC_Mode_Down => 'ASC_Mode_Down:always,absent,off',\
Im ASC DEVICE das Reading "controlShading" auf ''on'', sowie ein Astro/Twilight Device im Attribut "ASC_twilightDevice" und das Attribut "ASC_tempSensor" definieren.
ASC_Mode_Up => 'ASC_Mode_Up:always,absent,off',\
 
ASC_Time_Down_Early => 'ASC_Time_Down_Early:15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00', \
==== Konfiguration der Rollladendevices ====
ASC_Time_Down_Late  => 'ASC_Time_Down_Late:20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30',\
Es wird ein Helligkeitssensor als Attribut "ASC_BrightnessSensor" benötigt. Wird der Sensor nur für die Beschattung verwendet, ist der Wert DEVICENAME[:READING] ausreichend.
ASC_Time_Up_Early => 'ASC_Time_Up_Early:05:00,05:05,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00', \
Alle weiteren Attribute sind optional und wenn nicht gesetzt mit Default-Werten belegt. Sie sollten entsprechend der Gegebenheiten angepasst werden. Die Werte für die Fensterposition und den Vor-/Nachlaufwinkel ''(ASC_Shading_InOutAzimuth)'' sowie die Grenzwerte für <code>''ASC_shading_StateChange_SunnyCloudy''</code> sind besonders wichtig.
  ASC_Time_Up_Late =>'ASC_Time_Up_Late:06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00',ASC_Time_Up_WE_Holiday => 'ASC_Time_Up_WE_Holiday:06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00'}
 
[[Datei:ReadingsGroup ASC Times.png|600px|]]
==== Bedingungen ====
Damit die Beschattung startet müssen '''alle''' Bedingungen erfüllt sein. Entschattet wird, sobald '''eine''' der Bedingungen wegfällt und die Zeit entsprechend <code>ASC_Shading_WaitingPeriod</code> abgelaufen ist.
 
Der Sonnensensor <ASC_BrightnessSensor> muss mindestens zwei Messwerte geliefert haben, bevor das ASC-Modul in die Beschattungsposition fährt! Beim (zeitlich) ersten Messwert wird der Zustand ''in-reserved'' gesetzt. Erst beim zweiten Messwert wechselt der Zustand nach ''in shading''. Die Anzahl der berücksichtigten Messwerte ist abhängig vom "moving average window", der mit dem dritten Parameter des Attributs ''ASC_Shading_StateChange_SunnyCloudy'' konfiguriert wird.
 
'''Von Standardwerten ausgehend ist nachfolgender Ablauf angestrebt:'''
# Ein Event vom Astro oder Helligkeits Device kommt -> sind alle Werte innerhalb des Arbeitsbereiches, ändert sich der ASC Info-Zustand im Rollo von xx auf „in reserved“ (Beschattung vorbereitet)
# Ein erneutes Event vom Astro oder Helligkeits Device kommt -> Überprüfung der Werte -> sind diese weiterhin gegeben folgt der Wechsel von „in reserved“ auf „in“ (Beschattung aktiv)
# Bei Verwendung von ''ASC_Shading_StateChange_SunnyCloudy'' ist zu beachten, dass ein Durchschnitt über die letzten drei Brightness Events gerechnet wird. Möchte man das vermeiden muss man SUNNY:CLOUDY 1[2] setzen.
# Die Zeiten ''ASC_Shading_WaitingPeriod'' und ''ASC_BlockingTime_afterManual'' können hier zusätzlich für eine Verzögerung sorgen.
'''Wichtig zu beachten:''' Es müssen immer mehrere (mind. 2) Events für den Betrieb erfolgen. In den Standardeinstellungen vom Astro Modul erfolgt dieses z.B. nur 1 x pro Stunde. Kommt also ein Helligkeits-Event auch nur 1x pro Stunde, könnte es 2 Std dauern, bis die Beschattungsfunktion greift.
 
Wenn das Rollo einmal aus der Beschattung manuell (im Rollo Device muss bei ''ASC_ShuttersLastDrive manuel'' stehen gefahren wurde wird das Rollo erst wieder nach einer Entschattung und erneuter Beschattung gefahren. Also es muss einmal shading out kommen und beim nächsten shading in fährt er dann wieder.
 
==== Berücksichtigen der Innenraumtemperatur für die Beschattung ====
Soll die Beschattung nur dann fahren, wenn die Innenraumtemperatur einen Schwellwert überschreitet, lässt sich das mit einer Zeile Perl Code erreichen:
 
<code>
attr Rollo_OG_KiZ ASC_Shading_Pos { (ReadingsVal('Wetterstation', 'indoorTemperature', '21') <= 21 ? 100:25) }
</code>
 
Dieses Beispiel setzt die Beschattungsposition auf 100%, wenn die Innenraumtemperatur kleiner als 21°C ist und die Wetterstation sinnvolle Werte liefert (Rückfallwert 21°C), sonst 25%.
 
=== Weitere Funktionen ===
==== WeekendHoliday Funktion im Brightnessbetrieb ====
Am Wochenende oder Feiertag und wenn am ASC-Device sunriseTimeWeHoliday aktiviert sowie im Rollo das Attribut ASC_Time_Up_WE_Holiday gesetzt sind, wird zur angegebenen ASC_Time_Up_WE_Holiday Zeit das Rollo geöffnet, ungeachtet des Brightnesswertes.
 
==== Privacy ====
Werden hierfür Werte festgelegt, werden die betreffenden Rollläden die festgelegte Zeit/Helligkeit vor dem abendlichen Schließen vorab teilweise geschlossen. Dies kann z.B. gewünscht sein, um Rollläden zur Straße hin mit viel Fußgängerverkehr zwar nicht vollständig abzudunkeln, aber gleichzeitig zu verhindern, dass von außen in Wohnräume geschaut werden kann, sobald dort das Licht angeschaltet wird
 
==== BlockingTime====
Bewirkt, dass nach einer manuellen Fahrt, eine vom ASC Modul initiierte Fahrt zunächst ausgesetzt wird, bis die im Attribute angegebene Zeit überschritten ist. Erst dann wird eine vom ASC Modul initiierte Fahrt tatsächlich durchgeführt.
Genau so wird ein Hochfahren eines Rollos durch das ASC Modul nicht mehr ausgeführt, wenn es innerhalb der Zeit von ASC_BlockingTime_beforNightClose und das Runterfahren wird nicht mehr erfolgen, wenn es innerhalb von ASC_BlockingTime_beforDayOpen ist.
Beispiel: Meine Tochter geht früh außer Haus und Ihre Rollos sind nicht hochgefahren. Diese fahren auch nicht mehr hoch, da die ausschließlich bei home (anwesend) fahren sollen. Nun kommt sie am Nachmittag um 16:23 Uhr nach Hause. Eigentlich sollten nun die Rollos fahren. Doch die Sonnenuntergangsfahrt (schließen) wäre schon 16:51 Uhr und damit innerhalb der 3600 ASC_BlockingTime_beforNightClose. Die Rollos bleiben also unten. Es lohnt sich für die paar Minuten einfach nicht mehr.
 
==== wiggle====
Mit einem <code>set <ASC-Device> wiggle</code> können alle Rollladen mit einem entsprechenden Attribut zu einer kurzen Fahrt veranlasst werden, nach Ablauf von einer Minute wieder um denselben Wert zurück. Dabei wird jeweils in die Richtung gefahren, die den weiteren Weg ermöglicht. Wenn also zu 70% geschlossen ist, wird der Rollladen hoch fahren.
==== Partymode ====
Dieser wird am ASC-Device selbst aktiviert mittels <code>set <ASC-Device> partyMode on</code>. Alle Rollladen-Devices, welche das Attribut ''ASC_Partymode'' auf ''on'' gestellt haben, werden nicht mehr gesteuert. Der letzte Schaltbefehl, der durch ein Fensterevent oder Bewohnerstatus an die Rollläden gesendet wurde, beim Beenden des Modus durch <code>set ASC-Device partyMode off</code> ausgeführt.
==== lock-out ====
Man kann mit dem Befehl <code> set <ASC-Device> hardLockOut</code> auf einen Schlag alle Rollos sperren welche <code> attr <ROLLO-Device> ASC_LockOut hard</code> gesetzt haben.
Das ist dafür gedacht, wenn Du eine gewisse Zeit den Rolloaktor sperren willst. Zum Beispiel das die Kinder nicht schalten sollen.
 
== Sonstige Hinweise und Problemlösungen ==
* Werden Attribute geändert, kann es vereinzelt vorkommen, dass das ASC-Modul dies nicht mitbekommt und das tatsächliche Verhalten nicht den Erwartungen entspricht. In so einem Fall empfielt es sich, das NOTIFYDEV nochmals aufbauen zu lassen. Dazu werden zunächst mit <code>attr expert 1</code> erweiterte Informationen bezüglich des NotifyDevs unter set und get aktiviert und anschließend ein <code>set <ASC-Modul> createNewNotifyDev</code> ausgeführt.
 
* Hin und wieder berichten Nutzer davon, wenn Sie die ''Privacy Funktion'' nutzen, dass sich im NOTIFYDEV anstelle des Device Namen ein Raumname befindet. Diese Problem kann damit gelöst werden, dass in dem betroffenen '''Rollo Device''' das Atribut <code>attr event-on-change .*</code> gesetzt wird.
'''Wichtig!''' Nicht verwechseln mit dem ASC Device dort darf <code>attr event-on-change</code> '''nicht''' gesetzt sein!
* Wenn mehrere Rollladen gleichzeitig den Fahrbefehl bekommen, kann es (z. B. bei zwave) dazu kommen, dass ein Rollladen seinen Befehl nicht bekommt. Dies kann durch eine zeitverzögerte Aussendung der Fahrbefehle vermieden werden. Dazu in den jeweiligen Rollo Devices das Attribut ASC_Drive_DelayStart wie folgt benutzen im: ersten Rollo Device braucht das Attribut nicht gesetzt werden, im zweiten Rollo Device im Attribut ASC_Drive_DelayStart dann 4 Sekunden eintragen, im dritten Rollo Device im Attribut ASC_Drive_DelayStart 8 Sekunden eintragen, usw. Ein Abstand von 3-4 Sekunden ist dabei zielführend.
 
==== Spezielle Hardware ====
{{Link2Forum|Topic=101182|LinkText="Thread zu getesteter Hardware im Forum"}}


== Weblinks ==
== Weblinks ==
Zeile 493: Zeile 540:
* {{Link2Forum|Topic=90751|LinkText="Thread zur Entwicklung im Forum"}}  
* {{Link2Forum|Topic=90751|LinkText="Thread zur Entwicklung im Forum"}}  
* {{Link2Forum|Topic=73964|LinkText="Thread zu den Scripten von user cluni"}}, die der Entwicklung des Moduls zugrunde liegen
* {{Link2Forum|Topic=73964|LinkText="Thread zu den Scripten von user cluni"}}, die der Entwicklung des Moduls zugrunde liegen
* Daten zum Sonnenstand z.B. hier https://www.sonnenverlauf.de/


<references />


[[Kategorie:Code Snippets]]
[[Kategorie:Code Snippets]]
[[Kategorie:Rollladensteuerung]]
[[Kategorie:Rollladensteuerung]]

Aktuelle Version vom 6. Dezember 2022, 20:16 Uhr

AutoShuttersControl
Zweck / Funktion
Steuerung von Rollläden
Allgemein
Typ Gerätemodul
Details
Dokumentation EN / DE
Support (Forum) Automatisierung
Modulname 73_AutoShuttersControl.pm
Ersteller CoolTux (Forum /Wiki)
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref!

Mit AutoShuttersControl oder kurz ASC können Rollläden automatisch hoch und herunter gefahren werden. Zum Beispiel Öffnen bei Sonnenaufgang, Schließen bei Sonnenuntergang, Beschatten abhängig vom Sonnenstand oder Anfahren von Lüftungspositionen nach Öffnen des zugehörigen Fensters.

Basics

Info blue.png
Das Modul befindet sich derzeit noch in der Entwicklung; der derzeit aktuelle Stand ist diesem "Thread im Forum" zu entnehmen.


Als Voraussetzung sollten folgende FHEM-Devices bereits vorhanden sein:

  • Rollläden,
  • Fensterkontakte,
  • Bewohnerstatus auf Basis von Residents/Roomates in englisch. Ersatzweise andere Devices, z.B. Dummys, welche als state home, absent, asleep, gotosleep und awoken setzen sowie ein Reading lastState.
  • Helligkeitssensor (Steuerung nach Helligkeit für Beschattung)
  • Ein Device zur Bestimmung des Sonnenstands (nur für Beschattung). Unterstützt werden derzeit Astro und Twilight[1].
  • Wenn Feiertage berücksichtigt werden sollen: Ein oder mehrere holiday2we-Angaben in global samt entsprechender holiday-Dateien[2] [3].

Die Einrichtung des Moduls bzw. dessen Funktionalität erfolgt in mehreren Schritten:

  • Definition des ASC-Devices
  • Einstellung zentraler Vorgaben am ASC-Device
  • Markieren der zukünftig zu steuernden Rollladen-Devices
  • Einbinden der Rollladen-Devices in das ASC-Device
  • Einstellen der individuellen Vorgaben je Rollladen (am Rollladen-Device)

Dabei geht man am einfachsten schrittweise vor und erweitert die Funktionalität nach und nach um die gewünschten Funktionen. Dann benötigt man jeweils nur einen kleinen Teil der vielen per Attribut einstellbaren Optionen, und kann die Auswirkungen der jeweiligen Änderung besser nachvollziehen.

Einrichtung

Info blue.png
ASC kann auch verwendet werden, um lediglich Teilaufgaben der Rollladensteuerung zu erfüllen, also z.B. nur das morgendliche Öffnen der Rollläden. Allerdings geht dabei ein erheblicher Teil des Komforts verloren, der dadurch entsteht, dass die Steuerung innerhalb der vollintegrierten Lösung jeweils nachvollzieht, aus welchem Grund eine Fahrt erfolgt war und dies ggf. bei der nächsten Aktion berücksichtigt.


Vorbereitung

Zunächst sollten die in den Basics beschriebenen Geräte vorhanden und funktionsfähig sein.

Define des ASC-Devices

Es genügt ein einfaches define ohne weitere Parameter. define <name> AutoShuttersControl Dies bewirkt neben der Anlage des Devices selbst auch, dass als weiteres globales Attribut ASC verfügbar wird.

Einstellung zentraler Vorgaben

Mit Attributen am ASC-Device wird das Verhalten des ASC-Devices eingestellt, z.B. Vermeiden von morgendlichen oder abendlichen Fahrten, Frostschutzfunktion bei Gefahr von festgefrorenen Rollläden oder die Reaktion auf Fensterkontakte. Details sind der Commandref zu entnehmen. Diese Attribute können jederzeit geändert werden.

Auswählen zu steuernder Rollladen-Devices

Für jeden vom ASC-Device kontrollierten Rollladen muss das globale Attribut ASC gesetzt werden. Das steht nach dem Definieren des ASC-Devices zur Verfügung. Das Attribut ist mit 1 oder 2 festzulegen:

  1. Je kleiner der pct Wert um so weiter ist der Rollladen geschlossen. Typischerweise ist dann 0 offen und 100 geschlossen. Dies ist z.B. die passende Wahl für ROLLO-Devices
  2. Je größer der pct Wert desto weiter ist der Rollladen geschlossen, also offen für set <name> pct 100. Typische Vertreter dieses Typs sind HomeMatic (CUL_HM-) Geräte oder die Shelly2-Aktoren.

Basierend auf dem Parameter leitet das Modul bestimmte Voreinstellungen (defaults) für den Rollladen ab. Es genügt daher, nur jeweils die Einstellungen zu verändern, die anders gewünscht werden oder für den Rollladenaktortyp anders sein müssen (z.B. dim 99 für vollständiges Öffnen eines ZWave-Aktors).

Info blue.png
Das Vorstehende gilt jeweils für den nicht-invertierten Modus! Wer z.B. ein HomeMatic-Gerät mit levelinverse betreibt, sollte ASC auf "1" setzen usw.. Maßgeblich ist letztlich nur die Frage, ob die Offen-Positionsangabe nummerisch kleiner oder größer als die Geschlossen-Positionsangabe ist; die konkreten Zahlenwerte spielen dabei keine Rolle, die Angabe position oder pct kann auch später über ein weiteres Attribut passend eingestellt werden.


Einbinden in das ASC-Device

Nachdem das ASC Attribut für die betreffenden Rollladen-Devices gesetzt ist, muss mit set <name> scanForShutters ein Suchlauf gestartet werden, mit dem diese Rollläden in die Steuerungslogik eingebunden werden.

Einstellen der individuellen Vorgaben

Die gefundenen Rollladen-Devices erhalten weitere Attribute, mit denen für den jeweiligen Rollladen benötigte Einstellungen vorgenommen werden. Diese Attribute sind in der commandref beschrieben.

Readings

Readings im zentralen ASC-Device

Name Datentyp/
Wertebereich
Bedeutung
..._nextAstroTimeEvent Zeit wird abhängig von der eingestellten Attribute ASC_Time_Up/ASC_Time_Down angezeigt. Bei astro die Uhrzeit des Sonnenauf- oder Sonnenuntergang, bei time und brightness die Zeit aus ASC_Time_Up_Early/ASC_Time_Down_Late pro Rollonamen
..._lastPosValue Position pro Rollonamen, bevor ASC die Rollläden verfahren hat.
..._PosValue aktuelle Position pro Rollonamen.
ascEnable on, off globale ASC Steuerung bei den Rollläden aktiv oder inaktiv
controlShading on, off globale Beschattungsfunktion aktiv oder inaktiv
hardLockOut on, off Status des hardwareseitigen Aussperrschutzes / gilt nur für Rollläden mit dem Attribut bei denen das Attributs ASC_LockOut entsprechend auf hard gesetzt ist.
selfDefense on, off globale Selbstschutzfunktion aktiv oder inaktiv
partyMode on, off globaler Partymodus aktiv oder inaktiv
state Status des ASC-Devices: active, enabled, disabled oder weitere Statusinformationen wie z.B. Grund der letzen Fahrt.
room_... Auflistung aller Rollläden, welche in den jeweiligen Räumen gefunden wurden, Bsp.: room_Schlafzimmer,Terrasse.
sunriseTimeWeHoliday on,off globale Wochenendunterstützung aktiv oder inaktiv.
userAttrList rolled out Das ASC-Modul verteilt an die gesteuerten Rollladen-Geräte diverse Benutzerattribute (userattr). In diesem Reading kann der Status dieser Verteilung geprüft werden.

Readings in den Rolllädendevices

Name Bedeutung
ASC_Enable Status von ASC_Enable (on,off).
ASC_ShuttersLastDrive Grund der letzten Fahrt des Rollladens.
ASC_Time_DriveDown Zeit wird abhängig von der eingestellten Attribute ASC_Time_Down angezeigt. Bei astro die Uhrzeit des Sonnenuntergangs, bei time und brightness die Zeit aus /ASC_Time_Down_Late
ASC_Time_DriveUp Zeit wird abhängig von der eingestellten Attribute ASC_Time_Up angezeigt. Bei astro die Uhrzeit des Sonnenaufgangs, bei time und brightness die Zeit aus /ASC_Time_Up_Early

set- und get-Befehle für das ASC-Device

set-Anweisungen

Name Datentyp/
Wertebereich
Beschreibung
advDriveDown on, off Nachholen der durch ASC_Adv on ausgesetzten Fahrten.
ascEnable on, off Aktiviert oder deaktiviert die globale ASC-Steuerung.
controlShading on, off Aktiviert oder deaktiviert die globale Beschattungssteuerung.
createNewNotifyDev Legt die interne Struktur für NOTIFYDEV neu an. (Diese Funktion steht nur zur Verfügung, wenn Attribut ASC_expert auf 1 gesetzt ist.)
hardLockOut on, off Aktiviert den hardwareseitigen Aussperrschutz für die Rollläden, bei denen das Attributs ASC_LockOut auf hard gesetzt ist. Mehr Informationen in der Beschreibung bei den Attributen für die Rollladengeräten.
partyMode on, off Aktiviert den globalen Partymodus. Alle Rollladen-Geräten, in welchen das Attribut ASC_Partymode auf on gesetzt ist, werden durch ASC nicht mehr gesteuert. Der letzte Schaltbefehl, der bspw. durch ein Fensterevent oder Wechsel des Bewohnerstatus an die Rollläden gesendet wurde, wird beim Deaktivieren des Partymodus ausgeführt
renewAllTimer Erneuert bei allen Rollläden die Zeiten gemäß ASC_UP/ASC_DOWN und setzt die internen Timer neu.
renewTimer Erneuert bei dem ausgewählten Rollladen die Zeiten gemäß ASC_UP/ASC_DOWN und setzt die internen Timer neu.
scanForShutters Sucht alle FHEM Devices mit dem Attribut ASC 1 oder 2 und legt diese im ASC-Modul an
selfDefence on, off Aktiviert bzw. deaktiviert die Selbstschutzfunktion. Beispiel 1: Wenn das Residents-Gerät gone meldet, alle Rollläden dann heruntergefahren. Beispiel 2 : Wenn das Residents-Gerät absent meldet, das Attribut ASC_ShuttersPlace=terrace ist und ein Fenster im Haus noch geöffnet ist, so wird an diesem Fenster der Rollladen dann heruntergefahren.
shutterASCenableToggle Aktivieren oder deaktivieren der ASC Kontrolle des einzelnen Rollladens.
sunriseTimeWeHoliday on,off Aktiviert die Wochenendunterstützung. Dann wird das Attribut ASC_Time_Up_WE_Holiday am Rollladen-Device beachtet.
wiggle Bewegt einen oder mehrere Rollläden um einen definierten Wert (Default: 5%) und nach einer Minute wieder zurück in die Ursprungsposition. Diese Funktion könnte bspw. zur Abschreckung in einem Alarmsystem eingesetzt werden.

get-Anweisungen

Name Beschreibung
showNotifyDevsInformations Zeigt eine Übersicht der abgelegten NOTIFYDEV Struktur. Diese Funktion wird für das Debugging genutzt. Hierzu ist das Attribut ASC_expert = 1 zu setzen.

Attribute

Info blue.png
Die Attributnamen haben sich teilweise geändert, nachfolgend ist der Stand von Modulversion v0.8.x wiedergegeben.


Info blue.png
In der commandref findet sich häufig die Schreibweise ASC_BrightnessSensor Sensorname[:brightness [400:800]]. Dabei sind die Angaben in den eckigen Klammern optional. Dies müssen also nicht angegeben werden, stattdessen verwendet das Modul dann Standardwerte (siehe cref), die in der cref zu findenden Angaben entsprechen dabei den defaults. Werden Werte angegeben, sind die eckigen Klammern wegzulassen! Beispiel: ASC_BrightnessSensor hm_motion_1 70:100 würde das brightness-Reading des Sensors hm_motion_1 verwenden und einen morgendlichen Schwellenwert von 70 bzw. 100 für abends.


Attribute direkt am ASC-Device

Name Datentyp/
Wertebereich
Default-Wert Beschreibung
ASC_autoAstroModeEvening REAL, CIVIL, NAUTIC, ASTRONOMIC oder HORIZON nach welchem ASTRO-Modus soll die Abendfahrt berechnet werden
ASC_autoAstroModeEveningHorizon - 9 bis 9 0 Höhe über dem Horizont. Wird nur berücksichtigt, wenn im Attribut ASC_autoAstroModeEvening der Wert HORIZON ausgewählt wurde.
ASC_autoAstroModeMorning REAL, CIVIL, NAUTIC, ASTRONOMIC oder HORIZON nach welchem ASTRO-Modus soll die Morgendfahrt berechnet werden
ASC_autoAstroModeMorningHorizon - 9 bis 9 0 Höhe über dem Horizont. Wird nur berücksichtigt, wenn im Attribut ASC_autoAstroModeMorning der Wert HORIZON ausgewählt wurde.
ASC_autoShuttersControlComfort on, off off schaltet die Komfortfunktion an. Bedeutet, dass ein Rollladen mit einem threestate-Sensor am Fenster beim Öffnen in eine Offenposition fährt. Hierzu muss beim Rollladen das Attribut ASC_ComfortOpen_Pos entsprechend konfiguriert sein.
ASC_autoShuttersControlEvening on, off Aktiviert die automatische Steuerung durch das ASC-Modul am Abend.
ASC_autoShuttersControlMorning on, off Aktiviert die automatische Steuerung durch das ASC-Modul am Morgen.
ASC_blockASCDrivesAfterManual 0, 1 wenn dieser Wert auf 1 gesetzt ist, dann werden Rollläden vom ASC-Modul nicht mehr gesteuert, wenn zuvor manuell eingegriffen wurde. Voraussetzung hierfür ist jedoch, dass im Reading ASC_ShuttersLastDrive der Status manual enthalten ist und sich der Rollladen auf eine unbekannte (nicht in den Attributen anderweitig konfigurierte) Position befindet.
ASC_brightnessDriveUpDown Werte (z.B. Lux) bei dem Schaltbedingungen für Sonnenauf- und -untergang geprüft werden sollen. Diese globale Einstellung kann durch die WERT-MORGENS:WERT-ABENDS Einstellung von ASC_BrightnessSensor im Rollladen selbst überschrieben werden.
ASC_debug 0, 1 0 Aktiviert die erweiterte Logausgabe für Debugausgaben (nur nach Aufforderung nutzen)
ASC_expert 0, 1 0 ist der Wert 1, so werden erweiterte Informationen bezüglich des NotifyDevs unter set und get angezeigt
ASC_freezeTemp -5 bis 5 Temperatur, ab welcher der Frostschutz greifen soll und der Rollladen nicht mehr fährt. Der letzte Fahrbefehl wird gespeichert.
ASC_rainSensor DEVICENAME[:READINGNAME] MAXTRIGGER[:HYSTERESE] [CLOSEDPOS] - 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".
ASC_residentsDev DEVICENAME[:READINGNAME] - der Inhalt ist eine Kombination aus Devicenamen und Readingnamen des Residents-Device der obersten Ebene (z.B. rgr_Residents:state)
ASC_shuttersDriveDelay maximale Zufallsverzögerung in Sekunden bei der Berechnung der Fahrzeiten. 0 bedeutet keine Verzögerung
ASC_tempSensor DEVICENAME[:READINGNAME] - der Inhalt ist eine Kombination aus Device und Reading für die Außentemperatur
ASC_twilightDevice das Device, welches die Informationen zum Sonnenstand liefert. Wird unter anderem für die Beschattung verwendet.
ASC_windSensor DEVICE[:READING] - Sensor für die Windgeschwindigkeit. Kombination aus Device und Reading.

Attribute in den Rolllädendevices

Name Datentyp/
Wertebereich
Default-Wert Beschreibung
ASC 0, 1, 2 "kein Anlegen der Attribute beim ersten Scan bzw. keine Beachtung eines Fahrbefehles",1 = "Inverse oder Rollo - Bsp.: Rollo oben 0, Rollo unten 100 und der Befehl zum prozentualen Fahren ist position",2 = "Homematic Style - Bsp.: Rollo oben 100, Rollo unten 0 und der Befehl zum prozentualen Fahren ist pct
ASC_Adv on, off bei on wird das runterfahren des Rollos während der Weihnachtszeit (1. Advent bis 6. Januar) ausgesetzt! Durch set <ASCDEVICE> advDriveDown werden alle ausgesetzten Fahrten nachgeholt.
ASC_Antifreeze off, soft, hard, am, pm Frostschutz, wenn soft fährt der Rollladen in die ASC_Antifreeze_Pos, bei hard/am/pm wird gar nicht oder innerhalb der entsprechenden Tageszeit nicht gefahren
ASC_Antifreeze_Pos Position des Rolllades die angefahren werden soll, wenn der Fahrbefehl komplett schließen lautet, aber der Frostschutz aktiv ist  !!!Verwendung von Perlcode ist möglich, dieser muss in {} eingeschlossen sein. Rückgabewert muss eine positive Zahl/Dezimalzahl sein!!!
ASC_autoAstroModeEvening REAL, CIVIL, NAUTIC, ASTRONOMIC oder HORIZON nach welchem ASTRO-Modus soll die Abendfahrt berechnet werden
ASC_autoAstroModeEveningHorizon - 9 bis 9 0 Höhe über dem Horizont. Wird nur berücksichtigt, wenn im Attribut ASC_autoAstroModeEvening der Wert HORIZON ausgewählt wurde.
ASC_autoAstroModeMorning REAL, CIVIL, NAUTIC, ASTRONOMIC oder HORIZON nach welchem ASTRO-Modus soll die Morgendfahrt berechnet werden
ASC_autoAstroModeMorningHorizon - 9 bis 9 0 Höhe über dem Horizont. Wird nur berücksichtigt, wenn im Attribut ASC_autoAstroModeMorning der Wert HORIZON ausgewählt wurde.
ASC_BlockingTime_afterManual 1200 wie viel Sekunden soll die Automatik nach einer manuellen Fahrt aussetzen
ASC_BlockingTime_beforeDayOpen 3600 wie viel Sekunden vor dem morgendlichen öffnen soll keine schließen Fahrt mehr stattfinden.
ASC_BlockingTime_beforeNightClose 3600 ie viel Sekunden vor dem nächtlichen schließen soll keine öffnen Fahrt mehr stattfinden.
ASC_BrightnessSensor none DEVICE[:READING] WERT-MORGENS:WERT-ABENDS / 'Sensorname[:brightness [400:800]]' Angaben zum Helligkeitssensor mit (Readingname, optional) für die Beschattung und dem Fahren der Rollladen nach brightness und den optionalen Brightnesswerten für Sonnenauf- und Sonnenuntergang
ASC_Closed_Pos default Vorgabe ist abhängig vom Attribut ASC in 10er-Schritten von 0 bis 100

wird angefahren wenn SelfDefense aktiv ist

ASC_ComfortOpen_Pos in 10er Schritten von 0 bis 100 !!! Die eingestellte Position wird bei einem threestate Sensor angefahren. Verwendung von Perlcode ist möglich, dieser muss in {} eingeschlossen sein. Rückgabewert muss eine positive Zahl/Dezimalzahl sein!!!
ASC_Down time, astro, brightness, roommate astro 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ä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.
ASC_DiveUpMaxDuration 60 die Dauer des Hochfahrens des Rollladens plus 5 Sekunden
ASC_Drive_Delay -1 maximaler Wert für einen zufällig ermittelte Verzögerungswert in Sekunden bei der Berechnung der Fahrzeiten, 0 bedeutet keine Verzögerung, -1 bedeutet, dass das ??gleichwertige Attribut?? aus dem ASC Device ausgewertet werden soll
ASC_Drive_DelayStart -1 in Sekunden verzögerter Wert ab welchen dann erst das Offset startet und dazu addiert wird. Funktioniert nur wenn gleichzeitig ASC_DriveDelay gesetzt wird.
ASC_ExternalTrigger DEVICE:READING VALUEACTIVE:VALUEINACTIVE POSACTIVE:POSINACTIVE, Beispiel: "WohnzimmerTV:state on:off 66:100" bedeutet das wenn ein "state:on" Event kommt soll das Rollo in Position 66 fahren, kommt ein "state:off" Event soll es in Position 100 fahren. Es ist möglich die POSINACTIVE weg zu lassen dann fährt das Rollo in LastStatus Position.
ASC_GuestRoom on, off aktuell noch nicht umgesetzt...
ASC_LockOut soft, hard, off off stellt entsprechend den Aussperrschutz ein. Bei global aktivem Aussperrschutz (set ASC-Device lockOut soft) und einem Fensterkontakt open bleibt dann der Rollladen oben. Dies gilt nur bei Steuerbefehlen über das ASC Modul. Stellt man global auf hard, wird bei entsprechender Möglichkeit versucht den Rollladen hardwareseitig zu blockieren. Dann ist auch ein Fahren über die Taster nicht mehr möglich
ASC_LockOut_Cmd inhibit, blocked, protection none set Befehl für das Rollladen-Device zum Hardware sperren. Dieser Befehl wird gesetzt werden, wenn man "ASC_LockOut" auf hard setzt
ASC_Mode_Down absent, always, off, home always Wann darf die Automatik steuern. immer, niemals, bei Abwesenheit des Roommate (ist kein Roommate und absent eingestellt, wird gar nicht gesteuert)
ASC_Mode_Up absent, always, off, home always Wann darf die Automatik steuern. immer, niemals, bei Abwesenheit des Roommate (ist kein Roommate und absent eingestellt, wird gar nicht gesteuert)
ASC_Open_Pos default Vorgabe ist abhängig vom Attribut ASC in 10er-Schritten von 0 bis 100
ASC_Partymode on, off off schaltet den Partymodus an oder aus. Wird am ASC Device set ASC-DEVICE partyMode on geschalten, werden alle Fahrbefehle an den Rollläden, welche das Attribut auf on haben, zwischengespeichert und später erst ausgeführ
ASC_Pos_Reading Name des Readings, welches die Position des Rollladen in Prozent angibt. Wird bei unbekannten Device-Typen auch als set Befehl zum Fahren verwendet
ASC_PrivacyDownValue_beforNightClose -1 wie viele Sekunden vor dem abendlichen schließen soll der Rollladen in die Sichtschutzposition fahren, oder bei Brightness ab welchem minimum Brightnesswert soll das Rollo in die Privacy Position fahren. Bei Brightness muss zusätzlich zum Zeitwert der Brightnesswert mit angegeben werden 1800:300 bedeutet 30 min vor night close oder bei unter einem Brightnesswert von 300
ASC_PrivacyDown_Pos 50 Position den Rollladens für den abendlichen Sichtschutz!Verwendung von Perlcode ist möglich, dieser muss in {} eingeschlossen sein. Rückgabewert muss eine positive Zahl/Dezimalzahl sein!!!
ASC_PrivacyUpValue_beforDay -1 wie viele Sekunden vor dem morgendlichen öffnen soll der Rollladen in die Sichtschutzposition fahren, oder bei Brightness ab welchem minimum Brightnesswert soll das Rollo in die Privacy Position fahren. Bei Brightness muss zusätzlich zum Zeitwert der Brightnesswert mit angegeben werden 1800:600 bedeutet 30 min vor day open oder bei über einem Brightnesswert von 600
ASC_PrivacyUp_Pos 50 Position den Rollladens für den morgendlichen Sichtschutz!Verwendung von Perlcode ist möglich, dieser muss in {} eingeschlossen sein. Rückgabewert muss eine positive Zahl/Dezimalzahl sein!!!
ASC_RainProtection on, off soll der Rollladen beim Regenschutz beachtet werden. on=JA, off=NEIN.
ASC_Roommate_Device none mit Komma getrennte Namen des/der Roommate-Device/s welche den/die Bewohner des Rollladen-Raumes wiedergibt. Macht nur Sinn in Schlaf- oder Kinderzimmern
ASC_Roommate_Reading Reading des Roommate-Device, welches den Status wieder gibt
ASC_Self_Defense_AbsentDelay 300 um wie viele Sekunden soll das fahren in Selfdefense bei Residents absent verzögert werden
ASC_Self_Defense_Mode gone ab welchen Residents Status soll Selfdefense aktiv werden ohne das Fenster auf sind
ASC_Shading_InOutAzimuth 95:265 Azimut Wert ab dem bei Überschreiten Beschattet und bei Unterschreiten Endschattet werden soll
ASC_Shading_MinMax_Elevation 25.0:100.0 ab welcher min Höhe des Sonnenstandes soll beschattet und ab welcher max Höhe wieder beendet werden, immer in Abhängigkeit der anderen einbezogenen Sensorwerte
ASC_Shading_MinOutsideTemperature_ 18 ab welcher Temperatur soll Beschattet werden, immer in Abhängigkeit der anderen einbezogenen Sensorwert
ASC_ShadingMode absent, always, off, home off wann soll die Beschattung nur stattfinden
ASC_Shading_Pos Position des Rollladens für die Beschattung !!!Verwendung von Perlcode ist möglich, dieser muss in {} eingeschlossen sein. Rückgabewert muss eine positive Zahl/Dezimalzahl sein!!!
ASC_Shading_StateChange_SunnyCloudy 35000:20000 Brightness Wert ab welchen die Beschattung stattfinden und aufgehoben werden soll, immer in Abhängigkeit der anderen einbezogenen Sensorwerte
ASC_Shading_WaitingPeriod 1200 wie viele Sekunden soll gewartet werden bevor eine weitere Auswertung der Sensordaten für die Beschattung stattfinden soll
ASC_Shutter_IdleDetection READING:VALUE gibt das Reading an welches Auskunft über den Fahrstatus des Rollos gibt, sowie als zweites den Wert im Reading welcher aus sagt das das Rollo nicht fährt
ASC_ShuttersPlace window, terrace wenn dieses Attribut auf terrace gesetzt ist und das Residents-Device in den Status absent geht, selfDefence aktiv ist und das Fenster geöffnet ist, wird das Rollo geschlossen. Wenn ein twostate Senso genutzt wird und dieses Attribut auf terrace gesetzt ist wird ASC_Ventilate_Pos ignoriert und das Rollo wird beim öffnen des Fenster komplett geöffnet. Wenn dieses Attribut auf window gesetzt ist wird ASC_Ventilate_Pos berücksichtigt und das Rollo wird entsprechend der ASC_Ventilate_Pos geöffnet. Wenn das Fenster wieder geschlossen wird, dann wird das Rollo unabhängig von windows oder terrace vollständig geschlossen.
ASC_Sleep_Pos in 10er-Schritten von 0 bis 100, default Vorgabe ist abhängig vom Attribut ASC. Position wird angefahren wenn Bedingung für modeDown aktiv ist. Hiermit kann z.B. das komplette abendliche Schließen des Rollos begrenzt werden.
ASC_TempSensor DEVICENAME[:READINGNAME] - der Inhalt ist eine Kombination aus Device und Reading für die Außentemperatur
ASC_Time_Down_Early 16:00 Sonnenuntergang frühste Zeit zum Runterfahren !!!Verwendung von Perlcode ist möglich, dieser muss in {} eingeschlossen sein. Rückgabewert muss ein Zeitformat in Form HH:MM[:SS] sein!!!
ASC_Time_Down_Late 22:00 Sonnenuntergang späteste Zeit zum Runterfahren !!!Verwendung von Perlcode ist möglich, dieser muss in {} eingeschlossen sein. Rückgabewert muss ein Zeitformat in Form HH:MM[:SS] sein!!!
ASC_Time_Up_Early 05:00 Sonnenaufgang frühste Zeit zum Hochfahren !!!Verwendung von Perlcode ist möglich, dieser muss in {} eingeschlossen sein. Rückgabewert muss ein Zeitformat in Form HH:MM[:SS] sein!!!
ASC_Time_Up_Late 08:30 Sonnenaufgang späteste Zeit zum Hochfahren  !!!Verwendung von Perlcode ist möglich, dieser muss in {} eingeschlossen sein. Rückgabewert muss ein Zeitformat in Form HH:MM[:SS] sein!!!
ASC_Time_Up_WE_Holiday 08:00 Sonnenaufgang frühste Zeit zum Hochfahren am Wochenende und/oder Urlaub (holiday2we wird beachtet).ACHTUNG!!! in Verbindung mit Brightness für ASC_Up muss die Uhrzeit kleiner sein wie die Uhrzeit aus ASC_Time_Up_Late !!!Verwendung von Perlcode ist möglich, dieser muss in {} eingeschlossen sein. Rückgabewert muss ein Zeitformat in Form HH:MM[:SS] sein!!!
ASC_Ventilate_Window_Open on, off on auf lüften, wenn das Fenster gekippt/geöffnet wird und aktuelle Position unterhalb der Lüften-Position ist
ASC_WiggleValue 5 Wert, um welchen sich die Position des Rollladens bei Wiggle ändern soll
ASC_WindParameters 5 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_WindProtection on, off soll der Rollladen beim Windschutz beachtet werden. on=JA, off=NEIN.
ASC_WindowRec none Name des Fensterkontaktes, an dessen Fenster der Rollladen angebracht ist WINDOWREC:[READING], Reading ist optional. Die Kontakte müssen open/opened, close/closed bzw. tilt/tilted liefern.
ASC_WindowRec_PosAfterDayClosed open, lastManual open Position auf die das das Rollo nach dem Schließen tagsüber fahren soll. Geöffnet oder letzte gespeicherte manuelle Position (default: open)
ASC_WindowRec_subType twostate, threestate twostate Typ des verwendeten Fensterkontaktes: twostate (optisch oder magnetisch) oder threestate (Drehgriffkontakt)
ASC_SlatPosCmd_SlatDevice Angaben zu einem Slat (Lamellen) CMD und sofern diese Lamellen über ein anderes Device gesteuert werden. Beispiel: attr ROLLO ASC_SlatPosCmd_SlatDevice slatPct [:ROLLOSLATDEVICE] oder attr ROLLO ASC_SlatPosCmd_SlatDevice slatPct:ROLLOSLATDEVICE.

Für die Positionsangaben ASC_Open_Pos, ASC_Closed_Pos, ASC_Ventilate_Pos, ASC_ComfortOpen_Pos, ASC_Shading_Pos und ASC_Sleep_Pos muss ein weiterer Parameter für die Lamellenstellung angegeben werden.

Hilfsmittel

Info blue.png
Die Device-Namen sind auf die eigene Installation anzupassen.



Info blue.png
Codezeilen sind im RAW-Format.


Info green.pngStand 2019-05-03
  • Erfolgreich getestet mit Homematic Devices, Beta-User
  • Die Farbgebung entspricht dem Standard, wenn unter dem Style f18 der Farbpreset light gewählt wird.


readingsGroup für Level

defmod rg_ASC_Rolllaeden_Level readingsGroup <Gerät>,<Stand>,<Schliessen bis>,<Öffnen auf>,<Beschattung>,<Komfort>,<Lüften>,<Privacy> (Rollladen_.*|Jalousie_.*)..:level,!?ASC_Closed_Pos,!?ASC_Open_Pos,!?ASC_Shading_Pos,!?ASC_ComfortOpen_Pos,!?ASC_Ventilate_Pos,!?ASC_PrivacyDown_Pos
attr rg_ASC_Rolllaeden_Level commands {level => 'pct:selectnumbers,0,5,100,0,lin',\
ASC_Closed_Pos => 'ASC_Closed_Pos:selectnumbers,0,5,100,0,lin',\
ASC_Open_Pos => 'ASC_Open_Pos:selectnumbers,0,5,100,0,lin',\
ASC_Shading_Pos => 'ASC_Shading_Pos:selectnumbers,0,5,100,0,lin',\
ASC_Ventilate_Pos => 'ASC_Ventilate_Pos:selectnumbers,0,5,100,0,lin',\
ASC_ComfortOpen_Pos => 'ASC_ComfortOpen_Pos:selectnumbers,0,5,100,0,lin',\
ASC_PrivacyDown_Pos => 'ASC_PrivacyDown_Pos:selectnumbers,0,5,100,0,lin'}

readingsGroup für Zeiten

ReadingsGroup - Zeitenbeispiel
defmod rg_ASC_Rolllaeden_Times readingsGroup <Gerät>,<Position>,<Time_Up_Early>,<Time_Up_Late>,<Time_Up_WE/Hol>,<Time_Down_Early>,<Time_Down_Late>,<Mode_Down>,<Mode_Up> \
 (.*Rollo.*|.*Rollladen|Jalousie_.*):level,!?ASC_Time_Up_Early,!?ASC_Time_Up_Late,!?ASC_Time_Up_WE_Holiday,!?ASC_Time_Down_Early,!?ASC_Time_Down_Late,!?ASC_Mode_Down,!?ASC_Mode_Up
attr rg_ASC_Rolllaeden_Times commands {level => 'pct:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100', \
 ASC_Time_Down_Early => 'ASC_Time_Down_Early:15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00', \
 ASC_Time_Down_Late  => 'ASC_Time_Down_Late:19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30', \
 ASC_Time_Up_WE_Holiday => 'ASC_Time_Up_WE_Holiday:06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00',\
 ASC_Time_Up_Early => 'ASC_Time_Up_Early:05:00,05:05,05:30,05:55,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00',  \
 ASC_Time_Up_Late => 'ASC_Time_Up_Late:06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00', \
 ASC_Mode_Down => 'ASC_Mode_Down:always,absent,off', \
 ASC_Mode_Up => 'ASC_Mode_Up:always,absent,off' }
attr rg_ASC_Rolllaeden_Times room Rollladen
ReadingsGroup - CUL_HM+ZWave+Siro mit widgets

Neue Version mit time-Widgets und pct/dim/position-widget (5-er Schritte), passend für CUL_HM, ZWave und Siro-Geräte:

defmod rg_ASC_Rolllaeden_Times readingsGroup <Gerät>,<Stand>,<Time_Up_Early  >,<Time_Up_WE  >,<Time_Up_Late  >,<Time_Down_Early>,<Time_Down_Late>,<Mode_Down>,<Mode_Up> (Rollo_.*|Jalousie_.*)..:(level|dim|position),!?ASC_Time_Up_Early,!?ASC_Time_Up_WE_Holiday,!?ASC_Time_Up_Late,!?ASC_Time_Down_Early,!?ASC_Time_Down_Late,!?ASC_Mode_Down,!?ASC_Mode_Up
attr rg_ASC_Rolllaeden_Times commands {level => 'pct:selectnumbers,0,5,100,0,lin', \
dim => 'dim:selectnumbers,0,5,99,0,lin',\
position => 'pct:selectnumbers,0,5,99,0,lin',\
ASC_Mode_Down => 'ASC_Mode_Down:always,absent,off',\
ASC_Mode_Up => 'ASC_Mode_Up:always,absent,off',\
ASC_Time_Down_Early => 'ASC_Time_Down_Early:time', \
ASC_Time_Down_Late  => 'ASC_Time_Down_Late:time',\
ASC_Time_Up_Early => 'ASC_Time_Up_Early:time', \
ASC_Time_Up_Late =>'ASC_Time_Up_Late:time',\
ASC_Time_Up_WE_Holiday =>'ASC_Time_Up_WE_Holiday:time'}
attr rg_ASC_Rolllaeden_Times room Rollladen

readingsGroup für die Beschattung

ReadingsGroup - Beschattungsbeispiel
defmod RG_test readingsGroup <Gerät>,<InAzi>,<OutAzi>,<MinEle>,<MaxEle>,<Sunny>,<Cloudy>\
(Rollo|Jalousie)_.*..:<{ascAPIget('ShadingAzimuthLeft',$DEVICE)}>,<{ascAPIget('ShadingAzimuthRight',$DEVICE)}>,<{ascAPIget('ShadingMinElevation',$DEVICE)}>,<{ascAPIget('ShadingMaxElevation',$DEVICE)}>,<{ascAPIget('ShadingStateChangeSunny',$DEVICE)}>,<{ascAPIget('ShadingStateChangeCloudy',$DEVICE)}>

readingsGroup für FIBARO Roller Shutter FGR-222 Devices

Info green.pngGetestet von majestro84, Stand 2019-01-28.
  • Forenbeitrag dazu
  • Die Farbgebung entspricht dem Standard, wenn unter dem Style f18 der Farbpreset dark gewählt wird
Beispiel
define ASC_Jalousien_Times readingsGroup <Gerät>,<Stand>,<Time_Up_Early>,<Time_Up_WE>,<Time_Up_Late>,<Time_Down_Early>,<Time_Down_Late>,<Mode_Down>,<Mode_Up>,<PartyMode>,<LockOut> (.*_Jalousie.*):position,!?ASC_Time_Up_Early,!?ASC_Time_Up_WE_Holiday,!?ASC_Time_Up_Late,!?ASC_Time_Down_Early,!?ASC_Time_Down_Late,!?ASC_Mode_Down,!?ASC_Mode_Up,!?ASC_Partymode,!?ASC_LockOut

 attr ASC_Jalousien_Times commands {position => 'dim:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,99',
 ASC_Mode_Down => 'ASC_Mode_Down:always,absent,off',
 ASC_Mode_Up => 'ASC_Mode_Up:always,absent,off',
 ASC_Partymode => 'ASC_Partymode:on,off',
 ASC_LockOut => 'ASC_LockOut:soft,hard,off',
 ASC_Time_Down_Early => 'ASC_Time_Down_Early:15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00', 
 ASC_Time_Down_Late  => 'ASC_Time_Down_Late:20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30',
 ASC_Time_Up_Early => 'ASC_Time_Up_Early:05:00,05:05,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00',
 ASC_Time_Up_Late =>'ASC_Time_Up_Late:06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00',
 ASC_Time_Up_WE_Holiday => 'ASC_Time_Up_WE_Holiday:06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00'}
 attr ASC_Jalousien_Times room Jalousien
Beispiel
 define Jalousien_Level readingsGroup <Gerät>,<Closed_Pos>,<Open_Pos>,<Comfort_Pos>,<Ventilate_Pos>,<PrivacyDown_Pos>,<Shading_Pos> (.*_Jalousie.*):!?ASC_Closed_Pos,!?ASC_Open_Pos,!?ASC_ComfortOpen_Pos,!?ASC_Ventilate_Pos,!?ASC_PrivacyDown_Pos,!?ASC_Shading_Pos
 attr Jalousien_Level commands { ASC_Closed_Pos => 'ASC_Closed_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,99',
 ASC_Open_Pos => 'ASC_Open_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,99',
 ASC_ComfortOpen_Pos => 'ASC_ComfortOpen_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,99',
 ASC_Ventilate_Pos => 'ASC_Ventilate_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,99',
 ASC_PrivacyDown_Pos => 'ASC_PrivacyDown_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,99',
 ASC_Shading_Pos => 'ASC_Shading_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,99'}
 attr Jalousien_Level room Jalousien

Einrichtungsbeispiel (nach Sonnenstand)

Ziel und Vorgaben

Es sollen die Rollläden und Jalousien innerhalb bestimmter zeitlicher Perioden sonnenstandsabhängig geöffnet und geschlossen werden. An den Wochenenden und an Ferientagen soll etwas später geöffnet werden. Es sind Tür- und Fensterkontakte vorhanden (Türkontakte: twoState, Fensterkontakte: threeState), wobei bei jeder Öffnung ein eventuell geschlossener Rollladen geöffnet werden soll. Bei allen Rollladenaktoren, Tür- und Fensterkontakten handelt es sich um CUL_HM-Geräte.

Vorarbeiten

Im global-Device sind Angaben zu latitude und longitude vorhanden, holiday2we wie folgt[4]:

attr global holiday2we bw,ferien

Weitere Angaben werden zunächst nicht benötigt, das Astro-Device wird erst in der Beschattungskonfiguration definiert. Dann erfolgt das Define des ASC-Devices wie oben beschrieben: define Rollladenautomatik AutoShuttersControl Folgen die einzubindenden Rollladenaktoren einem einheitlichen Namensschema, können diese sodann z.B. mit

attr (Jalousie|Rollladen)_.* ASC 2

auf einen Rutsch mit dem passenden ASC-Typ gekennzeichnet werden.


Info blue.png
Achtung: Das AutoShuttersControl-Device selbst darf kein ASC-Attribut bekommen!


Dann werden mit

set Rollladenautomatik scanForShutters

die nachfolgend weiter zu bearbeitenden Attribute angelegt.

Schließen morgens und abends

Info green.pngAlternative: Fahren nach brightness: Soll insgesamt oder an einzelnen Rollläden helligkeitsgesteuert gefahren werden, muß zentral oder für jeden Rollladen ein Helligkeitssensor definiert und die Helligkeitsgrenzwerte festgelegt sein (ASC_BrightnessSensor etc.), bei deren Überschreitung geöffnet bzw. Unterschreitung geschlossen werden soll.

Konfiguration des ASC-Devices

Sonnenstandsabhängige Fahrzeiten werden wie folgt aktiviert:

attr Rollladenautomatik ASC_autoAstroModeEvening CIVIL
attr Rollladenautomatik ASC_autoAstroModeMorning CIVIL

Aus der Angabe CIVIL und den Vorgaben in den einzelnen Rollladen wird dabei mit Hilfe von SUNRISE_EL die effektive Fahrzeit berechnet, dort finden sich auch weitere Hinweise, zu den meisten anderen Optionen für die ersten beiden Attribute. Bei allen Fensteröffnungen soll auf eine Lüften-Position gefahren werden, also schalten wir diese Funktion ebenfalls zentral an[5]:

attr Rollladenautomatik ASC_autoShuttersControlComfort on 

Zuletzt legen wir noch einen Temperatur-Sensor fest. Dieser wird beim Frostschutz sowie bei der Beschattung berücksichtigt.

attr Rollladenautomatik ASC_tempSensor Aussentemperatur_Nord:temperature
attr Rollladenautomatik ASC_freezeTemp 3
Info blue.png
Achtung: Für jede weitere Sensor-Information (z.B. zu Regen oder Wind) muß ein eigenes Device verwendet werden. Sollen unterschiedliche Readings desselben Sensors ausgewertet werden, müssen diese in ein eigenes Device übertragen werden, z.B. über einen readingsProxy mit gesetztem event-on-update-reading-Attribut (sonst triggert dieser nicht bei Aktualisierung des Readings)!


tbd:

  • Rain
  • Wind

Konfiguration der Rollladendevices

Info blue.png
Positionen dürfen sich innerhalb eines Rollos nicht überschneiden - Auch ASC_Closed_Pos 100 ASC_Shading_Pos 98 ASC_ComfortOpen_Pos 97 usw... sind bereits unterschiedliche Positionen.


Fahrzeiten

Zur Konfiguration der Fahrzeiten bietet es sich an, eine ReadingsGroup zu nutzen, wie unter Hilfsmittel dargestellt. Alternativ kann man die Zeiten auch manuell in den einzelnen Rollläden hinterlegen.

Bewohner

Wird ein Raum von einer oder mehreren bestimmten Person/en bewohnt oder gibt es ein Sammel-Gerät für mehrere Bewohner, kann dies mit den Attributen ASC_Roommate_Device und ASC_Roommate_Reading einem Rollladen zugeordnet werden. Ist einer der Bewohner asleep, wird morgens erst geöffnet, wenn auch der letzte Roommate nicht mehr asleep ist.

Fensterkontakte

Gegebenenfalls vorhandene Fensterkontakte werden mit ASC_WindowRec zugeordnet. Der dazugehörige Sensortyp wird mit ASC_WindowRec_subType festgelegt. Für threeState-Sensoren (auf, gekippt, zu) wird das übergreifende ASC_autoShuttersControlComfort beachtet. Bei vollständig geöffneten Fenster wird denn auf den in ASC_ComfortOpen_Pos festgelegten Wert gefahren.

Frostschutz

Zuletzt können die Attribute ASC_Antifreeze und ASC_Antifreeze_Pos festgelegt werden, wenn die Frostschutzfunktion aktiviert werden soll.

Beschattung

Konfiguration des ASC-Devices

Im ASC DEVICE das Reading "controlShading" auf on, sowie ein Astro/Twilight Device im Attribut "ASC_twilightDevice" und das Attribut "ASC_tempSensor" definieren.

Konfiguration der Rollladendevices

Es wird ein Helligkeitssensor als Attribut "ASC_BrightnessSensor" benötigt. Wird der Sensor nur für die Beschattung verwendet, ist der Wert DEVICENAME[:READING] ausreichend. Alle weiteren Attribute sind optional und wenn nicht gesetzt mit Default-Werten belegt. Sie sollten entsprechend der Gegebenheiten angepasst werden. Die Werte für die Fensterposition und den Vor-/Nachlaufwinkel (ASC_Shading_InOutAzimuth) sowie die Grenzwerte für ASC_shading_StateChange_SunnyCloudy sind besonders wichtig.

Bedingungen

Damit die Beschattung startet müssen alle Bedingungen erfüllt sein. Entschattet wird, sobald eine der Bedingungen wegfällt und die Zeit entsprechend ASC_Shading_WaitingPeriod abgelaufen ist.

Der Sonnensensor <ASC_BrightnessSensor> muss mindestens zwei Messwerte geliefert haben, bevor das ASC-Modul in die Beschattungsposition fährt! Beim (zeitlich) ersten Messwert wird der Zustand in-reserved gesetzt. Erst beim zweiten Messwert wechselt der Zustand nach in shading. Die Anzahl der berücksichtigten Messwerte ist abhängig vom "moving average window", der mit dem dritten Parameter des Attributs ASC_Shading_StateChange_SunnyCloudy konfiguriert wird.

Von Standardwerten ausgehend ist nachfolgender Ablauf angestrebt:

  1. Ein Event vom Astro oder Helligkeits Device kommt -> sind alle Werte innerhalb des Arbeitsbereiches, ändert sich der ASC Info-Zustand im Rollo von xx auf „in reserved“ (Beschattung vorbereitet)
  2. Ein erneutes Event vom Astro oder Helligkeits Device kommt -> Überprüfung der Werte -> sind diese weiterhin gegeben folgt der Wechsel von „in reserved“ auf „in“ (Beschattung aktiv)
  3. Bei Verwendung von ASC_Shading_StateChange_SunnyCloudy ist zu beachten, dass ein Durchschnitt über die letzten drei Brightness Events gerechnet wird. Möchte man das vermeiden muss man SUNNY:CLOUDY 1[2] setzen.
  4. Die Zeiten ASC_Shading_WaitingPeriod und ASC_BlockingTime_afterManual können hier zusätzlich für eine Verzögerung sorgen.

Wichtig zu beachten: Es müssen immer mehrere (mind. 2) Events für den Betrieb erfolgen. In den Standardeinstellungen vom Astro Modul erfolgt dieses z.B. nur 1 x pro Stunde. Kommt also ein Helligkeits-Event auch nur 1x pro Stunde, könnte es 2 Std dauern, bis die Beschattungsfunktion greift.

Wenn das Rollo einmal aus der Beschattung manuell (im Rollo Device muss bei ASC_ShuttersLastDrive manuel stehen gefahren wurde wird das Rollo erst wieder nach einer Entschattung und erneuter Beschattung gefahren. Also es muss einmal shading out kommen und beim nächsten shading in fährt er dann wieder.

Berücksichtigen der Innenraumtemperatur für die Beschattung

Soll die Beschattung nur dann fahren, wenn die Innenraumtemperatur einen Schwellwert überschreitet, lässt sich das mit einer Zeile Perl Code erreichen:

attr Rollo_OG_KiZ ASC_Shading_Pos { (ReadingsVal('Wetterstation', 'indoorTemperature', '21') <= 21 ? 100:25) }

Dieses Beispiel setzt die Beschattungsposition auf 100%, wenn die Innenraumtemperatur kleiner als 21°C ist und die Wetterstation sinnvolle Werte liefert (Rückfallwert 21°C), sonst 25%.

Weitere Funktionen

WeekendHoliday Funktion im Brightnessbetrieb

Am Wochenende oder Feiertag und wenn am ASC-Device sunriseTimeWeHoliday aktiviert sowie im Rollo das Attribut ASC_Time_Up_WE_Holiday gesetzt sind, wird zur angegebenen ASC_Time_Up_WE_Holiday Zeit das Rollo geöffnet, ungeachtet des Brightnesswertes.

Privacy

Werden hierfür Werte festgelegt, werden die betreffenden Rollläden die festgelegte Zeit/Helligkeit vor dem abendlichen Schließen vorab teilweise geschlossen. Dies kann z.B. gewünscht sein, um Rollläden zur Straße hin mit viel Fußgängerverkehr zwar nicht vollständig abzudunkeln, aber gleichzeitig zu verhindern, dass von außen in Wohnräume geschaut werden kann, sobald dort das Licht angeschaltet wird

BlockingTime

Bewirkt, dass nach einer manuellen Fahrt, eine vom ASC Modul initiierte Fahrt zunächst ausgesetzt wird, bis die im Attribute angegebene Zeit überschritten ist. Erst dann wird eine vom ASC Modul initiierte Fahrt tatsächlich durchgeführt. Genau so wird ein Hochfahren eines Rollos durch das ASC Modul nicht mehr ausgeführt, wenn es innerhalb der Zeit von ASC_BlockingTime_beforNightClose und das Runterfahren wird nicht mehr erfolgen, wenn es innerhalb von ASC_BlockingTime_beforDayOpen ist. Beispiel: Meine Tochter geht früh außer Haus und Ihre Rollos sind nicht hochgefahren. Diese fahren auch nicht mehr hoch, da die ausschließlich bei home (anwesend) fahren sollen. Nun kommt sie am Nachmittag um 16:23 Uhr nach Hause. Eigentlich sollten nun die Rollos fahren. Doch die Sonnenuntergangsfahrt (schließen) wäre schon 16:51 Uhr und damit innerhalb der 3600 ASC_BlockingTime_beforNightClose. Die Rollos bleiben also unten. Es lohnt sich für die paar Minuten einfach nicht mehr.

wiggle

Mit einem set <ASC-Device> wiggle können alle Rollladen mit einem entsprechenden Attribut zu einer kurzen Fahrt veranlasst werden, nach Ablauf von einer Minute wieder um denselben Wert zurück. Dabei wird jeweils in die Richtung gefahren, die den weiteren Weg ermöglicht. Wenn also zu 70% geschlossen ist, wird der Rollladen hoch fahren.

Partymode

Dieser wird am ASC-Device selbst aktiviert mittels set <ASC-Device> partyMode on. Alle Rollladen-Devices, welche das Attribut ASC_Partymode auf on gestellt haben, werden nicht mehr gesteuert. Der letzte Schaltbefehl, der durch ein Fensterevent oder Bewohnerstatus an die Rollläden gesendet wurde, beim Beenden des Modus durch set ASC-Device partyMode off ausgeführt.

lock-out

Man kann mit dem Befehl set <ASC-Device> hardLockOut auf einen Schlag alle Rollos sperren welche attr <ROLLO-Device> ASC_LockOut hard gesetzt haben. Das ist dafür gedacht, wenn Du eine gewisse Zeit den Rolloaktor sperren willst. Zum Beispiel das die Kinder nicht schalten sollen.

Sonstige Hinweise und Problemlösungen

  • Werden Attribute geändert, kann es vereinzelt vorkommen, dass das ASC-Modul dies nicht mitbekommt und das tatsächliche Verhalten nicht den Erwartungen entspricht. In so einem Fall empfielt es sich, das NOTIFYDEV nochmals aufbauen zu lassen. Dazu werden zunächst mit attr expert 1 erweiterte Informationen bezüglich des NotifyDevs unter set und get aktiviert und anschließend ein set <ASC-Modul> createNewNotifyDev ausgeführt.
  • Hin und wieder berichten Nutzer davon, wenn Sie die Privacy Funktion nutzen, dass sich im NOTIFYDEV anstelle des Device Namen ein Raumname befindet. Diese Problem kann damit gelöst werden, dass in dem betroffenen Rollo Device das Atribut attr event-on-change .* gesetzt wird.

Wichtig! Nicht verwechseln mit dem ASC Device dort darf attr event-on-change nicht gesetzt sein!

  • Wenn mehrere Rollladen gleichzeitig den Fahrbefehl bekommen, kann es (z. B. bei zwave) dazu kommen, dass ein Rollladen seinen Befehl nicht bekommt. Dies kann durch eine zeitverzögerte Aussendung der Fahrbefehle vermieden werden. Dazu in den jeweiligen Rollo Devices das Attribut ASC_Drive_DelayStart wie folgt benutzen im: ersten Rollo Device braucht das Attribut nicht gesetzt werden, im zweiten Rollo Device im Attribut ASC_Drive_DelayStart dann 4 Sekunden eintragen, im dritten Rollo Device im Attribut ASC_Drive_DelayStart 8 Sekunden eintragen, usw. Ein Abstand von 3-4 Sekunden ist dabei zielführend.

Spezielle Hardware

"Thread zu getesteter Hardware im Forum"

Weblinks

  1. Dabei müssen ggf. in global auch Angaben zu longitude und latitude vorhanden sein
  2. Es kann auch z.B. ein Dummy-Device verwendet werden, dieses sollte dann aber neben dem eigentlichen Feiertags-state auch in einem Reading tomorrow Angaben zu anstehenden Feiertagen enthalten.
  3. Bitte verfahren Sie entsprechend, wenn Urlaubs- oder Ferientage wie Feiertage behandelt werden sollen.
  4. ferien ist eine automatisiert erstellte holiday-Datei nach diesem Foren-Beitrag.
  5. Sonst wird bei threeState-Sensoren nur bei tilted auf die in ASC_Ventilate_Pos gefahren.