AutoShuttersControl

Aus FHEMWiki


Clock - Under Construction.svg An dieser Seite wird momentan noch gearbeitet.


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 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.

Basics

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


Zur Nutzung des Moduls sollten folgende andere FHEM-Devices vorhanden sein:

  • Rollläden
  • Fensterkontakte und
  • 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.
  • Optional:
    • Ein Helligkeitssensor (Steuerung nach Helligkeit und 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

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. Diese Attribute können auch nachträglich noch geändert werden.

Markieren 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

  • die Offen-Position kleiner ist als die Geschlossen-Position, also typischerweise 0 offen bedeutet und 100 für geschlossen steht
  • eine bestimmte Position mit position angefahren wird, also z.B. set <name> position 70.

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 set <name> pct 100. Typischer Vertreter dieses Typs sind HomeMatic (CUL_HM-) Geräte oder die Shelly2-Aktoren.

Einbinden in das ASC-Device

Nachdem man das obige Attribut bei einem oder mehreren Rollladen-Devices gesetzt hat, kann mit set <name> scanForShutters ein Suchlauf gestartet werden, mit dem dann diese Rollläden durch das Modul gefunden und in die Steuerungslogik eingebunden werden.

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 Beschreibung der Attribute ist in der commandref enthalten.

Readings

Readings im ASC-Device selbst

Name Datentyp/
Wertebereich
Bedeutung
..._nextAstroTimeEvent Uhrzeit des nächsten Astro-Events, Sonnenauf- oder Sonnenuntergang oder feste Zeit pro Rollonamen
..._lastPosValue zuletzt abgesetzter Fahrbefehl pro Rollonamen
..._lastDelayPosValue zuletzt abgesetzter Fahrbefehl, welcher beim nächsten zulässigen Event ausgeführt wird
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
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)
room_... Auflistung aller Rollläden, welche in den jeweiligen Räumen gefunden wurden, Bsp.: room_Schlafzimmer,Terrasse
state Status des <ASC-Device> active, enabled, disabled
sunriseTimeWeHoliday on,off legt fest, ob das Rolladendevice das Attribut AutoShuttersControl_Time_Up_WE_Holiday beachtet oder nicht
userAttrList rolled out Status der UserAttribute, welche an die Rollläden gesendet werden

Readings in den Rolllädendevices

Name Bedeutung
ASC_Time_DriveUp Sonnenaufgangszeit für das Rollo
ASC_Time_DriveDown Sonnenuntergangszeit für das Rollo
ASC_ShuttersLastDrive Grund des letzten Fahrens vom Rolladen

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

set-Anweisungen

Name Datentyp/
Wertebereich
Beschreibung
partyMode on, off aktiviert den globalen Partymodus. Siehe Reading partyMode
lockOut on, off aktiviert den globalen Aussperrschutz. Siehe Reading lockOut
renewSetSunriseSunsetTimer erneuert bei allen Rollläden die Zeiten für Sunset und Sunrise und setzt die internen Timer neu.
scanForShutters sucht alle FHEM Devices mit dem Attribut AutoShuttersControl 1 oder 2
sunriseTimeWeHoliday on,off aktiviert/deaktiviert die Beachtung des Attributes AutoShuttersControl_Time_Up_WE_Holiday für Rollladen-Devices
createNewNotifyDev Legt die interne Struktur für NOTIFYDEV neu an
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
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

get-Anweisungen

Name Beschreibung
showShuttersInformations zeigt eine Übersicht der Automatik-Fahrzeiten
showNotifyDevsInformations zeigt eine Übersicht der abgelegten NOTIFYDEV Struktur. Dient zur Kontrolle

Attribute

Info blue.png
Die Attributnamen haben sich teilweise geändert, nachfolgend ist noch ein Stand vor Modulversion 0.6.5.x wiedergegeben. Die aktuellen Benennungen sind der Commandref zu entnehmen.


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_antifreezeTemp Temperatur, ab welcher der Frostschutz greift und das Rollo nicht mehr fährt. Der letzte Fahrbefehl wird gespeichert
ASC_autoAstroModeEvening aktuell REAL, CIVIL, NAUTIC, ASTRONOMIC, HORIZON (in genau dieser Schreibweise)
ASC_autoAstroModeEveningHorizon Höhe über Horizont, wenn beim Attribut AutoShuttersControl_autoAstroModeEvening HORIZON ausgewählt
ASC_autoAstroModeMorning aktuell REAL, CIVIL, NAUTIC, ASTRONOMIC, HORIZON (in genau dieser Schreibweise)
ASC_autoAstroModeMorningHorizon Höhe über Horizont, wenn beim Attribut AutoShuttersControl_autoAstroModeMorning HORIZON ausgewählt
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_autoShuttersControlEvening on, off ob Abends die Rollläden automatisch zeitgesteuert werden sollen
ASC_autoShuttersControlMorning on, off ob Morgens die Rollläden automatisch zeitgesteuert werden sollen
ASC_temperatureReading Reading für die Außentemperatur
ASC_temperatureSensor Device für die Außentemperatur
ASC_timeUpHolidayDevice Device zur Urlaubserkennung oder Sonstiges / muss 0 oder 1 im Reading state beinhalten.
ASC_residentsDevice Devicenamen des Residents-Device der obersten Ebene
ASC_residentsDeviceReading Status Reading des Residents-Device der obersten Ebene
ASC_brightnessMinVal minimaler Lichtwert, bei dem Schaltbedingungen noch geprüft werden sollen
ASC_brightnessMaxVal maximaler Lichtwert, bei dem Schaltbedingungen noch geprüft werden sollen
ASC_rainSensorDevice Device, welches bei Regen getriggert wird
ASC_rainSensorReading das ensprechende Reading zum Regendevice
ASC_rainSensorShuttersClosedPos Position in pct, welche der Rollladen bei Regen anfahren soll
ASC_shuttersDriveOffset maximale zufällige Verzögerung in Sekunden bei der Berechnung der Fahrzeiten, 0 bedeutet keine Verzögerung
ASC_twilightDevice Device, welches Informationen zum Sonnenstand liefert, wird unter anderem für die Beschattung verwendet.
ASC_expert bei 1 werden erweiterte Informationen bezüglich des NotifyDevs unter set und get angezeigt

Attribute in den Rolllädendevices

Name Datentyp/
Wertebereich
Default-Wert Beschreibung
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_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_Antifreeze_Pos Position, die angefahren werden soll, wenn der Fahrbefehl komplett schließen lautet, aber der Frostschutz aktiv ist
ASC_AutoAstroModeEvening REAL, CIVIL, NAUTIC, ASTRONOMIC, HORIZON aktuell REAL,CIVIL,NAUTIC,ASTRONOMIC
ASC_AutoAstroModeEveningHorizon Höhe über Horizont, wenn beim Attribut ASC_autoAstroModeEvening HORIZON ausgewählt ist
ASC_AutoAstroModeMorning REAL, CIVIL, NAUTIC, ASTRONOMIC, HORIZON aktuell REAL,CIVIL,NAUTIC,ASTRONOMIC
ASC_AutoAstroModeMorningHorizon Höhe über Horizont, wenn beim Attribut ASC_autoAstroModeMorning HORIZON ausgewählt ist
ASC_Closed_Pos in 10er Schritten von 0 bis 100,default Vorgabe ist abhängig vom Attribut ASC
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_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_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_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_Open_Pos in 10er-Schritten von 0 bis 100, default Vorgabe ist abhängig vom Attribut ASC
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_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_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_Time_Down_Early Sunset früheste Zeit zum Runterfahren
ASC_Time_Down_Late Sunset späteste Zeit zum Runterfahren
ASC_Time_Up_Early Sunrise früheste Zeit zum Hochfahren
ASC_Time_Up_Late Sunrise späteste Zeit zum Hochfahren
ASC_Time_Up_WE_Holiday Sunrise früheste Zeit zum Hochfahren am Wochenende und/oder Urlaub (holiday2we wird beachtet).
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_Ventilate_Pos in 10er-Schritten von 0 bis 100, default Vorgabe ist abhängig vom Attribut ASC
ASC_Ventilate_Window_Open auf lüften, wenn das Fenster gekippt/geöffnet wird und aktuelle Position unterhalb der Lüften-Position ist
ASC_WindowRec Name des Fensterkontakts, an welchen Fenster der Rollladen angebracht ist. Sein Reading state muss die Werte open, closed oder tilted enthalten.
ASC_WindowRec_subType Typ des verwendeten Fensterkontakts: twostate (optisch oder magnetisch) oder threestate (Drehgriffkontakt)
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_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_Self_Defense_Exclude on, off bei on wird dieser Rolladen bei aktiven selfDefence und offenen Fenster nicht runter gefahren, wenn Residents absent ist
ASC_Shading_Brightness_Sensor Sensor-Device, welches für die Lichtwerte verwendet wird. ACHTUNG! Findet auch Verwendung bei ASC_Down - brightness
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_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_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_WiggleValue Wert, um welchen sich die Position des Rollladens bei Wiggle ändern soll
ASC_BlockingTime_afterManual Wartezeit in Sekunden, die die Automatik nach einer manuellen Fahrt aussetzen soll
ASC_BlockingTime_beforNightClose Vorgabezeit in Sekunden, innerhalb derer vor dem nächtlichen Schließen keine Öffnen-Fahrt mehr ausgeführt werden soll
ASC_BlockingTime_beforDayOpen Vorgabezeit in Sekunden, innerhalb derer vor dem morgendlichen Öffnen keine Schließen-Fahrt mehr ausgeführt werden soll
ASC_Shading_Direction Position in Grad, auf der das Fenster liegt - genau Osten wäre 90, Süden 180 und Westen 270
ASC_Shading_Pos Position des Rollladens für die Beschattung
ASC_Shading_Angle_Left Vorlaufwinkel im Bezug zum Fenster, ab wann abgeschattet wird. Beispiel: Fenster 180° - 85° ==> ab Sonnenpos. 95° wird abgeschattet
ASC_Shading_Angle_Right Nachlaufwinkel im Bezug zum Fenster, bis wann abgeschattet wird. Beispiel: Fenster 180° + 85° ==> bis Sonnenpos. 265° wird abgeschattet
ASC_Shading_Mode absent,always,off,home / Vorgabe, wann Beschattungsaktionen durchzuführen sind
ASC_Shading_StateChange_Sunny Brightness Wert ab welchen Beschattung statt finden soll, immer in Abhängikkeit der anderen einbezogenden Sensorwerte
ASC_Shading_StateChange_Cloudy Brightness Wert ab welchen die Beschattung aufgehoben werden soll, immer in Abhängikkeit der anderen einbezogenden Sensorwerte
ASC_Shading_Min_Elevation ab welcher Höhe des Sonnenstandes soll beschattet werden, immer in Abhängikkeit der anderen einbezogenden Sensorwerte
ASC_Shading_Min_OutsideTemperature ab welcher Temperatur soll Beschattet werden, immer in Abhängikkeit der anderen einbezogenden Sensorwerte
ASC_Shading_WaitingPeriod wie viele Sekunden soll gewartet werden bevor eine weitere Auswertung der Sensordaten für die Beschattung statt finden soll
ASC_PrivacyDownTime_beforNightClose wie viele Sekunden vor dem abendlichen schlie&zlig;en soll der Rollladen in die Sichtschutzposition fahren, -1 bedeutet das diese Funktion unbeachtet bleiben soll
ASC_PrivacyDown_Pos Position den Rollladens für den Sichtschutz

Hilfsmittel

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


Interne Übersicht

Beispiel
define ASC_Jalousie_Info weblink htmlCode {AutoShuttersControl::GetShuttersInformation($defs{'JalousieControl'})}



Info blue.png
Codezeilen sind im RAW-Format.


readingsGroup für Level

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.


 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

Beispiel
 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 für die Beschattung

Beispiel
defmod rg_ASC_Rolllaeden_Shading readingsGroup <Gerät>,<Modus>,<Position>,<Richtung>,<°links>,<°rechts>,<Elevation>,<Sunny>,<Cloudy>,<Min Temp> (Rollo|Jalousie)_.*..:!?ASC_Shading_Mode,!?ASC_Shading_Pos,!?ASC_Shading_Direction,!?ASC_Shading_Angle_Left,!?ASC_Shading_Angle_Right,!?ASC_Shading_MinMax_Elevation,!?ASC_Shading_StateChange_Sunny,!?ASC_Shading_StateChange_Cloudy,!?ASC_Shading_Min_OutsideTemperature
attr rg_ASC_Rolllaeden_Shading alias Rollläden: Beschattung
attr rg_ASC_Rolllaeden_Shading commands {ASC_Shading_Pos => 'ASC_Shading_Pos:knob,min:0,max:100,width:50,height:50,fgColor:#FF9900,bgColor:#CCCCCC,step:5,lineCap:round',\
ASC_Shading_Mode => 'ASC_Shading_Mode:always,home,absent,off',\
ASC_Shading_Direction => 'ASC_Shading_Direction:knob,min:0,max:360,width:50,height:50,fgColor:#FF9900,bgColor:#CCCCCC,step:1,cursor:true,lineCap:round',\
ASC_Shading_Angle_Left => 'ASC_Shading_Angle_Left:knob,min:0,max:85,angleArc:85,rotation:anticlockwise,width:50,height:50,fgColor:#FF9900,bgColor:#CCCCCC,step:5,lineCap:round,angleOffset:270',\
ASC_Shading_Angle_Right => 'ASC_Shading_Angle_Right:knob,min:0,max:85,angleArc:85,width:50,height:50,fgColor:#FF9900,bgColor:#CCCCCC,step:5,lineCap:round,',\
ASC_Shading_MinMax_Elevation => 'ASC_Shading_MinMax_Elevation:knob,min:0,max:35,width:50,height:50,fgColor:#FF9900,bgColor:#CCCCCC,step:1,lineCap:round,angleArc:120,angleOffset:270',\
ASC_Shading_StateChange_Sunny => 'ASC_Shading_StateChange_Sunny:knob,min:100,max:1200,angleArc:85,rotation:anticlockwise,width:50,height:50,fgColor:#FF9900,bgColor:#CCCCCC,step:20,lineCap:round,angleOffset:270',\
ASC_Shading_StateChange_Cloudy => 'ASC_Shading_StateChange_Cloudy:knob,min:100,max:1200,angleArc:85,width:50,height:50,fgColor:#FF9900,bgColor:#CCCCCC,step:20,lineCap:round,',\
ASC_Shading_Min_OutsideTemperature => 'ASC_Shading_Min_OutsideTemperature:knob,min:5,max:30,width:50,height:50,fgColor:#FF9900,bgColor:#CCCCCC,step:0.5,lineCap:round,angleArc:120,angleOffset:270'}
attr rg_ASC_Rolllaeden_Shading room Rollladen


Anderes Foren-Beispiel für eine RG zu Beschattung (für V. 0.6.x):

Beispiel
defmod rg_ASC_Shading readingsGroup <Gerät>,<Grad>,<Position>,<Mode>,<Links>,<Rechts>,<Wait>,<ShadeIn>,<ShadeOut>,<Elevation>,<Temperature>,<Device>\
(Rollo_.*|Jalousie.*):!?ASC_Shading_Direction,!?ASC_Shading_Pos,!?ASC_Shading_Mode,!?ASC_Shading_Angle_Left,!?ASC_Shading_Angle_Right,!?ASC_Shading_WaitingPeriod,!?ASC_Shading_StateChange_Sunny,!?ASC_Shading_StateChange_Cloudy,!?ASC_Shading_MinMax_Elevation,!?ASC_Shading_Min_OutsideTemperature,!?ASC_BrightnessSensor\

attr rg_ASC_Shading commands {ASC_Shading_Direction => 'ASC_Shading_Direction:129,255,309',\
ASC_Shading_Pos => 'ASC_Shading_Pos:selectnumbers,0,5,100,0,lin',\
ASC_Shading_Mode => 'ASC_Shading_Mode:absent,always,off,home',\
ASC_Shading_Angle_Left => 'ASC_Shading_Angle_Left:selectnumbers,0,5,100,0,lin',\
ASC_Shading_Angle_Right => 'ASC_Shading_Angle_Right:selectnumbers,0,5,100,0,lin',\
ASC_Shading_WaitingPeriod => 'ASC_Shading_WaitingPeriod:selectnumbers,0,60,1200,0,lin',\
ASC_Shading_StateChange_Sunny => 'ASC_Shading_StateChange_Sunny:selectnumbers,0,20,1000,0,lin',\
ASC_Shading_StateChange_Cloudy => 'ASC_Shading_StateChange_Cloudy:selectnumbers,0,20,1000,0,lin',\
ASC_Shading_MinMax_Elevation =>\
'ASC_Shading_Min_Elevation:selectnumbers,0,1,40,0,lin' ,\
ASC_Shading_Min_OutsideTemperature =>\
'ASC_Shading_Min_OutsideTemperature:selectnumbers,0,1,30,0,lin'}
attr rg_ASC_Shading room Rollladen

readingsGroup für FIBARO Roller Shutter FGR-222 Devices

Info green.pngGetestet von majestro84 https://forum.fhem.de/index.php/topic,92628.msg897099.html#msg897099; Stand 2019-01-28. 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

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 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 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: 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. Dann verteilen wir mir

set Rollladenautomatik scanForShutters

die nachfolgend weiter zu bearbeitenden Attribute.

Schließen morgens und abends

Info green.pngAlternative: Fahren nach brightness: Will man insgesamt oder nur an einzelnen Rollläden stattdessen helligkeitsgesteuert fahren, muß für jeden Rollladen ein Helligkeitssensor definiert und entweder zentral oder am einzelnen Rollladen jeweils ein Höchst- bzw. Mindestwert festgelegt werden (ASC_BrightnessMinVal etc.), bei dessen Überschreitung geöffnet bzw. Unterschreitung geschlossen werden soll.

Konfiguration des ASC-Devices

Da wir sonnenstandsabhängig Fahrzeiten wollen, legen wir erst einmal fest, dass dies morgens und abends berücksichtigt werden soll:

attr Rollladenautomatik ASC_autoAstroModeEvening CIVIL
attr Rollladenautomatik ASC_autoAstroModeMorning CIVIL
attr Rollladenautomatik ASC_autoShuttersControlEvening on
attr Rollladenautomatik ASC_autoShuttersControlMorning on

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_temperatureSensor Aussentemperatur_Nord
attr Rollladenautomatik ASC_temperatureReading temperature
attr Rollladenautomatik ASC_freezeTemp 3

tbd:

  • Rain
  • Wind

Konfiguration der Rollladendevices

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

Dann werden ggf. vorhandene Fensterkontakte zugeordnet und der Typ festgelegt, wobei im Falle von threeState-Sensoren das übergreifende ASC_autoShuttersControlComfort beachtet wird, wobei dann bei vollstäniger Öffnung des Fensters auf den in ASC_ComfortOpen_Pos festgelegten Wert gefahren wird.

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

Benötigt werden Informationen zum Sonnenstand. Hierfür wird ein astro- oder twilight-Device benötigt. Ist ein solches definiert, wird dies - ggf. auch nach einem Neustart vom Modul automatisch erkannt und in das Attribut ASC_twilightDevice eingetragen. Wir legen daher zunächst ein entsprechendes Device an bzw. passen die Angabe ggf. an, wenn ein anderes als das eingetragene genutzt werden soll. Weiter ist ein Temperatursensor für die Beschattung festzulegen (ASC_temperatureSensor.*-Attribute) wie bereits oben beschrieben.

Konfiguration der Rollladendevices

Zum einen legt man einen Helligkeitssensor fest (ASC_Brightness_Sensor und ASC_Brightness_Reading). Dieser ist der eigentliche Trigger. 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 stattfinden soll, die Schwellwerte werden in ASC_Shading_StateChange_Sunny (Beschattung soll eingeschaltet werden) und ASC_Shading_StateChange_Cloudy (Beschattung soll beendet werden) festgelegt, wobei immer nur gefahren wird, wenn auch alles andere - insbesondere die Mindesthöhe des Sonnenstands (ASC_Shading_Min_Elevation) und die Mindesttemperatur ASC_Shading_Min_OutsideTemperature - passt. Dann sind die Winkelangaben festzulegen, ggf. kann ein Kompass zu Hilfe genommen werden (ASC_Shading_Direction ist die Richtung des Fensters, 90 Grad entspricht Ost, 180 Grad Süden, ASC_Shading_Angle_Left ist der Sonneneintritt ins Zimmer, wird von -Direction abgezogen, ASC_Shading_Angle_Right hat diesselbe Funktion für den Austrittswinkel.

Weitere Funktionen

Privacy

Werden hierfür Werte festgelegt, werden die betreffenden Rollläden die festgelegte Zeit 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 wird eine vom ASC Modul initiierte Fahrt zunächst ausgesetzt wird, bis die im Attribute angegebene Zeit überschritten ist. Erst dann wird eine dann 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 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.

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

(tbd auch hier: Doku ist etwas verteilt, könnte man im Wiki jeweils unter einem eigenen Unterabschnitt im Zusammenhang darstellen)

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 (ASC_ShuttersPlace terrace) der Rollladen runter gefahren. Weitere Attribute dazu: ASC_Self_Defense_Exclude


Sonstige Hinweise

  • 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 mit set <ASC-Modul> createNewNotifyDev.

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.