<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>http://wiki.fhem.de/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Stephan1965</id>
	<title>FHEMWiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.fhem.de/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Stephan1965"/>
	<link rel="alternate" type="text/html" href="http://wiki.fhem.de/wiki/Spezial:Beitr%C3%A4ge/Stephan1965"/>
	<updated>2026-04-13T00:13:53Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Modul_Shelly&amp;diff=35530</id>
		<title>Modul Shelly</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Modul_Shelly&amp;diff=35530"/>
		<updated>2021-04-16T09:08:02Z</updated>

		<summary type="html">&lt;p&gt;Stephan1965: Aktualisierung der attr model&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Das Modul 36_Shelly.pm stellt ein Interface zur Bedienung von Shelly Devices zur Verfügung&lt;br /&gt;
|ModType=d&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
|ModCmdRef=Shelly&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModFTopic=118446&lt;br /&gt;
|ModTechName=36_Shelly.pm&lt;br /&gt;
|ModOwner=Prof. Dr. Peter A. Henning&lt;br /&gt;
}}&lt;br /&gt;
Auf dieser Seite werden die Aktoren des bulgarischen Herstellers Allterco Robotics beschrieben ((Markenname Shelly) sowie deren Ansteuerung mit FHEM und aufgetretene Probleme. &lt;br /&gt;
Für Supportanfragen bitte &#039;&#039;{{Link2Forum|Topic=118446.0|LinkText=diesen Forenthread}}&#039;&#039; verwenden.&lt;br /&gt;
{{Baustelle}}&lt;br /&gt;
&#039;&#039;&#039;Achtung: Diese Seite ist teilweise veraltet, insbesondere unterstützt das Modul weitere Aktoren. Bitte Commandref lesen - diese Seite ist in Überarbeitung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Es handelt sich um IP-basierte Schalt- und Dimmaktoren, die auf verschiedene Weise angesteuert werden können &lt;br /&gt;
*über die Web-Oberfläche des eingebauten Mikro-Webservers,&lt;br /&gt;
*über eine proprietäre App des Herstellers (Achtung, Cloud!),&lt;br /&gt;
*über das hier beschriebene FHEM-Modul 36_Shelly.pm&lt;br /&gt;
*über MQTT&lt;br /&gt;
Ein Teil der Aktoren verfügt über eine eingebaute Leistungsmessung.&lt;br /&gt;
&lt;br /&gt;
== Geräteübersicht ==&lt;br /&gt;
{| class=&amp;quot;wikitable mw-datatable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:50px&amp;quot; |Modell&lt;br /&gt;
! style=&amp;quot;width:50px&amp;quot; |Typ&lt;br /&gt;
! style=&amp;quot;width:20px&amp;quot; |Schaltkanäle&lt;br /&gt;
! style=&amp;quot;width:20px&amp;quot; |Dimmkanäle&lt;br /&gt;
! style=&amp;quot;width:20px&amp;quot; |Messkanäle&lt;br /&gt;
! style=&amp;quot;width:650px&amp;quot; |Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
|Shelly1&lt;br /&gt;
|Schalter&lt;br /&gt;
|1&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Shelly1PM&lt;br /&gt;
|Schalter mit Leistungsmessung&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|1 &lt;br /&gt;
|-&lt;br /&gt;
|ShellyPlug, ShellyPlugS&lt;br /&gt;
|Schalter mit Leistungsmessung&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|1 &lt;br /&gt;
|-&lt;br /&gt;
|ShellyEM&lt;br /&gt;
|Leistungsmessung&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|2 &lt;br /&gt;
|-&lt;br /&gt;
|Shelly2&lt;br /&gt;
|Schalter/Rollladenaktor &lt;br /&gt;
|2/1&lt;br /&gt;
|&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|Shelly2.5&lt;br /&gt;
|Schalter/Rollladenaktor &lt;br /&gt;
|2/1&lt;br /&gt;
|&lt;br /&gt;
|2&lt;br /&gt;
|-&lt;br /&gt;
|Shelly4Pro&lt;br /&gt;
|Schalter &lt;br /&gt;
|4&lt;br /&gt;
|&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|ShellyRGBW&lt;br /&gt;
|Dimmer &lt;br /&gt;
|&lt;br /&gt;
|4&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|ShellyDimmer&lt;br /&gt;
|Dimmer &lt;br /&gt;
|&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Einbindung in FHEM ==&lt;br /&gt;
*Schließen Sie den Aktor nach Vorschrift an&lt;br /&gt;
*Suchen Sie mit einem WLAN-fähigen Gerät (Laptop oder Smartphone) nach dem internen Access Point, der durch den Aktor erzeugt wird. Typischerweise hat dieser eine SSID ähnlich wie&lt;br /&gt;
 shelly1-..., shellyswitch-..., shelly4pro-..., &lt;br /&gt;
*Verbinden Sie Ihr Gerät mit diesem Access Point. Typischerweise bekommt Ihr Gerät dabei die IP-Adresse 192.168.33.2 zugewiesen. &lt;br /&gt;
*Im Browser dieses Gerätes einfach die IP-Adresse 192.168.33.1 aufrufen - das ist der Shelly selbst, in dieser Web-Oberfläche kann man alles konfigurieren. &lt;br /&gt;
**Internen Access Point abschalten&lt;br /&gt;
**Shelly ins häusliche WLAN anmelden. Mit fester IP-Adresse &amp;lt;shelly-ip&amp;gt; natürlich...&lt;br /&gt;
**Testen: Ihr Gerät wieder mit dem häuslichen WLAN verbinden, und im Browser die Adresse &amp;lt;shelly-ip&amp;gt; aufrufen&lt;br /&gt;
*In FHEM definieren&lt;br /&gt;
 define myShelly Shelly &amp;lt;shelly-ip&amp;gt;&lt;br /&gt;
*Auf der Detailseite des Devices muss unbedingt noch das Attribut &amp;lt;code&amp;gt;model&amp;lt;/code&amp;gt; gesetzt werden:&lt;br /&gt;
 attr myShelly model shellyrgbw|shellydimmer|shelly2.5|generic|shelly2|shellyem|shelly4|shellyplug|shelly1|shellybulb|shelly1pm|shellyuni&lt;br /&gt;
Falls es sich um einen Shelly2 oder 2.5 handelt, muss ferner das Attribut &amp;lt;code&amp;gt;mode&amp;lt;/code&amp;gt; auf &amp;quot;roller&amp;quot; oder &amp;quot;relay&amp;quot; gesetzt werden. Mit diesem Modul können alle Daten übertragen und (prinzipiell) alle Konfigurationsänderungen durchgeführt werden, außerdem ist es auf einfachste Weise zu installieren. Das Modul pollt im per Attribut &amp;lt;code&amp;gt;interval&amp;lt;/code&amp;gt; einstellbaren Abstand zyklisch den Aktor auf Statusänderungen (Wert 0 =&amp;gt; kein Polling). Damit der Aktor im Stande ist, irgendwelche Zustandsänderungen &#039;&#039;von sich aus&#039;&#039; an FHEM zu melden, müssen diese als REST-Befehle (also URL-Aufrufe, für Nicht-Experten) in der Konfigurationsoberfläche des Shelly-Aktors eingetragen werden. Siehe CommandRef.&lt;br /&gt;
&lt;br /&gt;
Zum Betrieb ist ferner noch zu bemerken, dass das Modul zwar meldet, ob ein Firmware-Update nötig ist - ausgelöst werden muss dieses aber über die Web-Oberfläche des Shelly selber.&lt;br /&gt;
&lt;br /&gt;
=== MQTT ===&lt;br /&gt;
MQTT (Message Queue Telemetry Transport) ist ein nachrichtenbasiertes Protokoll, bei dem Geräte (Devices) nicht direkt miteinander, sondern mit einem zentralen MQTT-Server (in alter Nomenklatur &#039;&#039;Broker&#039;&#039; genannt) kommunizieren. Eine kurze Einführung in MQTT findet man auf der Seite [[MQTT Einführung]]. Mit entsprechend gesetzten Attributen lassen sich die Shelly-Aktoren auch steuern, für Anfnger ist das allerdings nicht unbedingt zu empfehlen.&lt;/div&gt;</summary>
		<author><name>Stephan1965</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=AutoShuttersControl&amp;diff=34237</id>
		<title>AutoShuttersControl</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=AutoShuttersControl&amp;diff=34237"/>
		<updated>2020-11-16T08:53:25Z</updated>

		<summary type="html">&lt;p&gt;Stephan1965: Daten zum Sonnenstand für die Beschattung können z. B. auf dieser Webseite ermittelt werden.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Baustelle}}&lt;br /&gt;
{{Infobox Modul&lt;br /&gt;
|ModPurpose=Steuerung von Rollläden&lt;br /&gt;
|ModCategory=Automatisierung&lt;br /&gt;
|ModType=d&lt;br /&gt;
|ModForumArea=Automatisierung&lt;br /&gt;
|ModTechName=73_AutoShuttersControl.pm&lt;br /&gt;
|ModOwner=CoolTux ({{Link2FU|13684|Forum}}/[[Benutzer Diskussion:CoolTux|Wiki]])}}&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
== Basics ==&lt;br /&gt;
{{Hinweis|Das Modul befindet sich derzeit noch in der Entwicklung; der derzeit aktuelle Stand ist  diesem {{Link2Forum|Topic=112325|LinkText=&amp;quot;Thread im Forum&amp;quot;}} zu entnehmen.}}&lt;br /&gt;
Zur Nutzung des Moduls sollten folgende andere FHEM-Devices vorhanden sein:&lt;br /&gt;
* Rollläden&lt;br /&gt;
* Fensterkontakte und &lt;br /&gt;
* Bewohnerstatus auf Basis von Residents/Roomates in englisch. Ersatzweise andere Devices, z.B. Dummys, welche als &#039;&#039;state&#039;&#039; &#039;&#039;home&#039;&#039;, &#039;&#039;absent&#039;&#039;, &#039;&#039;asleep&#039;&#039;, &#039;&#039;gotosleep&#039;&#039; und &#039;&#039;awoken&#039;&#039; setzen sowie ein Reading &#039;&#039;lastState&#039;&#039;.&lt;br /&gt;
* Optional:&lt;br /&gt;
** Ein Helligkeitssensor (Steuerung nach Helligkeit und Beschattung)&lt;br /&gt;
** Ein Device zur Bestimmung des Sonnenstands (nur für Beschattung). Unterstützt werden derzeit [[Modul Astro|Astro]] und [[Twilight]]&amp;lt;ref&amp;gt;Dabei müssen ggf. in [[Global|global]] auch Angaben zu &#039;&#039;longitude&#039;&#039; und &#039;&#039;latitude&#039;&#039; vorhanden sein&amp;lt;/ref&amp;gt;. &lt;br /&gt;
** 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&amp;lt;ref&amp;gt;Es kann auch z.B. ein Dummy-Device verwendet werden, dieses sollte dann aber neben dem eigentlichen Feiertags-&#039;&#039;state&#039;&#039; auch in einem Reading &#039;&#039;tomorrow&#039;&#039; Angaben zu anstehenden Feiertagen enthalten.&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;Bitte verfahren Sie entsprechend, wenn Urlaubs- oder Ferientage wie Feiertage behandelt werden sollen.&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Die Einrichtung des Moduls bzw. dessen Funktionalität erfolgt in mehreren Schritten:&lt;br /&gt;
* Definition des ASC-Devices&lt;br /&gt;
* Einstellung zentraler Vorgaben am ASC-Device&lt;br /&gt;
* Markieren der zukünftig zu steuernden Rollladen-Devices&lt;br /&gt;
* Einbinden der Rollladen-Devices in das ASC-Device&lt;br /&gt;
* Einstellen der individuellen Vorgaben je Rollladen (am Rollladen-Device)&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
== Einrichtung ==&lt;br /&gt;
{{Hinweis|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.}}&lt;br /&gt;
&lt;br /&gt;
=== Vorbereitung ===&lt;br /&gt;
Zunächst sollten die in den [[#Basics|Basics]] beschriebenen Geräte vorhanden und funktionsfähig sein. &lt;br /&gt;
&lt;br /&gt;
=== Define des ASC-Devices ===&lt;br /&gt;
Es genügt ein einfaches define ohne weitere Parameter.&lt;br /&gt;
&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; AutoShuttersControl&amp;lt;/code&amp;gt;&lt;br /&gt;
Dies bewirkt neben der Anlage des Devices selbst auch, dass als weiteres globales Attribut &#039;&#039;ASC&#039;&#039; verfügbar wird.&lt;br /&gt;
&lt;br /&gt;
=== Einstellung zentraler Vorgaben ===&lt;br /&gt;
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.&lt;br /&gt;
Diese Attribute können auch nachträglich noch geändert werden.&lt;br /&gt;
&lt;br /&gt;
=== Markieren zu steuernder Rollladen-Devices ===&lt;br /&gt;
Um einen oder mehrere Rollläden durch das ASC-Device zu steuern, wird für jeden Rollladen jeweils das neue globale Attribut &#039;&#039;ASC&#039;&#039; gesetzt. Der Wert ist mit 1 oder 2 festzulegen, wobei &#039;&#039;&#039;1&#039;&#039;&#039; bedeutet, dass &lt;br /&gt;
* die Offen-Position kleiner ist als die Geschlossen-Position, also typischerweise 0 &#039;&#039;offen&#039;&#039; bedeutet und 100 für &#039;&#039;geschlossen&#039;&#039; steht&lt;br /&gt;
* eine bestimmte Position mit &#039;&#039;&#039;position&#039;&#039;&#039; angefahren wird, also z.B. &amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; position 70&amp;lt;/code&amp;gt;.&lt;br /&gt;
Dies ist z.B. die  passende Wahl für ROLLO-Devices&lt;br /&gt;
&lt;br /&gt;
Die &#039;&#039;&#039;2&#039;&#039;&#039; steht für ein umgekehrtes Verhalten und den Befehlsteil &#039;&#039;pct&#039;&#039;, also &#039;&#039;offen&#039;&#039; für &amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; pct 100&amp;lt;/code&amp;gt;. Typischer Vertreter dieses Typs sind HomeMatic (CUL_HM-) Geräte oder die Shelly2-Aktoren.&lt;br /&gt;
&lt;br /&gt;
Aus dieser Vorgabe leitet das Modul dann jeweils bestimmte Voreinstellungen (&#039;&#039;defaults&#039;&#039;) für den Rolladen ab, ohne dass die betreffenden, dafür vorgesehenen Attribute ausdrücklich gesetzt werden müssen. 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. &#039;&#039;dim 99&#039;&#039; für vollständiges Öffnen eines ZWave-Aktors).&lt;br /&gt;
{{Hinweis|Das Vorstehende gilt jeweils für den nicht-invertierten Modus! Wer z.B. ein HomeMatic-Gerät mit &#039;&#039;levelinverse&#039;&#039; betreibt, sollte &#039;&#039;ASC&#039;&#039; auf &amp;quot;1&amp;quot; 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 &#039;&#039;position&#039;&#039; oder &#039;&#039;pct&#039;&#039; kann auch später über ein weiteres Attribut passend eingestellt werden.}}&lt;br /&gt;
&lt;br /&gt;
=== Einbinden in das ASC-Device ===&lt;br /&gt;
Nachdem man das obige Attribut bei einem oder mehreren Rollladen-Devices gesetzt hat, kann mit &lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; scanForShutters&amp;lt;/code&amp;gt; ein Suchlauf gestartet werden, mit dem dann diese Rollläden durch das Modul gefunden und in die Steuerungslogik eingebunden werden.&lt;br /&gt;
&lt;br /&gt;
=== Einstellen der individuellen Vorgaben ===&lt;br /&gt;
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. &lt;br /&gt;
Die Beschreibung der Attribute ist in der commandref enthalten.&lt;br /&gt;
&lt;br /&gt;
== Readings ==&lt;br /&gt;
&lt;br /&gt;
===Readings im ASC-Device selbst ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR /&amp;gt;Wertebereich !! Bedeutung  &lt;br /&gt;
|-&lt;br /&gt;
|..._nextAstroTimeEvent || || Zeit wird abhängig von der eingestellten Attribute ASC_Time_Up/ASC_Time_Down angezeigt. Bei &#039;&#039;astro&#039;&#039; die Uhrzeit des  Sonnenauf- oder Sonnenuntergang, bei &#039;&#039;time&#039;&#039; und &#039;&#039;brightness&#039;&#039; die Zeit aus ASC_Time_Up_Early/ASC_Time_Down_Late pro Rollonamen&lt;br /&gt;
|-&lt;br /&gt;
|..._lastPosValue || || Position pro Rollonamen bevor ASC die Rolläden verfahren hat&lt;br /&gt;
|-&lt;br /&gt;
|..._PosValue || ||aktuelle Position pro Rollonamen&lt;br /&gt;
|-&lt;br /&gt;
|ascEnable||on, off ||globale ASC Steuerung bei den Rollläden aktiv oder inaktiv&lt;br /&gt;
|-&lt;br /&gt;
|controlShading||on, off ||globale Beschattungsfunktion aktiv oder inaktiv&lt;br /&gt;
|-&lt;br /&gt;
|hardLockOut || on, off ||Status des hardwareseitigen Aussperrschutzes / gilt nur für Rolläden mit dem Attribut bei denen das Attributs ASC_LockOut entsprechend auf hard gesetzt ist&lt;br /&gt;
|-&lt;br /&gt;
|selfDefense || on, off ||globale Selbstschutzfunktion aktiv oder inaktiv&lt;br /&gt;
|-&lt;br /&gt;
|partyMode ||on, off || globaler Partymodus aktiv oder inaktiv&lt;br /&gt;
|-&lt;br /&gt;
|state || ||Status des ASC-Devices: active, enabled, disabled oder weitere Statusinformationen wie z.B. Grund der letzen Fahrt&lt;br /&gt;
|-&lt;br /&gt;
|room_... || ||Auflistung aller Rollläden, welche in den jeweiligen Räumen gefunden wurden, Bsp.: room_Schlafzimmer,Terrasse&lt;br /&gt;
|-&lt;br /&gt;
|sunriseTimeWeHoliday|| on,off ||globale Wochenendunterstützung aktiv oder inaktiv&lt;br /&gt;
|-&lt;br /&gt;
|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.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Readings in den Rolllädendevices ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Bedeutung  &lt;br /&gt;
|-&lt;br /&gt;
|ASC_Enable ||Status von ASC_Enable (on,off)&lt;br /&gt;
|-&lt;br /&gt;
|ASC_ShuttersLastDrive ||Grund des letzten Fahrens des Rolladens&lt;br /&gt;
|-&lt;br /&gt;
|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 &lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==set- und get-Befehle für das ASC-Device==&lt;br /&gt;
&lt;br /&gt;
=== set-Anweisungen ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR /&amp;gt;Wertebereich !! Beschreibung  &lt;br /&gt;
|-&lt;br /&gt;
|advDriveDown ||on, off ||holt bei allen Rollläden durch ASC_Adv on ausgesetzte Fahrten nach&lt;br /&gt;
|-&lt;br /&gt;
|ascEnable||on, off ||Aktiviert oder deaktiviert die globale ASC-Steuerung&lt;br /&gt;
|-&lt;br /&gt;
|controlShading||on, off ||Aktiviert oder deaktiviert die globale Beschattungssteuerung&lt;br /&gt;
|-&lt;br /&gt;
|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.)&lt;br /&gt;
|-&lt;br /&gt;
|hardLockOut ||on, off ||Aktiviert den hardwareseitigen Aussperrschutz für die Rollläden, bei denen das Attributs ASC_LockOut entsprechend auf hard gesetzt ist. Mehr Informationen in der Beschreibung bei den Attributen für die Rollladengeräten.&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|renewAllTimer || ||erneuert bei allen Rollläden die Zeiten gemäß ASC_UP/ASC_DOWN und setzt die internen Timer neu.&lt;br /&gt;
|-&lt;br /&gt;
|renewTimer || ||erneuert bei dem ausgewählten Rolladen die Zeiten gemäß ASC_UP/ASC_DOWN und setzt die internen Timer neu.&lt;br /&gt;
|-&lt;br /&gt;
|scanForShutters || ||sucht alle FHEM Devices mit dem Attribut &#039;&#039;ASDC&#039;&#039; &#039;&#039;1&#039;&#039; oder &#039;&#039;2&#039;&#039; und legt diese im ASC-Modul an&lt;br /&gt;
|-&lt;br /&gt;
|selfDefence ||on, off||Aktiviert bzw. deaktiviert die Selbstschutzfunktion. Beispiel 1: Wenn das Residents-Gerät &#039;&#039;gone&#039;&#039; 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.&lt;br /&gt;
|-&lt;br /&gt;
|shutterASCenableToggle ||  ||Aktivieren oder deaktivieren der ASC Kontrolle beim einzelnen Rollladens&lt;br /&gt;
|-&lt;br /&gt;
|sunriseTimeWeHoliday || on,off ||Aktiviert die Wochenendunterstützung und somit, ob im Rollladen das Attribut ASC_Time_Up_WE_Holiday beachtet werden soll oder nicht.&lt;br /&gt;
|-&lt;br /&gt;
|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.&lt;br /&gt;
|-&lt;br /&gt;
|||||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== get-Anweisungen ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| showNotifyDevsInformations ||zeigt eine Übersicht der abgelegten NOTIFYDEV Struktur. Diese Funktion wird primär fürs Debugging genutzt. Hierzu ist das Attribut ASC_expert = 1 zu setzen.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Attribute ==&lt;br /&gt;
{{Hinweis|Die Attributnamen haben sich teilweise geändert, nachfolgend ist der Stand von Modulversion v0.8.x wiedergegeben.}}&lt;br /&gt;
{{Hinweis|In der commandref findet sich häufig die Schreibweise &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;ASC_BrightnessSensor Sensorname[:brightness [400:800]]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. 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 &#039;&#039;&#039;wegzulassen&#039;&#039;&#039;! Beispiel: &amp;lt;code&amp;gt;ASC_BrightnessSensor hm_motion_1 70:100&amp;lt;/code&amp;gt; würde das brightness-Reading des Sensors hm_motion_1 verwenden und einen morgendlichen Schwellenwert von 70 bzw. 100 für abends.}}&lt;br /&gt;
===Attribute direkt am ASC-Device ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR /&amp;gt;Wertebereich !! Default-Wert !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoAstroModeEvening || ||REAL, CIVIL, NAUTIC, ASTRONOMIC oder HORIZON ||nach welchem ASTRO-Modus soll die Abendfahrt berechnet werden&lt;br /&gt;
|-&lt;br /&gt;
|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.&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoAstroModeMorning || ||REAL, CIVIL, NAUTIC, ASTRONOMIC oder HORIZON || nach welchem ASTRO-Modus soll die Morgendfahrt berechnet werden&lt;br /&gt;
|-&lt;br /&gt;
|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.&lt;br /&gt;
|-&lt;br /&gt;
|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. &lt;br /&gt;
|- &lt;br /&gt;
|ASC_autoShuttersControlEvening ||on, off || ||Aktiviert die automatische Steuerung durch das ASC-Modul am Abend.&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoShuttersControlMorning ||on, off || ||Aktiviert die automatische Steuerung durch das ASC-Modul am Morgen.&lt;br /&gt;
|-&lt;br /&gt;
|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.&lt;br /&gt;
|-&lt;br /&gt;
|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.&lt;br /&gt;
|-&lt;br /&gt;
|ASC_debug ||0, 1 || 0||Aktiviert die erweiterte Logausgabe für Debugausgaben (nur nach Aufforderung nutzen) &lt;br /&gt;
|-&lt;br /&gt;
|ASC_expert ||0, 1 ||0 ||ist der Wert 1, so werden erweiterte Informationen bezüglich des NotifyDevs unter &#039;&#039;set und get&#039;&#039; angezeigt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_freezeTemp ||-5 bis 5 || ||Temperatur, ab welcher der Frostschutz greifen soll und der Rollladen nicht mehr fährt. Der letzte Fahrbefehl wird gespeichert.&lt;br /&gt;
|-&lt;br /&gt;
|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 &amp;quot;wegen Regen geschlossen Position&amp;quot;. &lt;br /&gt;
|-&lt;br /&gt;
|ASC_residentsDev  || || ||DEVICENAME[:READINGNAME] - der Inhalt ist eine Kombination aus Devicenamen und Readingnamen des Residents-Device der obersten Ebene (z.B. rgr_Residents:state)&lt;br /&gt;
|-&lt;br /&gt;
|ASC_shuttersDriveDelay  || || ||maximale Zufallsverzögerung in Sekunden bei der Berechnung der Fahrzeiten. 0 bedeutet keine Verzögerung&lt;br /&gt;
|-&lt;br /&gt;
|ASC_tempSensor || || ||DEVICENAME[:READINGNAME] - der Inhalt ist eine Kombination aus Device und Reading für die Außentemperatur&lt;br /&gt;
|-&lt;br /&gt;
|ASC_twilightDevice || || ||das Device, welches die Informationen zum Sonnenstand liefert. Wird unter anderem für die Beschattung verwendet.&lt;br /&gt;
|-&lt;br /&gt;
|ASC_windSensor || || ||DEVICE[:READING] - Sensor für die Windgeschwindigkeit. Kombination aus Device und Reading.&lt;br /&gt;
|-&lt;br /&gt;
| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| || || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Attribute in den Rolllädendevices===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR /&amp;gt;Wertebereich !! Default-Wert !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|ASC || 0, 1, 2|| ||&amp;quot;kein Anlegen der Attribute beim ersten Scan bzw. keine Beachtung eines Fahrbefehles&amp;quot;,1 = &amp;quot;Inverse oder Rollo - Bsp.: Rollo oben 0, Rollo unten 100 und der Befehl zum prozentualen Fahren ist position&amp;quot;,2 = &amp;quot;Homematic Style - Bsp.: Rollo oben 100, Rollo unten 0 und der Befehl zum prozentualen Fahren ist pct&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Adv || on, off||||bei on wird das runterfahren des Rollos während der Weihnachtszeit (1. Advent bis 6. Januar) ausgesetzt! Durch set &amp;lt;ASCDEVICE&amp;gt; advDriveDown werden alle ausgesetzten Fahrten nachgeholt.&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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!!!&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoAstroModeEvening ||REAL, CIVIL, NAUTIC, ASTRONOMIC oder HORIZON || ||nach welchem ASTRO-Modus soll die Abendfahrt berechnet werden&lt;br /&gt;
|-&lt;br /&gt;
|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.&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoAstroModeMorning ||REAL, CIVIL, NAUTIC, ASTRONOMIC oder HORIZON || || nach welchem ASTRO-Modus soll die Morgendfahrt berechnet werden&lt;br /&gt;
|-&lt;br /&gt;
|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.&lt;br /&gt;
|-&lt;br /&gt;
|ASC_BlockingTime_afterManual || ||1200 ||wie viel Sekunden soll die Automatik nach einer manuellen Fahrt aussetzen&lt;br /&gt;
|-&lt;br /&gt;
|ASC_BlockingTime_beforeDayOpen || ||3600 ||wie viel Sekunden vor dem morgendlichen öffnen soll keine schließen Fahrt mehr stattfinden.&lt;br /&gt;
|-&lt;br /&gt;
|ASC_BlockingTime_beforeNightClose || ||3600 ||ie viel Sekunden vor dem nächtlichen schließen soll keine öffnen Fahrt mehr stattfinden.&lt;br /&gt;
|-&lt;br /&gt;
|ASC_BrightnessSensor || ||none ||DEVICE[:READING] WERT-MORGENS:WERT-ABENDS / &#039;Sensorname[:brightness [400:800]]&#039; 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 &lt;br /&gt;
|-&lt;br /&gt;
|ASC_Closed_Pos || ||default Vorgabe ist abhängig vom Attribut &#039;&#039;ASC&#039;&#039;||in 10er-Schritten von 0 bis 100 &lt;br /&gt;
wird angefahren wenn SelfDefense aktiv ist&lt;br /&gt;
|-&lt;br /&gt;
|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!!!&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Down || time, astro, brightness, roommate || astro||bei &#039;&#039;astro&#039;&#039; 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.&lt;br /&gt;
|-&lt;br /&gt;
|ASC_DiveUpMaxDuration || || 60||die Dauer des Hochfahrens des Rollladens plus 5 Sekunden&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|ASC_DriveDelayStart || || -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.&lt;br /&gt;
|-&lt;br /&gt;
|ASC_ExternalTrigger || |||| DEVICE:READING VALUEACTIVE:VALUEINACTIVE POSACTIVE:POSINACTIVE, Beispiel: &amp;quot;WohnzimmerTV:state on:off 66:100&amp;quot; bedeutet das wenn ein &amp;quot;state:on&amp;quot; Event kommt soll das Rollo in Position 66 fahren, kommt ein &amp;quot;state:off&amp;quot; Event soll es in Position 100 fahren. Es ist möglich die POSINACTIVE weg zu lassen dann fährt das Rollo in LastStatus Position.&lt;br /&gt;
|-&lt;br /&gt;
|ASC_GuestRoom || on, off |||| aktuell noch nicht umgesetzt...&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|ASC_LockOut_Cmd || inhibit, blocked, protection ||none|| set Befehl für das Rollladen-Device zum Hardware sperren. Dieser Befehl wird gesetzt werden, wenn man &amp;quot;ASC_LockOut&amp;quot; auf hard setzt&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Open_Pos || ||default Vorgabe ist abhängig vom Attribut &#039;&#039;ASC&#039;&#039;||in 10er-Schritten von 0 bis 100&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Pos_Reading || || ||Name des Readings, welches die Position des Rollladen in Prozent angibt. Wird bei unbekannten Device-Typen auch als &#039;&#039;set&#039;&#039; Befehl zum Fahren verwendet&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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!!!&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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!!!&lt;br /&gt;
|-&lt;br /&gt;
|ASC_RainProtection ||on, off || ||soll der Rollladen beim Regenschutz beachtet werden. on=JA, off=NEIN.&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Roommate_Reading || || ||Reading des Roommate-Device, welches den Status wieder gibt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Self_Defense_AbsentDelay || || 300||um wie viele Sekunden soll das fahren in Selfdefense bei Residents absent verzögert werden&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Self_Defense_Mode || || gone||ab welchen Residents Status soll Selfdefense aktiv werden ohne das Fenster auf sind&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Shading_InOutAzimuth || ||95:265 ||Azimut Wert ab dem bei Überschreiten Beschattet und bei Unterschreiten Endschattet werden soll&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Shading_MinOutsideTemperature_ || ||18 ||ab welcher Temperatur soll Beschattet werden, immer in Abhängigkeit der anderen einbezogenen Sensorwert&lt;br /&gt;
|-&lt;br /&gt;
|ASC_ShadingMode ||absent, always, off, home || off||wann soll die Beschattung nur stattfinden&lt;br /&gt;
|-&lt;br /&gt;
|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!!!&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Shading_WaitingPeriod || ||1200 ||wie viele Sekunden soll gewartet werden bevor eine weitere Auswertung der Sensordaten für die Beschattung stattfinden soll&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|ASC_ShuttersPlace || window, terrace || ||wenn dieses Attribut auf &#039;&#039;terrace&#039;&#039; gesetzt ist und das Residents-Device in den Status &#039;&#039;absent&#039;&#039; geht, &#039;&#039;selfDefence&#039;&#039; aktiv ist und das Fenster geöffnet ist, wird das Rollo  geschlossen. Wenn ein twostate Senso genutzt wird und dieses Attribut auf &#039;&#039;terrace&#039;&#039; gesetzt ist wird ASC_Ventilate_Pos ignoriert und das Rollo wird beim öffnen des Fenster komplett geöffnet. Wenn dieses Attribut auf &#039;&#039;window&#039;&#039; 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 &#039;&#039;windows oder terrace&#039;&#039; vollständig geschlossen.&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Sleep_Pos || || ||in 10er-Schritten von 0 bis 100, default Vorgabe ist abhängig vom Attribut &#039;&#039;ASC.&#039;&#039; Position wird angefahren wenn Bedingung für modeDown aktiv ist. Hiermit kann z.B. das komplette abendliche Schließen des Rollos begrenzt werden.&lt;br /&gt;
|-&lt;br /&gt;
|ASC_TempSensor || || ||DEVICENAME[:READINGNAME] - der Inhalt ist eine Kombination aus Device und Reading für die Außentemperatur&lt;br /&gt;
|-&lt;br /&gt;
|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!!!&lt;br /&gt;
|-&lt;br /&gt;
|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!!!&lt;br /&gt;
|-&lt;br /&gt;
|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!!!&lt;br /&gt;
|-&lt;br /&gt;
|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!!!&lt;br /&gt;
|-&lt;br /&gt;
|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!!! &lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|ASC_WiggleValue || ||5 ||Wert, um welchen sich die Position des Rollladens bei &#039;&#039;Wiggle&#039;&#039; ändern soll &lt;br /&gt;
|-&lt;br /&gt;
|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: &#039;50:20 ClosedPosition&#039;)&lt;br /&gt;
|-&lt;br /&gt;
|ASC_WindProtection ||on, off || ||soll der Rollladen beim Windschutz beachtet werden. on=JA, off=NEIN.&lt;br /&gt;
|-&lt;br /&gt;
|ASC_WindowRec || ||none ||Name des Fensterkontakts, an welchen Fenster der Rollladen angebracht ist. WINDOWREC:[READING], Name des Fensterkontaktes, an dessen Fenster der Rollladen angebracht ist. Reading ist optional&lt;br /&gt;
|-&lt;br /&gt;
|ASC_WindowRec_PosAfterDayClosed ||open, lastManual ||open ||Name des Fensterkontakts, an welchen Fenster der Rollladen angebracht ist. Sein Reading &#039;&#039;state&#039;&#039; muss die Werte &#039;&#039;open&#039;&#039;, &#039;&#039;closed&#039;&#039; oder &#039;&#039;tilted&#039;&#039; enthalten.&lt;br /&gt;
|-&lt;br /&gt;
|ASC_WindowRec_subType ||twostate, threestate ||twostate||Typ des verwendeten Fensterkontaktes: twostate (optisch oder magnetisch) oder threestate (Drehgriffkontakt)&lt;br /&gt;
|-&lt;br /&gt;
| || || ||&lt;br /&gt;
| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| || || ||    &lt;br /&gt;
|-  &lt;br /&gt;
| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| || || ||        &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Hilfsmittel ==&lt;br /&gt;
{{Hinweis|Die Device-Namen sind auf die eigene Installation anzupassen.}}&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Codezeilen sind im [[Import von Code Snippets|RAW]]-Format.}}&lt;br /&gt;
&lt;br /&gt;
{{Randnotiz|RNTyp=g|RNText= Stand 2019-05-03&lt;br /&gt;
* Erfolgreich getestet mit Homematic Devices, Beta-User&lt;br /&gt;
* Die Farbgebung entspricht dem Standard, wenn unter dem Style f18 der Farbpreset &#039;&#039;light&#039;&#039; gewählt wird.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== readingsGroup für Level ===&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:65%;word-wrap: break-word;&amp;quot;&amp;gt;defmod rg_ASC_Rolllaeden_Level readingsGroup &amp;lt;Gerät&amp;gt;,&amp;lt;Stand&amp;gt;,&amp;lt;Schliessen bis&amp;gt;,&amp;lt;Öffnen auf&amp;gt;,&amp;lt;Beschattung&amp;gt;,&amp;lt;Komfort&amp;gt;,&amp;lt;Lüften&amp;gt;,&amp;lt;Privacy&amp;gt; (Rollladen_.*|Jalousie_.*)..:level,!?ASC_Closed_Pos,!?ASC_Open_Pos,!?ASC_Shading_Pos,!?ASC_ComfortOpen_Pos,!?ASC_Ventilate_Pos,!?ASC_PrivacyDown_Pos&lt;br /&gt;
attr rg_ASC_Rolllaeden_Level commands {level =&amp;gt; &#039;pct:selectnumbers,0,5,100,0,lin&#039;,\&lt;br /&gt;
ASC_Closed_Pos =&amp;gt; &#039;ASC_Closed_Pos:selectnumbers,0,5,100,0,lin&#039;,\&lt;br /&gt;
ASC_Open_Pos =&amp;gt; &#039;ASC_Open_Pos:selectnumbers,0,5,100,0,lin&#039;,\&lt;br /&gt;
ASC_Shading_Pos =&amp;gt; &#039;ASC_Shading_Pos:selectnumbers,0,5,100,0,lin&#039;,\&lt;br /&gt;
ASC_Ventilate_Pos =&amp;gt; &#039;ASC_Ventilate_Pos:selectnumbers,0,5,100,0,lin&#039;,\&lt;br /&gt;
ASC_ComfortOpen_Pos =&amp;gt; &#039;ASC_ComfortOpen_Pos:selectnumbers,0,5,100,0,lin&#039;,\&lt;br /&gt;
ASC_PrivacyDown_Pos =&amp;gt; &#039;ASC_PrivacyDown_Pos:selectnumbers,0,5,100,0,lin&#039;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== readingsGroup für Zeiten ===&lt;br /&gt;
[[Bild:ReadingsGroup ASC times.png|thumb|right|ReadingsGroup - Zeitenbeispiel]]&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:65%;word-wrap: break-word;&amp;quot;&amp;gt;defmod rg_ASC_Rolllaeden_Times readingsGroup &amp;lt;Gerät&amp;gt;,&amp;lt;Position&amp;gt;,&amp;lt;Time_Up_Early&amp;gt;,&amp;lt;Time_Up_Late&amp;gt;,&amp;lt;Time_Up_WE/Hol&amp;gt;,&amp;lt;Time_Down_Early&amp;gt;,&amp;lt;Time_Down_Late&amp;gt;,&amp;lt;Mode_Down&amp;gt;,&amp;lt;Mode_Up&amp;gt; \&lt;br /&gt;
 (.*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&lt;br /&gt;
attr rg_ASC_Rolllaeden_Times commands {level =&amp;gt; &#039;pct:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100&#039;, \&lt;br /&gt;
 ASC_Time_Down_Early =&amp;gt; &#039;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&#039;, \&lt;br /&gt;
 ASC_Time_Down_Late  =&amp;gt; &#039;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&#039;, \&lt;br /&gt;
 ASC_Time_Up_WE_Holiday =&amp;gt; &#039;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&#039;,\&lt;br /&gt;
 ASC_Time_Up_Early =&amp;gt; &#039;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&#039;,  \&lt;br /&gt;
 ASC_Time_Up_Late =&amp;gt; &#039;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&#039;, \&lt;br /&gt;
 ASC_Mode_Down =&amp;gt; &#039;ASC_Mode_Down:always,absent,off&#039;, \&lt;br /&gt;
 ASC_Mode_Up =&amp;gt; &#039;ASC_Mode_Up:always,absent,off&#039; }&lt;br /&gt;
attr rg_ASC_Rolllaeden_Times room Rollladen&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[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:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:65%;word-wrap: break-word;&amp;quot;&amp;gt;defmod rg_ASC_Rolllaeden_Times readingsGroup &amp;lt;Gerät&amp;gt;,&amp;lt;Stand&amp;gt;,&amp;lt;Time_Up_Early  &amp;gt;,&amp;lt;Time_Up_WE  &amp;gt;,&amp;lt;Time_Up_Late  &amp;gt;,&amp;lt;Time_Down_Early&amp;gt;,&amp;lt;Time_Down_Late&amp;gt;,&amp;lt;Mode_Down&amp;gt;,&amp;lt;Mode_Up&amp;gt; (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&lt;br /&gt;
attr rg_ASC_Rolllaeden_Times commands {level =&amp;gt; &#039;pct:selectnumbers,0,5,100,0,lin&#039;, \&lt;br /&gt;
dim =&amp;gt; &#039;dim:selectnumbers,0,5,99,0,lin&#039;,\&lt;br /&gt;
position =&amp;gt; &#039;pct:selectnumbers,0,5,99,0,lin&#039;,\&lt;br /&gt;
ASC_Mode_Down =&amp;gt; &#039;ASC_Mode_Down:always,absent,off&#039;,\&lt;br /&gt;
ASC_Mode_Up =&amp;gt; &#039;ASC_Mode_Up:always,absent,off&#039;,\&lt;br /&gt;
ASC_Time_Down_Early =&amp;gt; &#039;ASC_Time_Down_Early:time&#039;, \&lt;br /&gt;
ASC_Time_Down_Late  =&amp;gt; &#039;ASC_Time_Down_Late:time&#039;,\&lt;br /&gt;
ASC_Time_Up_Early =&amp;gt; &#039;ASC_Time_Up_Early:time&#039;, \&lt;br /&gt;
ASC_Time_Up_Late =&amp;gt;&#039;ASC_Time_Up_Late:time&#039;,\&lt;br /&gt;
ASC_Time_Up_WE_Holiday =&amp;gt;&#039;ASC_Time_Up_WE_Holiday:time&#039;}&lt;br /&gt;
attr rg_ASC_Rolllaeden_Times room Rollladen&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  readingsGroup für die Beschattung ===&lt;br /&gt;
[[Bild:ReadingsGroup ASC shading.png|thumb|right|ReadingsGroup - Beschattungsbeispiel]]&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:65%;word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
defmod rg_ASC_Rolllaeden_Shading readingsGroup &amp;lt;Gerät&amp;gt;,&amp;lt;Modus&amp;gt;,&amp;lt;Position&amp;gt;,&amp;lt;Richtung&amp;gt;,&amp;lt;°links&amp;gt;,&amp;lt;°rechts&amp;gt;,&amp;lt;Elevation&amp;gt;,&amp;lt;Sunny&amp;gt;,&amp;lt;Cloudy&amp;gt;,&amp;lt;Min Temp&amp;gt; (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&lt;br /&gt;
attr rg_ASC_Rolllaeden_Shading alias Rollläden: Beschattung&lt;br /&gt;
attr rg_ASC_Rolllaeden_Shading commands {ASC_Shading_Pos =&amp;gt; &#039;ASC_Shading_Pos:knob,min:0,max:100,width:50,height:50,fgColor:#FF9900,bgColor:#CCCCCC,step:5,lineCap:round&#039;,\&lt;br /&gt;
ASC_Shading_Mode =&amp;gt; &#039;ASC_Shading_Mode:always,home,absent,off&#039;,\&lt;br /&gt;
ASC_Shading_Direction =&amp;gt; &#039;ASC_Shading_Direction:knob,min:0,max:360,width:50,height:50,fgColor:#FF9900,bgColor:#CCCCCC,step:1,cursor:true,lineCap:round&#039;,\&lt;br /&gt;
ASC_Shading_Angle_Left =&amp;gt; &#039;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&#039;,\&lt;br /&gt;
ASC_Shading_Angle_Right =&amp;gt; &#039;ASC_Shading_Angle_Right:knob,min:0,max:85,angleArc:85,width:50,height:50,fgColor:#FF9900,bgColor:#CCCCCC,step:5,lineCap:round,&#039;,\&lt;br /&gt;
ASC_Shading_MinMax_Elevation =&amp;gt; &#039;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&#039;,\&lt;br /&gt;
ASC_Shading_StateChange_Sunny =&amp;gt; &#039;ASC_Shading_StateChange_Sunny:knob,min:100,max:40000,angleArc:85,rotation:anticlockwise,width:50,height:50,fgColor:#FF9900,bgColor:#CCCCCC,step:20,lineCap:round,angleOffset:270&#039;,\&lt;br /&gt;
ASC_Shading_StateChange_Cloudy =&amp;gt; &#039;ASC_Shading_StateChange_Cloudy:knob,min:100,max:40000,angleArc:85,width:50,height:50,fgColor:#FF9900,bgColor:#CCCCCC,step:20,lineCap:round,&#039;,\&lt;br /&gt;
ASC_Shading_Min_OutsideTemperature =&amp;gt; &#039;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&#039;}&lt;br /&gt;
attr rg_ASC_Rolllaeden_Shading room Rollladen&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Anderes {{Link2Forum|Topic=99980|Message=946357|LinkText=Foren-Beispiel}} für eine RG zu Beschattung (für V. 0.6.x):&lt;br /&gt;
[[Bild:ReadingsGroup ASC shading2.png|thumb|right|ReadingsGroup - Beschattungsbeispiel]]&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:65%;word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
defmod rg_ASC_Shading readingsGroup &amp;lt;Gerät&amp;gt;,&amp;lt;Grad&amp;gt;,&amp;lt;Position&amp;gt;,&amp;lt;Mode&amp;gt;,&amp;lt;Links&amp;gt;,&amp;lt;Rechts&amp;gt;,&amp;lt;Wait&amp;gt;,&amp;lt;ShadeIn&amp;gt;,&amp;lt;ShadeOut&amp;gt;,&amp;lt;Elevation&amp;gt;,&amp;lt;Temperature&amp;gt;,&amp;lt;Device&amp;gt;\&lt;br /&gt;
(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\&lt;br /&gt;
&lt;br /&gt;
attr rg_ASC_Shading commands {ASC_Shading_Direction =&amp;gt; &#039;ASC_Shading_Direction:129,255,309&#039;,\&lt;br /&gt;
ASC_Shading_Pos =&amp;gt; &#039;ASC_Shading_Pos:selectnumbers,0,5,100,0,lin&#039;,\&lt;br /&gt;
ASC_Shading_Mode =&amp;gt; &#039;ASC_Shading_Mode:absent,always,off,home&#039;,\&lt;br /&gt;
ASC_Shading_Angle_Left =&amp;gt; &#039;ASC_Shading_Angle_Left:selectnumbers,0,5,100,0,lin&#039;,\&lt;br /&gt;
ASC_Shading_Angle_Right =&amp;gt; &#039;ASC_Shading_Angle_Right:selectnumbers,0,5,100,0,lin&#039;,\&lt;br /&gt;
ASC_Shading_WaitingPeriod =&amp;gt; &#039;ASC_Shading_WaitingPeriod:selectnumbers,0,60,1200,0,lin&#039;,\&lt;br /&gt;
ASC_Shading_StateChange_Sunny =&amp;gt; &#039;ASC_Shading_StateChange_Sunny:selectnumbers,0,20,1000,0,lin&#039;,\&lt;br /&gt;
ASC_Shading_StateChange_Cloudy =&amp;gt; &#039;ASC_Shading_StateChange_Cloudy:selectnumbers,0,20,1000,0,lin&#039;,\&lt;br /&gt;
ASC_Shading_MinMax_Elevation =&amp;gt;\&lt;br /&gt;
&#039;ASC_Shading_Min_Elevation:selectnumbers,0,1,40,0,lin&#039; ,\&lt;br /&gt;
ASC_Shading_Min_OutsideTemperature =&amp;gt;\&lt;br /&gt;
&#039;ASC_Shading_Min_OutsideTemperature:selectnumbers,0,1,30,0,lin&#039;}&lt;br /&gt;
attr rg_ASC_Shading room Rollladen&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  readingsGroup für FIBARO Roller Shutter FGR-222 Devices ===&lt;br /&gt;
{{Randnotiz|RNTyp=g|RNText=Getestet von majestro84, Stand 2019-01-28.&lt;br /&gt;
* https://forum.fhem.de/index.php/topic,92628.msg897099.html#msg897099&lt;br /&gt;
* Die Farbgebung entspricht dem Standard, wenn unter dem Style f18 der Farbpreset &#039;&#039;dark&#039;&#039; gewählt wird}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:ASC Jalousien Times.JPG|thumb|right|Beispiel]]&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:65%;word-break: break-all;word-wrap: break-word;&amp;quot;&amp;gt;define ASC_Jalousien_Times readingsGroup &amp;lt;Gerät&amp;gt;,&amp;lt;Stand&amp;gt;,&amp;lt;Time_Up_Early&amp;gt;,&amp;lt;Time_Up_WE&amp;gt;,&amp;lt;Time_Up_Late&amp;gt;,&amp;lt;Time_Down_Early&amp;gt;,&amp;lt;Time_Down_Late&amp;gt;,&amp;lt;Mode_Down&amp;gt;,&amp;lt;Mode_Up&amp;gt;,&amp;lt;PartyMode&amp;gt;,&amp;lt;LockOut&amp;gt; (.*_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&lt;br /&gt;
&lt;br /&gt;
 attr ASC_Jalousien_Times commands {position =&amp;gt; &#039;dim:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,99&#039;,&lt;br /&gt;
 ASC_Mode_Down =&amp;gt; &#039;ASC_Mode_Down:always,absent,off&#039;,&lt;br /&gt;
 ASC_Mode_Up =&amp;gt; &#039;ASC_Mode_Up:always,absent,off&#039;,&lt;br /&gt;
 ASC_Partymode =&amp;gt; &#039;ASC_Partymode:on,off&#039;,&lt;br /&gt;
 ASC_LockOut =&amp;gt; &#039;ASC_LockOut:soft,hard,off&#039;,&lt;br /&gt;
 ASC_Time_Down_Early =&amp;gt; &#039;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&#039;, &lt;br /&gt;
 ASC_Time_Down_Late  =&amp;gt; &#039;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&#039;,&lt;br /&gt;
 ASC_Time_Up_Early =&amp;gt; &#039;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&#039;,&lt;br /&gt;
 ASC_Time_Up_Late =&amp;gt;&#039;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&#039;,&lt;br /&gt;
 ASC_Time_Up_WE_Holiday =&amp;gt; &#039;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&#039;}&lt;br /&gt;
 attr ASC_Jalousien_Times room Jalousien&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Bild:ASC Jalousien Level.JPG|thumb|right|Beispiel]]&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:65%;word-break: break-all;word-wrap: break-word;&amp;quot;&amp;gt; define Jalousien_Level readingsGroup &amp;lt;Gerät&amp;gt;,&amp;lt;Closed_Pos&amp;gt;,&amp;lt;Open_Pos&amp;gt;,&amp;lt;Comfort_Pos&amp;gt;,&amp;lt;Ventilate_Pos&amp;gt;,&amp;lt;PrivacyDown_Pos&amp;gt;,&amp;lt;Shading_Pos&amp;gt; (.*_Jalousie.*):!?ASC_Closed_Pos,!?ASC_Open_Pos,!?ASC_ComfortOpen_Pos,!?ASC_Ventilate_Pos,!?ASC_PrivacyDown_Pos,!?ASC_Shading_Pos&lt;br /&gt;
 attr Jalousien_Level commands { ASC_Closed_Pos =&amp;gt; &#039;ASC_Closed_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,99&#039;,&lt;br /&gt;
 ASC_Open_Pos =&amp;gt; &#039;ASC_Open_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,99&#039;,&lt;br /&gt;
 ASC_ComfortOpen_Pos =&amp;gt; &#039;ASC_ComfortOpen_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,99&#039;,&lt;br /&gt;
 ASC_Ventilate_Pos =&amp;gt; &#039;ASC_Ventilate_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,99&#039;,&lt;br /&gt;
 ASC_PrivacyDown_Pos =&amp;gt; &#039;ASC_PrivacyDown_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,99&#039;,&lt;br /&gt;
 ASC_Shading_Pos =&amp;gt; &#039;ASC_Shading_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,99&#039;}&lt;br /&gt;
 attr Jalousien_Level room Jalousien&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Einrichtungsbeispiel (nach Sonnenstand) ==&lt;br /&gt;
=== Zielsetzung und Vorgaben ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Vorarbeiten ===&lt;br /&gt;
Im global-Device sind Angaben zu latitude und longitude vorhanden, holiday2we wie folgt&amp;lt;ref&amp;gt;&#039;&#039;ferien&#039;&#039; ist eine automatisiert erstellte holiday-Datei nach diesem {{Link2Forum|Topic=85759|Message=885883|LinkText=Foren-Beitrag}}.&amp;lt;/ref&amp;gt;:&lt;br /&gt;
 attr global holiday2we bw,ferien&lt;br /&gt;
Weitere Angaben benötigen wir zunächst nicht, die Festlegung eines Astro-Devices erfolgt hier erst im Rahmen der Beschattung. &lt;br /&gt;
Dann erfolgt das &#039;&#039;Define des ASC-Devices&#039;&#039; wie oben beschrieben:&lt;br /&gt;
&amp;lt;code&amp;gt;define Rollladenautomatik AutoShuttersControl&amp;lt;/code&amp;gt;&lt;br /&gt;
Folgen die einzubindenden Rollladenaktoren einem einheitlichen Namensschema, können diese sodann z.B. mit &lt;br /&gt;
 attr (Jalousie|Rollladen)_.* ASC 2&lt;br /&gt;
auf einen Rutsch mit dem passenden ASC-Typ gekennzeichnet werden.  &lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Achtung: Das AutoShuttersControl-Device selbst darf kein ASC-Attribut bekommen!}}&lt;br /&gt;
&lt;br /&gt;
Dann verteilen wir mir &lt;br /&gt;
 set Rollladenautomatik scanForShutters&lt;br /&gt;
die nachfolgend weiter zu bearbeitenden Attribute.&lt;br /&gt;
=== Schließen morgens und abends ===&lt;br /&gt;
{{Randnotiz|RNTyp=g|RNText=Alternative: Fahren nach brightness:&lt;br /&gt;
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 (&#039;&#039;ASC_BrightnessSensor&#039;&#039; etc.), bei dessen Überschreitung geöffnet bzw. Unterschreitung geschlossen werden soll.}}&lt;br /&gt;
==== Konfiguration des ASC-Devices ====&lt;br /&gt;
Da wir sonnenstandsabhängig Fahrzeiten wollen, legen wir erst einmal fest, dass dies morgens und abends berücksichtigt werden soll:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
attr Rollladenautomatik ASC_autoAstroModeEvening CIVIL&lt;br /&gt;
attr Rollladenautomatik ASC_autoAstroModeMorning CIVIL&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Aus der Angabe &#039;&#039;CIVIL&#039;&#039; 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.&lt;br /&gt;
Bei allen Fensteröffnungen soll auf eine Lüften-Position gefahren werden, also schalten wir diese Funktion ebenfalls zentral an&amp;lt;ref&amp;gt;Sonst wird bei threeState-Sensoren nur bei &#039;&#039;tilted&#039;&#039; auf die in &#039;&#039;ASC_Ventilate_Pos&#039;&#039; gefahren.&amp;lt;/ref&amp;gt;:&lt;br /&gt;
 attr Rollladenautomatik ASC_autoShuttersControlComfort on &lt;br /&gt;
Zuletzt legen wir noch einen Temperatur-Sensor fest. Dieser wird beim Frostschutz sowie bei der Beschattung berücksichtigt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
attr Rollladenautomatik ASC_tempSensor Aussentemperatur_Nord:temperature&lt;br /&gt;
attr Rollladenautomatik ASC_freezeTemp 3&lt;br /&gt;
&amp;lt;/pre&amp;gt;{{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)!}} &lt;br /&gt;
&lt;br /&gt;
tbd: &lt;br /&gt;
* Rain&lt;br /&gt;
* Wind&lt;br /&gt;
==== Konfiguration der Rollladendevices ====&lt;br /&gt;
{{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.}}&lt;br /&gt;
&lt;br /&gt;
===== Fahrzeiten =====&lt;br /&gt;
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.&lt;br /&gt;
===== Bewohner =====&lt;br /&gt;
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 &#039;&#039;ASC_Roommate_Device&#039;&#039; und &#039;&#039;ASC_Roommate_Reading&#039;&#039; einem Rollladen zugeordnet werden. Ist einer der Bewohner &#039;&#039;asleep&#039;&#039;, wird morgens erst geöffnet, wenn auch der letzte Roommate nicht mehr &#039;&#039;asleep&#039;&#039; ist.&lt;br /&gt;
===== Fensterkontakte  =====&lt;br /&gt;
Dann werden ggf. vorhandene Fensterkontakte mit &#039;&#039;ASC_WindowRec&#039;&#039; zugeordnet und der Sensortyp mit &#039;&#039;ASC_WindowRec_subType&#039;&#039; festgelegt. Im Falle von threeState-Sensoren wird das übergreifende &#039;&#039;ASC_autoShuttersControlComfort&#039;&#039; beachtet, wobei dann bei vollständiger Öffnung des Fensters auf den in &#039;&#039;ASC_ComfortOpen_Pos&#039;&#039; festgelegten Wert gefahren wird.&lt;br /&gt;
===== Frostschutz =====&lt;br /&gt;
Zuletzt können die Attribute &#039;&#039;ASC_Antifreeze&#039;&#039; und &#039;&#039;ASC_Antifreeze_Pos&#039;&#039; festgelegt werden, wenn die Frostschutzfunktion aktiviert werden soll.&lt;br /&gt;
&lt;br /&gt;
=== Beschattung ===&lt;br /&gt;
==== Konfiguration des ASC-Devices ====&lt;br /&gt;
IM ASC DEVICE das Reading &amp;quot;controlShading&amp;quot; mit dem Wert on, sowie ein Astro/Twilight Device im Attribut &amp;quot;ASC_twilightDevice&amp;quot; und das Attribut &amp;quot;ASC_tempSensor&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Konfiguration der Rollladendevices ====&lt;br /&gt;
Ihr benötigt einen Helligkeitssensor als Attribut &amp;quot;ASC_BrightnessSensor&amp;quot;, sofern noch nicht vorhanden. Findet der Sensor nur für die Beschattung Verwendung ist der Wert DEVICENAME[:READING] ausreichend.&lt;br /&gt;
Alle weiteren Attribute sind optional und wenn nicht gesetzt mit Default-Werten belegt. Ihr solltet sie dennoch einmal anschauen und entsprechend Euren Gegebenheiten setzen. Die Werte für die Fensterposition und den Vor- Nachlaufwinkel &#039;&#039;(ASC_Shading_InOutAzimuth)&#039;&#039; sowie die Grenzwerte für &amp;lt;code&amp;gt;&#039;&#039;ASC_shading_StateChange_SunnyCloudy&#039;&#039;&amp;lt;/code&amp;gt; solltet ihr besondere Beachtung dabei schenken. &lt;br /&gt;
&lt;br /&gt;
==== Bedingungen ====&lt;br /&gt;
Damit die Beschattung startet müssen &#039;&#039;&#039;alle&#039;&#039;&#039; Bedingungen erfüllt sein. Entschattet wird sobald &#039;&#039;&#039;einer&#039;&#039;&#039; der Bedingungen wegfällt und die Zeit aus &amp;lt;code&amp;gt;ASC_Shading_WaitingPeriod&amp;lt;/code&amp;gt; abgelaufen ist.&lt;br /&gt;
&lt;br /&gt;
Der Sonnensensor &amp;lt;ASC_BrightnessSensor&amp;gt; muss mindestens 2 Messwerte liefern, bevor das ASC-Modul in die Beschattungsposition fährt! Beim (zeitlich gesehen) ersten Messwert wird der Zustand &#039;&#039;in-reserved&#039;&#039; eingenommen und erst beim zweiten Messwert dann der Zustand &#039;&#039;in shading&#039;&#039; eingenommen. Die Anzahl der Messwerte ist abhängig vom &amp;quot;moving average window&amp;quot;, der mit dem dritten Parameter des Attributs &#039;&#039;ASC_Shading_StateChange_SunnyCloudy&#039;&#039; konfiguriert wird.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Von Standardwerten ausgehend ist nachfolgender Ablauf angestrebt:&#039;&#039;&#039;   &lt;br /&gt;
# Ein Event vom Astro oder Helligkeits Device kommt -&amp;gt; sind alle Werte innerhalb des Arbeitsbereiches, ändert sich der ASC Info-Zustand im Rollo von xx auf „in reserved“ (Beschattung vorbereitet)&lt;br /&gt;
# Ein erneutes Event vom Astro oder Helligkeits Device kommt -&amp;gt; Überprüfung der Werte -&amp;gt; sind diese weiterhin gegeben folgt der Wechsel von „in reserved“ auf „in“ (Beschattung aktiv)&lt;br /&gt;
# Bei Verwendung von &#039;&#039;ASC_Shading_StateChange_SunnyCloudy&#039;&#039; 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. &lt;br /&gt;
# Die Zeiten &#039;&#039;ASC_Shading_WaitingPeriod&#039;&#039; und &#039;&#039;ASC_BlockingTime_afterManual&#039;&#039; können hier zusätzlich für eine Verzögerung sorgen. &lt;br /&gt;
&#039;&#039;&#039;Wichtig zu beachten:&#039;&#039;&#039; 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 Beschattungsfunltion greift. &lt;br /&gt;
&lt;br /&gt;
Wenn das Rollo einmal aus der Beschattung manuell (im Rollo Device muss bei &#039;&#039;ASC_ShuttersLastDrive manuel&#039;&#039; 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.&lt;br /&gt;
&lt;br /&gt;
=== Weitere Funktionen ===&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Beschreibung WeekendHoliday Funktion im Brightnessbetrieb.&#039;&#039;&#039; ====&lt;br /&gt;
Wenn Wochenende oder Feiertag ist und WeekendHoliday aktiviert wurde und im Rollo das Attribut ASC_Time_Up_WE_Holiday gesetzt ist dann wird ausschließlich zur angebenden ASC_Time_Up_WE_Holiday Zeit gefahren ungeachtet des Brightnesswertes.&lt;br /&gt;
&lt;br /&gt;
==== Privacy ====&lt;br /&gt;
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&lt;br /&gt;
&lt;br /&gt;
==== BlockingTime====&lt;br /&gt;
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.&lt;br /&gt;
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.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==== wiggle====&lt;br /&gt;
Mit einem &amp;lt;code&amp;gt;set &amp;lt;ASC-Device&amp;gt; wiggle&amp;lt;/code&amp;gt; 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.&lt;br /&gt;
==== Partymode ====&lt;br /&gt;
Dieser wird am ASC-Device selbst aktiviert mittels &amp;lt;code&amp;gt;set &amp;lt;ASC-Device&amp;gt; partyMode on&amp;lt;/code&amp;gt;. Alle Rollladen-Devices, welche das Attribut &#039;&#039;ASC_Partymode&#039;&#039; auf &#039;&#039;on&#039;&#039; 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 &amp;lt;code&amp;gt;set ASC-Device partyMode off&amp;lt;/code&amp;gt; ausgeführt.&lt;br /&gt;
==== lock-out ====&lt;br /&gt;
Man kann mit dem Befehl &amp;lt;code&amp;gt; set &amp;lt;ASC-Device&amp;gt; hardLockOut&amp;lt;/code&amp;gt; auf einen Schlag alle Rollos sperren welche &amp;lt;code&amp;gt; attr &amp;lt;ROLLO-Device&amp;gt; ASC_LockOut hard&amp;lt;/code&amp;gt; gesetzt haben.&lt;br /&gt;
Das ist dafür gedacht, wenn Du eine gewisse Zeit den Rolloaktor sperren willst. Zum Beispiel das die Kinder nicht schalten sollen.&lt;br /&gt;
&lt;br /&gt;
== Sonstige Hinweise und Problemlösungen ==&lt;br /&gt;
* 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 &amp;lt;code&amp;gt;set &amp;lt;ASC-Modul&amp;gt; expert 1&amp;lt;/code&amp;gt; erweiterte Informationen bezüglich des NotifyDevs unter set und get aktiviert und anschließend ein &amp;lt;code&amp;gt;set &amp;lt;ASC-Modul&amp;gt; createNewNotifyDev&amp;lt;/code&amp;gt; ausgeführt.&lt;br /&gt;
&lt;br /&gt;
* Hin und wieder berichten Nutzer davon, wenn Sie die &#039;&#039;Privacy Funktion&#039;&#039; nutzen, dass sich im NOTIFYDEV anstelle des Device Namen ein Raumname befindet. Diese Problem kann damit gelöst werden, dass in dem betroffenen &#039;&#039;&#039;Rollo Device&#039;&#039;&#039; das Atribut  &amp;lt;code&amp;gt;attr event-on-change .*&amp;lt;/code&amp;gt; gesetzt wird.&lt;br /&gt;
&#039;&#039;&#039;Wichtig!&#039;&#039;&#039; Nicht verwechseln mit dem ASC Device dort darf &amp;lt;code&amp;gt;attr event-on-change&amp;lt;/code&amp;gt; &#039;&#039;&#039;nicht&#039;&#039;&#039; gesetzt sein!&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
==== Spezielle Hardware ====&lt;br /&gt;
{{Link2Forum|Topic=101182|LinkText=&amp;quot;Thread zu getesteter Hardware im Forum&amp;quot;}}&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* {{Link2Forum|Topic=92628|LinkText=&amp;quot;Thread zum Modul im Forum&amp;quot;}}&lt;br /&gt;
* {{Link2Forum|Topic=90751|LinkText=&amp;quot;Thread zur Entwicklung im Forum&amp;quot;}} &lt;br /&gt;
* {{Link2Forum|Topic=73964|LinkText=&amp;quot;Thread zu den Scripten von user cluni&amp;quot;}}, die der Entwicklung des Moduls zugrunde liegen&lt;br /&gt;
* Daten zum Sonnenstand z.B. hier https://www.sonnenverlauf.de/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Code Snippets]]&lt;br /&gt;
[[Kategorie:Rollladensteuerung]]&lt;/div&gt;</summary>
		<author><name>Stephan1965</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=AutoShuttersControl&amp;diff=33951</id>
		<title>AutoShuttersControl</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=AutoShuttersControl&amp;diff=33951"/>
		<updated>2020-09-20T11:40:22Z</updated>

		<summary type="html">&lt;p&gt;Stephan1965: /* Sonstige Hinweise und Problemlösungen */ Lösungsvorschlag, falls zu viele Fahrbefehle gesendet werden und ein Device den Befehl nicht bekommt (zeitverzögertes Fahren)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Baustelle}}&lt;br /&gt;
{{Infobox Modul&lt;br /&gt;
|ModPurpose=Steuerung von Rollläden&lt;br /&gt;
|ModCategory=Automatisierung&lt;br /&gt;
|ModType=d&lt;br /&gt;
|ModForumArea=Automatisierung&lt;br /&gt;
|ModTechName=73_AutoShuttersControl.pm&lt;br /&gt;
|ModOwner=CoolTux ({{Link2FU|13684|Forum}}/[[Benutzer Diskussion:CoolTux|Wiki]])}}&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
== Basics ==&lt;br /&gt;
{{Hinweis|Das Modul befindet sich derzeit noch in der Entwicklung; der derzeit aktuelle Stand ist  diesem {{Link2Forum|Topic=112325|LinkText=&amp;quot;Thread im Forum&amp;quot;}} zu entnehmen.}}&lt;br /&gt;
Zur Nutzung des Moduls sollten folgende andere FHEM-Devices vorhanden sein:&lt;br /&gt;
* Rollläden&lt;br /&gt;
* Fensterkontakte und &lt;br /&gt;
* Bewohnerstatus auf Basis von Residents/Roomates in englisch. Ersatzweise andere Devices, z.B. Dummys, welche als &#039;&#039;state&#039;&#039; &#039;&#039;home&#039;&#039;, &#039;&#039;absent&#039;&#039;, &#039;&#039;asleep&#039;&#039;, &#039;&#039;gotosleep&#039;&#039; und &#039;&#039;awoken&#039;&#039; setzen sowie ein Reading &#039;&#039;lastState&#039;&#039;.&lt;br /&gt;
* Optional:&lt;br /&gt;
** Ein Helligkeitssensor (Steuerung nach Helligkeit und Beschattung)&lt;br /&gt;
** Ein Device zur Bestimmung des Sonnenstands (nur für Beschattung). Unterstützt werden derzeit [[Modul Astro|Astro]] und [[Twilight]]&amp;lt;ref&amp;gt;Dabei müssen ggf. in [[Global|global]] auch Angaben zu &#039;&#039;longitude&#039;&#039; und &#039;&#039;latitude&#039;&#039; vorhanden sein&amp;lt;/ref&amp;gt;. &lt;br /&gt;
** 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&amp;lt;ref&amp;gt;Es kann auch z.B. ein Dummy-Device verwendet werden, dieses sollte dann aber neben dem eigentlichen Feiertags-&#039;&#039;state&#039;&#039; auch in einem Reading &#039;&#039;tomorrow&#039;&#039; Angaben zu anstehenden Feiertagen enthalten.&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;Bitte verfahren Sie entsprechend, wenn Urlaubs- oder Ferientage wie Feiertage behandelt werden sollen.&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Die Einrichtung des Moduls bzw. dessen Funktionalität erfolgt in mehreren Schritten:&lt;br /&gt;
* Definition des ASC-Devices&lt;br /&gt;
* Einstellung zentraler Vorgaben am ASC-Device&lt;br /&gt;
* Markieren der zukünftig zu steuernden Rollladen-Devices&lt;br /&gt;
* Einbinden der Rollladen-Devices in das ASC-Device&lt;br /&gt;
* Einstellen der individuellen Vorgaben je Rollladen (am Rollladen-Device)&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
== Einrichtung ==&lt;br /&gt;
{{Hinweis|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.}}&lt;br /&gt;
&lt;br /&gt;
=== Vorbereitung ===&lt;br /&gt;
Zunächst sollten die in den [[#Basics|Basics]] beschriebenen Geräte vorhanden und funktionsfähig sein. &lt;br /&gt;
&lt;br /&gt;
=== Define des ASC-Devices ===&lt;br /&gt;
Es genügt ein einfaches define ohne weitere Parameter.&lt;br /&gt;
&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; AutoShuttersControl&amp;lt;/code&amp;gt;&lt;br /&gt;
Dies bewirkt neben der Anlage des Devices selbst auch, dass als weiteres globales Attribut &#039;&#039;ASC&#039;&#039; verfügbar wird.&lt;br /&gt;
&lt;br /&gt;
=== Einstellung zentraler Vorgaben ===&lt;br /&gt;
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.&lt;br /&gt;
Diese Attribute können auch nachträglich noch geändert werden.&lt;br /&gt;
&lt;br /&gt;
=== Markieren zu steuernder Rollladen-Devices ===&lt;br /&gt;
Um einen oder mehrere Rollläden durch das ASC-Device zu steuern, wird für jeden Rollladen jeweils das neue globale Attribut &#039;&#039;ASC&#039;&#039; gesetzt. Der Wert ist mit 1 oder 2 festzulegen, wobei &#039;&#039;&#039;1&#039;&#039;&#039; bedeutet, dass &lt;br /&gt;
* die Offen-Position kleiner ist als die Geschlossen-Position, also typischerweise 0 &#039;&#039;offen&#039;&#039; bedeutet und 100 für &#039;&#039;geschlossen&#039;&#039; steht&lt;br /&gt;
* eine bestimmte Position mit &#039;&#039;&#039;position&#039;&#039;&#039; angefahren wird, also z.B. &amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; position 70&amp;lt;/code&amp;gt;.&lt;br /&gt;
Dies ist z.B. die  passende Wahl für ROLLO-Devices&lt;br /&gt;
&lt;br /&gt;
Die &#039;&#039;&#039;2&#039;&#039;&#039; steht für ein umgekehrtes Verhalten und den Befehlsteil &#039;&#039;pct&#039;&#039;, also &#039;&#039;offen&#039;&#039; für &amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; pct 100&amp;lt;/code&amp;gt;. Typischer Vertreter dieses Typs sind HomeMatic (CUL_HM-) Geräte oder die Shelly2-Aktoren.&lt;br /&gt;
&lt;br /&gt;
Aus dieser Vorgabe leitet das Modul dann jeweils bestimmte Voreinstellungen (&#039;&#039;defaults&#039;&#039;) für den Rolladen ab, ohne dass die betreffenden, dafür vorgesehenen Attribute ausdrücklich gesetzt werden müssen. 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. &#039;&#039;dim 99&#039;&#039; für vollständiges Öffnen eines ZWave-Aktors).&lt;br /&gt;
{{Hinweis|Das Vorstehende gilt jeweils für den nicht-invertierten Modus! Wer z.B. ein HomeMatic-Gerät mit &#039;&#039;levelinverse&#039;&#039; betreibt, sollte &#039;&#039;ASC&#039;&#039; auf &amp;quot;1&amp;quot; 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 &#039;&#039;position&#039;&#039; oder &#039;&#039;pct&#039;&#039; kann auch später über ein weiteres Attribut passend eingestellt werden.}}&lt;br /&gt;
&lt;br /&gt;
=== Einbinden in das ASC-Device ===&lt;br /&gt;
Nachdem man das obige Attribut bei einem oder mehreren Rollladen-Devices gesetzt hat, kann mit &lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; scanForShutters&amp;lt;/code&amp;gt; ein Suchlauf gestartet werden, mit dem dann diese Rollläden durch das Modul gefunden und in die Steuerungslogik eingebunden werden.&lt;br /&gt;
&lt;br /&gt;
=== Einstellen der individuellen Vorgaben ===&lt;br /&gt;
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. &lt;br /&gt;
Die Beschreibung der Attribute ist in der commandref enthalten.&lt;br /&gt;
&lt;br /&gt;
== Readings ==&lt;br /&gt;
&lt;br /&gt;
===Readings im ASC-Device selbst ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR /&amp;gt;Wertebereich !! Bedeutung  &lt;br /&gt;
|-&lt;br /&gt;
|..._nextAstroTimeEvent || || Zeit wird abhängig von der eingestellten Attribute ASC_Time_Up/ASC_Time_Down angezeigt. Bei &#039;&#039;astro&#039;&#039; die Uhrzeit des  Sonnenauf- oder Sonnenuntergang, bei &#039;&#039;time&#039;&#039; und &#039;&#039;brightness&#039;&#039; die Zeit aus ASC_Time_Up_Early/ASC_Time_Down_Late pro Rollonamen&lt;br /&gt;
|-&lt;br /&gt;
|..._lastPosValue || || Position pro Rollonamen bevor ASC die Rolläden verfahren hat&lt;br /&gt;
|-&lt;br /&gt;
|..._PosValue || ||aktuelle Position pro Rollonamen&lt;br /&gt;
|-&lt;br /&gt;
|ascEnable||on, off ||globale ASC Steuerung bei den Rollläden aktiv oder inaktiv&lt;br /&gt;
|-&lt;br /&gt;
|controlShading||on, off ||globale Beschattungsfunktion aktiv oder inaktiv&lt;br /&gt;
|-&lt;br /&gt;
|hardLockOut || on, off ||Status des hardwareseitigen Aussperrschutzes / gilt nur für Rolläden mit dem Attribut bei denen das Attributs ASC_LockOut entsprechend auf hard gesetzt ist&lt;br /&gt;
|-&lt;br /&gt;
|selfDefense || on, off ||globale Selbstschutzfunktion aktiv oder inaktiv&lt;br /&gt;
|-&lt;br /&gt;
|partyMode ||on, off || globaler Partymodus aktiv oder inaktiv&lt;br /&gt;
|-&lt;br /&gt;
|state || ||Status des ASC-Devices: active, enabled, disabled oder weitere Statusinformationen wie z.B. Grund der letzen Fahrt&lt;br /&gt;
|-&lt;br /&gt;
|room_... || ||Auflistung aller Rollläden, welche in den jeweiligen Räumen gefunden wurden, Bsp.: room_Schlafzimmer,Terrasse&lt;br /&gt;
|-&lt;br /&gt;
|sunriseTimeWeHoliday|| on,off ||globale Wochenendunterstützung aktiv oder inaktiv&lt;br /&gt;
|-&lt;br /&gt;
|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.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Readings in den Rolllädendevices ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Bedeutung  &lt;br /&gt;
|-&lt;br /&gt;
|ASC_Enable ||Status von ASC_Enable (on,off)&lt;br /&gt;
|-&lt;br /&gt;
|ASC_ShuttersLastDrive ||Grund des letzten Fahrens des Rolladens&lt;br /&gt;
|-&lt;br /&gt;
|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 &lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==set- und get-Befehle für das ASC-Device==&lt;br /&gt;
&lt;br /&gt;
=== set-Anweisungen ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR /&amp;gt;Wertebereich !! Beschreibung  &lt;br /&gt;
|-&lt;br /&gt;
|advDriveDown ||on, off ||holt bei allen Rollläden durch ASC_Adv on ausgesetzte Fahrten nach&lt;br /&gt;
|-&lt;br /&gt;
|ascEnable||on, off ||Aktiviert oder deaktiviert die globale ASC-Steuerung&lt;br /&gt;
|-&lt;br /&gt;
|controlShading||on, off ||Aktiviert oder deaktiviert die globale Beschattungssteuerung&lt;br /&gt;
|-&lt;br /&gt;
|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.)&lt;br /&gt;
|-&lt;br /&gt;
|hardLockOut ||on, off ||Aktiviert den hardwareseitigen Aussperrschutz für die Rollläden, bei denen das Attributs ASC_LockOut entsprechend auf hard gesetzt ist. Mehr Informationen in der Beschreibung bei den Attributen für die Rollladengeräten.&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|renewAllTimer || ||erneuert bei allen Rollläden die Zeiten gemäß ASC_UP/ASC_DOWN und setzt die internen Timer neu.&lt;br /&gt;
|-&lt;br /&gt;
|renewTimer || ||erneuert bei dem ausgewählten Rolladen die Zeiten gemäß ASC_UP/ASC_DOWN und setzt die internen Timer neu.&lt;br /&gt;
|-&lt;br /&gt;
|scanForShutters || ||sucht alle FHEM Devices mit dem Attribut &#039;&#039;ASDC&#039;&#039; &#039;&#039;1&#039;&#039; oder &#039;&#039;2&#039;&#039; und legt diese im ASC-Modul an&lt;br /&gt;
|-&lt;br /&gt;
|selfDefence ||on, off||Aktiviert bzw. deaktiviert die Selbstschutzfunktion. Beispiel 1: Wenn das Residents-Gerät &#039;&#039;gone&#039;&#039; 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.&lt;br /&gt;
|-&lt;br /&gt;
|shutterASCenableToggle ||  ||Aktivieren oder deaktivieren der ASC Kontrolle beim einzelnen Rollladens&lt;br /&gt;
|-&lt;br /&gt;
|sunriseTimeWeHoliday || on,off ||Aktiviert die Wochenendunterstützung und somit, ob im Rollladen das Attribut ASC_Time_Up_WE_Holiday beachtet werden soll oder nicht.&lt;br /&gt;
|-&lt;br /&gt;
|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.&lt;br /&gt;
|-&lt;br /&gt;
|||||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== get-Anweisungen ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| showNotifyDevsInformations ||zeigt eine Übersicht der abgelegten NOTIFYDEV Struktur. Diese Funktion wird primär fürs Debugging genutzt. Hierzu ist das Attribut ASC_expert = 1 zu setzen.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Attribute ==&lt;br /&gt;
{{Hinweis|Die Attributnamen haben sich teilweise geändert, nachfolgend ist der Stand von Modulversion v0.8.x wiedergegeben.}}&lt;br /&gt;
{{Hinweis|In der commandref findet sich häufig die Schreibweise &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;ASC_BrightnessSensor Sensorname[:brightness [400:800]]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. 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 &#039;&#039;&#039;wegzulassen&#039;&#039;&#039;! Beispiel: &amp;lt;code&amp;gt;ASC_BrightnessSensor hm_motion_1 70:100&amp;lt;/code&amp;gt; würde das brightness-Reading des Sensors hm_motion_1 verwenden und einen morgendlichen Schwellenwert von 70 bzw. 100 für abends.}}&lt;br /&gt;
===Attribute direkt am ASC-Device ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR /&amp;gt;Wertebereich !! Default-Wert !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoAstroModeEvening || ||REAL, CIVIL, NAUTIC, ASTRONOMIC oder HORIZON ||nach welchem ASTRO-Modus soll die Abendfahrt berechnet werden&lt;br /&gt;
|-&lt;br /&gt;
|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.&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoAstroModeMorning || ||REAL, CIVIL, NAUTIC, ASTRONOMIC oder HORIZON || nach welchem ASTRO-Modus soll die Morgendfahrt berechnet werden&lt;br /&gt;
|-&lt;br /&gt;
|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.&lt;br /&gt;
|-&lt;br /&gt;
|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. &lt;br /&gt;
|- &lt;br /&gt;
|ASC_autoShuttersControlEvening ||on, off || ||Aktiviert die automatische Steuerung durch das ASC-Modul am Abend.&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoShuttersControlMorning ||on, off || ||Aktiviert die automatische Steuerung durch das ASC-Modul am Morgen.&lt;br /&gt;
|-&lt;br /&gt;
|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.&lt;br /&gt;
|-&lt;br /&gt;
|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.&lt;br /&gt;
|-&lt;br /&gt;
|ASC_debug ||0, 1 || 0||Aktiviert die erweiterte Logausgabe für Debugausgaben (nur nach Aufforderung nutzen) &lt;br /&gt;
|-&lt;br /&gt;
|ASC_expert ||0, 1 ||0 ||ist der Wert 1, so werden erweiterte Informationen bezüglich des NotifyDevs unter &#039;&#039;set und get&#039;&#039; angezeigt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_freezeTemp ||-5 bis 5 || ||Temperatur, ab welcher der Frostschutz greifen soll und der Rollladen nicht mehr fährt. Der letzte Fahrbefehl wird gespeichert.&lt;br /&gt;
|-&lt;br /&gt;
|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 &amp;quot;wegen Regen geschlossen Position&amp;quot;. &lt;br /&gt;
|-&lt;br /&gt;
|ASC_residentsDev  || || ||DEVICENAME[:READINGNAME] - der Inhalt ist eine Kombination aus Devicenamen und Readingnamen des Residents-Device der obersten Ebene (z.B. rgr_Residents:state)&lt;br /&gt;
|-&lt;br /&gt;
|ASC_shuttersDriveDelay  || || ||maximale Zufallsverzögerung in Sekunden bei der Berechnung der Fahrzeiten. 0 bedeutet keine Verzögerung&lt;br /&gt;
|-&lt;br /&gt;
|ASC_tempSensor || || ||DEVICENAME[:READINGNAME] - der Inhalt ist eine Kombination aus Device und Reading für die Außentemperatur&lt;br /&gt;
|-&lt;br /&gt;
|ASC_twilightDevice || || ||das Device, welches die Informationen zum Sonnenstand liefert. Wird unter anderem für die Beschattung verwendet.&lt;br /&gt;
|-&lt;br /&gt;
|ASC_windSensor || || ||DEVICE[:READING] - Sensor für die Windgeschwindigkeit. Kombination aus Device und Reading.&lt;br /&gt;
|-&lt;br /&gt;
| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| || || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Attribute in den Rolllädendevices===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR /&amp;gt;Wertebereich !! Default-Wert !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|ASC || 0, 1, 2|| ||&amp;quot;kein Anlegen der Attribute beim ersten Scan bzw. keine Beachtung eines Fahrbefehles&amp;quot;,1 = &amp;quot;Inverse oder Rollo - Bsp.: Rollo oben 0, Rollo unten 100 und der Befehl zum prozentualen Fahren ist position&amp;quot;,2 = &amp;quot;Homematic Style - Bsp.: Rollo oben 100, Rollo unten 0 und der Befehl zum prozentualen Fahren ist pct&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Adv || on, off||||bei on wird das runterfahren des Rollos während der Weihnachtszeit (1. Advent bis 6. Januar) ausgesetzt! Durch set &amp;lt;ASCDEVICE&amp;gt; advDriveDown werden alle ausgesetzten Fahrten nachgeholt.&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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!!!&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoAstroModeEvening ||REAL, CIVIL, NAUTIC, ASTRONOMIC oder HORIZON || ||nach welchem ASTRO-Modus soll die Abendfahrt berechnet werden&lt;br /&gt;
|-&lt;br /&gt;
|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.&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoAstroModeMorning ||REAL, CIVIL, NAUTIC, ASTRONOMIC oder HORIZON || || nach welchem ASTRO-Modus soll die Morgendfahrt berechnet werden&lt;br /&gt;
|-&lt;br /&gt;
|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.&lt;br /&gt;
|-&lt;br /&gt;
|ASC_BlockingTime_afterManual || ||1200 ||wie viel Sekunden soll die Automatik nach einer manuellen Fahrt aussetzen&lt;br /&gt;
|-&lt;br /&gt;
|ASC_BlockingTime_beforeDayOpen || ||3600 ||wie viel Sekunden vor dem morgendlichen öffnen soll keine schließen Fahrt mehr stattfinden.&lt;br /&gt;
|-&lt;br /&gt;
|ASC_BlockingTime_beforeNightClose || ||3600 ||ie viel Sekunden vor dem nächtlichen schließen soll keine öffnen Fahrt mehr stattfinden.&lt;br /&gt;
|-&lt;br /&gt;
|ASC_BrightnessSensor || ||none ||DEVICE[:READING] WERT-MORGENS:WERT-ABENDS / &#039;Sensorname[:brightness [400:800]]&#039; 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 &lt;br /&gt;
|-&lt;br /&gt;
|ASC_Closed_Pos || ||default Vorgabe ist abhängig vom Attribut &#039;&#039;ASC&#039;&#039;||in 10er-Schritten von 0 bis 100 &lt;br /&gt;
wird angefahren wenn SelfDefense aktiv ist&lt;br /&gt;
|-&lt;br /&gt;
|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!!!&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Down || time, astro, brightness, roommate || astro||bei &#039;&#039;astro&#039;&#039; 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.&lt;br /&gt;
|-&lt;br /&gt;
|ASC_DiveUpMaxDuration || || 60||die Dauer des Hochfahrens des Rollladens plus 5 Sekunden&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|ASC_DriveDelayStart || || -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.&lt;br /&gt;
|-&lt;br /&gt;
|ASC_ExternalTrigger || |||| DEVICE:READING VALUEACTIVE:VALUEINACTIVE POSACTIVE:POSINACTIVE, Beispiel: &amp;quot;WohnzimmerTV:state on:off 66:100&amp;quot; bedeutet das wenn ein &amp;quot;state:on&amp;quot; Event kommt soll das Rollo in Position 66 fahren, kommt ein &amp;quot;state:off&amp;quot; Event soll es in Position 100 fahren. Es ist möglich die POSINACTIVE weg zu lassen dann fährt das Rollo in LastStatus Position.&lt;br /&gt;
|-&lt;br /&gt;
|ASC_GuestRoom || on, off |||| aktuell noch nicht umgesetzt...&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|ASC_LockOut_Cmd || inhibit, blocked, protection ||none|| set Befehl für das Rollladen-Device zum Hardware sperren. Dieser Befehl wird gesetzt werden, wenn man &amp;quot;ASC_LockOut&amp;quot; auf hard setzt&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Open_Pos || ||default Vorgabe ist abhängig vom Attribut &#039;&#039;ASC&#039;&#039;||in 10er-Schritten von 0 bis 100&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Pos_Reading || || ||Name des Readings, welches die Position des Rollladen in Prozent angibt. Wird bei unbekannten Device-Typen auch als &#039;&#039;set&#039;&#039; Befehl zum Fahren verwendet&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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!!!&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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!!!&lt;br /&gt;
|-&lt;br /&gt;
|ASC_RainProtection ||on, off || ||soll der Rollladen beim Regenschutz beachtet werden. on=JA, off=NEIN.&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Roommate_Reading || || ||Reading des Roommate-Device, welches den Status wieder gibt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Self_Defense_AbsentDelay || || 300||um wie viele Sekunden soll das fahren in Selfdefense bei Residents absent verzögert werden&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Self_Defense_Mode || || gone||ab welchen Residents Status soll Selfdefense aktiv werden ohne das Fenster auf sind&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Shading_InOutAzimuth || ||95:265 ||Azimut Wert ab dem bei Überschreiten Beschattet und bei Unterschreiten Endschattet werden soll&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Shading_MinOutsideTemperature_ || ||18 ||ab welcher Temperatur soll Beschattet werden, immer in Abhängigkeit der anderen einbezogenen Sensorwert&lt;br /&gt;
|-&lt;br /&gt;
|ASC_ShadingMode ||absent, always, off, home || off||wann soll die Beschattung nur stattfinden&lt;br /&gt;
|-&lt;br /&gt;
|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!!!&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Shading_WaitingPeriod || ||1200 ||wie viele Sekunden soll gewartet werden bevor eine weitere Auswertung der Sensordaten für die Beschattung stattfinden soll&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|ASC_ShuttersPlace || window, terrace || ||wenn dieses Attribut auf &#039;&#039;terrace&#039;&#039; gesetzt ist und das Residents-Device in den Status &#039;&#039;absent&#039;&#039; geht, &#039;&#039;selfDefence&#039;&#039; aktiv ist und das Fenster geöffnet ist, wird das Rollo  geschlossen. Wenn ein twostate Senso genutzt wird und dieses Attribut auf &#039;&#039;terrace&#039;&#039; gesetzt ist wird ASC_Ventilate_Pos ignoriert und das Rollo wird beim öffnen des Fenster komplett geöffnet. Wenn dieses Attribut auf &#039;&#039;window&#039;&#039; 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 &#039;&#039;windows oder terrace&#039;&#039; vollständig geschlossen.&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Sleep_Pos || || ||in 10er-Schritten von 0 bis 100, default Vorgabe ist abhängig vom Attribut &#039;&#039;ASC.&#039;&#039; Position wird angefahren wenn Bedingung für modeDown aktiv ist. Hiermit kann z.B. das komplette abendliche Schließen des Rollos begrenzt werden.&lt;br /&gt;
|-&lt;br /&gt;
|ASC_TempSensor || || ||DEVICENAME[:READINGNAME] - der Inhalt ist eine Kombination aus Device und Reading für die Außentemperatur&lt;br /&gt;
|-&lt;br /&gt;
|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!!!&lt;br /&gt;
|-&lt;br /&gt;
|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!!!&lt;br /&gt;
|-&lt;br /&gt;
|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!!!&lt;br /&gt;
|-&lt;br /&gt;
|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!!!&lt;br /&gt;
|-&lt;br /&gt;
|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!!! &lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|ASC_WiggleValue || ||5 ||Wert, um welchen sich die Position des Rollladens bei &#039;&#039;Wiggle&#039;&#039; ändern soll &lt;br /&gt;
|-&lt;br /&gt;
|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: &#039;50:20 ClosedPosition&#039;)&lt;br /&gt;
|-&lt;br /&gt;
|ASC_WindProtection ||on, off || ||soll der Rollladen beim Windschutz beachtet werden. on=JA, off=NEIN.&lt;br /&gt;
|-&lt;br /&gt;
|ASC_WindowRec || ||none ||Name des Fensterkontakts, an welchen Fenster der Rollladen angebracht ist. WINDOWREC:[READING], Name des Fensterkontaktes, an dessen Fenster der Rollladen angebracht ist. Reading ist optional&lt;br /&gt;
|-&lt;br /&gt;
|ASC_WindowRec_PosAfterDayClosed ||open, lastManual ||open ||Name des Fensterkontakts, an welchen Fenster der Rollladen angebracht ist. Sein Reading &#039;&#039;state&#039;&#039; muss die Werte &#039;&#039;open&#039;&#039;, &#039;&#039;closed&#039;&#039; oder &#039;&#039;tilted&#039;&#039; enthalten.&lt;br /&gt;
|-&lt;br /&gt;
|ASC_WindowRec_subType ||twostate, threestate ||twostate||Typ des verwendeten Fensterkontaktes: twostate (optisch oder magnetisch) oder threestate (Drehgriffkontakt)&lt;br /&gt;
|-&lt;br /&gt;
| || || ||&lt;br /&gt;
| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| || || ||    &lt;br /&gt;
|-  &lt;br /&gt;
| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| || || ||        &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Hilfsmittel ==&lt;br /&gt;
{{Hinweis|Die Device-Namen sind auf die eigene Installation anzupassen.}}&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Codezeilen sind im [[Import von Code Snippets|RAW]]-Format.}}&lt;br /&gt;
&lt;br /&gt;
{{Randnotiz|RNTyp=g|RNText= Stand 2019-05-03&lt;br /&gt;
* Erfolgreich getestet mit Homematic Devices, Beta-User&lt;br /&gt;
* Die Farbgebung entspricht dem Standard, wenn unter dem Style f18 der Farbpreset &#039;&#039;light&#039;&#039; gewählt wird.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== readingsGroup für Level ===&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:65%;word-wrap: break-word;&amp;quot;&amp;gt;defmod rg_ASC_Rolllaeden_Level readingsGroup &amp;lt;Gerät&amp;gt;,&amp;lt;Stand&amp;gt;,&amp;lt;Schliessen bis&amp;gt;,&amp;lt;Öffnen auf&amp;gt;,&amp;lt;Beschattung&amp;gt;,&amp;lt;Komfort&amp;gt;,&amp;lt;Lüften&amp;gt;,&amp;lt;Privacy&amp;gt; (Rollladen_.*|Jalousie_.*)..:level,!?ASC_Closed_Pos,!?ASC_Open_Pos,!?ASC_Shading_Pos,!?ASC_ComfortOpen_Pos,!?ASC_Ventilate_Pos,!?ASC_PrivacyDown_Pos&lt;br /&gt;
attr rg_ASC_Rolllaeden_Level commands {level =&amp;gt; &#039;pct:selectnumbers,0,5,100,0,lin&#039;,\&lt;br /&gt;
ASC_Closed_Pos =&amp;gt; &#039;ASC_Closed_Pos:selectnumbers,0,5,100,0,lin&#039;,\&lt;br /&gt;
ASC_Open_Pos =&amp;gt; &#039;ASC_Open_Pos:selectnumbers,0,5,100,0,lin&#039;,\&lt;br /&gt;
ASC_Shading_Pos =&amp;gt; &#039;ASC_Shading_Pos:selectnumbers,0,5,100,0,lin&#039;,\&lt;br /&gt;
ASC_Ventilate_Pos =&amp;gt; &#039;ASC_Ventilate_Pos:selectnumbers,0,5,100,0,lin&#039;,\&lt;br /&gt;
ASC_ComfortOpen_Pos =&amp;gt; &#039;ASC_ComfortOpen_Pos:selectnumbers,0,5,100,0,lin&#039;,\&lt;br /&gt;
ASC_PrivacyDown_Pos =&amp;gt; &#039;ASC_PrivacyDown_Pos:selectnumbers,0,5,100,0,lin&#039;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== readingsGroup für Zeiten ===&lt;br /&gt;
[[Bild:ReadingsGroup ASC times.png|thumb|right|ReadingsGroup - Zeitenbeispiel]]&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:65%;word-wrap: break-word;&amp;quot;&amp;gt;defmod rg_ASC_Rolllaeden_Times readingsGroup &amp;lt;Gerät&amp;gt;,&amp;lt;Position&amp;gt;,&amp;lt;Time_Up_Early&amp;gt;,&amp;lt;Time_Up_Late&amp;gt;,&amp;lt;Time_Up_WE/Hol&amp;gt;,&amp;lt;Time_Down_Early&amp;gt;,&amp;lt;Time_Down_Late&amp;gt;,&amp;lt;Mode_Down&amp;gt;,&amp;lt;Mode_Up&amp;gt; \&lt;br /&gt;
 (.*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&lt;br /&gt;
attr rg_ASC_Rolllaeden_Times commands {level =&amp;gt; &#039;pct:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100&#039;, \&lt;br /&gt;
 ASC_Time_Down_Early =&amp;gt; &#039;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&#039;, \&lt;br /&gt;
 ASC_Time_Down_Late  =&amp;gt; &#039;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&#039;, \&lt;br /&gt;
 ASC_Time_Up_WE_Holiday =&amp;gt; &#039;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&#039;,\&lt;br /&gt;
 ASC_Time_Up_Early =&amp;gt; &#039;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&#039;,  \&lt;br /&gt;
 ASC_Time_Up_Late =&amp;gt; &#039;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&#039;, \&lt;br /&gt;
 ASC_Mode_Down =&amp;gt; &#039;ASC_Mode_Down:always,absent,off&#039;, \&lt;br /&gt;
 ASC_Mode_Up =&amp;gt; &#039;ASC_Mode_Up:always,absent,off&#039; }&lt;br /&gt;
attr rg_ASC_Rolllaeden_Times room Rollladen&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[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:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:65%;word-wrap: break-word;&amp;quot;&amp;gt;defmod rg_ASC_Rolllaeden_Times readingsGroup &amp;lt;Gerät&amp;gt;,&amp;lt;Stand&amp;gt;,&amp;lt;Time_Up_Early  &amp;gt;,&amp;lt;Time_Up_WE  &amp;gt;,&amp;lt;Time_Up_Late  &amp;gt;,&amp;lt;Time_Down_Early&amp;gt;,&amp;lt;Time_Down_Late&amp;gt;,&amp;lt;Mode_Down&amp;gt;,&amp;lt;Mode_Up&amp;gt; (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&lt;br /&gt;
attr rg_ASC_Rolllaeden_Times commands {level =&amp;gt; &#039;pct:selectnumbers,0,5,100,0,lin&#039;, \&lt;br /&gt;
dim =&amp;gt; &#039;dim:selectnumbers,0,5,99,0,lin&#039;,\&lt;br /&gt;
position =&amp;gt; &#039;pct:selectnumbers,0,5,99,0,lin&#039;,\&lt;br /&gt;
ASC_Mode_Down =&amp;gt; &#039;ASC_Mode_Down:always,absent,off&#039;,\&lt;br /&gt;
ASC_Mode_Up =&amp;gt; &#039;ASC_Mode_Up:always,absent,off&#039;,\&lt;br /&gt;
ASC_Time_Down_Early =&amp;gt; &#039;ASC_Time_Down_Early:time&#039;, \&lt;br /&gt;
ASC_Time_Down_Late  =&amp;gt; &#039;ASC_Time_Down_Late:time&#039;,\&lt;br /&gt;
ASC_Time_Up_Early =&amp;gt; &#039;ASC_Time_Up_Early:time&#039;, \&lt;br /&gt;
ASC_Time_Up_Late =&amp;gt;&#039;ASC_Time_Up_Late:time&#039;,\&lt;br /&gt;
ASC_Time_Up_WE_Holiday =&amp;gt;&#039;ASC_Time_Up_WE_Holiday:time&#039;}&lt;br /&gt;
attr rg_ASC_Rolllaeden_Times room Rollladen&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  readingsGroup für die Beschattung ===&lt;br /&gt;
[[Bild:ReadingsGroup ASC shading.png|thumb|right|ReadingsGroup - Beschattungsbeispiel]]&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:65%;word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
defmod rg_ASC_Rolllaeden_Shading readingsGroup &amp;lt;Gerät&amp;gt;,&amp;lt;Modus&amp;gt;,&amp;lt;Position&amp;gt;,&amp;lt;Richtung&amp;gt;,&amp;lt;°links&amp;gt;,&amp;lt;°rechts&amp;gt;,&amp;lt;Elevation&amp;gt;,&amp;lt;Sunny&amp;gt;,&amp;lt;Cloudy&amp;gt;,&amp;lt;Min Temp&amp;gt; (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&lt;br /&gt;
attr rg_ASC_Rolllaeden_Shading alias Rollläden: Beschattung&lt;br /&gt;
attr rg_ASC_Rolllaeden_Shading commands {ASC_Shading_Pos =&amp;gt; &#039;ASC_Shading_Pos:knob,min:0,max:100,width:50,height:50,fgColor:#FF9900,bgColor:#CCCCCC,step:5,lineCap:round&#039;,\&lt;br /&gt;
ASC_Shading_Mode =&amp;gt; &#039;ASC_Shading_Mode:always,home,absent,off&#039;,\&lt;br /&gt;
ASC_Shading_Direction =&amp;gt; &#039;ASC_Shading_Direction:knob,min:0,max:360,width:50,height:50,fgColor:#FF9900,bgColor:#CCCCCC,step:1,cursor:true,lineCap:round&#039;,\&lt;br /&gt;
ASC_Shading_Angle_Left =&amp;gt; &#039;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&#039;,\&lt;br /&gt;
ASC_Shading_Angle_Right =&amp;gt; &#039;ASC_Shading_Angle_Right:knob,min:0,max:85,angleArc:85,width:50,height:50,fgColor:#FF9900,bgColor:#CCCCCC,step:5,lineCap:round,&#039;,\&lt;br /&gt;
ASC_Shading_MinMax_Elevation =&amp;gt; &#039;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&#039;,\&lt;br /&gt;
ASC_Shading_StateChange_Sunny =&amp;gt; &#039;ASC_Shading_StateChange_Sunny:knob,min:100,max:40000,angleArc:85,rotation:anticlockwise,width:50,height:50,fgColor:#FF9900,bgColor:#CCCCCC,step:20,lineCap:round,angleOffset:270&#039;,\&lt;br /&gt;
ASC_Shading_StateChange_Cloudy =&amp;gt; &#039;ASC_Shading_StateChange_Cloudy:knob,min:100,max:40000,angleArc:85,width:50,height:50,fgColor:#FF9900,bgColor:#CCCCCC,step:20,lineCap:round,&#039;,\&lt;br /&gt;
ASC_Shading_Min_OutsideTemperature =&amp;gt; &#039;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&#039;}&lt;br /&gt;
attr rg_ASC_Rolllaeden_Shading room Rollladen&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Anderes {{Link2Forum|Topic=99980|Message=946357|LinkText=Foren-Beispiel}} für eine RG zu Beschattung (für V. 0.6.x):&lt;br /&gt;
[[Bild:ReadingsGroup ASC shading2.png|thumb|right|ReadingsGroup - Beschattungsbeispiel]]&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:65%;word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
defmod rg_ASC_Shading readingsGroup &amp;lt;Gerät&amp;gt;,&amp;lt;Grad&amp;gt;,&amp;lt;Position&amp;gt;,&amp;lt;Mode&amp;gt;,&amp;lt;Links&amp;gt;,&amp;lt;Rechts&amp;gt;,&amp;lt;Wait&amp;gt;,&amp;lt;ShadeIn&amp;gt;,&amp;lt;ShadeOut&amp;gt;,&amp;lt;Elevation&amp;gt;,&amp;lt;Temperature&amp;gt;,&amp;lt;Device&amp;gt;\&lt;br /&gt;
(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\&lt;br /&gt;
&lt;br /&gt;
attr rg_ASC_Shading commands {ASC_Shading_Direction =&amp;gt; &#039;ASC_Shading_Direction:129,255,309&#039;,\&lt;br /&gt;
ASC_Shading_Pos =&amp;gt; &#039;ASC_Shading_Pos:selectnumbers,0,5,100,0,lin&#039;,\&lt;br /&gt;
ASC_Shading_Mode =&amp;gt; &#039;ASC_Shading_Mode:absent,always,off,home&#039;,\&lt;br /&gt;
ASC_Shading_Angle_Left =&amp;gt; &#039;ASC_Shading_Angle_Left:selectnumbers,0,5,100,0,lin&#039;,\&lt;br /&gt;
ASC_Shading_Angle_Right =&amp;gt; &#039;ASC_Shading_Angle_Right:selectnumbers,0,5,100,0,lin&#039;,\&lt;br /&gt;
ASC_Shading_WaitingPeriod =&amp;gt; &#039;ASC_Shading_WaitingPeriod:selectnumbers,0,60,1200,0,lin&#039;,\&lt;br /&gt;
ASC_Shading_StateChange_Sunny =&amp;gt; &#039;ASC_Shading_StateChange_Sunny:selectnumbers,0,20,1000,0,lin&#039;,\&lt;br /&gt;
ASC_Shading_StateChange_Cloudy =&amp;gt; &#039;ASC_Shading_StateChange_Cloudy:selectnumbers,0,20,1000,0,lin&#039;,\&lt;br /&gt;
ASC_Shading_MinMax_Elevation =&amp;gt;\&lt;br /&gt;
&#039;ASC_Shading_Min_Elevation:selectnumbers,0,1,40,0,lin&#039; ,\&lt;br /&gt;
ASC_Shading_Min_OutsideTemperature =&amp;gt;\&lt;br /&gt;
&#039;ASC_Shading_Min_OutsideTemperature:selectnumbers,0,1,30,0,lin&#039;}&lt;br /&gt;
attr rg_ASC_Shading room Rollladen&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  readingsGroup für FIBARO Roller Shutter FGR-222 Devices ===&lt;br /&gt;
{{Randnotiz|RNTyp=g|RNText=Getestet von majestro84, Stand 2019-01-28.&lt;br /&gt;
* https://forum.fhem.de/index.php/topic,92628.msg897099.html#msg897099&lt;br /&gt;
* Die Farbgebung entspricht dem Standard, wenn unter dem Style f18 der Farbpreset &#039;&#039;dark&#039;&#039; gewählt wird}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:ASC Jalousien Times.JPG|thumb|right|Beispiel]]&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:65%;word-break: break-all;word-wrap: break-word;&amp;quot;&amp;gt;define ASC_Jalousien_Times readingsGroup &amp;lt;Gerät&amp;gt;,&amp;lt;Stand&amp;gt;,&amp;lt;Time_Up_Early&amp;gt;,&amp;lt;Time_Up_WE&amp;gt;,&amp;lt;Time_Up_Late&amp;gt;,&amp;lt;Time_Down_Early&amp;gt;,&amp;lt;Time_Down_Late&amp;gt;,&amp;lt;Mode_Down&amp;gt;,&amp;lt;Mode_Up&amp;gt;,&amp;lt;PartyMode&amp;gt;,&amp;lt;LockOut&amp;gt; (.*_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&lt;br /&gt;
&lt;br /&gt;
 attr ASC_Jalousien_Times commands {position =&amp;gt; &#039;dim:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,99&#039;,&lt;br /&gt;
 ASC_Mode_Down =&amp;gt; &#039;ASC_Mode_Down:always,absent,off&#039;,&lt;br /&gt;
 ASC_Mode_Up =&amp;gt; &#039;ASC_Mode_Up:always,absent,off&#039;,&lt;br /&gt;
 ASC_Partymode =&amp;gt; &#039;ASC_Partymode:on,off&#039;,&lt;br /&gt;
 ASC_LockOut =&amp;gt; &#039;ASC_LockOut:soft,hard,off&#039;,&lt;br /&gt;
 ASC_Time_Down_Early =&amp;gt; &#039;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&#039;, &lt;br /&gt;
 ASC_Time_Down_Late  =&amp;gt; &#039;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&#039;,&lt;br /&gt;
 ASC_Time_Up_Early =&amp;gt; &#039;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&#039;,&lt;br /&gt;
 ASC_Time_Up_Late =&amp;gt;&#039;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&#039;,&lt;br /&gt;
 ASC_Time_Up_WE_Holiday =&amp;gt; &#039;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&#039;}&lt;br /&gt;
 attr ASC_Jalousien_Times room Jalousien&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Bild:ASC Jalousien Level.JPG|thumb|right|Beispiel]]&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:65%;word-break: break-all;word-wrap: break-word;&amp;quot;&amp;gt; define Jalousien_Level readingsGroup &amp;lt;Gerät&amp;gt;,&amp;lt;Closed_Pos&amp;gt;,&amp;lt;Open_Pos&amp;gt;,&amp;lt;Comfort_Pos&amp;gt;,&amp;lt;Ventilate_Pos&amp;gt;,&amp;lt;PrivacyDown_Pos&amp;gt;,&amp;lt;Shading_Pos&amp;gt; (.*_Jalousie.*):!?ASC_Closed_Pos,!?ASC_Open_Pos,!?ASC_ComfortOpen_Pos,!?ASC_Ventilate_Pos,!?ASC_PrivacyDown_Pos,!?ASC_Shading_Pos&lt;br /&gt;
 attr Jalousien_Level commands { ASC_Closed_Pos =&amp;gt; &#039;ASC_Closed_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,99&#039;,&lt;br /&gt;
 ASC_Open_Pos =&amp;gt; &#039;ASC_Open_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,99&#039;,&lt;br /&gt;
 ASC_ComfortOpen_Pos =&amp;gt; &#039;ASC_ComfortOpen_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,99&#039;,&lt;br /&gt;
 ASC_Ventilate_Pos =&amp;gt; &#039;ASC_Ventilate_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,99&#039;,&lt;br /&gt;
 ASC_PrivacyDown_Pos =&amp;gt; &#039;ASC_PrivacyDown_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,99&#039;,&lt;br /&gt;
 ASC_Shading_Pos =&amp;gt; &#039;ASC_Shading_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,99&#039;}&lt;br /&gt;
 attr Jalousien_Level room Jalousien&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Einrichtungsbeispiel (nach Sonnenstand) ==&lt;br /&gt;
=== Zielsetzung und Vorgaben ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Vorarbeiten ===&lt;br /&gt;
Im global-Device sind Angaben zu latitude und longitude vorhanden, holiday2we wie folgt&amp;lt;ref&amp;gt;&#039;&#039;ferien&#039;&#039; ist eine automatisiert erstellte holiday-Datei nach diesem {{Link2Forum|Topic=85759|Message=885883|LinkText=Foren-Beitrag}}.&amp;lt;/ref&amp;gt;:&lt;br /&gt;
 attr global holiday2we bw,ferien&lt;br /&gt;
Weitere Angaben benötigen wir zunächst nicht, die Festlegung eines Astro-Devices erfolgt hier erst im Rahmen der Beschattung. &lt;br /&gt;
Dann erfolgt das &#039;&#039;Define des ASC-Devices&#039;&#039; wie oben beschrieben:&lt;br /&gt;
&amp;lt;code&amp;gt;define Rollladenautomatik AutoShuttersControl&amp;lt;/code&amp;gt;&lt;br /&gt;
Folgen die einzubindenden Rollladenaktoren einem einheitlichen Namensschema, können diese sodann z.B. mit &lt;br /&gt;
 attr (Jalousie|Rollladen)_.* ASC 2&lt;br /&gt;
auf einen Rutsch mit dem passenden ASC-Typ gekennzeichnet werden.  &lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Achtung: Das AutoShuttersControl-Device selbst darf kein ASC-Attribut bekommen!}}&lt;br /&gt;
&lt;br /&gt;
Dann verteilen wir mir &lt;br /&gt;
 set Rollladenautomatik scanForShutters&lt;br /&gt;
die nachfolgend weiter zu bearbeitenden Attribute.&lt;br /&gt;
=== Schließen morgens und abends ===&lt;br /&gt;
{{Randnotiz|RNTyp=g|RNText=Alternative: Fahren nach brightness:&lt;br /&gt;
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 (&#039;&#039;ASC_BrightnessSensor&#039;&#039; etc.), bei dessen Überschreitung geöffnet bzw. Unterschreitung geschlossen werden soll.}}&lt;br /&gt;
==== Konfiguration des ASC-Devices ====&lt;br /&gt;
Da wir sonnenstandsabhängig Fahrzeiten wollen, legen wir erst einmal fest, dass dies morgens und abends berücksichtigt werden soll:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
attr Rollladenautomatik ASC_autoAstroModeEvening CIVIL&lt;br /&gt;
attr Rollladenautomatik ASC_autoAstroModeMorning CIVIL&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Aus der Angabe &#039;&#039;CIVIL&#039;&#039; 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.&lt;br /&gt;
Bei allen Fensteröffnungen soll auf eine Lüften-Position gefahren werden, also schalten wir diese Funktion ebenfalls zentral an&amp;lt;ref&amp;gt;Sonst wird bei threeState-Sensoren nur bei &#039;&#039;tilted&#039;&#039; auf die in &#039;&#039;ASC_Ventilate_Pos&#039;&#039; gefahren.&amp;lt;/ref&amp;gt;:&lt;br /&gt;
 attr Rollladenautomatik ASC_autoShuttersControlComfort on &lt;br /&gt;
Zuletzt legen wir noch einen Temperatur-Sensor fest. Dieser wird beim Frostschutz sowie bei der Beschattung berücksichtigt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
attr Rollladenautomatik ASC_tempSensor Aussentemperatur_Nord:temperature&lt;br /&gt;
attr Rollladenautomatik ASC_freezeTemp 3&lt;br /&gt;
&amp;lt;/pre&amp;gt;{{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)!}} &lt;br /&gt;
&lt;br /&gt;
tbd: &lt;br /&gt;
* Rain&lt;br /&gt;
* Wind&lt;br /&gt;
==== Konfiguration der Rollladendevices ====&lt;br /&gt;
{{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.}}&lt;br /&gt;
&lt;br /&gt;
===== Fahrzeiten =====&lt;br /&gt;
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.&lt;br /&gt;
===== Bewohner =====&lt;br /&gt;
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 &#039;&#039;ASC_Roommate_Device&#039;&#039; und &#039;&#039;ASC_Roommate_Reading&#039;&#039; einem Rollladen zugeordnet werden. Ist einer der Bewohner &#039;&#039;asleep&#039;&#039;, wird morgens erst geöffnet, wenn auch der letzte Roommate nicht mehr &#039;&#039;asleep&#039;&#039; ist.&lt;br /&gt;
===== Fensterkontakte  =====&lt;br /&gt;
Dann werden ggf. vorhandene Fensterkontakte mit &#039;&#039;ASC_WindowRec&#039;&#039; zugeordnet und der Sensortyp mit &#039;&#039;ASC_WindowRec_subType&#039;&#039; festgelegt. Im Falle von threeState-Sensoren wird das übergreifende &#039;&#039;ASC_autoShuttersControlComfort&#039;&#039; beachtet, wobei dann bei vollständiger Öffnung des Fensters auf den in &#039;&#039;ASC_ComfortOpen_Pos&#039;&#039; festgelegten Wert gefahren wird.&lt;br /&gt;
===== Frostschutz =====&lt;br /&gt;
Zuletzt können die Attribute &#039;&#039;ASC_Antifreeze&#039;&#039; und &#039;&#039;ASC_Antifreeze_Pos&#039;&#039; festgelegt werden, wenn die Frostschutzfunktion aktiviert werden soll.&lt;br /&gt;
&lt;br /&gt;
=== Beschattung ===&lt;br /&gt;
==== Konfiguration des ASC-Devices ====&lt;br /&gt;
IM ASC DEVICE das Reading &amp;quot;controlShading&amp;quot; mit dem Wert on, sowie ein Astro/Twilight Device im Attribut &amp;quot;ASC_twilightDevice&amp;quot; und das Attribut &amp;quot;ASC_tempSensor&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Konfiguration der Rollladendevices ====&lt;br /&gt;
Ihr benötigt einen Helligkeitssensor als Attribut &amp;quot;ASC_BrightnessSensor&amp;quot;, sofern noch nicht vorhanden. Findet der Sensor nur für die Beschattung Verwendung ist der Wert DEVICENAME[:READING] ausreichend.&lt;br /&gt;
Alle weiteren Attribute sind optional und wenn nicht gesetzt mit Default-Werten belegt. Ihr solltet sie dennoch einmal anschauen und entsprechend Euren Gegebenheiten setzen. Die Werte für die Fensterposition und den Vor- Nachlaufwinkel &#039;&#039;(ASC_Shading_InOutAzimuth)&#039;&#039; sowie die Grenzwerte für &amp;lt;code&amp;gt;&#039;&#039;ASC_shading_StateChange_SunnyCloudy&#039;&#039;&amp;lt;/code&amp;gt; solltet ihr besondere Beachtung dabei schenken. &lt;br /&gt;
&lt;br /&gt;
==== Bedingungen ====&lt;br /&gt;
Damit die Beschattung startet müssen &#039;&#039;&#039;alle&#039;&#039;&#039; Bedingungen erfüllt sein. Entschattet wird sobald &#039;&#039;&#039;einer&#039;&#039;&#039; der Bedingungen wegfällt und die Zeit aus &amp;lt;code&amp;gt;ASC_Shading_WaitingPeriod&amp;lt;/code&amp;gt; abgelaufen ist.&lt;br /&gt;
&lt;br /&gt;
Der Sonnensensor &amp;lt;ASC_BrightnessSensor&amp;gt; muss mindestens 2 Messwerte liefern, bevor das ASC-Modul in die Beschattungsposition fährt! Beim (zeitlich gesehen) ersten Messwert wird der Zustand &#039;&#039;in-reserved&#039;&#039; eingenommen und erst beim zweiten Messwert dann der Zustand &#039;&#039;in shading&#039;&#039; eingenommen. Die Anzahl der Messwerte ist abhängig vom &amp;quot;moving average window&amp;quot;, der mit dem dritten Parameter des Attributs &#039;&#039;ASC_Shading_StateChange_SunnyCloudy&#039;&#039; konfiguriert wird.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Von Standardwerten ausgehend ist nachfolgender Ablauf angestrebt:&#039;&#039;&#039;   &lt;br /&gt;
# Ein Event vom Astro oder Helligkeits Device kommt -&amp;gt; sind alle Werte innerhalb des Arbeitsbereiches, ändert sich der ASC Info-Zustand im Rollo von xx auf „in reserved“ (Beschattung vorbereitet)&lt;br /&gt;
# Ein erneutes Event vom Astro oder Helligkeits Device kommt -&amp;gt; Überprüfung der Werte -&amp;gt; sind diese weiterhin gegeben folgt der Wechsel von „in reserved“ auf „in“ (Beschattung aktiv)&lt;br /&gt;
# Bei Verwendung von &#039;&#039;ASC_Shading_StateChange_SunnyCloudy&#039;&#039; 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. &lt;br /&gt;
# Die Zeiten &#039;&#039;ASC_Shading_WaitingPeriod&#039;&#039; und &#039;&#039;ASC_BlockingTime_afterManual&#039;&#039; können hier zusätzlich für eine Verzögerung sorgen. &lt;br /&gt;
&#039;&#039;&#039;Wichtig zu beachten:&#039;&#039;&#039; 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 Beschattungsfunltion greift. &lt;br /&gt;
&lt;br /&gt;
Wenn das Rollo einmal aus der Beschattung manuell (im Rollo Device muss bei &#039;&#039;ASC_ShuttersLastDrive manuel&#039;&#039; 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.&lt;br /&gt;
&lt;br /&gt;
=== Weitere Funktionen ===&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Beschreibung WeekendHoliday Funktion im Brightnessbetrieb.&#039;&#039;&#039; ====&lt;br /&gt;
Wenn Wochenende oder Feiertag ist und WeekendHoliday aktiviert wurde und im Rollo das Attribut ASC_Time_Up_WE_Holiday gesetzt ist dann wird ausschließlich zur angebenden ASC_Time_Up_WE_Holiday Zeit gefahren ungeachtet des Brightnesswertes.&lt;br /&gt;
&lt;br /&gt;
==== Privacy ====&lt;br /&gt;
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&lt;br /&gt;
&lt;br /&gt;
==== BlockingTime====&lt;br /&gt;
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.&lt;br /&gt;
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.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==== wiggle====&lt;br /&gt;
Mit einem &amp;lt;code&amp;gt;set &amp;lt;ASC-Device&amp;gt; wiggle&amp;lt;/code&amp;gt; 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.&lt;br /&gt;
==== Partymode ====&lt;br /&gt;
Dieser wird am ASC-Device selbst aktiviert mittels &amp;lt;code&amp;gt;set &amp;lt;ASC-Device&amp;gt; partyMode on&amp;lt;/code&amp;gt;. Alle Rollladen-Devices, welche das Attribut &#039;&#039;ASC_Partymode&#039;&#039; auf &#039;&#039;on&#039;&#039; 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 &amp;lt;code&amp;gt;set ASC-Device partyMode off&amp;lt;/code&amp;gt; ausgeführt.&lt;br /&gt;
==== lock-out ====&lt;br /&gt;
Man kann mit dem Befehl &amp;lt;code&amp;gt; set &amp;lt;ASC-Device&amp;gt; hardLockOut&amp;lt;/code&amp;gt; auf einen Schlag alle Rollos sperren welche &amp;lt;code&amp;gt; attr &amp;lt;ROLLO-Device&amp;gt; ASC_LockOut hard&amp;lt;/code&amp;gt; gesetzt haben.&lt;br /&gt;
Das ist dafür gedacht, wenn Du eine gewisse Zeit den Rolloaktor sperren willst. Zum Beispiel das die Kinder nicht schalten sollen.&lt;br /&gt;
&lt;br /&gt;
== Sonstige Hinweise und Problemlösungen ==&lt;br /&gt;
* 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 &amp;lt;code&amp;gt;set &amp;lt;ASC-Modul&amp;gt; expert 1&amp;lt;/code&amp;gt; erweiterte Informationen bezüglich des NotifyDevs unter set und get aktiviert und anschließend ein &amp;lt;code&amp;gt;set &amp;lt;ASC-Modul&amp;gt; createNewNotifyDev&amp;lt;/code&amp;gt; ausgeführt.&lt;br /&gt;
&lt;br /&gt;
* Hin und wieder berichten Nutzer davon, wenn Sie die &#039;&#039;Privacy Funktion&#039;&#039; nutzen, dass sich im NOTIFYDEV anstelle des Device Namen ein Raumname befindet. Diese Problem kann damit gelöst werden, dass in dem betroffenen &#039;&#039;&#039;Rollo Device&#039;&#039;&#039; das Atribut  &amp;lt;code&amp;gt;attr event-on-change .*&amp;lt;/code&amp;gt; gesetzt wird.&lt;br /&gt;
&#039;&#039;&#039;Wichtig!&#039;&#039;&#039; Nicht verwechseln mit dem ASC Device dort darf &amp;lt;code&amp;gt;attr event-on-change&amp;lt;/code&amp;gt; &#039;&#039;&#039;nicht&#039;&#039;&#039; gesetzt sein!&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
==== Spezielle Hardware ====&lt;br /&gt;
{{Link2Forum|Topic=101182|LinkText=&amp;quot;Thread zu getesteter Hardware im Forum&amp;quot;}}&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* {{Link2Forum|Topic=92628|LinkText=&amp;quot;Thread zum Modul im Forum&amp;quot;}}&lt;br /&gt;
* {{Link2Forum|Topic=90751|LinkText=&amp;quot;Thread zur Entwicklung im Forum&amp;quot;}} &lt;br /&gt;
* {{Link2Forum|Topic=73964|LinkText=&amp;quot;Thread zu den Scripten von user cluni&amp;quot;}}, die der Entwicklung des Moduls zugrunde liegen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Code Snippets]]&lt;br /&gt;
[[Kategorie:Rollladensteuerung]]&lt;/div&gt;</summary>
		<author><name>Stephan1965</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=NUKI&amp;diff=32741</id>
		<title>NUKI</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=NUKI&amp;diff=32741"/>
		<updated>2020-02-14T22:58:31Z</updated>

		<summary type="html">&lt;p&gt;Stephan1965: Befehl nicht vorhanden&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float:right&amp;quot;&amp;gt;&lt;br /&gt;
{{Infobox Modul&lt;br /&gt;
|ModPurpose=Einbindung der Nuki Bridge HW/APP&lt;br /&gt;
|ModType=d&lt;br /&gt;
|ModCmdRef=NUKIBridge&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=73_NUKIBridge.pm&lt;br /&gt;
|ModOwner=CoolTux &amp;lt;br /&amp;gt;({{Link2FU|13684|Forum}} / [[Benutzer:CoolTux|Wiki]])&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox Modul&lt;br /&gt;
|ModPurpose=Steuern von Nuki Smartlocks über NUKIBridge&lt;br /&gt;
|ModType=d&lt;br /&gt;
|ModCmdRef=NUKIDevice&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=73_NUKIDevice.pm&lt;br /&gt;
|ModOwner=CoolTux &amp;lt;br /&amp;gt;({{Link2FU|13684|Forum}} / [[Benutzer:CoolTux|Wiki]])&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==NUKIBridge==&lt;br /&gt;
NUKIBridge - Steuert das Nuki Smartlock über die Nuki Bridge &lt;br /&gt;
&lt;br /&gt;
Das Nuki Bridge Modul verbindet FHEM mit der Nuki Bridge und liest dann alle auf der Bridge verfügbaren Smartlocks ein. Desweiteren werden automatisch die erkannten Smartlocks als eigenständige Devices angelegt.&lt;br /&gt;
&lt;br /&gt;
Für eine aktive Callback Funktion müssen noch zwei Attribute der Bridge eingerichtet werden:&lt;br /&gt;
* webhookFWinstance - zu verwendende Webinstanz (darf keine Passwortabfrage beinhalten)&lt;br /&gt;
* webhookHttpHostname - IP oder FQDN des FHEM Servers&lt;br /&gt;
&lt;br /&gt;
Voraussetzung für ein fehlerfreies Laden ist die Installation von JSON (libperl-json).&lt;br /&gt;
&lt;br /&gt;
===Definition===&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; NUKIBridge &amp;lt;HOST&amp;gt; &amp;lt;API-TOKEN&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel:&#039;&#039;&#039;&lt;br /&gt;
:&amp;lt;code&amp;gt;define NBridge1 NUKIBridge 192.168.0.23 F34HK6&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese Anweisung erstellt ein NUKIBridge Device mit Namen NBridge1 und der IP 192.168.0.23 sowie dem Token F34HK6. Nach dem Anlegen des Bridge Devices werden alle zur Verfügung stehende Smartlock automatisch in FHEM angelegt.&lt;br /&gt;
&lt;br /&gt;
===Readings===&lt;br /&gt;
* 0_nukiId - ID des ersten gefundenen Nuki Smartlocks&lt;br /&gt;
* 0_name - Name des ersten gefunden Nuki Smartlocks&lt;br /&gt;
* smartlockCount - Anzahl aller gefundenen Smartlock&lt;br /&gt;
* bridgeAPI - API Version der Bridge&lt;br /&gt;
* bridgeType - Hardware oder Software/App Bridge&lt;br /&gt;
* currentTime - aktuelle Zeit auf der Bridge zum zeitpunkt des Info holens&lt;br /&gt;
* firmwareVersion - aktuell auf der Bridge verwendete Firmwareversion&lt;br /&gt;
* hardwareId - ID der Hardware Bridge&lt;br /&gt;
* lastError - gibt die letzte HTTP Errormeldung wieder&lt;br /&gt;
* serverConnected - true/false gibt an ob die Hardwarebridge Verbindung zur Nuki-Cloude hat.&lt;br /&gt;
* serverId - gibt die ID des Cloudeservers wieder&lt;br /&gt;
* uptime - Uptime der Bridge in Sekunden&lt;br /&gt;
* wifiFirmwareVersion- Firmwareversion des Wifi Modules der Bridge&lt;br /&gt;
* Die vorangestellte Zahl ist forlaufend und gibt beginnend bei 0 die Eigenschaften Eines Smartlocks wieder.&lt;br /&gt;
&lt;br /&gt;
===Set===&lt;br /&gt;
* &amp;lt;s&amp;gt;autocreate - veranlasst ein erneutes Einlesen aller Smartlocks von der Bridge und falls noch nicht in FHEM vorhanden das automatische Anlegen.&amp;lt;/s&amp;gt;&lt;br /&gt;
* callbackRemove - löschen einer Callback Instanz auf der Bridge. Die Instanz ID kann mittels get callbackList ermittelt werden&lt;br /&gt;
* clearLog - löscht das Logfile auf der Bridge&lt;br /&gt;
* fwUpdate - schaut nach einer neueren Firmware und installiert diese, sofern vorhanden&lt;br /&gt;
* info - holt aktuelle Informationen über die Bridge&lt;br /&gt;
* reboot - veranlasst ein reboot der Bridge&lt;br /&gt;
&lt;br /&gt;
===Get===&lt;br /&gt;
* callbackList - gibt die Liste der eingetragenen Callback URLs wieder. Die Bridge nimmt maximal drei auf&lt;br /&gt;
* logFile - Zeigt das Logfile der Bridge an&lt;br /&gt;
&lt;br /&gt;
===Attribute===&lt;br /&gt;
* disable - deaktiviert die Nuki Bridge&lt;br /&gt;
&lt;br /&gt;
==NUKIDevice==&lt;br /&gt;
NUKIDevice - Steuert das Nuki Smartlock&lt;br /&gt;
&lt;br /&gt;
Das Nuki Modul verbindet FHEM über die Nuki Bridge mit einem Nuki Smartlock. Es ist dann möglich das Schloss zu ver- und entriegeln. In der Regel werden die Nuki Devices automatisch durch das Bridgemodul angelegt. &lt;br /&gt;
&lt;br /&gt;
===Definition===&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; NUKIDevice &amp;lt;Nuki-Id&amp;gt; &amp;lt;IODev-Device&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel:&#039;&#039;&#039;&lt;br /&gt;
:&amp;lt;code&amp;gt;define Haustuer NUKIDevice 1 NBridge1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese Anweisung erstellt ein NUKIDevice mit Namen Haustuer, der NukiId 1 sowie dem IODev Device NBridge1. Nach dem Anlegen des Devices wird automatisch der aktuelle Zustand des Smartlocks aus der Bridge gelesen.&lt;br /&gt;
Damit das NUKIDevice auch Statusänderungen mitbekommt, die beispielsweise aus der nativen NUKI-App oder der manuellen Betätigung des Devices herrühren, ist es notwendig, die Attribute webhookFWinstance und webhookHttpHostname zu setzen.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;attr Haustuer webhookFWinstance WEB (Name der FHEMWEB Instanz)&amp;lt;/code&amp;gt;&lt;br /&gt;
:attr Haustuer webhookHttpHostname 192.168.0.1 (IP/FQDN vom FHEM Server)&lt;br /&gt;
&lt;br /&gt;
Zum Überprüfen kann die Funktion&lt;br /&gt;
:&amp;lt;code&amp;gt;get NUKIBridge callbackList&amp;lt;/code&amp;gt;&lt;br /&gt;
aufgerufen werden. Es sollte nur ein Callback eingetragen&lt;br /&gt;
sein, der in dieser Form hinterlegt sein sollte.&lt;br /&gt;
:&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;0 http://192.168.0.1:8083/fhem/NUKIDevice-123456789&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Readings===&lt;br /&gt;
* state - Status des Smartlock bzw. Fehlermeldung von Fehler vorhanden.&lt;br /&gt;
* lockState - aktueller Schließstatus: uncalibrated, locked, unlocked, unlocked (lock ‘n’ go), unlatched, locking, unlocking, unlatching, motor blocked, undefined&lt;br /&gt;
* succes - true, false; gibt des Status des letzten Schließbefehles wieder. Geklappt oder nicht geklappt.&lt;br /&gt;
* batteryCritical - ist die Batterie in einem kritischen Zustand? true, false&lt;br /&gt;
* battery - Status der Batterie, ok, low&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Set===&lt;br /&gt;
* statusRequest - ruft den aktuellen Status des Smartlocks von der Bridge ab&lt;br /&gt;
* lock - verschließen&lt;br /&gt;
* unlock - aufschließen&lt;br /&gt;
* unlatch - entriegeln/Falle öffnen&lt;br /&gt;
* locknGo - verschließen wenn gegangen&lt;br /&gt;
* locknGoWithUnlatch - verschließen nachdem die Falle geöffnet wurde&lt;br /&gt;
&lt;br /&gt;
===Attribute===&lt;br /&gt;
* disable - deaktiviert das Nuki Device&lt;br /&gt;
* webhookFWinstance - zu verwendene Webinstanz für den Callbackaufruf&lt;br /&gt;
* webhookHttpHostname - IP oder FQDN vom FHEM Server für den Callbackaufruf&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [https://nuki.io/de/ Webseite des Herstellers]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Türschlosssteuerung]]&lt;/div&gt;</summary>
		<author><name>Stephan1965</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ROLLO&amp;diff=31173</id>
		<title>ROLLO</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ROLLO&amp;diff=31173"/>
		<updated>2019-09-02T15:23:29Z</updated>

		<summary type="html">&lt;p&gt;Stephan1965: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:ROLLO}}&lt;br /&gt;
{{Infobox Modul&lt;br /&gt;
|ModPurpose=Rollo-Steuerung zur einfachen Anzeige/Programmierung&lt;br /&gt;
|ModType=h&lt;br /&gt;
|ModFTopic=95832&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef= ---- noch nicht Teil von FHEM ----&amp;gt;&lt;br /&gt;
|ModForumArea=Unterstützende Dienste&lt;br /&gt;
|ModTechName=44_ROLLO.pm&lt;br /&gt;
|ModOwner=KernSani}}&lt;br /&gt;
Das Modul [[ROLLO]] bietet eine einfache Möglichkeit, mit ein bis zwei Relais den Hoch-/Runterlauf eines Rolladen zu steuern und punktgenau anzuhalten. Außerdem wird die aktuelle Position in fhem abgebildet.&lt;br /&gt;
Über welche Hardware/Module die Ausgänge angesprochen werden ist dabei egal.&lt;br /&gt;
__TOC__&lt;br /&gt;
Das Modul unterstützt beliebige Konfigurationen welche Befehle ausgeführt werden müssen um die Hardware des Rollos zu steuern.&lt;br /&gt;
&lt;br /&gt;
* Die Rollo-Position wird in 10%-Schritten von 0% (offen) bis 100% (geschlossen) zwischengespeichert um auf der Oberfläche für jede Position ein Icon festlegen zu können. &lt;br /&gt;
&lt;br /&gt;
[[Datei:Rolladen Eintrag.PNG|right|thumb|400px|Verschiedene Ansichten des Rollo:offen, fährt gerade herunter, position 50, fährt gerade hoch, geschlossen]]&lt;br /&gt;
Vorteil dieses Moduls:&lt;br /&gt;
&lt;br /&gt;
Ist ein Rollo mit diesem Modul definiert kann man auf der Oberfläche per Klick das Rollo hoch/runter oder auf eine bestimmte Position fahren. Der aktuelle Status des Rollo (fährt hoch/runter,offen,geschlossen,etc.) wird angezeigt.&lt;br /&gt;
Die Oberflächenicons werden per devStateIcon gesteuert, Icons und Farben können für jeden Status individuell formatiert werden, die Standard Kommandos auf der Oberfläche (hier: offen, geschlossen, schlitz, Position) können ebenfalls per Attribut angepasst werden. Das Status-Icon ist anklickbar.&lt;br /&gt;
Beim Anlegen des Moduls werden die Attribute zur Darstellung in fhem mit Standardwerten angelegt, so dass man sich einiges an Tipparbeit sparen kann, aber trotzdem die Möglichkeit hat die Darstellung individuell anzupassen.&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Das eigentliche ansteuern des Rollo muss mit FHEM Befehlen ausführbar sein, diese Modul ist &amp;quot;nur&amp;quot; eine Oberfläche/Bedienmodul, kein Hardwaremodul.&lt;br /&gt;
&lt;br /&gt;
Wenn ROLLO installiert wurde, bevor es Bestandteil von FHEM wurde und lange kein Update gemacht wurde, wirst du die &amp;quot;position&amp;quot; readings und das entsprechende set Kommando vermissen. &amp;quot;position&amp;quot; wurde durch &amp;quot;pct&amp;quot; ersetzt, um Kompatibilität mit anderen Modulen [https://fhem.de/commandref_DE.html#AutoShuttersControl Automatic Shutter Control - ASC] sicher zu stellen. Bitte passe deine NOTIFYs/DOIFs entsprechend an.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Dieses Modul ist in der offiziellen FHEM-Auslieferung enthalten.}}&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Define ===&lt;br /&gt;
 define &amp;lt;name&amp;gt; ROLLO&lt;br /&gt;
&lt;br /&gt;
=== Attribute ===&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR/&amp;gt;Wertebereich !! Default-Wert !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|rl_type ||attr &amp;lt;Rollo-Device&amp;gt; rl_type [normal|HomeKit] ||||Typunterscheidung zur unterstützung verschiedener Hardware. Abhängig vom gewählten Typ wird die Richtung von der die pct gerechnet wird festgelegt:&lt;br /&gt;
&lt;br /&gt;
    normal = pct 0 ist offen, pct 100 ist geschlossen&lt;br /&gt;
    HomeKit = pct 100 ist offen, pct 0 ist geschlossen&lt;br /&gt;
|-&lt;br /&gt;
|rl_secondsDown||attr &amp;lt;Rollo-Device&amp;gt; rl_secondsDown &amp;lt;number&amp;gt; ||||Sekunden zum hochfahren&lt;br /&gt;
|-&lt;br /&gt;
|rl_secondsUp ||attr &amp;lt;Rollo-Device&amp;gt; rl_secondsUp &amp;lt;number&amp;gt; ||||Sekunden zum herunterfahren&lt;br /&gt;
|-&lt;br /&gt;
|rl_excessTop ||attr &amp;lt;Rollo-Device&amp;gt; rl_excessTop &amp;lt;number&amp;gt; ||||Zeit, die mein Rollo fahren muss, ohne dass sich die Rollo-pct ändert (bei mir fährt der Rollo noch in die Wand, ohne dass man es am Fenster sieht, die pct ist also schon bei 0%).&lt;br /&gt;
|-&lt;br /&gt;
|rl_excessBottom ||attr &amp;lt;Rollo-Device&amp;gt; rl_excessBottom &amp;lt;number&amp;gt; ||||(siehe excessTop)&lt;br /&gt;
|-&lt;br /&gt;
|rl_switchTime ||attr &amp;lt;Rollo-Device&amp;gt; rl_switchTime &amp;lt;number&amp;gt; ||||Zeit, die zwischen 2 gegensätzlichen Laufbefehlen pausiert werden soll, also wenn der Rollo z.B. gerade runter fährt und ich den Befehl gebe hoch zu fahren, dann soll 1 Sekunde gewartet werden bis der Motor wirklich zum stillstand kommt, bevor es wieder in die andere Richtung weiter geht. Dies ist die einzige Zeit, die nichts mit der eigentlichen Laufzeit des Motors zu tun hat, sondern ein Timer zwischen den Laufzeiten.&lt;br /&gt;
|-&lt;br /&gt;
|rl_resetTime ||attr &amp;lt;Rollo-Device&amp;gt; rl_resetTime &amp;lt;number&amp;gt; ||||Zeit, die beim Anfahren von Endpositionen (offen,geschlossen) der Motor zusätzlich an bleiben soll, um sicherzustellen, dass die Endposition wirklich angefahren wurde. Dadurch können Differenzen in der Positionsberechnung korrigiert werden.&lt;br /&gt;
|-&lt;br /&gt;
|rl_reactionTime ||attr &amp;lt;Rollo-Device&amp;gt; rl_reactionTime &amp;lt;number&amp;gt; ||||Zeit für den Motor zum reagieren&lt;br /&gt;
|-&lt;br /&gt;
|rl_autoStop ||attr &amp;lt;Rollo-Device&amp;gt; rl_autoStop [0|1] ||||Es muss kein Stop-Befehl ausgeführt werden, das Rollo stoppt von selbst.&lt;br /&gt;
|-&lt;br /&gt;
|rl_commandUp ||attr &amp;lt;Rollo-Device&amp;gt; rl_commandUp &amp;lt;string&amp;gt; ||||Es werden bis zu 3 beliebige Befehle zum hochfahren ausgeführt&lt;br /&gt;
|-&lt;br /&gt;
|rl_commandDown ||attr &amp;lt;Rollo-Device&amp;gt; rl_commandDown &amp;lt;string&amp;gt; ||||Es werden bis zu 3 beliebige Befehle zum runterfahren ausgeführt&lt;br /&gt;
|-&lt;br /&gt;
|rl_commandStop ||attr &amp;lt;Rollo-Device&amp;gt; rl_commandStop &amp;lt;string&amp;gt; ||||Befehl der zum Stoppen ausgeführt wird, sofern nicht commandStopDown bzw. commandStopUp definiert sind&lt;br /&gt;
|-&lt;br /&gt;
|rl_commandStopDown ||attr &amp;lt;Rollo-Device&amp;gt; rl_commandStopDown &amp;lt;string&amp;gt; ||||Befehl der zum stoppen ausgeführt wird, wenn der Rollo gerade herunterfährt. Wenn nicht definiert wird commandStop ausgeführt&lt;br /&gt;
|-&lt;br /&gt;
|rl_commandStopUp ||attr &amp;lt;Rollo-Device&amp;gt; rl_commandStopUp &amp;lt;string&amp;gt; ||||Befehl der zum Stoppen ausgeführt wird,wenn der Rollo gerade hochfährt. Wenn nicht definiert wird commandStop ausgeführt&lt;br /&gt;
|-&lt;br /&gt;
|rl_blockMode ||attr &amp;lt;Rollo-Device&amp;gt; rl_blockMode [blocked|force-open|force-closed|only-up|only-down|half-up|half-down|none] ||||wenn ich den Befehl blocked ausführe, dann wird aufgrund der blockMode-Art festgelegt wie mein Rollo reagieren soll:&lt;br /&gt;
&lt;br /&gt;
    blocked = Rollo lässt sich nicht mehr bewegen&lt;br /&gt;
    force-open = bei einem beliebigen Fahrbefehl wird Rollo hochgefahren&lt;br /&gt;
    force-closed = bei einem beliebigen Fahrbefehl wird Rollo runtergefahren&lt;br /&gt;
    only-up = Befehle zum runterfahren werden ignoriert&lt;br /&gt;
    only-down = Befehle zum hochfahren werden ignoriert&lt;br /&gt;
    half-up = es werden nur die Positionen 50-100 angefahren, bei pct &amp;lt;50 wird pct 50% angefahren,&lt;br /&gt;
    half-down = es werden nur die Positionen 0-50 angefahren, bei pct &amp;gt;50 wird pct 50 angefahren&lt;br /&gt;
    none = block-Modus ist deaktiviert&lt;br /&gt;
|-&lt;br /&gt;
|automatic-enabled ||attr &amp;lt;Rollo-Device&amp;gt; automatic-enabled [on|off] ||||Wenn auf off gestellt, haben Befehle über Modul ROLLO_Automatic keine Auswirkungen auf diesen Rollo&lt;br /&gt;
|-&lt;br /&gt;
|automatic-delay ||attr &amp;lt;Rollo-Device&amp;gt; automatic-delay &amp;lt;number&amp;gt; ||||Dieses Attribut wird nur fuer die Modulerweiterung ROLLADEN_Automatic benoetigt.&lt;br /&gt;
Hiermit kann einge Zeitverzoegerund fuer den Rolladen eingestellt werden, werden die Rolladen per Automatic heruntergefahren, so wird dieser um die angegebenen minuten spaeter heruntergefahren.&lt;br /&gt;
|-&lt;br /&gt;
|rl_forceDrive ||attr &amp;lt;Rollo-Device&amp;gt; rl_forceDrive [0|1] ||||open/closed wird ausgeführt, auch wenn das ROLLO bereits in der Zielposition ist&lt;br /&gt;
|-&lt;br /&gt;
|rl_noSetPosBlocked ||attr &amp;lt;Rollo-Device&amp;gt; rl_noSetPosBlocked [0|1] ||||Wenn deaktiviert, können Positionsn (pct) auch gesetzt werden, wenn der ROLLO geblockt ist. Nach dem unblocken wird die entsprechende Position angefahren.&lt;br /&gt;
|-&lt;br /&gt;
|||disableattr &amp;lt;Rollo-Device&amp;gt; disable [0|1] ||||Wenn deaktiviert, können keine set oder get commandos für den ROLLO ausgeführt werden.&lt;br /&gt;
|-&lt;br /&gt;
|||||||&lt;br /&gt;
|-&lt;br /&gt;
|||||||&lt;br /&gt;
|-&lt;br /&gt;
|||||||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Set ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Name !!set Befehl !!Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|open ||set &amp;lt;Rollo-Device&amp;gt; open ||Faehrt das Rollo komplett auf (pct 0)&lt;br /&gt;
|-&lt;br /&gt;
|closed ||set &amp;lt;Rollo-Device&amp;gt; closed||Faehrt das Rollo komplett zu (pct 100)&lt;br /&gt;
|-&lt;br /&gt;
|up ||set &amp;lt;Rollo-Device&amp;gt; up ||Faehrt das Rollo um 10 auf (pct +10)&lt;br /&gt;
|-&lt;br /&gt;
|down ||set &amp;lt;Rollo-Device&amp;gt; down ||Faehrt das Rollo um 10 zu (pct -10)&lt;br /&gt;
|-&lt;br /&gt;
|half || set &amp;lt;Rollo-Device&amp;gt; half ||Faehrt das Rollo zur haelfte runter bzw. hoch (pct 50)&lt;br /&gt;
|-&lt;br /&gt;
|stop ||set &amp;lt;Rollo-Device&amp;gt; stop ||Stoppt das Rollo&lt;br /&gt;
|-&lt;br /&gt;
|drive ||set &amp;lt;Rollo-Device&amp;gt; drive up 5||Fährt das Rollo in die angegebene Richtung für die angegebene Zeit (in Sekunden)&lt;br /&gt;
|-&lt;br /&gt;
|blocked ||set &amp;lt;Rollo-Device&amp;gt; blocked ||wenn aktiviert, kann der ROLLO nur noch eingeschränkt gesteuert werden. Siehe Attribut block_mode für Details.&lt;br /&gt;
|-&lt;br /&gt;
|unblocked ||set &amp;lt;Rollo-Device&amp;gt; unblocked ||Aktiviert einen geblockten ROLLO wieder für die normale Benutzung&lt;br /&gt;
|-&lt;br /&gt;
|pct ||set &amp;lt;Rollo-Device&amp;gt; pct &amp;lt;value&amp;gt; ||Faehrt das Rollo auf eine beliebige pct zwischen 0 (offen) - 100 (geschlossen)&lt;br /&gt;
|-&lt;br /&gt;
|reset ||set &amp;lt;Rollo-Device&amp;gt; reset &amp;lt;value&amp;gt; ||Sagt dem Modul in welcher pct sich der Rollo befindet&lt;br /&gt;
|-&lt;br /&gt;
|extern ||set &amp;lt;Rollo-Device&amp;gt; extern &amp;lt;value&amp;gt; ||Der Software mitteilen dass gerade Befehl X bereits ausgeführt wurde und nun z.B,. das berechnen der aktuellen pct gestartet werden soll&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Get ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Name !!set Befehl !!Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|version ||get &amp;lt;Rollo-Device&amp;gt; version ||Gibt die version des Modul Rollos aus&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Readings ===&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Name !!Wert !!Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|command||open,stop,closed||&lt;br /&gt;
|-&lt;br /&gt;
|desired_pct||0-100||Zielposition die angefahren werden soll (nur sinnvoll während das Rollo fährt)&lt;br /&gt;
|-&lt;br /&gt;
|drive-type||modul,extern||bei dem Befehl &amp;quot;set rollo extern ..&amp;quot; wird dieses attribut auf &amp;quot;extern&amp;quot; gestellt, sonst immer &amp;quot;modul&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|last_drive||drive-up,drive-down||die zuletzt benutzte Fahrtrichtung&lt;br /&gt;
|-&lt;br /&gt;
|pct||0-100||exakte Position des Rollo&lt;br /&gt;
|-&lt;br /&gt;
|state||open,closed,position-[0-100]||die Position gerundet auf ganze 10% Schritte, identisch mit dem Internal STATE&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
===Set===&lt;br /&gt;
 set RolladenWohnzimmer pct 50&lt;br /&gt;
 set RolladenWohnzimmer geschlossen&lt;br /&gt;
 set RolladenWohnzimmer offen &lt;br /&gt;
Drei Beispiele das Rollo-Modul anzuweisen verschiedene Positionen anzufahren.&lt;br /&gt;
&lt;br /&gt;
 set RolladenWohnzimmer extern stop&lt;br /&gt;
Das Rollo-Modul wird angewiesen den status auf &amp;quot;nicht fahren&amp;quot; zu setzen, die aktuelle Rollo-Position zu berechnen und als neue Position abzuspeichern. Der eigentliche Rollo-Stop-Befehl wird dabei aber nicht gesendet.&lt;br /&gt;
&lt;br /&gt;
 set RolladenWohnzimmer reset closed&lt;br /&gt;
In der Oberfläche von fhem wird für das Rollo die Position &amp;quot;geschlossen&amp;quot; gespeichert, ohne Berechnungen durchzuführen oder Hardware zu steuern. Wird evtl. benötigt wenn der Ist-Status von den Soll-Werten aus fhem abweicht.&lt;br /&gt;
&lt;br /&gt;
===Zusammenspiel mit externem Taster===&lt;br /&gt;
In einem Anwendungszenario hat ein Nutzer zusätzliche Taster an seinem Rollo-Motor über die er ihn ebenfalls steuern kann. &lt;br /&gt;
Die Taster selber senden keine Events an fhem, nur der Rollo-Motor.&lt;br /&gt;
Hier ein Beispiel wie das ganze für aussehen könnte und diese Taster in das ROLLO-Modul integriert werden:&lt;br /&gt;
&lt;br /&gt;
 define rollo_manuell_auf DOIF ([meinRollo_Kanal1] eq &amp;quot;on&amp;quot; and [?meinRolloModul] ne &amp;quot;drive-up&amp;quot;) (set meinRolloModul extern open) DOELSEIF ([meinRollo_Kanal1] eq &amp;quot;off&amp;quot; and [?meinRolloModul] eq &amp;quot;drive-up&amp;quot;) (set meinRolloModul extern stop)&lt;br /&gt;
 define rollo_manuell_ab  DOIF ([meinRollo_Kanal2] eq &amp;quot;on&amp;quot; and [?meinRolloModul] ne &amp;quot;drive-down&amp;quot;) (set meinRolloModul extern closed) DOELSEIF ([meinRollo_Kanal2] eq &amp;quot;off&amp;quot; and [?meinRolloModul] eq &amp;quot;drive-down&amp;quot;) (set meinRolloModul extern stop)&lt;br /&gt;
&lt;br /&gt;
meinRollo_Kanal1 und meinRollo_Kanal2 sind die Hardwarekanäle die in dem Rollo-Modul zum hochfahren/runterfahren benutzt werden. &lt;br /&gt;
Das erste DOIF prüft ob das Rollo hoch fährt, ohne das das Rollo-Modul davon etwas weis. Ist dem so wird dem Rollo Modul mithilfe des set &amp;lt;extern&amp;gt; mitgeteilt das das Rollo bereits gestartet wurde. Das Modul fängt an die Zeit zu zählen und aktualisiert den Status der Oberfläche auf &amp;quot;fahre hoch&amp;quot;.&lt;br /&gt;
IM DOELSEIF wird abgefragt ob das Rollo steht, obwohl das Modul denkt das Rollo würde noch fahren. Ist dem so wird wieder mithilfe des set &amp;lt;extern&amp;gt; dem Modul mitgeteilt das das Rollo gestoppt wurde. Das Modul berechnet nun aufgrund der gefahrenen Zeit die aktuelle Position und aktualisiert den Status der Oberfläche auf die Position.&lt;br /&gt;
&lt;br /&gt;
Das gleiche wird dann im zweiten DOIF nochmal für das herunterfahren gemacht.&lt;br /&gt;
&lt;br /&gt;
Man kann nun das Rollo sowohl über die Oberfläche als auch per Taster bedienen und fhem und der reale Ist-Status sind synchron. Ach eine gleichzeitige Bedienung ist möglich, Das Rollo startet z.B. aufgrund einer Automatisierung morgens zum hochfahren und man klickt schnell auf den Taster neben dem Bett und stoppt das ganze wieder.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
Thread im {{Link2Forum|Topic=95832|LinkText=Forum}} seit das Modul Bestandteil der offiziellen FHEM Auslieferung ist&lt;br /&gt;
&lt;br /&gt;
Thread im {{Link2Forum|Topic=47202|LinkText=Forum}} bevor das Modul Bestandteil von FHEM war&lt;/div&gt;</summary>
		<author><name>Stephan1965</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=AutoShuttersControl&amp;diff=31168</id>
		<title>AutoShuttersControl</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=AutoShuttersControl&amp;diff=31168"/>
		<updated>2019-09-02T08:29:57Z</updated>

		<summary type="html">&lt;p&gt;Stephan1965: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Baustelle}}&lt;br /&gt;
{{Infobox Modul&lt;br /&gt;
|ModPurpose=Steuerung von Rollläden&lt;br /&gt;
|ModCategory=Automatisierung&lt;br /&gt;
|ModType=d&lt;br /&gt;
|ModForumArea=Automatisierung&lt;br /&gt;
|ModTechName=73_AutoShuttersControl.pm&lt;br /&gt;
|ModOwner=CoolTux ({{Link2FU|13684|Forum}}/[[Benutzer Diskussion:CoolTux|Wiki]])}}&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
== Basics ==&lt;br /&gt;
{{Hinweis|Das Modul befindet sich derzeit noch in der Entwicklung; der jeweils aktuelle Stand ist  diesem {{Link2Forum|Topic=90751|LinkText=&amp;quot;Thread im Forum&amp;quot;}} zu entnehmen.}}&lt;br /&gt;
Zur Nutzung des Moduls sollten folgende andere FHEM-Devices vorhanden sein:&lt;br /&gt;
* Rollläden&lt;br /&gt;
* Fensterkontakte und &lt;br /&gt;
* Bewohnerstatus auf Basis von Residents/Roomates in englisch. Ersatzweise andere Devices, z.B. Dummys, welche als &#039;&#039;state&#039;&#039; &#039;&#039;home&#039;&#039;, &#039;&#039;asleep&#039;&#039;, &#039;&#039;gotosleep&#039;&#039; und &#039;&#039;awoken&#039;&#039; setzen sowie ein Reading &#039;&#039;lastState&#039;&#039;.&lt;br /&gt;
* Optional:&lt;br /&gt;
** Ein Helligkeitssensor (Steuerung nach Helligkeit und Beschattung)&lt;br /&gt;
** Ein Device zur Bestimmung des Sonnenstands (nur für Beschattung). Unterstützt werden derzeit [[Modul Astro|Astro]] und [[Twilight]]&amp;lt;ref&amp;gt;Dabei müssen ggf. in [[Global|global]] auch Angaben zu &#039;&#039;longitude&#039;&#039; und &#039;&#039;latitude&#039;&#039; vorhanden sein&amp;lt;/ref&amp;gt;. &lt;br /&gt;
** 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&amp;lt;ref&amp;gt;Es kann auch z.B. ein Dummy-Device verwendet werden, dieses sollte dann aber neben dem eigentlichen Feiertags-&#039;&#039;state&#039;&#039; auch in einem Reading &#039;&#039;tomorrow&#039;&#039; Angaben zu anstehenden Feiertagen enthalten.&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;Bitte verfahren Sie entsprechend, wenn Urlaubs- oder Ferientage wie Feiertage behandelt werden sollen.&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Die Einrichtung des Moduls bzw. dessen Funktionalität erfolgt in mehreren Schritten:&lt;br /&gt;
* Definition des ASC-Devices&lt;br /&gt;
* Einstellung zentraler Vorgaben am ASC-Device&lt;br /&gt;
* Markieren der zukünftig zu steuernden Rollladen-Devices&lt;br /&gt;
* Einbinden der Rollladen-Devices in das ASC-Device&lt;br /&gt;
* Einstellen der individuellen Vorgaben je Rollladen (am Rollladen-Device)&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
== Einrichtung ==&lt;br /&gt;
{{Hinweis|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.}}&lt;br /&gt;
&lt;br /&gt;
=== Vorbereitung ===&lt;br /&gt;
Zunächst sollten die in den [[#Basics|Basics]] beschriebenen Geräte vorhanden und funktionsfähig sein. &lt;br /&gt;
&lt;br /&gt;
=== Define des ASC-Devices ===&lt;br /&gt;
Es genügt ein einfaches define ohne weitere Parameter.&lt;br /&gt;
&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; AutoShuttersControl&amp;lt;/code&amp;gt;&lt;br /&gt;
Dies bewirkt neben der Anlage des Devices selbst auch, dass als weiteres globales Attribut &#039;&#039;ASC&#039;&#039; verfügbar wird.&lt;br /&gt;
&lt;br /&gt;
=== Einstellung zentraler Vorgaben ===&lt;br /&gt;
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.&lt;br /&gt;
Diese Attribute können auch nachträglich noch geändert werden.&lt;br /&gt;
&lt;br /&gt;
=== Markieren zu steuernder Rollladen-Devices ===&lt;br /&gt;
Um einen oder mehrere Rollläden durch das ASC-Device zu steuern, wird für jeden Rollladen jeweils das neue globale Attribut &#039;&#039;ASC&#039;&#039; gesetzt. Der Wert ist mit 1 oder 2 festzulegen, wobei &#039;&#039;&#039;1&#039;&#039;&#039; bedeutet, dass &lt;br /&gt;
* die Offen-Position kleiner ist als die Geschlossen-Position, also typischerweise 0 &#039;&#039;offen&#039;&#039; bedeutet und 100 für &#039;&#039;geschlossen&#039;&#039; steht&lt;br /&gt;
* eine bestimmte Position mit &#039;&#039;&#039;position&#039;&#039;&#039; angefahren wird, also z.B. &amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; position 70&amp;lt;/code&amp;gt;.&lt;br /&gt;
Dies ist z.B. die  passende Wahl für ROLLO-Devices&lt;br /&gt;
&lt;br /&gt;
Die &#039;&#039;&#039;2&#039;&#039;&#039; steht für ein umgekehrtes Verhalten und den Befehlsteil &#039;&#039;pct&#039;&#039;, also &#039;&#039;offen&#039;&#039; für &amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; pct 100&amp;lt;/code&amp;gt;. Typischer Vertreter dieses Typs sind HomeMatic (CUL_HM-) Geräte oder die Shelly2-Aktoren.&lt;br /&gt;
&lt;br /&gt;
Aus dieser Vorgabe leitet das Modul dann jeweils bestimmte Voreinstellungen (&#039;&#039;defaults&#039;&#039;) für den Rolladen ab, ohne dass die betreffenden, dafür vorgesehenen Attribute ausdrücklich gesetzt werden müssen. 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. &#039;&#039;dim 99&#039;&#039; für vollständiges Öffnen eines ZWave-Aktors).&lt;br /&gt;
{{Hinweis|Das Vorstehende gilt jeweils für den nicht-invertierten Modus! Wer z.B. ein HomeMatic-Gerät mit &#039;&#039;levelinverse&#039;&#039; betreibt, sollte &#039;&#039;ASC&#039;&#039; auf &amp;quot;1&amp;quot; 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 &#039;&#039;position&#039;&#039; oder &#039;&#039;pct&#039;&#039; kann auch später über ein weiteres Attribut passend eingestellt werden.}}&lt;br /&gt;
&lt;br /&gt;
=== Einbinden in das ASC-Device ===&lt;br /&gt;
Nachdem man das obige Attribut bei einem oder mehreren Rollladen-Devices gesetzt hat, kann mit &lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; scanForShutters&amp;lt;/code&amp;gt; ein Suchlauf gestartet werden, mit dem dann diese Rollläden durch das Modul gefunden und in die Steuerungslogik eingebunden werden.&lt;br /&gt;
&lt;br /&gt;
=== Einstellen der individuellen Vorgaben ===&lt;br /&gt;
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. &lt;br /&gt;
Die Beschreibung der Attribute ist in der commandref enthalten.&lt;br /&gt;
&lt;br /&gt;
== Readings ==&lt;br /&gt;
&lt;br /&gt;
===Readings im ASC-Device selbst ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR/&amp;gt;Wertebereich !! Bedeutung  &lt;br /&gt;
|-&lt;br /&gt;
|..._nextAstroTimeEvent || ||Uhrzeit des nächsten Astro-Events, Sonnenauf- oder Sonnenuntergang oder feste Zeit pro Rollonamen &lt;br /&gt;
|-&lt;br /&gt;
|..._lastPosValue || ||zuletzt abgesetzter Fahrbefehl pro Rollonamen&lt;br /&gt;
|-&lt;br /&gt;
|..._lastDelayPosValue || ||zuletzt abgesetzter Fahrbefehl, welcher beim nächsten zulässigen Event ausgeführt wird&lt;br /&gt;
|-&lt;br /&gt;
|partyMode ||on, off || aktiviert den globalen Partymodus. Alle Rollläden, welche das Attribut &#039;&#039;AutoShuttersControl_Partymode&#039;&#039; bei sich auf &#039;&#039;on&#039;&#039; 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 &amp;lt;ASC-Device&amp;gt; partyMode off) ausgeführt&lt;br /&gt;
|-&lt;br /&gt;
|lockOut || on, off ||für das Aktivieren des Aussperrschutzes gemäß des entsprechenden Attributs &#039;&#039;AutoShuttersControl_lock-out&#039;&#039; im jeweiligen Rolladen (siehe Beschreibung bei den Attributen für die Rolladendevices)&lt;br /&gt;
|-&lt;br /&gt;
|room_... || ||Auflistung aller Rollläden, welche in den jeweiligen Räumen gefunden wurden, Bsp.: room_Schlafzimmer,Terrasse&lt;br /&gt;
|-&lt;br /&gt;
|state || ||Status des &amp;lt;ASC-Device&amp;gt; active, enabled, disabled&lt;br /&gt;
|-&lt;br /&gt;
|sunriseTimeWeHoliday|| on,off ||legt fest, ob das Rolladendevice das Attribut &#039;&#039;AutoShuttersControl_Time_Up_WE_Holiday&#039;&#039; beachtet oder nicht&lt;br /&gt;
|-&lt;br /&gt;
|userAttrList || rolled out ||Status der UserAttribute, welche an die Rollläden gesendet werden&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Readings in den Rolllädendevices ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Bedeutung  &lt;br /&gt;
|-&lt;br /&gt;
|ASC_Time_DriveUp ||Sonnenaufgangszeit für das Rollo&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Time_DriveDown ||Sonnenuntergangszeit für das Rollo&lt;br /&gt;
|-&lt;br /&gt;
|ASC_ShuttersLastDrive ||Grund des letzten Fahrens vom Rolladen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==set- und get-Befehle für das ASC-Device==&lt;br /&gt;
&lt;br /&gt;
=== set-Anweisungen ===&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR/&amp;gt;Wertebereich !! Beschreibung  &lt;br /&gt;
|-&lt;br /&gt;
|partyMode ||on, off ||aktiviert den globalen Partymodus. Siehe Reading &#039;&#039;partyMode&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|lockOut ||on, off ||aktiviert den globalen Aussperrschutz. Siehe Reading &#039;&#039;lockOut&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|renewSetSunriseSunsetTimer || || erneuert bei allen Rollläden die Zeiten für Sunset und Sunrise und setzt die internen Timer neu.&lt;br /&gt;
|-&lt;br /&gt;
|scanForShutters || ||sucht alle FHEM Devices mit dem Attribut &#039;&#039;AutoShuttersControl&#039;&#039; &#039;&#039;1&#039;&#039; oder &#039;&#039;2&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|sunriseTimeWeHoliday || on,off ||aktiviert/deaktiviert die Beachtung des Attributes &#039;&#039;AutoShuttersControl_Time_Up_WE_Holiday&#039;&#039; für Rollladen-Devices&lt;br /&gt;
|-&lt;br /&gt;
|createNewNotifyDev || ||Legt die interne Struktur für NOTIFYDEV neu an&lt;br /&gt;
|-&lt;br /&gt;
|selfDefence ||on, off||aktiviert/deaktiviert den Selbstschutz: wenn das Residents-Device &#039;&#039;absent&#039;&#039; meldet, &#039;&#039;selfDefence&#039;&#039; aktiv ist und ein Fenster im Haus noch offen steht, wird an diesem Fenster das Rollo runtergefahren&lt;br /&gt;
|-&lt;br /&gt;
|wiggle ||||bewegt einen Rollladen oder alle Rollläden (für Abschreckungszwecke bei der Alarmierung) um &#039;&#039;ASC_WiggleValue&#039;&#039;-%, und nach 1 Minute wieder zurück zur Ursprungsposition&lt;br /&gt;
|-&lt;br /&gt;
|||||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== get-Anweisungen ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| showShuttersInformations ||zeigt eine Übersicht der Automatik-Fahrzeiten&lt;br /&gt;
|-&lt;br /&gt;
| showNotifyDevsInformations ||zeigt eine Übersicht der abgelegten NOTIFYDEV Struktur. Dient zur Kontrolle&lt;br /&gt;
|}&lt;br /&gt;
== Attribute ==&lt;br /&gt;
{{Hinweis|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.}}&lt;br /&gt;
{{Hinweis|In der commandref findet sich häufig die Schreibweise &amp;lt;code&amp;gt;ASC_BrightnessSensor Sensorname[:brightness [400:800]]&amp;lt;/code&amp;gt;. 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 &#039;&#039;&#039;wegzulassen&#039;&#039;&#039;! Beispiel: &amp;lt;code&amp;gt;ASC_BrightnessSensor hm_motion_1 70:100&amp;lt;/code&amp;gt; würde das brightness-Reading des Sensors hm_motion_1 verwenden und einen morgendlichen Schwellenwert von 70 bzw. 100 für abends.}}&lt;br /&gt;
===Attribute direkt am ASC-Device ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR/&amp;gt;Wertebereich !! Default-Wert !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|ASC_antifreezeTemp || || ||Temperatur, ab welcher der Frostschutz greift und das Rollo nicht mehr fährt. Der letzte Fahrbefehl wird gespeichert&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoAstroModeEvening ||aktuell REAL, CIVIL, NAUTIC, ASTRONOMIC, HORIZON || || (in genau dieser Schreibweise)&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoAstroModeEveningHorizon || || || Höhe über Horizont, wenn beim Attribut &#039;&#039;AutoShuttersControl_autoAstroModeEvening&#039;&#039; &#039;&#039;HORIZON&#039;&#039; ausgewählt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoAstroModeMorning ||aktuell REAL, CIVIL, NAUTIC, ASTRONOMIC, HORIZON || ||(in genau dieser Schreibweise)&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoAstroModeMorningHorizon || || ||Höhe über Horizont, wenn beim Attribut &#039;&#039;AutoShuttersControl_autoAstroModeMorning&#039;&#039; &#039;&#039;HORIZON&#039;&#039; ausgewählt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoShuttersControlComfort ||on, off || ||aktiviert die Komfortfunktion. Bedeutet, dass ein Rollladen mit einem threestate (Drehgriff-) Sensor am Fenster beim Öffnen in die &amp;quot;Komfortposition&amp;quot; fährt. Diese wird beim Rollladendevice über das Attribut &#039;&#039;AutoShuttersControl_Pos_after_ComfortOpen&#039;&#039; eingestellt.&lt;br /&gt;
|- &lt;br /&gt;
|ASC_autoShuttersControlEvening ||on, off || ||ob Abends die Rollläden automatisch zeitgesteuert werden sollen&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoShuttersControlMorning ||on, off || ||ob Morgens die Rollläden automatisch zeitgesteuert werden sollen&lt;br /&gt;
|-&lt;br /&gt;
|ASC_temperatureReading || || ||Reading für die Außentemperatur&lt;br /&gt;
|-&lt;br /&gt;
|ASC_temperatureSensor || || ||Device für die Außentemperatur&lt;br /&gt;
|-&lt;br /&gt;
|ASC_timeUpHolidayDevice || || ||Device zur Urlaubserkennung oder Sonstiges / muss &#039;&#039;0&#039;&#039; oder &#039;&#039;1&#039;&#039; im Reading &#039;&#039;state&#039;&#039; beinhalten.&lt;br /&gt;
|-&lt;br /&gt;
|ASC_residentsDevice|| || ||Devicenamen des Residents-Device der obersten Ebene&lt;br /&gt;
|-&lt;br /&gt;
|ASC_residentsDeviceReading|| || ||Status Reading des Residents-Device der obersten Ebene&lt;br /&gt;
|-&lt;br /&gt;
|ASC_brightnessMinVal|| || ||minimaler Lichtwert, bei dem Schaltbedingungen noch geprüft werden sollen&lt;br /&gt;
|-&lt;br /&gt;
|ASC_brightnessMaxVal || || ||maximaler Lichtwert, bei dem Schaltbedingungen noch geprüft werden sollen&lt;br /&gt;
|-&lt;br /&gt;
|ASC_rainSensorDevice || || ||Device, welches bei Regen getriggert wird&lt;br /&gt;
|-&lt;br /&gt;
|ASC_rainSensorReading || || ||das ensprechende Reading zum Regendevice&lt;br /&gt;
|-&lt;br /&gt;
|ASC_rainSensorShuttersClosedPos || || ||Position in pct, welche der Rollladen bei Regen anfahren soll &lt;br /&gt;
|-&lt;br /&gt;
|ASC_shuttersDriveOffset  || || ||maximale zufällige Verzögerung in Sekunden bei der Berechnung der Fahrzeiten, &#039;&#039;0&#039;&#039; bedeutet keine Verzögerung&lt;br /&gt;
|-&lt;br /&gt;
|ASC_twilightDevice || || ||Device, welches Informationen zum Sonnenstand liefert, wird unter anderem für die Beschattung verwendet.&lt;br /&gt;
|-&lt;br /&gt;
|ASC_expert || || ||bei &#039;&#039;1&#039;&#039; werden erweiterte Informationen bezüglich des NotifyDevs unter &#039;&#039;set&#039;&#039; und &#039;&#039;get&#039;&#039; angezeigt&lt;br /&gt;
|-&lt;br /&gt;
| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| || || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Attribute in den Rolllädendevices===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR/&amp;gt;Wertebereich !! Default-Wert !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|ASC || 0, 1, 2|| ||0 = &amp;quot;kein Anlegen der Attribute beim ersten Scan bzw. keine Beachtung eines Fahrbefehles&amp;quot;,1 = &amp;quot;Inverse oder Rollo - Bsp.: Rollo Oben 0, Rollo Unten 100 und der Befehl zum prozentualen Fahren ist position&amp;quot;,2 = &amp;quot;Homematic Style - Bsp.: Rollo Oben 100, Rollo Unten 0 und der Befehl zum prozentualen Fahren ist pct&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Antifreeze || soft, am, pm, hard, off|| ||Frostschutz, wenn &#039;&#039;soft&#039;&#039; fährt der Rollladen in die &#039;&#039;ASC_Antifreeze_Pos&#039;&#039;, bei &#039;&#039;hard/am/pm&#039;&#039; wird gar nicht oder innerhalb der entsprechenden Tageszeit nicht gefahren&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Antifreeze_Pos || || ||Position, die angefahren werden soll, wenn der Fahrbefehl komplett schließen lautet, aber der Frostschutz aktiv ist&lt;br /&gt;
|-&lt;br /&gt;
|ASC_AutoAstroModeEvening ||REAL, CIVIL, NAUTIC, ASTRONOMIC, HORIZON || ||aktuell REAL,CIVIL,NAUTIC,ASTRONOMIC&lt;br /&gt;
|-&lt;br /&gt;
|ASC_AutoAstroModeEveningHorizon || || ||Höhe über Horizont, wenn beim Attribut &#039;&#039;ASC_autoAstroModeEvening&#039;&#039; &#039;&#039;HORIZON&#039;&#039; ausgewählt ist&lt;br /&gt;
|-&lt;br /&gt;
|ASC_AutoAstroModeMorning ||REAL, CIVIL, NAUTIC, ASTRONOMIC, HORIZON || ||aktuell REAL,CIVIL,NAUTIC,ASTRONOMIC&lt;br /&gt;
|-&lt;br /&gt;
|ASC_AutoAstroModeMorningHorizon || || ||Höhe über Horizont, wenn beim Attribut &#039;&#039;ASC_autoAstroModeMorning&#039;&#039; &#039;&#039;HORIZON&#039;&#039; ausgewählt ist&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Closed_Pos || || ||in 10er Schritten von 0 bis 100,default Vorgabe ist abhängig vom Attribut &#039;&#039;ASC&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Down || astro, time, brightness || ||bei &#039;&#039;astro&#039;&#039; wird Sonnenuntergang berechnet, bei &#039;&#039;time&#039;&#039; wird der Wert aus &#039;&#039;ASC_Time_Down_Early&#039;&#039; als Fahrzeit verwendet und bei &#039;&#039;brightness&#039;&#039; muss &#039;&#039;ASC_Time_Down_Early&#039;&#039; und &#039;&#039;ASC_Time_Down_Late&#039;&#039; korrekt gesetzt werden. Der Timer läuft dann nach &#039;&#039;ASC_Time_Down_Late&#039;&#039;-Zeit,es wird aber in der Zeit zwischen &#039;&#039;ASC_Time_Down_Early&#039;&#039; und &#039;&#039;ASC_Time_Down_Late&#039;&#039; geschaut, ob die als Attribut im Moduldevice hinterlegte &#039;&#039;ASC_brightnessMinVal&#039;&#039; erreicht wurde. Wenn ja, wird der Rolladen runter gefahren&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Mode_Down ||always, home, absent, off || ||wann darf die Automatik herunterfahren. immer, niemals oder bei Abwesenheit des Roommate (ist kein Roommate und &#039;&#039;absent&#039;&#039; eingestellt, wird gar nicht gesteuert)&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Mode_Up ||always, home, absent, off || ||wann darf die Automatik hochfahren. immer, niemals oder bei Abwesenheit des Roommate (ist kein Roommate und &#039;&#039;absent&#039;&#039; eingestellt, wird gar nicht gesteuert)&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Drive_Offset || || ||maximale zufällige Verzögerung in Sekunden bei der Berechnung der Fahrzeiten, &#039;&#039;0&#039;&#039; bedeutet sofort, &#039;&#039;-1&#039;&#039; bedeutet, dass das gleichwertige Attribut aus dem ASC-Device ausgewertet werden soll&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Open_Pos || || ||in 10er-Schritten von 0 bis 100, default Vorgabe ist abhängig vom Attribut &#039;&#039;ASC&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Partymode || on, off || ||schaltet den Partymodus an oder aus. Wird dann am ASC Device &#039;&#039;set &amp;lt;ASC-DEVICE&amp;gt; partyMode on&#039;&#039; geschaltet, werden alle Fahrbefehle an den Rollläden, welche das Attribut auf &#039;&#039;on&#039;&#039; haben, zwischengespeichert und erst später ausgeführt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Pos_Reading || || ||Name des Readings, welches die Position des Rollladen in Prozent angibt. Wird bei unbekannten Device-Typen auch als &#039;&#039;set&#039;&#039; Befehl zum Fahren verwendet&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Pos_after_ComfortOpen || || ||in 10er-Schritten von 0 bis 100, default Vorgabe ist abhängig vom Attribut &#039;&#039;ASC&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Roommate_Reading || || ||Reading des Roommate-Device, welches den Status wieder gibt&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Time_Down_Early || || ||Sunset früheste Zeit zum Runterfahren&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Time_Down_Late || || ||Sunset späteste Zeit zum Runterfahren&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Time_Up_Early || || ||Sunrise früheste Zeit zum Hochfahren&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Time_Up_Late || || ||Sunrise späteste Zeit zum Hochfahren&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Time_Up_WE_Holiday || || ||Sunrise früheste Zeit zum Hochfahren am Wochenende und/oder Urlaub (holiday2we wird beachtet).&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Up || astro, time, brightness || ||bei &#039;&#039;astro&#039;&#039; wird Sonnenaufgang berechnet, bei &#039;&#039;time&#039;&#039; wird der Wert aus &#039;&#039;ASC_Time_Up_Early&#039;&#039; als Fahrzeit verwendet und bei &#039;&#039;brightness&#039;&#039; müssen &#039;&#039;ASC_Time_Up_Early&#039;&#039; und &#039;&#039;ASC_Time_Up_Late&#039;&#039; korrekt gesetzt werden. Der Timer läuft dann nach &#039;&#039;ASC_Time_Up_Late&#039;&#039;-Zeit, es wird aber in der Zeit zwischen &#039;&#039;ASC_Time_Up_Early&#039;&#039; und &#039;&#039;ASC_Time_Up_Late&#039;&#039; geschaut, ob die als Attribut im Moduldevice hinterlegte &#039;&#039;ASC_brightnessMinVal&#039;&#039; erreicht wurde. Wenn ja, wird der Rolladen runter gefahren&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Ventilate_Pos || || ||in 10er-Schritten von 0 bis 100, default Vorgabe ist abhängig vom Attribut &#039;&#039;ASC&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Ventilate_Window_Open || || ||auf lüften, wenn das Fenster gekippt/geöffnet wird und aktuelle Position unterhalb der Lüften-Position ist&lt;br /&gt;
|-&lt;br /&gt;
|ASC_WindowRec || || ||Name des Fensterkontakts, an welchen Fenster der Rollladen angebracht ist. Sein Reading &#039;&#039;state&#039;&#039; muss die Werte &#039;&#039;open&#039;&#039;, &#039;&#039;closed&#039;&#039; oder &#039;&#039;tilted&#039;&#039; enthalten.&lt;br /&gt;
|-&lt;br /&gt;
|ASC_WindowRec_subType || || ||Typ des verwendeten Fensterkontakts: &#039;&#039;twostate&#039;&#039; (optisch oder magnetisch) oder &#039;&#039;threestate&#039;&#039; (Drehgriffkontakt)&lt;br /&gt;
|-&lt;br /&gt;
|ASC_LockOut || soft, hard || ||stellt entsprechend den Aussperrschutz ein. Bei global aktiven Aussperrschutz (&#039;&#039;set ASC-Device lockOut soft&#039;&#039;) und einem Fensterkontakt &#039;&#039;open&#039;&#039; bleibt dann der Rolladen oben. Dies gilt nur bei Steuerbefehle über das ASC-Modul. Stellt man global auf &#039;&#039;hard&#039;&#039;, wird bei entsprechender Möglichkeit versucht, den Rollladen hardwareseitig zu blockieren. Dann ist auch ein Fahren über die Taster nicht mehr möglich.&lt;br /&gt;
|-&lt;br /&gt;
|ASC_LockOutCmd || inhibit, blocked || ||set Befehl für das Rolladen-Device zum Sperren per Hardware. Der Befehl wird verwendet, wenn &#039;&#039;ASC_LockOut&#039;&#039; auf &#039;&#039;hard&#039;&#039; gesetzt ist&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Self_Defense_Exclude || on, off || ||bei &#039;&#039;on&#039;&#039; wird dieser Rolladen bei aktiven &#039;&#039;selfDefence&#039;&#039; und offenen Fenster nicht runter gefahren, wenn Residents absent ist&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Shading_Brightness_Sensor || || ||Sensor-Device, welches für die Lichtwerte verwendet wird. ACHTUNG! Findet auch Verwendung bei ASC_Down - brightness&lt;br /&gt;
|-&lt;br /&gt;
|ASC_BrightnessMinVal || || ||minimaler Lichtwert, bei dem Schaltbedingungen noch geprüft werden sollen / wird der Wert von &#039;&#039;-1&#039;&#039; nicht geändert, so wird automatisch der Wert aus dem Moduldevice genommen&lt;br /&gt;
|-&lt;br /&gt;
|ASC_BrightnessMaxVal || || ||maximaler Lichtwert, bei dem Schaltbedingungen noch geprüft werden sollen / wird der Wert von &#039;&#039;-1&#039;&#039; nicht geändert, so wird automatisch der Wert aus dem Moduldevice genommen&lt;br /&gt;
|-&lt;br /&gt;
|ASC_ShuttersPlace || window, terrace || ||wenn dieses Attribut auf &#039;&#039;terrace&#039;&#039; gesetzt ist und das Residents-Device in den Status &#039;&#039;gone&#039;&#039; geht und &#039;&#039;selfDefence&#039;&#039; aktiv ist, wird das Rollo geschlossen&lt;br /&gt;
|-  &lt;br /&gt;
|ASC_WiggleValue || || ||Wert, um welchen sich die Position des Rollladens bei &#039;&#039;Wiggle&#039;&#039; ändern soll &lt;br /&gt;
|-&lt;br /&gt;
|ASC_BlockingTime_afterManual || || ||Wartezeit in Sekunden, die die Automatik nach einer manuellen Fahrt aussetzen soll&lt;br /&gt;
|-&lt;br /&gt;
|ASC_BlockingTime_beforNightClose || || ||Vorgabezeit in Sekunden, innerhalb derer vor dem nächtlichen Schließen keine Öffnen-Fahrt mehr ausgeführt werden soll&lt;br /&gt;
|-&lt;br /&gt;
|ASC_BlockingTime_beforDayOpen || || ||Vorgabezeit in Sekunden, innerhalb derer vor dem morgendlichen Öffnen keine Schließen-Fahrt mehr ausgeführt werden soll&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Shading_Direction || || ||Position in Grad, auf der das Fenster liegt - genau Osten wäre 90, Süden 180 und Westen 270&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Shading_Pos || || ||Position des Rollladens für die Beschattung&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Shading_Angle_Left || || ||Vorlaufwinkel im Bezug zum Fenster, ab wann abgeschattet wird. Beispiel: Fenster 180° - 85° ==&amp;gt; ab Sonnenpos. 95° wird abgeschattet&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Shading_Angle_Right || || ||Nachlaufwinkel im Bezug zum Fenster, bis wann abgeschattet wird. Beispiel: Fenster 180° + 85° ==&amp;gt; bis Sonnenpos. 265° wird abgeschattet&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Shading_Mode || || ||absent,always,off,home / Vorgabe, wann Beschattungsaktionen durchzuführen sind&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Shading_StateChange_Sunny || || ||Brightness Wert ab welchen Beschattung statt finden soll, immer in Abhängikkeit der anderen einbezogenden Sensorwerte&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Shading_StateChange_Cloudy || || ||Brightness Wert ab welchen die Beschattung aufgehoben werden soll, immer in Abhängikkeit der anderen einbezogenden Sensorwerte&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Shading_Min_Elevation || || ||ab welcher Höhe des Sonnenstandes soll beschattet werden, immer in Abhängikkeit der anderen einbezogenden Sensorwerte&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Shading_Min_OutsideTemperature || || ||ab welcher Temperatur soll Beschattet werden, immer in Abhängikkeit der anderen einbezogenden Sensorwerte&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Shading_WaitingPeriod || || ||wie viele Sekunden soll gewartet werden bevor eine weitere Auswertung der Sensordaten für die Beschattung statt finden soll&lt;br /&gt;
|-&lt;br /&gt;
|ASC_PrivacyDownTime_beforNightClose || || ||wie viele Sekunden vor dem abendlichen schlie&amp;amp;zlig;en soll der Rollladen in die Sichtschutzposition fahren, -1 bedeutet das diese Funktion unbeachtet bleiben soll&lt;br /&gt;
|-&lt;br /&gt;
|ASC_PrivacyDown_Pos || || ||Position den Rollladens für den Sichtschutz&lt;br /&gt;
|-&lt;br /&gt;
| || || ||&lt;br /&gt;
| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| || || ||    &lt;br /&gt;
|-  &lt;br /&gt;
| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| || || ||        &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Hilfsmittel ==&lt;br /&gt;
{{Hinweis|Die Device-Namen sind auf die eigene Installation anzupassen.}}&lt;br /&gt;
&lt;br /&gt;
=== Interne Übersicht ===&lt;br /&gt;
[[Bild:ASC Overview.JPG|thumb|right|weblink - Beispiel]]&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:65%;word-break: break-all;word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
 define ASC_Jalousie_Info weblink htmlCode {AutoShuttersControl::GetShuttersInformation($defs{&#039;JalousieControl&#039;})}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Codezeilen sind im [[Import von Code Snippets|RAW]]-Format.}}&lt;br /&gt;
&lt;br /&gt;
=== readingsGroup für Level ===&lt;br /&gt;
&lt;br /&gt;
{{Randnotiz|RNTyp=g|RNText= Stand 2019-05-03&lt;br /&gt;
* Erfolgreich getestet mit Homematic Devices, Beta-User&lt;br /&gt;
* Die Farbgebung entspricht dem Standard, wenn unter dem Style f18 der Farbpreset &#039;&#039;light&#039;&#039; gewählt wird.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:65%;word-wrap: break-word;&amp;quot;&amp;gt;defmod rg_ASC_Rolllaeden_Level readingsGroup &amp;lt;Gerät&amp;gt;,&amp;lt;Stand&amp;gt;,&amp;lt;Schliessen bis&amp;gt;,&amp;lt;Öffnen auf&amp;gt;,&amp;lt;Beschattung&amp;gt;,&amp;lt;Komfort&amp;gt;,&amp;lt;Lüften&amp;gt;,&amp;lt;Privacy&amp;gt; (Rollladen_.*|Jalousie_.*)..:level,!?ASC_Closed_Pos,!?ASC_Open_Pos,!?ASC_Shading_Pos,!?ASC_ComfortOpen_Pos,!?ASC_Ventilate_Pos,!?ASC_PrivacyDown_Pos&lt;br /&gt;
attr rg_ASC_Rolllaeden_Level commands {level =&amp;gt; &#039;pct:selectnumbers,0,5,100,0,lin&#039;,\&lt;br /&gt;
ASC_Closed_Pos =&amp;gt; &#039;ASC_Closed_Pos:selectnumbers,0,5,100,0,lin&#039;,\&lt;br /&gt;
ASC_Open_Pos =&amp;gt; &#039;ASC_Open_Pos:selectnumbers,0,5,100,0,lin&#039;,\&lt;br /&gt;
ASC_Shading_Pos =&amp;gt; &#039;ASC_Shading_Pos:selectnumbers,0,5,100,0,lin&#039;,\&lt;br /&gt;
ASC_Ventilate_Pos =&amp;gt; &#039;ASC_Ventilate_Pos:selectnumbers,0,5,100,0,lin&#039;,\&lt;br /&gt;
ASC_ComfortOpen_Pos =&amp;gt; &#039;ASC_ComfortOpen_Pos:selectnumbers,0,5,100,0,lin&#039;,\&lt;br /&gt;
ASC_PrivacyDown_Pos =&amp;gt; &#039;ASC_PrivacyDown_Pos:selectnumbers,0,5,100,0,lin&#039;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== readingsGroup für Zeiten ===&lt;br /&gt;
[[Bild:ReadingsGroup ASC times.png|thumb|right|ReadingsGroup - Zeitenbeispiel]]&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:65%;word-wrap: break-word;&amp;quot;&amp;gt;defmod rg_ASC_Rolllaeden_Times readingsGroup &amp;lt;Gerät&amp;gt;,&amp;lt;Position&amp;gt;,&amp;lt;Time_Up_Early&amp;gt;,&amp;lt;Time_Up_Late&amp;gt;,&amp;lt;Time_Up_WE/Hol&amp;gt;,&amp;lt;Time_Down_Early&amp;gt;,&amp;lt;Time_Down_Late&amp;gt;,&amp;lt;Mode_Down&amp;gt;,&amp;lt;Mode_Up&amp;gt; \&lt;br /&gt;
 (.*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&lt;br /&gt;
attr rg_ASC_Rolllaeden_Times commands {level =&amp;gt; &#039;pct:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100&#039;, \&lt;br /&gt;
 ASC_Time_Down_Early =&amp;gt; &#039;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&#039;, \&lt;br /&gt;
 ASC_Time_Down_Late  =&amp;gt; &#039;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&#039;, \&lt;br /&gt;
 ASC_Time_Up_WE_Holiday =&amp;gt; &#039;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&#039;,\&lt;br /&gt;
 ASC_Time_Up_Early =&amp;gt; &#039;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&#039;,  \&lt;br /&gt;
 ASC_Time_Up_Late =&amp;gt; &#039;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&#039;, \&lt;br /&gt;
 ASC_Mode_Down =&amp;gt; &#039;ASC_Mode_Down:always,absent,off&#039;, \&lt;br /&gt;
 ASC_Mode_Up =&amp;gt; &#039;ASC_Mode_Up:always,absent,off&#039; }&lt;br /&gt;
attr rg_ASC_Rolllaeden_Times room Rollladen&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[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:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:65%;word-wrap: break-word;&amp;quot;&amp;gt;defmod rg_ASC_Rolllaeden_Times readingsGroup &amp;lt;Gerät&amp;gt;,&amp;lt;Stand&amp;gt;,&amp;lt;Time_Up_Early  &amp;gt;,&amp;lt;Time_Up_WE  &amp;gt;,&amp;lt;Time_Up_Late  &amp;gt;,&amp;lt;Time_Down_Early&amp;gt;,&amp;lt;Time_Down_Late&amp;gt;,&amp;lt;Mode_Down&amp;gt;,&amp;lt;Mode_Up&amp;gt; (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&lt;br /&gt;
attr rg_ASC_Rolllaeden_Times commands {level =&amp;gt; &#039;pct:selectnumbers,0,5,100,0,lin&#039;, \&lt;br /&gt;
dim =&amp;gt; &#039;dim:selectnumbers,0,5,99,0,lin&#039;,\&lt;br /&gt;
position =&amp;gt; &#039;pct:selectnumbers,0,5,99,0,lin&#039;,\&lt;br /&gt;
ASC_Mode_Down =&amp;gt; &#039;ASC_Mode_Down:always,absent,off&#039;,\&lt;br /&gt;
ASC_Mode_Up =&amp;gt; &#039;ASC_Mode_Up:always,absent,off&#039;,\&lt;br /&gt;
ASC_Time_Down_Early =&amp;gt; &#039;ASC_Time_Down_Early:time&#039;, \&lt;br /&gt;
ASC_Time_Down_Late  =&amp;gt; &#039;ASC_Time_Down_Late:time&#039;,\&lt;br /&gt;
ASC_Time_Up_Early =&amp;gt; &#039;ASC_Time_Up_Early:time&#039;, \&lt;br /&gt;
ASC_Time_Up_Late =&amp;gt;&#039;ASC_Time_Up_Late:time&#039;,\&lt;br /&gt;
ASC_Time_Up_WE_Holiday =&amp;gt;&#039;ASC_Time_Up_WE_Holiday:time&#039;}&lt;br /&gt;
attr rg_ASC_Rolllaeden_Times room Rollladen&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  readingsGroup für die Beschattung ===&lt;br /&gt;
[[Bild:ReadingsGroup ASC shading.png|thumb|right|ReadingsGroup - Beschattungsbeispiel]]&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:65%;word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
defmod rg_ASC_Rolllaeden_Shading readingsGroup &amp;lt;Gerät&amp;gt;,&amp;lt;Modus&amp;gt;,&amp;lt;Position&amp;gt;,&amp;lt;Richtung&amp;gt;,&amp;lt;°links&amp;gt;,&amp;lt;°rechts&amp;gt;,&amp;lt;Elevation&amp;gt;,&amp;lt;Sunny&amp;gt;,&amp;lt;Cloudy&amp;gt;,&amp;lt;Min Temp&amp;gt; (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&lt;br /&gt;
attr rg_ASC_Rolllaeden_Shading alias Rollläden: Beschattung&lt;br /&gt;
attr rg_ASC_Rolllaeden_Shading commands {ASC_Shading_Pos =&amp;gt; &#039;ASC_Shading_Pos:knob,min:0,max:100,width:50,height:50,fgColor:#FF9900,bgColor:#CCCCCC,step:5,lineCap:round&#039;,\&lt;br /&gt;
ASC_Shading_Mode =&amp;gt; &#039;ASC_Shading_Mode:always,home,absent,off&#039;,\&lt;br /&gt;
ASC_Shading_Direction =&amp;gt; &#039;ASC_Shading_Direction:knob,min:0,max:360,width:50,height:50,fgColor:#FF9900,bgColor:#CCCCCC,step:1,cursor:true,lineCap:round&#039;,\&lt;br /&gt;
ASC_Shading_Angle_Left =&amp;gt; &#039;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&#039;,\&lt;br /&gt;
ASC_Shading_Angle_Right =&amp;gt; &#039;ASC_Shading_Angle_Right:knob,min:0,max:85,angleArc:85,width:50,height:50,fgColor:#FF9900,bgColor:#CCCCCC,step:5,lineCap:round,&#039;,\&lt;br /&gt;
ASC_Shading_MinMax_Elevation =&amp;gt; &#039;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&#039;,\&lt;br /&gt;
ASC_Shading_StateChange_Sunny =&amp;gt; &#039;ASC_Shading_StateChange_Sunny:knob,min:100,max:40000,angleArc:85,rotation:anticlockwise,width:50,height:50,fgColor:#FF9900,bgColor:#CCCCCC,step:20,lineCap:round,angleOffset:270&#039;,\&lt;br /&gt;
ASC_Shading_StateChange_Cloudy =&amp;gt; &#039;ASC_Shading_StateChange_Cloudy:knob,min:100,max:40000,angleArc:85,width:50,height:50,fgColor:#FF9900,bgColor:#CCCCCC,step:20,lineCap:round,&#039;,\&lt;br /&gt;
ASC_Shading_Min_OutsideTemperature =&amp;gt; &#039;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&#039;}&lt;br /&gt;
attr rg_ASC_Rolllaeden_Shading room Rollladen&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Anderes {{Link2Forum|Topic=99980|Message=946357|LinkText=Foren-Beispiel}} für eine RG zu Beschattung (für V. 0.6.x):&lt;br /&gt;
[[Bild:ReadingsGroup ASC shading2.png|thumb|right|ReadingsGroup - Beschattungsbeispiel]]&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:65%;word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
defmod rg_ASC_Shading readingsGroup &amp;lt;Gerät&amp;gt;,&amp;lt;Grad&amp;gt;,&amp;lt;Position&amp;gt;,&amp;lt;Mode&amp;gt;,&amp;lt;Links&amp;gt;,&amp;lt;Rechts&amp;gt;,&amp;lt;Wait&amp;gt;,&amp;lt;ShadeIn&amp;gt;,&amp;lt;ShadeOut&amp;gt;,&amp;lt;Elevation&amp;gt;,&amp;lt;Temperature&amp;gt;,&amp;lt;Device&amp;gt;\&lt;br /&gt;
(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\&lt;br /&gt;
&lt;br /&gt;
attr rg_ASC_Shading commands {ASC_Shading_Direction =&amp;gt; &#039;ASC_Shading_Direction:129,255,309&#039;,\&lt;br /&gt;
ASC_Shading_Pos =&amp;gt; &#039;ASC_Shading_Pos:selectnumbers,0,5,100,0,lin&#039;,\&lt;br /&gt;
ASC_Shading_Mode =&amp;gt; &#039;ASC_Shading_Mode:absent,always,off,home&#039;,\&lt;br /&gt;
ASC_Shading_Angle_Left =&amp;gt; &#039;ASC_Shading_Angle_Left:selectnumbers,0,5,100,0,lin&#039;,\&lt;br /&gt;
ASC_Shading_Angle_Right =&amp;gt; &#039;ASC_Shading_Angle_Right:selectnumbers,0,5,100,0,lin&#039;,\&lt;br /&gt;
ASC_Shading_WaitingPeriod =&amp;gt; &#039;ASC_Shading_WaitingPeriod:selectnumbers,0,60,1200,0,lin&#039;,\&lt;br /&gt;
ASC_Shading_StateChange_Sunny =&amp;gt; &#039;ASC_Shading_StateChange_Sunny:selectnumbers,0,20,1000,0,lin&#039;,\&lt;br /&gt;
ASC_Shading_StateChange_Cloudy =&amp;gt; &#039;ASC_Shading_StateChange_Cloudy:selectnumbers,0,20,1000,0,lin&#039;,\&lt;br /&gt;
ASC_Shading_MinMax_Elevation =&amp;gt;\&lt;br /&gt;
&#039;ASC_Shading_Min_Elevation:selectnumbers,0,1,40,0,lin&#039; ,\&lt;br /&gt;
ASC_Shading_Min_OutsideTemperature =&amp;gt;\&lt;br /&gt;
&#039;ASC_Shading_Min_OutsideTemperature:selectnumbers,0,1,30,0,lin&#039;}&lt;br /&gt;
attr rg_ASC_Shading room Rollladen&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  readingsGroup für FIBARO Roller Shutter FGR-222 Devices ===&lt;br /&gt;
{{Randnotiz|RNTyp=g|RNText=Getestet von majestro84, Stand 2019-01-28.&lt;br /&gt;
* https://forum.fhem.de/index.php/topic,92628.msg897099.html#msg897099&lt;br /&gt;
* Die Farbgebung entspricht dem Standard, wenn unter dem Style f18 der Farbpreset &#039;&#039;dark&#039;&#039; gewählt wird}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:ASC Jalousien Times.JPG|thumb|right|Beispiel]]&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:65%;word-break: break-all;word-wrap: break-word;&amp;quot;&amp;gt;define ASC_Jalousien_Times readingsGroup &amp;lt;Gerät&amp;gt;,&amp;lt;Stand&amp;gt;,&amp;lt;Time_Up_Early&amp;gt;,&amp;lt;Time_Up_WE&amp;gt;,&amp;lt;Time_Up_Late&amp;gt;,&amp;lt;Time_Down_Early&amp;gt;,&amp;lt;Time_Down_Late&amp;gt;,&amp;lt;Mode_Down&amp;gt;,&amp;lt;Mode_Up&amp;gt;,&amp;lt;PartyMode&amp;gt;,&amp;lt;LockOut&amp;gt; (.*_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&lt;br /&gt;
&lt;br /&gt;
 attr ASC_Jalousien_Times commands {position =&amp;gt; &#039;dim:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,99&#039;,&lt;br /&gt;
 ASC_Mode_Down =&amp;gt; &#039;ASC_Mode_Down:always,absent,off&#039;,&lt;br /&gt;
 ASC_Mode_Up =&amp;gt; &#039;ASC_Mode_Up:always,absent,off&#039;,&lt;br /&gt;
 ASC_Partymode =&amp;gt; &#039;ASC_Partymode:on,off&#039;,&lt;br /&gt;
 ASC_LockOut =&amp;gt; &#039;ASC_LockOut:soft,hard,off&#039;,&lt;br /&gt;
 ASC_Time_Down_Early =&amp;gt; &#039;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&#039;, &lt;br /&gt;
 ASC_Time_Down_Late  =&amp;gt; &#039;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&#039;,&lt;br /&gt;
 ASC_Time_Up_Early =&amp;gt; &#039;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&#039;,&lt;br /&gt;
 ASC_Time_Up_Late =&amp;gt;&#039;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&#039;,&lt;br /&gt;
 ASC_Time_Up_WE_Holiday =&amp;gt; &#039;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&#039;}&lt;br /&gt;
 attr ASC_Jalousien_Times room Jalousien&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Bild:ASC Jalousien Level.JPG|thumb|right|Beispiel]]&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:65%;word-break: break-all;word-wrap: break-word;&amp;quot;&amp;gt; define Jalousien_Level readingsGroup &amp;lt;Gerät&amp;gt;,&amp;lt;Closed_Pos&amp;gt;,&amp;lt;Open_Pos&amp;gt;,&amp;lt;Comfort_Pos&amp;gt;,&amp;lt;Ventilate_Pos&amp;gt;,&amp;lt;PrivacyDown_Pos&amp;gt;,&amp;lt;Shading_Pos&amp;gt; (.*_Jalousie.*):!?ASC_Closed_Pos,!?ASC_Open_Pos,!?ASC_ComfortOpen_Pos,!?ASC_Ventilate_Pos,!?ASC_PrivacyDown_Pos,!?ASC_Shading_Pos&lt;br /&gt;
 attr Jalousien_Level commands { ASC_Closed_Pos =&amp;gt; &#039;ASC_Closed_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,99&#039;,&lt;br /&gt;
 ASC_Open_Pos =&amp;gt; &#039;ASC_Open_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,99&#039;,&lt;br /&gt;
 ASC_ComfortOpen_Pos =&amp;gt; &#039;ASC_ComfortOpen_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,99&#039;,&lt;br /&gt;
 ASC_Ventilate_Pos =&amp;gt; &#039;ASC_Ventilate_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,99&#039;,&lt;br /&gt;
 ASC_PrivacyDown_Pos =&amp;gt; &#039;ASC_PrivacyDown_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,99&#039;,&lt;br /&gt;
 ASC_Shading_Pos =&amp;gt; &#039;ASC_Shading_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,99&#039;}&lt;br /&gt;
 attr Jalousien_Level room Jalousien&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Einrichtungsbeispiel ==&lt;br /&gt;
=== Zielsetzung und Vorgaben ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Vorarbeiten ===&lt;br /&gt;
Im global-Device sind Angaben zu latitude und longitude vorhanden, holiday2we wie folgt&amp;lt;ref&amp;gt;&#039;&#039;ferien&#039;&#039; ist eine automatisiert erstellte holiday-Datei nach diesem {{Link2Forum|Topic=85759|Message=885883|LinkText=Foren-Beitrag}}.&amp;lt;/ref&amp;gt;:&lt;br /&gt;
 attr global holiday2we bw,ferien&lt;br /&gt;
Weitere Angaben benötigen wir zunächst nicht, die Festlegung eines Astro-Devices erfolgt hier erst im Rahmen der Beschattung. &lt;br /&gt;
Dann erfolgt das &#039;&#039;Define des ASC-Devices&#039;&#039; wie oben beschrieben:&lt;br /&gt;
&amp;lt;code&amp;gt;define Rollladenautomatik AutoShuttersControl&amp;lt;/code&amp;gt;&lt;br /&gt;
Folgen die einzubindenden Rollladenaktoren einem einheitlichen Namensschema, können diese sodann z.B. mit &lt;br /&gt;
 attr (Jalousie|Rollladen)_.* ASC 2&lt;br /&gt;
auf einen Rutsch mit dem passenden ASC-Typ gekennzeichnet werden. Dann verteilen wir mir &lt;br /&gt;
 set Rollladenautomatik scanForShutters&lt;br /&gt;
die nachfolgend weiter zu bearbeitenden Attribute.&lt;br /&gt;
=== Schließen morgens und abends ===&lt;br /&gt;
{{Randnotiz|RNTyp=g|RNText=Alternative: Fahren nach brightness:&lt;br /&gt;
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 (&#039;&#039;ASC_BrightnessMinVal&#039;&#039; etc.), bei dessen Überschreitung geöffnet bzw. Unterschreitung geschlossen werden soll.}}&lt;br /&gt;
==== Konfiguration des ASC-Devices ====&lt;br /&gt;
Da wir sonnenstandsabhängig Fahrzeiten wollen, legen wir erst einmal fest, dass dies morgens und abends berücksichtigt werden soll:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
attr Rollladenautomatik ASC_autoAstroModeEvening CIVIL&lt;br /&gt;
attr Rollladenautomatik ASC_autoAstroModeMorning CIVIL&lt;br /&gt;
attr Rollladenautomatik ASC_autoShuttersControlEvening on&lt;br /&gt;
attr Rollladenautomatik ASC_autoShuttersControlMorning on&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Aus der Angabe &#039;&#039;CIVIL&#039;&#039; 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.&lt;br /&gt;
Bei allen Fensteröffnungen soll auf eine Lüften-Position gefahren werden, also schalten wir diese Funktion ebenfalls zentral an&amp;lt;ref&amp;gt;Sonst wird bei threeState-Sensoren nur bei &#039;&#039;tilted&#039;&#039; auf die in &#039;&#039;ASC_Ventilate_Pos&#039;&#039; gefahren.&amp;lt;/ref&amp;gt;:&lt;br /&gt;
 attr Rollladenautomatik ASC_autoShuttersControlComfort on &lt;br /&gt;
Zuletzt legen wir noch einen Temperatur-Sensor fest. Dieser wird beim Frostschutz sowie bei der Beschattung berücksichtigt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
attr Rollladenautomatik ASC_temperatureSensor Aussentemperatur_Nord&lt;br /&gt;
attr Rollladenautomatik ASC_temperatureReading temperature&lt;br /&gt;
attr Rollladenautomatik ASC_freezeTemp 3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
tbd: &lt;br /&gt;
* Rain&lt;br /&gt;
* Wind&lt;br /&gt;
==== Konfiguration der Rollladendevices ====&lt;br /&gt;
===== Fahrzeiten =====&lt;br /&gt;
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.&lt;br /&gt;
===== Bewohner =====&lt;br /&gt;
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 &#039;&#039;ASC_Roommate_Device&#039;&#039; und &#039;&#039;ASC_Roommate_Reading&#039;&#039; einem Rollladen zugeordnet werden. Ist einer der Bewohner &#039;&#039;asleep&#039;&#039;, wird morgens erst geöffnet, wenn auch der letzte Roommate nicht mehr &#039;&#039;asleep&#039;&#039; ist.&lt;br /&gt;
===== Fensterkontakte  =====&lt;br /&gt;
Dann werden ggf. vorhandene Fensterkontakte mit &#039;&#039;ASC_WindowRec&#039;&#039; zugeordnet und der Sensortyp mit &#039;&#039;ASC_WindowRec_subType&#039;&#039; festgelegt. Im Falle von threeState-Sensoren wird das übergreifende &#039;&#039;ASC_autoShuttersControlComfort&#039;&#039; beachtet, wobei dann bei vollständiger Öffnung des Fensters auf den in &#039;&#039;ASC_ComfortOpen_Pos&#039;&#039; festgelegten Wert gefahren wird.&lt;br /&gt;
===== Frostschutz =====&lt;br /&gt;
Zuletzt können die Attribute &#039;&#039;ASC_Antifreeze&#039;&#039; und &#039;&#039;ASC_Antifreeze_Pos&#039;&#039; festgelegt werden, wenn die Frostschutzfunktion aktiviert werden soll.&lt;br /&gt;
=== Beschattung ===&lt;br /&gt;
==== Konfiguration des ASC-Devices ====&lt;br /&gt;
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 &#039;&#039;ASC_twilightDevice&#039;&#039; 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.&lt;br /&gt;
Weiter ist ein Temperatursensor für die Beschattung festzulegen (&#039;&#039;ASC_temperatureSensor.*&#039;&#039;-Attribute) wie bereits oben beschrieben.&lt;br /&gt;
&lt;br /&gt;
==== Konfiguration der Rollladendevices ====&lt;br /&gt;
Zum einen legt man einen Helligkeitssensor fest (&#039;&#039;ASC_Brightness_Sensor&#039;&#039; und &#039;&#039;ASC_Brightness_Reading&#039;&#039;). 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 &#039;&#039;ASC_Shading_StateChange_Sunny&#039;&#039; (Beschattung soll eingeschaltet werden) und &#039;&#039;ASC_Shading_StateChange_Cloudy&#039;&#039; (Beschattung soll beendet werden) festgelegt, wobei immer nur gefahren wird, wenn auch alles andere - insbesondere die Mindesthöhe des Sonnenstands (&#039;&#039;ASC_Shading_Min_Elevation&#039;&#039;) und die Mindesttemperatur &#039;&#039;ASC_Shading_Min_OutsideTemperature&#039;&#039; - passt.&lt;br /&gt;
Dann sind die Winkelangaben festzulegen, ggf. kann ein Kompass zu Hilfe genommen werden (&#039;&#039;ASC_Shading_Direction&#039;&#039; ist die Richtung des Fensters, 90 Grad entspricht Ost, 180 Grad Süden, &#039;&#039;ASC_Shading_Angle_Left&#039;&#039; ist der Sonneneintritt ins Zimmer, wird von -Direction abgezogen, &#039;&#039;ASC_Shading_Angle_Right&#039;&#039; hat diesselbe Funktion für den Austrittswinkel.&lt;br /&gt;
&lt;br /&gt;
=== Weitere Funktionen ===&lt;br /&gt;
==== Privacy ====&lt;br /&gt;
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&lt;br /&gt;
==== BlockingTime====&lt;br /&gt;
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.&lt;br /&gt;
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.&lt;br /&gt;
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.&lt;br /&gt;
==== wiggle====&lt;br /&gt;
Mit einem &amp;lt;code&amp;gt;set &amp;lt;ASC-Device&amp;gt; wiggle&amp;lt;/code&amp;gt; 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.&lt;br /&gt;
==== Partymode ====&lt;br /&gt;
Dieser wird am ASC-Device selbst aktiviert mittels &amp;lt;code&amp;gt;set &amp;lt;ASC-Device&amp;gt; partyMode on&amp;lt;/code&amp;gt;. Alle Rollladen-Devices, welche das Attribut &#039;&#039;ASC_Partymode&#039;&#039; auf &#039;&#039;on&#039;&#039; 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 &amp;lt;code&amp;gt;set ASC-Device partyMode off&amp;lt;/code&amp;gt; ausgeführt.&lt;br /&gt;
==== lock-out ====&lt;br /&gt;
(tbd auch hier: Doku ist etwas verteilt, könnte man im Wiki jeweils unter einem eigenen Unterabschnitt im Zusammenhang darstellen)&lt;br /&gt;
&lt;br /&gt;
==== SelfDefense ====&lt;br /&gt;
Das bei einem absent nur da die Rollläden geschlossen werden wo das Fenster vergessen wurde zu schließen.&lt;br /&gt;
Beim wechsel in gone wird nur an den makierten Terassentüren (&#039;&#039;ASC_ShuttersPlace terrace&#039;&#039;) der Rollladen runter gefahren.&lt;br /&gt;
Weitere Attribute dazu: &#039;&#039;ASC_Self_Defense_Exclude&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sonstige Hinweise ==&lt;br /&gt;
* 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 &amp;lt;code&amp;gt;set &amp;lt;ASC-Modul&amp;gt; expert 1&amp;lt;/code&amp;gt; erweiterte Informationen bezüglich des NotifyDevs unter set und get aktiviert und anschließend ein &amp;lt;code&amp;gt;set &amp;lt;ASC-Modul&amp;gt; createNewNotifyDev&amp;lt;/code&amp;gt; ausgeführt.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* {{Link2Forum|Topic=92628|LinkText=&amp;quot;Thread zum Modul im Forum&amp;quot;}}&lt;br /&gt;
* {{Link2Forum|Topic=90751|LinkText=&amp;quot;Thread zur Entwicklung im Forum&amp;quot;}} &lt;br /&gt;
* {{Link2Forum|Topic=73964|LinkText=&amp;quot;Thread zu den Scripten von user cluni&amp;quot;}}, die der Entwicklung des Moduls zugrunde liegen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Code Snippets]]&lt;br /&gt;
[[Kategorie:Rollladensteuerung]]&lt;/div&gt;</summary>
		<author><name>Stephan1965</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=AutoShuttersControl&amp;diff=31167</id>
		<title>AutoShuttersControl</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=AutoShuttersControl&amp;diff=31167"/>
		<updated>2019-09-02T08:13:06Z</updated>

		<summary type="html">&lt;p&gt;Stephan1965: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Baustelle}}&lt;br /&gt;
{{Infobox Modul&lt;br /&gt;
|ModPurpose=Steuerung von Rollläden&lt;br /&gt;
|ModCategory=Automatisierung&lt;br /&gt;
|ModType=d&lt;br /&gt;
|ModForumArea=Automatisierung&lt;br /&gt;
|ModTechName=73_AutoShuttersControl.pm&lt;br /&gt;
|ModOwner=CoolTux ({{Link2FU|13684|Forum}}/[[Benutzer Diskussion:CoolTux|Wiki]])}}&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
== Basics ==&lt;br /&gt;
{{Hinweis|Das Modul befindet sich derzeit noch in der Entwicklung; der jeweils aktuelle Stand ist  diesem {{Link2Forum|Topic=90751|LinkText=&amp;quot;Thread im Forum&amp;quot;}} zu entnehmen.}}&lt;br /&gt;
Zur Nutzung des Moduls sollten folgende andere FHEM-Devices vorhanden sein:&lt;br /&gt;
* Rollläden&lt;br /&gt;
* Fensterkontakte und &lt;br /&gt;
* Bewohnerstatus auf Basis von Residents/Roomates in englisch. Ersatzweise andere Devices, z.B. Dummys, welche als &#039;&#039;state&#039;&#039; &#039;&#039;home&#039;&#039;, &#039;&#039;asleep&#039;&#039;, &#039;&#039;gotosleep&#039;&#039; und &#039;&#039;awoken&#039;&#039; setzen sowie ein Reading &#039;&#039;lastState&#039;&#039;.&lt;br /&gt;
* Optional:&lt;br /&gt;
** Ein Helligkeitssensor (Steuerung nach Helligkeit und Beschattung)&lt;br /&gt;
** Ein Device zur Bestimmung des Sonnenstands (nur für Beschattung). Unterstützt werden derzeit [[Modul Astro|Astro]] und [[Twilight]]&amp;lt;ref&amp;gt;Dabei müssen ggf. in [[Global|global]] auch Angaben zu &#039;&#039;longitude&#039;&#039; und &#039;&#039;latitude&#039;&#039; vorhanden sein&amp;lt;/ref&amp;gt;. &lt;br /&gt;
** 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&amp;lt;ref&amp;gt;Es kann auch z.B. ein Dummy-Device verwendet werden, dieses sollte dann aber neben dem eigentlichen Feiertags-&#039;&#039;state&#039;&#039; auch in einem Reading &#039;&#039;tomorrow&#039;&#039; Angaben zu anstehenden Feiertagen enthalten.&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;Bitte verfahren Sie entsprechend, wenn Urlaubs- oder Ferientage wie Feiertage behandelt werden sollen.&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Die Einrichtung des Moduls bzw. dessen Funktionalität erfolgt in mehreren Schritten:&lt;br /&gt;
* Definition des ASC-Devices&lt;br /&gt;
* Einstellung zentraler Vorgaben am ASC-Device&lt;br /&gt;
* Markieren der zukünftig zu steuernden Rollladen-Devices&lt;br /&gt;
* Einbinden der Rollladen-Devices in das ASC-Device&lt;br /&gt;
* Einstellen der individuellen Vorgaben je Rollladen (am Rollladen-Device)&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
== Einrichtung ==&lt;br /&gt;
{{Hinweis|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.}}&lt;br /&gt;
&lt;br /&gt;
=== Vorbereitung ===&lt;br /&gt;
Zunächst sollten die in den [[#Basics|Basics]] beschriebenen Geräte vorhanden und funktionsfähig sein. &lt;br /&gt;
&lt;br /&gt;
=== Define des ASC-Devices ===&lt;br /&gt;
Es genügt ein einfaches define ohne weitere Parameter.&lt;br /&gt;
&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; AutoShuttersControl&amp;lt;/code&amp;gt;&lt;br /&gt;
Dies bewirkt neben der Anlage des Devices selbst auch, dass als weiteres globales Attribut &#039;&#039;ASC&#039;&#039; verfügbar wird.&lt;br /&gt;
&lt;br /&gt;
=== Einstellung zentraler Vorgaben ===&lt;br /&gt;
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.&lt;br /&gt;
Diese Attribute können auch nachträglich noch geändert werden.&lt;br /&gt;
&lt;br /&gt;
=== Markieren zu steuernder Rollladen-Devices ===&lt;br /&gt;
Um einen oder mehrere Rollläden durch das ASC-Device zu steuern, wird für jeden Rollladen jeweils das neue globale Attribut &#039;&#039;ASC&#039;&#039; gesetzt. Der Wert ist mit 1 oder 2 festzulegen, wobei &#039;&#039;&#039;1&#039;&#039;&#039; bedeutet, dass &lt;br /&gt;
* die Offen-Position kleiner ist als die Geschlossen-Position, also typischerweise 0 &#039;&#039;offen&#039;&#039; bedeutet und 100 für &#039;&#039;geschlossen&#039;&#039; steht&lt;br /&gt;
* eine bestimmte Position mit &#039;&#039;&#039;position&#039;&#039;&#039; angefahren wird, also z.B. &amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; position 70&amp;lt;/code&amp;gt;.&lt;br /&gt;
Dies ist z.B. die  passende Wahl für ROLLO-Devices&lt;br /&gt;
&lt;br /&gt;
Die &#039;&#039;&#039;2&#039;&#039;&#039; steht für ein umgekehrtes Verhalten und den Befehlsteil &#039;&#039;pct&#039;&#039;, also &#039;&#039;offen&#039;&#039; für &amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; pct 100&amp;lt;/code&amp;gt;. Typischer Vertreter dieses Typs sind HomeMatic (CUL_HM-) Geräte oder die Shelly2-Aktoren.&lt;br /&gt;
&lt;br /&gt;
Aus dieser Vorgabe leitet das Modul dann jeweils bestimmte Voreinstellungen (&#039;&#039;defaults&#039;&#039;) für den Rolladen ab, ohne dass die betreffenden, dafür vorgesehenen Attribute ausdrücklich gesetzt werden müssen. 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. &#039;&#039;dim 99&#039;&#039; für vollständiges Öffnen eines ZWave-Aktors).&lt;br /&gt;
{{Hinweis|Das Vorstehende gilt jeweils für den nicht-invertierten Modus! Wer z.B. ein HomeMatic-Gerät mit &#039;&#039;levelinverse&#039;&#039; betreibt, sollte &#039;&#039;ASC&#039;&#039; auf &amp;quot;1&amp;quot; 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 &#039;&#039;position&#039;&#039; oder &#039;&#039;pct&#039;&#039; kann auch später über ein weiteres Attribut passend eingestellt werden.}}&lt;br /&gt;
&lt;br /&gt;
=== Einbinden in das ASC-Device ===&lt;br /&gt;
Nachdem man das obige Attribut bei einem oder mehreren Rollladen-Devices gesetzt hat, kann mit &lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; scanForShutters&amp;lt;/code&amp;gt; ein Suchlauf gestartet werden, mit dem dann diese Rollläden durch das Modul gefunden und in die Steuerungslogik eingebunden werden.&lt;br /&gt;
&lt;br /&gt;
=== Einstellen der individuellen Vorgaben ===&lt;br /&gt;
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. &lt;br /&gt;
Die Beschreibung der Attribute ist in der commandref enthalten.&lt;br /&gt;
&lt;br /&gt;
== Readings ==&lt;br /&gt;
&lt;br /&gt;
===Readings im ASC-Device selbst ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR/&amp;gt;Wertebereich !! Bedeutung  &lt;br /&gt;
|-&lt;br /&gt;
|..._nextAstroTimeEvent || ||Uhrzeit des nächsten Astro-Events, Sonnenauf- oder Sonnenuntergang oder feste Zeit pro Rollonamen &lt;br /&gt;
|-&lt;br /&gt;
|..._lastPosValue || ||zuletzt abgesetzter Fahrbefehl pro Rollonamen&lt;br /&gt;
|-&lt;br /&gt;
|..._lastDelayPosValue || ||zuletzt abgesetzter Fahrbefehl, welcher beim nächsten zulässigen Event ausgeführt wird&lt;br /&gt;
|-&lt;br /&gt;
|partyMode ||on, off || aktiviert den globalen Partymodus. Alle Rollläden, welche das Attribut &#039;&#039;AutoShuttersControl_Partymode&#039;&#039; bei sich auf &#039;&#039;on&#039;&#039; 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 &amp;lt;ASC-Device&amp;gt; partyMode off) ausgeführt&lt;br /&gt;
|-&lt;br /&gt;
|lockOut || on, off ||für das Aktivieren des Aussperrschutzes gemäß des entsprechenden Attributs &#039;&#039;AutoShuttersControl_lock-out&#039;&#039; im jeweiligen Rolladen (siehe Beschreibung bei den Attributen für die Rolladendevices)&lt;br /&gt;
|-&lt;br /&gt;
|room_... || ||Auflistung aller Rollläden, welche in den jeweiligen Räumen gefunden wurden, Bsp.: room_Schlafzimmer,Terrasse&lt;br /&gt;
|-&lt;br /&gt;
|state || ||Status des &amp;lt;ASC-Device&amp;gt; active, enabled, disabled&lt;br /&gt;
|-&lt;br /&gt;
|sunriseTimeWeHoliday|| on,off ||legt fest, ob das Rolladendevice das Attribut &#039;&#039;AutoShuttersControl_Time_Up_WE_Holiday&#039;&#039; beachtet oder nicht&lt;br /&gt;
|-&lt;br /&gt;
|userAttrList || rolled out ||Status der UserAttribute, welche an die Rollläden gesendet werden&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Readings in den Rolllädendevices ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Bedeutung  &lt;br /&gt;
|-&lt;br /&gt;
|ASC_Time_DriveUp ||Sonnenaufgangszeit für das Rollo&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Time_DriveDown ||Sonnenuntergangszeit für das Rollo&lt;br /&gt;
|-&lt;br /&gt;
|ASC_ShuttersLastDrive ||Grund des letzten Fahrens vom Rolladen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==set- und get-Befehle für das ASC-Device==&lt;br /&gt;
&lt;br /&gt;
=== set-Anweisungen ===&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR/&amp;gt;Wertebereich !! Beschreibung  &lt;br /&gt;
|-&lt;br /&gt;
|partyMode ||on, off ||aktiviert den globalen Partymodus. Siehe Reading &#039;&#039;partyMode&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|lockOut ||on, off ||aktiviert den globalen Aussperrschutz. Siehe Reading &#039;&#039;lockOut&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|renewSetSunriseSunsetTimer || || erneuert bei allen Rollläden die Zeiten für Sunset und Sunrise und setzt die internen Timer neu.&lt;br /&gt;
|-&lt;br /&gt;
|scanForShutters || ||sucht alle FHEM Devices mit dem Attribut &#039;&#039;AutoShuttersControl&#039;&#039; &#039;&#039;1&#039;&#039; oder &#039;&#039;2&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|sunriseTimeWeHoliday || on,off ||aktiviert/deaktiviert die Beachtung des Attributes &#039;&#039;AutoShuttersControl_Time_Up_WE_Holiday&#039;&#039; für Rollladen-Devices&lt;br /&gt;
|-&lt;br /&gt;
|createNewNotifyDev || ||Legt die interne Struktur für NOTIFYDEV neu an&lt;br /&gt;
|-&lt;br /&gt;
|selfDefence ||on, off||aktiviert/deaktiviert den Selbstschutz: wenn das Residents-Device &#039;&#039;absent&#039;&#039; meldet, &#039;&#039;selfDefence&#039;&#039; aktiv ist und ein Fenster im Haus noch offen steht, wird an diesem Fenster das Rollo runtergefahren&lt;br /&gt;
|-&lt;br /&gt;
|wiggle ||||bewegt einen Rollladen oder alle Rollläden (für Abschreckungszwecke bei der Alarmierung) um &#039;&#039;ASC_WiggleValue&#039;&#039;-%, und nach 1 Minute wieder zurück zur Ursprungsposition&lt;br /&gt;
|-&lt;br /&gt;
|||||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== get-Anweisungen ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| showShuttersInformations ||zeigt eine Übersicht der Automatik-Fahrzeiten&lt;br /&gt;
|-&lt;br /&gt;
| showNotifyDevsInformations ||zeigt eine Übersicht der abgelegten NOTIFYDEV Struktur. Dient zur Kontrolle&lt;br /&gt;
|}&lt;br /&gt;
== Attribute ==&lt;br /&gt;
{{Hinweis|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.}}&lt;br /&gt;
{{Hinweis|In der commandref findet sich häufig die Schreibweise &amp;lt;code&amp;gt;ASC_BrightnessSensor Sensorname[:brightness [400:800]]&amp;lt;/code&amp;gt;. 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 &#039;&#039;&#039;wegzulassen&#039;&#039;&#039;! Beispiel: &amp;lt;code&amp;gt;ASC_BrightnessSensor hm_motion_1 70:100&amp;lt;/code&amp;gt; würde das brightness-Reading des Sensors hm_motion_1 verwenden und einen morgendlichen Schwellenwert von 70 bzw. 100 für abends.}}&lt;br /&gt;
===Attribute direkt am ASC-Device ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR/&amp;gt;Wertebereich !! Default-Wert !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|ASC_antifreezeTemp || || ||Temperatur, ab welcher der Frostschutz greift und das Rollo nicht mehr fährt. Der letzte Fahrbefehl wird gespeichert&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoAstroModeEvening ||aktuell REAL, CIVIL, NAUTIC, ASTRONOMIC, HORIZON || || (in genau dieser Schreibweise)&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoAstroModeEveningHorizon || || || Höhe über Horizont, wenn beim Attribut &#039;&#039;AutoShuttersControl_autoAstroModeEvening&#039;&#039; &#039;&#039;HORIZON&#039;&#039; ausgewählt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoAstroModeMorning ||aktuell REAL, CIVIL, NAUTIC, ASTRONOMIC, HORIZON || ||(in genau dieser Schreibweise)&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoAstroModeMorningHorizon || || ||Höhe über Horizont, wenn beim Attribut &#039;&#039;AutoShuttersControl_autoAstroModeMorning&#039;&#039; &#039;&#039;HORIZON&#039;&#039; ausgewählt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoShuttersControlComfort ||on, off || ||aktiviert die Komfortfunktion. Bedeutet, dass ein Rollladen mit einem threestate (Drehgriff-) Sensor am Fenster beim Öffnen in die &amp;quot;Komfortposition&amp;quot; fährt. Diese wird beim Rollladendevice über das Attribut &#039;&#039;AutoShuttersControl_Pos_after_ComfortOpen&#039;&#039; eingestellt.&lt;br /&gt;
|- &lt;br /&gt;
|ASC_autoShuttersControlEvening ||on, off || ||ob Abends die Rollläden automatisch zeitgesteuert werden sollen&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoShuttersControlMorning ||on, off || ||ob Morgens die Rollläden automatisch zeitgesteuert werden sollen&lt;br /&gt;
|-&lt;br /&gt;
|ASC_temperatureReading || || ||Reading für die Außentemperatur&lt;br /&gt;
|-&lt;br /&gt;
|ASC_temperatureSensor || || ||Device für die Außentemperatur&lt;br /&gt;
|-&lt;br /&gt;
|ASC_timeUpHolidayDevice || || ||Device zur Urlaubserkennung oder Sonstiges / muss &#039;&#039;0&#039;&#039; oder &#039;&#039;1&#039;&#039; im Reading &#039;&#039;state&#039;&#039; beinhalten.&lt;br /&gt;
|-&lt;br /&gt;
|ASC_residentsDevice|| || ||Devicenamen des Residents-Device der obersten Ebene&lt;br /&gt;
|-&lt;br /&gt;
|ASC_residentsDeviceReading|| || ||Status Reading des Residents-Device der obersten Ebene&lt;br /&gt;
|-&lt;br /&gt;
|ASC_brightnessMinVal|| || ||minimaler Lichtwert, bei dem Schaltbedingungen noch geprüft werden sollen&lt;br /&gt;
|-&lt;br /&gt;
|ASC_brightnessMaxVal || || ||maximaler Lichtwert, bei dem Schaltbedingungen noch geprüft werden sollen&lt;br /&gt;
|-&lt;br /&gt;
|ASC_rainSensorDevice || || ||Device, welches bei Regen getriggert wird&lt;br /&gt;
|-&lt;br /&gt;
|ASC_rainSensorReading || || ||das ensprechende Reading zum Regendevice&lt;br /&gt;
|-&lt;br /&gt;
|ASC_rainSensorShuttersClosedPos || || ||Position in pct, welche der Rollladen bei Regen anfahren soll &lt;br /&gt;
|-&lt;br /&gt;
|ASC_shuttersDriveOffset  || || ||maximale zufällige Verzögerung in Sekunden bei der Berechnung der Fahrzeiten, &#039;&#039;0&#039;&#039; bedeutet keine Verzögerung&lt;br /&gt;
|-&lt;br /&gt;
|ASC_twilightDevice || || ||Device, welches Informationen zum Sonnenstand liefert, wird unter anderem für die Beschattung verwendet.&lt;br /&gt;
|-&lt;br /&gt;
|ASC_expert || || ||bei &#039;&#039;1&#039;&#039; werden erweiterte Informationen bezüglich des NotifyDevs unter &#039;&#039;set&#039;&#039; und &#039;&#039;get&#039;&#039; angezeigt&lt;br /&gt;
|-&lt;br /&gt;
| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| || || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Attribute in den Rolllädendevices===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR/&amp;gt;Wertebereich !! Default-Wert !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|ASC || 0, 1, 2|| ||0 = &amp;quot;kein Anlegen der Attribute beim ersten Scan bzw. keine Beachtung eines Fahrbefehles&amp;quot;,1 = &amp;quot;Inverse oder Rollo - Bsp.: Rollo Oben 0, Rollo Unten 100 und der Befehl zum prozentualen Fahren ist position&amp;quot;,2 = &amp;quot;Homematic Style - Bsp.: Rollo Oben 100, Rollo Unten 0 und der Befehl zum prozentualen Fahren ist pct&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Antifreeze || soft, am, pm, hard, off|| ||Frostschutz, wenn &#039;&#039;soft&#039;&#039; fährt der Rollladen in die &#039;&#039;ASC_Antifreeze_Pos&#039;&#039;, bei &#039;&#039;hard/am/pm&#039;&#039; wird gar nicht oder innerhalb der entsprechenden Tageszeit nicht gefahren&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Antifreeze_Pos || || ||Position, die angefahren werden soll, wenn der Fahrbefehl komplett schließen lautet, aber der Frostschutz aktiv ist&lt;br /&gt;
|-&lt;br /&gt;
|ASC_AutoAstroModeEvening ||REAL, CIVIL, NAUTIC, ASTRONOMIC, HORIZON || ||aktuell REAL,CIVIL,NAUTIC,ASTRONOMIC&lt;br /&gt;
|-&lt;br /&gt;
|ASC_AutoAstroModeEveningHorizon || || ||Höhe über Horizont, wenn beim Attribut &#039;&#039;ASC_autoAstroModeEvening&#039;&#039; &#039;&#039;HORIZON&#039;&#039; ausgewählt ist&lt;br /&gt;
|-&lt;br /&gt;
|ASC_AutoAstroModeMorning ||REAL, CIVIL, NAUTIC, ASTRONOMIC, HORIZON || ||aktuell REAL,CIVIL,NAUTIC,ASTRONOMIC&lt;br /&gt;
|-&lt;br /&gt;
|ASC_AutoAstroModeMorningHorizon || || ||Höhe über Horizont, wenn beim Attribut &#039;&#039;ASC_autoAstroModeMorning&#039;&#039; &#039;&#039;HORIZON&#039;&#039; ausgewählt ist&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Closed_Pos || || ||in 10er Schritten von 0 bis 100,default Vorgabe ist abhängig vom Attribut &#039;&#039;ASC&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Down || astro, time, brightness || ||bei &#039;&#039;astro&#039;&#039; wird Sonnenuntergang berechnet, bei &#039;&#039;time&#039;&#039; wird der Wert aus &#039;&#039;ASC_Time_Down_Early&#039;&#039; als Fahrzeit verwendet und bei &#039;&#039;brightness&#039;&#039; muss &#039;&#039;ASC_Time_Down_Early&#039;&#039; und &#039;&#039;ASC_Time_Down_Late&#039;&#039; korrekt gesetzt werden. Der Timer läuft dann nach &#039;&#039;ASC_Time_Down_Late&#039;&#039;-Zeit,es wird aber in der Zeit zwischen &#039;&#039;ASC_Time_Down_Early&#039;&#039; und &#039;&#039;ASC_Time_Down_Late&#039;&#039; geschaut, ob die als Attribut im Moduldevice hinterlegte &#039;&#039;ASC_brightnessMinVal&#039;&#039; erreicht wurde. Wenn ja, wird der Rolladen runter gefahren&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Mode_Down ||always, home, absent, off || ||wann darf die Automatik herunterfahren. immer, niemals oder bei Abwesenheit des Roommate (ist kein Roommate und &#039;&#039;absent&#039;&#039; eingestellt, wird gar nicht gesteuert)&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Mode_Up ||always, home, absent, off || ||wann darf die Automatik hochfahren. immer, niemals oder bei Abwesenheit des Roommate (ist kein Roommate und &#039;&#039;absent&#039;&#039; eingestellt, wird gar nicht gesteuert)&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Drive_Offset || || ||maximale zufällige Verzögerung in Sekunden bei der Berechnung der Fahrzeiten, &#039;&#039;0&#039;&#039; bedeutet sofort, &#039;&#039;-1&#039;&#039; bedeutet, dass das gleichwertige Attribut aus dem ASC-Device ausgewertet werden soll&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Open_Pos || || ||in 10er-Schritten von 0 bis 100, default Vorgabe ist abhängig vom Attribut &#039;&#039;ASC&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Partymode || on, off || ||schaltet den Partymodus an oder aus. Wird dann am ASC Device &#039;&#039;set &amp;lt;ASC-DEVICE&amp;gt; partyMode on&#039;&#039; geschaltet, werden alle Fahrbefehle an den Rollläden, welche das Attribut auf &#039;&#039;on&#039;&#039; haben, zwischengespeichert und erst später ausgeführt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Pos_Reading || || ||Name des Readings, welches die Position des Rollladen in Prozent angibt. Wird bei unbekannten Device-Typen auch als &#039;&#039;set&#039;&#039; Befehl zum Fahren verwendet&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Pos_after_ComfortOpen || || ||in 10er-Schritten von 0 bis 100, default Vorgabe ist abhängig vom Attribut &#039;&#039;ASC&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Roommate_Reading || || ||Reading des Roommate-Device, welches den Status wieder gibt&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Time_Down_Early || || ||Sunset früheste Zeit zum Runterfahren&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Time_Down_Late || || ||Sunset späteste Zeit zum Runterfahren&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Time_Up_Early || || ||Sunrise früheste Zeit zum Hochfahren&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Time_Up_Late || || ||Sunrise späteste Zeit zum Hochfahren&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Time_Up_WE_Holiday || || ||Sunrise früheste Zeit zum Hochfahren am Wochenende und/oder Urlaub (holiday2we wird beachtet).&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Up || astro, time, brightness || ||bei &#039;&#039;astro&#039;&#039; wird Sonnenaufgang berechnet, bei &#039;&#039;time&#039;&#039; wird der Wert aus &#039;&#039;ASC_Time_Up_Early&#039;&#039; als Fahrzeit verwendet und bei &#039;&#039;brightness&#039;&#039; müssen &#039;&#039;ASC_Time_Up_Early&#039;&#039; und &#039;&#039;ASC_Time_Up_Late&#039;&#039; korrekt gesetzt werden. Der Timer läuft dann nach &#039;&#039;ASC_Time_Up_Late&#039;&#039;-Zeit, es wird aber in der Zeit zwischen &#039;&#039;ASC_Time_Up_Early&#039;&#039; und &#039;&#039;ASC_Time_Up_Late&#039;&#039; geschaut, ob die als Attribut im Moduldevice hinterlegte &#039;&#039;ASC_brightnessMinVal&#039;&#039; erreicht wurde. Wenn ja, wird der Rolladen runter gefahren&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Ventilate_Pos || || ||in 10er-Schritten von 0 bis 100, default Vorgabe ist abhängig vom Attribut &#039;&#039;ASC&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Ventilate_Window_Open || || ||auf lüften, wenn das Fenster gekippt/geöffnet wird und aktuelle Position unterhalb der Lüften-Position ist&lt;br /&gt;
|-&lt;br /&gt;
|ASC_WindowRec || || ||Name des Fensterkontakts, an welchen Fenster der Rollladen angebracht ist. Sein Reading &#039;&#039;state&#039;&#039; muss die Werte &#039;&#039;open&#039;&#039;, &#039;&#039;closed&#039;&#039; oder &#039;&#039;tilted&#039;&#039; enthalten.&lt;br /&gt;
|-&lt;br /&gt;
|ASC_WindowRec_subType || || ||Typ des verwendeten Fensterkontakts: &#039;&#039;twostate&#039;&#039; (optisch oder magnetisch) oder &#039;&#039;threestate&#039;&#039; (Drehgriffkontakt)&lt;br /&gt;
|-&lt;br /&gt;
|ASC_LockOut || soft, hard || ||stellt entsprechend den Aussperrschutz ein. Bei global aktiven Aussperrschutz (&#039;&#039;set ASC-Device lockOut soft&#039;&#039;) und einem Fensterkontakt &#039;&#039;open&#039;&#039; bleibt dann der Rolladen oben. Dies gilt nur bei Steuerbefehle über das ASC-Modul. Stellt man global auf &#039;&#039;hard&#039;&#039;, wird bei entsprechender Möglichkeit versucht, den Rollladen hardwareseitig zu blockieren. Dann ist auch ein Fahren über die Taster nicht mehr möglich.&lt;br /&gt;
|-&lt;br /&gt;
|ASC_LockOutCmd || inhibit, blocked || ||set Befehl für das Rolladen-Device zum Sperren per Hardware. Der Befehl wird verwendet, wenn &#039;&#039;ASC_LockOut&#039;&#039; auf &#039;&#039;hard&#039;&#039; gesetzt ist&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Self_Defense_Exclude || on, off || ||bei &#039;&#039;on&#039;&#039; wird dieser Rolladen bei aktiven &#039;&#039;selfDefence&#039;&#039; und offenen Fenster nicht runter gefahren, wenn Residents absent ist&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Shading_Brightness_Sensor || || ||Sensor-Device, welches für die Lichtwerte verwendet wird. ACHTUNG! Findet auch Verwendung bei ASC_Down - brightness&lt;br /&gt;
|-&lt;br /&gt;
|ASC_BrightnessMinVal || || ||minimaler Lichtwert, bei dem Schaltbedingungen noch geprüft werden sollen / wird der Wert von &#039;&#039;-1&#039;&#039; nicht geändert, so wird automatisch der Wert aus dem Moduldevice genommen&lt;br /&gt;
|-&lt;br /&gt;
|ASC_BrightnessMaxVal || || ||maximaler Lichtwert, bei dem Schaltbedingungen noch geprüft werden sollen / wird der Wert von &#039;&#039;-1&#039;&#039; nicht geändert, so wird automatisch der Wert aus dem Moduldevice genommen&lt;br /&gt;
|-&lt;br /&gt;
|ASC_ShuttersPlace || window, terrace || ||wenn dieses Attribut auf &#039;&#039;terrace&#039;&#039; gesetzt ist und das Residents-Device in den Status &#039;&#039;gone&#039;&#039; geht und &#039;&#039;selfDefence&#039;&#039; aktiv ist, wird das Rollo geschlossen&lt;br /&gt;
|-  &lt;br /&gt;
|ASC_WiggleValue || || ||Wert, um welchen sich die Position des Rollladens bei &#039;&#039;Wiggle&#039;&#039; ändern soll &lt;br /&gt;
|-&lt;br /&gt;
|ASC_BlockingTime_afterManual || || ||Wartezeit in Sekunden, die die Automatik nach einer manuellen Fahrt aussetzen soll&lt;br /&gt;
|-&lt;br /&gt;
|ASC_BlockingTime_beforNightClose || || ||Vorgabezeit in Sekunden, innerhalb derer vor dem nächtlichen Schließen keine Öffnen-Fahrt mehr ausgeführt werden soll&lt;br /&gt;
|-&lt;br /&gt;
|ASC_BlockingTime_beforDayOpen || || ||Vorgabezeit in Sekunden, innerhalb derer vor dem morgendlichen Öffnen keine Schließen-Fahrt mehr ausgeführt werden soll&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Shading_Direction || || ||Position in Grad, auf der das Fenster liegt - genau Osten wäre 90, Süden 180 und Westen 270&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Shading_Pos || || ||Position des Rollladens für die Beschattung&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Shading_Angle_Left || || ||Vorlaufwinkel im Bezug zum Fenster, ab wann abgeschattet wird. Beispiel: Fenster 180° - 85° ==&amp;gt; ab Sonnenpos. 95° wird abgeschattet&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Shading_Angle_Right || || ||Nachlaufwinkel im Bezug zum Fenster, bis wann abgeschattet wird. Beispiel: Fenster 180° + 85° ==&amp;gt; bis Sonnenpos. 265° wird abgeschattet&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Shading_Mode || || ||absent,always,off,home / Vorgabe, wann Beschattungsaktionen durchzuführen sind&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Shading_StateChange_Sunny || || ||Brightness Wert ab welchen Beschattung statt finden soll, immer in Abhängikkeit der anderen einbezogenden Sensorwerte&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Shading_StateChange_Cloudy || || ||Brightness Wert ab welchen die Beschattung aufgehoben werden soll, immer in Abhängikkeit der anderen einbezogenden Sensorwerte&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Shading_Min_Elevation || || ||ab welcher Höhe des Sonnenstandes soll beschattet werden, immer in Abhängikkeit der anderen einbezogenden Sensorwerte&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Shading_Min_OutsideTemperature || || ||ab welcher Temperatur soll Beschattet werden, immer in Abhängikkeit der anderen einbezogenden Sensorwerte&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Shading_WaitingPeriod || || ||wie viele Sekunden soll gewartet werden bevor eine weitere Auswertung der Sensordaten für die Beschattung statt finden soll&lt;br /&gt;
|-&lt;br /&gt;
|ASC_PrivacyDownTime_beforNightClose || || ||wie viele Sekunden vor dem abendlichen schlie&amp;amp;zlig;en soll der Rollladen in die Sichtschutzposition fahren, -1 bedeutet das diese Funktion unbeachtet bleiben soll&lt;br /&gt;
|-&lt;br /&gt;
|ASC_PrivacyDown_Pos || || ||Position den Rollladens für den Sichtschutz&lt;br /&gt;
|-&lt;br /&gt;
| || || ||&lt;br /&gt;
| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| || || ||    &lt;br /&gt;
|-  &lt;br /&gt;
| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| || || ||        &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Hilfsmittel ==&lt;br /&gt;
{{Hinweis|Die Device-Namen sind auf die eigene Installation anzupassen.}}&lt;br /&gt;
&lt;br /&gt;
=== Interne Übersicht ===&lt;br /&gt;
[[Bild:ASC Overview.JPG|thumb|right|weblink - Beispiel]]&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:65%;word-break: break-all;word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
 define ASC_Jalousie_Info weblink htmlCode {AutoShuttersControl::GetShuttersInformation($defs{&#039;JalousieControl&#039;})}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Codezeilen sind im [[Import von Code Snippets|RAW]]-Format.}}&lt;br /&gt;
&lt;br /&gt;
=== readingsGroup für Level ===&lt;br /&gt;
&lt;br /&gt;
{{Randnotiz|RNTyp=g|RNText= Stand 2019-05-03&lt;br /&gt;
* Erfolgreich getestet mit Homematic Devices, Beta-User&lt;br /&gt;
* Die Farbgebung entspricht dem Standard, wenn unter dem Style f18 der Farbpreset &#039;&#039;light&#039;&#039; gewählt wird.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:65%;word-wrap: break-word;&amp;quot;&amp;gt;defmod rg_ASC_Rolllaeden_Level readingsGroup &amp;lt;Gerät&amp;gt;,&amp;lt;Stand&amp;gt;,&amp;lt;Schliessen bis&amp;gt;,&amp;lt;Öffnen auf&amp;gt;,&amp;lt;Beschattung&amp;gt;,&amp;lt;Komfort&amp;gt;,&amp;lt;Lüften&amp;gt;,&amp;lt;Privacy&amp;gt; (Rollladen_.*|Jalousie_.*)..:level,!?ASC_Closed_Pos,!?ASC_Open_Pos,!?ASC_Shading_Pos,!?ASC_ComfortOpen_Pos,!?ASC_Ventilate_Pos,!?ASC_PrivacyDown_Pos&lt;br /&gt;
attr rg_ASC_Rolllaeden_Level commands {level =&amp;gt; &#039;pct:selectnumbers,0,5,100,0,lin&#039;,\&lt;br /&gt;
ASC_Closed_Pos =&amp;gt; &#039;ASC_Closed_Pos:selectnumbers,0,5,100,0,lin&#039;,\&lt;br /&gt;
ASC_Open_Pos =&amp;gt; &#039;ASC_Open_Pos:selectnumbers,0,5,100,0,lin&#039;,\&lt;br /&gt;
ASC_Shading_Pos =&amp;gt; &#039;ASC_Shading_Pos:selectnumbers,0,5,100,0,lin&#039;,\&lt;br /&gt;
ASC_Ventilate_Pos =&amp;gt; &#039;ASC_Ventilate_Pos:selectnumbers,0,5,100,0,lin&#039;,\&lt;br /&gt;
ASC_ComfortOpen_Pos =&amp;gt; &#039;ASC_ComfortOpen_Pos:selectnumbers,0,5,100,0,lin&#039;,\&lt;br /&gt;
ASC_PrivacyDown_Pos =&amp;gt; &#039;ASC_PrivacyDown_Pos:selectnumbers,0,5,100,0,lin&#039;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== readingsGroup für Zeiten ===&lt;br /&gt;
[[Bild:ReadingsGroup ASC times.png|thumb|right|ReadingsGroup - Zeitenbeispiel]]&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:65%;word-wrap: break-word;&amp;quot;&amp;gt;defmod rg_ASC_Rolllaeden_Times readingsGroup &amp;lt;Gerät&amp;gt;,&amp;lt;Position&amp;gt;,&amp;lt;Time_Up_Early&amp;gt;,&amp;lt;Time_Up_Late&amp;gt;,&amp;lt;Time_Up_WE/Hol&amp;gt;,&amp;lt;Time_Down_Early&amp;gt;,&amp;lt;Time_Down_Late&amp;gt;,&amp;lt;Mode_Down&amp;gt;,&amp;lt;Mode_Up&amp;gt; \&lt;br /&gt;
 (.*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&lt;br /&gt;
attr rg_ASC_Rolllaeden_Times commands {level =&amp;gt; &#039;pct:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100&#039;, \&lt;br /&gt;
 ASC_Time_Down_Early =&amp;gt; &#039;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&#039;, \&lt;br /&gt;
 ASC_Time_Down_Late  =&amp;gt; &#039;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&#039;, \&lt;br /&gt;
 ASC_Time_Up_WE_Holiday =&amp;gt; &#039;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&#039;,\&lt;br /&gt;
 ASC_Time_Up_Early =&amp;gt; &#039;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&#039;,  \&lt;br /&gt;
 ASC_Time_Up_Late =&amp;gt; &#039;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&#039;, \&lt;br /&gt;
 ASC_Mode_Down =&amp;gt; &#039;ASC_Mode_Down:always,absent,off&#039;, \&lt;br /&gt;
 ASC_Mode_Up =&amp;gt; &#039;ASC_Mode_Up:always,absent,off&#039; }&lt;br /&gt;
attr rg_ASC_Rolllaeden_Times room Rollladen&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[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:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:65%;word-wrap: break-word;&amp;quot;&amp;gt;defmod rg_ASC_Rolllaeden_Times readingsGroup &amp;lt;Gerät&amp;gt;,&amp;lt;Stand&amp;gt;,&amp;lt;Time_Up_Early  &amp;gt;,&amp;lt;Time_Up_WE  &amp;gt;,&amp;lt;Time_Up_Late  &amp;gt;,&amp;lt;Time_Down_Early&amp;gt;,&amp;lt;Time_Down_Late&amp;gt;,&amp;lt;Mode_Down&amp;gt;,&amp;lt;Mode_Up&amp;gt; (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&lt;br /&gt;
attr rg_ASC_Rolllaeden_Times commands {level =&amp;gt; &#039;pct:selectnumbers,0,5,100,0,lin&#039;, \&lt;br /&gt;
dim =&amp;gt; &#039;dim:selectnumbers,0,5,99,0,lin&#039;,\&lt;br /&gt;
position =&amp;gt; &#039;pct:selectnumbers,0,5,99,0,lin&#039;,\&lt;br /&gt;
ASC_Mode_Down =&amp;gt; &#039;ASC_Mode_Down:always,absent,off&#039;,\&lt;br /&gt;
ASC_Mode_Up =&amp;gt; &#039;ASC_Mode_Up:always,absent,off&#039;,\&lt;br /&gt;
ASC_Time_Down_Early =&amp;gt; &#039;ASC_Time_Down_Early:time&#039;, \&lt;br /&gt;
ASC_Time_Down_Late  =&amp;gt; &#039;ASC_Time_Down_Late:time&#039;,\&lt;br /&gt;
ASC_Time_Up_Early =&amp;gt; &#039;ASC_Time_Up_Early:time&#039;, \&lt;br /&gt;
ASC_Time_Up_Late =&amp;gt;&#039;ASC_Time_Up_Late:time&#039;,\&lt;br /&gt;
ASC_Time_Up_WE_Holiday =&amp;gt;&#039;ASC_Time_Up_WE_Holiday:time&#039;}&lt;br /&gt;
attr rg_ASC_Rolllaeden_Times room Rollladen&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  readingsGroup für die Beschattung ===&lt;br /&gt;
[[Bild:ReadingsGroup ASC shading.png|thumb|right|ReadingsGroup - Beschattungsbeispiel]]&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:65%;word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
defmod rg_ASC_Rolllaeden_Shading readingsGroup &amp;lt;Gerät&amp;gt;,&amp;lt;Modus&amp;gt;,&amp;lt;Position&amp;gt;,&amp;lt;Richtung&amp;gt;,&amp;lt;°links&amp;gt;,&amp;lt;°rechts&amp;gt;,&amp;lt;Elevation&amp;gt;,&amp;lt;Sunny&amp;gt;,&amp;lt;Cloudy&amp;gt;,&amp;lt;Min Temp&amp;gt; (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&lt;br /&gt;
attr rg_ASC_Rolllaeden_Shading alias Rollläden: Beschattung&lt;br /&gt;
attr rg_ASC_Rolllaeden_Shading commands {ASC_Shading_Pos =&amp;gt; &#039;ASC_Shading_Pos:knob,min:0,max:100,width:50,height:50,fgColor:#FF9900,bgColor:#CCCCCC,step:5,lineCap:round&#039;,\&lt;br /&gt;
ASC_Shading_Mode =&amp;gt; &#039;ASC_Shading_Mode:always,home,absent,off&#039;,\&lt;br /&gt;
ASC_Shading_Direction =&amp;gt; &#039;ASC_Shading_Direction:knob,min:0,max:360,width:50,height:50,fgColor:#FF9900,bgColor:#CCCCCC,step:1,cursor:true,lineCap:round&#039;,\&lt;br /&gt;
ASC_Shading_Angle_Left =&amp;gt; &#039;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&#039;,\&lt;br /&gt;
ASC_Shading_Angle_Right =&amp;gt; &#039;ASC_Shading_Angle_Right:knob,min:0,max:85,angleArc:85,width:50,height:50,fgColor:#FF9900,bgColor:#CCCCCC,step:5,lineCap:round,&#039;,\&lt;br /&gt;
ASC_Shading_MinMax_Elevation =&amp;gt; &#039;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&#039;,\&lt;br /&gt;
ASC_Shading_StateChange_Sunny =&amp;gt; &#039;ASC_Shading_StateChange_Sunny:knob,min:100,max:40000,angleArc:85,rotation:anticlockwise,width:50,height:50,fgColor:#FF9900,bgColor:#CCCCCC,step:20,lineCap:round,angleOffset:270&#039;,\&lt;br /&gt;
ASC_Shading_StateChange_Cloudy =&amp;gt; &#039;ASC_Shading_StateChange_Cloudy:knob,min:100,max:40000,angleArc:85,width:50,height:50,fgColor:#FF9900,bgColor:#CCCCCC,step:20,lineCap:round,&#039;,\&lt;br /&gt;
ASC_Shading_Min_OutsideTemperature =&amp;gt; &#039;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&#039;}&lt;br /&gt;
attr rg_ASC_Rolllaeden_Shading room Rollladen&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Anderes {{Link2Forum|Topic=99980|Message=946357|LinkText=Foren-Beispiel}} für eine RG zu Beschattung (für V. 0.6.x):&lt;br /&gt;
[[Bild:ReadingsGroup ASC shading2.png|thumb|right|ReadingsGroup - Beschattungsbeispiel]]&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:65%;word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
defmod rg_ASC_Shading readingsGroup &amp;lt;Gerät&amp;gt;,&amp;lt;Grad&amp;gt;,&amp;lt;Position&amp;gt;,&amp;lt;Mode&amp;gt;,&amp;lt;Links&amp;gt;,&amp;lt;Rechts&amp;gt;,&amp;lt;Wait&amp;gt;,&amp;lt;ShadeIn&amp;gt;,&amp;lt;ShadeOut&amp;gt;,&amp;lt;Elevation&amp;gt;,&amp;lt;Temperature&amp;gt;,&amp;lt;Device&amp;gt;\&lt;br /&gt;
(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\&lt;br /&gt;
&lt;br /&gt;
attr rg_ASC_Shading commands {ASC_Shading_Direction =&amp;gt; &#039;ASC_Shading_Direction:129,255,309&#039;,\&lt;br /&gt;
ASC_Shading_Pos =&amp;gt; &#039;ASC_Shading_Pos:selectnumbers,0,5,100,0,lin&#039;,\&lt;br /&gt;
ASC_Shading_Mode =&amp;gt; &#039;ASC_Shading_Mode:absent,always,off,home&#039;,\&lt;br /&gt;
ASC_Shading_Angle_Left =&amp;gt; &#039;ASC_Shading_Angle_Left:selectnumbers,0,5,100,0,lin&#039;,\&lt;br /&gt;
ASC_Shading_Angle_Right =&amp;gt; &#039;ASC_Shading_Angle_Right:selectnumbers,0,5,100,0,lin&#039;,\&lt;br /&gt;
ASC_Shading_WaitingPeriod =&amp;gt; &#039;ASC_Shading_WaitingPeriod:selectnumbers,0,60,1200,0,lin&#039;,\&lt;br /&gt;
ASC_Shading_StateChange_Sunny =&amp;gt; &#039;ASC_Shading_StateChange_Sunny:selectnumbers,0,20,1000,0,lin&#039;,\&lt;br /&gt;
ASC_Shading_StateChange_Cloudy =&amp;gt; &#039;ASC_Shading_StateChange_Cloudy:selectnumbers,0,20,1000,0,lin&#039;,\&lt;br /&gt;
ASC_Shading_MinMax_Elevation =&amp;gt;\&lt;br /&gt;
&#039;ASC_Shading_Min_Elevation:selectnumbers,0,1,40,0,lin&#039; ,\&lt;br /&gt;
ASC_Shading_Min_OutsideTemperature =&amp;gt;\&lt;br /&gt;
&#039;ASC_Shading_Min_OutsideTemperature:selectnumbers,0,1,30,0,lin&#039;}&lt;br /&gt;
attr rg_ASC_Shading room Rollladen&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  readingsGroup für FIBARO Roller Shutter FGR-222 Devices ===&lt;br /&gt;
{{Randnotiz|RNTyp=g|RNText=Getestet von majestro84, Stand 2019-01-28.&lt;br /&gt;
* https://forum.fhem.de/index.php/topic,92628.msg897099.html#msg897099&lt;br /&gt;
* Die Farbgebung entspricht dem Standard, wenn unter dem Style f18 der Farbpreset &#039;&#039;dark&#039;&#039; gewählt wird}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:ASC Jalousien Times.JPG|thumb|right|Beispiel]]&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:65%;word-break: break-all;word-wrap: break-word;&amp;quot;&amp;gt;define ASC_Jalousien_Times readingsGroup &amp;lt;Gerät&amp;gt;,&amp;lt;Stand&amp;gt;,&amp;lt;Time_Up_Early&amp;gt;,&amp;lt;Time_Up_WE&amp;gt;,&amp;lt;Time_Up_Late&amp;gt;,&amp;lt;Time_Down_Early&amp;gt;,&amp;lt;Time_Down_Late&amp;gt;,&amp;lt;Mode_Down&amp;gt;,&amp;lt;Mode_Up&amp;gt;,&amp;lt;PartyMode&amp;gt;,&amp;lt;LockOut&amp;gt; (.*_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&lt;br /&gt;
&lt;br /&gt;
 attr ASC_Jalousien_Times commands {position =&amp;gt; &#039;dim:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,99&#039;,&lt;br /&gt;
 ASC_Mode_Down =&amp;gt; &#039;ASC_Mode_Down:always,absent,off&#039;,&lt;br /&gt;
 ASC_Mode_Up =&amp;gt; &#039;ASC_Mode_Up:always,absent,off&#039;,&lt;br /&gt;
 ASC_Partymode =&amp;gt; &#039;ASC_Partymode:on,off&#039;,&lt;br /&gt;
 ASC_LockOut =&amp;gt; &#039;ASC_LockOut:soft,hard,off&#039;,&lt;br /&gt;
 ASC_Time_Down_Early =&amp;gt; &#039;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&#039;, &lt;br /&gt;
 ASC_Time_Down_Late  =&amp;gt; &#039;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&#039;,&lt;br /&gt;
 ASC_Time_Up_Early =&amp;gt; &#039;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&#039;,&lt;br /&gt;
 ASC_Time_Up_Late =&amp;gt;&#039;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&#039;,&lt;br /&gt;
 ASC_Time_Up_WE_Holiday =&amp;gt; &#039;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&#039;}&lt;br /&gt;
 attr ASC_Jalousien_Times room Jalousien&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Bild:ASC Jalousien Level.JPG|thumb|right|Beispiel]]&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:65%;word-break: break-all;word-wrap: break-word;&amp;quot;&amp;gt; define Jalousien_Level readingsGroup &amp;lt;Gerät&amp;gt;,&amp;lt;Closed_Pos&amp;gt;,&amp;lt;Open_Pos&amp;gt;,&amp;lt;Comfort_Pos&amp;gt;,&amp;lt;Ventilate_Pos&amp;gt;,&amp;lt;PrivacyDown_Pos&amp;gt;,&amp;lt;Shading_Pos&amp;gt; (.*_Jalousie.*):!?ASC_Closed_Pos,!?ASC_Open_Pos,!?ASC_ComfortOpen_Pos,!?ASC_Ventilate_Pos,!?ASC_PrivacyDown_Pos,!?ASC_Shading_Pos&lt;br /&gt;
 attr Jalousien_Level commands { ASC_Closed_Pos =&amp;gt; &#039;ASC_Closed_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,99&#039;,&lt;br /&gt;
 ASC_Open_Pos =&amp;gt; &#039;ASC_Open_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,99&#039;,&lt;br /&gt;
 ASC_ComfortOpen_Pos =&amp;gt; &#039;ASC_ComfortOpen_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,99&#039;,&lt;br /&gt;
 ASC_Ventilate_Pos =&amp;gt; &#039;ASC_Ventilate_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,99&#039;,&lt;br /&gt;
 ASC_PrivacyDown_Pos =&amp;gt; &#039;ASC_PrivacyDown_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,99&#039;,&lt;br /&gt;
 ASC_Shading_Pos =&amp;gt; &#039;ASC_Shading_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,99&#039;}&lt;br /&gt;
 attr Jalousien_Level room Jalousien&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Einrichtungsbeispiel ==&lt;br /&gt;
=== Zielsetzung und Vorgaben ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Vorarbeiten ===&lt;br /&gt;
Im global-Device sind Angaben zu latitude und longitude vorhanden, holiday2we wie folgt&amp;lt;ref&amp;gt;&#039;&#039;ferien&#039;&#039; ist eine automatisiert erstellte holiday-Datei nach diesem {{Link2Forum|Topic=85759|Message=885883|LinkText=Foren-Beitrag}}.&amp;lt;/ref&amp;gt;:&lt;br /&gt;
 attr global holiday2we bw,ferien&lt;br /&gt;
Weitere Angaben benötigen wir zunächst nicht, die Festlegung eines Astro-Devices erfolgt hier erst im Rahmen der Beschattung. &lt;br /&gt;
Dann erfolgt das &#039;&#039;Define des ASC-Devices&#039;&#039; wie oben beschrieben:&lt;br /&gt;
&amp;lt;code&amp;gt;define Rollladenautomatik AutoShuttersControl&amp;lt;/code&amp;gt;&lt;br /&gt;
Folgen die einzubindenden Rollladenaktoren einem einheitlichen Namensschema, können diese sodann z.B. mit &lt;br /&gt;
 attr (Jalousie|Rollladen)_.* ASC 2&lt;br /&gt;
auf einen Rutsch mit dem passenden ASC-Typ gekennzeichnet werden. Dann verteilen wir mir &lt;br /&gt;
 set Rollladenautomatik scanForShutters&lt;br /&gt;
die nachfolgend weiter zu bearbeitenden Attribute.&lt;br /&gt;
=== Schließen morgens und abends ===&lt;br /&gt;
{{Randnotiz|RNTyp=g|RNText=Alternative: Fahren nach brightness:&lt;br /&gt;
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 (&#039;&#039;ASC_BrightnessMinVal&#039;&#039; etc.), bei dessen Überschreitung geöffnet bzw. Unterschreitung geschlossen werden soll.}}&lt;br /&gt;
==== Konfiguration des ASC-Devices ====&lt;br /&gt;
Da wir sonnenstandsabhängig Fahrzeiten wollen, legen wir erst einmal fest, dass dies morgens und abends berücksichtigt werden soll:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
attr Rollladenautomatik ASC_autoAstroModeEvening CIVIL&lt;br /&gt;
attr Rollladenautomatik ASC_autoAstroModeMorning CIVIL&lt;br /&gt;
attr Rollladenautomatik ASC_autoShuttersControlEvening on&lt;br /&gt;
attr Rollladenautomatik ASC_autoShuttersControlMorning on&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Aus der Angabe &#039;&#039;CIVIL&#039;&#039; 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.&lt;br /&gt;
Bei allen Fensteröffnungen soll auf eine Lüften-Position gefahren werden, also schalten wir diese Funktion ebenfalls zentral an&amp;lt;ref&amp;gt;Sonst wird bei threeState-Sensoren nur bei &#039;&#039;tilted&#039;&#039; auf die in &#039;&#039;ASC_Ventilate_Pos&#039;&#039; gefahren.&amp;lt;/ref&amp;gt;:&lt;br /&gt;
 attr Rollladenautomatik ASC_autoShuttersControlComfort on &lt;br /&gt;
Zuletzt legen wir noch einen Temperatur-Sensor fest. Dieser wird beim Frostschutz sowie bei der Beschattung berücksichtigt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
attr Rollladenautomatik ASC_temperatureSensor Aussentemperatur_Nord&lt;br /&gt;
attr Rollladenautomatik ASC_temperatureReading temperature&lt;br /&gt;
attr Rollladenautomatik ASC_freezeTemp 3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
tbd: &lt;br /&gt;
* Rain&lt;br /&gt;
* Wind&lt;br /&gt;
==== Konfiguration der Rollladendevices ====&lt;br /&gt;
===== Fahrzeiten =====&lt;br /&gt;
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.&lt;br /&gt;
===== Bewohner =====&lt;br /&gt;
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 &#039;&#039;ASC_Roommate_Device&#039;&#039; und &#039;&#039;ASC_Roommate_Reading&#039;&#039; einem Rollladen zugeordnet werden. Ist einer der Bewohner &#039;&#039;asleep&#039;&#039;, wird morgens erst geöffnet, wenn auch der letzte Roommate nicht mehr &#039;&#039;asleep&#039;&#039; ist.&lt;br /&gt;
===== Fensterkontakte  =====&lt;br /&gt;
Dann werden ggf. vorhandene Fensterkontakte mit &#039;&#039;ASC_WindowRec&#039;&#039; zugeordnet und der Sensortyp mit &#039;&#039;ASC_WindowRec_subType&#039;&#039; festgelegt, wobei im Falle von threeState-Sensoren das übergreifende &#039;&#039;ASC_autoShuttersControlComfort&#039;&#039; beachtet wird, wobei dann bei vollstäniger Öffnung des Fensters auf den in &#039;&#039;ASC_ComfortOpen_Pos&#039;&#039; festgelegten Wert gefahren wird.&lt;br /&gt;
===== Frostschutz =====&lt;br /&gt;
Zuletzt können die Attribute &#039;&#039;ASC_Antifreeze&#039;&#039; und &#039;&#039;ASC_Antifreeze_Pos&#039;&#039; festgelegt werden, wenn die Frostschutzfunktion aktiviert werden soll.&lt;br /&gt;
=== Beschattung ===&lt;br /&gt;
==== Konfiguration des ASC-Devices ====&lt;br /&gt;
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 &#039;&#039;ASC_twilightDevice&#039;&#039; 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.&lt;br /&gt;
Weiter ist ein Temperatursensor für die Beschattung festzulegen (&#039;&#039;ASC_temperatureSensor.*&#039;&#039;-Attribute) wie bereits oben beschrieben.&lt;br /&gt;
&lt;br /&gt;
==== Konfiguration der Rollladendevices ====&lt;br /&gt;
Zum einen legt man einen Helligkeitssensor fest (&#039;&#039;ASC_Brightness_Sensor&#039;&#039; und &#039;&#039;ASC_Brightness_Reading&#039;&#039;). 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 &#039;&#039;ASC_Shading_StateChange_Sunny&#039;&#039; (Beschattung soll eingeschaltet werden) und &#039;&#039;ASC_Shading_StateChange_Cloudy&#039;&#039; (Beschattung soll beendet werden) festgelegt, wobei immer nur gefahren wird, wenn auch alles andere - insbesondere die Mindesthöhe des Sonnenstands (&#039;&#039;ASC_Shading_Min_Elevation&#039;&#039;) und die Mindesttemperatur &#039;&#039;ASC_Shading_Min_OutsideTemperature&#039;&#039; - passt.&lt;br /&gt;
Dann sind die Winkelangaben festzulegen, ggf. kann ein Kompass zu Hilfe genommen werden (&#039;&#039;ASC_Shading_Direction&#039;&#039; ist die Richtung des Fensters, 90 Grad entspricht Ost, 180 Grad Süden, &#039;&#039;ASC_Shading_Angle_Left&#039;&#039; ist der Sonneneintritt ins Zimmer, wird von -Direction abgezogen, &#039;&#039;ASC_Shading_Angle_Right&#039;&#039; hat diesselbe Funktion für den Austrittswinkel.&lt;br /&gt;
&lt;br /&gt;
=== Weitere Funktionen ===&lt;br /&gt;
==== Privacy ====&lt;br /&gt;
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&lt;br /&gt;
==== BlockingTime====&lt;br /&gt;
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.&lt;br /&gt;
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.&lt;br /&gt;
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.&lt;br /&gt;
==== wiggle====&lt;br /&gt;
Mit einem &amp;lt;code&amp;gt;set &amp;lt;ASC-Device&amp;gt; wiggle&amp;lt;/code&amp;gt; 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.&lt;br /&gt;
==== Partymode ====&lt;br /&gt;
Dieser wird am ASC-Device selbst aktiviert mittels &amp;lt;code&amp;gt;set &amp;lt;ASC-Device&amp;gt; partyMode on&amp;lt;/code&amp;gt;. Alle Rollladen-Devices, welche das Attribut &#039;&#039;ASC_Partymode&#039;&#039; auf &#039;&#039;on&#039;&#039; 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 &amp;lt;code&amp;gt;set ASC-Device partyMode off&amp;lt;/code&amp;gt; ausgeführt.&lt;br /&gt;
==== lock-out ====&lt;br /&gt;
(tbd auch hier: Doku ist etwas verteilt, könnte man im Wiki jeweils unter einem eigenen Unterabschnitt im Zusammenhang darstellen)&lt;br /&gt;
&lt;br /&gt;
==== SelfDefense ====&lt;br /&gt;
Das bei einem absent nur da die Rollläden geschlossen werden wo das Fenster vergessen wurde zu schließen.&lt;br /&gt;
Beim wechsel in gone wird nur an den makierten Terassentüren (&#039;&#039;ASC_ShuttersPlace terrace&#039;&#039;) der Rollladen runter gefahren.&lt;br /&gt;
Weitere Attribute dazu: &#039;&#039;ASC_Self_Defense_Exclude&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sonstige Hinweise ==&lt;br /&gt;
* 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 &amp;lt;code&amp;gt;set &amp;lt;ASC-Modul&amp;gt; expert 1&amp;lt;/code&amp;gt; erweiterte Informationen bezüglich des NotifyDevs unter set und get aktiviert und anschließend ein &amp;lt;code&amp;gt;set &amp;lt;ASC-Modul&amp;gt; createNewNotifyDev&amp;lt;/code&amp;gt; ausgeführt.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* {{Link2Forum|Topic=92628|LinkText=&amp;quot;Thread zum Modul im Forum&amp;quot;}}&lt;br /&gt;
* {{Link2Forum|Topic=90751|LinkText=&amp;quot;Thread zur Entwicklung im Forum&amp;quot;}} &lt;br /&gt;
* {{Link2Forum|Topic=73964|LinkText=&amp;quot;Thread zu den Scripten von user cluni&amp;quot;}}, die der Entwicklung des Moduls zugrunde liegen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Code Snippets]]&lt;br /&gt;
[[Kategorie:Rollladensteuerung]]&lt;/div&gt;</summary>
		<author><name>Stephan1965</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=AutoShuttersControl&amp;diff=28103</id>
		<title>AutoShuttersControl</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=AutoShuttersControl&amp;diff=28103"/>
		<updated>2018-10-15T15:03:00Z</updated>

		<summary type="html">&lt;p&gt;Stephan1965: /* Vorbereitung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Baustelle}}&lt;br /&gt;
{{Infobox Modul&lt;br /&gt;
|ModPurpose=Steuerung von Rollläden&lt;br /&gt;
|ModCategory=Automatisierung&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCmdRef= ---- noch nicht Teil von FHEM --&amp;gt;&lt;br /&gt;
|ModForumArea=Automatisierung&lt;br /&gt;
|ModTechName=73_AutoShuttersControl.pm&lt;br /&gt;
|ModOwner=CoolTux}}&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Das Modul befindet sich derzeit noch in der Entwicklung; der jeweils aktuelle Stand ist  diesem {{Link2Forum|Topic=90751|LinkText=&amp;quot;Thread im Forum&amp;quot;}} zu entnehmen.}}&lt;br /&gt;
&lt;br /&gt;
== Basics ==&lt;br /&gt;
Zur Nutzung des Moduls sollten folgende andere FHEM-Devices vorhanden sein:&lt;br /&gt;
* Rollläden&lt;br /&gt;
* Fensterkontakte und &lt;br /&gt;
* Bewohnerstatus auf Basis von Residents/Roomates in englisch. Ersatzweise andere Devices, z.B. Dummys, welche als &#039;&#039;state&#039;&#039; &#039;&#039;home&#039;&#039;, &#039;&#039;asleep&#039;&#039;, &#039;&#039;gotosleep&#039;&#039; und &#039;&#039;awoken&#039;&#039; setzen sowie ein Reading &#039;&#039;lastState&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Die Einrichtung des Moduls bzw. dessen Funktionalität erfolgt in mehreren Schritten:&lt;br /&gt;
* Definition des ASC-Devices&lt;br /&gt;
* Einstellung zentraler Vorgaben am ASC-Device&lt;br /&gt;
* Markieren der zukünftig zu steuernden Rollladen-Devices&lt;br /&gt;
* Einbinden der Rollladen-Devices in das ASC-Device&lt;br /&gt;
* Einstellen der individuellen Vorgaben je Rollladen (am Rollladen-Device)&lt;br /&gt;
&lt;br /&gt;
== Einrichtung ==&lt;br /&gt;
&lt;br /&gt;
=== Vorbereitung ===&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Ihr benötigt ein aktuelles FHEM. Update ab dem 04.09.2018 Voraussetzung!}}&lt;br /&gt;
&lt;br /&gt;
Zunächst müssen das Modul (aus dem Link im Forum) entpackt, die Datei 73_AutoShuttersControl.pm in das Unterverzeichnis für die Module kopiert und die Rechte angepaßt werden.&lt;br /&gt;
&lt;br /&gt;
Speicherort für Linux-Standardinstallationen: /opt/fhem/FHEM&amp;lt;br&amp;gt;&lt;br /&gt;
Rechte: &amp;lt;code&amp;gt;sudo chown 73_AutoShuttersControl.pm&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;sudo chmod 644 73_AutoShuttersControl.pm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach sollte ein &amp;lt;code&amp;gt;reload AutoShuttersControl&amp;lt;/code&amp;gt; in FHEM-Eingabefeld ausreichen, um das Modul verfügbar zu machen.&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Eventuell muß FHEM auch einmalig neu gestartet werden, um das Modul nutzen zu können.}}&lt;br /&gt;
&lt;br /&gt;
=== Define des ASC-Devices ===&lt;br /&gt;
Es genügt ein einfaches define ohne weitere Parameter.&lt;br /&gt;
&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; AutoShuttersControl&amp;lt;/code&amp;gt;&lt;br /&gt;
Dies bewirkt neben der Anlage des Devices selbst auch, dass als weiteres globales Attribut &#039;&#039;AutoShuttersControl&#039;&#039; verfügbar wird.&lt;br /&gt;
&lt;br /&gt;
=== Einstellung zentraler Vorgaben ===&lt;br /&gt;
Es stehen am ASC-Device einige Attribute zur Verfügung, über die sich das Verhalten des ASC-Devices insgesamt steuern läßt, 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.&lt;br /&gt;
Diese Attribute können auch nachträglich noch geändert werden.&lt;br /&gt;
&lt;br /&gt;
=== Markieren zu steuernder Rollladen-Devices ===&lt;br /&gt;
Um einen oder mehrere Rollläden durch das ASC-Device zu steuern, wird für jeden Rollladen jeweils das neue globale Attribut &#039;&#039;AutoShuttersControl&#039;&#039; gesetzt. Der Wert ist mit 1 oder 2 festzulegen, wobei &#039;&#039;&#039;1&#039;&#039;&#039; bedeutet, dass &lt;br /&gt;
* die Offen-Position kleiner ist als die Geschlossen-Position, also typischerweise 0 &#039;&#039;offen&#039;&#039; bedeutet und 100 für &#039;&#039;geschlossen&#039;&#039; steht&lt;br /&gt;
* eine bestimmte Position mit &#039;&#039;&#039;position&#039;&#039;&#039; angefahren wird, also z.B. &amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; position 70&amp;lt;/code&amp;gt;.&lt;br /&gt;
Dies ist z.B. die  passende Wahl für ROLLO-Devices&lt;br /&gt;
&lt;br /&gt;
Die &#039;&#039;&#039;2&#039;&#039;&#039; steht für ein umgekehrtes Verhalten und den Befehlsteil &#039;&#039;pct&#039;&#039;, also &#039;&#039;offen&#039;&#039; für &amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; pct 100&amp;lt;/code&amp;gt;. Typischer Vertreter dieses Typs sind HomeMatic (CUL_HM-) Geräte.&lt;br /&gt;
&lt;br /&gt;
=== Einbinden in das ASC-Device ===&lt;br /&gt;
Nachdem man das obige Attribut bei einem oder mehreren Rollladen-Devices gesetzt hat, kann mit &lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; scanForShutters&amp;lt;/code&amp;gt; ein Suchlauf gestartet werden, mit dem dann diese Rollläden durch das Modul gefunden und in die Steuerungslogik eingebunden werden.&lt;br /&gt;
&lt;br /&gt;
=== Einstellen der individuellen Vorgaben ===&lt;br /&gt;
Danach sind jeweils an den Rollladen-Devices weitere Attribute verfügbar, mit denen die für den jeweiligen Rollladen geltenden Einstellungen vorgenommen werden können. &lt;br /&gt;
Die Beschreibung der Attribute ist in der commandref enthalten.&lt;br /&gt;
&lt;br /&gt;
== Readings ==&lt;br /&gt;
&lt;br /&gt;
===Readings im AutoShuttersControl Device selbst.===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR/&amp;gt;Wertebereich !! Bedeutung  &lt;br /&gt;
|-&lt;br /&gt;
|..._nextAstroTimeEvent || ||Uhrzeit des nächsten Astro Events, Sonnenauf, Sonnenuntergang oder feste Zeit pro Rollonamen &lt;br /&gt;
|-&lt;br /&gt;
|..._lastPosValue || ||letzter abgesetzter Fahrbefehl pro Rollonamen&lt;br /&gt;
|-&lt;br /&gt;
|..._lastDelayPosValue || ||letzter abgesetzter Fahrbefehl welcher beim nächsten zulässigen Event ausgeführt wird.&lt;br /&gt;
|-&lt;br /&gt;
|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 Schaltbefehle welcher durch ein Fensterevent oder Bewohnerstatus an die Rollläden gesendet wurde, wird beim off setzen durch set ASC-Device partyMode off ausgeführt&lt;br /&gt;
|-&lt;br /&gt;
|lockOut || on, off ||für das aktivieren des Aussperrschutzes gemäß dem entsprechenden Attribut AutoShuttersControl_lock-out im jeweiligen Rolladen. (siehe Beschreibung bei den Attributen für die Rolladendevices)&lt;br /&gt;
|-&lt;br /&gt;
|room_... || ||Auflistung aller Rollläden welche in den jeweiligen Rämen gefunden wurde, Bsp.: room_Schlafzimmer,Terrasse&lt;br /&gt;
|-&lt;br /&gt;
|state || ||Status des Devices active, enabled, disabled&lt;br /&gt;
|-&lt;br /&gt;
|sunriseTimeWeHoliday|| on,off ||wird das Rolladen Device Attribut Attributes AutoShuttersControl_Time_Up_WE_Holiday Beachtet oder nicht&lt;br /&gt;
|-&lt;br /&gt;
|userAttrList || rolled out ||Status der UserAttribute welche an die Rollläden gesendet werden&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Readings in den Rolllädendevices===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Bedeutung  &lt;br /&gt;
|-&lt;br /&gt;
|ASC_Time_Sunrise ||Sonnenaufgangszeit für das Rollo&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Time_Sunset ||Sonnenuntergangszeit für das Rollo&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Settings ==&lt;br /&gt;
&lt;br /&gt;
===Set Befehle für AutoShuttersControl Device===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR/&amp;gt;Wertebereich !! Beschreibung  &lt;br /&gt;
|-&lt;br /&gt;
|partyMode ||on, off ||aktiviert den globalen Partymodus. Siehe Reading partyMode&lt;br /&gt;
|-&lt;br /&gt;
|lockOut ||on, off ||aktiviert den globalen Aussperrschutz. Siehe Reading partyMode&lt;br /&gt;
|-&lt;br /&gt;
|renewSetSunriseSunsetTimer || || erneuert bei allen Rollläden die Zeiten für Sunset und Sunrise und setzt die internen Timer neu.&lt;br /&gt;
|-&lt;br /&gt;
|scanForShutters || ||sucht alle FHEM Devices mit dem Attribut &amp;quot;AutoShuttersControl&amp;quot; 1/2&lt;br /&gt;
|-&lt;br /&gt;
|sunriseTimeWeHoliday || on,off ||aktiviert/deaktiviert die Beachtung des Rolladen Device Attributes AutoShuttersControl_Time_Up_WE_Holiday&lt;br /&gt;
|-&lt;br /&gt;
|createNewNotifyDev || ||Legt die interne Struktur für NOTIFYDEV neu an&lt;br /&gt;
|-&lt;br /&gt;
|selfDefence ||on, off||aktiviert/deaktiviert den Selbstschutz, wenn das Residents Device absent meldet und selfDefence aktiv ist und ein Fenster im Haus steht noch offen, wird an diesem Fenster das Rollo runter gefahren&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Attribute ==&lt;br /&gt;
&lt;br /&gt;
===Attribute im AutoShuttersControl Device selbst.===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR/&amp;gt;Wertebereich !! Default-Wert !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|ASC_antifreezeTemp || || ||Temperatur ab welcher der Frostschutz greifen soll und das Rollo nicht mehr fährt. Der letzte Fahrbefehl wird gespeichert.&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoAstroModeEvening ||aktuell REAL, CIVIL, NAUTIC, ASTRONOMIC || || (in genau dieser Schreibweise)&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoAstroModeEveningHorizon || || || Höhe über Horizont wenn beim Attribut AutoShuttersControl_autoAstroModeEvening HORIZON ausgewählt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoAstroModeMorning ||aktuell REAL, CIVIL, NAUTIC, ASTRONOMIC || ||(in genau dieser Schreibweise)&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoAstroModeMorningHorizon || || ||Höhe über Horizont wenn beim Attribut AutoShuttersControl_autoAstroModeMorning HORIZON ausgewählt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoShuttersControlComfort ||on, off || ||schaltet die Komfortfunktion an. Bedeutet das ein Rollladen mit einem threestate Sensor am Fenster beim öffnen in eine weit offen Position fährt. Die Offenposition wird beim Rollladen über das Attribut AutoShuttersControl_Pos_after_ComfortOpen eingestellt.&lt;br /&gt;
|- &lt;br /&gt;
|ASC_autoShuttersControlEvening ||on, off || ||ob Abends die Rollläden automatisch nach Zeit gesteuert werden sollen&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoShuttersControlMorning ||on, off || ||ob Morgens die Rollläden automatisch nach Zeit gesteuert werden sollen&lt;br /&gt;
|-&lt;br /&gt;
|ASC_temperatureReading || || ||Reading für die Aussentemperatur&lt;br /&gt;
|-&lt;br /&gt;
|ASC_temperatureSensor || || ||Device für die Aussentemperatur&lt;br /&gt;
|-&lt;br /&gt;
|ASC_timeUpHolidayDevice || || ||Device zur Urlaubserkennung oder Sonstiges / muss 0 oder 1 im Reading state beinhalten.&lt;br /&gt;
|-&lt;br /&gt;
|ASC_residentsDevice|| || ||Devicenamen vom Residents Device der obersten Ebene&lt;br /&gt;
|-&lt;br /&gt;
|ASC_residentsDeviceReading|| || ||Status Reading vom Residents Device der obersten Ebene&lt;br /&gt;
|-&lt;br /&gt;
| || || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Attribute in den Rolllädendevices===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR/&amp;gt;Wertebereich !! Default-Wert !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|AutoShuttersControl || 0, 1, 2 || ||1 = &amp;quot;Inverse oder Rollo Bsp.: Rollo Oben 0, Rollo Unten 100 und der Befehl zum Prozentualen fahren ist position&amp;quot;,&amp;lt;BR/&amp;gt; 2 = &amp;quot;Homematic Style Bsp.: Rollo Oben 100, Rollo Unten 0 und der Befehl zum Prozentualen fahren ist pct&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Antifreeze ||on, off || ||Frostschutz an oder aus&lt;br /&gt;
|-&lt;br /&gt;
|ASC_AutoAstroModeEvening ||aktuell REAL, CIVIL, NAUTIC, ASTRONOMIC || ||&lt;br /&gt;
|-&lt;br /&gt;
|ASC_AutoAstroModeEveningHorizon || || ||Höhe über Horizont wenn beim Attribut ASC_autoAstroModeEvening HORIZON ausgewählt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_AutoAstroModeMorning ||aktuell REAL, CIVIL, NAUTIC, ASTRONOMIC || ||&lt;br /&gt;
|-&lt;br /&gt;
|ASC_AutoAstroModeMorningHorizon || || ||Höhe über Horizont wenn beim Attribut ASC_autoAstroModeMorning HORIZON ausgewählt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Closed_Pos || || ||in 10 Schritten von 0 bis 100, default Vorgabe ist abhängig vom Attribut AutoShuttersControl&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Down ||astro, time || ||bei Astro wird Sonnenuntergang berechnet, bei time wird der Wert aus ASC_Time_Down_Early als Fahrzeit verwendet&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Mode_Down ||always, absent, off || ||wann darf die Automatik steuern. immer, niemals, bei abwesenheit des Roomate (ist kein Roommate und absent eingestellt wird gar nicht gesteuert)&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Mode_Up ||always, absent, off || ||wann darf die Automatik steuern. immer, niemals, bei abwesenheit des Roomate (ist kein Roommate und absent eingestellt wird gar nicht gesteuert)&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Offset_Minutes_Evening  || || ||maximale zufällige Verzögerung in Minuten (minimal 1) bei der Berechnung der Fahrzeiten für Abends&lt;br /&gt;
|-  &lt;br /&gt;
|ASC_Offset_Minutes_Morning || || ||maximale zufällige Verzögerung in Minuten (minimal 1) bei der Berechnung der Fahrzeiten für Morgens&lt;br /&gt;
|-  &lt;br /&gt;
|ASC_Open_Pos || || ||in 10 Schritten von 0 bis 100, default Vorgabe ist abhängig vom Attribut AutoShuttersControl&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Partymode ||on, off || ||schaltet den Partymodus an oder aus, Wird dann am ASC Device set ASC-DEVICE partyMode on geschalten, werden alle Fahrbefehle an den Rollläden welche das Attribut auf on haben zwischen gespeichert und später erst ausgeführt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Pos_Cmd || ||  ||der set Befehl um den Rollladen in Prozent Angaben zu fahren, muss der selbe sein wie das Reading welches die Position des Rollladen in Prozent an gibt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Pos_after_ComfortOpen || || ||in 10 Schritten von 0 bis 100, default Vorgabe ist abhängig vom Attribut AutoShuttersControl&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Roommate_Reading || || ||das Reading zum Roommate Device welches den Status wieder gibt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Roommate_Device || || ||Name des Roommate Devices welcher den Bewohner des Raumes vom Rollladen wieder gibt&lt;br /&gt;
|-                                &lt;br /&gt;
|ASC_Time_Down_Early || || ||Sunset frühste Zeit zum runter fahren&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Time_Down_Late || || ||Sunset späteste Zeit zum runter fahren &lt;br /&gt;
|-&lt;br /&gt;
|ASC_Time_Up_Early || || ||Sunrise frühste Zeit zum hoch fahren&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Time_Up_Late || || ||Sunrise späteste Zeit zum hoch fahren&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Time_Up_WE_Holiday  || || ||Sunrise frühste Zeit zum hochfahren am Wochenende und/oder Urlaub (we2holiday wird beachtet), Achtung sollte nicht größer sein wie ASC_Time_Up_Late sonst wird ASC_Time_Up_Late verwendet&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Up ||astro, time || ||bei Astro wird Sonnenaufgang berechnet, bei time wird der Wert aus ASC_Time_Up_Early als Fahrzeit verwendet&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Ventilate_Pos || || ||in 10 Schritten von 0 bis 100, default Vorgabe ist abhängig vom Attribut AutoShuttersControl&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Ventilate_Window_Open || || ||auf lüften, wenn das Fenster gekippt/geöffnet wird und aktuelle Position unterhalb der Lüften-Position ist&lt;br /&gt;
|-&lt;br /&gt;
|ASC_WindowRec || || ||Name des Fensterkontaktes an welchen Fenster der Rolladen angebracht ist&lt;br /&gt;
|-&lt;br /&gt;
|ASC_WindowRec_subType || || ||Typ des verwendeten Fensterkontakts: twostate (optisch oder magnetisch) oder threestate (Drehgriffkontakt)&lt;br /&gt;
|- &lt;br /&gt;
|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 Rolladen Hardwareseitig zu blockieren. Dann ist auch ein fahren über die Taster nicht mehr möglich.&lt;br /&gt;
|- &lt;br /&gt;
|ASC_lock-outCmd ||inhibit, blocked  || ||set Befehl für das Rolladen-Device zum Hardware sperren. Zum gesetzt werden wenn man &amp;quot;ASC_lock-out&amp;quot; auf hard setzt&lt;br /&gt;
|-&lt;br /&gt;
| || || ||&lt;br /&gt;
|-  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Hilfsmittel ==&lt;br /&gt;
tbd&lt;br /&gt;
&lt;br /&gt;
readingsGroup, um die diversen Level einzustellen: &lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Die Readingsgroup muss noch angepasst werden.}}&lt;br /&gt;
&lt;br /&gt;
 define rg_ASC_Rollaeden_Level readingsGroup &amp;lt;Gerät&amp;gt;,&amp;lt;Closed_Pos&amp;gt;,&amp;lt;Open_Pos&amp;gt;,&amp;lt;Shading_Pos&amp;gt;,&amp;lt;Ventilate_Pos&amp;gt; (Rolladen_.*|Jalousie_.*)..:?AutoShuttersControl_Closed_Pos,?AutoShuttersControl_Open_Pos,?AutoShuttersControl_Shading_Pos,?AutoShuttesControl_Ventilate_Pos&lt;br /&gt;
 attr rg_ASC_Rollaeden_Level commands { AutoShuttersControl_Closed_Pos =&amp;gt; &#039;AutoShuttersControl_Closed_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100&#039;,\&lt;br /&gt;
 AutoShuttersControl_Open_Pos =&amp;gt; &#039;AutoShuttersControl_Open_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100&#039;,\&lt;br /&gt;
 AutoShuttersControl_Shading_Pos =&amp;gt; &#039;AutoShuttersControl_Shading_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100&#039;,\&lt;br /&gt;
 AutoShuttersControl_Ventilate_Pos =&amp;gt; &#039;AutoShuttersControl_Ventilate_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100&#039;}&lt;br /&gt;
[[Datei:ReadingsGroup ASC Level.png|600px|]]&lt;br /&gt;
readingsGroup, um die diversen Zeiten einzustellen:&lt;br /&gt;
&lt;br /&gt;
 define rg_ASC_Rollaeden_Times readingsGroup &amp;lt;Gerät&amp;gt;,&amp;lt;Stand&amp;gt;,&amp;lt;Time_Up_Early&amp;gt;,&amp;lt;Time_Up_WE&amp;gt;,&amp;lt;Time_Up_Late&amp;gt;,&amp;lt;Time_Down_Early&amp;gt;,Time_Down_Late&amp;gt;,&amp;lt;Mode_Down&amp;gt;,&amp;lt;Mode_Up&amp;gt; (Rolladen_.*|Jalousie_.*)..:level,?AutoShuttersControl_Time_Up_Early,?AutoShuttersControl_Time_Up_WE_Holiday,?AutoShuttersControl_Time_Up_Late,?AutoShuttersControl_Time_Down_Early,?AutoShuttersControl_Time_Down_Late,?AutoShuttersControl_Mode_Down,?AutoShuttersControl_Mode_Up&lt;br /&gt;
 attr rg_ASC_Rollaeden_Times commands {level =&amp;gt; &#039;pct:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100&#039;, \&lt;br /&gt;
 AutoShuttersControl_Mode_Down =&amp;gt; &#039;AutoShuttersControl_Mode_Down:always,absent,off&#039;,\&lt;br /&gt;
 AutoShuttersControl_Mode_Up =&amp;gt; &#039;AutoShuttersControl_Mode_Up:always,absent,off&#039;,\&lt;br /&gt;
 AutoShuttersControl_Time_Down_Early =&amp;gt; &#039;AutoShuttersControl_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&#039;, \&lt;br /&gt;
 AutoShuttersControl_Time_Down_Late  =&amp;gt; &#039;AutoShuttersControl_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&#039;,\&lt;br /&gt;
 AutoShuttersControl_Time_Up_Early =&amp;gt; &#039;AutoShuttersControl_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&#039;, \&lt;br /&gt;
 AutoShuttersControl_Time_Up_Late =&amp;gt;&#039;AutoShuttersControl_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&#039;,AutoShuttersControl_Time_Up_WE_Holiday =&amp;gt; &#039;AutoShuttersControl_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&#039;}&lt;br /&gt;
[[Datei:ReadingsGroup ASC Times.png|600px|]]&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* {{Link2Forum|Topic=90751|LinkText=&amp;quot;Thread zur Entwicklung im Forum&amp;quot;}} &lt;br /&gt;
* {{Link2Forum|Topic=73964|LinkText=&amp;quot;Thread zu den Scripten von user cluni&amp;quot;}}, die der Entwicklung des Moduls zugrunde liegen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Codeschnipsel]]&lt;br /&gt;
[[Kategorie:Rollladensteuerung]]&lt;/div&gt;</summary>
		<author><name>Stephan1965</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=AutoShuttersControl&amp;diff=28102</id>
		<title>AutoShuttersControl</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=AutoShuttersControl&amp;diff=28102"/>
		<updated>2018-10-15T14:55:41Z</updated>

		<summary type="html">&lt;p&gt;Stephan1965: /* Einstellung zentraler Vorgaben */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Baustelle}}&lt;br /&gt;
{{Infobox Modul&lt;br /&gt;
|ModPurpose=Steuerung von Rollläden&lt;br /&gt;
|ModCategory=Automatisierung&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCmdRef= ---- noch nicht Teil von FHEM --&amp;gt;&lt;br /&gt;
|ModForumArea=Automatisierung&lt;br /&gt;
|ModTechName=73_AutoShuttersControl.pm&lt;br /&gt;
|ModOwner=CoolTux}}&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Das Modul befindet sich derzeit noch in der Entwicklung; der jeweils aktuelle Stand ist  diesem {{Link2Forum|Topic=90751|LinkText=&amp;quot;Thread im Forum&amp;quot;}} zu entnehmen.}}&lt;br /&gt;
&lt;br /&gt;
== Basics ==&lt;br /&gt;
Zur Nutzung des Moduls sollten folgende andere FHEM-Devices vorhanden sein:&lt;br /&gt;
* Rollläden&lt;br /&gt;
* Fensterkontakte und &lt;br /&gt;
* Bewohnerstatus auf Basis von Residents/Roomates in englisch. Ersatzweise andere Devices, z.B. Dummys, welche als &#039;&#039;state&#039;&#039; &#039;&#039;home&#039;&#039;, &#039;&#039;asleep&#039;&#039;, &#039;&#039;gotosleep&#039;&#039; und &#039;&#039;awoken&#039;&#039; setzen sowie ein Reading &#039;&#039;lastState&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Die Einrichtung des Moduls bzw. dessen Funktionalität erfolgt in mehreren Schritten:&lt;br /&gt;
* Definition des ASC-Devices&lt;br /&gt;
* Einstellung zentraler Vorgaben am ASC-Device&lt;br /&gt;
* Markieren der zukünftig zu steuernden Rollladen-Devices&lt;br /&gt;
* Einbinden der Rollladen-Devices in das ASC-Device&lt;br /&gt;
* Einstellen der individuellen Vorgaben je Rollladen (am Rollladen-Device)&lt;br /&gt;
&lt;br /&gt;
== Einrichtung ==&lt;br /&gt;
&lt;br /&gt;
=== Vorbereitung ===&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Ihr benötigt ein aktuelles FHEM. Update ab dem 04.09.2018 Voraussetzung!}}&lt;br /&gt;
&lt;br /&gt;
Zunächst müssen das Modul (aus dem Link im Forum) entpackt, die Datei 73_AutoShuttersControl.pm in das Unterverzeichnis für die Module kopiert und die Rechte angepaßt werden.&lt;br /&gt;
&lt;br /&gt;
Speicherort für Linux-Standardinstallationen: /opt/fhem/FHEM&lt;br /&gt;
Rechte: &amp;lt;code&amp;gt;sudo chown 73_AutoShuttersControl.pm&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;sudo chmod 644 73_AutoShuttersControl.pm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach sollte ein &amp;lt;code&amp;gt;reload AutoShuttersControl&amp;lt;/code&amp;gt; in FHEM-Eingabefeld ausreichen, um das Modul verfügbar zu machen.&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Eventuell muß FHEM auch einmalig neu gestartet werden, um das Modul nutzen zu können.}}&lt;br /&gt;
&lt;br /&gt;
=== Define des ASC-Devices ===&lt;br /&gt;
Es genügt ein einfaches define ohne weitere Parameter.&lt;br /&gt;
&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; AutoShuttersControl&amp;lt;/code&amp;gt;&lt;br /&gt;
Dies bewirkt neben der Anlage des Devices selbst auch, dass als weiteres globales Attribut &#039;&#039;AutoShuttersControl&#039;&#039; verfügbar wird.&lt;br /&gt;
&lt;br /&gt;
=== Einstellung zentraler Vorgaben ===&lt;br /&gt;
Es stehen am ASC-Device einige Attribute zur Verfügung, über die sich das Verhalten des ASC-Devices insgesamt steuern läßt, 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.&lt;br /&gt;
Diese Attribute können auch nachträglich noch geändert werden.&lt;br /&gt;
&lt;br /&gt;
=== Markieren zu steuernder Rollladen-Devices ===&lt;br /&gt;
Um einen oder mehrere Rollläden durch das ASC-Device zu steuern, wird für jeden Rollladen jeweils das neue globale Attribut &#039;&#039;AutoShuttersControl&#039;&#039; gesetzt. Der Wert ist mit 1 oder 2 festzulegen, wobei &#039;&#039;&#039;1&#039;&#039;&#039; bedeutet, dass &lt;br /&gt;
* die Offen-Position kleiner ist als die Geschlossen-Position, also typischerweise 0 &#039;&#039;offen&#039;&#039; bedeutet und 100 für &#039;&#039;geschlossen&#039;&#039; steht&lt;br /&gt;
* eine bestimmte Position mit &#039;&#039;&#039;position&#039;&#039;&#039; angefahren wird, also z.B. &amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; position 70&amp;lt;/code&amp;gt;.&lt;br /&gt;
Dies ist z.B. die  passende Wahl für ROLLO-Devices&lt;br /&gt;
&lt;br /&gt;
Die &#039;&#039;&#039;2&#039;&#039;&#039; steht für ein umgekehrtes Verhalten und den Befehlsteil &#039;&#039;pct&#039;&#039;, also &#039;&#039;offen&#039;&#039; für &amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; pct 100&amp;lt;/code&amp;gt;. Typischer Vertreter dieses Typs sind HomeMatic (CUL_HM-) Geräte.&lt;br /&gt;
&lt;br /&gt;
=== Einbinden in das ASC-Device ===&lt;br /&gt;
Nachdem man das obige Attribut bei einem oder mehreren Rollladen-Devices gesetzt hat, kann mit &lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; scanForShutters&amp;lt;/code&amp;gt; ein Suchlauf gestartet werden, mit dem dann diese Rollläden durch das Modul gefunden und in die Steuerungslogik eingebunden werden.&lt;br /&gt;
&lt;br /&gt;
=== Einstellen der individuellen Vorgaben ===&lt;br /&gt;
Danach sind jeweils an den Rollladen-Devices weitere Attribute verfügbar, mit denen die für den jeweiligen Rollladen geltenden Einstellungen vorgenommen werden können. &lt;br /&gt;
Die Beschreibung der Attribute ist in der commandref enthalten.&lt;br /&gt;
&lt;br /&gt;
== Readings ==&lt;br /&gt;
&lt;br /&gt;
===Readings im AutoShuttersControl Device selbst.===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR/&amp;gt;Wertebereich !! Bedeutung  &lt;br /&gt;
|-&lt;br /&gt;
|..._nextAstroTimeEvent || ||Uhrzeit des nächsten Astro Events, Sonnenauf, Sonnenuntergang oder feste Zeit pro Rollonamen &lt;br /&gt;
|-&lt;br /&gt;
|..._lastPosValue || ||letzter abgesetzter Fahrbefehl pro Rollonamen&lt;br /&gt;
|-&lt;br /&gt;
|..._lastDelayPosValue || ||letzter abgesetzter Fahrbefehl welcher beim nächsten zulässigen Event ausgeführt wird.&lt;br /&gt;
|-&lt;br /&gt;
|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 Schaltbefehle welcher durch ein Fensterevent oder Bewohnerstatus an die Rollläden gesendet wurde, wird beim off setzen durch set ASC-Device partyMode off ausgeführt&lt;br /&gt;
|-&lt;br /&gt;
|lockOut || on, off ||für das aktivieren des Aussperrschutzes gemäß dem entsprechenden Attribut AutoShuttersControl_lock-out im jeweiligen Rolladen. (siehe Beschreibung bei den Attributen für die Rolladendevices)&lt;br /&gt;
|-&lt;br /&gt;
|room_... || ||Auflistung aller Rollläden welche in den jeweiligen Rämen gefunden wurde, Bsp.: room_Schlafzimmer,Terrasse&lt;br /&gt;
|-&lt;br /&gt;
|state || ||Status des Devices active, enabled, disabled&lt;br /&gt;
|-&lt;br /&gt;
|sunriseTimeWeHoliday|| on,off ||wird das Rolladen Device Attribut Attributes AutoShuttersControl_Time_Up_WE_Holiday Beachtet oder nicht&lt;br /&gt;
|-&lt;br /&gt;
|userAttrList || rolled out ||Status der UserAttribute welche an die Rollläden gesendet werden&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Readings in den Rolllädendevices===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Bedeutung  &lt;br /&gt;
|-&lt;br /&gt;
|ASC_Time_Sunrise ||Sonnenaufgangszeit für das Rollo&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Time_Sunset ||Sonnenuntergangszeit für das Rollo&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Settings ==&lt;br /&gt;
&lt;br /&gt;
===Set Befehle für AutoShuttersControl Device===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR/&amp;gt;Wertebereich !! Beschreibung  &lt;br /&gt;
|-&lt;br /&gt;
|partyMode ||on, off ||aktiviert den globalen Partymodus. Siehe Reading partyMode&lt;br /&gt;
|-&lt;br /&gt;
|lockOut ||on, off ||aktiviert den globalen Aussperrschutz. Siehe Reading partyMode&lt;br /&gt;
|-&lt;br /&gt;
|renewSetSunriseSunsetTimer || || erneuert bei allen Rollläden die Zeiten für Sunset und Sunrise und setzt die internen Timer neu.&lt;br /&gt;
|-&lt;br /&gt;
|scanForShutters || ||sucht alle FHEM Devices mit dem Attribut &amp;quot;AutoShuttersControl&amp;quot; 1/2&lt;br /&gt;
|-&lt;br /&gt;
|sunriseTimeWeHoliday || on,off ||aktiviert/deaktiviert die Beachtung des Rolladen Device Attributes AutoShuttersControl_Time_Up_WE_Holiday&lt;br /&gt;
|-&lt;br /&gt;
|createNewNotifyDev || ||Legt die interne Struktur für NOTIFYDEV neu an&lt;br /&gt;
|-&lt;br /&gt;
|selfDefence ||on, off||aktiviert/deaktiviert den Selbstschutz, wenn das Residents Device absent meldet und selfDefence aktiv ist und ein Fenster im Haus steht noch offen, wird an diesem Fenster das Rollo runter gefahren&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Attribute ==&lt;br /&gt;
&lt;br /&gt;
===Attribute im AutoShuttersControl Device selbst.===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR/&amp;gt;Wertebereich !! Default-Wert !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|ASC_antifreezeTemp || || ||Temperatur ab welcher der Frostschutz greifen soll und das Rollo nicht mehr fährt. Der letzte Fahrbefehl wird gespeichert.&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoAstroModeEvening ||aktuell REAL, CIVIL, NAUTIC, ASTRONOMIC || || (in genau dieser Schreibweise)&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoAstroModeEveningHorizon || || || Höhe über Horizont wenn beim Attribut AutoShuttersControl_autoAstroModeEvening HORIZON ausgewählt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoAstroModeMorning ||aktuell REAL, CIVIL, NAUTIC, ASTRONOMIC || ||(in genau dieser Schreibweise)&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoAstroModeMorningHorizon || || ||Höhe über Horizont wenn beim Attribut AutoShuttersControl_autoAstroModeMorning HORIZON ausgewählt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoShuttersControlComfort ||on, off || ||schaltet die Komfortfunktion an. Bedeutet das ein Rollladen mit einem threestate Sensor am Fenster beim öffnen in eine weit offen Position fährt. Die Offenposition wird beim Rollladen über das Attribut AutoShuttersControl_Pos_after_ComfortOpen eingestellt.&lt;br /&gt;
|- &lt;br /&gt;
|ASC_autoShuttersControlEvening ||on, off || ||ob Abends die Rollläden automatisch nach Zeit gesteuert werden sollen&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoShuttersControlMorning ||on, off || ||ob Morgens die Rollläden automatisch nach Zeit gesteuert werden sollen&lt;br /&gt;
|-&lt;br /&gt;
|ASC_temperatureReading || || ||Reading für die Aussentemperatur&lt;br /&gt;
|-&lt;br /&gt;
|ASC_temperatureSensor || || ||Device für die Aussentemperatur&lt;br /&gt;
|-&lt;br /&gt;
|ASC_timeUpHolidayDevice || || ||Device zur Urlaubserkennung oder Sonstiges / muss 0 oder 1 im Reading state beinhalten.&lt;br /&gt;
|-&lt;br /&gt;
|ASC_residentsDevice|| || ||Devicenamen vom Residents Device der obersten Ebene&lt;br /&gt;
|-&lt;br /&gt;
|ASC_residentsDeviceReading|| || ||Status Reading vom Residents Device der obersten Ebene&lt;br /&gt;
|-&lt;br /&gt;
| || || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Attribute in den Rolllädendevices===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR/&amp;gt;Wertebereich !! Default-Wert !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|AutoShuttersControl || 0, 1, 2 || ||1 = &amp;quot;Inverse oder Rollo Bsp.: Rollo Oben 0, Rollo Unten 100 und der Befehl zum Prozentualen fahren ist position&amp;quot;,&amp;lt;BR/&amp;gt; 2 = &amp;quot;Homematic Style Bsp.: Rollo Oben 100, Rollo Unten 0 und der Befehl zum Prozentualen fahren ist pct&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Antifreeze ||on, off || ||Frostschutz an oder aus&lt;br /&gt;
|-&lt;br /&gt;
|ASC_AutoAstroModeEvening ||aktuell REAL, CIVIL, NAUTIC, ASTRONOMIC || ||&lt;br /&gt;
|-&lt;br /&gt;
|ASC_AutoAstroModeEveningHorizon || || ||Höhe über Horizont wenn beim Attribut ASC_autoAstroModeEvening HORIZON ausgewählt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_AutoAstroModeMorning ||aktuell REAL, CIVIL, NAUTIC, ASTRONOMIC || ||&lt;br /&gt;
|-&lt;br /&gt;
|ASC_AutoAstroModeMorningHorizon || || ||Höhe über Horizont wenn beim Attribut ASC_autoAstroModeMorning HORIZON ausgewählt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Closed_Pos || || ||in 10 Schritten von 0 bis 100, default Vorgabe ist abhängig vom Attribut AutoShuttersControl&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Down ||astro, time || ||bei Astro wird Sonnenuntergang berechnet, bei time wird der Wert aus ASC_Time_Down_Early als Fahrzeit verwendet&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Mode_Down ||always, absent, off || ||wann darf die Automatik steuern. immer, niemals, bei abwesenheit des Roomate (ist kein Roommate und absent eingestellt wird gar nicht gesteuert)&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Mode_Up ||always, absent, off || ||wann darf die Automatik steuern. immer, niemals, bei abwesenheit des Roomate (ist kein Roommate und absent eingestellt wird gar nicht gesteuert)&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Offset_Minutes_Evening  || || ||maximale zufällige Verzögerung in Minuten (minimal 1) bei der Berechnung der Fahrzeiten für Abends&lt;br /&gt;
|-  &lt;br /&gt;
|ASC_Offset_Minutes_Morning || || ||maximale zufällige Verzögerung in Minuten (minimal 1) bei der Berechnung der Fahrzeiten für Morgens&lt;br /&gt;
|-  &lt;br /&gt;
|ASC_Open_Pos || || ||in 10 Schritten von 0 bis 100, default Vorgabe ist abhängig vom Attribut AutoShuttersControl&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Partymode ||on, off || ||schaltet den Partymodus an oder aus, Wird dann am ASC Device set ASC-DEVICE partyMode on geschalten, werden alle Fahrbefehle an den Rollläden welche das Attribut auf on haben zwischen gespeichert und später erst ausgeführt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Pos_Cmd || ||  ||der set Befehl um den Rollladen in Prozent Angaben zu fahren, muss der selbe sein wie das Reading welches die Position des Rollladen in Prozent an gibt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Pos_after_ComfortOpen || || ||in 10 Schritten von 0 bis 100, default Vorgabe ist abhängig vom Attribut AutoShuttersControl&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Roommate_Reading || || ||das Reading zum Roommate Device welches den Status wieder gibt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Roommate_Device || || ||Name des Roommate Devices welcher den Bewohner des Raumes vom Rollladen wieder gibt&lt;br /&gt;
|-                                &lt;br /&gt;
|ASC_Time_Down_Early || || ||Sunset frühste Zeit zum runter fahren&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Time_Down_Late || || ||Sunset späteste Zeit zum runter fahren &lt;br /&gt;
|-&lt;br /&gt;
|ASC_Time_Up_Early || || ||Sunrise frühste Zeit zum hoch fahren&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Time_Up_Late || || ||Sunrise späteste Zeit zum hoch fahren&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Time_Up_WE_Holiday  || || ||Sunrise frühste Zeit zum hochfahren am Wochenende und/oder Urlaub (we2holiday wird beachtet), Achtung sollte nicht größer sein wie ASC_Time_Up_Late sonst wird ASC_Time_Up_Late verwendet&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Up ||astro, time || ||bei Astro wird Sonnenaufgang berechnet, bei time wird der Wert aus ASC_Time_Up_Early als Fahrzeit verwendet&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Ventilate_Pos || || ||in 10 Schritten von 0 bis 100, default Vorgabe ist abhängig vom Attribut AutoShuttersControl&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Ventilate_Window_Open || || ||auf lüften, wenn das Fenster gekippt/geöffnet wird und aktuelle Position unterhalb der Lüften-Position ist&lt;br /&gt;
|-&lt;br /&gt;
|ASC_WindowRec || || ||Name des Fensterkontaktes an welchen Fenster der Rolladen angebracht ist&lt;br /&gt;
|-&lt;br /&gt;
|ASC_WindowRec_subType || || ||Typ des verwendeten Fensterkontakts: twostate (optisch oder magnetisch) oder threestate (Drehgriffkontakt)&lt;br /&gt;
|- &lt;br /&gt;
|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 Rolladen Hardwareseitig zu blockieren. Dann ist auch ein fahren über die Taster nicht mehr möglich.&lt;br /&gt;
|- &lt;br /&gt;
|ASC_lock-outCmd ||inhibit, blocked  || ||set Befehl für das Rolladen-Device zum Hardware sperren. Zum gesetzt werden wenn man &amp;quot;ASC_lock-out&amp;quot; auf hard setzt&lt;br /&gt;
|-&lt;br /&gt;
| || || ||&lt;br /&gt;
|-  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Hilfsmittel ==&lt;br /&gt;
tbd&lt;br /&gt;
&lt;br /&gt;
readingsGroup, um die diversen Level einzustellen: &lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Die Readingsgroup muss noch angepasst werden.}}&lt;br /&gt;
&lt;br /&gt;
 define rg_ASC_Rollaeden_Level readingsGroup &amp;lt;Gerät&amp;gt;,&amp;lt;Closed_Pos&amp;gt;,&amp;lt;Open_Pos&amp;gt;,&amp;lt;Shading_Pos&amp;gt;,&amp;lt;Ventilate_Pos&amp;gt; (Rolladen_.*|Jalousie_.*)..:?AutoShuttersControl_Closed_Pos,?AutoShuttersControl_Open_Pos,?AutoShuttersControl_Shading_Pos,?AutoShuttesControl_Ventilate_Pos&lt;br /&gt;
 attr rg_ASC_Rollaeden_Level commands { AutoShuttersControl_Closed_Pos =&amp;gt; &#039;AutoShuttersControl_Closed_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100&#039;,\&lt;br /&gt;
 AutoShuttersControl_Open_Pos =&amp;gt; &#039;AutoShuttersControl_Open_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100&#039;,\&lt;br /&gt;
 AutoShuttersControl_Shading_Pos =&amp;gt; &#039;AutoShuttersControl_Shading_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100&#039;,\&lt;br /&gt;
 AutoShuttersControl_Ventilate_Pos =&amp;gt; &#039;AutoShuttersControl_Ventilate_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100&#039;}&lt;br /&gt;
[[Datei:ReadingsGroup ASC Level.png|600px|]]&lt;br /&gt;
readingsGroup, um die diversen Zeiten einzustellen:&lt;br /&gt;
&lt;br /&gt;
 define rg_ASC_Rollaeden_Times readingsGroup &amp;lt;Gerät&amp;gt;,&amp;lt;Stand&amp;gt;,&amp;lt;Time_Up_Early&amp;gt;,&amp;lt;Time_Up_WE&amp;gt;,&amp;lt;Time_Up_Late&amp;gt;,&amp;lt;Time_Down_Early&amp;gt;,Time_Down_Late&amp;gt;,&amp;lt;Mode_Down&amp;gt;,&amp;lt;Mode_Up&amp;gt; (Rolladen_.*|Jalousie_.*)..:level,?AutoShuttersControl_Time_Up_Early,?AutoShuttersControl_Time_Up_WE_Holiday,?AutoShuttersControl_Time_Up_Late,?AutoShuttersControl_Time_Down_Early,?AutoShuttersControl_Time_Down_Late,?AutoShuttersControl_Mode_Down,?AutoShuttersControl_Mode_Up&lt;br /&gt;
 attr rg_ASC_Rollaeden_Times commands {level =&amp;gt; &#039;pct:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100&#039;, \&lt;br /&gt;
 AutoShuttersControl_Mode_Down =&amp;gt; &#039;AutoShuttersControl_Mode_Down:always,absent,off&#039;,\&lt;br /&gt;
 AutoShuttersControl_Mode_Up =&amp;gt; &#039;AutoShuttersControl_Mode_Up:always,absent,off&#039;,\&lt;br /&gt;
 AutoShuttersControl_Time_Down_Early =&amp;gt; &#039;AutoShuttersControl_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&#039;, \&lt;br /&gt;
 AutoShuttersControl_Time_Down_Late  =&amp;gt; &#039;AutoShuttersControl_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&#039;,\&lt;br /&gt;
 AutoShuttersControl_Time_Up_Early =&amp;gt; &#039;AutoShuttersControl_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&#039;, \&lt;br /&gt;
 AutoShuttersControl_Time_Up_Late =&amp;gt;&#039;AutoShuttersControl_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&#039;,AutoShuttersControl_Time_Up_WE_Holiday =&amp;gt; &#039;AutoShuttersControl_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&#039;}&lt;br /&gt;
[[Datei:ReadingsGroup ASC Times.png|600px|]]&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* {{Link2Forum|Topic=90751|LinkText=&amp;quot;Thread zur Entwicklung im Forum&amp;quot;}} &lt;br /&gt;
* {{Link2Forum|Topic=73964|LinkText=&amp;quot;Thread zu den Scripten von user cluni&amp;quot;}}, die der Entwicklung des Moduls zugrunde liegen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Codeschnipsel]]&lt;br /&gt;
[[Kategorie:Rollladensteuerung]]&lt;/div&gt;</summary>
		<author><name>Stephan1965</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=AutoShuttersControl&amp;diff=28101</id>
		<title>AutoShuttersControl</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=AutoShuttersControl&amp;diff=28101"/>
		<updated>2018-10-15T14:53:33Z</updated>

		<summary type="html">&lt;p&gt;Stephan1965: /* Vorbereitung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Baustelle}}&lt;br /&gt;
{{Infobox Modul&lt;br /&gt;
|ModPurpose=Steuerung von Rollläden&lt;br /&gt;
|ModCategory=Automatisierung&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCmdRef= ---- noch nicht Teil von FHEM --&amp;gt;&lt;br /&gt;
|ModForumArea=Automatisierung&lt;br /&gt;
|ModTechName=73_AutoShuttersControl.pm&lt;br /&gt;
|ModOwner=CoolTux}}&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Das Modul befindet sich derzeit noch in der Entwicklung; der jeweils aktuelle Stand ist  diesem {{Link2Forum|Topic=90751|LinkText=&amp;quot;Thread im Forum&amp;quot;}} zu entnehmen.}}&lt;br /&gt;
&lt;br /&gt;
== Basics ==&lt;br /&gt;
Zur Nutzung des Moduls sollten folgende andere FHEM-Devices vorhanden sein:&lt;br /&gt;
* Rollläden&lt;br /&gt;
* Fensterkontakte und &lt;br /&gt;
* Bewohnerstatus auf Basis von Residents/Roomates in englisch. Ersatzweise andere Devices, z.B. Dummys, welche als &#039;&#039;state&#039;&#039; &#039;&#039;home&#039;&#039;, &#039;&#039;asleep&#039;&#039;, &#039;&#039;gotosleep&#039;&#039; und &#039;&#039;awoken&#039;&#039; setzen sowie ein Reading &#039;&#039;lastState&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Die Einrichtung des Moduls bzw. dessen Funktionalität erfolgt in mehreren Schritten:&lt;br /&gt;
* Definition des ASC-Devices&lt;br /&gt;
* Einstellung zentraler Vorgaben am ASC-Device&lt;br /&gt;
* Markieren der zukünftig zu steuernden Rollladen-Devices&lt;br /&gt;
* Einbinden der Rollladen-Devices in das ASC-Device&lt;br /&gt;
* Einstellen der individuellen Vorgaben je Rollladen (am Rollladen-Device)&lt;br /&gt;
&lt;br /&gt;
== Einrichtung ==&lt;br /&gt;
&lt;br /&gt;
=== Vorbereitung ===&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Ihr benötigt ein aktuelles FHEM. Update ab dem 04.09.2018 Voraussetzung!}}&lt;br /&gt;
&lt;br /&gt;
Zunächst müssen das Modul (aus dem Link im Forum) entpackt, die Datei 73_AutoShuttersControl.pm in das Unterverzeichnis für die Module kopiert und die Rechte angepaßt werden.&lt;br /&gt;
&lt;br /&gt;
Speicherort für Linux-Standardinstallationen: /opt/fhem/FHEM&lt;br /&gt;
Rechte: &amp;lt;code&amp;gt;sudo chown 73_AutoShuttersControl.pm&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;sudo chmod 644 73_AutoShuttersControl.pm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach sollte ein &amp;lt;code&amp;gt;reload AutoShuttersControl&amp;lt;/code&amp;gt; in FHEM-Eingabefeld ausreichen, um das Modul verfügbar zu machen.&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Eventuell muß FHEM auch einmalig neu gestartet werden, um das Modul nutzen zu können.}}&lt;br /&gt;
&lt;br /&gt;
=== Define des ASC-Devices ===&lt;br /&gt;
Es genügt ein einfaches define ohne weitere Parameter.&lt;br /&gt;
&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; AutoShuttersControl&amp;lt;/code&amp;gt;&lt;br /&gt;
Dies bewirkt neben der Anlage des Devices selbst auch, dass als weiteres globales Attribut &#039;&#039;AutoShuttersControl&#039;&#039; verfügbar wird.&lt;br /&gt;
&lt;br /&gt;
=== Einstellung zentraler Vorgaben ===&lt;br /&gt;
Es stehen am ASC-Device einige Attribute zur Verfügung, über die sich das Verhalten des ASC-Devices insgesamt steuern läßt, 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.&lt;br /&gt;
Diese können auch nachträglich noch geändert werden.&lt;br /&gt;
&lt;br /&gt;
=== Markieren zu steuernder Rollladen-Devices ===&lt;br /&gt;
Um einen oder mehrere Rollläden durch das ASC-Device zu steuern, wird für jeden Rollladen jeweils das neue globale Attribut &#039;&#039;AutoShuttersControl&#039;&#039; gesetzt. Der Wert ist mit 1 oder 2 festzulegen, wobei &#039;&#039;&#039;1&#039;&#039;&#039; bedeutet, dass &lt;br /&gt;
* die Offen-Position kleiner ist als die Geschlossen-Position, also typischerweise 0 &#039;&#039;offen&#039;&#039; bedeutet und 100 für &#039;&#039;geschlossen&#039;&#039; steht&lt;br /&gt;
* eine bestimmte Position mit &#039;&#039;&#039;position&#039;&#039;&#039; angefahren wird, also z.B. &amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; position 70&amp;lt;/code&amp;gt;.&lt;br /&gt;
Dies ist z.B. die  passende Wahl für ROLLO-Devices&lt;br /&gt;
&lt;br /&gt;
Die &#039;&#039;&#039;2&#039;&#039;&#039; steht für ein umgekehrtes Verhalten und den Befehlsteil &#039;&#039;pct&#039;&#039;, also &#039;&#039;offen&#039;&#039; für &amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; pct 100&amp;lt;/code&amp;gt;. Typischer Vertreter dieses Typs sind HomeMatic (CUL_HM-) Geräte.&lt;br /&gt;
&lt;br /&gt;
=== Einbinden in das ASC-Device ===&lt;br /&gt;
Nachdem man das obige Attribut bei einem oder mehreren Rollladen-Devices gesetzt hat, kann mit &lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; scanForShutters&amp;lt;/code&amp;gt; ein Suchlauf gestartet werden, mit dem dann diese Rollläden durch das Modul gefunden und in die Steuerungslogik eingebunden werden.&lt;br /&gt;
&lt;br /&gt;
=== Einstellen der individuellen Vorgaben ===&lt;br /&gt;
Danach sind jeweils an den Rollladen-Devices weitere Attribute verfügbar, mit denen die für den jeweiligen Rollladen geltenden Einstellungen vorgenommen werden können. &lt;br /&gt;
Die Beschreibung der Attribute ist in der commandref enthalten.&lt;br /&gt;
&lt;br /&gt;
== Readings ==&lt;br /&gt;
&lt;br /&gt;
===Readings im AutoShuttersControl Device selbst.===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR/&amp;gt;Wertebereich !! Bedeutung  &lt;br /&gt;
|-&lt;br /&gt;
|..._nextAstroTimeEvent || ||Uhrzeit des nächsten Astro Events, Sonnenauf, Sonnenuntergang oder feste Zeit pro Rollonamen &lt;br /&gt;
|-&lt;br /&gt;
|..._lastPosValue || ||letzter abgesetzter Fahrbefehl pro Rollonamen&lt;br /&gt;
|-&lt;br /&gt;
|..._lastDelayPosValue || ||letzter abgesetzter Fahrbefehl welcher beim nächsten zulässigen Event ausgeführt wird.&lt;br /&gt;
|-&lt;br /&gt;
|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 Schaltbefehle welcher durch ein Fensterevent oder Bewohnerstatus an die Rollläden gesendet wurde, wird beim off setzen durch set ASC-Device partyMode off ausgeführt&lt;br /&gt;
|-&lt;br /&gt;
|lockOut || on, off ||für das aktivieren des Aussperrschutzes gemäß dem entsprechenden Attribut AutoShuttersControl_lock-out im jeweiligen Rolladen. (siehe Beschreibung bei den Attributen für die Rolladendevices)&lt;br /&gt;
|-&lt;br /&gt;
|room_... || ||Auflistung aller Rollläden welche in den jeweiligen Rämen gefunden wurde, Bsp.: room_Schlafzimmer,Terrasse&lt;br /&gt;
|-&lt;br /&gt;
|state || ||Status des Devices active, enabled, disabled&lt;br /&gt;
|-&lt;br /&gt;
|sunriseTimeWeHoliday|| on,off ||wird das Rolladen Device Attribut Attributes AutoShuttersControl_Time_Up_WE_Holiday Beachtet oder nicht&lt;br /&gt;
|-&lt;br /&gt;
|userAttrList || rolled out ||Status der UserAttribute welche an die Rollläden gesendet werden&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Readings in den Rolllädendevices===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Bedeutung  &lt;br /&gt;
|-&lt;br /&gt;
|ASC_Time_Sunrise ||Sonnenaufgangszeit für das Rollo&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Time_Sunset ||Sonnenuntergangszeit für das Rollo&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Settings ==&lt;br /&gt;
&lt;br /&gt;
===Set Befehle für AutoShuttersControl Device===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR/&amp;gt;Wertebereich !! Beschreibung  &lt;br /&gt;
|-&lt;br /&gt;
|partyMode ||on, off ||aktiviert den globalen Partymodus. Siehe Reading partyMode&lt;br /&gt;
|-&lt;br /&gt;
|lockOut ||on, off ||aktiviert den globalen Aussperrschutz. Siehe Reading partyMode&lt;br /&gt;
|-&lt;br /&gt;
|renewSetSunriseSunsetTimer || || erneuert bei allen Rollläden die Zeiten für Sunset und Sunrise und setzt die internen Timer neu.&lt;br /&gt;
|-&lt;br /&gt;
|scanForShutters || ||sucht alle FHEM Devices mit dem Attribut &amp;quot;AutoShuttersControl&amp;quot; 1/2&lt;br /&gt;
|-&lt;br /&gt;
|sunriseTimeWeHoliday || on,off ||aktiviert/deaktiviert die Beachtung des Rolladen Device Attributes AutoShuttersControl_Time_Up_WE_Holiday&lt;br /&gt;
|-&lt;br /&gt;
|createNewNotifyDev || ||Legt die interne Struktur für NOTIFYDEV neu an&lt;br /&gt;
|-&lt;br /&gt;
|selfDefence ||on, off||aktiviert/deaktiviert den Selbstschutz, wenn das Residents Device absent meldet und selfDefence aktiv ist und ein Fenster im Haus steht noch offen, wird an diesem Fenster das Rollo runter gefahren&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Attribute ==&lt;br /&gt;
&lt;br /&gt;
===Attribute im AutoShuttersControl Device selbst.===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR/&amp;gt;Wertebereich !! Default-Wert !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|ASC_antifreezeTemp || || ||Temperatur ab welcher der Frostschutz greifen soll und das Rollo nicht mehr fährt. Der letzte Fahrbefehl wird gespeichert.&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoAstroModeEvening ||aktuell REAL, CIVIL, NAUTIC, ASTRONOMIC || || (in genau dieser Schreibweise)&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoAstroModeEveningHorizon || || || Höhe über Horizont wenn beim Attribut AutoShuttersControl_autoAstroModeEvening HORIZON ausgewählt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoAstroModeMorning ||aktuell REAL, CIVIL, NAUTIC, ASTRONOMIC || ||(in genau dieser Schreibweise)&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoAstroModeMorningHorizon || || ||Höhe über Horizont wenn beim Attribut AutoShuttersControl_autoAstroModeMorning HORIZON ausgewählt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoShuttersControlComfort ||on, off || ||schaltet die Komfortfunktion an. Bedeutet das ein Rollladen mit einem threestate Sensor am Fenster beim öffnen in eine weit offen Position fährt. Die Offenposition wird beim Rollladen über das Attribut AutoShuttersControl_Pos_after_ComfortOpen eingestellt.&lt;br /&gt;
|- &lt;br /&gt;
|ASC_autoShuttersControlEvening ||on, off || ||ob Abends die Rollläden automatisch nach Zeit gesteuert werden sollen&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoShuttersControlMorning ||on, off || ||ob Morgens die Rollläden automatisch nach Zeit gesteuert werden sollen&lt;br /&gt;
|-&lt;br /&gt;
|ASC_temperatureReading || || ||Reading für die Aussentemperatur&lt;br /&gt;
|-&lt;br /&gt;
|ASC_temperatureSensor || || ||Device für die Aussentemperatur&lt;br /&gt;
|-&lt;br /&gt;
|ASC_timeUpHolidayDevice || || ||Device zur Urlaubserkennung oder Sonstiges / muss 0 oder 1 im Reading state beinhalten.&lt;br /&gt;
|-&lt;br /&gt;
|ASC_residentsDevice|| || ||Devicenamen vom Residents Device der obersten Ebene&lt;br /&gt;
|-&lt;br /&gt;
|ASC_residentsDeviceReading|| || ||Status Reading vom Residents Device der obersten Ebene&lt;br /&gt;
|-&lt;br /&gt;
| || || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Attribute in den Rolllädendevices===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR/&amp;gt;Wertebereich !! Default-Wert !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|AutoShuttersControl || 0, 1, 2 || ||1 = &amp;quot;Inverse oder Rollo Bsp.: Rollo Oben 0, Rollo Unten 100 und der Befehl zum Prozentualen fahren ist position&amp;quot;,&amp;lt;BR/&amp;gt; 2 = &amp;quot;Homematic Style Bsp.: Rollo Oben 100, Rollo Unten 0 und der Befehl zum Prozentualen fahren ist pct&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Antifreeze ||on, off || ||Frostschutz an oder aus&lt;br /&gt;
|-&lt;br /&gt;
|ASC_AutoAstroModeEvening ||aktuell REAL, CIVIL, NAUTIC, ASTRONOMIC || ||&lt;br /&gt;
|-&lt;br /&gt;
|ASC_AutoAstroModeEveningHorizon || || ||Höhe über Horizont wenn beim Attribut ASC_autoAstroModeEvening HORIZON ausgewählt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_AutoAstroModeMorning ||aktuell REAL, CIVIL, NAUTIC, ASTRONOMIC || ||&lt;br /&gt;
|-&lt;br /&gt;
|ASC_AutoAstroModeMorningHorizon || || ||Höhe über Horizont wenn beim Attribut ASC_autoAstroModeMorning HORIZON ausgewählt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Closed_Pos || || ||in 10 Schritten von 0 bis 100, default Vorgabe ist abhängig vom Attribut AutoShuttersControl&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Down ||astro, time || ||bei Astro wird Sonnenuntergang berechnet, bei time wird der Wert aus ASC_Time_Down_Early als Fahrzeit verwendet&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Mode_Down ||always, absent, off || ||wann darf die Automatik steuern. immer, niemals, bei abwesenheit des Roomate (ist kein Roommate und absent eingestellt wird gar nicht gesteuert)&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Mode_Up ||always, absent, off || ||wann darf die Automatik steuern. immer, niemals, bei abwesenheit des Roomate (ist kein Roommate und absent eingestellt wird gar nicht gesteuert)&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Offset_Minutes_Evening  || || ||maximale zufällige Verzögerung in Minuten (minimal 1) bei der Berechnung der Fahrzeiten für Abends&lt;br /&gt;
|-  &lt;br /&gt;
|ASC_Offset_Minutes_Morning || || ||maximale zufällige Verzögerung in Minuten (minimal 1) bei der Berechnung der Fahrzeiten für Morgens&lt;br /&gt;
|-  &lt;br /&gt;
|ASC_Open_Pos || || ||in 10 Schritten von 0 bis 100, default Vorgabe ist abhängig vom Attribut AutoShuttersControl&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Partymode ||on, off || ||schaltet den Partymodus an oder aus, Wird dann am ASC Device set ASC-DEVICE partyMode on geschalten, werden alle Fahrbefehle an den Rollläden welche das Attribut auf on haben zwischen gespeichert und später erst ausgeführt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Pos_Cmd || ||  ||der set Befehl um den Rollladen in Prozent Angaben zu fahren, muss der selbe sein wie das Reading welches die Position des Rollladen in Prozent an gibt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Pos_after_ComfortOpen || || ||in 10 Schritten von 0 bis 100, default Vorgabe ist abhängig vom Attribut AutoShuttersControl&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Roommate_Reading || || ||das Reading zum Roommate Device welches den Status wieder gibt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Roommate_Device || || ||Name des Roommate Devices welcher den Bewohner des Raumes vom Rollladen wieder gibt&lt;br /&gt;
|-                                &lt;br /&gt;
|ASC_Time_Down_Early || || ||Sunset frühste Zeit zum runter fahren&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Time_Down_Late || || ||Sunset späteste Zeit zum runter fahren &lt;br /&gt;
|-&lt;br /&gt;
|ASC_Time_Up_Early || || ||Sunrise frühste Zeit zum hoch fahren&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Time_Up_Late || || ||Sunrise späteste Zeit zum hoch fahren&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Time_Up_WE_Holiday  || || ||Sunrise frühste Zeit zum hochfahren am Wochenende und/oder Urlaub (we2holiday wird beachtet), Achtung sollte nicht größer sein wie ASC_Time_Up_Late sonst wird ASC_Time_Up_Late verwendet&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Up ||astro, time || ||bei Astro wird Sonnenaufgang berechnet, bei time wird der Wert aus ASC_Time_Up_Early als Fahrzeit verwendet&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Ventilate_Pos || || ||in 10 Schritten von 0 bis 100, default Vorgabe ist abhängig vom Attribut AutoShuttersControl&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Ventilate_Window_Open || || ||auf lüften, wenn das Fenster gekippt/geöffnet wird und aktuelle Position unterhalb der Lüften-Position ist&lt;br /&gt;
|-&lt;br /&gt;
|ASC_WindowRec || || ||Name des Fensterkontaktes an welchen Fenster der Rolladen angebracht ist&lt;br /&gt;
|-&lt;br /&gt;
|ASC_WindowRec_subType || || ||Typ des verwendeten Fensterkontakts: twostate (optisch oder magnetisch) oder threestate (Drehgriffkontakt)&lt;br /&gt;
|- &lt;br /&gt;
|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 Rolladen Hardwareseitig zu blockieren. Dann ist auch ein fahren über die Taster nicht mehr möglich.&lt;br /&gt;
|- &lt;br /&gt;
|ASC_lock-outCmd ||inhibit, blocked  || ||set Befehl für das Rolladen-Device zum Hardware sperren. Zum gesetzt werden wenn man &amp;quot;ASC_lock-out&amp;quot; auf hard setzt&lt;br /&gt;
|-&lt;br /&gt;
| || || ||&lt;br /&gt;
|-  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Hilfsmittel ==&lt;br /&gt;
tbd&lt;br /&gt;
&lt;br /&gt;
readingsGroup, um die diversen Level einzustellen: &lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Die Readingsgroup muss noch angepasst werden.}}&lt;br /&gt;
&lt;br /&gt;
 define rg_ASC_Rollaeden_Level readingsGroup &amp;lt;Gerät&amp;gt;,&amp;lt;Closed_Pos&amp;gt;,&amp;lt;Open_Pos&amp;gt;,&amp;lt;Shading_Pos&amp;gt;,&amp;lt;Ventilate_Pos&amp;gt; (Rolladen_.*|Jalousie_.*)..:?AutoShuttersControl_Closed_Pos,?AutoShuttersControl_Open_Pos,?AutoShuttersControl_Shading_Pos,?AutoShuttesControl_Ventilate_Pos&lt;br /&gt;
 attr rg_ASC_Rollaeden_Level commands { AutoShuttersControl_Closed_Pos =&amp;gt; &#039;AutoShuttersControl_Closed_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100&#039;,\&lt;br /&gt;
 AutoShuttersControl_Open_Pos =&amp;gt; &#039;AutoShuttersControl_Open_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100&#039;,\&lt;br /&gt;
 AutoShuttersControl_Shading_Pos =&amp;gt; &#039;AutoShuttersControl_Shading_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100&#039;,\&lt;br /&gt;
 AutoShuttersControl_Ventilate_Pos =&amp;gt; &#039;AutoShuttersControl_Ventilate_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100&#039;}&lt;br /&gt;
[[Datei:ReadingsGroup ASC Level.png|600px|]]&lt;br /&gt;
readingsGroup, um die diversen Zeiten einzustellen:&lt;br /&gt;
&lt;br /&gt;
 define rg_ASC_Rollaeden_Times readingsGroup &amp;lt;Gerät&amp;gt;,&amp;lt;Stand&amp;gt;,&amp;lt;Time_Up_Early&amp;gt;,&amp;lt;Time_Up_WE&amp;gt;,&amp;lt;Time_Up_Late&amp;gt;,&amp;lt;Time_Down_Early&amp;gt;,Time_Down_Late&amp;gt;,&amp;lt;Mode_Down&amp;gt;,&amp;lt;Mode_Up&amp;gt; (Rolladen_.*|Jalousie_.*)..:level,?AutoShuttersControl_Time_Up_Early,?AutoShuttersControl_Time_Up_WE_Holiday,?AutoShuttersControl_Time_Up_Late,?AutoShuttersControl_Time_Down_Early,?AutoShuttersControl_Time_Down_Late,?AutoShuttersControl_Mode_Down,?AutoShuttersControl_Mode_Up&lt;br /&gt;
 attr rg_ASC_Rollaeden_Times commands {level =&amp;gt; &#039;pct:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100&#039;, \&lt;br /&gt;
 AutoShuttersControl_Mode_Down =&amp;gt; &#039;AutoShuttersControl_Mode_Down:always,absent,off&#039;,\&lt;br /&gt;
 AutoShuttersControl_Mode_Up =&amp;gt; &#039;AutoShuttersControl_Mode_Up:always,absent,off&#039;,\&lt;br /&gt;
 AutoShuttersControl_Time_Down_Early =&amp;gt; &#039;AutoShuttersControl_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&#039;, \&lt;br /&gt;
 AutoShuttersControl_Time_Down_Late  =&amp;gt; &#039;AutoShuttersControl_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&#039;,\&lt;br /&gt;
 AutoShuttersControl_Time_Up_Early =&amp;gt; &#039;AutoShuttersControl_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&#039;, \&lt;br /&gt;
 AutoShuttersControl_Time_Up_Late =&amp;gt;&#039;AutoShuttersControl_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&#039;,AutoShuttersControl_Time_Up_WE_Holiday =&amp;gt; &#039;AutoShuttersControl_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&#039;}&lt;br /&gt;
[[Datei:ReadingsGroup ASC Times.png|600px|]]&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* {{Link2Forum|Topic=90751|LinkText=&amp;quot;Thread zur Entwicklung im Forum&amp;quot;}} &lt;br /&gt;
* {{Link2Forum|Topic=73964|LinkText=&amp;quot;Thread zu den Scripten von user cluni&amp;quot;}}, die der Entwicklung des Moduls zugrunde liegen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Codeschnipsel]]&lt;br /&gt;
[[Kategorie:Rollladensteuerung]]&lt;/div&gt;</summary>
		<author><name>Stephan1965</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=AutoShuttersControl&amp;diff=28100</id>
		<title>AutoShuttersControl</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=AutoShuttersControl&amp;diff=28100"/>
		<updated>2018-10-15T14:52:38Z</updated>

		<summary type="html">&lt;p&gt;Stephan1965: /* Vorbereitung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Baustelle}}&lt;br /&gt;
{{Infobox Modul&lt;br /&gt;
|ModPurpose=Steuerung von Rollläden&lt;br /&gt;
|ModCategory=Automatisierung&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCmdRef= ---- noch nicht Teil von FHEM --&amp;gt;&lt;br /&gt;
|ModForumArea=Automatisierung&lt;br /&gt;
|ModTechName=73_AutoShuttersControl.pm&lt;br /&gt;
|ModOwner=CoolTux}}&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Das Modul befindet sich derzeit noch in der Entwicklung; der jeweils aktuelle Stand ist  diesem {{Link2Forum|Topic=90751|LinkText=&amp;quot;Thread im Forum&amp;quot;}} zu entnehmen.}}&lt;br /&gt;
&lt;br /&gt;
== Basics ==&lt;br /&gt;
Zur Nutzung des Moduls sollten folgende andere FHEM-Devices vorhanden sein:&lt;br /&gt;
* Rollläden&lt;br /&gt;
* Fensterkontakte und &lt;br /&gt;
* Bewohnerstatus auf Basis von Residents/Roomates in englisch. Ersatzweise andere Devices, z.B. Dummys, welche als &#039;&#039;state&#039;&#039; &#039;&#039;home&#039;&#039;, &#039;&#039;asleep&#039;&#039;, &#039;&#039;gotosleep&#039;&#039; und &#039;&#039;awoken&#039;&#039; setzen sowie ein Reading &#039;&#039;lastState&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Die Einrichtung des Moduls bzw. dessen Funktionalität erfolgt in mehreren Schritten:&lt;br /&gt;
* Definition des ASC-Devices&lt;br /&gt;
* Einstellung zentraler Vorgaben am ASC-Device&lt;br /&gt;
* Markieren der zukünftig zu steuernden Rollladen-Devices&lt;br /&gt;
* Einbinden der Rollladen-Devices in das ASC-Device&lt;br /&gt;
* Einstellen der individuellen Vorgaben je Rollladen (am Rollladen-Device)&lt;br /&gt;
&lt;br /&gt;
== Einrichtung ==&lt;br /&gt;
&lt;br /&gt;
=== Vorbereitung ===&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Ihr benötigt ein aktuelles FHEM. Update ab dem 04.09.2018 Voraussetzung!}}&lt;br /&gt;
&lt;br /&gt;
Zunächst muß das Modul (aus dem Link im Forum) entpackt, die Datei 73_AutoShuttersControl.pm in das Unterverzeichnis für die Module kopiert  und die Rechte angepaßt werden.&lt;br /&gt;
&lt;br /&gt;
Speicherort für Linux-Standardinstallationen: /opt/fhem/FHEM&lt;br /&gt;
Rechte: &amp;lt;code&amp;gt;sudo chown 73_AutoShuttersControl.pm&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;sudo chmod 644 73_AutoShuttersControl.pm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach sollte ein &amp;lt;code&amp;gt;reload AutoShuttersControl&amp;lt;/code&amp;gt; in FHEM-Eingabefeld ausreichen, um das Modul verfügbar zu machen.&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Eventuell muß FHEM auch einmalig neu gestartet werden, um das Modul nutzen zu können.}}&lt;br /&gt;
&lt;br /&gt;
=== Define des ASC-Devices ===&lt;br /&gt;
Es genügt ein einfaches define ohne weitere Parameter.&lt;br /&gt;
&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; AutoShuttersControl&amp;lt;/code&amp;gt;&lt;br /&gt;
Dies bewirkt neben der Anlage des Devices selbst auch, dass als weiteres globales Attribut &#039;&#039;AutoShuttersControl&#039;&#039; verfügbar wird.&lt;br /&gt;
&lt;br /&gt;
=== Einstellung zentraler Vorgaben ===&lt;br /&gt;
Es stehen am ASC-Device einige Attribute zur Verfügung, über die sich das Verhalten des ASC-Devices insgesamt steuern läßt, 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.&lt;br /&gt;
Diese können auch nachträglich noch geändert werden.&lt;br /&gt;
&lt;br /&gt;
=== Markieren zu steuernder Rollladen-Devices ===&lt;br /&gt;
Um einen oder mehrere Rollläden durch das ASC-Device zu steuern, wird für jeden Rollladen jeweils das neue globale Attribut &#039;&#039;AutoShuttersControl&#039;&#039; gesetzt. Der Wert ist mit 1 oder 2 festzulegen, wobei &#039;&#039;&#039;1&#039;&#039;&#039; bedeutet, dass &lt;br /&gt;
* die Offen-Position kleiner ist als die Geschlossen-Position, also typischerweise 0 &#039;&#039;offen&#039;&#039; bedeutet und 100 für &#039;&#039;geschlossen&#039;&#039; steht&lt;br /&gt;
* eine bestimmte Position mit &#039;&#039;&#039;position&#039;&#039;&#039; angefahren wird, also z.B. &amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; position 70&amp;lt;/code&amp;gt;.&lt;br /&gt;
Dies ist z.B. die  passende Wahl für ROLLO-Devices&lt;br /&gt;
&lt;br /&gt;
Die &#039;&#039;&#039;2&#039;&#039;&#039; steht für ein umgekehrtes Verhalten und den Befehlsteil &#039;&#039;pct&#039;&#039;, also &#039;&#039;offen&#039;&#039; für &amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; pct 100&amp;lt;/code&amp;gt;. Typischer Vertreter dieses Typs sind HomeMatic (CUL_HM-) Geräte.&lt;br /&gt;
&lt;br /&gt;
=== Einbinden in das ASC-Device ===&lt;br /&gt;
Nachdem man das obige Attribut bei einem oder mehreren Rollladen-Devices gesetzt hat, kann mit &lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; scanForShutters&amp;lt;/code&amp;gt; ein Suchlauf gestartet werden, mit dem dann diese Rollläden durch das Modul gefunden und in die Steuerungslogik eingebunden werden.&lt;br /&gt;
&lt;br /&gt;
=== Einstellen der individuellen Vorgaben ===&lt;br /&gt;
Danach sind jeweils an den Rollladen-Devices weitere Attribute verfügbar, mit denen die für den jeweiligen Rollladen geltenden Einstellungen vorgenommen werden können. &lt;br /&gt;
Die Beschreibung der Attribute ist in der commandref enthalten.&lt;br /&gt;
&lt;br /&gt;
== Readings ==&lt;br /&gt;
&lt;br /&gt;
===Readings im AutoShuttersControl Device selbst.===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR/&amp;gt;Wertebereich !! Bedeutung  &lt;br /&gt;
|-&lt;br /&gt;
|..._nextAstroTimeEvent || ||Uhrzeit des nächsten Astro Events, Sonnenauf, Sonnenuntergang oder feste Zeit pro Rollonamen &lt;br /&gt;
|-&lt;br /&gt;
|..._lastPosValue || ||letzter abgesetzter Fahrbefehl pro Rollonamen&lt;br /&gt;
|-&lt;br /&gt;
|..._lastDelayPosValue || ||letzter abgesetzter Fahrbefehl welcher beim nächsten zulässigen Event ausgeführt wird.&lt;br /&gt;
|-&lt;br /&gt;
|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 Schaltbefehle welcher durch ein Fensterevent oder Bewohnerstatus an die Rollläden gesendet wurde, wird beim off setzen durch set ASC-Device partyMode off ausgeführt&lt;br /&gt;
|-&lt;br /&gt;
|lockOut || on, off ||für das aktivieren des Aussperrschutzes gemäß dem entsprechenden Attribut AutoShuttersControl_lock-out im jeweiligen Rolladen. (siehe Beschreibung bei den Attributen für die Rolladendevices)&lt;br /&gt;
|-&lt;br /&gt;
|room_... || ||Auflistung aller Rollläden welche in den jeweiligen Rämen gefunden wurde, Bsp.: room_Schlafzimmer,Terrasse&lt;br /&gt;
|-&lt;br /&gt;
|state || ||Status des Devices active, enabled, disabled&lt;br /&gt;
|-&lt;br /&gt;
|sunriseTimeWeHoliday|| on,off ||wird das Rolladen Device Attribut Attributes AutoShuttersControl_Time_Up_WE_Holiday Beachtet oder nicht&lt;br /&gt;
|-&lt;br /&gt;
|userAttrList || rolled out ||Status der UserAttribute welche an die Rollläden gesendet werden&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Readings in den Rolllädendevices===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Bedeutung  &lt;br /&gt;
|-&lt;br /&gt;
|ASC_Time_Sunrise ||Sonnenaufgangszeit für das Rollo&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Time_Sunset ||Sonnenuntergangszeit für das Rollo&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Settings ==&lt;br /&gt;
&lt;br /&gt;
===Set Befehle für AutoShuttersControl Device===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR/&amp;gt;Wertebereich !! Beschreibung  &lt;br /&gt;
|-&lt;br /&gt;
|partyMode ||on, off ||aktiviert den globalen Partymodus. Siehe Reading partyMode&lt;br /&gt;
|-&lt;br /&gt;
|lockOut ||on, off ||aktiviert den globalen Aussperrschutz. Siehe Reading partyMode&lt;br /&gt;
|-&lt;br /&gt;
|renewSetSunriseSunsetTimer || || erneuert bei allen Rollläden die Zeiten für Sunset und Sunrise und setzt die internen Timer neu.&lt;br /&gt;
|-&lt;br /&gt;
|scanForShutters || ||sucht alle FHEM Devices mit dem Attribut &amp;quot;AutoShuttersControl&amp;quot; 1/2&lt;br /&gt;
|-&lt;br /&gt;
|sunriseTimeWeHoliday || on,off ||aktiviert/deaktiviert die Beachtung des Rolladen Device Attributes AutoShuttersControl_Time_Up_WE_Holiday&lt;br /&gt;
|-&lt;br /&gt;
|createNewNotifyDev || ||Legt die interne Struktur für NOTIFYDEV neu an&lt;br /&gt;
|-&lt;br /&gt;
|selfDefence ||on, off||aktiviert/deaktiviert den Selbstschutz, wenn das Residents Device absent meldet und selfDefence aktiv ist und ein Fenster im Haus steht noch offen, wird an diesem Fenster das Rollo runter gefahren&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Attribute ==&lt;br /&gt;
&lt;br /&gt;
===Attribute im AutoShuttersControl Device selbst.===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR/&amp;gt;Wertebereich !! Default-Wert !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|ASC_antifreezeTemp || || ||Temperatur ab welcher der Frostschutz greifen soll und das Rollo nicht mehr fährt. Der letzte Fahrbefehl wird gespeichert.&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoAstroModeEvening ||aktuell REAL, CIVIL, NAUTIC, ASTRONOMIC || || (in genau dieser Schreibweise)&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoAstroModeEveningHorizon || || || Höhe über Horizont wenn beim Attribut AutoShuttersControl_autoAstroModeEvening HORIZON ausgewählt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoAstroModeMorning ||aktuell REAL, CIVIL, NAUTIC, ASTRONOMIC || ||(in genau dieser Schreibweise)&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoAstroModeMorningHorizon || || ||Höhe über Horizont wenn beim Attribut AutoShuttersControl_autoAstroModeMorning HORIZON ausgewählt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoShuttersControlComfort ||on, off || ||schaltet die Komfortfunktion an. Bedeutet das ein Rollladen mit einem threestate Sensor am Fenster beim öffnen in eine weit offen Position fährt. Die Offenposition wird beim Rollladen über das Attribut AutoShuttersControl_Pos_after_ComfortOpen eingestellt.&lt;br /&gt;
|- &lt;br /&gt;
|ASC_autoShuttersControlEvening ||on, off || ||ob Abends die Rollläden automatisch nach Zeit gesteuert werden sollen&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoShuttersControlMorning ||on, off || ||ob Morgens die Rollläden automatisch nach Zeit gesteuert werden sollen&lt;br /&gt;
|-&lt;br /&gt;
|ASC_temperatureReading || || ||Reading für die Aussentemperatur&lt;br /&gt;
|-&lt;br /&gt;
|ASC_temperatureSensor || || ||Device für die Aussentemperatur&lt;br /&gt;
|-&lt;br /&gt;
|ASC_timeUpHolidayDevice || || ||Device zur Urlaubserkennung oder Sonstiges / muss 0 oder 1 im Reading state beinhalten.&lt;br /&gt;
|-&lt;br /&gt;
|ASC_residentsDevice|| || ||Devicenamen vom Residents Device der obersten Ebene&lt;br /&gt;
|-&lt;br /&gt;
|ASC_residentsDeviceReading|| || ||Status Reading vom Residents Device der obersten Ebene&lt;br /&gt;
|-&lt;br /&gt;
| || || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Attribute in den Rolllädendevices===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR/&amp;gt;Wertebereich !! Default-Wert !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|AutoShuttersControl || 0, 1, 2 || ||1 = &amp;quot;Inverse oder Rollo Bsp.: Rollo Oben 0, Rollo Unten 100 und der Befehl zum Prozentualen fahren ist position&amp;quot;,&amp;lt;BR/&amp;gt; 2 = &amp;quot;Homematic Style Bsp.: Rollo Oben 100, Rollo Unten 0 und der Befehl zum Prozentualen fahren ist pct&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Antifreeze ||on, off || ||Frostschutz an oder aus&lt;br /&gt;
|-&lt;br /&gt;
|ASC_AutoAstroModeEvening ||aktuell REAL, CIVIL, NAUTIC, ASTRONOMIC || ||&lt;br /&gt;
|-&lt;br /&gt;
|ASC_AutoAstroModeEveningHorizon || || ||Höhe über Horizont wenn beim Attribut ASC_autoAstroModeEvening HORIZON ausgewählt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_AutoAstroModeMorning ||aktuell REAL, CIVIL, NAUTIC, ASTRONOMIC || ||&lt;br /&gt;
|-&lt;br /&gt;
|ASC_AutoAstroModeMorningHorizon || || ||Höhe über Horizont wenn beim Attribut ASC_autoAstroModeMorning HORIZON ausgewählt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Closed_Pos || || ||in 10 Schritten von 0 bis 100, default Vorgabe ist abhängig vom Attribut AutoShuttersControl&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Down ||astro, time || ||bei Astro wird Sonnenuntergang berechnet, bei time wird der Wert aus ASC_Time_Down_Early als Fahrzeit verwendet&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Mode_Down ||always, absent, off || ||wann darf die Automatik steuern. immer, niemals, bei abwesenheit des Roomate (ist kein Roommate und absent eingestellt wird gar nicht gesteuert)&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Mode_Up ||always, absent, off || ||wann darf die Automatik steuern. immer, niemals, bei abwesenheit des Roomate (ist kein Roommate und absent eingestellt wird gar nicht gesteuert)&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Offset_Minutes_Evening  || || ||maximale zufällige Verzögerung in Minuten (minimal 1) bei der Berechnung der Fahrzeiten für Abends&lt;br /&gt;
|-  &lt;br /&gt;
|ASC_Offset_Minutes_Morning || || ||maximale zufällige Verzögerung in Minuten (minimal 1) bei der Berechnung der Fahrzeiten für Morgens&lt;br /&gt;
|-  &lt;br /&gt;
|ASC_Open_Pos || || ||in 10 Schritten von 0 bis 100, default Vorgabe ist abhängig vom Attribut AutoShuttersControl&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Partymode ||on, off || ||schaltet den Partymodus an oder aus, Wird dann am ASC Device set ASC-DEVICE partyMode on geschalten, werden alle Fahrbefehle an den Rollläden welche das Attribut auf on haben zwischen gespeichert und später erst ausgeführt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Pos_Cmd || ||  ||der set Befehl um den Rollladen in Prozent Angaben zu fahren, muss der selbe sein wie das Reading welches die Position des Rollladen in Prozent an gibt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Pos_after_ComfortOpen || || ||in 10 Schritten von 0 bis 100, default Vorgabe ist abhängig vom Attribut AutoShuttersControl&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Roommate_Reading || || ||das Reading zum Roommate Device welches den Status wieder gibt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Roommate_Device || || ||Name des Roommate Devices welcher den Bewohner des Raumes vom Rollladen wieder gibt&lt;br /&gt;
|-                                &lt;br /&gt;
|ASC_Time_Down_Early || || ||Sunset frühste Zeit zum runter fahren&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Time_Down_Late || || ||Sunset späteste Zeit zum runter fahren &lt;br /&gt;
|-&lt;br /&gt;
|ASC_Time_Up_Early || || ||Sunrise frühste Zeit zum hoch fahren&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Time_Up_Late || || ||Sunrise späteste Zeit zum hoch fahren&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Time_Up_WE_Holiday  || || ||Sunrise frühste Zeit zum hochfahren am Wochenende und/oder Urlaub (we2holiday wird beachtet), Achtung sollte nicht größer sein wie ASC_Time_Up_Late sonst wird ASC_Time_Up_Late verwendet&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Up ||astro, time || ||bei Astro wird Sonnenaufgang berechnet, bei time wird der Wert aus ASC_Time_Up_Early als Fahrzeit verwendet&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Ventilate_Pos || || ||in 10 Schritten von 0 bis 100, default Vorgabe ist abhängig vom Attribut AutoShuttersControl&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Ventilate_Window_Open || || ||auf lüften, wenn das Fenster gekippt/geöffnet wird und aktuelle Position unterhalb der Lüften-Position ist&lt;br /&gt;
|-&lt;br /&gt;
|ASC_WindowRec || || ||Name des Fensterkontaktes an welchen Fenster der Rolladen angebracht ist&lt;br /&gt;
|-&lt;br /&gt;
|ASC_WindowRec_subType || || ||Typ des verwendeten Fensterkontakts: twostate (optisch oder magnetisch) oder threestate (Drehgriffkontakt)&lt;br /&gt;
|- &lt;br /&gt;
|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 Rolladen Hardwareseitig zu blockieren. Dann ist auch ein fahren über die Taster nicht mehr möglich.&lt;br /&gt;
|- &lt;br /&gt;
|ASC_lock-outCmd ||inhibit, blocked  || ||set Befehl für das Rolladen-Device zum Hardware sperren. Zum gesetzt werden wenn man &amp;quot;ASC_lock-out&amp;quot; auf hard setzt&lt;br /&gt;
|-&lt;br /&gt;
| || || ||&lt;br /&gt;
|-  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Hilfsmittel ==&lt;br /&gt;
tbd&lt;br /&gt;
&lt;br /&gt;
readingsGroup, um die diversen Level einzustellen: &lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Die Readingsgroup muss noch angepasst werden.}}&lt;br /&gt;
&lt;br /&gt;
 define rg_ASC_Rollaeden_Level readingsGroup &amp;lt;Gerät&amp;gt;,&amp;lt;Closed_Pos&amp;gt;,&amp;lt;Open_Pos&amp;gt;,&amp;lt;Shading_Pos&amp;gt;,&amp;lt;Ventilate_Pos&amp;gt; (Rolladen_.*|Jalousie_.*)..:?AutoShuttersControl_Closed_Pos,?AutoShuttersControl_Open_Pos,?AutoShuttersControl_Shading_Pos,?AutoShuttesControl_Ventilate_Pos&lt;br /&gt;
 attr rg_ASC_Rollaeden_Level commands { AutoShuttersControl_Closed_Pos =&amp;gt; &#039;AutoShuttersControl_Closed_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100&#039;,\&lt;br /&gt;
 AutoShuttersControl_Open_Pos =&amp;gt; &#039;AutoShuttersControl_Open_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100&#039;,\&lt;br /&gt;
 AutoShuttersControl_Shading_Pos =&amp;gt; &#039;AutoShuttersControl_Shading_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100&#039;,\&lt;br /&gt;
 AutoShuttersControl_Ventilate_Pos =&amp;gt; &#039;AutoShuttersControl_Ventilate_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100&#039;}&lt;br /&gt;
[[Datei:ReadingsGroup ASC Level.png|600px|]]&lt;br /&gt;
readingsGroup, um die diversen Zeiten einzustellen:&lt;br /&gt;
&lt;br /&gt;
 define rg_ASC_Rollaeden_Times readingsGroup &amp;lt;Gerät&amp;gt;,&amp;lt;Stand&amp;gt;,&amp;lt;Time_Up_Early&amp;gt;,&amp;lt;Time_Up_WE&amp;gt;,&amp;lt;Time_Up_Late&amp;gt;,&amp;lt;Time_Down_Early&amp;gt;,Time_Down_Late&amp;gt;,&amp;lt;Mode_Down&amp;gt;,&amp;lt;Mode_Up&amp;gt; (Rolladen_.*|Jalousie_.*)..:level,?AutoShuttersControl_Time_Up_Early,?AutoShuttersControl_Time_Up_WE_Holiday,?AutoShuttersControl_Time_Up_Late,?AutoShuttersControl_Time_Down_Early,?AutoShuttersControl_Time_Down_Late,?AutoShuttersControl_Mode_Down,?AutoShuttersControl_Mode_Up&lt;br /&gt;
 attr rg_ASC_Rollaeden_Times commands {level =&amp;gt; &#039;pct:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100&#039;, \&lt;br /&gt;
 AutoShuttersControl_Mode_Down =&amp;gt; &#039;AutoShuttersControl_Mode_Down:always,absent,off&#039;,\&lt;br /&gt;
 AutoShuttersControl_Mode_Up =&amp;gt; &#039;AutoShuttersControl_Mode_Up:always,absent,off&#039;,\&lt;br /&gt;
 AutoShuttersControl_Time_Down_Early =&amp;gt; &#039;AutoShuttersControl_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&#039;, \&lt;br /&gt;
 AutoShuttersControl_Time_Down_Late  =&amp;gt; &#039;AutoShuttersControl_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&#039;,\&lt;br /&gt;
 AutoShuttersControl_Time_Up_Early =&amp;gt; &#039;AutoShuttersControl_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&#039;, \&lt;br /&gt;
 AutoShuttersControl_Time_Up_Late =&amp;gt;&#039;AutoShuttersControl_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&#039;,AutoShuttersControl_Time_Up_WE_Holiday =&amp;gt; &#039;AutoShuttersControl_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&#039;}&lt;br /&gt;
[[Datei:ReadingsGroup ASC Times.png|600px|]]&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* {{Link2Forum|Topic=90751|LinkText=&amp;quot;Thread zur Entwicklung im Forum&amp;quot;}} &lt;br /&gt;
* {{Link2Forum|Topic=73964|LinkText=&amp;quot;Thread zu den Scripten von user cluni&amp;quot;}}, die der Entwicklung des Moduls zugrunde liegen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Codeschnipsel]]&lt;br /&gt;
[[Kategorie:Rollladensteuerung]]&lt;/div&gt;</summary>
		<author><name>Stephan1965</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=AutoShuttersControl&amp;diff=28099</id>
		<title>AutoShuttersControl</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=AutoShuttersControl&amp;diff=28099"/>
		<updated>2018-10-15T14:48:47Z</updated>

		<summary type="html">&lt;p&gt;Stephan1965: /* Hilfsmittel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Baustelle}}&lt;br /&gt;
{{Infobox Modul&lt;br /&gt;
|ModPurpose=Steuerung von Rollläden&lt;br /&gt;
|ModCategory=Automatisierung&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCmdRef= ---- noch nicht Teil von FHEM --&amp;gt;&lt;br /&gt;
|ModForumArea=Automatisierung&lt;br /&gt;
|ModTechName=73_AutoShuttersControl.pm&lt;br /&gt;
|ModOwner=CoolTux}}&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Das Modul befindet sich derzeit noch in der Entwicklung; der jeweils aktuelle Stand ist  diesem {{Link2Forum|Topic=90751|LinkText=&amp;quot;Thread im Forum&amp;quot;}} zu entnehmen.}}&lt;br /&gt;
&lt;br /&gt;
== Basics ==&lt;br /&gt;
Zur Nutzung des Moduls sollten folgende andere FHEM-Devices vorhanden sein:&lt;br /&gt;
* Rollläden&lt;br /&gt;
* Fensterkontakte und &lt;br /&gt;
* Bewohnerstatus auf Basis von Residents/Roomates in englisch. Ersatzweise andere Devices, z.B. Dummys, welche als &#039;&#039;state&#039;&#039; &#039;&#039;home&#039;&#039;, &#039;&#039;asleep&#039;&#039;, &#039;&#039;gotosleep&#039;&#039; und &#039;&#039;awoken&#039;&#039; setzen sowie ein Reading &#039;&#039;lastState&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Die Einrichtung des Moduls bzw. dessen Funktionalität erfolgt in mehreren Schritten:&lt;br /&gt;
* Definition des ASC-Devices&lt;br /&gt;
* Einstellung zentraler Vorgaben am ASC-Device&lt;br /&gt;
* Markieren der zukünftig zu steuernden Rollladen-Devices&lt;br /&gt;
* Einbinden der Rollladen-Devices in das ASC-Device&lt;br /&gt;
* Einstellen der individuellen Vorgaben je Rollladen (am Rollladen-Device)&lt;br /&gt;
&lt;br /&gt;
== Einrichtung ==&lt;br /&gt;
&lt;br /&gt;
=== Vorbereitung ===&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Ihr benötigt ein aktuelles FHEM. Update ab dem 04.09.2018 Voraussetzung!}}&lt;br /&gt;
&lt;br /&gt;
Zunächst muß das Modul aus dem Link im Forum entpackt werden und die Datei 73_AutoShuttersControl.pm in das Unterverzeichnis für die Module kopiert werden und die Rechte angepaßt.&lt;br /&gt;
&lt;br /&gt;
Speicherort für Linux-Standardinstallationen: /opt/fhem/FHEM&lt;br /&gt;
Rechte: &amp;lt;code&amp;gt;sudo chown 73_AutoShuttersControl.pm&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;sudo chmod 644 73_AutoShuttersControl.pm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach sollte ein &amp;lt;code&amp;gt;reload AutoShuttersControl&amp;lt;/code&amp;gt; in FHEM-Eingabefeld ausreichen, um das Modul verfügbar zu machen.&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Eventuell muß FHEM auch einmalig neu gestartet werden, um das Modul nutzen zu können.}}&lt;br /&gt;
&lt;br /&gt;
=== Define des ASC-Devices ===&lt;br /&gt;
Es genügt ein einfaches define ohne weitere Parameter.&lt;br /&gt;
&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; AutoShuttersControl&amp;lt;/code&amp;gt;&lt;br /&gt;
Dies bewirkt neben der Anlage des Devices selbst auch, dass als weiteres globales Attribut &#039;&#039;AutoShuttersControl&#039;&#039; verfügbar wird.&lt;br /&gt;
&lt;br /&gt;
=== Einstellung zentraler Vorgaben ===&lt;br /&gt;
Es stehen am ASC-Device einige Attribute zur Verfügung, über die sich das Verhalten des ASC-Devices insgesamt steuern läßt, 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.&lt;br /&gt;
Diese können auch nachträglich noch geändert werden.&lt;br /&gt;
&lt;br /&gt;
=== Markieren zu steuernder Rollladen-Devices ===&lt;br /&gt;
Um einen oder mehrere Rollläden durch das ASC-Device zu steuern, wird für jeden Rollladen jeweils das neue globale Attribut &#039;&#039;AutoShuttersControl&#039;&#039; gesetzt. Der Wert ist mit 1 oder 2 festzulegen, wobei &#039;&#039;&#039;1&#039;&#039;&#039; bedeutet, dass &lt;br /&gt;
* die Offen-Position kleiner ist als die Geschlossen-Position, also typischerweise 0 &#039;&#039;offen&#039;&#039; bedeutet und 100 für &#039;&#039;geschlossen&#039;&#039; steht&lt;br /&gt;
* eine bestimmte Position mit &#039;&#039;&#039;position&#039;&#039;&#039; angefahren wird, also z.B. &amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; position 70&amp;lt;/code&amp;gt;.&lt;br /&gt;
Dies ist z.B. die  passende Wahl für ROLLO-Devices&lt;br /&gt;
&lt;br /&gt;
Die &#039;&#039;&#039;2&#039;&#039;&#039; steht für ein umgekehrtes Verhalten und den Befehlsteil &#039;&#039;pct&#039;&#039;, also &#039;&#039;offen&#039;&#039; für &amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; pct 100&amp;lt;/code&amp;gt;. Typischer Vertreter dieses Typs sind HomeMatic (CUL_HM-) Geräte.&lt;br /&gt;
&lt;br /&gt;
=== Einbinden in das ASC-Device ===&lt;br /&gt;
Nachdem man das obige Attribut bei einem oder mehreren Rollladen-Devices gesetzt hat, kann mit &lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; scanForShutters&amp;lt;/code&amp;gt; ein Suchlauf gestartet werden, mit dem dann diese Rollläden durch das Modul gefunden und in die Steuerungslogik eingebunden werden.&lt;br /&gt;
&lt;br /&gt;
=== Einstellen der individuellen Vorgaben ===&lt;br /&gt;
Danach sind jeweils an den Rollladen-Devices weitere Attribute verfügbar, mit denen die für den jeweiligen Rollladen geltenden Einstellungen vorgenommen werden können. &lt;br /&gt;
Die Beschreibung der Attribute ist in der commandref enthalten.&lt;br /&gt;
&lt;br /&gt;
== Readings ==&lt;br /&gt;
&lt;br /&gt;
===Readings im AutoShuttersControl Device selbst.===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR/&amp;gt;Wertebereich !! Bedeutung  &lt;br /&gt;
|-&lt;br /&gt;
|..._nextAstroTimeEvent || ||Uhrzeit des nächsten Astro Events, Sonnenauf, Sonnenuntergang oder feste Zeit pro Rollonamen &lt;br /&gt;
|-&lt;br /&gt;
|..._lastPosValue || ||letzter abgesetzter Fahrbefehl pro Rollonamen&lt;br /&gt;
|-&lt;br /&gt;
|..._lastDelayPosValue || ||letzter abgesetzter Fahrbefehl welcher beim nächsten zulässigen Event ausgeführt wird.&lt;br /&gt;
|-&lt;br /&gt;
|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 Schaltbefehle welcher durch ein Fensterevent oder Bewohnerstatus an die Rollläden gesendet wurde, wird beim off setzen durch set ASC-Device partyMode off ausgeführt&lt;br /&gt;
|-&lt;br /&gt;
|lockOut || on, off ||für das aktivieren des Aussperrschutzes gemäß dem entsprechenden Attribut AutoShuttersControl_lock-out im jeweiligen Rolladen. (siehe Beschreibung bei den Attributen für die Rolladendevices)&lt;br /&gt;
|-&lt;br /&gt;
|room_... || ||Auflistung aller Rollläden welche in den jeweiligen Rämen gefunden wurde, Bsp.: room_Schlafzimmer,Terrasse&lt;br /&gt;
|-&lt;br /&gt;
|state || ||Status des Devices active, enabled, disabled&lt;br /&gt;
|-&lt;br /&gt;
|sunriseTimeWeHoliday|| on,off ||wird das Rolladen Device Attribut Attributes AutoShuttersControl_Time_Up_WE_Holiday Beachtet oder nicht&lt;br /&gt;
|-&lt;br /&gt;
|userAttrList || rolled out ||Status der UserAttribute welche an die Rollläden gesendet werden&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Readings in den Rolllädendevices===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Bedeutung  &lt;br /&gt;
|-&lt;br /&gt;
|ASC_Time_Sunrise ||Sonnenaufgangszeit für das Rollo&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Time_Sunset ||Sonnenuntergangszeit für das Rollo&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Settings ==&lt;br /&gt;
&lt;br /&gt;
===Set Befehle für AutoShuttersControl Device===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR/&amp;gt;Wertebereich !! Beschreibung  &lt;br /&gt;
|-&lt;br /&gt;
|partyMode ||on, off ||aktiviert den globalen Partymodus. Siehe Reading partyMode&lt;br /&gt;
|-&lt;br /&gt;
|lockOut ||on, off ||aktiviert den globalen Aussperrschutz. Siehe Reading partyMode&lt;br /&gt;
|-&lt;br /&gt;
|renewSetSunriseSunsetTimer || || erneuert bei allen Rollläden die Zeiten für Sunset und Sunrise und setzt die internen Timer neu.&lt;br /&gt;
|-&lt;br /&gt;
|scanForShutters || ||sucht alle FHEM Devices mit dem Attribut &amp;quot;AutoShuttersControl&amp;quot; 1/2&lt;br /&gt;
|-&lt;br /&gt;
|sunriseTimeWeHoliday || on,off ||aktiviert/deaktiviert die Beachtung des Rolladen Device Attributes AutoShuttersControl_Time_Up_WE_Holiday&lt;br /&gt;
|-&lt;br /&gt;
|createNewNotifyDev || ||Legt die interne Struktur für NOTIFYDEV neu an&lt;br /&gt;
|-&lt;br /&gt;
|selfDefence ||on, off||aktiviert/deaktiviert den Selbstschutz, wenn das Residents Device absent meldet und selfDefence aktiv ist und ein Fenster im Haus steht noch offen, wird an diesem Fenster das Rollo runter gefahren&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Attribute ==&lt;br /&gt;
&lt;br /&gt;
===Attribute im AutoShuttersControl Device selbst.===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR/&amp;gt;Wertebereich !! Default-Wert !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|ASC_antifreezeTemp || || ||Temperatur ab welcher der Frostschutz greifen soll und das Rollo nicht mehr fährt. Der letzte Fahrbefehl wird gespeichert.&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoAstroModeEvening ||aktuell REAL, CIVIL, NAUTIC, ASTRONOMIC || || (in genau dieser Schreibweise)&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoAstroModeEveningHorizon || || || Höhe über Horizont wenn beim Attribut AutoShuttersControl_autoAstroModeEvening HORIZON ausgewählt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoAstroModeMorning ||aktuell REAL, CIVIL, NAUTIC, ASTRONOMIC || ||(in genau dieser Schreibweise)&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoAstroModeMorningHorizon || || ||Höhe über Horizont wenn beim Attribut AutoShuttersControl_autoAstroModeMorning HORIZON ausgewählt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoShuttersControlComfort ||on, off || ||schaltet die Komfortfunktion an. Bedeutet das ein Rollladen mit einem threestate Sensor am Fenster beim öffnen in eine weit offen Position fährt. Die Offenposition wird beim Rollladen über das Attribut AutoShuttersControl_Pos_after_ComfortOpen eingestellt.&lt;br /&gt;
|- &lt;br /&gt;
|ASC_autoShuttersControlEvening ||on, off || ||ob Abends die Rollläden automatisch nach Zeit gesteuert werden sollen&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoShuttersControlMorning ||on, off || ||ob Morgens die Rollläden automatisch nach Zeit gesteuert werden sollen&lt;br /&gt;
|-&lt;br /&gt;
|ASC_temperatureReading || || ||Reading für die Aussentemperatur&lt;br /&gt;
|-&lt;br /&gt;
|ASC_temperatureSensor || || ||Device für die Aussentemperatur&lt;br /&gt;
|-&lt;br /&gt;
|ASC_timeUpHolidayDevice || || ||Device zur Urlaubserkennung oder Sonstiges / muss 0 oder 1 im Reading state beinhalten.&lt;br /&gt;
|-&lt;br /&gt;
|ASC_residentsDevice|| || ||Devicenamen vom Residents Device der obersten Ebene&lt;br /&gt;
|-&lt;br /&gt;
|ASC_residentsDeviceReading|| || ||Status Reading vom Residents Device der obersten Ebene&lt;br /&gt;
|-&lt;br /&gt;
| || || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Attribute in den Rolllädendevices===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR/&amp;gt;Wertebereich !! Default-Wert !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|AutoShuttersControl || 0, 1, 2 || ||1 = &amp;quot;Inverse oder Rollo Bsp.: Rollo Oben 0, Rollo Unten 100 und der Befehl zum Prozentualen fahren ist position&amp;quot;,&amp;lt;BR/&amp;gt; 2 = &amp;quot;Homematic Style Bsp.: Rollo Oben 100, Rollo Unten 0 und der Befehl zum Prozentualen fahren ist pct&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Antifreeze ||on, off || ||Frostschutz an oder aus&lt;br /&gt;
|-&lt;br /&gt;
|ASC_AutoAstroModeEvening ||aktuell REAL, CIVIL, NAUTIC, ASTRONOMIC || ||&lt;br /&gt;
|-&lt;br /&gt;
|ASC_AutoAstroModeEveningHorizon || || ||Höhe über Horizont wenn beim Attribut ASC_autoAstroModeEvening HORIZON ausgewählt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_AutoAstroModeMorning ||aktuell REAL, CIVIL, NAUTIC, ASTRONOMIC || ||&lt;br /&gt;
|-&lt;br /&gt;
|ASC_AutoAstroModeMorningHorizon || || ||Höhe über Horizont wenn beim Attribut ASC_autoAstroModeMorning HORIZON ausgewählt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Closed_Pos || || ||in 10 Schritten von 0 bis 100, default Vorgabe ist abhängig vom Attribut AutoShuttersControl&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Down ||astro, time || ||bei Astro wird Sonnenuntergang berechnet, bei time wird der Wert aus ASC_Time_Down_Early als Fahrzeit verwendet&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Mode_Down ||always, absent, off || ||wann darf die Automatik steuern. immer, niemals, bei abwesenheit des Roomate (ist kein Roommate und absent eingestellt wird gar nicht gesteuert)&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Mode_Up ||always, absent, off || ||wann darf die Automatik steuern. immer, niemals, bei abwesenheit des Roomate (ist kein Roommate und absent eingestellt wird gar nicht gesteuert)&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Offset_Minutes_Evening  || || ||maximale zufällige Verzögerung in Minuten (minimal 1) bei der Berechnung der Fahrzeiten für Abends&lt;br /&gt;
|-  &lt;br /&gt;
|ASC_Offset_Minutes_Morning || || ||maximale zufällige Verzögerung in Minuten (minimal 1) bei der Berechnung der Fahrzeiten für Morgens&lt;br /&gt;
|-  &lt;br /&gt;
|ASC_Open_Pos || || ||in 10 Schritten von 0 bis 100, default Vorgabe ist abhängig vom Attribut AutoShuttersControl&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Partymode ||on, off || ||schaltet den Partymodus an oder aus, Wird dann am ASC Device set ASC-DEVICE partyMode on geschalten, werden alle Fahrbefehle an den Rollläden welche das Attribut auf on haben zwischen gespeichert und später erst ausgeführt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Pos_Cmd || ||  ||der set Befehl um den Rollladen in Prozent Angaben zu fahren, muss der selbe sein wie das Reading welches die Position des Rollladen in Prozent an gibt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Pos_after_ComfortOpen || || ||in 10 Schritten von 0 bis 100, default Vorgabe ist abhängig vom Attribut AutoShuttersControl&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Roommate_Reading || || ||das Reading zum Roommate Device welches den Status wieder gibt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Roommate_Device || || ||Name des Roommate Devices welcher den Bewohner des Raumes vom Rollladen wieder gibt&lt;br /&gt;
|-                                &lt;br /&gt;
|ASC_Time_Down_Early || || ||Sunset frühste Zeit zum runter fahren&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Time_Down_Late || || ||Sunset späteste Zeit zum runter fahren &lt;br /&gt;
|-&lt;br /&gt;
|ASC_Time_Up_Early || || ||Sunrise frühste Zeit zum hoch fahren&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Time_Up_Late || || ||Sunrise späteste Zeit zum hoch fahren&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Time_Up_WE_Holiday  || || ||Sunrise frühste Zeit zum hochfahren am Wochenende und/oder Urlaub (we2holiday wird beachtet), Achtung sollte nicht größer sein wie ASC_Time_Up_Late sonst wird ASC_Time_Up_Late verwendet&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Up ||astro, time || ||bei Astro wird Sonnenaufgang berechnet, bei time wird der Wert aus ASC_Time_Up_Early als Fahrzeit verwendet&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Ventilate_Pos || || ||in 10 Schritten von 0 bis 100, default Vorgabe ist abhängig vom Attribut AutoShuttersControl&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Ventilate_Window_Open || || ||auf lüften, wenn das Fenster gekippt/geöffnet wird und aktuelle Position unterhalb der Lüften-Position ist&lt;br /&gt;
|-&lt;br /&gt;
|ASC_WindowRec || || ||Name des Fensterkontaktes an welchen Fenster der Rolladen angebracht ist&lt;br /&gt;
|-&lt;br /&gt;
|ASC_WindowRec_subType || || ||Typ des verwendeten Fensterkontakts: twostate (optisch oder magnetisch) oder threestate (Drehgriffkontakt)&lt;br /&gt;
|- &lt;br /&gt;
|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 Rolladen Hardwareseitig zu blockieren. Dann ist auch ein fahren über die Taster nicht mehr möglich.&lt;br /&gt;
|- &lt;br /&gt;
|ASC_lock-outCmd ||inhibit, blocked  || ||set Befehl für das Rolladen-Device zum Hardware sperren. Zum gesetzt werden wenn man &amp;quot;ASC_lock-out&amp;quot; auf hard setzt&lt;br /&gt;
|-&lt;br /&gt;
| || || ||&lt;br /&gt;
|-  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Hilfsmittel ==&lt;br /&gt;
tbd&lt;br /&gt;
&lt;br /&gt;
readingsGroup, um die diversen Level einzustellen: &lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Die Readingsgroup muss noch angepasst werden.}}&lt;br /&gt;
&lt;br /&gt;
 define rg_ASC_Rollaeden_Level readingsGroup &amp;lt;Gerät&amp;gt;,&amp;lt;Closed_Pos&amp;gt;,&amp;lt;Open_Pos&amp;gt;,&amp;lt;Shading_Pos&amp;gt;,&amp;lt;Ventilate_Pos&amp;gt; (Rolladen_.*|Jalousie_.*)..:?AutoShuttersControl_Closed_Pos,?AutoShuttersControl_Open_Pos,?AutoShuttersControl_Shading_Pos,?AutoShuttesControl_Ventilate_Pos&lt;br /&gt;
 attr rg_ASC_Rollaeden_Level commands { AutoShuttersControl_Closed_Pos =&amp;gt; &#039;AutoShuttersControl_Closed_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100&#039;,\&lt;br /&gt;
 AutoShuttersControl_Open_Pos =&amp;gt; &#039;AutoShuttersControl_Open_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100&#039;,\&lt;br /&gt;
 AutoShuttersControl_Shading_Pos =&amp;gt; &#039;AutoShuttersControl_Shading_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100&#039;,\&lt;br /&gt;
 AutoShuttersControl_Ventilate_Pos =&amp;gt; &#039;AutoShuttersControl_Ventilate_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100&#039;}&lt;br /&gt;
[[Datei:ReadingsGroup ASC Level.png|600px|]]&lt;br /&gt;
readingsGroup, um die diversen Zeiten einzustellen:&lt;br /&gt;
&lt;br /&gt;
 define rg_ASC_Rollaeden_Times readingsGroup &amp;lt;Gerät&amp;gt;,&amp;lt;Stand&amp;gt;,&amp;lt;Time_Up_Early&amp;gt;,&amp;lt;Time_Up_WE&amp;gt;,&amp;lt;Time_Up_Late&amp;gt;,&amp;lt;Time_Down_Early&amp;gt;,Time_Down_Late&amp;gt;,&amp;lt;Mode_Down&amp;gt;,&amp;lt;Mode_Up&amp;gt; (Rolladen_.*|Jalousie_.*)..:level,?AutoShuttersControl_Time_Up_Early,?AutoShuttersControl_Time_Up_WE_Holiday,?AutoShuttersControl_Time_Up_Late,?AutoShuttersControl_Time_Down_Early,?AutoShuttersControl_Time_Down_Late,?AutoShuttersControl_Mode_Down,?AutoShuttersControl_Mode_Up&lt;br /&gt;
 attr rg_ASC_Rollaeden_Times commands {level =&amp;gt; &#039;pct:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100&#039;, \&lt;br /&gt;
 AutoShuttersControl_Mode_Down =&amp;gt; &#039;AutoShuttersControl_Mode_Down:always,absent,off&#039;,\&lt;br /&gt;
 AutoShuttersControl_Mode_Up =&amp;gt; &#039;AutoShuttersControl_Mode_Up:always,absent,off&#039;,\&lt;br /&gt;
 AutoShuttersControl_Time_Down_Early =&amp;gt; &#039;AutoShuttersControl_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&#039;, \&lt;br /&gt;
 AutoShuttersControl_Time_Down_Late  =&amp;gt; &#039;AutoShuttersControl_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&#039;,\&lt;br /&gt;
 AutoShuttersControl_Time_Up_Early =&amp;gt; &#039;AutoShuttersControl_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&#039;, \&lt;br /&gt;
 AutoShuttersControl_Time_Up_Late =&amp;gt;&#039;AutoShuttersControl_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&#039;,AutoShuttersControl_Time_Up_WE_Holiday =&amp;gt; &#039;AutoShuttersControl_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&#039;}&lt;br /&gt;
[[Datei:ReadingsGroup ASC Times.png|600px|]]&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* {{Link2Forum|Topic=90751|LinkText=&amp;quot;Thread zur Entwicklung im Forum&amp;quot;}} &lt;br /&gt;
* {{Link2Forum|Topic=73964|LinkText=&amp;quot;Thread zu den Scripten von user cluni&amp;quot;}}, die der Entwicklung des Moduls zugrunde liegen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Codeschnipsel]]&lt;br /&gt;
[[Kategorie:Rollladensteuerung]]&lt;/div&gt;</summary>
		<author><name>Stephan1965</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=AutoShuttersControl&amp;diff=28098</id>
		<title>AutoShuttersControl</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=AutoShuttersControl&amp;diff=28098"/>
		<updated>2018-10-15T14:47:27Z</updated>

		<summary type="html">&lt;p&gt;Stephan1965: /* Readings in den Rolllädendevices */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Baustelle}}&lt;br /&gt;
{{Infobox Modul&lt;br /&gt;
|ModPurpose=Steuerung von Rollläden&lt;br /&gt;
|ModCategory=Automatisierung&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCmdRef= ---- noch nicht Teil von FHEM --&amp;gt;&lt;br /&gt;
|ModForumArea=Automatisierung&lt;br /&gt;
|ModTechName=73_AutoShuttersControl.pm&lt;br /&gt;
|ModOwner=CoolTux}}&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Das Modul befindet sich derzeit noch in der Entwicklung; der jeweils aktuelle Stand ist  diesem {{Link2Forum|Topic=90751|LinkText=&amp;quot;Thread im Forum&amp;quot;}} zu entnehmen.}}&lt;br /&gt;
&lt;br /&gt;
== Basics ==&lt;br /&gt;
Zur Nutzung des Moduls sollten folgende andere FHEM-Devices vorhanden sein:&lt;br /&gt;
* Rollläden&lt;br /&gt;
* Fensterkontakte und &lt;br /&gt;
* Bewohnerstatus auf Basis von Residents/Roomates in englisch. Ersatzweise andere Devices, z.B. Dummys, welche als &#039;&#039;state&#039;&#039; &#039;&#039;home&#039;&#039;, &#039;&#039;asleep&#039;&#039;, &#039;&#039;gotosleep&#039;&#039; und &#039;&#039;awoken&#039;&#039; setzen sowie ein Reading &#039;&#039;lastState&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Die Einrichtung des Moduls bzw. dessen Funktionalität erfolgt in mehreren Schritten:&lt;br /&gt;
* Definition des ASC-Devices&lt;br /&gt;
* Einstellung zentraler Vorgaben am ASC-Device&lt;br /&gt;
* Markieren der zukünftig zu steuernden Rollladen-Devices&lt;br /&gt;
* Einbinden der Rollladen-Devices in das ASC-Device&lt;br /&gt;
* Einstellen der individuellen Vorgaben je Rollladen (am Rollladen-Device)&lt;br /&gt;
&lt;br /&gt;
== Einrichtung ==&lt;br /&gt;
&lt;br /&gt;
=== Vorbereitung ===&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Ihr benötigt ein aktuelles FHEM. Update ab dem 04.09.2018 Voraussetzung!}}&lt;br /&gt;
&lt;br /&gt;
Zunächst muß das Modul aus dem Link im Forum entpackt werden und die Datei 73_AutoShuttersControl.pm in das Unterverzeichnis für die Module kopiert werden und die Rechte angepaßt.&lt;br /&gt;
&lt;br /&gt;
Speicherort für Linux-Standardinstallationen: /opt/fhem/FHEM&lt;br /&gt;
Rechte: &amp;lt;code&amp;gt;sudo chown 73_AutoShuttersControl.pm&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;sudo chmod 644 73_AutoShuttersControl.pm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach sollte ein &amp;lt;code&amp;gt;reload AutoShuttersControl&amp;lt;/code&amp;gt; in FHEM-Eingabefeld ausreichen, um das Modul verfügbar zu machen.&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Eventuell muß FHEM auch einmalig neu gestartet werden, um das Modul nutzen zu können.}}&lt;br /&gt;
&lt;br /&gt;
=== Define des ASC-Devices ===&lt;br /&gt;
Es genügt ein einfaches define ohne weitere Parameter.&lt;br /&gt;
&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; AutoShuttersControl&amp;lt;/code&amp;gt;&lt;br /&gt;
Dies bewirkt neben der Anlage des Devices selbst auch, dass als weiteres globales Attribut &#039;&#039;AutoShuttersControl&#039;&#039; verfügbar wird.&lt;br /&gt;
&lt;br /&gt;
=== Einstellung zentraler Vorgaben ===&lt;br /&gt;
Es stehen am ASC-Device einige Attribute zur Verfügung, über die sich das Verhalten des ASC-Devices insgesamt steuern läßt, 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.&lt;br /&gt;
Diese können auch nachträglich noch geändert werden.&lt;br /&gt;
&lt;br /&gt;
=== Markieren zu steuernder Rollladen-Devices ===&lt;br /&gt;
Um einen oder mehrere Rollläden durch das ASC-Device zu steuern, wird für jeden Rollladen jeweils das neue globale Attribut &#039;&#039;AutoShuttersControl&#039;&#039; gesetzt. Der Wert ist mit 1 oder 2 festzulegen, wobei &#039;&#039;&#039;1&#039;&#039;&#039; bedeutet, dass &lt;br /&gt;
* die Offen-Position kleiner ist als die Geschlossen-Position, also typischerweise 0 &#039;&#039;offen&#039;&#039; bedeutet und 100 für &#039;&#039;geschlossen&#039;&#039; steht&lt;br /&gt;
* eine bestimmte Position mit &#039;&#039;&#039;position&#039;&#039;&#039; angefahren wird, also z.B. &amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; position 70&amp;lt;/code&amp;gt;.&lt;br /&gt;
Dies ist z.B. die  passende Wahl für ROLLO-Devices&lt;br /&gt;
&lt;br /&gt;
Die &#039;&#039;&#039;2&#039;&#039;&#039; steht für ein umgekehrtes Verhalten und den Befehlsteil &#039;&#039;pct&#039;&#039;, also &#039;&#039;offen&#039;&#039; für &amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; pct 100&amp;lt;/code&amp;gt;. Typischer Vertreter dieses Typs sind HomeMatic (CUL_HM-) Geräte.&lt;br /&gt;
&lt;br /&gt;
=== Einbinden in das ASC-Device ===&lt;br /&gt;
Nachdem man das obige Attribut bei einem oder mehreren Rollladen-Devices gesetzt hat, kann mit &lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; scanForShutters&amp;lt;/code&amp;gt; ein Suchlauf gestartet werden, mit dem dann diese Rollläden durch das Modul gefunden und in die Steuerungslogik eingebunden werden.&lt;br /&gt;
&lt;br /&gt;
=== Einstellen der individuellen Vorgaben ===&lt;br /&gt;
Danach sind jeweils an den Rollladen-Devices weitere Attribute verfügbar, mit denen die für den jeweiligen Rollladen geltenden Einstellungen vorgenommen werden können. &lt;br /&gt;
Die Beschreibung der Attribute ist in der commandref enthalten.&lt;br /&gt;
&lt;br /&gt;
== Readings ==&lt;br /&gt;
&lt;br /&gt;
===Readings im AutoShuttersControl Device selbst.===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR/&amp;gt;Wertebereich !! Bedeutung  &lt;br /&gt;
|-&lt;br /&gt;
|..._nextAstroTimeEvent || ||Uhrzeit des nächsten Astro Events, Sonnenauf, Sonnenuntergang oder feste Zeit pro Rollonamen &lt;br /&gt;
|-&lt;br /&gt;
|..._lastPosValue || ||letzter abgesetzter Fahrbefehl pro Rollonamen&lt;br /&gt;
|-&lt;br /&gt;
|..._lastDelayPosValue || ||letzter abgesetzter Fahrbefehl welcher beim nächsten zulässigen Event ausgeführt wird.&lt;br /&gt;
|-&lt;br /&gt;
|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 Schaltbefehle welcher durch ein Fensterevent oder Bewohnerstatus an die Rollläden gesendet wurde, wird beim off setzen durch set ASC-Device partyMode off ausgeführt&lt;br /&gt;
|-&lt;br /&gt;
|lockOut || on, off ||für das aktivieren des Aussperrschutzes gemäß dem entsprechenden Attribut AutoShuttersControl_lock-out im jeweiligen Rolladen. (siehe Beschreibung bei den Attributen für die Rolladendevices)&lt;br /&gt;
|-&lt;br /&gt;
|room_... || ||Auflistung aller Rollläden welche in den jeweiligen Rämen gefunden wurde, Bsp.: room_Schlafzimmer,Terrasse&lt;br /&gt;
|-&lt;br /&gt;
|state || ||Status des Devices active, enabled, disabled&lt;br /&gt;
|-&lt;br /&gt;
|sunriseTimeWeHoliday|| on,off ||wird das Rolladen Device Attribut Attributes AutoShuttersControl_Time_Up_WE_Holiday Beachtet oder nicht&lt;br /&gt;
|-&lt;br /&gt;
|userAttrList || rolled out ||Status der UserAttribute welche an die Rollläden gesendet werden&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Readings in den Rolllädendevices===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Bedeutung  &lt;br /&gt;
|-&lt;br /&gt;
|ASC_Time_Sunrise ||Sonnenaufgangszeit für das Rollo&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Time_Sunset ||Sonnenuntergangszeit für das Rollo&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Settings ==&lt;br /&gt;
&lt;br /&gt;
===Set Befehle für AutoShuttersControl Device===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR/&amp;gt;Wertebereich !! Beschreibung  &lt;br /&gt;
|-&lt;br /&gt;
|partyMode ||on, off ||aktiviert den globalen Partymodus. Siehe Reading partyMode&lt;br /&gt;
|-&lt;br /&gt;
|lockOut ||on, off ||aktiviert den globalen Aussperrschutz. Siehe Reading partyMode&lt;br /&gt;
|-&lt;br /&gt;
|renewSetSunriseSunsetTimer || || erneuert bei allen Rollläden die Zeiten für Sunset und Sunrise und setzt die internen Timer neu.&lt;br /&gt;
|-&lt;br /&gt;
|scanForShutters || ||sucht alle FHEM Devices mit dem Attribut &amp;quot;AutoShuttersControl&amp;quot; 1/2&lt;br /&gt;
|-&lt;br /&gt;
|sunriseTimeWeHoliday || on,off ||aktiviert/deaktiviert die Beachtung des Rolladen Device Attributes AutoShuttersControl_Time_Up_WE_Holiday&lt;br /&gt;
|-&lt;br /&gt;
|createNewNotifyDev || ||Legt die interne Struktur für NOTIFYDEV neu an&lt;br /&gt;
|-&lt;br /&gt;
|selfDefence ||on, off||aktiviert/deaktiviert den Selbstschutz, wenn das Residents Device absent meldet und selfDefence aktiv ist und ein Fenster im Haus steht noch offen, wird an diesem Fenster das Rollo runter gefahren&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Attribute ==&lt;br /&gt;
&lt;br /&gt;
===Attribute im AutoShuttersControl Device selbst.===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR/&amp;gt;Wertebereich !! Default-Wert !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|ASC_antifreezeTemp || || ||Temperatur ab welcher der Frostschutz greifen soll und das Rollo nicht mehr fährt. Der letzte Fahrbefehl wird gespeichert.&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoAstroModeEvening ||aktuell REAL, CIVIL, NAUTIC, ASTRONOMIC || || (in genau dieser Schreibweise)&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoAstroModeEveningHorizon || || || Höhe über Horizont wenn beim Attribut AutoShuttersControl_autoAstroModeEvening HORIZON ausgewählt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoAstroModeMorning ||aktuell REAL, CIVIL, NAUTIC, ASTRONOMIC || ||(in genau dieser Schreibweise)&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoAstroModeMorningHorizon || || ||Höhe über Horizont wenn beim Attribut AutoShuttersControl_autoAstroModeMorning HORIZON ausgewählt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoShuttersControlComfort ||on, off || ||schaltet die Komfortfunktion an. Bedeutet das ein Rollladen mit einem threestate Sensor am Fenster beim öffnen in eine weit offen Position fährt. Die Offenposition wird beim Rollladen über das Attribut AutoShuttersControl_Pos_after_ComfortOpen eingestellt.&lt;br /&gt;
|- &lt;br /&gt;
|ASC_autoShuttersControlEvening ||on, off || ||ob Abends die Rollläden automatisch nach Zeit gesteuert werden sollen&lt;br /&gt;
|-&lt;br /&gt;
|ASC_autoShuttersControlMorning ||on, off || ||ob Morgens die Rollläden automatisch nach Zeit gesteuert werden sollen&lt;br /&gt;
|-&lt;br /&gt;
|ASC_temperatureReading || || ||Reading für die Aussentemperatur&lt;br /&gt;
|-&lt;br /&gt;
|ASC_temperatureSensor || || ||Device für die Aussentemperatur&lt;br /&gt;
|-&lt;br /&gt;
|ASC_timeUpHolidayDevice || || ||Device zur Urlaubserkennung oder Sonstiges / muss 0 oder 1 im Reading state beinhalten.&lt;br /&gt;
|-&lt;br /&gt;
|ASC_residentsDevice|| || ||Devicenamen vom Residents Device der obersten Ebene&lt;br /&gt;
|-&lt;br /&gt;
|ASC_residentsDeviceReading|| || ||Status Reading vom Residents Device der obersten Ebene&lt;br /&gt;
|-&lt;br /&gt;
| || || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Attribute in den Rolllädendevices===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR/&amp;gt;Wertebereich !! Default-Wert !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|AutoShuttersControl || 0, 1, 2 || ||1 = &amp;quot;Inverse oder Rollo Bsp.: Rollo Oben 0, Rollo Unten 100 und der Befehl zum Prozentualen fahren ist position&amp;quot;,&amp;lt;BR/&amp;gt; 2 = &amp;quot;Homematic Style Bsp.: Rollo Oben 100, Rollo Unten 0 und der Befehl zum Prozentualen fahren ist pct&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Antifreeze ||on, off || ||Frostschutz an oder aus&lt;br /&gt;
|-&lt;br /&gt;
|ASC_AutoAstroModeEvening ||aktuell REAL, CIVIL, NAUTIC, ASTRONOMIC || ||&lt;br /&gt;
|-&lt;br /&gt;
|ASC_AutoAstroModeEveningHorizon || || ||Höhe über Horizont wenn beim Attribut ASC_autoAstroModeEvening HORIZON ausgewählt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_AutoAstroModeMorning ||aktuell REAL, CIVIL, NAUTIC, ASTRONOMIC || ||&lt;br /&gt;
|-&lt;br /&gt;
|ASC_AutoAstroModeMorningHorizon || || ||Höhe über Horizont wenn beim Attribut ASC_autoAstroModeMorning HORIZON ausgewählt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Closed_Pos || || ||in 10 Schritten von 0 bis 100, default Vorgabe ist abhängig vom Attribut AutoShuttersControl&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Down ||astro, time || ||bei Astro wird Sonnenuntergang berechnet, bei time wird der Wert aus ASC_Time_Down_Early als Fahrzeit verwendet&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Mode_Down ||always, absent, off || ||wann darf die Automatik steuern. immer, niemals, bei abwesenheit des Roomate (ist kein Roommate und absent eingestellt wird gar nicht gesteuert)&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Mode_Up ||always, absent, off || ||wann darf die Automatik steuern. immer, niemals, bei abwesenheit des Roomate (ist kein Roommate und absent eingestellt wird gar nicht gesteuert)&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Offset_Minutes_Evening  || || ||maximale zufällige Verzögerung in Minuten (minimal 1) bei der Berechnung der Fahrzeiten für Abends&lt;br /&gt;
|-  &lt;br /&gt;
|ASC_Offset_Minutes_Morning || || ||maximale zufällige Verzögerung in Minuten (minimal 1) bei der Berechnung der Fahrzeiten für Morgens&lt;br /&gt;
|-  &lt;br /&gt;
|ASC_Open_Pos || || ||in 10 Schritten von 0 bis 100, default Vorgabe ist abhängig vom Attribut AutoShuttersControl&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Partymode ||on, off || ||schaltet den Partymodus an oder aus, Wird dann am ASC Device set ASC-DEVICE partyMode on geschalten, werden alle Fahrbefehle an den Rollläden welche das Attribut auf on haben zwischen gespeichert und später erst ausgeführt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Pos_Cmd || ||  ||der set Befehl um den Rollladen in Prozent Angaben zu fahren, muss der selbe sein wie das Reading welches die Position des Rollladen in Prozent an gibt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Pos_after_ComfortOpen || || ||in 10 Schritten von 0 bis 100, default Vorgabe ist abhängig vom Attribut AutoShuttersControl&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Roommate_Reading || || ||das Reading zum Roommate Device welches den Status wieder gibt&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Roommate_Device || || ||Name des Roommate Devices welcher den Bewohner des Raumes vom Rollladen wieder gibt&lt;br /&gt;
|-                                &lt;br /&gt;
|ASC_Time_Down_Early || || ||Sunset frühste Zeit zum runter fahren&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Time_Down_Late || || ||Sunset späteste Zeit zum runter fahren &lt;br /&gt;
|-&lt;br /&gt;
|ASC_Time_Up_Early || || ||Sunrise frühste Zeit zum hoch fahren&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Time_Up_Late || || ||Sunrise späteste Zeit zum hoch fahren&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Time_Up_WE_Holiday  || || ||Sunrise frühste Zeit zum hochfahren am Wochenende und/oder Urlaub (we2holiday wird beachtet), Achtung sollte nicht größer sein wie ASC_Time_Up_Late sonst wird ASC_Time_Up_Late verwendet&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Up ||astro, time || ||bei Astro wird Sonnenaufgang berechnet, bei time wird der Wert aus ASC_Time_Up_Early als Fahrzeit verwendet&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Ventilate_Pos || || ||in 10 Schritten von 0 bis 100, default Vorgabe ist abhängig vom Attribut AutoShuttersControl&lt;br /&gt;
|-&lt;br /&gt;
|ASC_Ventilate_Window_Open || || ||auf lüften, wenn das Fenster gekippt/geöffnet wird und aktuelle Position unterhalb der Lüften-Position ist&lt;br /&gt;
|-&lt;br /&gt;
|ASC_WindowRec || || ||Name des Fensterkontaktes an welchen Fenster der Rolladen angebracht ist&lt;br /&gt;
|-&lt;br /&gt;
|ASC_WindowRec_subType || || ||Typ des verwendeten Fensterkontakts: twostate (optisch oder magnetisch) oder threestate (Drehgriffkontakt)&lt;br /&gt;
|- &lt;br /&gt;
|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 Rolladen Hardwareseitig zu blockieren. Dann ist auch ein fahren über die Taster nicht mehr möglich.&lt;br /&gt;
|- &lt;br /&gt;
|ASC_lock-outCmd ||inhibit, blocked  || ||set Befehl für das Rolladen-Device zum Hardware sperren. Zum gesetzt werden wenn man &amp;quot;ASC_lock-out&amp;quot; auf hard setzt&lt;br /&gt;
|-&lt;br /&gt;
| || || ||&lt;br /&gt;
|-  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Hilfsmittel ==&lt;br /&gt;
tbd&lt;br /&gt;
&lt;br /&gt;
readingsGroup, um die diversen Level einzustellen: &lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Die Riedingsgroup muss noch angepasst werden.}}&lt;br /&gt;
&lt;br /&gt;
 define rg_ASC_Rollaeden_Level readingsGroup &amp;lt;Gerät&amp;gt;,&amp;lt;Closed_Pos&amp;gt;,&amp;lt;Open_Pos&amp;gt;,&amp;lt;Shading_Pos&amp;gt;,&amp;lt;Ventilate_Pos&amp;gt; (Rolladen_.*|Jalousie_.*)..:?AutoShuttersControl_Closed_Pos,?AutoShuttersControl_Open_Pos,?AutoShuttersControl_Shading_Pos,?AutoShuttesControl_Ventilate_Pos&lt;br /&gt;
 attr rg_ASC_Rollaeden_Level commands { AutoShuttersControl_Closed_Pos =&amp;gt; &#039;AutoShuttersControl_Closed_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100&#039;,\&lt;br /&gt;
 AutoShuttersControl_Open_Pos =&amp;gt; &#039;AutoShuttersControl_Open_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100&#039;,\&lt;br /&gt;
 AutoShuttersControl_Shading_Pos =&amp;gt; &#039;AutoShuttersControl_Shading_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100&#039;,\&lt;br /&gt;
 AutoShuttersControl_Ventilate_Pos =&amp;gt; &#039;AutoShuttersControl_Ventilate_Pos:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100&#039;}&lt;br /&gt;
[[Datei:ReadingsGroup ASC Level.png|600px|]]&lt;br /&gt;
readingsGroup, um die diversen Zeiten einzustellen:&lt;br /&gt;
&lt;br /&gt;
 define rg_ASC_Rollaeden_Times readingsGroup &amp;lt;Gerät&amp;gt;,&amp;lt;Stand&amp;gt;,&amp;lt;Time_Up_Early&amp;gt;,&amp;lt;Time_Up_WE&amp;gt;,&amp;lt;Time_Up_Late&amp;gt;,&amp;lt;Time_Down_Early&amp;gt;,Time_Down_Late&amp;gt;,&amp;lt;Mode_Down&amp;gt;,&amp;lt;Mode_Up&amp;gt; (Rolladen_.*|Jalousie_.*)..:level,?AutoShuttersControl_Time_Up_Early,?AutoShuttersControl_Time_Up_WE_Holiday,?AutoShuttersControl_Time_Up_Late,?AutoShuttersControl_Time_Down_Early,?AutoShuttersControl_Time_Down_Late,?AutoShuttersControl_Mode_Down,?AutoShuttersControl_Mode_Up&lt;br /&gt;
 attr rg_ASC_Rollaeden_Times commands {level =&amp;gt; &#039;pct:0,10,20,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100&#039;, \&lt;br /&gt;
 AutoShuttersControl_Mode_Down =&amp;gt; &#039;AutoShuttersControl_Mode_Down:always,absent,off&#039;,\&lt;br /&gt;
 AutoShuttersControl_Mode_Up =&amp;gt; &#039;AutoShuttersControl_Mode_Up:always,absent,off&#039;,\&lt;br /&gt;
 AutoShuttersControl_Time_Down_Early =&amp;gt; &#039;AutoShuttersControl_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&#039;, \&lt;br /&gt;
 AutoShuttersControl_Time_Down_Late  =&amp;gt; &#039;AutoShuttersControl_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&#039;,\&lt;br /&gt;
 AutoShuttersControl_Time_Up_Early =&amp;gt; &#039;AutoShuttersControl_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&#039;, \&lt;br /&gt;
 AutoShuttersControl_Time_Up_Late =&amp;gt;&#039;AutoShuttersControl_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&#039;,AutoShuttersControl_Time_Up_WE_Holiday =&amp;gt; &#039;AutoShuttersControl_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&#039;}&lt;br /&gt;
[[Datei:ReadingsGroup ASC Times.png|600px|]]&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* {{Link2Forum|Topic=90751|LinkText=&amp;quot;Thread zur Entwicklung im Forum&amp;quot;}} &lt;br /&gt;
* {{Link2Forum|Topic=73964|LinkText=&amp;quot;Thread zu den Scripten von user cluni&amp;quot;}}, die der Entwicklung des Moduls zugrunde liegen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Codeschnipsel]]&lt;br /&gt;
[[Kategorie:Rollladensteuerung]]&lt;/div&gt;</summary>
		<author><name>Stephan1965</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=UWZ&amp;diff=26406</id>
		<title>UWZ</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=UWZ&amp;diff=26406"/>
		<updated>2018-04-13T08:49:54Z</updated>

		<summary type="html">&lt;p&gt;Stephan1965: alternative Installation des Perl-Moduls mit apt-get&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Daten von Unwetterzentrale.de holen&lt;br /&gt;
|ModType=d&lt;br /&gt;
|ModForumArea=Unterstützende Dienste/Wettermodule&lt;br /&gt;
|ModTechName=77_UWZ.pm&lt;br /&gt;
|ModOwner=Tdoe, CoolTux ({{Link2Forum|Topic=51233|LinkText=Forum}})&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Das Modul [[UWZ]] holt Informationen für eine zu spezifizierende Postleitzahl von der Seite [http://unwetterzentrale.de/ Unwetterzentrale.de] und bereitet sie für die Darstellung in FHEM auf.&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
{{Randnotiz|RNTyp=y|RNText=Diese Anleitung ist etwas in die Tage gekommen. Es hat viele Änderungen und Neuerungen gegeben. Die {{Link2CmdRef|Anker=UWZ}} ist aktuell und sollte eine gute Hilfestellung geben. Ansonsten bitte ins Forum schauen, ob hier bereits Lösungen zum Problem bestehen.&lt;br /&gt;
&lt;br /&gt;
Die Wikiseite wird nach und nach aktualisiert. Wenn du dies liest und du dich mit dem Modul auskennst, bist du recht herzlich eingeladen, den Artikel zu aktualisieren. So bleibt uns (Entwicklern) mehr Zeit, um uns um das Modul zu kümmern und dies zu verbessern/erweitern.}}&lt;br /&gt;
Standardinstallation und eine Internetverbindung werden für das Funktionieren des Moduls benötigt.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Das Modul wird als offizielles Modul per [[update]] verteilt und muss nicht extra installiert werden.&lt;br /&gt;
&lt;br /&gt;
Falls nach dem &amp;quot;define&amp;quot; der Fehler &amp;quot;unable...&amp;quot; kommt und im Log &amp;quot;...Can&#039;t locate XML/Simple.pm in @INC (you may need to install the XML::Simple module)...&amp;quot; steht, so kommt man auf der Konsole mit der folgenden Installation weiter:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cpan install XML::Simple&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es geht auf der Konsole aber auch mit:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt-get install libxml-simple-perl&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Define ===&lt;br /&gt;
Abhängig davon, ob man Unwetterwarnungen aus Deutschland oder einem anderen Land abfragen möchte, muss für das Attribut PLZ entweder die Postleitzahl (Deutschland) oder die AREA_ID (Rest der Welt) verwendet werden.&lt;br /&gt;
&lt;br /&gt;
==== Deutschland ====&lt;br /&gt;
:&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;define &amp;lt;name&amp;gt; UWZ &amp;lt;Ländercode&amp;gt; &amp;lt;PLZ&amp;gt; &amp;lt;INTERVAL&amp;gt; &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Rest der Welt ====&lt;br /&gt;
:&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;define &amp;lt;name&amp;gt; UWZ &amp;lt;Ländercode&amp;gt; &amp;lt;AREA_ID&amp;gt; &amp;lt;INTERVAL&amp;gt; &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die AREA_ID kann folgendermaßen ermittelt werden:&lt;br /&gt;
&lt;br /&gt;
===== Geokoordinaten ermitteln =====&lt;br /&gt;
Dazu wird folgende URL aufgerufen, und am Ende der URL bei dem &#039;&#039;search&#039;&#039; Parameter der Name des Ortes eingegeben. Im Fall von Oberwaltersdorf AT:&lt;br /&gt;
:&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://alertspro.geoservice.meteogroup.de/weatherpro/SearchFeed.php?search=oberwalt&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als Antwort bekommt man eine XML Struktur mit gefundenen Orten:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &amp;lt;result&amp;gt;&lt;br /&gt;
   &amp;lt;cities previousOffset=&amp;quot;-1&amp;quot; nextOffset=&amp;quot;-1&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;city country=&amp;quot;49&amp;quot; city=&amp;quot;8512&amp;quot; id=&amp;quot;18226609&amp;quot; country-name=&amp;quot;Germany&amp;quot; province-name=&amp;quot;Bavaria&amp;quot; continent=&amp;quot;6&amp;quot; inhabitants=&amp;quot;7500&amp;quot; longitude=&amp;quot;12.17092&amp;quot; latitude=&amp;quot;48.57422&amp;quot; name=&amp;quot;Oberwaltenkofen (Ergolding)&amp;quot; timezone=&amp;quot;Europe/Berlin&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;city country=&amp;quot;49&amp;quot; city=&amp;quot;8671&amp;quot; id=&amp;quot;18226768&amp;quot; country-name=&amp;quot;Germany&amp;quot; province-name=&amp;quot;Bavaria&amp;quot; continent=&amp;quot;6&amp;quot; inhabitants=&amp;quot;4000&amp;quot; longitude=&amp;quot;12.51418&amp;quot; latitude=&amp;quot;48.77301&amp;quot; name=&amp;quot;Oberwalting (Leiblfing)&amp;quot; timezone=&amp;quot;Europe/Berlin&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;city country=&amp;quot;43&amp;quot; city=&amp;quot;1161&amp;quot; id=&amp;quot;18134912&amp;quot; country-name=&amp;quot;Austria&amp;quot; province-name=&amp;quot;Niederösterreich&amp;quot; continent=&amp;quot;6&amp;quot; inhabitants=&amp;quot;2500&amp;quot; longitude=&amp;quot;16.3203&amp;quot; latitude=&amp;quot;47.9756&amp;quot; name=&amp;quot;Oberwaltersdorf&amp;quot; timezone=&amp;quot;Europe/Vienna&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;city country=&amp;quot;43&amp;quot; city=&amp;quot;1305915&amp;quot; id=&amp;quot;182199490&amp;quot; country-name=&amp;quot;Austria&amp;quot; province-name=&amp;quot;Niederösterreich&amp;quot; continent=&amp;quot;6&amp;quot; inhabitants=&amp;quot;150&amp;quot; longitude=&amp;quot;15.0844&amp;quot; latitude=&amp;quot;48.5394&amp;quot; name=&amp;quot;Oberwaltenreith&amp;quot; timezone=&amp;quot;Europe/Vienna&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;/cities&amp;gt;&lt;br /&gt;
 &amp;lt;/result&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dort sucht man sich die beiden Attribute &#039;&#039;latitude&#039;&#039; und &#039;&#039;longitude&#039;&#039; für den passenden Ort heraus. Im verwendeten Beispiel wäre es für Oberwaltersdorf in Österreich:&lt;br /&gt;
:&amp;lt;code&amp;gt;latitude=&amp;quot;47.9756&amp;quot; &amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;longitude=&amp;quot;16.3203&amp;quot; &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== AREA_ID abfragen =====&lt;br /&gt;
Mit diesen Werten wird nun die nächste URL zusammengebaut (Parameter &#039;&#039;lat&#039;&#039; + &#039;&#039;lon&#039;&#039;):&lt;br /&gt;
:&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt; http://feed.alertspro.meteogroup.com/AlertsPro/AlertsProPollService.php?method=lookupCoord&amp;amp;lat=47.9756&amp;amp;lon=16.3203  &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Das Resultat:&lt;br /&gt;
:&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[{&amp;quot;AREA_TYPE&amp;quot;:&amp;quot;UWZ&amp;quot;,&amp;quot;AREA_ID&amp;quot;:&amp;quot;UWZAT00234&amp;quot;,&amp;quot;CENTER_ID&amp;quot;:&amp;quot;2&amp;quot;}] &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun wissen wir, dass die AREA_ID für Oberwaltersdorf:&lt;br /&gt;
:&amp;lt;code&amp;gt;UWZAT00234 &amp;lt;/code&amp;gt;&lt;br /&gt;
ist. Bei der Definition wird nun die Nummer &#039;&#039;00234&#039;&#039; anstelle der PLZ, und &#039;&#039;AT&#039;&#039; beim Ländercode verwendet:&lt;br /&gt;
:&amp;lt;code&amp;gt;define Unwetterzentrale UWZ AT 00234 3600 &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Attribute ===&lt;br /&gt;
Siehe Dokumentation.&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
Zur Anzeige der Warnhinweise bietet das Modul vordefinierte Funktionen an, die in [[weblink|Weblinks]] benutzt werden können.&lt;br /&gt;
&amp;lt;!-- Beispiele für UWZAsHtmlLite und UWZAsHtmlKarteLand werden ergänzt, sobald (zur Erhöhung der Variationen) andere/mehr/weniger Warnhinweise vorliegen --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:UWZAsHtmlFP.png|mini|right|400px|Warnmeldungen als reine Icons (Format &#039;&#039;UWZAsHtmlFP&#039;&#039;) mit Teilen der Objektdetails]]&lt;br /&gt;
=== Anzeige der Warnhinweise nur als Icon ===&lt;br /&gt;
Die UWZ-Warnhinweise können über die Definition &lt;br /&gt;
:&amp;lt;code&amp;gt;define &#039;&#039;UnwetterFloorplan&#039;&#039; weblink htmlCode {UWZAsHtmlFP(&amp;quot;&#039;&#039;Unwetterzentrale&#039;&#039;&amp;quot;)}&amp;lt;/code&amp;gt;&lt;br /&gt;
als reine Icons angezeigt werden. Diese Darstellung eignet sich besonders für die Einbindung in einen [[FLOORPLAN]].&lt;br /&gt;
&lt;br /&gt;
Im gezeigten Beispiel ist &#039;&#039;Unwetterzentrale&#039;&#039; der Name des UWZ-Objekts und &#039;&#039;UnwetterDetailliert&#039;&#039; der Name des erzeugten weblink-Objekts.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
[[Datei:UWZAsHtml.png|mini|right|400px|Warnmeldungen im Format &#039;&#039;UWZAsHtml&#039;&#039;]]&lt;br /&gt;
=== Detaillierte Anzeige der Warnhinweise ===&lt;br /&gt;
Zur Anzeige der Warnhinweise in der ausführlichsten Form kann mit&lt;br /&gt;
:&amp;lt;code&amp;gt;define &#039;&#039;UnwetterDetailliert&#039;&#039; weblink htmlCode {UWZAsHtml(&amp;quot;&#039;&#039;Unwetterzentrale&#039;&#039;&amp;quot;)}&amp;lt;/code&amp;gt;&lt;br /&gt;
ein weblink definiert werden.&lt;br /&gt;
&lt;br /&gt;
Im gezeigten Beispiel ist &#039;&#039;Unwetterzentrale&#039;&#039; der Name des UWZ-Objekts und &#039;&#039;UnwetterDetailliert&#039;&#039; der Name des erzeugten weblink-Objekts.&lt;br /&gt;
&lt;br /&gt;
=== Unwetterkarten ===&lt;br /&gt;
Auch diverse Unwetterkarten können eingebunden und gedownloadet werden. &lt;br /&gt;
Hierfür stehen eine Reihe von Karten zur Verfügung.&lt;br /&gt;
Mögliche Karten sind: &lt;br /&gt;
*europa&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*deutschland&lt;br /&gt;
*deutschland-small&lt;br /&gt;
*bayern&lt;br /&gt;
*bremen&lt;br /&gt;
*baden-wuerttemberg&lt;br /&gt;
*brandenburg&lt;br /&gt;
*berlin&lt;br /&gt;
*hessen&lt;br /&gt;
*niedersachsen&lt;br /&gt;
*rheinland-pfalz&lt;br /&gt;
*saarland&lt;br /&gt;
*sachsen&lt;br /&gt;
*sachsen-anhalt&lt;br /&gt;
*thueringen&lt;br /&gt;
*nordrhein-westfalen&lt;br /&gt;
*mecklenburg-vorpommern&lt;br /&gt;
*schleswig-holstein&lt;br /&gt;
*hamburg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*oesterreich&lt;br /&gt;
*burgenland&lt;br /&gt;
*kaernten&lt;br /&gt;
*niederoesterreich&lt;br /&gt;
*oberoesterreich&lt;br /&gt;
*salzburg&lt;br /&gt;
*steiermark&lt;br /&gt;
*tirol&lt;br /&gt;
*vorarlberg&lt;br /&gt;
*wien&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*schweiz&lt;br /&gt;
*aargau&lt;br /&gt;
*appenzell_ausserrhoden&lt;br /&gt;
*appenzell_innerrhoden&lt;br /&gt;
*basel_landschaft&lt;br /&gt;
*basel_stadt&lt;br /&gt;
*bern&lt;br /&gt;
*fribourg&lt;br /&gt;
*geneve&lt;br /&gt;
*glarus&lt;br /&gt;
*graubuenden&lt;br /&gt;
*jura&lt;br /&gt;
*luzern&lt;br /&gt;
*neuchatel&lt;br /&gt;
*nidwalden&lt;br /&gt;
*obwalden&lt;br /&gt;
*schaffhausen&lt;br /&gt;
*schwyz&lt;br /&gt;
*solothurn&lt;br /&gt;
*stgallen&lt;br /&gt;
*ticino&lt;br /&gt;
*thurgau&lt;br /&gt;
*uri&lt;br /&gt;
*waadt&lt;br /&gt;
*wallis&lt;br /&gt;
*zug&lt;br /&gt;
*zuerich&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*liechtenstein&lt;br /&gt;
&lt;br /&gt;
*belgique&lt;br /&gt;
&lt;br /&gt;
*denmark&lt;br /&gt;
&lt;br /&gt;
*finnland&lt;br /&gt;
&lt;br /&gt;
*france&lt;br /&gt;
&lt;br /&gt;
*letzebuerg&lt;br /&gt;
&lt;br /&gt;
*nederland&lt;br /&gt;
&lt;br /&gt;
*norwegen&lt;br /&gt;
&lt;br /&gt;
*portugal&lt;br /&gt;
&lt;br /&gt;
*sverige&lt;br /&gt;
&lt;br /&gt;
*espana&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*unitedkingdom&lt;br /&gt;
*eastofengland&lt;br /&gt;
*eastmidlands&lt;br /&gt;
*london&lt;br /&gt;
*northeastengland&lt;br /&gt;
*northernireland&lt;br /&gt;
*northwestengland&lt;br /&gt;
*scotland&lt;br /&gt;
*southeastengland&lt;br /&gt;
*southwestengland&lt;br /&gt;
*wales&lt;br /&gt;
*westmidlands&lt;br /&gt;
*yorkshireandthehumber&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*isobaren1&lt;br /&gt;
*isobaren2&lt;br /&gt;
*isobaren3&lt;br /&gt;
&lt;br /&gt;
==== Anzeige von Unwetterkarten ====&lt;br /&gt;
Dies erfolgt ebenfalls durch einem weblink.&lt;br /&gt;
:&amp;lt;code&amp;gt;define &#039;&#039;UnwetterKarteDeutschland&#039;&#039; weblink htmlCode {UWZAsHtmlKarteLand(&amp;quot;&#039;&#039;Unwetterzentrale&#039;&#039;&amp;quot;,&amp;quot;&#039;&#039;Deutschland&#039;&#039;&amp;quot;)}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Download von Unwetterkarten ====&lt;br /&gt;
Um die Karten herunterzuladen um sie beispielsweise mit dem RSS Modul zu nutzen, muss dies am UWZ Device via Attribute konfiguriert werden. &lt;br /&gt;
Hierfür stehen folgende Attribute zur Verfügung:&lt;br /&gt;
*download [0|1]&lt;br /&gt;
*savepath (default:&amp;quot;/tmp/&amp;quot;)&lt;br /&gt;
*maps (leerzeichen separierte Liste der zu speichernden Unwetterkarten)&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;attr &#039;&#039;Unwetterzentrale&#039;&#039; download 1&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;attr &#039;&#039;Unwetterzentrale&#039;&#039; savepath /tmp/&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;attr &#039;&#039;Unwetterzentrale&#039;&#039; maps deutschland europa bayern&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die angegebenen Karten werden bei jedem Lauf erneut heruntergeladen und überschreiben das alte File.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Wetteranimation ====&lt;br /&gt;
Ab der Version 1.4.1 bietet das Modul auch die Möglichkeit diverse Wetteranimationen zu integrieren. Diese können ebenfalls mittels weblink genutzt werden.&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
:&amp;lt;code&amp;gt;define &#039;&#039;UnwetterKarteMovie&#039;&#039; weblink htmlCode {UWZAsHtmlMovie(&amp;quot;Unwetterzentrale&amp;quot;,&amp;quot;stroemung&amp;quot;)}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der erste Parameter definiert das zugehörige UWZ Device.&lt;br /&gt;
&lt;br /&gt;
Der zweite Parameter kann einer der folgenden sein:&lt;br /&gt;
&lt;br /&gt;
*niederschlag-wolken&lt;br /&gt;
*stroemung&lt;br /&gt;
*temperatur&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*niederschlag-wolken-de&lt;br /&gt;
*stroemung-de&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*niederschlag-wolken-ch&lt;br /&gt;
*stroemung-ch&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*niederschlag-wolken-at&lt;br /&gt;
*stroemung-at&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*niederschlag-wolken-uk&lt;br /&gt;
*stroemung-uk&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [http://www.unwetterzentrale.de Unwetterzentrale] (für Deutschland)&lt;br /&gt;
* [http://unwetter.wetteralarm.at wetteralarm] (für Österreich)&lt;br /&gt;
* Geoservice [http://alertspro.geoservice.meteogroup.de/] zur Bestimmung von Geokoordinaten und Areacode&lt;br /&gt;
* Modulthread im Forum: {{Link2Forum|Topic=51233}}&lt;/div&gt;</summary>
		<author><name>Stephan1965</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Msg&amp;diff=26368</id>
		<title>Msg</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Msg&amp;diff=26368"/>
		<updated>2018-04-06T14:28:58Z</updated>

		<summary type="html">&lt;p&gt;Stephan1965: kleine Korrektur&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:msg}}{{Infobox Modul&lt;br /&gt;
|ModPurpose=Versenden von Nachrichten der Typen Audio, Text, Mail, Push, Light, Screen&lt;br /&gt;
|ModType=cmd&lt;br /&gt;
|ModForumArea=Automatisierung&lt;br /&gt;
|ModFTopic=39983&lt;br /&gt;
|ModCmdRef=MSG&lt;br /&gt;
|ModTechName=75_MSG.pm&lt;br /&gt;
|ModOwner={{Link2FU|1363|Loredo}}&lt;br /&gt;
}}&lt;br /&gt;
Der FHEM-Befehl [[msg]] kann dazu benutzt werden, Benachrichtigungen auszugeben.&lt;br /&gt;
&lt;br /&gt;
Der Befehl unterstützt die Nachrichtentypen&lt;br /&gt;
* text: Textnachrichten per Push- oder E-Mail-Dienst auf mobile Geräte verschicken&lt;br /&gt;
* audio: Sprachnachrichten und akustische Signale über Lautsprecher in der Wohnung ausgeben&lt;br /&gt;
* light: optische Signale durch Lampen in der Wohnung anzeigen&lt;br /&gt;
* screen: Nachrichten auf einem Bildschirm, etwa einem Fernsehgerät in der Wohnung, anzeigen&lt;br /&gt;
und kann an ein FHEM Gerät oder an eine eMail Adresse geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Weitere Details zu den Funktionen und zur Benutzung dieses Befehls finden sich im ersten Beitrag {{Link2Forum|Topic=39983|LinkText=dieser Diskussion}} im Forum.&lt;br /&gt;
&lt;br /&gt;
Der Befehl &#039;&#039;&#039;msg&#039;&#039;&#039; ersetzt ausserdem das vormals verfügbare Modul &#039;&#039;&#039;MSG&#039;&#039;&#039;. Benutzer des alten Moduls müssen ihre Devices auf &#039;&#039;&#039;MSGFile&#039;&#039;&#039; und/oder &#039;&#039;&#039;MSGMail&#039;&#039;&#039; umstellen; bitte dafür das Forenthema {{Link2Forum|Topic=43447|LinkText=&amp;quot;Benutzer von 75_MSG.pm: Aktion notwendig vor Update ab dem 04.11.2015&amp;quot;}} beachten!&lt;br /&gt;
&lt;br /&gt;
===Vorteil===&lt;br /&gt;
Der Hauptvorteil ist, dass man hier an zentraler Stelle definiert, wie Nachrichten verteilt und zugestellt werden sollen und sich später auch jederzeit zentral anpassen lasst.&lt;br /&gt;
Dazu muss man dann nicht mehr jedes einzelne Notify, DOIF oder was auch immer anpassen (beispielsweise weil sich der Empfänger geändert hat oder man nun statt dem einen FHEM Modul ein anderes Modul für die Zustellung der Nachricht verwenden möchte).&lt;br /&gt;
&lt;br /&gt;
Gesteuert wird das ganze über das setzen von Attributen. Zum einen am Device &amp;quot;globalMsg&amp;quot; für die Anpassung des Routing Verhaltens sowie einiger Attribute an einem beliebigen FHEM Device, welches die Adressierung des Bewohners oder der Bewohnergruppe ermöglicht. (Für die Profis: Alle globalen Attribute kann man auch per userattr an jedes beliebige Device hinzufügen; es erhält dort dann Vorrang).&lt;br /&gt;
&lt;br /&gt;
Es können auch globale Empfänger konfiguriert werden, dann wird die Angabe eines Empfängers bei den neuen Kommandos optional und sollte einmal ein Empfänger angegeben werden, der keine Kontaktmöglichkeit für Text, Audio oder Visual hinterlegt hat, gibt es einen Fallback auf die globalen Einstellungen (also quasi eine Art Catch-All). Im Falle eines Fallbacks gibt es einen entsprechenden Logeintrag und eine Textnachricht wird entsprechend mit einem Hinweis ergänzt.&lt;br /&gt;
&lt;br /&gt;
===Übertragungsmethoden===&lt;br /&gt;
====text====&lt;br /&gt;
Sendet eine Textnachricht per Push oder E-Mail. Je nach Priorität wird gepusht, gemailt oder beides. E-Mails werden mit der entsprechenden Priorität im Header markiert (dafür sind bei High und Low Prio HTML Mails zwingend erforderlich. Normale Mails werden als Nur-Text gesendet).&lt;br /&gt;
&lt;br /&gt;
Die Befehle, wie gepusht oder gemailt werden soll, können über Attribute am Device &amp;quot;globalMsg&amp;quot; für die Prioritäts-Kategorien &amp;quot;High&amp;quot;, &amp;quot;Normal&amp;quot; und &amp;quot;Low&amp;quot; angepasst werden. Standardmäßig wird für Push das Pushover Modul sowie für E-Mail system() per /usr/bin/mail verwendet.&lt;br /&gt;
&lt;br /&gt;
Die Sub-Typen &amp;quot;mail&amp;quot; und &amp;quot;push&amp;quot; können auch explizit für sich aufgerufen werden.&lt;br /&gt;
&lt;br /&gt;
====audio====&lt;br /&gt;
Gibt die Nachricht zunächst als Sprachnachricht weiter. Je nach Priorität wird die Nachricht auch per Text weitergeleitet. Auch kann optional die Anwesenheit des Bewohners berücksichtigt werden (follow me) und die Nachricht wird dann auch als Text weitergeleitet.&lt;br /&gt;
Außerdem kann über einen Dummy-Switcher gesteuert werden, ob Audio Nachrichten komplett wiedergegeben werden sollen, nur in einer gekürzten Fassung oder gerade überhaupt nicht (Emergency-Prio Nachrichten werden trotzdem immer wiedergegeben). Ich nutze das beispielsweise dafür, dass ich den Switcher auf &amp;quot;short&amp;quot; setze, wenn meine Wohnungstür offen steht, damit meine Nachbarn nicht meine gesamten Audio Benachrichtigungen zu hören kriegen  ;) &lt;br /&gt;
&lt;br /&gt;
Die Befehle zur Audio Wiedergabe können über Attribute am Device &amp;quot;globalMsg&amp;quot; für die Kategorien &amp;quot;Long&amp;quot;, &amp;quot;Short with Priority&amp;quot; und &amp;quot;Short&amp;quot; angepasst werden. Der Nachrichtentitel wird hier als |Titel| mit übergeben.&lt;br /&gt;
&lt;br /&gt;
Bei Verwendung von SONOSPLAYER gilt: Ist eine entsprechende Audio-Datei hinterlegt, wird diese dann vor der Nachricht mit eingebunden (Details siehe SONOS Doku). Ich nutze das, um meinen Audio-Nachrichten verschiedene Varianten von einem Gong voran zu stellen (z.B. wie im Flugzeug), damit sich die Bewohner bei einer plötzlichen Ansage nicht so erschrecken  8)  Definiert man den Audio-Titel zentral über das Attribut msgTitleAudio, statt ihn in jedem msg-Kommando explizit anzugeben, kann man später auch zentral ändern, welche Sounddatei den Nachrichten vorangestellt werden soll und muss dann nicht überall Anpassungen vornehmen.&lt;br /&gt;
Weitere Audio-Dateien können natürlich wie in der SONOS Doku beschrieben in den Text über |Dateiname| aufgenommen werden.&lt;br /&gt;
&lt;br /&gt;
====light====&lt;br /&gt;
Verwendet die Nachricht zunächst nur, um eine Leuchte anzusteuern (z.B. HUE). Je nach Priorität (hoch oder normal) kann die Leuchte anders geschaltet werden. Ist die Priorität hoch genug, wird die Nachricht zusätzlich auch per Audio wiedergegeben (dort greifen dann die Routing-Methoden für Audio). Auch hier kann optional die Anwesenheit des Bewohners berücksichtigt werden und die Nachricht alternativ als Text zugestellt werden, sofern die Priorität hoch genug ist.&lt;br /&gt;
&lt;br /&gt;
Die Befehle zur visuellen Wiedergabe können über Attribute am Device &amp;quot;globaMsgl&amp;quot; für die Kategorien &amp;quot;High&amp;quot; und &amp;quot;Normal&amp;quot; angepasst werden. Standardmäßig wird ein einfaches Kommando für HUE Geräte verwendet (select und lselect zum kurzen bzw. längeren blinken).&lt;br /&gt;
&lt;br /&gt;
====screen====&lt;br /&gt;
Ähnlich wie der Typ &amp;quot;light&amp;quot;. Standardmäßig wird ein Text an eine ENIGMA2 Box geschickt.&lt;br /&gt;
&lt;br /&gt;
===Verwendung===&lt;br /&gt;
&#039;&#039;&#039;Eine Liste der direkt unterstützten Module, ohne dass man diese händisch einbinden muss, kann man über den get-Befehl &amp;quot;routeCmd&amp;quot; beim Helfer-Device &amp;quot;globalMsg&amp;quot; (sofern es nicht umbenannt wurde) erhalten.&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;Dort kann man auch sehen, mit welcher Syntax ein bestimmtes Modul angesprochen wird und das ggf. als Vorlage für eine eigene Definition per msgCmd-Attribut nehmen.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Syntax ist sehr einfach gehalten:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;msg [&amp;lt;type&amp;gt;] [&amp;lt;@device|e-mail address&amp;gt;] [&amp;lt;priority&amp;gt;] [|&amp;lt;title&amp;gt;|] &amp;lt;message&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Type kann auch weggelassen werden und ist dann automatisch auf &amp;quot;text&amp;quot; gesetzt.&lt;br /&gt;
Wenn kein Device und keine E-Mail Adresse angegeben wurden, dann wird automatisch an das globale msgConfig Device (globalMsg) verschickt (ansonsten gibt es eine Fehlermeldung, wenn dort kein passendes msgContact-Attribut gefunden wurde).&lt;br /&gt;
&lt;br /&gt;
Auch können mehrere Typen oder Empfänger durch Komma getrennt angegeben werden (Und-Verknüpfung).&lt;br /&gt;
Eine Oder-Verknüpfung ist ebenso möglich und wird mit einer Pipe (|) zwischen Type und/oder Empfänger gemacht (Oder-Verknüpfung lässt sich auch mit Und-Verknüpfung kombinieren). Bei einer Oder-Verknüpfung wird nur zum nächsten Adressaten gesprungen, sofern für den vorigen keine der angegebenen Nachrichtentypen zugestellt werden konnte. Damit wird auch die automatische Eskalation zu einem anderen Nachrichten-Typ beeinflusst. Diese wird immer nur für den jeweils letzten Eintrag angewendet.&lt;br /&gt;
&lt;br /&gt;
Grundsätzlich sind alle Syntax-Angaben, die oben in eckigen Klammern (also []) stehen, optional. Es wird dann auf entsprechende Standardwerte zurückgegriffen, die entweder über Attribute am Device oder global gesetzt wurden. Ist auch global nichts vorhanden, wird auf interne Standardwerte zurückgegriffen (gilt natürlich nicht für ein Device, denn irgendwo muss man ja immer einen Empfänger angeben  ;) ).&lt;br /&gt;
&lt;br /&gt;
Der Wertebereich für Priorität orientiert sich dabei an der Pushover API mit -2 bis 2. Es kann jedoch grundsätzlich jeder beliebige Wert verwendet werden. Es ist dann Sache des FHEM Moduls, ob der Wertebereich richtig ist oder ob er dort automatisch begrenzt wird (sofern ein FHEM Modul von der Priorität Gebrauch macht, ansonsten wird sie in erster Linie für das Routing innnerhalb des msg-Befehls benutzt).&lt;br /&gt;
&lt;br /&gt;
Sowohl Und-Verknüpfung als auch Oder-Verknüpfung lassen sich ebenfalls in den Contact- und Recipient-Attributen anwenden. Somit bestehen eine Vielzahl von Möglichkeiten für die Adressierung von Empfängern und das Routing über bestimmte Nachrichtentypen.&lt;br /&gt;
&lt;br /&gt;
===Konfiguration===&lt;br /&gt;
&lt;br /&gt;
Sämtliche Einstellungen werden über Attribute vorgenommen. Dazu gibt es ein Konfigurationsdevice globalMsg in dem die Defaultwerte festgelegt werden. Alles andere passiert durch setzen von Attributen in den einzelnen Devices. Das Device globalMsg wird automatisch bei erster Verwendung von msg angelegt, sofern es nicht gefunden wurde.&lt;br /&gt;
Alternativ kann es mit &lt;br /&gt;
:&amp;lt;code&amp;gt;define globalMsg msgConfig &amp;lt;/code&amp;gt;&lt;br /&gt;
angelegt werden&lt;br /&gt;
&lt;br /&gt;
====Attribute für das Device &amp;quot;msgConfig&amp;quot;====&lt;br /&gt;
=====msgCmdAudio (Standard ohne Verwendung Attribut msgSwitcherDev)=====&lt;br /&gt;
Kommando für das &amp;quot;verschicken&amp;quot; von (langen) Audio Mitteilungen.&lt;br /&gt;
Entweder FHEM-Befehl oder in {} eingeschlossener Perl Befehl.&lt;br /&gt;
&lt;br /&gt;
Verfügbare Variablen:&lt;br /&gt;
*%DEVICE%&lt;br /&gt;
*%RECIPIENT% (abhängig davon, ob das Modul optional oder verpflichtend eine gesonderte Adressierung des Empfängers vorsieht)&lt;br /&gt;
*%TITLE%&lt;br /&gt;
*%MSG%&lt;br /&gt;
*%PRIORITY%&lt;br /&gt;
&lt;br /&gt;
=====msgCmdAudioShortPrio (nur in Verbindung mit msgSwitcherDev)=====&lt;br /&gt;
Kommando für das &amp;quot;verschicken&amp;quot; von Audio Mitteilungen mit Switcher Einstellung &amp;quot;short&amp;quot; und einer Prio höher/gleich msgFwPrioEmergencyAudio.&lt;br /&gt;
Entweder FHEM-Befehl oder in {} eingeschlossener Perl Befehl.&lt;br /&gt;
&lt;br /&gt;
Verfügbare Variablen:&lt;br /&gt;
*%DEVICE%&lt;br /&gt;
*%RECIPIENT% (abhängig davon, ob das Modul optional oder verpflichtend eine gesonderte Adressierung des Empfängers vorsieht)&lt;br /&gt;
*%TITLE%&lt;br /&gt;
*%MSG%&lt;br /&gt;
*%PRIORITY%&lt;br /&gt;
&lt;br /&gt;
=====msgCmdAudioShort (nur in Verbindung mit msgSwitcherDev)=====&lt;br /&gt;
Kommando für das &amp;quot;verschicken&amp;quot; von (gekürzten) Audio Mitteilungen mit Switcher Einstellung &amp;quot;short&amp;quot; unabhängig von der Priorität.&lt;br /&gt;
Entweder FHEM-Befehl oder in {} eingeschlossener Perl Befehl.&lt;br /&gt;
&lt;br /&gt;
Verfügbare Variablen:&lt;br /&gt;
*%DEVICE%&lt;br /&gt;
*%RECIPIENT% (abhängig davon, ob das Modul optional oder verpflichtend eine gesonderte Adressierung des Empfängers vorsieht)&lt;br /&gt;
*%TITLE%&lt;br /&gt;
*%MSG%&lt;br /&gt;
*%PRIORITY%&lt;br /&gt;
&lt;br /&gt;
=====msgCmd&amp;lt;TYPE&amp;gt;&amp;lt;PrioCat&amp;gt;=====&lt;br /&gt;
Kommando für den jeweilige Nachrichten-Typen und der entsprechenden Nachrichten-Prioritätskategorie&lt;br /&gt;
&lt;br /&gt;
=====msgFwPrioAbsent&amp;lt;TYPE&amp;gt;=====&lt;br /&gt;
Schwellenwert, ab dem Nachrichten diesen Typs bei kurzer Abwesenheit aller Bewohner per Text weitergeleitet werden sollen.&lt;br /&gt;
Voreinstellung: 0&lt;br /&gt;
&lt;br /&gt;
=====msgFwPrioEmergency&amp;lt;TYPE&amp;gt;=====&lt;br /&gt;
Schwellenwert, ab dem Nachrichten diesen Typs als Emergency Prio behandelt werden.&lt;br /&gt;
Diese Nachrichten werden immer wiedergegeben, unabhängig der Abwesenheit oder der Einstellung long/short am aSwitcherDev Dummy.&lt;br /&gt;
Voreinstellung: 2&lt;br /&gt;
&lt;br /&gt;
=====msgFwPrioGone&amp;lt;TYPE&amp;gt;=====&lt;br /&gt;
Schwellenwert, ab dem Nachrichten diesen Typs bei längerer Abwesenheit aller Bewohner per Text weitergeleitet werden sollen.&lt;br /&gt;
Voreinstellung: 1&lt;br /&gt;
&lt;br /&gt;
=====msgPriority&amp;lt;TYPE&amp;gt;=====&lt;br /&gt;
Standard Priorität für Nachrichten diesen Typs, sofern nicht in der Nachricht angegeben.&lt;br /&gt;
Voreinstellung: 0&lt;br /&gt;
&lt;br /&gt;
=====msgTitle&amp;lt;TYPE&amp;gt;&amp;lt;PrioCat&amp;gt;=====&lt;br /&gt;
Standard Betreff für Nachrichten diesen Typs, sofern in der Nachricht keiner angegeben wurde.&lt;br /&gt;
&lt;br /&gt;
=====msgResidentsDev=====&lt;br /&gt;
FHEM Gerätename, welcher für die Anwesenheit aller Bewohner verwendet wird. Auf dieses Device wird zurückgegriffen, sofern für das Empfänger-Device die entsprechenden Readings nicht vorhanden sind.&lt;br /&gt;
Bei Verwendung von ROOMMATE, GUEST oder RESIDENTS Devices als Empfänger wird dieses Attribut ignoriert.&lt;br /&gt;
Das in diesem Attribut angegebene Device muss die Readings &amp;quot;presence&amp;quot; und &amp;quot;state&amp;quot; haben. Es wird die Verwendung eines Devices vom FHEM Typ RESIDENTS empfohlen.&lt;br /&gt;
Über &amp;quot;presence&amp;quot; wird generell An/Abwesenheit bewertet. Hat &amp;quot;state&amp;quot; den Wert &amp;quot;gone&amp;quot;, wird eine längere Abwesenheit angenommen.&lt;br /&gt;
Für das Weiterleiten von Nachrichten bei längerer Abwesenheit muss die Nachrichten Priorität höher sein, als wenn die Bewohner nur übergangsweise abwesend sind.&lt;br /&gt;
Siehe auch entsprechende Readings msgFwPrioGone&amp;lt;TYPE&amp;gt; msgFwPrioAbsent&amp;lt;TYPE&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Readings Wertebereich:&lt;br /&gt;
presence: present|absent&lt;br /&gt;
state: gone|*&lt;br /&gt;
&lt;br /&gt;
=====msgSwitcherDev=====&lt;br /&gt;
FHEM Gerätename, welcher für die Beeinflussung der Länge von Audio Nachrichten verwendet werden soll.&lt;br /&gt;
Bei &amp;quot;off&amp;quot; findet auch keine visuelle Benachrichtigung mehr statt. Screen Nachrichten sind nicht betroffen.&lt;br /&gt;
Hier bietet sich ein Dummy Device wie dieses hier an:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;define HouseAnn dummy&lt;br /&gt;
attr HouseAnn alias Announcements&lt;br /&gt;
attr HouseAnn devStateIcon aktiv:general_an@90EE90 active:general_an@90EE90 lang:general_an@green:off aus:general_aus@red:long kurz:general_an@orange:long visuell:general_an@orange:long&lt;br /&gt;
attr HouseAnn event-on-change-reading state&lt;br /&gt;
attr HouseAnn eventMap active:aktiv long:lang short:kurz visual:visuell off:aus&lt;br /&gt;
attr HouseAnn group Automation&lt;br /&gt;
attr HouseAnn icon audio_volume_mid&lt;br /&gt;
attr HouseAnn room Apartment&lt;br /&gt;
attr HouseAnn setList state:lang,kurz,visuell,aus&lt;br /&gt;
attr HouseAnn webCmd state&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Attribute für alle FHEM Devices====&lt;br /&gt;
*Für die Verwendung der Fallback und Catchall-Zustellung von Nachrichten können diese Attribute im Device &amp;quot;global&amp;quot; gesetzt werden.&lt;br /&gt;
* Nahezu alle globalen Attribute können auch auf ein Device angewendet werden (Ausnahme: msgResidentsDev). Sie tauchen allerdings dort aus Gründen der Übersicht nicht standardmäßig auf. Man muss sie deshalb zuvor als userattr (entweder beim Device oder eben global) hinzufügen, damit man sie setzen kann.&lt;br /&gt;
&lt;br /&gt;
=====msgContact&amp;lt;TYPE&amp;gt; (zwingend für Nachrichten diesen Typs)=====&lt;br /&gt;
FHEM Gerätename, welcher zur Übermittlung von Nachrichten diesen Typs angesprochen werden soll.&lt;br /&gt;
Muss bei Audio Nachrichten ohne eigene Definition von msgCmdAudio* ein Gerät vom Typ SONOSPLAYER sein.Muss bei Screen Nachrichten ohne eigene Definition von msgCmdScreen* ein Gerät vom Typ ENIGMA2 sein.Muss bei Light Nachrichten ohne eigene Definition von msgCmdLight* ein Gerät vom Typ HUEDevice sein.&lt;br /&gt;
Muss bei Push Nachrichten ohne eigene Definition von msgCmdPush* ein Gerät vom Typ Pushover sein.&lt;br /&gt;
Muss bei Mail Nachrichten eine oder mehrere gültige E-Mail Adressen enthalten.&lt;br /&gt;
Bei FHEM Gerätenamen, über die mehrere Empfänger adressiert werden können, kann der Empfänger mittels Doppelpunkt getrennt vom FHEM Gerätenamen angegeben werden. Je nach Modul ist das optional oder verbindlich.&lt;br /&gt;
&lt;br /&gt;
=====msgRecipient&amp;lt;TYPE&amp;gt;=====&lt;br /&gt;
Leitet Nachrichten, die an dieses Gerät adressiert werden, auf ein anderes FHEM Device um.&lt;br /&gt;
Es wird dann der Wert von msgContact&amp;lt;TYPE&amp;gt; des anderen Gerätes für die Übermittlung der Nachricht verwendet.&lt;br /&gt;
Bei Nutzung des Attributs mit Typangabe werden nur Nachrichten des entsprechenden Typs umgeleitet.&lt;br /&gt;
Kombination von msgRecipient mit msgRecipient&amp;lt;TYPE&amp;gt; führt dazu, dass msgRecipient&amp;lt;TYPE&amp;gt; bevorzugt wird.&lt;br /&gt;
&lt;br /&gt;
===Follow-Me Funktion===&lt;br /&gt;
Sobald ein Device, an welches man eine Nachricht schickt, ein Reading &amp;quot;location&amp;quot; beinhaltet, wird geprüft, ob es für diese Lokation eine speziell hinterlegte Kontaktmöglichkeit gibt (z.B. also eine genaue SONOS Soundbox in dem Raum, wo der Bewohner sich gerade befindet).&lt;br /&gt;
&lt;br /&gt;
Gebraucht wird hierfür ein iBeacon zusammen mit dem GEOFANCY Modul. ich empfehle außerdem den Einsatz des ROOMMATE Moduls dazu, weil es die Handhabung der Location gleich mitbringt (Einrichtung siehe Wiki). Man kann aber auch jede andere Möglichkeit der Raumortung nutzen, es muss nur in einem Reading namens &amp;quot;location&amp;quot; enden.&lt;br /&gt;
&lt;br /&gt;
Über das Attribut &amp;quot;msgLocationDevs&amp;quot; können Devices mit Komma getrennt angegeben werden, welche dann für je einen Raum stehen und welche dann dort die msgContact* Attribute hinterlegt haben (Delegationen mittels msgRecipient* funktionieren dort auch).&lt;br /&gt;
Am einfachsten ist es also pro Raum ein Dummy-Device anzulegen und dieses dann unter dem globalen Attribut &amp;quot;msgLocationDevs&amp;quot; mit aufzuführen.&lt;br /&gt;
&lt;br /&gt;
Wichtig ist, dass dieses Dummy ein Attribut &amp;quot;msgLocationName&amp;quot; enthält, welches dann den exakt gleichen Wortlaut enthalten muss, wie auch im Reading &amp;quot;location&amp;quot; bei dem ROOMMATE Device (also genau der Lokationsname, den ihr z.B. in eurer Geofency.app angegeben habt). Zusätzlich dann eben noch die Type-Contacts. Hier ein Beispiel für Wohnzimmer und Schlafzimmer:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;define msgRoom_Living dummy&lt;br /&gt;
attr msgRoom_Living msgContactAudio Sonos_Living_Room&lt;br /&gt;
attr msgRoom_Living msgContactLight LR_Ceilling,LR_FloorLamp,LR_SofaCorner,LR_DinnerCorner&lt;br /&gt;
attr msgRoom_Living msgLocationName Living&lt;br /&gt;
attr msgRoom_Living userattr msgLocationName&lt;br /&gt;
&lt;br /&gt;
define msgRoom_Bedroom dummy&lt;br /&gt;
attr msgRoom_Bedroom msgContactAudio Sonos_Bedroom&lt;br /&gt;
attr msgRoom_Bedroom msgContactLight BR_FloorLamp&lt;br /&gt;
attr msgRoom_Bedroom msgLocationName Bedroom&lt;br /&gt;
attr msgRoom_Bedroom userattr msgLocationName&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beide Devices sind als globales Attribut verlinkt:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;attr globalMsg msgLocationDevs msgRoom_Living,msgRoom_Bedroom&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wenn ich nun einen msg-Audio Befehl absetze während ich im Schlafzimmer oder Wohnzimmer bin (Reading ist gleich &amp;quot;Living&amp;quot; oder &amp;quot;Bedroom&amp;quot;), wird die Nachricht auf demjenigen Gerät abgespielt, welches ich für den Raum hinterlegt habe (gleiches gilt für Light-Nachrichten). Wechsle ich den Raum und führe den Befehl nochmal aus, folgt mir auch die Wiedergabe der Nachricht&lt;br /&gt;
&lt;br /&gt;
===Beispiele===&lt;br /&gt;
Bei der ersten Verwendung von msg wird das Konfigurationsdevice globalMsg angelegt. Es kann aber auch vorher manuell angelegt werden.&lt;br /&gt;
&lt;br /&gt;
====Pushover====&lt;br /&gt;
Um mit msg Pushovernachrichten zu versenden ist vorher die Konfiguration eines [[Pushover|Pushoverdevices]] notwendig. Dieses wird dann mit &lt;br /&gt;
:&amp;lt;code&amp;gt;attr globalMsg msgContactPush &amp;lt;Pushoverdevice&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
dem globalMsg als Standardpushoverdevice hinzugefügt.&lt;br /&gt;
&lt;br /&gt;
anschließend kann der Befehl &lt;br /&gt;
:&amp;lt;code&amp;gt;msg test&amp;lt;/code&amp;gt;&lt;br /&gt;
verwendet werden. Folgendes passiert:&lt;br /&gt;
Das msg-Modul erkennt dass eine Nachricht verschickt werden soll. Da kein Übertragungsweg angegeben ist, wird der Standardweg genommen, nämlich text. Bei text wird eine Mail und ein Push verschickt. Da Mail nicht näher definiert ist, wird nur der Push genommen. Da bei Push kein expliziter Empfänger angegeben ist, wird der Empfänger aus dem Attribut von msgContactPush genommen.&lt;br /&gt;
&lt;br /&gt;
Alternativ kann auch direkt ein Push an einen definiertes Pushoverdevice gesendet werden:&lt;br /&gt;
:&amp;lt;code&amp;gt;msg push @&amp;lt;Pushoverdevice&amp;gt; 1 |FHEM| test&amp;lt;/code&amp;gt;&lt;br /&gt;
hier wird eine Pushnachricht ein ein definiertes Pushoverdivce mit der Priorität 1, dem Titel FHEM und der Nachricht test gesendet&lt;br /&gt;
&lt;br /&gt;
Bei &#039;&#039;&#039;mehreren&#039;&#039;&#039; Pushover Empfängern muss man nicht mehr für jeden Empfänger ein einzelnes Pushover-Device anlegen. Es genügt auch ein Gerät, man kann die Empfänger dann einfach als Sub-Empfänger ansprechen:&lt;br /&gt;
:&amp;lt;code&amp;gt;msg push @PushoverDevice:uQiRzpo4DXghDmr9QzzfQu27cmVRsG Dies ist eine Nachricht&amp;lt;/code&amp;gt;&lt;br /&gt;
Wie man sieht kann man einfach den User-Identifier (oder natürlich Group-Identifier) anhängen und adressiert somit einen alternativen Empfänger. Der im define des Device &amp;quot;PushoverDevice&amp;quot; angegebene User ist dann nur noch der Default-Empfänger.&lt;br /&gt;
Man kann auch an ein spezielles Endgerät adressieren:&lt;br /&gt;
:&amp;lt;code&amp;gt;msg push @PushoverDevice:uQiRzpo4DXghDmr9QzzfQu27cmVRsG:iPhone Dies ist eine Nachricht, die nur an das iPhone geschickt wird.&amp;lt;/code&amp;gt;&lt;br /&gt;
Natürlich kann man das auch in ein msgContactPush Attribut schreiben...&lt;br /&gt;
:&amp;lt;code&amp;gt;attr myDevice msgContactPush PushoverDevice:uQiRzpo4DXghDmr9QzzfQu27cmVRsG&amp;lt;/code&amp;gt;&lt;br /&gt;
...und anschließend so wie gewohnt über die Device-Adressierung verschicken:&lt;br /&gt;
:&amp;lt;code&amp;gt;msg push @myDevice Nachrichtentext&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Telegram====&lt;br /&gt;
Der Versand von Nachrichten über Telegram kann anlog zu Pushover verwendet werden. Zunächst muss auch hier ein [[TelegramBot|Telegram-Device]] angelegt werden.&lt;br /&gt;
&lt;br /&gt;
Anschließend kann dieses in globalMsg als Standardevice festgelgt werden:&lt;br /&gt;
:&amp;lt;code&amp;gt;attr globalMsg msgContactPush &amp;lt;Telegramdevice&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
anschließend kann der Befehl &lt;br /&gt;
:&amp;lt;code&amp;gt;msg test&amp;lt;/code&amp;gt;&lt;br /&gt;
verwendet werden. Folgendes passiert:&lt;br /&gt;
&lt;br /&gt;
Alternativ kann auch direkt ein Push an einen definiertes Telegramdevice gesendet werden:&lt;br /&gt;
:&amp;lt;code&amp;gt;msg push @&amp;lt;Telegramdevice&amp;gt;  test&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im vergleich zu Pushover werden Titel und Priorität ignoriert, da Telegram damit nicht umgehen kann.&lt;br /&gt;
&lt;br /&gt;
==== msg in Verbindung mit ROOMMATES====&lt;br /&gt;
Werden ROOMMates verwendet dann können jedem ROOMMATE Kontaktdevices hinzugefügt werden.&lt;br /&gt;
Analog zu diesem Beispiel kann msg nicht nur bei ROOMMATES sondern bei jedem beliebigen FHEM-Device angewendet werden.&lt;br /&gt;
:&amp;lt;code&amp;gt;attr &amp;lt;ROOMMATEDEVICE&amp;gt; msgContactPush &amp;lt;Pushdevice(s)&amp;gt; &amp;lt;/code&amp;gt;&lt;br /&gt;
oder konkret:&lt;br /&gt;
:&amp;lt;code&amp;gt;attr rr_Michael msgContactPush PushoverMichael&amp;lt;/code&amp;gt;&lt;br /&gt;
bzw. für Telegram:&lt;br /&gt;
:&amp;lt;code&amp;gt;attr rr_Michael msgContactPush Telegram&amp;lt;/code&amp;gt;&lt;br /&gt;
bzw. für beide:&lt;br /&gt;
:&amp;lt;code&amp;gt;attr rr_Michael msgContactPush Telegram,PushoverMichael&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Somit kann ich dann ganz einfach über &lt;br /&gt;
:&amp;lt;code&amp;gt; msg push @rr_Michael |FHEM| Dies ist eine Testnachricht für Michael!&amp;lt;/code&amp;gt;&lt;br /&gt;
Michael eine Pushnachricht über das in dem Attribut für ihn definierte Device schicken.&lt;br /&gt;
Sollte sich der ROOMMATE nun dazu entschließen Pushover nicht mehr zu verwenden, so muss nicht an jeder Stelle im Code wo ein Push abgesetzt wird das Device geändert werden, sondern nur an einer Zentralen Stellen, nämlich beim ROOMMATE durch ändern des Attributes.&lt;br /&gt;
&lt;br /&gt;
Falls es &#039;&#039;&#039;mehrere&#039;&#039;&#039; Roommates gibt, die (separat) mit Telegram angeschrieben werden sollen, sollte man für Telegram folgende Syntax für die Eintragung bei jedem Roommate verwenden:&lt;br /&gt;
:&amp;lt;code&amp;gt;attr rr_KONTAKT msgContactPush &amp;lt;NAME-DES-TELEGRAMBOT&amp;gt;:@&amp;lt;ID-NR-DES-KONTAKT&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== msg in Verbindung mit RESIDENTS====&lt;br /&gt;
Möchte man dynamisch Nachrichten an z.B. alle Personen schicken, die gerade zuhause sind, dann kann man sich das RESIDENTS-Modul und die darin vorhandenen Readings zu nutze machen. Alle Anwesenden Personen stehen in dem Reading residentsHomeDevs bzw. residentsTotalRoommatesPresentDevs wenn man zwischen ROOMMATES und GUESTs unterscheidet. Hier sollte man immer das Dev-Reading nutzen, da dort das ROOMMATE-Device angesprochen wird und nicht ggf. ein Alias.&lt;br /&gt;
Eine Nachricht an alle anwesenden Personen könnte als Beispielsweise so verschickt werden:&lt;br /&gt;
:&amp;lt;code&amp;gt;msg [msg-typ] @[r&amp;lt;resident-Device&amp;gt;:&amp;lt;Reading des Resident-Devices&amp;gt;] Du bist zuhause&amp;lt;/code&amp;gt;&lt;br /&gt;
oder konkret&lt;br /&gt;
:&amp;lt;code&amp;gt;msg push @[rgr_Bewohner:residentsHomeDevs] Du bist zuhause&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es gilt die normale Syntax von MSG. Typ ist beispielsweise Optional und ein Titel kann auch mitgegeben werden.&lt;br /&gt;
Das Routing des MSG-Moduls Teil dann das Reading in die einzelnen Empfänger auf und schickt in diesem Fall eine Push-Nachricht an die entsprechenden Personen&lt;br /&gt;
&lt;br /&gt;
==== Lautstärkeanpassung bei Audionachrichten====&lt;br /&gt;
Um die Lautstärke einer Audioausgabe beim Absetzen des MSG-Befehls anzupassen (wenn diese von den Defaultwerten des msg-Schemas abweichen soll) kann am Ende der Nachricht ein JSON mit Variablen angehangen werden, welche vom Schema (siehe &amp;quot;get globalMsg routeCmd&amp;quot;) unterstützt wird oder welche du selbst in einem msgCmd* Attribut verwendest. Für eine Sonos-Nachricht sieht das dann z.B. so aus:&lt;br /&gt;
:&amp;lt;code&amp;gt; msg audio @Sonos_Bedroom |Hint| Gute Nacht! O[{&amp;quot;VOLUME&amp;quot;:&amp;quot;8&amp;quot;}] &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Hinweis| Standardmäßig wird bei angegebenem Betreff nach einer Audiodatei mit dem Namen des Betreffs (hier: Hint.mp3) in der Sonosfreigabe (bsp.: SonosSpeak) gesucht und diese vor der Nachricht abgespielt. Ist die Datei nicht vorhanden, dann kommt es zu 2 Fehlermeldungen vom Sonos-Modul im Log. Die anschließende Sprachnachricht wird aber trotzdem abgespielt.}}&lt;br /&gt;
&lt;br /&gt;
====Jabber====&lt;br /&gt;
Der Versand der Nachrichten über Jabber ist ähnlich dem Versand über Telegram.&lt;br /&gt;
Natürlich muss auch hier zunächst das [[Jabber|Jabber-Device]] eingerichtet werden.&lt;br /&gt;
&lt;br /&gt;
Im msgConfig ist folgendes Attribut zu ergänzen:&lt;br /&gt;
:&amp;lt;code&amp;gt;attr globalMsg msgContactPush jabberdevice:jabberkontact&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Um Nachrichten zu versenden, reicht nun&lt;br /&gt;
:&amp;lt;code&amp;gt;msg test&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sollen Nachrichten an eine Konferenz/an einem Raum gesendet werden, muss nur der Parameter &#039;&#039;Jabber_MTYPE=muc&#039;&#039; mit angegeben werden.&lt;br /&gt;
:&amp;lt;code&amp;gt;msg Jabber_MTYPE=muc test&amp;lt;/code&amp;gt;&lt;br /&gt;
bzw. - sollte msgContactPush nicht definiert sein - ganz ausgeschrieben:&lt;br /&gt;
:&amp;lt;code&amp;gt;msg push Jabber_MTYPE=muc @JabberClient:raum@conference.jabber.xy Das ist eine Nachricht&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ist ein standardmäßiger Versand an einen Raum gewünscht, kann dieser Parameter auch im Device &#039;&#039;globalMsg&#039;&#039; als Attribut &#039;&#039;msgParamsPush&#039;&#039; hinterlegt werden&lt;br /&gt;
:&amp;lt;code&amp;gt;attr globalMsg msgParamsPush Jabber_MTYPE=muc&amp;lt;/code&amp;gt;&lt;br /&gt;
Danach reicht dann wieder das bekannte&lt;br /&gt;
:&amp;lt;code&amp;gt;msg test&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Hinweis| Weitere Beispiele folgen.}}&lt;/div&gt;</summary>
		<author><name>Stephan1965</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Msg&amp;diff=26367</id>
		<title>Msg</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Msg&amp;diff=26367"/>
		<updated>2018-04-06T14:21:18Z</updated>

		<summary type="html">&lt;p&gt;Stephan1965: Syntax des Telegrameintrags für Roommates explicit dargestellt.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:msg}}{{Infobox Modul&lt;br /&gt;
|ModPurpose=Versenden von Nachrichten der Typen Audio, Text, Mail, Push, Light, Screen&lt;br /&gt;
|ModType=cmd&lt;br /&gt;
|ModForumArea=Automatisierung&lt;br /&gt;
|ModFTopic=39983&lt;br /&gt;
|ModCmdRef=MSG&lt;br /&gt;
|ModTechName=75_MSG.pm&lt;br /&gt;
|ModOwner={{Link2FU|1363|Loredo}}&lt;br /&gt;
}}&lt;br /&gt;
Der FHEM-Befehl [[msg]] kann dazu benutzt werden, Benachrichtigungen auszugeben.&lt;br /&gt;
&lt;br /&gt;
Der Befehl unterstützt die Nachrichtentypen&lt;br /&gt;
* text: Textnachrichten per Push- oder E-Mail-Dienst auf mobile Geräte verschicken&lt;br /&gt;
* audio: Sprachnachrichten und akustische Signale über Lautsprecher in der Wohnung ausgeben&lt;br /&gt;
* light: optische Signale durch Lampen in der Wohnung anzeigen&lt;br /&gt;
* screen: Nachrichten auf einem Bildschirm, etwa einem Fernsehgerät in der Wohnung, anzeigen&lt;br /&gt;
und kann an ein FHEM Gerät oder an eine eMail Adresse geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Weitere Details zu den Funktionen und zur Benutzung dieses Befehls finden sich im ersten Beitrag {{Link2Forum|Topic=39983|LinkText=dieser Diskussion}} im Forum.&lt;br /&gt;
&lt;br /&gt;
Der Befehl &#039;&#039;&#039;msg&#039;&#039;&#039; ersetzt ausserdem das vormals verfügbare Modul &#039;&#039;&#039;MSG&#039;&#039;&#039;. Benutzer des alten Moduls müssen ihre Devices auf &#039;&#039;&#039;MSGFile&#039;&#039;&#039; und/oder &#039;&#039;&#039;MSGMail&#039;&#039;&#039; umstellen; bitte dafür das Forenthema {{Link2Forum|Topic=43447|LinkText=&amp;quot;Benutzer von 75_MSG.pm: Aktion notwendig vor Update ab dem 04.11.2015&amp;quot;}} beachten!&lt;br /&gt;
&lt;br /&gt;
===Vorteil===&lt;br /&gt;
Der Hauptvorteil ist, dass man hier an zentraler Stelle definiert, wie Nachrichten verteilt und zugestellt werden sollen und sich später auch jederzeit zentral anpassen lasst.&lt;br /&gt;
Dazu muss man dann nicht mehr jedes einzelne Notify, DOIF oder was auch immer anpassen (beispielsweise weil sich der Empfänger geändert hat oder man nun statt dem einen FHEM Modul ein anderes Modul für die Zustellung der Nachricht verwenden möchte).&lt;br /&gt;
&lt;br /&gt;
Gesteuert wird das ganze über das setzen von Attributen. Zum einen am Device &amp;quot;globalMsg&amp;quot; für die Anpassung des Routing Verhaltens sowie einiger Attribute an einem beliebigen FHEM Device, welches die Adressierung des Bewohners oder der Bewohnergruppe ermöglicht. (Für die Profis: Alle globalen Attribute kann man auch per userattr an jedes beliebige Device hinzufügen; es erhält dort dann Vorrang).&lt;br /&gt;
&lt;br /&gt;
Es können auch globale Empfänger konfiguriert werden, dann wird die Angabe eines Empfängers bei den neuen Kommandos optional und sollte einmal ein Empfänger angegeben werden, der keine Kontaktmöglichkeit für Text, Audio oder Visual hinterlegt hat, gibt es einen Fallback auf die globalen Einstellungen (also quasi eine Art Catch-All). Im Falle eines Fallbacks gibt es einen entsprechenden Logeintrag und eine Textnachricht wird entsprechend mit einem Hinweis ergänzt.&lt;br /&gt;
&lt;br /&gt;
===Übertragungsmethoden===&lt;br /&gt;
====text====&lt;br /&gt;
Sendet eine Textnachricht per Push oder E-Mail. Je nach Priorität wird gepusht, gemailt oder beides. E-Mails werden mit der entsprechenden Priorität im Header markiert (dafür sind bei High und Low Prio HTML Mails zwingend erforderlich. Normale Mails werden als Nur-Text gesendet).&lt;br /&gt;
&lt;br /&gt;
Die Befehle, wie gepusht oder gemailt werden soll, können über Attribute am Device &amp;quot;globalMsg&amp;quot; für die Prioritäts-Kategorien &amp;quot;High&amp;quot;, &amp;quot;Normal&amp;quot; und &amp;quot;Low&amp;quot; angepasst werden. Standardmäßig wird für Push das Pushover Modul sowie für E-Mail system() per /usr/bin/mail verwendet.&lt;br /&gt;
&lt;br /&gt;
Die Sub-Typen &amp;quot;mail&amp;quot; und &amp;quot;push&amp;quot; können auch explizit für sich aufgerufen werden.&lt;br /&gt;
&lt;br /&gt;
====audio====&lt;br /&gt;
Gibt die Nachricht zunächst als Sprachnachricht weiter. Je nach Priorität wird die Nachricht auch per Text weitergeleitet. Auch kann optional die Anwesenheit des Bewohners berücksichtigt werden (follow me) und die Nachricht wird dann auch als Text weitergeleitet.&lt;br /&gt;
Außerdem kann über einen Dummy-Switcher gesteuert werden, ob Audio Nachrichten komplett wiedergegeben werden sollen, nur in einer gekürzten Fassung oder gerade überhaupt nicht (Emergency-Prio Nachrichten werden trotzdem immer wiedergegeben). Ich nutze das beispielsweise dafür, dass ich den Switcher auf &amp;quot;short&amp;quot; setze, wenn meine Wohnungstür offen steht, damit meine Nachbarn nicht meine gesamten Audio Benachrichtigungen zu hören kriegen  ;) &lt;br /&gt;
&lt;br /&gt;
Die Befehle zur Audio Wiedergabe können über Attribute am Device &amp;quot;globalMsg&amp;quot; für die Kategorien &amp;quot;Long&amp;quot;, &amp;quot;Short with Priority&amp;quot; und &amp;quot;Short&amp;quot; angepasst werden. Der Nachrichtentitel wird hier als |Titel| mit übergeben.&lt;br /&gt;
&lt;br /&gt;
Bei Verwendung von SONOSPLAYER gilt: Ist eine entsprechende Audio-Datei hinterlegt, wird diese dann vor der Nachricht mit eingebunden (Details siehe SONOS Doku). Ich nutze das, um meinen Audio-Nachrichten verschiedene Varianten von einem Gong voran zu stellen (z.B. wie im Flugzeug), damit sich die Bewohner bei einer plötzlichen Ansage nicht so erschrecken  8)  Definiert man den Audio-Titel zentral über das Attribut msgTitleAudio, statt ihn in jedem msg-Kommando explizit anzugeben, kann man später auch zentral ändern, welche Sounddatei den Nachrichten vorangestellt werden soll und muss dann nicht überall Anpassungen vornehmen.&lt;br /&gt;
Weitere Audio-Dateien können natürlich wie in der SONOS Doku beschrieben in den Text über |Dateiname| aufgenommen werden.&lt;br /&gt;
&lt;br /&gt;
====light====&lt;br /&gt;
Verwendet die Nachricht zunächst nur, um eine Leuchte anzusteuern (z.B. HUE). Je nach Priorität (hoch oder normal) kann die Leuchte anders geschaltet werden. Ist die Priorität hoch genug, wird die Nachricht zusätzlich auch per Audio wiedergegeben (dort greifen dann die Routing-Methoden für Audio). Auch hier kann optional die Anwesenheit des Bewohners berücksichtigt werden und die Nachricht alternativ als Text zugestellt werden, sofern die Priorität hoch genug ist.&lt;br /&gt;
&lt;br /&gt;
Die Befehle zur visuellen Wiedergabe können über Attribute am Device &amp;quot;globaMsgl&amp;quot; für die Kategorien &amp;quot;High&amp;quot; und &amp;quot;Normal&amp;quot; angepasst werden. Standardmäßig wird ein einfaches Kommando für HUE Geräte verwendet (select und lselect zum kurzen bzw. längeren blinken).&lt;br /&gt;
&lt;br /&gt;
====screen====&lt;br /&gt;
Ähnlich wie der Typ &amp;quot;light&amp;quot;. Standardmäßig wird ein Text an eine ENIGMA2 Box geschickt.&lt;br /&gt;
&lt;br /&gt;
===Verwendung===&lt;br /&gt;
&#039;&#039;&#039;Eine Liste der direkt unterstützten Module, ohne dass man diese händisch einbinden muss, kann man über den get-Befehl &amp;quot;routeCmd&amp;quot; beim Helfer-Device &amp;quot;globalMsg&amp;quot; (sofern es nicht umbenannt wurde) erhalten.&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;Dort kann man auch sehen, mit welcher Syntax ein bestimmtes Modul angesprochen wird und das ggf. als Vorlage für eine eigene Definition per msgCmd-Attribut nehmen.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Syntax ist sehr einfach gehalten:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;msg [&amp;lt;type&amp;gt;] [&amp;lt;@device|e-mail address&amp;gt;] [&amp;lt;priority&amp;gt;] [|&amp;lt;title&amp;gt;|] &amp;lt;message&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Type kann auch weggelassen werden und ist dann automatisch auf &amp;quot;text&amp;quot; gesetzt.&lt;br /&gt;
Wenn kein Device und keine E-Mail Adresse angegeben wurden, dann wird automatisch an das globale msgConfig Device (globalMsg) verschickt (ansonsten gibt es eine Fehlermeldung, wenn dort kein passendes msgContact-Attribut gefunden wurde).&lt;br /&gt;
&lt;br /&gt;
Auch können mehrere Typen oder Empfänger durch Komma getrennt angegeben werden (Und-Verknüpfung).&lt;br /&gt;
Eine Oder-Verknüpfung ist ebenso möglich und wird mit einer Pipe (|) zwischen Type und/oder Empfänger gemacht (Oder-Verknüpfung lässt sich auch mit Und-Verknüpfung kombinieren). Bei einer Oder-Verknüpfung wird nur zum nächsten Adressaten gesprungen, sofern für den vorigen keine der angegebenen Nachrichtentypen zugestellt werden konnte. Damit wird auch die automatische Eskalation zu einem anderen Nachrichten-Typ beeinflusst. Diese wird immer nur für den jeweils letzten Eintrag angewendet.&lt;br /&gt;
&lt;br /&gt;
Grundsätzlich sind alle Syntax-Angaben, die oben in eckigen Klammern (also []) stehen, optional. Es wird dann auf entsprechende Standardwerte zurückgegriffen, die entweder über Attribute am Device oder global gesetzt wurden. Ist auch global nichts vorhanden, wird auf interne Standardwerte zurückgegriffen (gilt natürlich nicht für ein Device, denn irgendwo muss man ja immer einen Empfänger angeben  ;) ).&lt;br /&gt;
&lt;br /&gt;
Der Wertebereich für Priorität orientiert sich dabei an der Pushover API mit -2 bis 2. Es kann jedoch grundsätzlich jeder beliebige Wert verwendet werden. Es ist dann Sache des FHEM Moduls, ob der Wertebereich richtig ist oder ob er dort automatisch begrenzt wird (sofern ein FHEM Modul von der Priorität Gebrauch macht, ansonsten wird sie in erster Linie für das Routing innnerhalb des msg-Befehls benutzt).&lt;br /&gt;
&lt;br /&gt;
Sowohl Und-Verknüpfung als auch Oder-Verknüpfung lassen sich ebenfalls in den Contact- und Recipient-Attributen anwenden. Somit bestehen eine Vielzahl von Möglichkeiten für die Adressierung von Empfängern und das Routing über bestimmte Nachrichtentypen.&lt;br /&gt;
&lt;br /&gt;
===Konfiguration===&lt;br /&gt;
&lt;br /&gt;
Sämtliche Einstellungen werden über Attribute vorgenommen. Dazu gibt es ein Konfigurationsdevice globalMsg in dem die Defaultwerte festgelegt werden. Alles andere passiert durch setzen von Attributen in den einzelnen Devices. Das Device globalMsg wird automatisch bei erster Verwendung von msg angelegt, sofern es nicht gefunden wurde.&lt;br /&gt;
Alternativ kann es mit &lt;br /&gt;
:&amp;lt;code&amp;gt;define globalMsg msgConfig &amp;lt;/code&amp;gt;&lt;br /&gt;
angelegt werden&lt;br /&gt;
&lt;br /&gt;
====Attribute für das Device &amp;quot;msgConfig&amp;quot;====&lt;br /&gt;
=====msgCmdAudio (Standard ohne Verwendung Attribut msgSwitcherDev)=====&lt;br /&gt;
Kommando für das &amp;quot;verschicken&amp;quot; von (langen) Audio Mitteilungen.&lt;br /&gt;
Entweder FHEM-Befehl oder in {} eingeschlossener Perl Befehl.&lt;br /&gt;
&lt;br /&gt;
Verfügbare Variablen:&lt;br /&gt;
*%DEVICE%&lt;br /&gt;
*%RECIPIENT% (abhängig davon, ob das Modul optional oder verpflichtend eine gesonderte Adressierung des Empfängers vorsieht)&lt;br /&gt;
*%TITLE%&lt;br /&gt;
*%MSG%&lt;br /&gt;
*%PRIORITY%&lt;br /&gt;
&lt;br /&gt;
=====msgCmdAudioShortPrio (nur in Verbindung mit msgSwitcherDev)=====&lt;br /&gt;
Kommando für das &amp;quot;verschicken&amp;quot; von Audio Mitteilungen mit Switcher Einstellung &amp;quot;short&amp;quot; und einer Prio höher/gleich msgFwPrioEmergencyAudio.&lt;br /&gt;
Entweder FHEM-Befehl oder in {} eingeschlossener Perl Befehl.&lt;br /&gt;
&lt;br /&gt;
Verfügbare Variablen:&lt;br /&gt;
*%DEVICE%&lt;br /&gt;
*%RECIPIENT% (abhängig davon, ob das Modul optional oder verpflichtend eine gesonderte Adressierung des Empfängers vorsieht)&lt;br /&gt;
*%TITLE%&lt;br /&gt;
*%MSG%&lt;br /&gt;
*%PRIORITY%&lt;br /&gt;
&lt;br /&gt;
=====msgCmdAudioShort (nur in Verbindung mit msgSwitcherDev)=====&lt;br /&gt;
Kommando für das &amp;quot;verschicken&amp;quot; von (gekürzten) Audio Mitteilungen mit Switcher Einstellung &amp;quot;short&amp;quot; unabhängig von der Priorität.&lt;br /&gt;
Entweder FHEM-Befehl oder in {} eingeschlossener Perl Befehl.&lt;br /&gt;
&lt;br /&gt;
Verfügbare Variablen:&lt;br /&gt;
*%DEVICE%&lt;br /&gt;
*%RECIPIENT% (abhängig davon, ob das Modul optional oder verpflichtend eine gesonderte Adressierung des Empfängers vorsieht)&lt;br /&gt;
*%TITLE%&lt;br /&gt;
*%MSG%&lt;br /&gt;
*%PRIORITY%&lt;br /&gt;
&lt;br /&gt;
=====msgCmd&amp;lt;TYPE&amp;gt;&amp;lt;PrioCat&amp;gt;=====&lt;br /&gt;
Kommando für den jeweilige Nachrichten-Typen und der entsprechenden Nachrichten-Prioritätskategorie&lt;br /&gt;
&lt;br /&gt;
=====msgFwPrioAbsent&amp;lt;TYPE&amp;gt;=====&lt;br /&gt;
Schwellenwert, ab dem Nachrichten diesen Typs bei kurzer Abwesenheit aller Bewohner per Text weitergeleitet werden sollen.&lt;br /&gt;
Voreinstellung: 0&lt;br /&gt;
&lt;br /&gt;
=====msgFwPrioEmergency&amp;lt;TYPE&amp;gt;=====&lt;br /&gt;
Schwellenwert, ab dem Nachrichten diesen Typs als Emergency Prio behandelt werden.&lt;br /&gt;
Diese Nachrichten werden immer wiedergegeben, unabhängig der Abwesenheit oder der Einstellung long/short am aSwitcherDev Dummy.&lt;br /&gt;
Voreinstellung: 2&lt;br /&gt;
&lt;br /&gt;
=====msgFwPrioGone&amp;lt;TYPE&amp;gt;=====&lt;br /&gt;
Schwellenwert, ab dem Nachrichten diesen Typs bei längerer Abwesenheit aller Bewohner per Text weitergeleitet werden sollen.&lt;br /&gt;
Voreinstellung: 1&lt;br /&gt;
&lt;br /&gt;
=====msgPriority&amp;lt;TYPE&amp;gt;=====&lt;br /&gt;
Standard Priorität für Nachrichten diesen Typs, sofern nicht in der Nachricht angegeben.&lt;br /&gt;
Voreinstellung: 0&lt;br /&gt;
&lt;br /&gt;
=====msgTitle&amp;lt;TYPE&amp;gt;&amp;lt;PrioCat&amp;gt;=====&lt;br /&gt;
Standard Betreff für Nachrichten diesen Typs, sofern in der Nachricht keiner angegeben wurde.&lt;br /&gt;
&lt;br /&gt;
=====msgResidentsDev=====&lt;br /&gt;
FHEM Gerätename, welcher für die Anwesenheit aller Bewohner verwendet wird. Auf dieses Device wird zurückgegriffen, sofern für das Empfänger-Device die entsprechenden Readings nicht vorhanden sind.&lt;br /&gt;
Bei Verwendung von ROOMMATE, GUEST oder RESIDENTS Devices als Empfänger wird dieses Attribut ignoriert.&lt;br /&gt;
Das in diesem Attribut angegebene Device muss die Readings &amp;quot;presence&amp;quot; und &amp;quot;state&amp;quot; haben. Es wird die Verwendung eines Devices vom FHEM Typ RESIDENTS empfohlen.&lt;br /&gt;
Über &amp;quot;presence&amp;quot; wird generell An/Abwesenheit bewertet. Hat &amp;quot;state&amp;quot; den Wert &amp;quot;gone&amp;quot;, wird eine längere Abwesenheit angenommen.&lt;br /&gt;
Für das Weiterleiten von Nachrichten bei längerer Abwesenheit muss die Nachrichten Priorität höher sein, als wenn die Bewohner nur übergangsweise abwesend sind.&lt;br /&gt;
Siehe auch entsprechende Readings msgFwPrioGone&amp;lt;TYPE&amp;gt; msgFwPrioAbsent&amp;lt;TYPE&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Readings Wertebereich:&lt;br /&gt;
presence: present|absent&lt;br /&gt;
state: gone|*&lt;br /&gt;
&lt;br /&gt;
=====msgSwitcherDev=====&lt;br /&gt;
FHEM Gerätename, welcher für die Beeinflussung der Länge von Audio Nachrichten verwendet werden soll.&lt;br /&gt;
Bei &amp;quot;off&amp;quot; findet auch keine visuelle Benachrichtigung mehr statt. Screen Nachrichten sind nicht betroffen.&lt;br /&gt;
Hier bietet sich ein Dummy Device wie dieses hier an:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;define HouseAnn dummy&lt;br /&gt;
attr HouseAnn alias Announcements&lt;br /&gt;
attr HouseAnn devStateIcon aktiv:general_an@90EE90 active:general_an@90EE90 lang:general_an@green:off aus:general_aus@red:long kurz:general_an@orange:long visuell:general_an@orange:long&lt;br /&gt;
attr HouseAnn event-on-change-reading state&lt;br /&gt;
attr HouseAnn eventMap active:aktiv long:lang short:kurz visual:visuell off:aus&lt;br /&gt;
attr HouseAnn group Automation&lt;br /&gt;
attr HouseAnn icon audio_volume_mid&lt;br /&gt;
attr HouseAnn room Apartment&lt;br /&gt;
attr HouseAnn setList state:lang,kurz,visuell,aus&lt;br /&gt;
attr HouseAnn webCmd state&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Attribute für alle FHEM Devices====&lt;br /&gt;
*Für die Verwendung der Fallback und Catchall-Zustellung von Nachrichten können diese Attribute im Device &amp;quot;global&amp;quot; gesetzt werden.&lt;br /&gt;
* Nahezu alle globalen Attribute können auch auf ein Device angewendet werden (Ausnahme: msgResidentsDev). Sie tauchen allerdings dort aus Gründen der Übersicht nicht standardmäßig auf. Man muss sie deshalb zuvor als userattr (entweder beim Device oder eben global) hinzufügen, damit man sie setzen kann.&lt;br /&gt;
&lt;br /&gt;
=====msgContact&amp;lt;TYPE&amp;gt; (zwingend für Nachrichten diesen Typs)=====&lt;br /&gt;
FHEM Gerätename, welcher zur Übermittlung von Nachrichten diesen Typs angesprochen werden soll.&lt;br /&gt;
Muss bei Audio Nachrichten ohne eigene Definition von msgCmdAudio* ein Gerät vom Typ SONOSPLAYER sein.Muss bei Screen Nachrichten ohne eigene Definition von msgCmdScreen* ein Gerät vom Typ ENIGMA2 sein.Muss bei Light Nachrichten ohne eigene Definition von msgCmdLight* ein Gerät vom Typ HUEDevice sein.&lt;br /&gt;
Muss bei Push Nachrichten ohne eigene Definition von msgCmdPush* ein Gerät vom Typ Pushover sein.&lt;br /&gt;
Muss bei Mail Nachrichten eine oder mehrere gültige E-Mail Adressen enthalten.&lt;br /&gt;
Bei FHEM Gerätenamen, über die mehrere Empfänger adressiert werden können, kann der Empfänger mittels Doppelpunkt getrennt vom FHEM Gerätenamen angegeben werden. Je nach Modul ist das optional oder verbindlich.&lt;br /&gt;
&lt;br /&gt;
=====msgRecipient&amp;lt;TYPE&amp;gt;=====&lt;br /&gt;
Leitet Nachrichten, die an dieses Gerät adressiert werden, auf ein anderes FHEM Device um.&lt;br /&gt;
Es wird dann der Wert von msgContact&amp;lt;TYPE&amp;gt; des anderen Gerätes für die Übermittlung der Nachricht verwendet.&lt;br /&gt;
Bei Nutzung des Attributs mit Typangabe werden nur Nachrichten des entsprechenden Typs umgeleitet.&lt;br /&gt;
Kombination von msgRecipient mit msgRecipient&amp;lt;TYPE&amp;gt; führt dazu, dass msgRecipient&amp;lt;TYPE&amp;gt; bevorzugt wird.&lt;br /&gt;
&lt;br /&gt;
===Follow-Me Funktion===&lt;br /&gt;
Sobald ein Device, an welches man eine Nachricht schickt, ein Reading &amp;quot;location&amp;quot; beinhaltet, wird geprüft, ob es für diese Lokation eine speziell hinterlegte Kontaktmöglichkeit gibt (z.B. also eine genaue SONOS Soundbox in dem Raum, wo der Bewohner sich gerade befindet).&lt;br /&gt;
&lt;br /&gt;
Gebraucht wird hierfür ein iBeacon zusammen mit dem GEOFANCY Modul. ich empfehle außerdem den Einsatz des ROOMMATE Moduls dazu, weil es die Handhabung der Location gleich mitbringt (Einrichtung siehe Wiki). Man kann aber auch jede andere Möglichkeit der Raumortung nutzen, es muss nur in einem Reading namens &amp;quot;location&amp;quot; enden.&lt;br /&gt;
&lt;br /&gt;
Über das Attribut &amp;quot;msgLocationDevs&amp;quot; können Devices mit Komma getrennt angegeben werden, welche dann für je einen Raum stehen und welche dann dort die msgContact* Attribute hinterlegt haben (Delegationen mittels msgRecipient* funktionieren dort auch).&lt;br /&gt;
Am einfachsten ist es also pro Raum ein Dummy-Device anzulegen und dieses dann unter dem globalen Attribut &amp;quot;msgLocationDevs&amp;quot; mit aufzuführen.&lt;br /&gt;
&lt;br /&gt;
Wichtig ist, dass dieses Dummy ein Attribut &amp;quot;msgLocationName&amp;quot; enthält, welches dann den exakt gleichen Wortlaut enthalten muss, wie auch im Reading &amp;quot;location&amp;quot; bei dem ROOMMATE Device (also genau der Lokationsname, den ihr z.B. in eurer Geofency.app angegeben habt). Zusätzlich dann eben noch die Type-Contacts. Hier ein Beispiel für Wohnzimmer und Schlafzimmer:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;define msgRoom_Living dummy&lt;br /&gt;
attr msgRoom_Living msgContactAudio Sonos_Living_Room&lt;br /&gt;
attr msgRoom_Living msgContactLight LR_Ceilling,LR_FloorLamp,LR_SofaCorner,LR_DinnerCorner&lt;br /&gt;
attr msgRoom_Living msgLocationName Living&lt;br /&gt;
attr msgRoom_Living userattr msgLocationName&lt;br /&gt;
&lt;br /&gt;
define msgRoom_Bedroom dummy&lt;br /&gt;
attr msgRoom_Bedroom msgContactAudio Sonos_Bedroom&lt;br /&gt;
attr msgRoom_Bedroom msgContactLight BR_FloorLamp&lt;br /&gt;
attr msgRoom_Bedroom msgLocationName Bedroom&lt;br /&gt;
attr msgRoom_Bedroom userattr msgLocationName&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beide Devices sind als globales Attribut verlinkt:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;attr globalMsg msgLocationDevs msgRoom_Living,msgRoom_Bedroom&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wenn ich nun einen msg-Audio Befehl absetze während ich im Schlafzimmer oder Wohnzimmer bin (Reading ist gleich &amp;quot;Living&amp;quot; oder &amp;quot;Bedroom&amp;quot;), wird die Nachricht auf demjenigen Gerät abgespielt, welches ich für den Raum hinterlegt habe (gleiches gilt für Light-Nachrichten). Wechsle ich den Raum und führe den Befehl nochmal aus, folgt mir auch die Wiedergabe der Nachricht&lt;br /&gt;
&lt;br /&gt;
===Beispiele===&lt;br /&gt;
Bei der ersten Verwendung von msg wird das Konfigurationsdevice globalMsg angelegt. Es kann aber auch vorher manuell angelegt werden.&lt;br /&gt;
&lt;br /&gt;
====Pushover====&lt;br /&gt;
Um mit msg Pushovernachrichten zu versenden ist vorher die Konfiguration eines [[Pushover|Pushoverdevices]] notwendig. Dieses wird dann mit &lt;br /&gt;
:&amp;lt;code&amp;gt;attr globalMsg msgContactPush &amp;lt;Pushoverdevice&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
dem globalMsg als Standardpushoverdevice hinzugefügt.&lt;br /&gt;
&lt;br /&gt;
anschließend kann der Befehl &lt;br /&gt;
:&amp;lt;code&amp;gt;msg test&amp;lt;/code&amp;gt;&lt;br /&gt;
verwendet werden. Folgendes passiert:&lt;br /&gt;
Das msg-Modul erkennt dass eine Nachricht verschickt werden soll. Da kein Übertragungsweg angegeben ist, wird der Standardweg genommen, nämlich text. Bei text wird eine Mail und ein Push verschickt. Da Mail nicht näher definiert ist, wird nur der Push genommen. Da bei Push kein expliziter Empfänger angegeben ist, wird der Empfänger aus dem Attribut von msgContactPush genommen.&lt;br /&gt;
&lt;br /&gt;
Alternativ kann auch direkt ein Push an einen definiertes Pushoverdevice gesendet werden:&lt;br /&gt;
:&amp;lt;code&amp;gt;msg push @&amp;lt;Pushoverdevice&amp;gt; 1 |FHEM| test&amp;lt;/code&amp;gt;&lt;br /&gt;
hier wird eine Pushnachricht ein ein definiertes Pushoverdivce mit der Priorität 1, dem Titel FHEM und der Nachricht test gesendet&lt;br /&gt;
&lt;br /&gt;
Bei &#039;&#039;&#039;mehreren&#039;&#039;&#039; Pushover Empfängern muss man nicht mehr für jeden Empfänger ein einzelnes Pushover-Device anlegen. Es genügt auch ein Gerät, man kann die Empfänger dann einfach als Sub-Empfänger ansprechen:&lt;br /&gt;
:&amp;lt;code&amp;gt;msg push @PushoverDevice:uQiRzpo4DXghDmr9QzzfQu27cmVRsG Dies ist eine Nachricht&amp;lt;/code&amp;gt;&lt;br /&gt;
Wie man sieht kann man einfach den User-Identifier (oder natürlich Group-Identifier) anhängen und adressiert somit einen alternativen Empfänger. Der im define des Device &amp;quot;PushoverDevice&amp;quot; angegebene User ist dann nur noch der Default-Empfänger.&lt;br /&gt;
Man kann auch an ein spezielles Endgerät adressieren:&lt;br /&gt;
:&amp;lt;code&amp;gt;msg push @PushoverDevice:uQiRzpo4DXghDmr9QzzfQu27cmVRsG:iPhone Dies ist eine Nachricht, die nur an das iPhone geschickt wird.&amp;lt;/code&amp;gt;&lt;br /&gt;
Natürlich kann man das auch in ein msgContactPush Attribut schreiben...&lt;br /&gt;
:&amp;lt;code&amp;gt;attr myDevice msgContactPush PushoverDevice:uQiRzpo4DXghDmr9QzzfQu27cmVRsG&amp;lt;/code&amp;gt;&lt;br /&gt;
...und anschließend so wie gewohnt über die Device-Adressierung verschicken:&lt;br /&gt;
:&amp;lt;code&amp;gt;msg push @myDevice Nachrichtentext&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Telegram====&lt;br /&gt;
Der Versand von Nachrichten über Telegram kann anlog zu Pushover verwendet werden. Zunächst muss auch hier ein [[TelegramBot|Telegram-Device]] angelegt werden.&lt;br /&gt;
&lt;br /&gt;
Anschließend kann dieses in globalMsg als Standardevice festgelgt werden:&lt;br /&gt;
:&amp;lt;code&amp;gt;attr globalMsg msgContactPush &amp;lt;Telegramdevice&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
anschließend kann der Befehl &lt;br /&gt;
:&amp;lt;code&amp;gt;msg test&amp;lt;/code&amp;gt;&lt;br /&gt;
verwendet werden. Folgendes passiert:&lt;br /&gt;
&lt;br /&gt;
Alternativ kann auch direkt ein Push an einen definiertes Telegramdevice gesendet werden:&lt;br /&gt;
:&amp;lt;code&amp;gt;msg push @&amp;lt;Telegramdevice&amp;gt;  test&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im vergleich zu Pushover werden Titel und Priorität ignoriert, da Telegram damit nicht umgehen kann.&lt;br /&gt;
&lt;br /&gt;
==== msg in Verbindung mit ROOMMATES====&lt;br /&gt;
Werden ROOMMates verwendet dann können jedem ROOMMATE Kontaktdevices hinzugefügt werden.&lt;br /&gt;
Analog zu diesem Beispiel kann msg nicht nur bei ROOMMATES sondern bei jedem beliebigen FHEM-Device angewendet werden.&lt;br /&gt;
:&amp;lt;code&amp;gt;attr &amp;lt;ROOMMATEDEVICE&amp;gt; msgContactPush &amp;lt;Pushdevice(s)&amp;gt; &amp;lt;/code&amp;gt;&lt;br /&gt;
oder konkret:&lt;br /&gt;
:&amp;lt;code&amp;gt;attr rr_Michael msgContactPush PushoverMichael&amp;lt;/code&amp;gt;&lt;br /&gt;
bzw. für Telegram:&lt;br /&gt;
:&amp;lt;code&amp;gt;attr rr_Michael msgContactPush Telegram&amp;lt;/code&amp;gt;&lt;br /&gt;
bzw. für beide:&lt;br /&gt;
:&amp;lt;code&amp;gt;attr rr_Michael msgContactPush Telegram,PushoverMichael&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Somit kann ich dann ganz einfach über &lt;br /&gt;
:&amp;lt;code&amp;gt; msg push @rr_Michael |FHEM| Dies ist eine Testnachricht für Michael!&amp;lt;/code&amp;gt;&lt;br /&gt;
Michael eine Pushnachricht über das in dem Attribut für ihn definierte Device schicken.&lt;br /&gt;
Sollte sich der ROOMMATE nun dazu entschließen Pushover nicht mehr zu verwenden, so muss nicht an jeder Stelle im Code wo ein Push abgesetzt wird das Device geändert werden, sondern nur an einer Zentralen Stellen, nämlich beim ROOMMATE durch ändern des Attributes.&lt;br /&gt;
&lt;br /&gt;
Falls es &#039;&#039;&#039;mehrere&#039;&#039;&#039; Roommates gibt, die (separat) mit Telegram angeschrieben werden sollen, sollte man folgende Syntax für die Eintragung bei jedem Roommate verwenden:&lt;br /&gt;
:&amp;lt;code&amp;gt;attr rr_KONTAKT msgContactPush &amp;lt;NAME-DES-TELEGRAMBOT&amp;gt;:@&amp;lt;ID-NR-DES-KONTAKT&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== msg in Verbindung mit RESIDENTS====&lt;br /&gt;
Möchte man dynamisch Nachrichten an z.B. alle Personen schicken, die gerade zuhause sind, dann kann man sich das RESIDENTS-Modul und die darin vorhandenen Readings zu nutze machen. Alle Anwesenden Personen stehen in dem Reading residentsHomeDevs bzw. residentsTotalRoommatesPresentDevs wenn man zwischen ROOMMATES und GUESTs unterscheidet. Hier sollte man immer das Dev-Reading nutzen, da dort das ROOMMATE-Device angesprochen wird und nicht ggf. ein Alias.&lt;br /&gt;
Eine Nachricht an alle anwesenden Personen könnte als Beispielsweise so verschickt werden:&lt;br /&gt;
:&amp;lt;code&amp;gt;msg [msg-typ] @[r&amp;lt;resident-Device&amp;gt;:&amp;lt;Reading des Resident-Devices&amp;gt;] Du bist zuhause&amp;lt;/code&amp;gt;&lt;br /&gt;
oder konkret&lt;br /&gt;
:&amp;lt;code&amp;gt;msg push @[rgr_Bewohner:residentsHomeDevs] Du bist zuhause&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es gilt die normale Syntax von MSG. Typ ist beispielsweise Optional und ein Titel kann auch mitgegeben werden.&lt;br /&gt;
Das Routing des MSG-Moduls Teil dann das Reading in die einzelnen Empfänger auf und schickt in diesem Fall eine Push-Nachricht an die entsprechenden Personen&lt;br /&gt;
&lt;br /&gt;
==== Lautstärkeanpassung bei Audionachrichten====&lt;br /&gt;
Um die Lautstärke einer Audioausgabe beim Absetzen des MSG-Befehls anzupassen (wenn diese von den Defaultwerten des msg-Schemas abweichen soll) kann am Ende der Nachricht ein JSON mit Variablen angehangen werden, welche vom Schema (siehe &amp;quot;get globalMsg routeCmd&amp;quot;) unterstützt wird oder welche du selbst in einem msgCmd* Attribut verwendest. Für eine Sonos-Nachricht sieht das dann z.B. so aus:&lt;br /&gt;
:&amp;lt;code&amp;gt; msg audio @Sonos_Bedroom |Hint| Gute Nacht! O[{&amp;quot;VOLUME&amp;quot;:&amp;quot;8&amp;quot;}] &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Hinweis| Standardmäßig wird bei angegebenem Betreff nach einer Audiodatei mit dem Namen des Betreffs (hier: Hint.mp3) in der Sonosfreigabe (bsp.: SonosSpeak) gesucht und diese vor der Nachricht abgespielt. Ist die Datei nicht vorhanden, dann kommt es zu 2 Fehlermeldungen vom Sonos-Modul im Log. Die anschließende Sprachnachricht wird aber trotzdem abgespielt.}}&lt;br /&gt;
&lt;br /&gt;
====Jabber====&lt;br /&gt;
Der Versand der Nachrichten über Jabber ist ähnlich dem Versand über Telegram.&lt;br /&gt;
Natürlich muss auch hier zunächst das [[Jabber|Jabber-Device]] eingerichtet werden.&lt;br /&gt;
&lt;br /&gt;
Im msgConfig ist folgendes Attribut zu ergänzen:&lt;br /&gt;
:&amp;lt;code&amp;gt;attr globalMsg msgContactPush jabberdevice:jabberkontact&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Um Nachrichten zu versenden, reicht nun&lt;br /&gt;
:&amp;lt;code&amp;gt;msg test&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sollen Nachrichten an eine Konferenz/an einem Raum gesendet werden, muss nur der Parameter &#039;&#039;Jabber_MTYPE=muc&#039;&#039; mit angegeben werden.&lt;br /&gt;
:&amp;lt;code&amp;gt;msg Jabber_MTYPE=muc test&amp;lt;/code&amp;gt;&lt;br /&gt;
bzw. - sollte msgContactPush nicht definiert sein - ganz ausgeschrieben:&lt;br /&gt;
:&amp;lt;code&amp;gt;msg push Jabber_MTYPE=muc @JabberClient:raum@conference.jabber.xy Das ist eine Nachricht&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ist ein standardmäßiger Versand an einen Raum gewünscht, kann dieser Parameter auch im Device &#039;&#039;globalMsg&#039;&#039; als Attribut &#039;&#039;msgParamsPush&#039;&#039; hinterlegt werden&lt;br /&gt;
:&amp;lt;code&amp;gt;attr globalMsg msgParamsPush Jabber_MTYPE=muc&amp;lt;/code&amp;gt;&lt;br /&gt;
Danach reicht dann wieder das bekannte&lt;br /&gt;
:&amp;lt;code&amp;gt;msg test&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Hinweis| Weitere Beispiele folgen.}}&lt;/div&gt;</summary>
		<author><name>Stephan1965</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Msg&amp;diff=26366</id>
		<title>Msg</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Msg&amp;diff=26366"/>
		<updated>2018-04-06T12:05:10Z</updated>

		<summary type="html">&lt;p&gt;Stephan1965: Eine Pushnachricht an andere Pushover-Empfänger (als der ursprünglich konfigurierte) schicken bei Verwendung nur eines Pushover-Devices. Aus dem Forum übernommen...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:msg}}{{Infobox Modul&lt;br /&gt;
|ModPurpose=Versenden von Nachrichten der Typen Audio, Text, Mail, Push, Light, Screen&lt;br /&gt;
|ModType=cmd&lt;br /&gt;
|ModForumArea=Automatisierung&lt;br /&gt;
|ModFTopic=39983&lt;br /&gt;
|ModCmdRef=MSG&lt;br /&gt;
|ModTechName=75_MSG.pm&lt;br /&gt;
|ModOwner={{Link2FU|1363|Loredo}}&lt;br /&gt;
}}&lt;br /&gt;
Der FHEM-Befehl [[msg]] kann dazu benutzt werden, Benachrichtigungen auszugeben.&lt;br /&gt;
&lt;br /&gt;
Der Befehl unterstützt die Nachrichtentypen&lt;br /&gt;
* text: Textnachrichten per Push- oder E-Mail-Dienst auf mobile Geräte verschicken&lt;br /&gt;
* audio: Sprachnachrichten und akustische Signale über Lautsprecher in der Wohnung ausgeben&lt;br /&gt;
* light: optische Signale durch Lampen in der Wohnung anzeigen&lt;br /&gt;
* screen: Nachrichten auf einem Bildschirm, etwa einem Fernsehgerät in der Wohnung, anzeigen&lt;br /&gt;
und kann an ein FHEM Gerät oder an eine eMail Adresse geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Weitere Details zu den Funktionen und zur Benutzung dieses Befehls finden sich im ersten Beitrag {{Link2Forum|Topic=39983|LinkText=dieser Diskussion}} im Forum.&lt;br /&gt;
&lt;br /&gt;
Der Befehl &#039;&#039;&#039;msg&#039;&#039;&#039; ersetzt ausserdem das vormals verfügbare Modul &#039;&#039;&#039;MSG&#039;&#039;&#039;. Benutzer des alten Moduls müssen ihre Devices auf &#039;&#039;&#039;MSGFile&#039;&#039;&#039; und/oder &#039;&#039;&#039;MSGMail&#039;&#039;&#039; umstellen; bitte dafür das Forenthema {{Link2Forum|Topic=43447|LinkText=&amp;quot;Benutzer von 75_MSG.pm: Aktion notwendig vor Update ab dem 04.11.2015&amp;quot;}} beachten!&lt;br /&gt;
&lt;br /&gt;
===Vorteil===&lt;br /&gt;
Der Hauptvorteil ist, dass man hier an zentraler Stelle definiert, wie Nachrichten verteilt und zugestellt werden sollen und sich später auch jederzeit zentral anpassen lasst.&lt;br /&gt;
Dazu muss man dann nicht mehr jedes einzelne Notify, DOIF oder was auch immer anpassen (beispielsweise weil sich der Empfänger geändert hat oder man nun statt dem einen FHEM Modul ein anderes Modul für die Zustellung der Nachricht verwenden möchte).&lt;br /&gt;
&lt;br /&gt;
Gesteuert wird das ganze über das setzen von Attributen. Zum einen am Device &amp;quot;globalMsg&amp;quot; für die Anpassung des Routing Verhaltens sowie einiger Attribute an einem beliebigen FHEM Device, welches die Adressierung des Bewohners oder der Bewohnergruppe ermöglicht. (Für die Profis: Alle globalen Attribute kann man auch per userattr an jedes beliebige Device hinzufügen; es erhält dort dann Vorrang).&lt;br /&gt;
&lt;br /&gt;
Es können auch globale Empfänger konfiguriert werden, dann wird die Angabe eines Empfängers bei den neuen Kommandos optional und sollte einmal ein Empfänger angegeben werden, der keine Kontaktmöglichkeit für Text, Audio oder Visual hinterlegt hat, gibt es einen Fallback auf die globalen Einstellungen (also quasi eine Art Catch-All). Im Falle eines Fallbacks gibt es einen entsprechenden Logeintrag und eine Textnachricht wird entsprechend mit einem Hinweis ergänzt.&lt;br /&gt;
&lt;br /&gt;
===Übertragungsmethoden===&lt;br /&gt;
====text====&lt;br /&gt;
Sendet eine Textnachricht per Push oder E-Mail. Je nach Priorität wird gepusht, gemailt oder beides. E-Mails werden mit der entsprechenden Priorität im Header markiert (dafür sind bei High und Low Prio HTML Mails zwingend erforderlich. Normale Mails werden als Nur-Text gesendet).&lt;br /&gt;
&lt;br /&gt;
Die Befehle, wie gepusht oder gemailt werden soll, können über Attribute am Device &amp;quot;globalMsg&amp;quot; für die Prioritäts-Kategorien &amp;quot;High&amp;quot;, &amp;quot;Normal&amp;quot; und &amp;quot;Low&amp;quot; angepasst werden. Standardmäßig wird für Push das Pushover Modul sowie für E-Mail system() per /usr/bin/mail verwendet.&lt;br /&gt;
&lt;br /&gt;
Die Sub-Typen &amp;quot;mail&amp;quot; und &amp;quot;push&amp;quot; können auch explizit für sich aufgerufen werden.&lt;br /&gt;
&lt;br /&gt;
====audio====&lt;br /&gt;
Gibt die Nachricht zunächst als Sprachnachricht weiter. Je nach Priorität wird die Nachricht auch per Text weitergeleitet. Auch kann optional die Anwesenheit des Bewohners berücksichtigt werden (follow me) und die Nachricht wird dann auch als Text weitergeleitet.&lt;br /&gt;
Außerdem kann über einen Dummy-Switcher gesteuert werden, ob Audio Nachrichten komplett wiedergegeben werden sollen, nur in einer gekürzten Fassung oder gerade überhaupt nicht (Emergency-Prio Nachrichten werden trotzdem immer wiedergegeben). Ich nutze das beispielsweise dafür, dass ich den Switcher auf &amp;quot;short&amp;quot; setze, wenn meine Wohnungstür offen steht, damit meine Nachbarn nicht meine gesamten Audio Benachrichtigungen zu hören kriegen  ;) &lt;br /&gt;
&lt;br /&gt;
Die Befehle zur Audio Wiedergabe können über Attribute am Device &amp;quot;globalMsg&amp;quot; für die Kategorien &amp;quot;Long&amp;quot;, &amp;quot;Short with Priority&amp;quot; und &amp;quot;Short&amp;quot; angepasst werden. Der Nachrichtentitel wird hier als |Titel| mit übergeben.&lt;br /&gt;
&lt;br /&gt;
Bei Verwendung von SONOSPLAYER gilt: Ist eine entsprechende Audio-Datei hinterlegt, wird diese dann vor der Nachricht mit eingebunden (Details siehe SONOS Doku). Ich nutze das, um meinen Audio-Nachrichten verschiedene Varianten von einem Gong voran zu stellen (z.B. wie im Flugzeug), damit sich die Bewohner bei einer plötzlichen Ansage nicht so erschrecken  8)  Definiert man den Audio-Titel zentral über das Attribut msgTitleAudio, statt ihn in jedem msg-Kommando explizit anzugeben, kann man später auch zentral ändern, welche Sounddatei den Nachrichten vorangestellt werden soll und muss dann nicht überall Anpassungen vornehmen.&lt;br /&gt;
Weitere Audio-Dateien können natürlich wie in der SONOS Doku beschrieben in den Text über |Dateiname| aufgenommen werden.&lt;br /&gt;
&lt;br /&gt;
====light====&lt;br /&gt;
Verwendet die Nachricht zunächst nur, um eine Leuchte anzusteuern (z.B. HUE). Je nach Priorität (hoch oder normal) kann die Leuchte anders geschaltet werden. Ist die Priorität hoch genug, wird die Nachricht zusätzlich auch per Audio wiedergegeben (dort greifen dann die Routing-Methoden für Audio). Auch hier kann optional die Anwesenheit des Bewohners berücksichtigt werden und die Nachricht alternativ als Text zugestellt werden, sofern die Priorität hoch genug ist.&lt;br /&gt;
&lt;br /&gt;
Die Befehle zur visuellen Wiedergabe können über Attribute am Device &amp;quot;globaMsgl&amp;quot; für die Kategorien &amp;quot;High&amp;quot; und &amp;quot;Normal&amp;quot; angepasst werden. Standardmäßig wird ein einfaches Kommando für HUE Geräte verwendet (select und lselect zum kurzen bzw. längeren blinken).&lt;br /&gt;
&lt;br /&gt;
====screen====&lt;br /&gt;
Ähnlich wie der Typ &amp;quot;light&amp;quot;. Standardmäßig wird ein Text an eine ENIGMA2 Box geschickt.&lt;br /&gt;
&lt;br /&gt;
===Verwendung===&lt;br /&gt;
&#039;&#039;&#039;Eine Liste der direkt unterstützten Module, ohne dass man diese händisch einbinden muss, kann man über den get-Befehl &amp;quot;routeCmd&amp;quot; beim Helfer-Device &amp;quot;globalMsg&amp;quot; (sofern es nicht umbenannt wurde) erhalten.&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;Dort kann man auch sehen, mit welcher Syntax ein bestimmtes Modul angesprochen wird und das ggf. als Vorlage für eine eigene Definition per msgCmd-Attribut nehmen.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Syntax ist sehr einfach gehalten:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;msg [&amp;lt;type&amp;gt;] [&amp;lt;@device|e-mail address&amp;gt;] [&amp;lt;priority&amp;gt;] [|&amp;lt;title&amp;gt;|] &amp;lt;message&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Type kann auch weggelassen werden und ist dann automatisch auf &amp;quot;text&amp;quot; gesetzt.&lt;br /&gt;
Wenn kein Device und keine E-Mail Adresse angegeben wurden, dann wird automatisch an das globale msgConfig Device (globalMsg) verschickt (ansonsten gibt es eine Fehlermeldung, wenn dort kein passendes msgContact-Attribut gefunden wurde).&lt;br /&gt;
&lt;br /&gt;
Auch können mehrere Typen oder Empfänger durch Komma getrennt angegeben werden (Und-Verknüpfung).&lt;br /&gt;
Eine Oder-Verknüpfung ist ebenso möglich und wird mit einer Pipe (|) zwischen Type und/oder Empfänger gemacht (Oder-Verknüpfung lässt sich auch mit Und-Verknüpfung kombinieren). Bei einer Oder-Verknüpfung wird nur zum nächsten Adressaten gesprungen, sofern für den vorigen keine der angegebenen Nachrichtentypen zugestellt werden konnte. Damit wird auch die automatische Eskalation zu einem anderen Nachrichten-Typ beeinflusst. Diese wird immer nur für den jeweils letzten Eintrag angewendet.&lt;br /&gt;
&lt;br /&gt;
Grundsätzlich sind alle Syntax-Angaben, die oben in eckigen Klammern (also []) stehen, optional. Es wird dann auf entsprechende Standardwerte zurückgegriffen, die entweder über Attribute am Device oder global gesetzt wurden. Ist auch global nichts vorhanden, wird auf interne Standardwerte zurückgegriffen (gilt natürlich nicht für ein Device, denn irgendwo muss man ja immer einen Empfänger angeben  ;) ).&lt;br /&gt;
&lt;br /&gt;
Der Wertebereich für Priorität orientiert sich dabei an der Pushover API mit -2 bis 2. Es kann jedoch grundsätzlich jeder beliebige Wert verwendet werden. Es ist dann Sache des FHEM Moduls, ob der Wertebereich richtig ist oder ob er dort automatisch begrenzt wird (sofern ein FHEM Modul von der Priorität Gebrauch macht, ansonsten wird sie in erster Linie für das Routing innnerhalb des msg-Befehls benutzt).&lt;br /&gt;
&lt;br /&gt;
Sowohl Und-Verknüpfung als auch Oder-Verknüpfung lassen sich ebenfalls in den Contact- und Recipient-Attributen anwenden. Somit bestehen eine Vielzahl von Möglichkeiten für die Adressierung von Empfängern und das Routing über bestimmte Nachrichtentypen.&lt;br /&gt;
&lt;br /&gt;
===Konfiguration===&lt;br /&gt;
&lt;br /&gt;
Sämtliche Einstellungen werden über Attribute vorgenommen. Dazu gibt es ein Konfigurationsdevice globalMsg in dem die Defaultwerte festgelegt werden. Alles andere passiert durch setzen von Attributen in den einzelnen Devices. Das Device globalMsg wird automatisch bei erster Verwendung von msg angelegt, sofern es nicht gefunden wurde.&lt;br /&gt;
Alternativ kann es mit &lt;br /&gt;
:&amp;lt;code&amp;gt;define globalMsg msgConfig &amp;lt;/code&amp;gt;&lt;br /&gt;
angelegt werden&lt;br /&gt;
&lt;br /&gt;
====Attribute für das Device &amp;quot;msgConfig&amp;quot;====&lt;br /&gt;
=====msgCmdAudio (Standard ohne Verwendung Attribut msgSwitcherDev)=====&lt;br /&gt;
Kommando für das &amp;quot;verschicken&amp;quot; von (langen) Audio Mitteilungen.&lt;br /&gt;
Entweder FHEM-Befehl oder in {} eingeschlossener Perl Befehl.&lt;br /&gt;
&lt;br /&gt;
Verfügbare Variablen:&lt;br /&gt;
*%DEVICE%&lt;br /&gt;
*%RECIPIENT% (abhängig davon, ob das Modul optional oder verpflichtend eine gesonderte Adressierung des Empfängers vorsieht)&lt;br /&gt;
*%TITLE%&lt;br /&gt;
*%MSG%&lt;br /&gt;
*%PRIORITY%&lt;br /&gt;
&lt;br /&gt;
=====msgCmdAudioShortPrio (nur in Verbindung mit msgSwitcherDev)=====&lt;br /&gt;
Kommando für das &amp;quot;verschicken&amp;quot; von Audio Mitteilungen mit Switcher Einstellung &amp;quot;short&amp;quot; und einer Prio höher/gleich msgFwPrioEmergencyAudio.&lt;br /&gt;
Entweder FHEM-Befehl oder in {} eingeschlossener Perl Befehl.&lt;br /&gt;
&lt;br /&gt;
Verfügbare Variablen:&lt;br /&gt;
*%DEVICE%&lt;br /&gt;
*%RECIPIENT% (abhängig davon, ob das Modul optional oder verpflichtend eine gesonderte Adressierung des Empfängers vorsieht)&lt;br /&gt;
*%TITLE%&lt;br /&gt;
*%MSG%&lt;br /&gt;
*%PRIORITY%&lt;br /&gt;
&lt;br /&gt;
=====msgCmdAudioShort (nur in Verbindung mit msgSwitcherDev)=====&lt;br /&gt;
Kommando für das &amp;quot;verschicken&amp;quot; von (gekürzten) Audio Mitteilungen mit Switcher Einstellung &amp;quot;short&amp;quot; unabhängig von der Priorität.&lt;br /&gt;
Entweder FHEM-Befehl oder in {} eingeschlossener Perl Befehl.&lt;br /&gt;
&lt;br /&gt;
Verfügbare Variablen:&lt;br /&gt;
*%DEVICE%&lt;br /&gt;
*%RECIPIENT% (abhängig davon, ob das Modul optional oder verpflichtend eine gesonderte Adressierung des Empfängers vorsieht)&lt;br /&gt;
*%TITLE%&lt;br /&gt;
*%MSG%&lt;br /&gt;
*%PRIORITY%&lt;br /&gt;
&lt;br /&gt;
=====msgCmd&amp;lt;TYPE&amp;gt;&amp;lt;PrioCat&amp;gt;=====&lt;br /&gt;
Kommando für den jeweilige Nachrichten-Typen und der entsprechenden Nachrichten-Prioritätskategorie&lt;br /&gt;
&lt;br /&gt;
=====msgFwPrioAbsent&amp;lt;TYPE&amp;gt;=====&lt;br /&gt;
Schwellenwert, ab dem Nachrichten diesen Typs bei kurzer Abwesenheit aller Bewohner per Text weitergeleitet werden sollen.&lt;br /&gt;
Voreinstellung: 0&lt;br /&gt;
&lt;br /&gt;
=====msgFwPrioEmergency&amp;lt;TYPE&amp;gt;=====&lt;br /&gt;
Schwellenwert, ab dem Nachrichten diesen Typs als Emergency Prio behandelt werden.&lt;br /&gt;
Diese Nachrichten werden immer wiedergegeben, unabhängig der Abwesenheit oder der Einstellung long/short am aSwitcherDev Dummy.&lt;br /&gt;
Voreinstellung: 2&lt;br /&gt;
&lt;br /&gt;
=====msgFwPrioGone&amp;lt;TYPE&amp;gt;=====&lt;br /&gt;
Schwellenwert, ab dem Nachrichten diesen Typs bei längerer Abwesenheit aller Bewohner per Text weitergeleitet werden sollen.&lt;br /&gt;
Voreinstellung: 1&lt;br /&gt;
&lt;br /&gt;
=====msgPriority&amp;lt;TYPE&amp;gt;=====&lt;br /&gt;
Standard Priorität für Nachrichten diesen Typs, sofern nicht in der Nachricht angegeben.&lt;br /&gt;
Voreinstellung: 0&lt;br /&gt;
&lt;br /&gt;
=====msgTitle&amp;lt;TYPE&amp;gt;&amp;lt;PrioCat&amp;gt;=====&lt;br /&gt;
Standard Betreff für Nachrichten diesen Typs, sofern in der Nachricht keiner angegeben wurde.&lt;br /&gt;
&lt;br /&gt;
=====msgResidentsDev=====&lt;br /&gt;
FHEM Gerätename, welcher für die Anwesenheit aller Bewohner verwendet wird. Auf dieses Device wird zurückgegriffen, sofern für das Empfänger-Device die entsprechenden Readings nicht vorhanden sind.&lt;br /&gt;
Bei Verwendung von ROOMMATE, GUEST oder RESIDENTS Devices als Empfänger wird dieses Attribut ignoriert.&lt;br /&gt;
Das in diesem Attribut angegebene Device muss die Readings &amp;quot;presence&amp;quot; und &amp;quot;state&amp;quot; haben. Es wird die Verwendung eines Devices vom FHEM Typ RESIDENTS empfohlen.&lt;br /&gt;
Über &amp;quot;presence&amp;quot; wird generell An/Abwesenheit bewertet. Hat &amp;quot;state&amp;quot; den Wert &amp;quot;gone&amp;quot;, wird eine längere Abwesenheit angenommen.&lt;br /&gt;
Für das Weiterleiten von Nachrichten bei längerer Abwesenheit muss die Nachrichten Priorität höher sein, als wenn die Bewohner nur übergangsweise abwesend sind.&lt;br /&gt;
Siehe auch entsprechende Readings msgFwPrioGone&amp;lt;TYPE&amp;gt; msgFwPrioAbsent&amp;lt;TYPE&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Readings Wertebereich:&lt;br /&gt;
presence: present|absent&lt;br /&gt;
state: gone|*&lt;br /&gt;
&lt;br /&gt;
=====msgSwitcherDev=====&lt;br /&gt;
FHEM Gerätename, welcher für die Beeinflussung der Länge von Audio Nachrichten verwendet werden soll.&lt;br /&gt;
Bei &amp;quot;off&amp;quot; findet auch keine visuelle Benachrichtigung mehr statt. Screen Nachrichten sind nicht betroffen.&lt;br /&gt;
Hier bietet sich ein Dummy Device wie dieses hier an:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;define HouseAnn dummy&lt;br /&gt;
attr HouseAnn alias Announcements&lt;br /&gt;
attr HouseAnn devStateIcon aktiv:general_an@90EE90 active:general_an@90EE90 lang:general_an@green:off aus:general_aus@red:long kurz:general_an@orange:long visuell:general_an@orange:long&lt;br /&gt;
attr HouseAnn event-on-change-reading state&lt;br /&gt;
attr HouseAnn eventMap active:aktiv long:lang short:kurz visual:visuell off:aus&lt;br /&gt;
attr HouseAnn group Automation&lt;br /&gt;
attr HouseAnn icon audio_volume_mid&lt;br /&gt;
attr HouseAnn room Apartment&lt;br /&gt;
attr HouseAnn setList state:lang,kurz,visuell,aus&lt;br /&gt;
attr HouseAnn webCmd state&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Attribute für alle FHEM Devices====&lt;br /&gt;
*Für die Verwendung der Fallback und Catchall-Zustellung von Nachrichten können diese Attribute im Device &amp;quot;global&amp;quot; gesetzt werden.&lt;br /&gt;
* Nahezu alle globalen Attribute können auch auf ein Device angewendet werden (Ausnahme: msgResidentsDev). Sie tauchen allerdings dort aus Gründen der Übersicht nicht standardmäßig auf. Man muss sie deshalb zuvor als userattr (entweder beim Device oder eben global) hinzufügen, damit man sie setzen kann.&lt;br /&gt;
&lt;br /&gt;
=====msgContact&amp;lt;TYPE&amp;gt; (zwingend für Nachrichten diesen Typs)=====&lt;br /&gt;
FHEM Gerätename, welcher zur Übermittlung von Nachrichten diesen Typs angesprochen werden soll.&lt;br /&gt;
Muss bei Audio Nachrichten ohne eigene Definition von msgCmdAudio* ein Gerät vom Typ SONOSPLAYER sein.Muss bei Screen Nachrichten ohne eigene Definition von msgCmdScreen* ein Gerät vom Typ ENIGMA2 sein.Muss bei Light Nachrichten ohne eigene Definition von msgCmdLight* ein Gerät vom Typ HUEDevice sein.&lt;br /&gt;
Muss bei Push Nachrichten ohne eigene Definition von msgCmdPush* ein Gerät vom Typ Pushover sein.&lt;br /&gt;
Muss bei Mail Nachrichten eine oder mehrere gültige E-Mail Adressen enthalten.&lt;br /&gt;
Bei FHEM Gerätenamen, über die mehrere Empfänger adressiert werden können, kann der Empfänger mittels Doppelpunkt getrennt vom FHEM Gerätenamen angegeben werden. Je nach Modul ist das optional oder verbindlich.&lt;br /&gt;
&lt;br /&gt;
=====msgRecipient&amp;lt;TYPE&amp;gt;=====&lt;br /&gt;
Leitet Nachrichten, die an dieses Gerät adressiert werden, auf ein anderes FHEM Device um.&lt;br /&gt;
Es wird dann der Wert von msgContact&amp;lt;TYPE&amp;gt; des anderen Gerätes für die Übermittlung der Nachricht verwendet.&lt;br /&gt;
Bei Nutzung des Attributs mit Typangabe werden nur Nachrichten des entsprechenden Typs umgeleitet.&lt;br /&gt;
Kombination von msgRecipient mit msgRecipient&amp;lt;TYPE&amp;gt; führt dazu, dass msgRecipient&amp;lt;TYPE&amp;gt; bevorzugt wird.&lt;br /&gt;
&lt;br /&gt;
===Follow-Me Funktion===&lt;br /&gt;
Sobald ein Device, an welches man eine Nachricht schickt, ein Reading &amp;quot;location&amp;quot; beinhaltet, wird geprüft, ob es für diese Lokation eine speziell hinterlegte Kontaktmöglichkeit gibt (z.B. also eine genaue SONOS Soundbox in dem Raum, wo der Bewohner sich gerade befindet).&lt;br /&gt;
&lt;br /&gt;
Gebraucht wird hierfür ein iBeacon zusammen mit dem GEOFANCY Modul. ich empfehle außerdem den Einsatz des ROOMMATE Moduls dazu, weil es die Handhabung der Location gleich mitbringt (Einrichtung siehe Wiki). Man kann aber auch jede andere Möglichkeit der Raumortung nutzen, es muss nur in einem Reading namens &amp;quot;location&amp;quot; enden.&lt;br /&gt;
&lt;br /&gt;
Über das Attribut &amp;quot;msgLocationDevs&amp;quot; können Devices mit Komma getrennt angegeben werden, welche dann für je einen Raum stehen und welche dann dort die msgContact* Attribute hinterlegt haben (Delegationen mittels msgRecipient* funktionieren dort auch).&lt;br /&gt;
Am einfachsten ist es also pro Raum ein Dummy-Device anzulegen und dieses dann unter dem globalen Attribut &amp;quot;msgLocationDevs&amp;quot; mit aufzuführen.&lt;br /&gt;
&lt;br /&gt;
Wichtig ist, dass dieses Dummy ein Attribut &amp;quot;msgLocationName&amp;quot; enthält, welches dann den exakt gleichen Wortlaut enthalten muss, wie auch im Reading &amp;quot;location&amp;quot; bei dem ROOMMATE Device (also genau der Lokationsname, den ihr z.B. in eurer Geofency.app angegeben habt). Zusätzlich dann eben noch die Type-Contacts. Hier ein Beispiel für Wohnzimmer und Schlafzimmer:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;define msgRoom_Living dummy&lt;br /&gt;
attr msgRoom_Living msgContactAudio Sonos_Living_Room&lt;br /&gt;
attr msgRoom_Living msgContactLight LR_Ceilling,LR_FloorLamp,LR_SofaCorner,LR_DinnerCorner&lt;br /&gt;
attr msgRoom_Living msgLocationName Living&lt;br /&gt;
attr msgRoom_Living userattr msgLocationName&lt;br /&gt;
&lt;br /&gt;
define msgRoom_Bedroom dummy&lt;br /&gt;
attr msgRoom_Bedroom msgContactAudio Sonos_Bedroom&lt;br /&gt;
attr msgRoom_Bedroom msgContactLight BR_FloorLamp&lt;br /&gt;
attr msgRoom_Bedroom msgLocationName Bedroom&lt;br /&gt;
attr msgRoom_Bedroom userattr msgLocationName&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beide Devices sind als globales Attribut verlinkt:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;attr globalMsg msgLocationDevs msgRoom_Living,msgRoom_Bedroom&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wenn ich nun einen msg-Audio Befehl absetze während ich im Schlafzimmer oder Wohnzimmer bin (Reading ist gleich &amp;quot;Living&amp;quot; oder &amp;quot;Bedroom&amp;quot;), wird die Nachricht auf demjenigen Gerät abgespielt, welches ich für den Raum hinterlegt habe (gleiches gilt für Light-Nachrichten). Wechsle ich den Raum und führe den Befehl nochmal aus, folgt mir auch die Wiedergabe der Nachricht&lt;br /&gt;
&lt;br /&gt;
===Beispiele===&lt;br /&gt;
Bei der ersten Verwendung von msg wird das Konfigurationsdevice globalMsg angelegt. Es kann aber auch vorher manuell angelegt werden.&lt;br /&gt;
&lt;br /&gt;
====Pushover====&lt;br /&gt;
Um mit msg Pushovernachrichten zu versenden ist vorher die Konfiguration eines [[Pushover|Pushoverdevices]] notwendig. Dieses wird dann mit &lt;br /&gt;
:&amp;lt;code&amp;gt;attr globalMsg msgContactPush &amp;lt;Pushoverdevice&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
dem globalMsg als Standardpushoverdevice hinzugefügt.&lt;br /&gt;
&lt;br /&gt;
anschließend kann der Befehl &lt;br /&gt;
:&amp;lt;code&amp;gt;msg test&amp;lt;/code&amp;gt;&lt;br /&gt;
verwendet werden. Folgendes passiert:&lt;br /&gt;
Das msg-Modul erkennt dass eine Nachricht verschickt werden soll. Da kein Übertragungsweg angegeben ist, wird der Standardweg genommen, nämlich text. Bei text wird eine Mail und ein Push verschickt. Da Mail nicht näher definiert ist, wird nur der Push genommen. Da bei Push kein expliziter Empfänger angegeben ist, wird der Empfänger aus dem Attribut von msgContactPush genommen.&lt;br /&gt;
&lt;br /&gt;
Alternativ kann auch direkt ein Push an einen definiertes Pushoverdevice gesendet werden:&lt;br /&gt;
:&amp;lt;code&amp;gt;msg push @&amp;lt;Pushoverdevice&amp;gt; 1 |FHEM| test&amp;lt;/code&amp;gt;&lt;br /&gt;
hier wird eine Pushnachricht ein ein definiertes Pushoverdivce mit der Priorität 1, dem Titel FHEM und der Nachricht test gesendet&lt;br /&gt;
&lt;br /&gt;
Bei &#039;&#039;&#039;mehreren&#039;&#039;&#039; Pushover Empfängern muss man nicht mehr für jeden Empfänger ein einzelnes Pushover-Device anlegen. Es genügt auch ein Gerät, man kann die Empfänger dann einfach als Sub-Empfänger ansprechen:&lt;br /&gt;
:&amp;lt;code&amp;gt;msg push @PushoverDevice:uQiRzpo4DXghDmr9QzzfQu27cmVRsG Dies ist eine Nachricht&amp;lt;/code&amp;gt;&lt;br /&gt;
Wie man sieht kann man einfach den User-Identifier (oder natürlich Group-Identifier) anhängen und adressiert somit einen alternativen Empfänger. Der im define des Device &amp;quot;PushoverDevice&amp;quot; angegebene User ist dann nur noch der Default-Empfänger.&lt;br /&gt;
Man kann auch an ein spezielles Endgerät adressieren:&lt;br /&gt;
:&amp;lt;code&amp;gt;msg push @PushoverDevice:uQiRzpo4DXghDmr9QzzfQu27cmVRsG:iPhone Dies ist eine Nachricht, die nur an das iPhone geschickt wird.&amp;lt;/code&amp;gt;&lt;br /&gt;
Natürlich kann man das auch in ein msgContactPush Attribut schreiben...&lt;br /&gt;
:&amp;lt;code&amp;gt;attr myDevice msgContactPush PushoverDevice:uQiRzpo4DXghDmr9QzzfQu27cmVRsG&amp;lt;/code&amp;gt;&lt;br /&gt;
...und anschließend so wie gewohnt über die Device-Adressierung verschicken:&lt;br /&gt;
:&amp;lt;code&amp;gt;msg push @myDevice Nachrichtentext&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Telegram====&lt;br /&gt;
Der Versand von Nachrichten über Telegram kann anlog zu Pushover verwendet werden. Zunächst muss auch hier ein [[TelegramBot|Telegram-Device]] angelegt werden.&lt;br /&gt;
&lt;br /&gt;
Anschließend kann dieses in globalMsg als Standardevice festgelgt werden:&lt;br /&gt;
:&amp;lt;code&amp;gt;attr globalMsg msgContactPush &amp;lt;Telegramdevice&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
anschließend kann der Befehl &lt;br /&gt;
:&amp;lt;code&amp;gt;msg test&amp;lt;/code&amp;gt;&lt;br /&gt;
verwendet werden. Folgendes passiert:&lt;br /&gt;
&lt;br /&gt;
Alternativ kann auch direkt ein Push an einen definiertes Telegramdevice gesendet werden:&lt;br /&gt;
:&amp;lt;code&amp;gt;msg push @&amp;lt;Telegramdevice&amp;gt;  test&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im vergleich zu Pushover werden Titel und Priorität ignoriert, da Telegram damit nicht umgehen kann.&lt;br /&gt;
&lt;br /&gt;
==== msg in Verbindung mit ROOMMATES====&lt;br /&gt;
Werden ROOMMates verwendet dann können jedem ROOMMATE Kontaktdevices hinzugefügt werden.&lt;br /&gt;
Analog zu diesem Beispiel kann msg nicht nur bei ROOMMATES sondern bei jedem beliebigen FHEM-Device angewendet werden.&lt;br /&gt;
:&amp;lt;code&amp;gt;attr &amp;lt;ROOMMATEDEVICE&amp;gt; msgContactPush &amp;lt;Pushdevice(s)&amp;gt; &amp;lt;/code&amp;gt;&lt;br /&gt;
oder konkret:&lt;br /&gt;
:&amp;lt;code&amp;gt;attr rr_Michael msgContactPush PushoverMichael&amp;lt;/code&amp;gt;&lt;br /&gt;
bzw. für Telegram:&lt;br /&gt;
:&amp;lt;code&amp;gt;attr rr_Michael msgContactPush Telegram&amp;lt;/code&amp;gt;&lt;br /&gt;
bzw. für beide:&lt;br /&gt;
:&amp;lt;code&amp;gt;attr rr_Michael msgContactPush Telegram,PushoverMichael&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Somit kann ich dann ganz einfach über &lt;br /&gt;
:&amp;lt;code&amp;gt; msg push @rr_Michael |FHEM| Dies ist eine Testnachricht für Michael!&amp;lt;/code&amp;gt;&lt;br /&gt;
Michael eine Pushnachricht über das in dem Attribut für ihn definierte Device schicken.&lt;br /&gt;
Sollte sich der ROOMMATE nun dazu entschließen Pushover nicht mehr zu verwenden, so muss nicht an jeder Stelle im Code wo ein Push abgesetzt wird das Device geändert werden, sondern nur an einer Zentralen Stellen, nämlich beim ROOMMATE durch ändern des Attributes.&lt;br /&gt;
&lt;br /&gt;
==== msg in Verbindung mit RESIDENTS====&lt;br /&gt;
Möchte man dynamisch Nachrichten an z.B. alle Personen schicken, die gerade zuhause sind, dann kann man sich das RESIDENTS-Modul und die darin vorhandenen Readings zu nutze machen. Alle Anwesenden Personen stehen in dem Reading residentsHomeDevs bzw. residentsTotalRoommatesPresentDevs wenn man zwischen ROOMMATES und GUESTs unterscheidet. Hier sollte man immer das Dev-Reading nutzen, da dort das ROOMMATE-Device angesprochen wird und nicht ggf. ein Alias.&lt;br /&gt;
Eine Nachricht an alle anwesenden Personen könnte als Beispielsweise so verschickt werden:&lt;br /&gt;
:&amp;lt;code&amp;gt;msg [msg-typ] @[r&amp;lt;resident-Device&amp;gt;:&amp;lt;Reading des Resident-Devices&amp;gt;] Du bist zuhause&amp;lt;/code&amp;gt;&lt;br /&gt;
oder konkret&lt;br /&gt;
:&amp;lt;code&amp;gt;msg push @[rgr_Bewohner:residentsHomeDevs] Du bist zuhause&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es gilt die normale Syntax von MSG. Typ ist beispielsweise Optional und ein Titel kann auch mitgegeben werden.&lt;br /&gt;
Das Routing des MSG-Moduls Teil dann das Reading in die einzelnen Empfänger auf und schickt in diesem Fall eine Push-Nachricht an die entsprechenden Personen&lt;br /&gt;
&lt;br /&gt;
==== Lautstärkeanpassung bei Audionachrichten====&lt;br /&gt;
Um die Lautstärke einer Audioausgabe beim Absetzen des MSG-Befehls anzupassen (wenn diese von den Defaultwerten des msg-Schemas abweichen soll) kann am Ende der Nachricht ein JSON mit Variablen angehangen werden, welche vom Schema (siehe &amp;quot;get globalMsg routeCmd&amp;quot;) unterstützt wird oder welche du selbst in einem msgCmd* Attribut verwendest. Für eine Sonos-Nachricht sieht das dann z.B. so aus:&lt;br /&gt;
:&amp;lt;code&amp;gt; msg audio @Sonos_Bedroom |Hint| Gute Nacht! O[{&amp;quot;VOLUME&amp;quot;:&amp;quot;8&amp;quot;}] &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Hinweis| Standardmäßig wird bei angegebenem Betreff nach einer Audiodatei mit dem Namen des Betreffs (hier: Hint.mp3) in der Sonosfreigabe (bsp.: SonosSpeak) gesucht und diese vor der Nachricht abgespielt. Ist die Datei nicht vorhanden, dann kommt es zu 2 Fehlermeldungen vom Sonos-Modul im Log. Die anschließende Sprachnachricht wird aber trotzdem abgespielt.}}&lt;br /&gt;
&lt;br /&gt;
====Jabber====&lt;br /&gt;
Der Versand der Nachrichten über Jabber ist ähnlich dem Versand über Telegram.&lt;br /&gt;
Natürlich muss auch hier zunächst das [[Jabber|Jabber-Device]] eingerichtet werden.&lt;br /&gt;
&lt;br /&gt;
Im msgConfig ist folgendes Attribut zu ergänzen:&lt;br /&gt;
:&amp;lt;code&amp;gt;attr globalMsg msgContactPush jabberdevice:jabberkontact&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Um Nachrichten zu versenden, reicht nun&lt;br /&gt;
:&amp;lt;code&amp;gt;msg test&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sollen Nachrichten an eine Konferenz/an einem Raum gesendet werden, muss nur der Parameter &#039;&#039;Jabber_MTYPE=muc&#039;&#039; mit angegeben werden.&lt;br /&gt;
:&amp;lt;code&amp;gt;msg Jabber_MTYPE=muc test&amp;lt;/code&amp;gt;&lt;br /&gt;
bzw. - sollte msgContactPush nicht definiert sein - ganz ausgeschrieben:&lt;br /&gt;
:&amp;lt;code&amp;gt;msg push Jabber_MTYPE=muc @JabberClient:raum@conference.jabber.xy Das ist eine Nachricht&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ist ein standardmäßiger Versand an einen Raum gewünscht, kann dieser Parameter auch im Device &#039;&#039;globalMsg&#039;&#039; als Attribut &#039;&#039;msgParamsPush&#039;&#039; hinterlegt werden&lt;br /&gt;
:&amp;lt;code&amp;gt;attr globalMsg msgParamsPush Jabber_MTYPE=muc&amp;lt;/code&amp;gt;&lt;br /&gt;
Danach reicht dann wieder das bekannte&lt;br /&gt;
:&amp;lt;code&amp;gt;msg test&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Hinweis| Weitere Beispiele folgen.}}&lt;/div&gt;</summary>
		<author><name>Stephan1965</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=DOIF/Zeitspanne_zwischen_zwei_Terminen_schalten&amp;diff=17633</id>
		<title>DOIF/Zeitspanne zwischen zwei Terminen schalten</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=DOIF/Zeitspanne_zwischen_zwei_Terminen_schalten&amp;diff=17633"/>
		<updated>2016-12-01T08:10:02Z</updated>

		<summary type="html">&lt;p&gt;Stephan1965: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Randnotiz|RNTyp=g|RNText=Eine aktuelle DOIF-Version ist erforderlich}}&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:Terminspanne_datetimepicker.png|mini|600px|right|]]&lt;br /&gt;
[[Datei:Terminspanne_generisch.png|mini|600px|right|]]&lt;br /&gt;
Die hier gezeigten DOIF schalten eine Zeitspanne zwischen zwei Terminen.&lt;br /&gt;
&lt;br /&gt;
== Zeitspanne zwischen zwei Terminen mit DateTimePicker ==&lt;br /&gt;
&lt;br /&gt;
=== Voraussetzung ===&lt;br /&gt;
Das erste DOIF nutzt das DateTimePicker-Widget. Dieses Widget muss vor der Nutzung des DOIF installiert werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Installation ist hier beschrieben: [https://github.com/mhop/fhem-mirror/tree/master/fhem/contrib/Widgets/DateTimePicker DateTimePicker: Download und Installation]&lt;br /&gt;
&lt;br /&gt;
===Beschreibung===&lt;br /&gt;
{{Randnotiz|RNText=Hinweis: Verwendung von&lt;br /&gt;
* &#039;&#039;&#039;DateTimePicker&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;readingList&#039;&#039;&#039;, &#039;&#039;&#039;setList&#039;&#039;&#039;, &#039;&#039;&#039;webCmd&#039;&#039;&#039;, &#039;&#039;&#039;cmdState&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;$SELF&#039;&#039;&#039; für den Eigennamen des DOIF&lt;br /&gt;
* &#039;&#039;&#039;P_&#039;&#039;&#039; für persistente Readings&lt;br /&gt;
* &#039;&#039;&#039;Defaultwert&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;userReadings&#039;&#039;&#039; zur Formatierung der Widgetdaten&lt;br /&gt;
* &#039;&#039;&#039;[&amp;quot;^global$:^MODIFIED $SELF$&amp;quot;]&#039;&#039;&#039; damit nach einem Modify DOIF in Status 2 schaltet&lt;br /&gt;
}}&lt;br /&gt;
Das DOIF schaltet zwischen den angegebenen Terminen den Status auf 1, ausserhalb der Termispanne ist der Status 0.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Bedingung des DOIF wird täglich zur angegebenen Uhrzeit geprüft und es wird die vom Widget erzeugte Datumszeichenkette mit der Zeichenkette des aktuellen Datums verglichen. Wenn die Zeichenketten identisch sind wird der entsprechende Zweig geschaltet und ein Logeintrag erzeugt.&amp;lt;br&amp;gt;&lt;br /&gt;
In den userReadings wird die Uhrzeit extrahiert und es wird das Datum extrahiert und in das passende Vergleichsformat gebracht. Das Widget liefert Tag und Monat mit zweistellig und ergänzt einstellige Angaben mit einer führenden Null. Der aktuelle Tag &#039;&#039;&#039;$mday&#039;&#039;&#039; und der Monat &#039;&#039;&#039;$month&#039;&#039;&#039; werden ohne führende Null geliefert, daher ist eine Formatanpassung notwendig&lt;br /&gt;
====Readings====&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[[$SELF:P_bhm,&amp;quot;00:00&amp;quot;]]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; enthält die Beginnzeit, mit Vorgabe&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[[$SELF:P_ehm,&amp;quot;00:00&amp;quot;]]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; enthält die Endzeit, mit Vorgabe&lt;br /&gt;
* &#039;&#039;&#039;[?$SELF:P_dbegin]&#039;&#039;&#039; enthält das Beginndatum&lt;br /&gt;
* &#039;&#039;&#039;[?$SELF:P_ebegin]&#039;&#039;&#039; enthält das Enddatum&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;$year-$month-$mday&amp;quot;&#039;&#039;&#039; enthält das aktuelle Datum&lt;br /&gt;
* &#039;&#039;&#039;P_begin&#039;&#039;&#039; enthält die vom Widget gelieferte Zeichenkette für Startdatum und Startuhrzeit&lt;br /&gt;
* &#039;&#039;&#039;P_ende&#039;&#039;&#039; enthält die vom Widget gelieferte Zeichenkette für Enddatum und Enduhrzeit&lt;br /&gt;
&lt;br /&gt;
===Definition===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
([[$SELF:P_bhm,&amp;quot;00:00&amp;quot;]] and [?$SELF:P_dbegin] eq &amp;quot;$year-$month-$mday&amp;quot;)\&lt;br /&gt;
   ({Log 1, &amp;quot;Alarmstart&amp;quot;})\&lt;br /&gt;
DOELSEIF ([[$SELF:P_ehm,&amp;quot;00:00&amp;quot;]] and [?$SELF:P_dende] eq &amp;quot;$year-$month-$mday&amp;quot; or [&amp;quot;^global$:^MODIFIED $SELF$&amp;quot;])\&lt;br /&gt;
   ({Log 1, &amp;quot;Alarmstop&amp;quot;})&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===wesentliche Attribute===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmdState 1|0&lt;br /&gt;
readingList P_begin P_ende&lt;br /&gt;
setList P_begin:datetime,theme:&amp;quot;default&amp;quot;,step:5,inline:true P_ende:datetime,theme:&amp;quot;default&amp;quot;,step:5,inline:true&lt;br /&gt;
userReadings P_bhm:P_begin.* {\&lt;br /&gt;
    my ($d,$m,$y,$hm) = split(/\.| /,ReadingsVal($name,&amp;quot;P_begin&amp;quot;,&amp;quot;none&amp;quot;));;\&lt;br /&gt;
    return $hm;;\&lt;br /&gt;
},\&lt;br /&gt;
P_dbegin:P_begin.* {\&lt;br /&gt;
    my ($d,$m,$y,$hm) = split(/\.| /,ReadingsVal($name,&amp;quot;P_begin&amp;quot;,&amp;quot;none&amp;quot;));;\&lt;br /&gt;
    return $y.&amp;quot;-&amp;quot;.int($m).&amp;quot;-&amp;quot;.int($d);;\&lt;br /&gt;
},\&lt;br /&gt;
P_ehm:P_ende.* {\&lt;br /&gt;
    my ($d,$m,$y,$hm) = split(/\.| /,ReadingsVal($name,&amp;quot;P_ende&amp;quot;,&amp;quot;none&amp;quot;));;\&lt;br /&gt;
    return $hm;;\&lt;br /&gt;
},\&lt;br /&gt;
P_dende:P_ende.* {\&lt;br /&gt;
    my ($d,$m,$y,$hm) = split(/\.| /,ReadingsVal($name,&amp;quot;P_ende&amp;quot;,&amp;quot;none&amp;quot;));;\&lt;br /&gt;
    return $y.&amp;quot;-&amp;quot;.int($m).&amp;quot;-&amp;quot;.int($d);;\&lt;br /&gt;
}\&lt;br /&gt;
&lt;br /&gt;
webCmd P_begin:P_ende&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Laborgruppe zum Import mit [[DOIF/Import von Code Snippets|Raw definition]]===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define datumsbereich_Labor1 DOIF ([[$SELF:P_bhm,&amp;quot;00:00&amp;quot;]] and [?$SELF:P_dbegin] eq &amp;quot;$year-$month-$mday&amp;quot;)\&lt;br /&gt;
   ({Log 1, &amp;quot;Alarmstart&amp;quot;})\&lt;br /&gt;
DOELSEIF ([[$SELF:P_ehm,&amp;quot;00:00&amp;quot;]] and [?$SELF:P_dende] eq &amp;quot;$year-$month-$mday&amp;quot; or [&amp;quot;^global$:^MODIFIED $SELF$&amp;quot;])\&lt;br /&gt;
   ({Log 1, &amp;quot;Alarmstop&amp;quot;})&lt;br /&gt;
attr datumsbereich_Labor1 alias Terminspanne über Jahre,Monate und Tage&lt;br /&gt;
attr datumsbereich_Labor1 cmdState 1|0&lt;br /&gt;
attr datumsbereich_Labor1 group Labor: Datumsbereich von HH:MM dd.mm.yyyy bis HH:MM dd.mm.yyyy&lt;br /&gt;
attr datumsbereich_Labor1 icon time_calendar&lt;br /&gt;
attr datumsbereich_Labor1 readingList P_begin P_ende&lt;br /&gt;
attr datumsbereich_Labor1 room DOIF_Labor&lt;br /&gt;
attr datumsbereich_Labor1 setList P_begin:datetime,theme:&amp;quot;default&amp;quot;,step:5,inline:true P_ende:datetime,theme:&amp;quot;default&amp;quot;,step:5,inline:true&lt;br /&gt;
attr datumsbereich_Labor1 userReadings P_bhm:P_begin.* {\&lt;br /&gt;
    my ($d,$m,$y,$hm) = split(/\.| /,ReadingsVal($name,&amp;quot;P_begin&amp;quot;,&amp;quot;none&amp;quot;));;\&lt;br /&gt;
    return $hm;;\&lt;br /&gt;
},\&lt;br /&gt;
P_dbegin:P_begin.* {\&lt;br /&gt;
    my ($d,$m,$y,$hm) = split(/\.| /,ReadingsVal($name,&amp;quot;P_begin&amp;quot;,&amp;quot;none&amp;quot;));;\&lt;br /&gt;
    return $y.&amp;quot;-&amp;quot;.int($m).&amp;quot;-&amp;quot;.int($d);;\&lt;br /&gt;
},\&lt;br /&gt;
P_ehm:P_ende.* {\&lt;br /&gt;
    my ($d,$m,$y,$hm) = split(/\.| /,ReadingsVal($name,&amp;quot;P_ende&amp;quot;,&amp;quot;none&amp;quot;));;\&lt;br /&gt;
    return $hm;;\&lt;br /&gt;
},\&lt;br /&gt;
P_dende:P_ende.* {\&lt;br /&gt;
    my ($d,$m,$y,$hm) = split(/\.| /,ReadingsVal($name,&amp;quot;P_ende&amp;quot;,&amp;quot;none&amp;quot;));;\&lt;br /&gt;
    return $y.&amp;quot;-&amp;quot;.int($m).&amp;quot;-&amp;quot;.int($d);;\&lt;br /&gt;
}\&lt;br /&gt;
&lt;br /&gt;
attr datumsbereich_Labor1 webCmd P_begin:P_ende&lt;br /&gt;
attr datumsbereich_Labor1 widgetOverride setList:textField-long&lt;br /&gt;
&lt;br /&gt;
save&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Zeitspanne zwischen zwei Terminen ==&lt;br /&gt;
===Beschreibung===&lt;br /&gt;
{{Randnotiz|RNText=Hinweis: Verwendung von&lt;br /&gt;
* &#039;&#039;&#039;readingList&#039;&#039;&#039;, &#039;&#039;&#039;setList&#039;&#039;&#039;, &#039;&#039;&#039;webCmd&#039;&#039;&#039;, &#039;&#039;&#039;cmdState&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;$SELF&#039;&#039;&#039; und &#039;&#039;&#039;P_&#039;&#039;&#039; für persistente Readings&lt;br /&gt;
* &#039;&#039;&#039;userReadings&#039;&#039;&#039; zur Formatierung der Widgetdaten&lt;br /&gt;
* &#039;&#039;&#039;[&amp;quot;^global$:^MODIFIED $SELF$&amp;quot;]&#039;&#039;&#039; damit nach einem Modify DOIF in Status 2 schaltet&lt;br /&gt;
}}&lt;br /&gt;
Das DOIF schaltet zwischen den angegebenen Terminen den Status auf 1, ausserhalb der Termispanne ist der Status 0.&lt;br /&gt;
Die Bedingung des DOIF wird täglich zur angegebenen Uhrzeit geprüft und es wird die vom Widget erzeugte Datumszeichenkette mit der Zeichenkette des aktuellen Datums verglichen. Wenn die Zeichenketten identisch sind wird der entsprechende Zweig geschaltet und ein Logeintrag erzeugt.&amp;lt;br&amp;gt;&lt;br /&gt;
In den userReadings werden Tag &#039;&#039;&#039;$mday&#039;&#039;&#039; und der Monat &#039;&#039;&#039;$month&#039;&#039;&#039; und Jahr &#039;&#039;&#039;$year&#039;&#039;&#039; in das passende Vergleichsformat gebracht.&amp;lt;br&amp;gt;&lt;br /&gt;
Es wird nicht geprüft, ob das angegebene Datum existiert. Es ist z.B. möglich, den 31.2.2017 einzustellen.&lt;br /&gt;
&lt;br /&gt;
====Readings====&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[[$SELF:P_bhm,&amp;quot;00:00&amp;quot;]]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; enthält die Startzeit, mit Vorgabe&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[[$SELF:P_ehm,&amp;quot;00:00&amp;quot;]]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; enthält die Endzeit, mit Vorgabe&lt;br /&gt;
* &#039;&#039;&#039;[?$SELF:P_dbegin]&#039;&#039;&#039; enthält das Startdatum&lt;br /&gt;
* &#039;&#039;&#039;[?$SELF:P_ebegin]&#039;&#039;&#039; enthält das Enddatum&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;$year-$month-$mday&amp;quot;&#039;&#039;&#039; enthält das aktuelle Datum&lt;br /&gt;
* &#039;&#039;&#039;P_bday&#039;&#039;&#039; enthält den gewählten Starttag&lt;br /&gt;
* &#039;&#039;&#039;P_bmon&#039;&#039;&#039; enthält den gewählten Startmonat&lt;br /&gt;
* &#039;&#039;&#039;P_byear&#039;&#039;&#039; enthält das gewählte Startjahr&lt;br /&gt;
* &#039;&#039;&#039;P_eday&#039;&#039;&#039; enthält den gewählten Endtag&lt;br /&gt;
* &#039;&#039;&#039;P_emon&#039;&#039;&#039; enthält den gewählten Endmonat&lt;br /&gt;
* &#039;&#039;&#039;P_eyear&#039;&#039;&#039; enthält das gewählte Endjahr&lt;br /&gt;
&lt;br /&gt;
===Definition===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
([[$SELF:P_bhm,&amp;quot;00:00&amp;quot;]] and [?$SELF:P_dbegin] eq &amp;quot;$year-$month-$mday&amp;quot;)\&lt;br /&gt;
   ({Log 1, &amp;quot;Alarmstart&amp;quot;})\&lt;br /&gt;
DOELSEIF ([[$SELF:P_ehm,&amp;quot;00:00&amp;quot;]] and [?$SELF:P_dende] eq &amp;quot;$year-$month-$mday&amp;quot; or [&amp;quot;^global$:^MODIFIED $SELF$&amp;quot;])\&lt;br /&gt;
   ({Log 1, &amp;quot;Alarmstop&amp;quot;})&amp;lt;/pre&amp;gt;&lt;br /&gt;
===wesentliche Attribute===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmdState 1|0&lt;br /&gt;
readingList P_bhm P_bday P_bmon P_byear P_ehm P_eday P_emon P_eyear&lt;br /&gt;
setList P_bhm:time P_bday:1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31 P_bmon:1,2,3,4,5,6,7,8,9,10,11,12 P_byear:2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026 P_ehm:time P_eday:1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31 P_emon:1,2,3,4,5,6,7,8,9,10,11,12 P_eyear:2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026&lt;br /&gt;
userReadings P_dbegin:P_b(year|mon|day).* {\&lt;br /&gt;
   return ReadingsVal($name,&amp;quot;P_byear&amp;quot;,&amp;quot;none&amp;quot;).&amp;quot;-&amp;quot;.ReadingsVal($name,&amp;quot;P_bmon&amp;quot;,&amp;quot;none&amp;quot;).&amp;quot;-&amp;quot;.ReadingsVal($name,&amp;quot;P_bday&amp;quot;,&amp;quot;none&amp;quot;);;\&lt;br /&gt;
}, \&lt;br /&gt;
P_dende:P_e(year|mon|day).* {\&lt;br /&gt;
return ReadingsVal($name,&amp;quot;P_eyear&amp;quot;,&amp;quot;none&amp;quot;).&amp;quot;-&amp;quot;.ReadingsVal($name,&amp;quot;P_emon&amp;quot;,&amp;quot;none&amp;quot;).&amp;quot;-&amp;quot;.ReadingsVal($name,&amp;quot;P_eday&amp;quot;,&amp;quot;none&amp;quot;);;\&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Laborgruppe zum Import mit [[DOIF/Import von Code Snippets|Raw definition]]===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define datumsbereich_Labor0 DOIF ([[$SELF:P_bhm,&amp;quot;00:00&amp;quot;]|8] and [?$SELF:P_dbegin] eq &amp;quot;$year-$month-$mday&amp;quot;)\&lt;br /&gt;
   ({Log 1, &amp;quot;Alarmstart&amp;quot;})\&lt;br /&gt;
DOELSEIF ([[$SELF:P_ehm,&amp;quot;00:00&amp;quot;]] and [?$SELF:P_dende] eq &amp;quot;$year-$month-$mday&amp;quot; or [&amp;quot;^global$:^MODIFIED $SELF$&amp;quot;])\&lt;br /&gt;
   ({Log 1, &amp;quot;Alarmstop&amp;quot;})&lt;br /&gt;
attr datumsbereich_Labor0 alias Terminspanne&lt;br /&gt;
attr datumsbereich_Labor0 cmdState 1|0&lt;br /&gt;
attr datumsbereich_Labor0 group Labor: Datumsbereich von HH:MM dd.mm.yyyy bis HH:MM dd.mm.yyyy ohne datetimepicker Widget&lt;br /&gt;
attr datumsbereich_Labor0 icon time_calendar&lt;br /&gt;
attr datumsbereich_Labor0 readingList P_bhm P_bday P_bmon P_byear P_ehm P_eday P_emon P_eyear&lt;br /&gt;
attr datumsbereich_Labor0 room DOIF_Labor&lt;br /&gt;
attr datumsbereich_Labor0 setList P_bhm:time P_bday:1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31 P_bmon:1,2,3,4,5,6,7,8,9,10,11,12 P_byear:2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026 P_ehm:time P_eday:1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31 P_emon:1,2,3,4,5,6,7,8,9,10,11,12 P_eyear:2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026&lt;br /&gt;
attr datumsbereich_Labor0 userReadings P_dbegin:P_b(year|mon|day).* {\&lt;br /&gt;
   return ReadingsVal($name,&amp;quot;P_byear&amp;quot;,&amp;quot;none&amp;quot;).&amp;quot;-&amp;quot;.ReadingsVal($name,&amp;quot;P_bmon&amp;quot;,&amp;quot;none&amp;quot;).&amp;quot;-&amp;quot;.ReadingsVal($name,&amp;quot;P_bday&amp;quot;,&amp;quot;none&amp;quot;);;\&lt;br /&gt;
}, \&lt;br /&gt;
P_dende:P_e(year|mon|day).* {\&lt;br /&gt;
return ReadingsVal($name,&amp;quot;P_eyear&amp;quot;,&amp;quot;none&amp;quot;).&amp;quot;-&amp;quot;.ReadingsVal($name,&amp;quot;P_emon&amp;quot;,&amp;quot;none&amp;quot;).&amp;quot;-&amp;quot;.ReadingsVal($name,&amp;quot;P_eday&amp;quot;,&amp;quot;none&amp;quot;);;\&lt;br /&gt;
}&lt;br /&gt;
attr datumsbereich_Labor0 webCmd P_bhm:P_bday:P_bmon:P_byear:P_ehm:P_eday:P_emon:P_eyear&lt;br /&gt;
attr datumsbereich_Labor0 widgetOverride setList:textField-long&lt;br /&gt;
&lt;br /&gt;
save&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [[DOIF]]&lt;br /&gt;
* [[DOIF/Labor - ausführbare, praxisnahe Beispiele als Problemlösung zum Experimetieren]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Code Snippets]]&lt;/div&gt;</summary>
		<author><name>Stephan1965</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=HM-CC-RT-DN_Funk-Heizk%C3%B6rperthermostat&amp;diff=16959</id>
		<title>HM-CC-RT-DN Funk-Heizkörperthermostat</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=HM-CC-RT-DN_Funk-Heizk%C3%B6rperthermostat&amp;diff=16959"/>
		<updated>2016-11-01T13:25:28Z</updated>

		<summary type="html">&lt;p&gt;Stephan1965: /* Channel (Kanal) 03 _WindowRec */ Bei dem Peer-Befehl fehlte das letzte SET. Und erst muss der Fenstersensor gedrückt werden und dann der FHEM Befehl abgesetzt werden.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Hardware&lt;br /&gt;
|Bild=HM-CC-RT-DN.jpg&lt;br /&gt;
|Bildbeschreibung=HM-CC-RT-DN an Heizkörper montiert&lt;br /&gt;
|HWProtocol=[[HomeMatic]]&lt;br /&gt;
|HWType=[[HomeMatic Type Thermostat|thermostat]]&lt;br /&gt;
|HWCategory=[[:Kategorie:Heizungsventile|Heizungsventile]]&lt;br /&gt;
|HWComm=868 MHz&lt;br /&gt;
|HWChannels=6&lt;br /&gt;
|HWVoltage=3&amp;amp;nbsp;V&lt;br /&gt;
|HWPowerConsumption=180&amp;amp;nbsp;mA&lt;br /&gt;
|HWPoweredBy=2x LR6/Mignon/AA&lt;br /&gt;
|HWSize=54x65x93 mm (BxHxT)&lt;br /&gt;
|HWDeviceFHEM=[[CUL_HM]]&lt;br /&gt;
&amp;lt;!-- |ModOwner=  --&amp;gt;&lt;br /&gt;
|HWManufacturer=ELV / eQ-3&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HM-CC-RT-DN&#039;&#039;&#039; (häufig einfach &#039;&#039;&#039;RT&#039;&#039;&#039; genannt) ist ein Funk-&#039;&#039;Heizkörperthermostate&#039;&#039; mit integriertem &#039;&#039;Stellantrieb&#039;&#039;. Das Thermostat ist seit September&amp;amp;nbsp;2013 verfügbar und ist der Nachfolger des [[HM-CC-VD Funk-Stellantrieb]]s.&lt;br /&gt;
&lt;br /&gt;
== Vorbemerkungen ==&lt;br /&gt;
: &#039;&#039;→ Einstellungen und Informationen, die alle [[HomeMatic]] Thermostate betreffen, sind unter [[HomeMatic Type Thermostat#Temperaturlisten|HomeMatic Type Thermostat]] zu finden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der HM-CC-RT-DN kann die Temperatur selbst messen (im Gegensatz zum [[HM-CC-VD Funk-Stellantrieb|Vorgänger]]) und verfügt über eine Fenster-Offen-Erkennung sowie eine Boost-Funktion. Der HM-CC-RT-DN &#039;&#039;kann&#039;&#039; von einem [[HM-TC-IT-WM-W-EU Funk-Wandthermostat AP]] gesteuert werden, das ist aber &#039;&#039;optional&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Das Gerät wird seit Anfang Oktober 2013 von Fhem unterstützt (siehe Diskussion im {{Link2Forum|Topic=14738|LinkText=Forum}}).&lt;br /&gt;
&lt;br /&gt;
Der HM-CC-RT-DN scheint das erste HomeMatic-Device zu sein, bei dem ein Update der Firmware auch vom Anwender durchgeführt werden kann. Ein Firmware-Update erfordert einen [[HM-CFG-USB_USB_Konfigurations-Adapter|USB Konfigurations-Adapter]] und eine auf der eQ-3 Webseite herunterladbare Firmwareupdate-Software. Weitere Details sind unter [[#Firmware Update|Firmware Update]] beschrieben.&lt;br /&gt;
{{Hinweis|Die Solltemperaturen eines HM-CC-RT-DN lassen sich &#039;&#039;nicht&#039;&#039; durch einen [[HM-CC-TC Funk-Wandthermostat]] &#039;&#039;steuern&#039;&#039;. Dieser kann nur die Ist-Temperatur an den HM-CC-RT-DN weitergeben, damit nicht die am HM-CC-RT-DN direkt gemessene Raumtemperatur zur Regelung verwendet wird.}}&lt;br /&gt;
Mit einem HM-CC-RT-DN können maximal (neben der Zentrale/Fhem):&lt;br /&gt;
* 7 HomeMatic Heizkörperthermostate&lt;br /&gt;
* 8 HomeMatic Tür-Fensterkontakte / Fenster-Drehgriffkontakte&lt;br /&gt;
* 8 Tastenpaare von HomeMatic Fernbedienungen bzw. Display-Wandtaster&lt;br /&gt;
* 1 HomeMatic Innen-Temperatur-Sensor&lt;br /&gt;
[[Peering (HomeMatic)|gepeert]] werden.&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Wird für Wartungs-/Umbaumaßnahmen das Wasser der Heizung abgelassen bzw. diese neubefüllt, sind alle Stellantriebe manuell dauerhaft auf &#039;&#039;&#039;on&#039;&#039;&#039; zu setzen: set &amp;lt;HM_Stellantrieb&amp;gt;_Clima controlManu on. Beim Einsatz eines Wandthermostaten ist der Wandthermostat entsprechend einzustellen.}}&lt;br /&gt;
&lt;br /&gt;
== Technische Daten ==&lt;br /&gt;
* Betriebsspannung: 2 Stck. 1,5V LR6/Mignon/AA&lt;br /&gt;
* Stromaufnahme: 180 mA max.&lt;br /&gt;
* Abmessungen (B x H x T): 54 x 65 x 93 mm&lt;br /&gt;
* Gewicht: 180 g (ohne Batterien)&lt;br /&gt;
* Ventilanschluss: M30 x 1,5 mm&lt;br /&gt;
&lt;br /&gt;
Aktuelle Firmware: 1.4&lt;br /&gt;
&lt;br /&gt;
== Betrieb mit FHEM ==&lt;br /&gt;
Der Funk-Heizkörperthermostat muss zuerst mit Fhem [[Pairing (HomeMatic)|gepairt]] werden. Stellen Sie sicher, dass Fhem aktuell ist (update durchführen)&lt;br /&gt;
&lt;br /&gt;
Das Pairing sollte wie in [[HomeMatic Devices pairen]] beschrieben durchgeführt werden &lt;br /&gt;
&lt;br /&gt;
=== Channels (Kanäle) ===&lt;br /&gt;
==== Channel (Kanal) 01 _Weather ====&lt;br /&gt;
&lt;br /&gt;
Dieser Kanal dient zur Einspeisung der (gemessenen) &#039;&#039;Ist-Temperatur&#039;&#039;. Als Sensor können zum Beispiel das [[HM-TC-IT-WM-W-EU Funk-Wandthermostat AP|HM-TC-IT-WM-W-EU Funk-Wandthermostat]] oder ein [[HM-WDS40-TH-I Funk-Temperatur-/Feuchtesensor innen (IT)|HM-WDS40-TH-I Funk-Temperatur-/Feuchtesensor]] dienen.&lt;br /&gt;
&lt;br /&gt;
Ein Temperatur-Sensor &#039;&#039;tempSensor&#039;&#039; kann mit dem &#039;&#039;_Weather&#039;&#039;-Kanal wie folgt [[Peering (HomeMatic)|gepeert]] werden: &lt;br /&gt;
&lt;br /&gt;
  set &amp;lt;tempSensor&amp;gt; peerChan 0 &amp;lt;HM-CC-RT-DN&amp;gt;_Weather single&lt;br /&gt;
&lt;br /&gt;
==== Channel (Kanal) 02 _Climate ====&lt;br /&gt;
Dieser Kanal erlaubt es dem [[HM-TC-IT-WM-W-EU Funk-Wandthermostat AP|HM-TC-IT-WM-W-EU Funk-Wandthermostat]] den HM-CC-RT-DN zu steuern. Dazu müssen die beiden Geräte gepeert werden:&lt;br /&gt;
&lt;br /&gt;
  set &amp;lt;HM-TC-IT-WM-W-EU&amp;gt;_Climate peerChan 0 &amp;lt;HM-CC-RT-DN&amp;gt;_Climate single set&lt;br /&gt;
&lt;br /&gt;
==== Channel (Kanal) 03 _WindowRec ====&lt;br /&gt;
Mit diesem Kanal können Fensterkontakte ([[HM-SEC-SC Tür-Fensterkontakt|HM-SEC-SC]] und [[HM-Sec-RHS Funk-Fenster-Drehgriffkontakt|HM-SEC-RHS]]) ihren Fensterstatus (geöffnet / gekippt) an ein oder mehrere Thermostate senden. Die Thermostate stellen anschließend die entsprechende (konfigurierbare) Temperatur ein. Der Temperaturwert kann je Fenster-Sensor unterschiedlich definiert werden. Sind mehrere Fenster gleichzeitig geöffnet, so wird der Thermostat auf die Temperatur des Sensors mit dem geringsten Temperaturwert eingestellt. &lt;br /&gt;
Ferner wird empfohlen, bei Einsatz von externen Sensoren, die interne „Fenster auf Erkennung“ zu deaktivieren (weitere Details sind im [[HM-CC-RT-DN Funk-Heizkörperthermostat#Channel .28Kanal.29 04 _Clima|Channel (Kanal) 04 _Clima]] beschrieben).&lt;br /&gt;
&lt;br /&gt;
Der Befehl zum Peeren lautet, wobei &amp;lt;fensterSensor&amp;gt; die Fhem-Kanalbezeichnung für den Fensterkontakt ist und &amp;lt;rt_WindowRec&amp;gt; die Kanalbezeichnung für den entsprechenden Kanal des Heizkörperthermostates:&lt;br /&gt;
 set &amp;lt;fensterSensor&amp;gt; peerChan 0 &amp;lt;HM-CC-RT-DN&amp;gt;_WindowRec single set&lt;br /&gt;
&lt;br /&gt;
Zum Löschen (=unpeeren) dieser Kopplung:&lt;br /&gt;
 set &amp;lt;fensterSensor&amp;gt; peerChan 0 &amp;lt;HM-CC-RT-DN&amp;gt;_WindowRec single unset&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung&#039;&#039;&#039;: Der Peer-(Lösch)Vorgang muss erst am Fensterkontakt durch Drücken der Anlerntaste ausgelöst werden, und zwar auch dann, wenn der Fensterkontakt schon vorher mit Fhem gepairt wurde. Dann kann der oben genannte Befehl in FHEM abgesetzt werden. Wichtig scheint auch, dass der Fensterkontakt geschlossen ist wenn man die Anlerntaste drückt.&lt;br /&gt;
&lt;br /&gt;
Der Befehl zur Temperatureinstellung des Heizkörperthermostaten für den Zustand &amp;quot;Fenster offen&amp;quot; lautet, wobei &amp;lt;fensterSensor&amp;gt; die Fhem-Kanalbezeichnung für den Fensterkontakt ist und &amp;lt;rt_WindowRec&amp;gt; die Kanalbezeichnung für den entsprechenden Kanal des Heizkörperthermostates, sowie &amp;lt;Temp&amp;gt; die einzustellende Temperatur (ganzzahliger Wert):&lt;br /&gt;
 set &amp;lt;HM-CC-RT-DN&amp;gt;_WindowRec regSet winOpnTemp &amp;lt;Temp&amp;gt; &amp;lt;fensterSensor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Channel (Kanal) 04 _Clima ====&lt;br /&gt;
Dieser Kanal dient zum Einstellen der Betriebsparameter, auch [[#Temperaturlisten|Temperaturlisten]] sind hierauf zu übertragen.&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|In älteren Versionen von Fhem wurde dieser Kanal durch &#039;&#039;autocreate&#039;&#039; als &amp;lt;code&amp;gt;_ClimRT_tr&amp;lt;/code&amp;gt; angelegt. Der Hersteller hat hier offenbar die internen Bezeichnungen geändert, denn beim Vorläufernmodell HM-CC-TC mussten Temperaturlisten auf den Kanal &#039;&#039;Climate&#039;&#039; übertragen werden.}}&lt;br /&gt;
&lt;br /&gt;
Die maximale Öffnung des Ventils kann mittels folgendem Befehl eingestellt werden (hier auf 80 %):&lt;br /&gt;
  set &amp;lt;HM-CC-RT-DN&amp;gt;_Clima regSet valveMaxPos 80&lt;br /&gt;
&lt;br /&gt;
Die interne &amp;quot;Fenster-auf&amp;quot;-Erkennung kann man wie folgt abschalten:&lt;br /&gt;
  set &amp;lt;HM-CC-RT-DN&amp;gt;_Clima regSet winOpnMode off&lt;br /&gt;
&lt;br /&gt;
==== Channel (Kanal) 05 _ClimaTeam ====&lt;br /&gt;
Dieser Kanal erlaubt es mehrere HM-CC-RT-DN zu einem &amp;quot;Team&amp;quot; zu gruppieren. Ein Mitglied des Teams meldet&lt;br /&gt;
* Änderungen der Temperatur am Handrad&lt;br /&gt;
* Einschalten des Boost-Modus am Taster&lt;br /&gt;
an seine &amp;quot;Teamkollegen&amp;quot; weiter. Folgende Änderungen werden &#039;&#039;&#039;nicht&#039;&#039;&#039; weitergegeben:&lt;br /&gt;
* Status der Fensterkontakte&lt;br /&gt;
* Temperaturlisten/Wochenplan und daraus folgende Änderungen&lt;br /&gt;
* Änderungen durch Fernbedienungen&lt;br /&gt;
* Änderungen durch eine HomeMatic-Zentrale&lt;br /&gt;
&lt;br /&gt;
Befehl zum Peeren, wobei &#039;&#039;&amp;lt;HM-CC-RT-DN#1&amp;gt;_ClimaTeam&#039;&#039; und &#039;&#039;&amp;lt;HM-CC-RT-DN#2&amp;gt;_ClimaTeam&#039;&#039; die Kanalbezeichnungen der beiden ClimaTeam-Kanäle sind:&lt;br /&gt;
 set &amp;lt;HM-CC-RT-DN#1&amp;gt;_ClimaTeam peerChan 0 &amp;lt;HM-CC-RT-DN#2&amp;gt;_ClimaTeam single&lt;br /&gt;
&lt;br /&gt;
==== Channel (Kanal) 06 _remote ====&lt;br /&gt;
Dieser Kanal kann an eine Fernbedienung gekoppelt werden. Per Tastendruck kann man einen bestimmten Mode und/oder eine bestimmte Temperatur wählen. Dabei kann die Reaktion auf einen langen oder kurzen Tastendruck gesondert eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
Der Befehl zum peeren lautet, wobei &amp;lt;button&amp;gt; die Kanalbezeichnung der Fernbedienung und &amp;lt;rt-remote&amp;gt; die Kanalbezeichnung des Heizkörperthermostates ist:&lt;br /&gt;
  set &amp;lt;button&amp;gt; peerChan 0 &amp;lt;HM-CC-RT-DN&amp;gt;_remote single&lt;br /&gt;
&lt;br /&gt;
=== Betriebsmodus Auto, Manu, Party (Urlaub) ===&lt;br /&gt;
&lt;br /&gt;
Der HM-CC-RT-DN verfügt über drei Betriebsmodus: Auto, Manu (Manuell) und Party (Urlaub).&lt;br /&gt;
&lt;br /&gt;
==== Modus Auto ====&lt;br /&gt;
Das Gerät arbeitet gemäß des gespeicherten Wochenprogramms. Manuelle Änderungen sind möglich, werden aber beim nächsten Schaltpunkt überschrieben.&lt;br /&gt;
&lt;br /&gt;
==== Modus Manu ====&lt;br /&gt;
Die Temperatur wird manuell eingestellt, das Wochenprogramm wird nicht abgearbeitet.&lt;br /&gt;
&lt;br /&gt;
==== Modus Party (Urlaub) ====&lt;br /&gt;
Die eingestellte Temperatur gilt bis zu einem gegebenen Endzeitpunkt, anschließend wechselt das Thermostat in den &#039;&#039;Auto&#039;&#039;-Modus. So kann beispielsweise bei Abwesenheit ein niedrigeres Temperaturprofil eingestellt werden ohne dass die Temperaturlisten verändert werden müssen.&lt;br /&gt;
&lt;br /&gt;
  set &amp;lt;HM-CC-RT-DN&amp;gt;_Clima controlParty 16 06.12.13 16:30 09.12.13 05:00&lt;br /&gt;
&lt;br /&gt;
Dadurch wird &lt;br /&gt;
* von 06.12.2013, 16:30 Uhr&lt;br /&gt;
* bis 09.12.2013, 05:00 Uhr &lt;br /&gt;
* die gewünschte Raumtemperatur auf 16 °C eingestellt.&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|&lt;br /&gt;
* Der Befehl muss auf dem Kanal 4 &#039;&#039;(_Clima)&#039;&#039; erfolgen.&lt;br /&gt;
* Es werden nur Uhrzeiten zu jeder vollen oder halben Stunde angenommen (Minuten also 00 oder 30).}}&lt;br /&gt;
&lt;br /&gt;
Mit der folgenden Funktion &amp;lt;code&amp;gt;Urlaub()&amp;lt;/code&amp;gt; kann man eine ganze Wohnung (also mehrere RTs) mit nur einem Befehl in den Party-Modus versetzen. Im Beispiel werden zwei Heizkörper (&amp;quot;Treppenhaus&amp;quot; und &amp;quot;Kammer&amp;quot;) angesteuert.&lt;br /&gt;
&lt;br /&gt;
Zu beachten sind folgende Dinge:&lt;br /&gt;
# Aktuelle Dateien (z.B. &amp;lt;code&amp;gt;10_CUL_HM&amp;lt;/code&amp;gt;) verwenden!&lt;br /&gt;
# Bei dem &#039;&#039;controlParty&#039;&#039;-Befehl &#039;&#039;kein&#039;&#039; Komma zwischen den Parametern.&lt;br /&gt;
# Bei der Funktion die Parameterübergabe definieren &amp;lt;code&amp;gt;($$$$$)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf:&#039;&#039;&#039;&lt;br /&gt;
:&amp;lt;code&amp;gt;{Urlaub (&amp;quot;16&amp;quot;, &amp;quot;06.12.13&amp;quot;, &amp;quot;16:30&amp;quot;, &amp;quot;09.12.13&amp;quot; ,&amp;quot;05:00&amp;quot;)}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Funktion:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=perl&amp;gt;&lt;br /&gt;
my $Urlaub;&lt;br /&gt;
sub&lt;br /&gt;
Urlaub($$$$$)&lt;br /&gt;
  {&lt;br /&gt;
    my ($temp, $startDate, $startTime, $endDate, $endTime) = @_;&lt;br /&gt;
 &lt;br /&gt;
    # HM-CC-RT-DN akzeptiert nur Zeiten, die auf Minute 00 oder 30 enden.&lt;br /&gt;
    # Daher $startTime und $endTime abrunden&lt;br /&gt;
    $startTime =~ s/\:[0-2].$/:00/;&lt;br /&gt;
    $startTime =~ s/\:[3-5].$/:30/;&lt;br /&gt;
    $endTime =~ s/\:[0-2].$/:00/;&lt;br /&gt;
    $endTime =~ s/\:[3-5].$/:30/;&lt;br /&gt;
&lt;br /&gt;
    # controlParty bei jedem HM-CC-RT-DN setzen.&lt;br /&gt;
    for my $rt (qw(Kammer Treppenhaus)) {&lt;br /&gt;
      fhem (&amp;quot;set $rt controlParty $temp $startDate $startTime $endDate $endTime&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tastensperre ===&lt;br /&gt;
&lt;br /&gt;
Um zu verhindern, dass der Modus oder die Temperatur per Tasten bzw. Drehrad am HM-CC-RT-DN verändert wird, kann eine Tastensperre gesetzt werden. Dies erfolgt mittels des Befehls:&lt;br /&gt;
&lt;br /&gt;
 set &amp;lt;HM-CC-RT-DN&amp;gt; regSet btnLock on&lt;br /&gt;
&lt;br /&gt;
Rückgängig machen geht per:&lt;br /&gt;
&lt;br /&gt;
 set &amp;lt;HM-CC-RT-DN&amp;gt; regSet btnLock off&lt;br /&gt;
&lt;br /&gt;
Diese Tastensperre kann man aber am HM-CC-RT-DN durch eine Tastenkombination wieder zurücksetzen. Um sie nur per Fhem rücksetzen zu können, muss&lt;br /&gt;
&lt;br /&gt;
 set &amp;lt;HM-CC-RT-DN&amp;gt; regSet globalBtnLock on&lt;br /&gt;
&lt;br /&gt;
eingegeben werden. Rückgängig geht wieder per:&lt;br /&gt;
&lt;br /&gt;
 set &amp;lt;HM-CC-RT-DN&amp;gt; regSet globalBtnLock off&lt;br /&gt;
&lt;br /&gt;
Es gibt auch eine Tastensperre die nur das Umschalten des Modus (Auto, Manuell, Urlaub) am Gerät verhindert. Diese wird mit&lt;br /&gt;
&lt;br /&gt;
 set &amp;lt;HM-CC-RT-DN&amp;gt; regSet modusBtnLock on&lt;br /&gt;
&lt;br /&gt;
eingeschaltet. Abschalten geht mit:&lt;br /&gt;
&lt;br /&gt;
 set &amp;lt;HM-CC-RT-DN&amp;gt; regSet modusBtnLock off&lt;br /&gt;
&lt;br /&gt;
=== Burst-Modus ===&lt;br /&gt;
Das ist ein &#039;&#039;&#039;Übertragungs&#039;&#039;&#039;modus für Nachrichten zwischen HM-Geräten und der Zentrale. Der RT erwacht alle 2,5 Minuten und dann überträgt die Zentrale die Kommandos. Wenn man einen Fensterkontakt oder eine Fernsteuerung nutzt, muss der RT sofort reagieren - dann muss man den Burst &#039;&#039;enablen&#039;&#039;. Der RT kann in diesem Fall sofort aufgeweckt werden und bearbeitet die Anforderung (Request). Das kann man auch von der Zentrale aus nutzen (so man möchte). Das ist der &#039;&#039;&#039;Vorteil&#039;&#039;&#039; des eingeschalteten Burst-Modus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Nachteil:&#039;&#039;&#039; Der Burst-Modus benötigt mehr Leistung, das heißt die Batterien müssen häufiger gewechselt werden: Der RT muss den Receiver ständig empfangsbereit halten. Außerdem wachen bei jedem Burst wachen &#039;&#039;alle&#039;&#039; Burst-Empfänger auf – egal an wen die Kommunikation gerichtet war.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Burst – wie es funktioniert&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Schickt ein Sender eine burst Sequenz, wachen alle burst-Empfänger auf und prüfen die Message. &lt;br /&gt;
Wenn sie betroffen sind bleiben sie eine Zeit lang wach, ansonsten schlafen sie wieder ein. &lt;br /&gt;
Man beachte also, dass Senden eines Burst  Energie in ALLEN burst-Empfängern verbraucht, egal ob sie angesprochen sind.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HMLAN und burst&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[HMLAN]] hat ein Sendebudget das über eine Stunde berechnet wird. Burst belastet diese Konto deutlich - so können nicht mehr als 100 bursts /h gesendet werden - dann geht HMLAN in overload Wenn zusätzliche Nachrichten gesendet werden sind es entsprechend weniger. &lt;br /&gt;
Es ist als nicht vorteilhaft, unnötig bursts zu senden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Burst devices&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Es gibt Devices, die immer auf burst reagieren und solche bei denen es abgeschaltet werden kann. So reagiert ein Rauchmelder immer auf Burst damit er seine Team-Kollegen hören kann. &lt;br /&gt;
Ein TC oder RT hingegen hat diese Funktion abschaltbar. &#039;Per default ist dies ausgeschaltet um Batterie zu sparen&#039;. Wenn ein VD gesteuert wird ist der TC ja selbst wach.  Wird er aber mit einem Fensterkontakt gekoppelt muss es eingeschaltet werden – sonst verpasst er die Nachricht. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ConditionalBurst devices&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Devices mit abschaltbarem Burst wie z.B. der &#039;&#039;HM-CC-RT-DN&#039;&#039; haben ein Register, &#039;&#039;burstRx&#039;&#039;, mit dem das burst-Erwachen eingestellt werden kann. &lt;br /&gt;
Sendern, die einen burst-Aktor erwecken sollen, muss man sagen, welcher Peer Burst benötigt. Hier kann ggf. das Register &#039;&#039;peerNeedsBurst&#039;&#039; nach dem Peeren gesetzt werden. FHEM versucht dies automatisch beim Peeren zu erledigen. Siehe [[HomeMatic HMInfo|HMinfo]] Befehl &#039;&#039;models&#039;&#039; um herauszufinden, welche Devices welchen Modus unterstützen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Attribut burstAccess&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Devices, die abschaltbaren burst haben kann man ein attribut bustAccess 1_auto setzen. Es wird beim Abschicken eines Kommandos versucht, das Device mit burst zu wecken. Sollte es nicht funktionieren wird gewartet, bis das Device aufwacht (meist reagieren solche Devices auch auf wakeup). Das Setzen des Attributs ist angenehm – es werden aber ggf. viele bursts gesendet.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Kommando burstXmit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Mit diesem Kommando, das bei Devices mit contitional-Burst zu Verfügung steht, wird der burst gezielt von User angestossen.&lt;br /&gt;
&lt;br /&gt;
Der User schickt erst seine Kommandos an das device. Die Kommandos werden im Command-stack gesammelt. &lt;br /&gt;
&lt;br /&gt;
Dann sendet der User ein set burstXmit.&lt;br /&gt;
&lt;br /&gt;
Es passiert das gleiche wie bei burstAccess.&lt;br /&gt;
&lt;br /&gt;
FHEM versucht mittels burst zu wecken und sendet bei Erfolg die Messages aus dem Kommandostack. &lt;br /&gt;
&lt;br /&gt;
Im Gegensatz zu burstAccess ist burstXmit gezielt einsetzbar und kann sparsamer verwendet werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; FHEM und burst devices&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
FHEM sendet eine burst automatisch mit Kommandos zu Devices, die nur burst unterstützen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;So aktiviert man den burst-Betrieb am HM-CC-RT-DN&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Burst Mode einschalten&#039;&#039; (der Kanal 4 des Device WZ1 heisst hier WZ1_4)&lt;br /&gt;
:&amp;lt;code&amp;gt;set WZ1_4 regSet burstRx on &amp;lt;/code&amp;gt;&lt;br /&gt;
prüfen mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;get WZ1_4 reg burstRx &amp;lt;/code&amp;gt;&lt;br /&gt;
&#039;&#039;Nun in FHEM den Burst mode einschalten (sofern nicht burstXmit verwendet wird)&#039;&#039;&lt;br /&gt;
:&amp;lt;code&amp;gt;attr WZ1 burstAccess 1_auto&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hinweis: Das Attribut im Device und nicht im Kanal setzen, ansonsten gibt es eine Fehlermeldung.&lt;br /&gt;
&lt;br /&gt;
=== Temperaturlisten ===&lt;br /&gt;
Die Temperaturlisten des HM-CC-RT-DN werden identisch mit denen anderer HomeMatic Thermostate verwaltet (siehe [[HomeMatic Type Thermostat#Temperaturlisten|HomeMatic Type Thermostat]]). Beim HM-CC-RT-DN ist der Kanal 4 (_Clima) für die Temperaturlisten zuständig.&lt;br /&gt;
&lt;br /&gt;
==Fhem-Log==&lt;br /&gt;
In den folgenden Logs heißt Kanal 4 noch &amp;quot;_ClimRT_tr&amp;quot;. Inzwischen würde man dort &amp;quot;_Clima&amp;quot; sehen.&lt;br /&gt;
&lt;br /&gt;
=== Device-Log ===&lt;br /&gt;
 2013.10.10 20:03:24 3: CUL_HM Unknown device CUL_HM_HM_CC_RT_DN_2212BC, please define it&lt;br /&gt;
 2013.10.10 20:03:24 2: autocreate: define CUL_HM_HM_CC_RT_DN_2212BC CUL_HM 2212BC A1A0184002212BC0000001000954B4551303531303031375900FFFF&lt;br /&gt;
 2013.10.10 20:03:24 3: Device CUL_HM_HM_CC_RT_DN_2212BC added to ActionDetector with 000:10 time&lt;br /&gt;
 2013.10.10 20:03:24 3: CUL_HM pair: CUL_HM_HM_CC_RT_DN_2212BC thermostat, model HM-CC-RT-DN serialNr KEQ0510017&lt;br /&gt;
 2013.10.10 20:03:24 3: LANCUL pairing (hmPairForSec) not enabled&lt;br /&gt;
 2013.10.10 20:03:24 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC-%Y.log CUL_HM_HM_CC_RT_DN_2212BC&lt;br /&gt;
 2013.10.10 20:03:24 3: Device Heizung_Wohnzimmer added to ActionDetector with 000:10 time&lt;br /&gt;
 2013.10.10 20:03:24 3: CUL_HM pair: Heizung_Wohnzimmer thermostat, model HM-CC-TC serialNr JEQ0044286&lt;br /&gt;
 2013.10.10 20:03:24 3: Device CUL_HM_HM_CC_RT_DN_2212BC added to ActionDetector with 000:10 time&lt;br /&gt;
 2013.10.10 20:03:24 3: CUL_HM pair: CUL_HM_HM_CC_RT_DN_2212BC thermostat, model HM-CC-RT-DN serialNr KEQ0510017&lt;br /&gt;
 2013.10.10 20:03:25 2: autocreate: define CUL_HM_HM_CC_RT_DN_2212BC_Weather CUL_HM 2212BC01&lt;br /&gt;
 2013.10.10 20:03:25 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC_Weather FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC_Weather-%Y.log CUL_HM_HM_CC_RT_DN_2212BC_Weather&lt;br /&gt;
 2013.10.10 20:03:25 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC_Weather FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC_Weather-%Y.log CUL_HM_HM_CC_RT_DN_2212BC_Weather&lt;br /&gt;
 2013.10.10 20:03:26 2: autocreate: define CUL_HM_HM_CC_RT_DN_2212BC_Climate CUL_HM 2212BC02&lt;br /&gt;
 2013.10.10 20:03:26 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC_Climate FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC_Climate-%Y.log CUL_HM_HM_CC_RT_DN_2212BC_Climate&lt;br /&gt;
 2013.10.10 20:03:26 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC_Climate FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC_Climate-%Y.log CUL_HM_HM_CC_RT_DN_2212BC_Climate&lt;br /&gt;
 2013.10.10 20:03:27 2: autocreate: define CUL_HM_HM_CC_RT_DN_2212BC_WindowRec CUL_HM 2212BC03&lt;br /&gt;
 2013.10.10 20:03:27 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC_WindowRec FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC_WindowRec-%Y.log CUL_HM_HM_CC_RT_DN_2212BC_WindowRec&lt;br /&gt;
 2013.10.10 20:03:27 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC_WindowRec FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC_WindowRec-%Y.log CUL_HM_HM_CC_RT_DN_2212BC_WindowRec&lt;br /&gt;
 2013.10.10 20:03:28 2: autocreate: define CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr CUL_HM 2212BC04&lt;br /&gt;
 2013.10.10 20:03:28 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr-%Y.log CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr&lt;br /&gt;
 2013.10.10 20:03:28 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr-%Y.log CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr&lt;br /&gt;
 2013.10.10 20:03:29 2: autocreate: define CUL_HM_HM_CC_RT_DN_2212BC_ClimaTeam CUL_HM 2212BC05&lt;br /&gt;
 2013.10.10 20:03:29 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC_ClimaTeam FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC_ClimaTeam-%Y.log CUL_HM_HM_CC_RT_DN_2212BC_ClimaTeam&lt;br /&gt;
 2013.10.10 20:03:29 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC_ClimaTeam FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC_ClimaTeam-%Y.log CUL_HM_HM_CC_RT_DN_2212BC_ClimaTeam&lt;br /&gt;
 2013.10.10 20:03:30 2: autocreate: define CUL_HM_HM_CC_RT_DN_2212BC_remote CUL_HM 2212BC06&lt;br /&gt;
 2013.10.10 20:03:30 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC_remote FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC_remote-%Y.log CUL_HM_HM_CC_RT_DN_2212BC_remote&lt;br /&gt;
 2013.10.10 20:03:30 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC_remote FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC_remote-%Y.log CUL_HM_HM_CC_RT_DN_2212BC_remote&lt;br /&gt;
 2013.10.10 20:03:35 3: Device CUL_HM_HM_CC_RT_DN_2212BC added to ActionDetector with 000:10 time&lt;br /&gt;
 2013.10.10 20:03:40 2: CUL_HM set CUL_HM_HM_CC_RT_DN_2212BC getSerial&lt;br /&gt;
 2013.10.10 20:03:40 2: CUL_HM set CUL_HM_HM_CC_RT_DN_2212BC getConfig&lt;br /&gt;
 2013.10.10 20:03:54 3: Device CUL_HM_HM_CC_RT_DN_2212BC added to ActionDetector with 000:10 time&lt;br /&gt;
&lt;br /&gt;
=== Event monitor ===&lt;br /&gt;
 2013-10-12 12:05:35.610 CUL_HM CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr motorErr: ok&lt;br /&gt;
 2013-10-12 12:05:35.610 CUL_HM CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr measured-temp: 18.4&lt;br /&gt;
 2013-10-12 12:05:35.610 CUL_HM CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr desired-temp: 18&lt;br /&gt;
 2013-10-12 12:05:35.610 CUL_HM CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr ValvePosition: 3 %&lt;br /&gt;
 2013-10-12 12:05:35.610 CUL_HM CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr mode: manu&lt;br /&gt;
 2013-10-12 12:05:35.610 CUL_HM CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr unknown0: 24&lt;br /&gt;
 2013-10-12 12:05:35.610 CUL_HM CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr T: 18.4 desired: 18 valve: 3 %&lt;br /&gt;
 2013-10-12 12:05:35.646 CUL_HM CUL_HM_HM_CC_RT_DN_2212BC battery: ok&lt;br /&gt;
 2013-10-12 12:05:35.646 CUL_HM CUL_HM_HM_CC_RT_DN_2212BC batteryLevel: 3.1 V&lt;br /&gt;
 2013-10-12 12:05:35.646 CUL_HM CUL_HM_HM_CC_RT_DN_2212BC measured-temp: 18.4&lt;br /&gt;
 2013-10-12 12:05:35.646 CUL_HM CUL_HM_HM_CC_RT_DN_2212BC desired-temp: 18&lt;br /&gt;
 2013-10-12 12:05:35.646 CUL_HM CUL_HM_HM_CC_RT_DN_2212BC actuator: 3 %&lt;br /&gt;
&lt;br /&gt;
== Firmware Update ==&lt;br /&gt;
Seit 24.10.2014 gibt es für den HM-CC-RT-DN die neue Firmware Version 1.4. Diese kann von der eQ-3 Webseite heruntergeladen werden. Genauere Informationen gibt es unter [[HomeMatic Firmware Update]].&lt;br /&gt;
&lt;br /&gt;
=== HM-CC-RT-DN spezifische Update Informationen ===&lt;br /&gt;
Durch gleichzeitiges Drücken der &amp;quot;Auto-/Manu&amp;quot;-Taste und der &amp;quot;Comfort-/Eco&amp;quot;-Taste am HM-CC-RT-DN während man die Batterien wieder einlegt wird der updatemodus gestartet. Während des Updates steht &amp;quot;FUP&amp;quot; im Display. Nach erfolgreichem Update erscheint &amp;quot;Ins&amp;quot; im Display und es muss eine erneute Adaptierfahrt durch drücken der Boost-Taste ausgelöst werden. Anschließend sollte der HM-CC-RT-DN wieder normal funktionieren. Die eingestellten Parameter und das Pairing mit FHEM gehen beim Update nicht verloren. Sollte das Update fehlschlagen, erscheint &amp;quot;Err&amp;quot; bzw. &amp;quot;CrC&amp;quot; im Display.&lt;br /&gt;
&lt;br /&gt;
Normalerweise sollte dann durch erneutes starten der Prozedur am PC und HM-CC-RT-DN das ganze erneut durchführbar sein.&lt;br /&gt;
&lt;br /&gt;
Es gibt einige Readings, die nicht durch ein einfaches &#039;&#039;getConfig&#039;&#039; aktualisisert werden, z.B. &amp;quot;battery&amp;quot;(nicht batteryLevel). Um diese Readings zu bekommen, ist ein &lt;br /&gt;
:&amp;lt;code&amp;gt;set Device_Channel04 controlMode auto &amp;lt;/code&amp;gt;&lt;br /&gt;
notwendig. Daraufhin werden die Readings übertragen/aktualisiert.&lt;br /&gt;
&lt;br /&gt;
== Simulation von Fensterkontakten und externen Temperatursensoren ==&lt;br /&gt;
grober Ablauf:&lt;br /&gt;
* erstellen ein virtuelles Device&lt;br /&gt;
* erstelle dazu einen virtuellen Kanal&lt;br /&gt;
* peeren den Kanal mit dem RT (als fenster-kontakt oder als remote, wen du willst)&lt;br /&gt;
* sende ein postEvent&lt;br /&gt;
&lt;br /&gt;
=== Fensterkontakte ===&lt;br /&gt;
&#039;&#039;Entnommen aus diesem {{Link2Forum|Topic=31078|Message=236245|LinkText=Forenbeitrag}}&#039;&#039;&lt;br /&gt;
 define virSC CUL_HM 221133&lt;br /&gt;
 attr virSC autoReadReg 4_reqStatus&lt;br /&gt;
 attr virSC expert 2_full&lt;br /&gt;
 attr virSC model virtual_1&lt;br /&gt;
 attr virSC peerIDs &lt;br /&gt;
 attr virSC subType virtual&lt;br /&gt;
 attr virSC webCmd press short:press long&lt;br /&gt;
 &lt;br /&gt;
 define virtualKitchenDoor CUL_HM 22113301&lt;br /&gt;
 attr virtualKitchenDoor dummy 1&lt;br /&gt;
 attr virtualKitchenDoor expert 1&lt;br /&gt;
 attr virtualKitchenDoor group Virtual&lt;br /&gt;
 attr virtualKitchenDoor model virtual_1&lt;br /&gt;
 attr virtualKitchenDoor webCmd postEvent open:postEvent closed &lt;br /&gt;
&lt;br /&gt;
Anschließend peeren und Temperatur festlegen mit:&lt;br /&gt;
 set virtualKitchenDoor peerChan 0 &amp;lt;Thermostat_Window_Rec&amp;gt; single set&lt;br /&gt;
 set &amp;lt;Thermostat_Window_Rec&amp;gt; regSet winOpnTemp 5 virtualKitchenDoor&lt;br /&gt;
&lt;br /&gt;
Die virtuelle Tür wird dann entsprechend über ein Notify getriggert:&lt;br /&gt;
 define notify_virtualKitchenDoor notify (Fensterkontakt_1|Fensterkontakt_2) {if(Value(&amp;quot;Fensterkontakt&amp;quot;) eq &amp;quot;open&amp;quot; &amp;amp;&amp;amp; Value(&amp;quot;Fensterkontakt_2&amp;quot;) eq &amp;quot;open&amp;quot;){fhem(&amp;quot;set virtualKitchenDoor postEvent open&amp;quot;)}else{fhem(&amp;quot;set virtualKitchenDoor postEvent closed&amp;quot;)}}&lt;br /&gt;
&lt;br /&gt;
=== Temperatursensoren ===&lt;br /&gt;
&#039;&#039;Entnommen aus diesem {{Link2Forum|Topic=19686|Message=233788|LinkText=Forenbeitrag}}&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Virtuelles HomeMatic Device mit _deiner_ HM Id definieren:&lt;br /&gt;
 define wz_vT CUL_HM &amp;lt;hmId&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Dem Device einen virtuellen Kanal (Default ist ein virtueller Button) hinzufügen:&lt;br /&gt;
 set wz_vT virtual 1&lt;br /&gt;
&lt;br /&gt;
3. Es ist kein virtueller Button sondern ein virtueller Temperatursensor - darum rename:&lt;br /&gt;
 rename wz_vT_Btn1 wz_vT_Sensor1&lt;br /&gt;
&lt;br /&gt;
4. Virtuellen Peer Sensor mit dem Weather Channel des RT-DN peeren:&lt;br /&gt;
 set wz_vT_Sensor1 peerChan 0 &amp;lt;RT_DN&amp;gt;_Weather single&lt;br /&gt;
&lt;br /&gt;
5. Peering kontrollieren (Voraussetzung: Device &#039;&#039;hm&#039;&#039; vom Typ [[HomeMatic HMInfo|HMinfo]] existiert):&lt;br /&gt;
:&amp;lt;code&amp;gt;set hm peerXref&amp;lt;/code&amp;gt;&lt;br /&gt;
Beispiel-Ausgabe:&lt;br /&gt;
 peerXref done: &lt;br /&gt;
 x-ref list &lt;br /&gt;
    wz_Thermostat_Weather =&amp;gt; wz_vT_Sensor1 &lt;br /&gt;
    wz_vT_Sensor1 =&amp;gt; wz_Thermostat_Weather&lt;br /&gt;
&lt;br /&gt;
6. Gemessene Temperatur vom z.B. 1-Wire DS1820 dem virtuellen HM Sensor übergeben. Z.B. alle zwei Minuten per at:&lt;br /&gt;
 define at_wz_vT at +*00:02 { my $T=(ReadingsVal(&amp;quot;&amp;lt;DS1820B&amp;gt;&amp;quot;,&amp;quot;temperature&amp;quot;,20.0)); fhem &amp;quot;set wz_vT_Sensor1 virtTemp $T&amp;quot; }&lt;br /&gt;
&lt;br /&gt;
Fertig.&lt;br /&gt;
&lt;br /&gt;
== Bekannte Probleme ==&lt;br /&gt;
=== TempList: Bad format ... ===&lt;br /&gt;
Wenn Sie beim Setzen einer Temperaturliste nach dem o.a. Schema (&amp;quot;SetTempList...&amp;quot;) die Meldung&lt;br /&gt;
&lt;br /&gt;
 Bad format, use HH:MM TEMP ......&lt;br /&gt;
&lt;br /&gt;
erhalten, sollten Sie zunächst ein [[update]] von Fhem durchführen.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [http://www.eq-3.de/produkt-detail-aktoren/items/homematic-funk-heizkoerperthermostat.html Produktinfo]&lt;br /&gt;
* [http://www.eq-3.de/Downloads/eq3/pdf_produkte/HM-CC-RT-DN_UM_GE_eQ-3_web.pdf Bedienungsanleitung (PDF)]&lt;br /&gt;
* [http://www.eq-3.de/Downloads/eq3/pdf_produkte/Funk-Heizkoerperthermostat_105155_Produktdatenblatt_V2.2.pdf Datenblatt (PDF)]&lt;br /&gt;
* [http://www.eq-3.de/Downloads/eq3/downloads/Ventilkompatibilitaeten.pdf Ventil-Kompatibilitätsliste (PDF)]&lt;br /&gt;
* {{Link2Forum|Topic=14738|LinkText=Forenthema zum Thermostat}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HomeMatic Components]]&lt;br /&gt;
[[Kategorie:Heizungsventile]]&lt;/div&gt;</summary>
		<author><name>Stephan1965</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=HM-TC-IT-WM-W-EU_Funk-Wandthermostat_AP&amp;diff=16958</id>
		<title>HM-TC-IT-WM-W-EU Funk-Wandthermostat AP</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=HM-TC-IT-WM-W-EU_Funk-Wandthermostat_AP&amp;diff=16958"/>
		<updated>2016-11-01T12:22:40Z</updated>

		<summary type="html">&lt;p&gt;Stephan1965: /* Channel (Kanal) 06 _remote */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Hardware&lt;br /&gt;
|Bild=HM-TC-IT-WM-W-EU.jpg&lt;br /&gt;
|Bildbeschreibung=HM-TC-IT-WM-W-EU mit Standard-Einstellungen&lt;br /&gt;
|HWProtocol=[[HomeMatic]]&lt;br /&gt;
|HWType=[[HomeMatic Type Thermostat|thermostat]]&lt;br /&gt;
|HWCategory=[[:Kategorie:Temperatursensoren|Temperatursensoren]] [[:Kategorie:Feuchtesensoren|Feuchtesensoren]]&lt;br /&gt;
|HWComm=868,3 MHz&lt;br /&gt;
|HWChannels=7&lt;br /&gt;
|HWVoltage=3 V&lt;br /&gt;
|HWPowerConsumption=40 mA (max)&lt;br /&gt;
|HWPoweredBy=2 x LR6/Mignon/AA&lt;br /&gt;
|HWSize=ohne Rahmen: 55&amp;amp;#8239;x&amp;amp;#8239;55&amp;amp;#8239;x&amp;amp;#8239;20&amp;amp;nbsp;mm&amp;lt;br /&amp;gt;mit Rahmen: 86&amp;amp;#8239;x&amp;amp;#8239;86&amp;amp;#8239;x&amp;amp;#8239;21,5&amp;amp;nbsp;mm&lt;br /&gt;
|HWDeviceFHEM=[[CUL_HM]]&lt;br /&gt;
&amp;lt;!-- |ModOwner=  --&amp;gt;&lt;br /&gt;
|HWManufacturer=ELV / eQ-3&lt;br /&gt;
}}&lt;br /&gt;
&#039;&#039;&#039;HM-TC-IT-WM-W-EU Funk-Wandthermostat AP&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
HomeMatic-Wandthermostat Aufputz. Verfügbar seit Februar 2014. Nachfolger des [[HM-CC-TC_Funk-Wandthermostat|HM-CC-TC]].&lt;br /&gt;
&lt;br /&gt;
== Vorbemerkungen ==&lt;br /&gt;
: &#039;&#039;→ Allgemeine Informationen, die alle HomeMatic Thermostate betreffen, sind unter [[HomeMatic Type Thermostat]] zu finden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der &#039;&#039;&#039;HM-TC-IT-WM-W-EU Funk-Wandthermostat&#039;&#039;&#039; misst die Raumtemperatur und Luftfeuchtigkeit. Er verfügt über individuell einstellbare Wochenprogramme und Programmierung direkt am Gerät. Zusätzlich ist auch eine Boost-Funktion vorhanden (ermöglicht ein schnelles, kurzzeitiges Aufheizen des Heizkörpers). Er verfügt über ein eigenes Anzeigedisplay für Soll- und Isttemperatur sowie Luftfeuchtigkeit. Er kann mittels Klebestreifen irgendwo aufgeklebt werden, soll aber auch in Mehrfachrahmen von Berker, ELSO, Gira, Merten und JUNG passen.&lt;br /&gt;
&lt;br /&gt;
== Technische Daten ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Technische Daten:&#039;&#039;&#039;&lt;br /&gt;
* Versorgungsspannung: 2 Stck. 1,5 V LR03/Micro/AAA&lt;br /&gt;
* Stromaufnahme (max.): 40 mA&lt;br /&gt;
* Schutzart: IP20&lt;br /&gt;
* Schutzklasse: III&lt;br /&gt;
* Abmessungen (BxHxT ohne Rahmen): 55 x 55 x 20 mm&lt;br /&gt;
* Abmessungen (BxHxT mit Rahmen): 86 x 86 x 21,5 mm&lt;br /&gt;
* Gewicht (ohne Batterien): 74 g&lt;br /&gt;
* Temperaturwahl in Schritten von: 0,5 °C&lt;br /&gt;
&lt;br /&gt;
Im Gegensatz zum HM-CC-TC kann der HM-TC-IT-WM-W-EU auch andere HomeMatic-Schaltaktoren (z.B. [[HM-LC-SW1-FM_Schaltaktor_1-fach_UP|HM-LC-SW1-FM]]) über den Channel 07 SwitchTr direkt anlernen, womit z.B. die Steuerung elektrischer Heizungen möglich wird. Der HM-CC-TC konnte direkt nur die HM-CC-VD steuern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Betrieb mit FHEM ==&lt;br /&gt;
&lt;br /&gt;
Zuerst muss das Wandthermostat natürlich mit FHEM gepairt werden. &lt;br /&gt;
&lt;br /&gt;
Das [[Pairing (HomeMatic)|Pairing]] sollte wie in [[HomeMatic Devices pairen]] beschrieben durchgeführt werden.&lt;br /&gt;
&lt;br /&gt;
Danach kann das [[Peering (HomeMatic)|Peering]] mit den Heizkörperthermostaten des betreffenden Raumes stattfinden:&lt;br /&gt;
&lt;br /&gt;
=== Channels (Kanäle) ===&lt;br /&gt;
&lt;br /&gt;
==== Channel (Kanal) 01 _Weather ====&lt;br /&gt;
Damit das Heizkörperthermostat HM-CC-RT-DN die Temperatur des Wandthermostats übernimmt, muss der Weather Kanal gepeert werden:&lt;br /&gt;
&lt;br /&gt;
  set &amp;lt;HM-TC-IT-WM-W-EU-Gerät&amp;gt;_Weather peerChan 0 &amp;lt;HM-CC-RT-DN-Gerät&amp;gt;_Weather single set&lt;br /&gt;
&lt;br /&gt;
==== Channel (Kanal) 02 _Climate ====&lt;br /&gt;
Damit der Heizkörperthermostat vom Wandthermostat auch eingestellt werden kann (Soll-Temperatur, Mode etc.), muss der Climate Kanal gepeert werden:&lt;br /&gt;
&lt;br /&gt;
  set &amp;lt;HM-TC-IT-WM-W-EU-Gerät&amp;gt;_Climate peerChan 0 &amp;lt;HM-CC-RT-DN-Gerät&amp;gt;_Climate single set&lt;br /&gt;
Dies muss für jedes zu steuernde Heizkörperthermostat wiederholt werden.&lt;br /&gt;
&lt;br /&gt;
==== Channel (Kanal) 03 _WindowRec ====&lt;br /&gt;
Mit diesem Kanal lassen sich Fensterkontakte (HM-SEC-SC oder HM-SEC-RHS) peeren, die ihren Fensterstatus (geöffnet/gekippt) an ein oder mehrere Thermostate senden. Die Thermostate stellen anschließend die entsprechende (konfigurierbare) Temperatur ein. Der Temperaturwert kann je Fenster-Sensor unterschiedlich definiert werden. Sind mehrere Fenster gleichzeitig geöffnet, so wird der Thermostat auf die Temperatur des Sensors mit dem geringsten Temperaturwert eingestellt. &lt;br /&gt;
&lt;br /&gt;
Das Peering mit einem Tür-Fensterkontakt läuft wie folgt ab:&lt;br /&gt;
&lt;br /&gt;
  set &amp;lt;HM-Sec-SC&amp;gt; peerChan 0 &amp;lt;HM-TC-IT-WM-W-EU-Gerät&amp;gt;_WindowRec single set&lt;br /&gt;
&lt;br /&gt;
Der Befehl zur Temperatureinstellung des Heizkörperthermostaten für den Zustand &amp;quot;Fenster offen&amp;quot; lautet, wobei &amp;lt;fensterSensor&amp;gt; die Fhem-Kanalbezeichnung für den Fensterkontakt ist und &amp;lt;tc_WindowRec&amp;gt; die Kanalbezeichnung für den entsprechenden Kanal des Heizkörperthermostates, sowie &amp;lt;Temp&amp;gt; die einzustellende Temperatur (ganzzahliger Wert):&lt;br /&gt;
 set &amp;lt;tc_WindowRec&amp;gt; regSet winOpnTemp &amp;lt;Temp&amp;gt; &amp;lt;fensterSensor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Channel (Kanal) 06 _remote ====&lt;br /&gt;
Dieser Kanal kann an eine Fernbedienung gekoppelt werden. Per Tastendruck kann man einen bestimmten Mode und/oder eine bestimmte Temperatur wählen. Dabei kann die Reaktion auf einen langen oder kurzen Tastendruck gesondert eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
Der Befehl zum peeren lautet, wobei &amp;lt;button&amp;gt; die Kanalbezeichnung der Fernbedienung und &amp;lt;tc-remote&amp;gt; die Kanalbezeichnung des Heizkörperthermostates ist:&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;button&amp;gt; peerChan 0 &amp;lt;rt-remote&amp;gt; single&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Channel (Kanal) 07 _SwitchTr ====&lt;br /&gt;
Das Peering mit einem Schaltaktor läuft z.B. wie folgt ab:&lt;br /&gt;
&lt;br /&gt;
  set &amp;lt;HM-TC-IT-WM-W-EU_SwitchTr&amp;gt; peerChan 0 &amp;lt;HM-LC-SW1-FM&amp;gt; single set&lt;br /&gt;
  set &amp;lt;HM-LC-SW1-FM&amp;gt; regSet shCtOn ltLo &amp;lt;HM-TC-IT-WM-W-EU_SwitchTr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Einstellungen ==&lt;br /&gt;
&lt;br /&gt;
Die folgenden Einstellungen werden in **Registern** des HM-TC-IT-WM-W-EU vorgenommen. Das heißt, dass diese Einstellungen im Gerät selbst gespeichert werden, nicht in der Konfigurations-Datei von Fhem.&lt;br /&gt;
&lt;br /&gt;
=== Anzeige ===&lt;br /&gt;
&lt;br /&gt;
Register im Kanal&amp;amp;nbsp;2 &#039;&#039;(_Climate)&#039;&#039; erlauben es zu konfigurieren, welche Daten der HM-TC-IT-WM-W-EU in seinem LC-Display anzeigt.&lt;br /&gt;
&lt;br /&gt;
==== showInfo time|date ====&lt;br /&gt;
&lt;br /&gt;
Wählt aus, ob die &#039;&#039;Uhrzeit&#039;&#039; (&amp;lt;code&amp;gt;time&amp;lt;/code&amp;gt;, Standard-Einstellung) oder das &#039;&#039;Datum&#039;&#039; (&amp;lt;code&amp;gt;date&amp;lt;/code&amp;gt;) angezeigt wird. Der folgende Befehl erlaubt es das Datum anzeigen zu lassen:&lt;br /&gt;
&lt;br /&gt;
 set &amp;lt;HM-TC-IT-WM-W-EU&amp;gt;_Climate regSet showInfo date&lt;br /&gt;
&lt;br /&gt;
==== showSetTemp actTemp|setTemp ====&lt;br /&gt;
&lt;br /&gt;
Wählt aus, ob die &#039;&#039;Ist-Temperatur&#039;&#039; (&amp;lt;code&amp;gt;actTemp&amp;lt;/code&amp;gt;, Standard-Einstellung) oder die &#039;&#039;Soll-Temperatur&#039;&#039; (&amp;lt;code&amp;gt;setTemp&amp;lt;/code&amp;gt;) im Display angezeigt wird.&lt;br /&gt;
&lt;br /&gt;
 set &amp;lt;HM-TC-IT-WM-W-EU&amp;gt;_Climate regSet showSetTemp setTemp&lt;br /&gt;
&lt;br /&gt;
==== showHumidity temp|tempHum ====&lt;br /&gt;
&lt;br /&gt;
Wählt aus, ob dauerhaft die &#039;&#039;Temperatur&#039;&#039; (&amp;lt;code&amp;gt;temp&amp;lt;/code&amp;gt;, Standard-Einstellung) oder &#039;&#039;Temperatur und Luftfeuchtigkeit&#039;&#039; im Wechsel (&amp;lt;code&amp;gt;tempHum&amp;lt;/code&amp;gt;) im Display angezeigt werden.&lt;br /&gt;
&lt;br /&gt;
 set &amp;lt;HM-TC-IT-WM-W-EU&amp;gt;_Climate regSet showHumidity tempHum&lt;br /&gt;
&lt;br /&gt;
=== Tastensperre ===&lt;br /&gt;
&lt;br /&gt;
Um zu verhindern, dass der Modus oder die Temperatur per Tasten bzw. Drehrad am HM-TC-IT-WM-W-EU verändert wird, kann eine Tastensperre gesetzt werden. Dies erfolgt mittels des Befehls:&lt;br /&gt;
&lt;br /&gt;
 set &amp;lt;HM-TC-IT-WM-W-EU&amp;gt; regSet btnLock on&lt;br /&gt;
&lt;br /&gt;
Rückgängig machen geht per:&lt;br /&gt;
&lt;br /&gt;
 set &amp;lt;HM-TC-IT-WM-W-EU&amp;gt; regSet btnLock off&lt;br /&gt;
&lt;br /&gt;
Diese Tastensperre kann man aber am Thermostat durch eine Tastenkombination wieder zurücksetzen. Um sie nur per Fhem rücksetzen zu können, muss&lt;br /&gt;
&lt;br /&gt;
 set &amp;lt;HM-TC-IT-WM-W-EU&amp;gt; regSet globalBtnLock on&lt;br /&gt;
&lt;br /&gt;
abgesetzt werden. Rückgängig wieder per:&lt;br /&gt;
&lt;br /&gt;
 set &amp;lt;HM-TC-IT-WM-W-EU&amp;gt; regSet globalBtnLock off&lt;br /&gt;
&lt;br /&gt;
=== Temperaturlisten ===&lt;br /&gt;
&lt;br /&gt;
Die Temperaturlisten des HM-TC-IT-WM-W-EU werden identisch zu anderern HomeMatic Thermostaten verwaltet, siehe [[HomeMatic Type Thermostat#Temperaturlisten|HomeMatic Type Thermostat]]. Beim HM-TC-IT-WM-W-EU ist der Kanal&amp;amp;nbsp;2 &#039;&#039;(_Climate)&#039;&#039; für die Temperaturlisten zuständig.&lt;br /&gt;
&lt;br /&gt;
== Fhem-Log ==&lt;br /&gt;
=== Event monitor ===&lt;br /&gt;
&lt;br /&gt;
Hier habe ich einmal die Wunschtemperatur erhöht, damit auch was passiert:&lt;br /&gt;
&lt;br /&gt;
  2014-04-09 09:35:11 CUL_HM KH_Bad_Therm CMDs_pending&lt;br /&gt;
  2014-04-09 09:35:11 CUL_HM KH_Bad_Therm_Climate set_desired-temp 18.0&lt;br /&gt;
  2014-04-09 09:35:11 CUL_HM KH_Bad_Therm CMDs_done&lt;br /&gt;
&lt;br /&gt;
Bei mir ist es so, das der SwitchTr Kanal nur mit dem gepeerten Device spricht, hier ein HM-LC-SW1-FM:&lt;br /&gt;
&lt;br /&gt;
  2014-04-09 09:35:17 CUL_HM KH_Bad_Heizung trig_KH_Bad_Therm_SwitchTr: 200&lt;br /&gt;
  2014-04-09 09:35:17 CUL_HM KH_Bad_Heizung trigLast: KH_Bad_Therm_SwitchTr :200&lt;br /&gt;
&lt;br /&gt;
Der hat auch prompt reagiert und die Heizung eingeschaltet:&lt;br /&gt;
&lt;br /&gt;
  2014-04-09 09:35:17 CUL_HM KH_Bad_Heizung level: 100&lt;br /&gt;
  2014-04-09 09:35:17 CUL_HM KH_Bad_Heizung pct: 100&lt;br /&gt;
  2014-04-09 09:35:17 CUL_HM KH_Bad_Heizung deviceMsg: on (to KH_Bad_Therm)&lt;br /&gt;
  2014-04-09 09:35:17 CUL_HM KH_Bad_Heizung on&lt;br /&gt;
  2014-04-09 09:35:17 CUL_HM KH_Bad_Heizung timedOn: off&lt;br /&gt;
&lt;br /&gt;
und noch ein wenig Geplauder der vorhandenen Kanäle:&lt;br /&gt;
&lt;br /&gt;
  2014-04-09 09:36:39 CUL_HM KH_Bad_Therm_Climate measured-temp: 16.0&lt;br /&gt;
  2014-04-09 09:36:39 CUL_HM KH_Bad_Therm_Climate desired-temp: 18.0&lt;br /&gt;
  2014-04-09 09:36:39 CUL_HM KH_Bad_Therm_Climate humidity: 50&lt;br /&gt;
  2014-04-09 09:36:39 CUL_HM KH_Bad_Therm_Climate T: 16.0 desired: 18.0&lt;br /&gt;
  2014-04-09 09:36:49 CUL_HM KH_Bad_Therm battery: ok&lt;br /&gt;
  2014-04-09 09:36:49 CUL_HM KH_Bad_Therm batteryLevel: 3&lt;br /&gt;
  2014-04-09 09:36:49 CUL_HM KH_Bad_Therm measured-temp: 16.0&lt;br /&gt;
  2014-04-09 09:36:49 CUL_HM KH_Bad_Therm desired-temp: 18.0&lt;br /&gt;
  2014-04-09 09:36:49 CUL_HM KH_Bad_Therm_Climate measured-temp: 16.0&lt;br /&gt;
  2014-04-09 09:36:49 CUL_HM KH_Bad_Therm_Climate desired-temp: 18.0&lt;br /&gt;
  2014-04-09 09:36:49 CUL_HM KH_Bad_Therm_Climate mode: auto&lt;br /&gt;
  2014-04-09 09:36:49 CUL_HM KH_Bad_Therm_Climate T: 16.0 desired: 18.0&lt;br /&gt;
  2014-04-09 09:36:59 CUL_HM KH_Bad_Therm_Weather temperature: 16.0&lt;br /&gt;
  2014-04-09 09:36:59 CUL_HM KH_Bad_Therm_Weather humidity: 50&lt;br /&gt;
  2014-04-09 09:36:59 CUL_HM KH_Bad_Therm_Weather T: 16.0 H: 50&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Firmware Update ==&lt;br /&gt;
Updates für den HM-TC-IT-WM-W-EU können von der eQ-3 Webseite heruntergeladen werden. Genauere Informationen gibt es unter [[HomeMatic_Firmware_Update]]. Das Thermostat wird in den Updatemodus gebracht, indem beide äußeren Tasten gedrückt werden, während die Batterien eingesetzt werden. Das Display zeigt &amp;quot;FUP&amp;quot; an.&lt;br /&gt;
&lt;br /&gt;
== Bekannte Probleme ==&lt;br /&gt;
Bei der Firmware 1.2 und dem Kanal Climate funktioniert die Einstellung der Hysterese über das Register hyst2point nicht. Der Eintrag wird ignoriert. &lt;br /&gt;
&lt;br /&gt;
Siehe auch Bericht im [http://www.elv.de/topic/hystereseeinstellung-bei-hm-tc-it-wm-w-eu-firmware-1-2-wird-ignoriert.html Forum von ELV]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [http://www.eq-3.de/Downloads/eq3/pdf_produkte/HM-TC-IT-WM-W-EU_UM_GE_eQ-3_web.pdf Manual]&lt;br /&gt;
* [http://www.eq-3.de/Downloads/eq3/pdf_produkte/Funk-Wandthermostat_132030A0_Produktdatenblatt_V1.2.pdf Produktdatenblatt] &lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HomeMatic Components]]&lt;br /&gt;
[[Kategorie:Feuchtesensoren]]&lt;br /&gt;
[[Kategorie:Temperatursensoren]]&lt;/div&gt;</summary>
		<author><name>Stephan1965</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=HM-CC-RT-DN_Funk-Heizk%C3%B6rperthermostat&amp;diff=16957</id>
		<title>HM-CC-RT-DN Funk-Heizkörperthermostat</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=HM-CC-RT-DN_Funk-Heizk%C3%B6rperthermostat&amp;diff=16957"/>
		<updated>2016-11-01T12:18:06Z</updated>

		<summary type="html">&lt;p&gt;Stephan1965: /* Modus Auto */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Hardware&lt;br /&gt;
|Bild=HM-CC-RT-DN.jpg&lt;br /&gt;
|Bildbeschreibung=HM-CC-RT-DN an Heizkörper montiert&lt;br /&gt;
|HWProtocol=[[HomeMatic]]&lt;br /&gt;
|HWType=[[HomeMatic Type Thermostat|thermostat]]&lt;br /&gt;
|HWCategory=[[:Kategorie:Heizungsventile|Heizungsventile]]&lt;br /&gt;
|HWComm=868 MHz&lt;br /&gt;
|HWChannels=6&lt;br /&gt;
|HWVoltage=3&amp;amp;nbsp;V&lt;br /&gt;
|HWPowerConsumption=180&amp;amp;nbsp;mA&lt;br /&gt;
|HWPoweredBy=2x LR6/Mignon/AA&lt;br /&gt;
|HWSize=54x65x93 mm (BxHxT)&lt;br /&gt;
|HWDeviceFHEM=[[CUL_HM]]&lt;br /&gt;
&amp;lt;!-- |ModOwner=  --&amp;gt;&lt;br /&gt;
|HWManufacturer=ELV / eQ-3&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HM-CC-RT-DN&#039;&#039;&#039; (häufig einfach &#039;&#039;&#039;RT&#039;&#039;&#039; genannt) ist ein Funk-&#039;&#039;Heizkörperthermostate&#039;&#039; mit integriertem &#039;&#039;Stellantrieb&#039;&#039;. Das Thermostat ist seit September&amp;amp;nbsp;2013 verfügbar und ist der Nachfolger des [[HM-CC-VD Funk-Stellantrieb]]s.&lt;br /&gt;
&lt;br /&gt;
== Vorbemerkungen ==&lt;br /&gt;
: &#039;&#039;→ Einstellungen und Informationen, die alle [[HomeMatic]] Thermostate betreffen, sind unter [[HomeMatic Type Thermostat#Temperaturlisten|HomeMatic Type Thermostat]] zu finden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der HM-CC-RT-DN kann die Temperatur selbst messen (im Gegensatz zum [[HM-CC-VD Funk-Stellantrieb|Vorgänger]]) und verfügt über eine Fenster-Offen-Erkennung sowie eine Boost-Funktion. Der HM-CC-RT-DN &#039;&#039;kann&#039;&#039; von einem [[HM-TC-IT-WM-W-EU Funk-Wandthermostat AP]] gesteuert werden, das ist aber &#039;&#039;optional&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Das Gerät wird seit Anfang Oktober 2013 von Fhem unterstützt (siehe Diskussion im {{Link2Forum|Topic=14738|LinkText=Forum}}).&lt;br /&gt;
&lt;br /&gt;
Der HM-CC-RT-DN scheint das erste HomeMatic-Device zu sein, bei dem ein Update der Firmware auch vom Anwender durchgeführt werden kann. Ein Firmware-Update erfordert einen [[HM-CFG-USB_USB_Konfigurations-Adapter|USB Konfigurations-Adapter]] und eine auf der eQ-3 Webseite herunterladbare Firmwareupdate-Software. Weitere Details sind unter [[#Firmware Update|Firmware Update]] beschrieben.&lt;br /&gt;
{{Hinweis|Die Solltemperaturen eines HM-CC-RT-DN lassen sich &#039;&#039;nicht&#039;&#039; durch einen [[HM-CC-TC Funk-Wandthermostat]] &#039;&#039;steuern&#039;&#039;. Dieser kann nur die Ist-Temperatur an den HM-CC-RT-DN weitergeben, damit nicht die am HM-CC-RT-DN direkt gemessene Raumtemperatur zur Regelung verwendet wird.}}&lt;br /&gt;
Mit einem HM-CC-RT-DN können maximal (neben der Zentrale/Fhem):&lt;br /&gt;
* 7 HomeMatic Heizkörperthermostate&lt;br /&gt;
* 8 HomeMatic Tür-Fensterkontakte / Fenster-Drehgriffkontakte&lt;br /&gt;
* 8 Tastenpaare von HomeMatic Fernbedienungen bzw. Display-Wandtaster&lt;br /&gt;
* 1 HomeMatic Innen-Temperatur-Sensor&lt;br /&gt;
[[Peering (HomeMatic)|gepeert]] werden.&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Wird für Wartungs-/Umbaumaßnahmen das Wasser der Heizung abgelassen bzw. diese neubefüllt, sind alle Stellantriebe manuell dauerhaft auf &#039;&#039;&#039;on&#039;&#039;&#039; zu setzen: set &amp;lt;HM_Stellantrieb&amp;gt;_Clima controlManu on. Beim Einsatz eines Wandthermostaten ist der Wandthermostat entsprechend einzustellen.}}&lt;br /&gt;
&lt;br /&gt;
== Technische Daten ==&lt;br /&gt;
* Betriebsspannung: 2 Stck. 1,5V LR6/Mignon/AA&lt;br /&gt;
* Stromaufnahme: 180 mA max.&lt;br /&gt;
* Abmessungen (B x H x T): 54 x 65 x 93 mm&lt;br /&gt;
* Gewicht: 180 g (ohne Batterien)&lt;br /&gt;
* Ventilanschluss: M30 x 1,5 mm&lt;br /&gt;
&lt;br /&gt;
Aktuelle Firmware: 1.4&lt;br /&gt;
&lt;br /&gt;
== Betrieb mit FHEM ==&lt;br /&gt;
Der Funk-Heizkörperthermostat muss zuerst mit Fhem [[Pairing (HomeMatic)|gepairt]] werden. Stellen Sie sicher, dass Fhem aktuell ist (update durchführen)&lt;br /&gt;
&lt;br /&gt;
Das Pairing sollte wie in [[HomeMatic Devices pairen]] beschrieben durchgeführt werden &lt;br /&gt;
&lt;br /&gt;
=== Channels (Kanäle) ===&lt;br /&gt;
==== Channel (Kanal) 01 _Weather ====&lt;br /&gt;
&lt;br /&gt;
Dieser Kanal dient zur Einspeisung der (gemessenen) &#039;&#039;Ist-Temperatur&#039;&#039;. Als Sensor können zum Beispiel das [[HM-TC-IT-WM-W-EU Funk-Wandthermostat AP|HM-TC-IT-WM-W-EU Funk-Wandthermostat]] oder ein [[HM-WDS40-TH-I Funk-Temperatur-/Feuchtesensor innen (IT)|HM-WDS40-TH-I Funk-Temperatur-/Feuchtesensor]] dienen.&lt;br /&gt;
&lt;br /&gt;
Ein Temperatur-Sensor &#039;&#039;tempSensor&#039;&#039; kann mit dem &#039;&#039;_Weather&#039;&#039;-Kanal wie folgt [[Peering (HomeMatic)|gepeert]] werden: &lt;br /&gt;
&lt;br /&gt;
  set &amp;lt;tempSensor&amp;gt; peerChan 0 &amp;lt;HM-CC-RT-DN&amp;gt;_Weather single&lt;br /&gt;
&lt;br /&gt;
==== Channel (Kanal) 02 _Climate ====&lt;br /&gt;
Dieser Kanal erlaubt es dem [[HM-TC-IT-WM-W-EU Funk-Wandthermostat AP|HM-TC-IT-WM-W-EU Funk-Wandthermostat]] den HM-CC-RT-DN zu steuern. Dazu müssen die beiden Geräte gepeert werden:&lt;br /&gt;
&lt;br /&gt;
  set &amp;lt;HM-TC-IT-WM-W-EU&amp;gt;_Climate peerChan 0 &amp;lt;HM-CC-RT-DN&amp;gt;_Climate single set&lt;br /&gt;
&lt;br /&gt;
==== Channel (Kanal) 03 _WindowRec ====&lt;br /&gt;
Mit diesem Kanal können Fensterkontakte ([[HM-SEC-SC Tür-Fensterkontakt|HM-SEC-SC]] und [[HM-Sec-RHS Funk-Fenster-Drehgriffkontakt|HM-SEC-RHS]]) ihren Fensterstatus (geöffnet / gekippt) an ein oder mehrere Thermostate senden. Die Thermostate stellen anschließend die entsprechende (konfigurierbare) Temperatur ein. Der Temperaturwert kann je Fenster-Sensor unterschiedlich definiert werden. Sind mehrere Fenster gleichzeitig geöffnet, so wird der Thermostat auf die Temperatur des Sensors mit dem geringsten Temperaturwert eingestellt. &lt;br /&gt;
Ferner wird empfohlen, bei Einsatz von externen Sensoren, die interne „Fenster auf Erkennung“ zu deaktivieren (weitere Details sind im [[HM-CC-RT-DN Funk-Heizkörperthermostat#Channel .28Kanal.29 04 _Clima|Channel (Kanal) 04 _Clima]] beschrieben).&lt;br /&gt;
&lt;br /&gt;
Der Befehl zum Peeren lautet, wobei &amp;lt;fensterSensor&amp;gt; die Fhem-Kanalbezeichnung für den Fensterkontakt ist und &amp;lt;rt_WindowRec&amp;gt; die Kanalbezeichnung für den entsprechenden Kanal des Heizkörperthermostates:&lt;br /&gt;
 set &amp;lt;fensterSensor&amp;gt; peerChan 0 &amp;lt;HM-CC-RT-DN&amp;gt;_WindowRec single&lt;br /&gt;
&lt;br /&gt;
Zum Löschen (=unpeeren) dieser Kopplung:&lt;br /&gt;
 set &amp;lt;fensterSensor&amp;gt; peerChan 0 &amp;lt;HM-CC-RT-DN&amp;gt;_WindowRec single unset&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung&#039;&#039;&#039;: Der Peer-(Lösch)Vorgang muss am Fensterkontakt durch Drücken der Anlerntaste bestätigt werden, und zwar auch dann, wenn der Fensterkontakt schon vorher mit Fhem gepairt wurde. Wichtig scheint auch, dass der Fensterkontakt geschlossen ist wenn man die Anlerntaste drückt.&lt;br /&gt;
&lt;br /&gt;
Der Befehl zur Temperatureinstellung des Heizkörperthermostaten für den Zustand &amp;quot;Fenster offen&amp;quot; lautet, wobei &amp;lt;fensterSensor&amp;gt; die Fhem-Kanalbezeichnung für den Fensterkontakt ist und &amp;lt;rt_WindowRec&amp;gt; die Kanalbezeichnung für den entsprechenden Kanal des Heizkörperthermostates, sowie &amp;lt;Temp&amp;gt; die einzustellende Temperatur (ganzzahliger Wert):&lt;br /&gt;
 set &amp;lt;HM-CC-RT-DN&amp;gt;_WindowRec regSet winOpnTemp &amp;lt;Temp&amp;gt; &amp;lt;fensterSensor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Channel (Kanal) 04 _Clima ====&lt;br /&gt;
Dieser Kanal dient zum Einstellen der Betriebsparameter, auch [[#Temperaturlisten|Temperaturlisten]] sind hierauf zu übertragen.&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|In älteren Versionen von Fhem wurde dieser Kanal durch &#039;&#039;autocreate&#039;&#039; als &amp;lt;code&amp;gt;_ClimRT_tr&amp;lt;/code&amp;gt; angelegt. Der Hersteller hat hier offenbar die internen Bezeichnungen geändert, denn beim Vorläufernmodell HM-CC-TC mussten Temperaturlisten auf den Kanal &#039;&#039;Climate&#039;&#039; übertragen werden.}}&lt;br /&gt;
&lt;br /&gt;
Die maximale Öffnung des Ventils kann mittels folgendem Befehl eingestellt werden (hier auf 80 %):&lt;br /&gt;
  set &amp;lt;HM-CC-RT-DN&amp;gt;_Clima regSet valveMaxPos 80&lt;br /&gt;
&lt;br /&gt;
Die interne &amp;quot;Fenster-auf&amp;quot;-Erkennung kann man wie folgt abschalten:&lt;br /&gt;
  set &amp;lt;HM-CC-RT-DN&amp;gt;_Clima regSet winOpnMode off&lt;br /&gt;
&lt;br /&gt;
==== Channel (Kanal) 05 _ClimaTeam ====&lt;br /&gt;
Dieser Kanal erlaubt es mehrere HM-CC-RT-DN zu einem &amp;quot;Team&amp;quot; zu gruppieren. Ein Mitglied des Teams meldet&lt;br /&gt;
* Änderungen der Temperatur am Handrad&lt;br /&gt;
* Einschalten des Boost-Modus am Taster&lt;br /&gt;
an seine &amp;quot;Teamkollegen&amp;quot; weiter. Folgende Änderungen werden &#039;&#039;&#039;nicht&#039;&#039;&#039; weitergegeben:&lt;br /&gt;
* Status der Fensterkontakte&lt;br /&gt;
* Temperaturlisten/Wochenplan und daraus folgende Änderungen&lt;br /&gt;
* Änderungen durch Fernbedienungen&lt;br /&gt;
* Änderungen durch eine HomeMatic-Zentrale&lt;br /&gt;
&lt;br /&gt;
Befehl zum Peeren, wobei &#039;&#039;&amp;lt;HM-CC-RT-DN#1&amp;gt;_ClimaTeam&#039;&#039; und &#039;&#039;&amp;lt;HM-CC-RT-DN#2&amp;gt;_ClimaTeam&#039;&#039; die Kanalbezeichnungen der beiden ClimaTeam-Kanäle sind:&lt;br /&gt;
 set &amp;lt;HM-CC-RT-DN#1&amp;gt;_ClimaTeam peerChan 0 &amp;lt;HM-CC-RT-DN#2&amp;gt;_ClimaTeam single&lt;br /&gt;
&lt;br /&gt;
==== Channel (Kanal) 06 _remote ====&lt;br /&gt;
Dieser Kanal kann an eine Fernbedienung gekoppelt werden. Per Tastendruck kann man einen bestimmten Mode und/oder eine bestimmte Temperatur wählen. Dabei kann die Reaktion auf einen langen oder kurzen Tastendruck gesondert eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
Der Befehl zum peeren lautet, wobei &amp;lt;button&amp;gt; die Kanalbezeichnung der Fernbedienung und &amp;lt;rt-remote&amp;gt; die Kanalbezeichnung des Heizkörperthermostates ist:&lt;br /&gt;
  set &amp;lt;button&amp;gt; peerChan 0 &amp;lt;HM-CC-RT-DN&amp;gt;_remote single&lt;br /&gt;
&lt;br /&gt;
=== Betriebsmodus Auto, Manu, Party (Urlaub) ===&lt;br /&gt;
&lt;br /&gt;
Der HM-CC-RT-DN verfügt über drei Betriebsmodus: Auto, Manu (Manuell) und Party (Urlaub).&lt;br /&gt;
&lt;br /&gt;
==== Modus Auto ====&lt;br /&gt;
Das Gerät arbeitet gemäß des gespeicherten Wochenprogramms. Manuelle Änderungen sind möglich, werden aber beim nächsten Schaltpunkt überschrieben.&lt;br /&gt;
&lt;br /&gt;
==== Modus Manu ====&lt;br /&gt;
Die Temperatur wird manuell eingestellt, das Wochenprogramm wird nicht abgearbeitet.&lt;br /&gt;
&lt;br /&gt;
==== Modus Party (Urlaub) ====&lt;br /&gt;
Die eingestellte Temperatur gilt bis zu einem gegebenen Endzeitpunkt, anschließend wechselt das Thermostat in den &#039;&#039;Auto&#039;&#039;-Modus. So kann beispielsweise bei Abwesenheit ein niedrigeres Temperaturprofil eingestellt werden ohne dass die Temperaturlisten verändert werden müssen.&lt;br /&gt;
&lt;br /&gt;
  set &amp;lt;HM-CC-RT-DN&amp;gt;_Clima controlParty 16 06.12.13 16:30 09.12.13 05:00&lt;br /&gt;
&lt;br /&gt;
Dadurch wird &lt;br /&gt;
* von 06.12.2013, 16:30 Uhr&lt;br /&gt;
* bis 09.12.2013, 05:00 Uhr &lt;br /&gt;
* die gewünschte Raumtemperatur auf 16 °C eingestellt.&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|&lt;br /&gt;
* Der Befehl muss auf dem Kanal 4 &#039;&#039;(_Clima)&#039;&#039; erfolgen.&lt;br /&gt;
* Es werden nur Uhrzeiten zu jeder vollen oder halben Stunde angenommen (Minuten also 00 oder 30).}}&lt;br /&gt;
&lt;br /&gt;
Mit der folgenden Funktion &amp;lt;code&amp;gt;Urlaub()&amp;lt;/code&amp;gt; kann man eine ganze Wohnung (also mehrere RTs) mit nur einem Befehl in den Party-Modus versetzen. Im Beispiel werden zwei Heizkörper (&amp;quot;Treppenhaus&amp;quot; und &amp;quot;Kammer&amp;quot;) angesteuert.&lt;br /&gt;
&lt;br /&gt;
Zu beachten sind folgende Dinge:&lt;br /&gt;
# Aktuelle Dateien (z.B. &amp;lt;code&amp;gt;10_CUL_HM&amp;lt;/code&amp;gt;) verwenden!&lt;br /&gt;
# Bei dem &#039;&#039;controlParty&#039;&#039;-Befehl &#039;&#039;kein&#039;&#039; Komma zwischen den Parametern.&lt;br /&gt;
# Bei der Funktion die Parameterübergabe definieren &amp;lt;code&amp;gt;($$$$$)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf:&#039;&#039;&#039;&lt;br /&gt;
:&amp;lt;code&amp;gt;{Urlaub (&amp;quot;16&amp;quot;, &amp;quot;06.12.13&amp;quot;, &amp;quot;16:30&amp;quot;, &amp;quot;09.12.13&amp;quot; ,&amp;quot;05:00&amp;quot;)}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Funktion:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=perl&amp;gt;&lt;br /&gt;
my $Urlaub;&lt;br /&gt;
sub&lt;br /&gt;
Urlaub($$$$$)&lt;br /&gt;
  {&lt;br /&gt;
    my ($temp, $startDate, $startTime, $endDate, $endTime) = @_;&lt;br /&gt;
 &lt;br /&gt;
    # HM-CC-RT-DN akzeptiert nur Zeiten, die auf Minute 00 oder 30 enden.&lt;br /&gt;
    # Daher $startTime und $endTime abrunden&lt;br /&gt;
    $startTime =~ s/\:[0-2].$/:00/;&lt;br /&gt;
    $startTime =~ s/\:[3-5].$/:30/;&lt;br /&gt;
    $endTime =~ s/\:[0-2].$/:00/;&lt;br /&gt;
    $endTime =~ s/\:[3-5].$/:30/;&lt;br /&gt;
&lt;br /&gt;
    # controlParty bei jedem HM-CC-RT-DN setzen.&lt;br /&gt;
    for my $rt (qw(Kammer Treppenhaus)) {&lt;br /&gt;
      fhem (&amp;quot;set $rt controlParty $temp $startDate $startTime $endDate $endTime&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tastensperre ===&lt;br /&gt;
&lt;br /&gt;
Um zu verhindern, dass der Modus oder die Temperatur per Tasten bzw. Drehrad am HM-CC-RT-DN verändert wird, kann eine Tastensperre gesetzt werden. Dies erfolgt mittels des Befehls:&lt;br /&gt;
&lt;br /&gt;
 set &amp;lt;HM-CC-RT-DN&amp;gt; regSet btnLock on&lt;br /&gt;
&lt;br /&gt;
Rückgängig machen geht per:&lt;br /&gt;
&lt;br /&gt;
 set &amp;lt;HM-CC-RT-DN&amp;gt; regSet btnLock off&lt;br /&gt;
&lt;br /&gt;
Diese Tastensperre kann man aber am HM-CC-RT-DN durch eine Tastenkombination wieder zurücksetzen. Um sie nur per Fhem rücksetzen zu können, muss&lt;br /&gt;
&lt;br /&gt;
 set &amp;lt;HM-CC-RT-DN&amp;gt; regSet globalBtnLock on&lt;br /&gt;
&lt;br /&gt;
eingegeben werden. Rückgängig geht wieder per:&lt;br /&gt;
&lt;br /&gt;
 set &amp;lt;HM-CC-RT-DN&amp;gt; regSet globalBtnLock off&lt;br /&gt;
&lt;br /&gt;
Es gibt auch eine Tastensperre die nur das Umschalten des Modus (Auto, Manuell, Urlaub) am Gerät verhindert. Diese wird mit&lt;br /&gt;
&lt;br /&gt;
 set &amp;lt;HM-CC-RT-DN&amp;gt; regSet modusBtnLock on&lt;br /&gt;
&lt;br /&gt;
eingeschaltet. Abschalten geht mit:&lt;br /&gt;
&lt;br /&gt;
 set &amp;lt;HM-CC-RT-DN&amp;gt; regSet modusBtnLock off&lt;br /&gt;
&lt;br /&gt;
=== Burst-Modus ===&lt;br /&gt;
Das ist ein &#039;&#039;&#039;Übertragungs&#039;&#039;&#039;modus für Nachrichten zwischen HM-Geräten und der Zentrale. Der RT erwacht alle 2,5 Minuten und dann überträgt die Zentrale die Kommandos. Wenn man einen Fensterkontakt oder eine Fernsteuerung nutzt, muss der RT sofort reagieren - dann muss man den Burst &#039;&#039;enablen&#039;&#039;. Der RT kann in diesem Fall sofort aufgeweckt werden und bearbeitet die Anforderung (Request). Das kann man auch von der Zentrale aus nutzen (so man möchte). Das ist der &#039;&#039;&#039;Vorteil&#039;&#039;&#039; des eingeschalteten Burst-Modus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Nachteil:&#039;&#039;&#039; Der Burst-Modus benötigt mehr Leistung, das heißt die Batterien müssen häufiger gewechselt werden: Der RT muss den Receiver ständig empfangsbereit halten. Außerdem wachen bei jedem Burst wachen &#039;&#039;alle&#039;&#039; Burst-Empfänger auf – egal an wen die Kommunikation gerichtet war.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Burst – wie es funktioniert&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Schickt ein Sender eine burst Sequenz, wachen alle burst-Empfänger auf und prüfen die Message. &lt;br /&gt;
Wenn sie betroffen sind bleiben sie eine Zeit lang wach, ansonsten schlafen sie wieder ein. &lt;br /&gt;
Man beachte also, dass Senden eines Burst  Energie in ALLEN burst-Empfängern verbraucht, egal ob sie angesprochen sind.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HMLAN und burst&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[HMLAN]] hat ein Sendebudget das über eine Stunde berechnet wird. Burst belastet diese Konto deutlich - so können nicht mehr als 100 bursts /h gesendet werden - dann geht HMLAN in overload Wenn zusätzliche Nachrichten gesendet werden sind es entsprechend weniger. &lt;br /&gt;
Es ist als nicht vorteilhaft, unnötig bursts zu senden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Burst devices&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Es gibt Devices, die immer auf burst reagieren und solche bei denen es abgeschaltet werden kann. So reagiert ein Rauchmelder immer auf Burst damit er seine Team-Kollegen hören kann. &lt;br /&gt;
Ein TC oder RT hingegen hat diese Funktion abschaltbar. &#039;Per default ist dies ausgeschaltet um Batterie zu sparen&#039;. Wenn ein VD gesteuert wird ist der TC ja selbst wach.  Wird er aber mit einem Fensterkontakt gekoppelt muss es eingeschaltet werden – sonst verpasst er die Nachricht. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ConditionalBurst devices&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Devices mit abschaltbarem Burst wie z.B. der &#039;&#039;HM-CC-RT-DN&#039;&#039; haben ein Register, &#039;&#039;burstRx&#039;&#039;, mit dem das burst-Erwachen eingestellt werden kann. &lt;br /&gt;
Sendern, die einen burst-Aktor erwecken sollen, muss man sagen, welcher Peer Burst benötigt. Hier kann ggf. das Register &#039;&#039;peerNeedsBurst&#039;&#039; nach dem Peeren gesetzt werden. FHEM versucht dies automatisch beim Peeren zu erledigen. Siehe [[HomeMatic HMInfo|HMinfo]] Befehl &#039;&#039;models&#039;&#039; um herauszufinden, welche Devices welchen Modus unterstützen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Attribut burstAccess&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Devices, die abschaltbaren burst haben kann man ein attribut bustAccess 1_auto setzen. Es wird beim Abschicken eines Kommandos versucht, das Device mit burst zu wecken. Sollte es nicht funktionieren wird gewartet, bis das Device aufwacht (meist reagieren solche Devices auch auf wakeup). Das Setzen des Attributs ist angenehm – es werden aber ggf. viele bursts gesendet.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Kommando burstXmit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Mit diesem Kommando, das bei Devices mit contitional-Burst zu Verfügung steht, wird der burst gezielt von User angestossen.&lt;br /&gt;
&lt;br /&gt;
Der User schickt erst seine Kommandos an das device. Die Kommandos werden im Command-stack gesammelt. &lt;br /&gt;
&lt;br /&gt;
Dann sendet der User ein set burstXmit.&lt;br /&gt;
&lt;br /&gt;
Es passiert das gleiche wie bei burstAccess.&lt;br /&gt;
&lt;br /&gt;
FHEM versucht mittels burst zu wecken und sendet bei Erfolg die Messages aus dem Kommandostack. &lt;br /&gt;
&lt;br /&gt;
Im Gegensatz zu burstAccess ist burstXmit gezielt einsetzbar und kann sparsamer verwendet werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; FHEM und burst devices&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
FHEM sendet eine burst automatisch mit Kommandos zu Devices, die nur burst unterstützen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;So aktiviert man den burst-Betrieb am HM-CC-RT-DN&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Burst Mode einschalten&#039;&#039; (der Kanal 4 des Device WZ1 heisst hier WZ1_4)&lt;br /&gt;
:&amp;lt;code&amp;gt;set WZ1_4 regSet burstRx on &amp;lt;/code&amp;gt;&lt;br /&gt;
prüfen mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;get WZ1_4 reg burstRx &amp;lt;/code&amp;gt;&lt;br /&gt;
&#039;&#039;Nun in FHEM den Burst mode einschalten (sofern nicht burstXmit verwendet wird)&#039;&#039;&lt;br /&gt;
:&amp;lt;code&amp;gt;attr WZ1 burstAccess 1_auto&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hinweis: Das Attribut im Device und nicht im Kanal setzen, ansonsten gibt es eine Fehlermeldung.&lt;br /&gt;
&lt;br /&gt;
=== Temperaturlisten ===&lt;br /&gt;
Die Temperaturlisten des HM-CC-RT-DN werden identisch mit denen anderer HomeMatic Thermostate verwaltet (siehe [[HomeMatic Type Thermostat#Temperaturlisten|HomeMatic Type Thermostat]]). Beim HM-CC-RT-DN ist der Kanal 4 (_Clima) für die Temperaturlisten zuständig.&lt;br /&gt;
&lt;br /&gt;
==Fhem-Log==&lt;br /&gt;
In den folgenden Logs heißt Kanal 4 noch &amp;quot;_ClimRT_tr&amp;quot;. Inzwischen würde man dort &amp;quot;_Clima&amp;quot; sehen.&lt;br /&gt;
&lt;br /&gt;
=== Device-Log ===&lt;br /&gt;
 2013.10.10 20:03:24 3: CUL_HM Unknown device CUL_HM_HM_CC_RT_DN_2212BC, please define it&lt;br /&gt;
 2013.10.10 20:03:24 2: autocreate: define CUL_HM_HM_CC_RT_DN_2212BC CUL_HM 2212BC A1A0184002212BC0000001000954B4551303531303031375900FFFF&lt;br /&gt;
 2013.10.10 20:03:24 3: Device CUL_HM_HM_CC_RT_DN_2212BC added to ActionDetector with 000:10 time&lt;br /&gt;
 2013.10.10 20:03:24 3: CUL_HM pair: CUL_HM_HM_CC_RT_DN_2212BC thermostat, model HM-CC-RT-DN serialNr KEQ0510017&lt;br /&gt;
 2013.10.10 20:03:24 3: LANCUL pairing (hmPairForSec) not enabled&lt;br /&gt;
 2013.10.10 20:03:24 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC-%Y.log CUL_HM_HM_CC_RT_DN_2212BC&lt;br /&gt;
 2013.10.10 20:03:24 3: Device Heizung_Wohnzimmer added to ActionDetector with 000:10 time&lt;br /&gt;
 2013.10.10 20:03:24 3: CUL_HM pair: Heizung_Wohnzimmer thermostat, model HM-CC-TC serialNr JEQ0044286&lt;br /&gt;
 2013.10.10 20:03:24 3: Device CUL_HM_HM_CC_RT_DN_2212BC added to ActionDetector with 000:10 time&lt;br /&gt;
 2013.10.10 20:03:24 3: CUL_HM pair: CUL_HM_HM_CC_RT_DN_2212BC thermostat, model HM-CC-RT-DN serialNr KEQ0510017&lt;br /&gt;
 2013.10.10 20:03:25 2: autocreate: define CUL_HM_HM_CC_RT_DN_2212BC_Weather CUL_HM 2212BC01&lt;br /&gt;
 2013.10.10 20:03:25 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC_Weather FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC_Weather-%Y.log CUL_HM_HM_CC_RT_DN_2212BC_Weather&lt;br /&gt;
 2013.10.10 20:03:25 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC_Weather FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC_Weather-%Y.log CUL_HM_HM_CC_RT_DN_2212BC_Weather&lt;br /&gt;
 2013.10.10 20:03:26 2: autocreate: define CUL_HM_HM_CC_RT_DN_2212BC_Climate CUL_HM 2212BC02&lt;br /&gt;
 2013.10.10 20:03:26 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC_Climate FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC_Climate-%Y.log CUL_HM_HM_CC_RT_DN_2212BC_Climate&lt;br /&gt;
 2013.10.10 20:03:26 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC_Climate FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC_Climate-%Y.log CUL_HM_HM_CC_RT_DN_2212BC_Climate&lt;br /&gt;
 2013.10.10 20:03:27 2: autocreate: define CUL_HM_HM_CC_RT_DN_2212BC_WindowRec CUL_HM 2212BC03&lt;br /&gt;
 2013.10.10 20:03:27 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC_WindowRec FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC_WindowRec-%Y.log CUL_HM_HM_CC_RT_DN_2212BC_WindowRec&lt;br /&gt;
 2013.10.10 20:03:27 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC_WindowRec FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC_WindowRec-%Y.log CUL_HM_HM_CC_RT_DN_2212BC_WindowRec&lt;br /&gt;
 2013.10.10 20:03:28 2: autocreate: define CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr CUL_HM 2212BC04&lt;br /&gt;
 2013.10.10 20:03:28 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr-%Y.log CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr&lt;br /&gt;
 2013.10.10 20:03:28 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr-%Y.log CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr&lt;br /&gt;
 2013.10.10 20:03:29 2: autocreate: define CUL_HM_HM_CC_RT_DN_2212BC_ClimaTeam CUL_HM 2212BC05&lt;br /&gt;
 2013.10.10 20:03:29 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC_ClimaTeam FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC_ClimaTeam-%Y.log CUL_HM_HM_CC_RT_DN_2212BC_ClimaTeam&lt;br /&gt;
 2013.10.10 20:03:29 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC_ClimaTeam FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC_ClimaTeam-%Y.log CUL_HM_HM_CC_RT_DN_2212BC_ClimaTeam&lt;br /&gt;
 2013.10.10 20:03:30 2: autocreate: define CUL_HM_HM_CC_RT_DN_2212BC_remote CUL_HM 2212BC06&lt;br /&gt;
 2013.10.10 20:03:30 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC_remote FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC_remote-%Y.log CUL_HM_HM_CC_RT_DN_2212BC_remote&lt;br /&gt;
 2013.10.10 20:03:30 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC_remote FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC_remote-%Y.log CUL_HM_HM_CC_RT_DN_2212BC_remote&lt;br /&gt;
 2013.10.10 20:03:35 3: Device CUL_HM_HM_CC_RT_DN_2212BC added to ActionDetector with 000:10 time&lt;br /&gt;
 2013.10.10 20:03:40 2: CUL_HM set CUL_HM_HM_CC_RT_DN_2212BC getSerial&lt;br /&gt;
 2013.10.10 20:03:40 2: CUL_HM set CUL_HM_HM_CC_RT_DN_2212BC getConfig&lt;br /&gt;
 2013.10.10 20:03:54 3: Device CUL_HM_HM_CC_RT_DN_2212BC added to ActionDetector with 000:10 time&lt;br /&gt;
&lt;br /&gt;
=== Event monitor ===&lt;br /&gt;
 2013-10-12 12:05:35.610 CUL_HM CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr motorErr: ok&lt;br /&gt;
 2013-10-12 12:05:35.610 CUL_HM CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr measured-temp: 18.4&lt;br /&gt;
 2013-10-12 12:05:35.610 CUL_HM CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr desired-temp: 18&lt;br /&gt;
 2013-10-12 12:05:35.610 CUL_HM CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr ValvePosition: 3 %&lt;br /&gt;
 2013-10-12 12:05:35.610 CUL_HM CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr mode: manu&lt;br /&gt;
 2013-10-12 12:05:35.610 CUL_HM CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr unknown0: 24&lt;br /&gt;
 2013-10-12 12:05:35.610 CUL_HM CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr T: 18.4 desired: 18 valve: 3 %&lt;br /&gt;
 2013-10-12 12:05:35.646 CUL_HM CUL_HM_HM_CC_RT_DN_2212BC battery: ok&lt;br /&gt;
 2013-10-12 12:05:35.646 CUL_HM CUL_HM_HM_CC_RT_DN_2212BC batteryLevel: 3.1 V&lt;br /&gt;
 2013-10-12 12:05:35.646 CUL_HM CUL_HM_HM_CC_RT_DN_2212BC measured-temp: 18.4&lt;br /&gt;
 2013-10-12 12:05:35.646 CUL_HM CUL_HM_HM_CC_RT_DN_2212BC desired-temp: 18&lt;br /&gt;
 2013-10-12 12:05:35.646 CUL_HM CUL_HM_HM_CC_RT_DN_2212BC actuator: 3 %&lt;br /&gt;
&lt;br /&gt;
== Firmware Update ==&lt;br /&gt;
Seit 24.10.2014 gibt es für den HM-CC-RT-DN die neue Firmware Version 1.4. Diese kann von der eQ-3 Webseite heruntergeladen werden. Genauere Informationen gibt es unter [[HomeMatic Firmware Update]].&lt;br /&gt;
&lt;br /&gt;
=== HM-CC-RT-DN spezifische Update Informationen ===&lt;br /&gt;
Durch gleichzeitiges Drücken der &amp;quot;Auto-/Manu&amp;quot;-Taste und der &amp;quot;Comfort-/Eco&amp;quot;-Taste am HM-CC-RT-DN während man die Batterien wieder einlegt wird der updatemodus gestartet. Während des Updates steht &amp;quot;FUP&amp;quot; im Display. Nach erfolgreichem Update erscheint &amp;quot;Ins&amp;quot; im Display und es muss eine erneute Adaptierfahrt durch drücken der Boost-Taste ausgelöst werden. Anschließend sollte der HM-CC-RT-DN wieder normal funktionieren. Die eingestellten Parameter und das Pairing mit FHEM gehen beim Update nicht verloren. Sollte das Update fehlschlagen, erscheint &amp;quot;Err&amp;quot; bzw. &amp;quot;CrC&amp;quot; im Display.&lt;br /&gt;
&lt;br /&gt;
Normalerweise sollte dann durch erneutes starten der Prozedur am PC und HM-CC-RT-DN das ganze erneut durchführbar sein.&lt;br /&gt;
&lt;br /&gt;
Es gibt einige Readings, die nicht durch ein einfaches &#039;&#039;getConfig&#039;&#039; aktualisisert werden, z.B. &amp;quot;battery&amp;quot;(nicht batteryLevel). Um diese Readings zu bekommen, ist ein &lt;br /&gt;
:&amp;lt;code&amp;gt;set Device_Channel04 controlMode auto &amp;lt;/code&amp;gt;&lt;br /&gt;
notwendig. Daraufhin werden die Readings übertragen/aktualisiert.&lt;br /&gt;
&lt;br /&gt;
== Simulation von Fensterkontakten und externen Temperatursensoren ==&lt;br /&gt;
grober Ablauf:&lt;br /&gt;
* erstellen ein virtuelles Device&lt;br /&gt;
* erstelle dazu einen virtuellen Kanal&lt;br /&gt;
* peeren den Kanal mit dem RT (als fenster-kontakt oder als remote, wen du willst)&lt;br /&gt;
* sende ein postEvent&lt;br /&gt;
&lt;br /&gt;
=== Fensterkontakte ===&lt;br /&gt;
&#039;&#039;Entnommen aus diesem {{Link2Forum|Topic=31078|Message=236245|LinkText=Forenbeitrag}}&#039;&#039;&lt;br /&gt;
 define virSC CUL_HM 221133&lt;br /&gt;
 attr virSC autoReadReg 4_reqStatus&lt;br /&gt;
 attr virSC expert 2_full&lt;br /&gt;
 attr virSC model virtual_1&lt;br /&gt;
 attr virSC peerIDs &lt;br /&gt;
 attr virSC subType virtual&lt;br /&gt;
 attr virSC webCmd press short:press long&lt;br /&gt;
 &lt;br /&gt;
 define virtualKitchenDoor CUL_HM 22113301&lt;br /&gt;
 attr virtualKitchenDoor dummy 1&lt;br /&gt;
 attr virtualKitchenDoor expert 1&lt;br /&gt;
 attr virtualKitchenDoor group Virtual&lt;br /&gt;
 attr virtualKitchenDoor model virtual_1&lt;br /&gt;
 attr virtualKitchenDoor webCmd postEvent open:postEvent closed &lt;br /&gt;
&lt;br /&gt;
Anschließend peeren und Temperatur festlegen mit:&lt;br /&gt;
 set virtualKitchenDoor peerChan 0 &amp;lt;Thermostat_Window_Rec&amp;gt; single set&lt;br /&gt;
 set &amp;lt;Thermostat_Window_Rec&amp;gt; regSet winOpnTemp 5 virtualKitchenDoor&lt;br /&gt;
&lt;br /&gt;
Die virtuelle Tür wird dann entsprechend über ein Notify getriggert:&lt;br /&gt;
 define notify_virtualKitchenDoor notify (Fensterkontakt_1|Fensterkontakt_2) {if(Value(&amp;quot;Fensterkontakt&amp;quot;) eq &amp;quot;open&amp;quot; &amp;amp;&amp;amp; Value(&amp;quot;Fensterkontakt_2&amp;quot;) eq &amp;quot;open&amp;quot;){fhem(&amp;quot;set virtualKitchenDoor postEvent open&amp;quot;)}else{fhem(&amp;quot;set virtualKitchenDoor postEvent closed&amp;quot;)}}&lt;br /&gt;
&lt;br /&gt;
=== Temperatursensoren ===&lt;br /&gt;
&#039;&#039;Entnommen aus diesem {{Link2Forum|Topic=19686|Message=233788|LinkText=Forenbeitrag}}&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Virtuelles HomeMatic Device mit _deiner_ HM Id definieren:&lt;br /&gt;
 define wz_vT CUL_HM &amp;lt;hmId&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Dem Device einen virtuellen Kanal (Default ist ein virtueller Button) hinzufügen:&lt;br /&gt;
 set wz_vT virtual 1&lt;br /&gt;
&lt;br /&gt;
3. Es ist kein virtueller Button sondern ein virtueller Temperatursensor - darum rename:&lt;br /&gt;
 rename wz_vT_Btn1 wz_vT_Sensor1&lt;br /&gt;
&lt;br /&gt;
4. Virtuellen Peer Sensor mit dem Weather Channel des RT-DN peeren:&lt;br /&gt;
 set wz_vT_Sensor1 peerChan 0 &amp;lt;RT_DN&amp;gt;_Weather single&lt;br /&gt;
&lt;br /&gt;
5. Peering kontrollieren (Voraussetzung: Device &#039;&#039;hm&#039;&#039; vom Typ [[HomeMatic HMInfo|HMinfo]] existiert):&lt;br /&gt;
:&amp;lt;code&amp;gt;set hm peerXref&amp;lt;/code&amp;gt;&lt;br /&gt;
Beispiel-Ausgabe:&lt;br /&gt;
 peerXref done: &lt;br /&gt;
 x-ref list &lt;br /&gt;
    wz_Thermostat_Weather =&amp;gt; wz_vT_Sensor1 &lt;br /&gt;
    wz_vT_Sensor1 =&amp;gt; wz_Thermostat_Weather&lt;br /&gt;
&lt;br /&gt;
6. Gemessene Temperatur vom z.B. 1-Wire DS1820 dem virtuellen HM Sensor übergeben. Z.B. alle zwei Minuten per at:&lt;br /&gt;
 define at_wz_vT at +*00:02 { my $T=(ReadingsVal(&amp;quot;&amp;lt;DS1820B&amp;gt;&amp;quot;,&amp;quot;temperature&amp;quot;,20.0)); fhem &amp;quot;set wz_vT_Sensor1 virtTemp $T&amp;quot; }&lt;br /&gt;
&lt;br /&gt;
Fertig.&lt;br /&gt;
&lt;br /&gt;
== Bekannte Probleme ==&lt;br /&gt;
=== TempList: Bad format ... ===&lt;br /&gt;
Wenn Sie beim Setzen einer Temperaturliste nach dem o.a. Schema (&amp;quot;SetTempList...&amp;quot;) die Meldung&lt;br /&gt;
&lt;br /&gt;
 Bad format, use HH:MM TEMP ......&lt;br /&gt;
&lt;br /&gt;
erhalten, sollten Sie zunächst ein [[update]] von Fhem durchführen.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [http://www.eq-3.de/produkt-detail-aktoren/items/homematic-funk-heizkoerperthermostat.html Produktinfo]&lt;br /&gt;
* [http://www.eq-3.de/Downloads/eq3/pdf_produkte/HM-CC-RT-DN_UM_GE_eQ-3_web.pdf Bedienungsanleitung (PDF)]&lt;br /&gt;
* [http://www.eq-3.de/Downloads/eq3/pdf_produkte/Funk-Heizkoerperthermostat_105155_Produktdatenblatt_V2.2.pdf Datenblatt (PDF)]&lt;br /&gt;
* [http://www.eq-3.de/Downloads/eq3/downloads/Ventilkompatibilitaeten.pdf Ventil-Kompatibilitätsliste (PDF)]&lt;br /&gt;
* {{Link2Forum|Topic=14738|LinkText=Forenthema zum Thermostat}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HomeMatic Components]]&lt;br /&gt;
[[Kategorie:Heizungsventile]]&lt;/div&gt;</summary>
		<author><name>Stephan1965</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=HM-CC-RT-DN_Funk-Heizk%C3%B6rperthermostat&amp;diff=16956</id>
		<title>HM-CC-RT-DN Funk-Heizkörperthermostat</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=HM-CC-RT-DN_Funk-Heizk%C3%B6rperthermostat&amp;diff=16956"/>
		<updated>2016-11-01T12:17:21Z</updated>

		<summary type="html">&lt;p&gt;Stephan1965: /* Channel (Kanal) 06 _remote */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Hardware&lt;br /&gt;
|Bild=HM-CC-RT-DN.jpg&lt;br /&gt;
|Bildbeschreibung=HM-CC-RT-DN an Heizkörper montiert&lt;br /&gt;
|HWProtocol=[[HomeMatic]]&lt;br /&gt;
|HWType=[[HomeMatic Type Thermostat|thermostat]]&lt;br /&gt;
|HWCategory=[[:Kategorie:Heizungsventile|Heizungsventile]]&lt;br /&gt;
|HWComm=868 MHz&lt;br /&gt;
|HWChannels=6&lt;br /&gt;
|HWVoltage=3&amp;amp;nbsp;V&lt;br /&gt;
|HWPowerConsumption=180&amp;amp;nbsp;mA&lt;br /&gt;
|HWPoweredBy=2x LR6/Mignon/AA&lt;br /&gt;
|HWSize=54x65x93 mm (BxHxT)&lt;br /&gt;
|HWDeviceFHEM=[[CUL_HM]]&lt;br /&gt;
&amp;lt;!-- |ModOwner=  --&amp;gt;&lt;br /&gt;
|HWManufacturer=ELV / eQ-3&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HM-CC-RT-DN&#039;&#039;&#039; (häufig einfach &#039;&#039;&#039;RT&#039;&#039;&#039; genannt) ist ein Funk-&#039;&#039;Heizkörperthermostate&#039;&#039; mit integriertem &#039;&#039;Stellantrieb&#039;&#039;. Das Thermostat ist seit September&amp;amp;nbsp;2013 verfügbar und ist der Nachfolger des [[HM-CC-VD Funk-Stellantrieb]]s.&lt;br /&gt;
&lt;br /&gt;
== Vorbemerkungen ==&lt;br /&gt;
: &#039;&#039;→ Einstellungen und Informationen, die alle [[HomeMatic]] Thermostate betreffen, sind unter [[HomeMatic Type Thermostat#Temperaturlisten|HomeMatic Type Thermostat]] zu finden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der HM-CC-RT-DN kann die Temperatur selbst messen (im Gegensatz zum [[HM-CC-VD Funk-Stellantrieb|Vorgänger]]) und verfügt über eine Fenster-Offen-Erkennung sowie eine Boost-Funktion. Der HM-CC-RT-DN &#039;&#039;kann&#039;&#039; von einem [[HM-TC-IT-WM-W-EU Funk-Wandthermostat AP]] gesteuert werden, das ist aber &#039;&#039;optional&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Das Gerät wird seit Anfang Oktober 2013 von Fhem unterstützt (siehe Diskussion im {{Link2Forum|Topic=14738|LinkText=Forum}}).&lt;br /&gt;
&lt;br /&gt;
Der HM-CC-RT-DN scheint das erste HomeMatic-Device zu sein, bei dem ein Update der Firmware auch vom Anwender durchgeführt werden kann. Ein Firmware-Update erfordert einen [[HM-CFG-USB_USB_Konfigurations-Adapter|USB Konfigurations-Adapter]] und eine auf der eQ-3 Webseite herunterladbare Firmwareupdate-Software. Weitere Details sind unter [[#Firmware Update|Firmware Update]] beschrieben.&lt;br /&gt;
{{Hinweis|Die Solltemperaturen eines HM-CC-RT-DN lassen sich &#039;&#039;nicht&#039;&#039; durch einen [[HM-CC-TC Funk-Wandthermostat]] &#039;&#039;steuern&#039;&#039;. Dieser kann nur die Ist-Temperatur an den HM-CC-RT-DN weitergeben, damit nicht die am HM-CC-RT-DN direkt gemessene Raumtemperatur zur Regelung verwendet wird.}}&lt;br /&gt;
Mit einem HM-CC-RT-DN können maximal (neben der Zentrale/Fhem):&lt;br /&gt;
* 7 HomeMatic Heizkörperthermostate&lt;br /&gt;
* 8 HomeMatic Tür-Fensterkontakte / Fenster-Drehgriffkontakte&lt;br /&gt;
* 8 Tastenpaare von HomeMatic Fernbedienungen bzw. Display-Wandtaster&lt;br /&gt;
* 1 HomeMatic Innen-Temperatur-Sensor&lt;br /&gt;
[[Peering (HomeMatic)|gepeert]] werden.&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Wird für Wartungs-/Umbaumaßnahmen das Wasser der Heizung abgelassen bzw. diese neubefüllt, sind alle Stellantriebe manuell dauerhaft auf &#039;&#039;&#039;on&#039;&#039;&#039; zu setzen: set &amp;lt;HM_Stellantrieb&amp;gt;_Clima controlManu on. Beim Einsatz eines Wandthermostaten ist der Wandthermostat entsprechend einzustellen.}}&lt;br /&gt;
&lt;br /&gt;
== Technische Daten ==&lt;br /&gt;
* Betriebsspannung: 2 Stck. 1,5V LR6/Mignon/AA&lt;br /&gt;
* Stromaufnahme: 180 mA max.&lt;br /&gt;
* Abmessungen (B x H x T): 54 x 65 x 93 mm&lt;br /&gt;
* Gewicht: 180 g (ohne Batterien)&lt;br /&gt;
* Ventilanschluss: M30 x 1,5 mm&lt;br /&gt;
&lt;br /&gt;
Aktuelle Firmware: 1.4&lt;br /&gt;
&lt;br /&gt;
== Betrieb mit FHEM ==&lt;br /&gt;
Der Funk-Heizkörperthermostat muss zuerst mit Fhem [[Pairing (HomeMatic)|gepairt]] werden. Stellen Sie sicher, dass Fhem aktuell ist (update durchführen)&lt;br /&gt;
&lt;br /&gt;
Das Pairing sollte wie in [[HomeMatic Devices pairen]] beschrieben durchgeführt werden &lt;br /&gt;
&lt;br /&gt;
=== Channels (Kanäle) ===&lt;br /&gt;
==== Channel (Kanal) 01 _Weather ====&lt;br /&gt;
&lt;br /&gt;
Dieser Kanal dient zur Einspeisung der (gemessenen) &#039;&#039;Ist-Temperatur&#039;&#039;. Als Sensor können zum Beispiel das [[HM-TC-IT-WM-W-EU Funk-Wandthermostat AP|HM-TC-IT-WM-W-EU Funk-Wandthermostat]] oder ein [[HM-WDS40-TH-I Funk-Temperatur-/Feuchtesensor innen (IT)|HM-WDS40-TH-I Funk-Temperatur-/Feuchtesensor]] dienen.&lt;br /&gt;
&lt;br /&gt;
Ein Temperatur-Sensor &#039;&#039;tempSensor&#039;&#039; kann mit dem &#039;&#039;_Weather&#039;&#039;-Kanal wie folgt [[Peering (HomeMatic)|gepeert]] werden: &lt;br /&gt;
&lt;br /&gt;
  set &amp;lt;tempSensor&amp;gt; peerChan 0 &amp;lt;HM-CC-RT-DN&amp;gt;_Weather single&lt;br /&gt;
&lt;br /&gt;
==== Channel (Kanal) 02 _Climate ====&lt;br /&gt;
Dieser Kanal erlaubt es dem [[HM-TC-IT-WM-W-EU Funk-Wandthermostat AP|HM-TC-IT-WM-W-EU Funk-Wandthermostat]] den HM-CC-RT-DN zu steuern. Dazu müssen die beiden Geräte gepeert werden:&lt;br /&gt;
&lt;br /&gt;
  set &amp;lt;HM-TC-IT-WM-W-EU&amp;gt;_Climate peerChan 0 &amp;lt;HM-CC-RT-DN&amp;gt;_Climate single set&lt;br /&gt;
&lt;br /&gt;
==== Channel (Kanal) 03 _WindowRec ====&lt;br /&gt;
Mit diesem Kanal können Fensterkontakte ([[HM-SEC-SC Tür-Fensterkontakt|HM-SEC-SC]] und [[HM-Sec-RHS Funk-Fenster-Drehgriffkontakt|HM-SEC-RHS]]) ihren Fensterstatus (geöffnet / gekippt) an ein oder mehrere Thermostate senden. Die Thermostate stellen anschließend die entsprechende (konfigurierbare) Temperatur ein. Der Temperaturwert kann je Fenster-Sensor unterschiedlich definiert werden. Sind mehrere Fenster gleichzeitig geöffnet, so wird der Thermostat auf die Temperatur des Sensors mit dem geringsten Temperaturwert eingestellt. &lt;br /&gt;
Ferner wird empfohlen, bei Einsatz von externen Sensoren, die interne „Fenster auf Erkennung“ zu deaktivieren (weitere Details sind im [[HM-CC-RT-DN Funk-Heizkörperthermostat#Channel .28Kanal.29 04 _Clima|Channel (Kanal) 04 _Clima]] beschrieben).&lt;br /&gt;
&lt;br /&gt;
Der Befehl zum Peeren lautet, wobei &amp;lt;fensterSensor&amp;gt; die Fhem-Kanalbezeichnung für den Fensterkontakt ist und &amp;lt;rt_WindowRec&amp;gt; die Kanalbezeichnung für den entsprechenden Kanal des Heizkörperthermostates:&lt;br /&gt;
 set &amp;lt;fensterSensor&amp;gt; peerChan 0 &amp;lt;HM-CC-RT-DN&amp;gt;_WindowRec single&lt;br /&gt;
&lt;br /&gt;
Zum Löschen (=unpeeren) dieser Kopplung:&lt;br /&gt;
 set &amp;lt;fensterSensor&amp;gt; peerChan 0 &amp;lt;HM-CC-RT-DN&amp;gt;_WindowRec single unset&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung&#039;&#039;&#039;: Der Peer-(Lösch)Vorgang muss am Fensterkontakt durch Drücken der Anlerntaste bestätigt werden, und zwar auch dann, wenn der Fensterkontakt schon vorher mit Fhem gepairt wurde. Wichtig scheint auch, dass der Fensterkontakt geschlossen ist wenn man die Anlerntaste drückt.&lt;br /&gt;
&lt;br /&gt;
Der Befehl zur Temperatureinstellung des Heizkörperthermostaten für den Zustand &amp;quot;Fenster offen&amp;quot; lautet, wobei &amp;lt;fensterSensor&amp;gt; die Fhem-Kanalbezeichnung für den Fensterkontakt ist und &amp;lt;rt_WindowRec&amp;gt; die Kanalbezeichnung für den entsprechenden Kanal des Heizkörperthermostates, sowie &amp;lt;Temp&amp;gt; die einzustellende Temperatur (ganzzahliger Wert):&lt;br /&gt;
 set &amp;lt;HM-CC-RT-DN&amp;gt;_WindowRec regSet winOpnTemp &amp;lt;Temp&amp;gt; &amp;lt;fensterSensor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Channel (Kanal) 04 _Clima ====&lt;br /&gt;
Dieser Kanal dient zum Einstellen der Betriebsparameter, auch [[#Temperaturlisten|Temperaturlisten]] sind hierauf zu übertragen.&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|In älteren Versionen von Fhem wurde dieser Kanal durch &#039;&#039;autocreate&#039;&#039; als &amp;lt;code&amp;gt;_ClimRT_tr&amp;lt;/code&amp;gt; angelegt. Der Hersteller hat hier offenbar die internen Bezeichnungen geändert, denn beim Vorläufernmodell HM-CC-TC mussten Temperaturlisten auf den Kanal &#039;&#039;Climate&#039;&#039; übertragen werden.}}&lt;br /&gt;
&lt;br /&gt;
Die maximale Öffnung des Ventils kann mittels folgendem Befehl eingestellt werden (hier auf 80 %):&lt;br /&gt;
  set &amp;lt;HM-CC-RT-DN&amp;gt;_Clima regSet valveMaxPos 80&lt;br /&gt;
&lt;br /&gt;
Die interne &amp;quot;Fenster-auf&amp;quot;-Erkennung kann man wie folgt abschalten:&lt;br /&gt;
  set &amp;lt;HM-CC-RT-DN&amp;gt;_Clima regSet winOpnMode off&lt;br /&gt;
&lt;br /&gt;
==== Channel (Kanal) 05 _ClimaTeam ====&lt;br /&gt;
Dieser Kanal erlaubt es mehrere HM-CC-RT-DN zu einem &amp;quot;Team&amp;quot; zu gruppieren. Ein Mitglied des Teams meldet&lt;br /&gt;
* Änderungen der Temperatur am Handrad&lt;br /&gt;
* Einschalten des Boost-Modus am Taster&lt;br /&gt;
an seine &amp;quot;Teamkollegen&amp;quot; weiter. Folgende Änderungen werden &#039;&#039;&#039;nicht&#039;&#039;&#039; weitergegeben:&lt;br /&gt;
* Status der Fensterkontakte&lt;br /&gt;
* Temperaturlisten/Wochenplan und daraus folgende Änderungen&lt;br /&gt;
* Änderungen durch Fernbedienungen&lt;br /&gt;
* Änderungen durch eine HomeMatic-Zentrale&lt;br /&gt;
&lt;br /&gt;
Befehl zum Peeren, wobei &#039;&#039;&amp;lt;HM-CC-RT-DN#1&amp;gt;_ClimaTeam&#039;&#039; und &#039;&#039;&amp;lt;HM-CC-RT-DN#2&amp;gt;_ClimaTeam&#039;&#039; die Kanalbezeichnungen der beiden ClimaTeam-Kanäle sind:&lt;br /&gt;
 set &amp;lt;HM-CC-RT-DN#1&amp;gt;_ClimaTeam peerChan 0 &amp;lt;HM-CC-RT-DN#2&amp;gt;_ClimaTeam single&lt;br /&gt;
&lt;br /&gt;
==== Channel (Kanal) 06 _remote ====&lt;br /&gt;
Dieser Kanal kann an eine Fernbedienung gekoppelt werden. Per Tastendruck kann man einen bestimmten Mode und/oder eine bestimmte Temperatur wählen. Dabei kann die Reaktion auf einen langen oder kurzen Tastendruck gesondert eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
Der Befehl zum peeren lautet, wobei &amp;lt;button&amp;gt; die Kanalbezeichnung der Fernbedienung und &amp;lt;rt-remote&amp;gt; die Kanalbezeichnung des Heizkörperthermostates ist:&lt;br /&gt;
  set &amp;lt;button&amp;gt; peerChan 0 &amp;lt;HM-CC-RT-DN&amp;gt;_remote single&lt;br /&gt;
&lt;br /&gt;
=== Betriebsmodus Auto, Manu, Party (Urlaub) ===&lt;br /&gt;
&lt;br /&gt;
Der HM-CC-RT-DN verfügt über drei Betriebsmodus: Auto, Manu (Manuell) und Party (Urlaub).&lt;br /&gt;
&lt;br /&gt;
==== Modus Auto ====&lt;br /&gt;
Das Gerät arbeitet gemäß des gespeicherten Wochenprogramms. Manuelle Änderungen sind möglich, werden beim nächsten Schaltpunkt überschrieben.&lt;br /&gt;
&lt;br /&gt;
==== Modus Manu ====&lt;br /&gt;
Die Temperatur wird manuell eingestellt, das Wochenprogramm wird nicht abgearbeitet.&lt;br /&gt;
&lt;br /&gt;
==== Modus Party (Urlaub) ====&lt;br /&gt;
Die eingestellte Temperatur gilt bis zu einem gegebenen Endzeitpunkt, anschließend wechselt das Thermostat in den &#039;&#039;Auto&#039;&#039;-Modus. So kann beispielsweise bei Abwesenheit ein niedrigeres Temperaturprofil eingestellt werden ohne dass die Temperaturlisten verändert werden müssen.&lt;br /&gt;
&lt;br /&gt;
  set &amp;lt;HM-CC-RT-DN&amp;gt;_Clima controlParty 16 06.12.13 16:30 09.12.13 05:00&lt;br /&gt;
&lt;br /&gt;
Dadurch wird &lt;br /&gt;
* von 06.12.2013, 16:30 Uhr&lt;br /&gt;
* bis 09.12.2013, 05:00 Uhr &lt;br /&gt;
* die gewünschte Raumtemperatur auf 16 °C eingestellt.&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|&lt;br /&gt;
* Der Befehl muss auf dem Kanal 4 &#039;&#039;(_Clima)&#039;&#039; erfolgen.&lt;br /&gt;
* Es werden nur Uhrzeiten zu jeder vollen oder halben Stunde angenommen (Minuten also 00 oder 30).}}&lt;br /&gt;
&lt;br /&gt;
Mit der folgenden Funktion &amp;lt;code&amp;gt;Urlaub()&amp;lt;/code&amp;gt; kann man eine ganze Wohnung (also mehrere RTs) mit nur einem Befehl in den Party-Modus versetzen. Im Beispiel werden zwei Heizkörper (&amp;quot;Treppenhaus&amp;quot; und &amp;quot;Kammer&amp;quot;) angesteuert.&lt;br /&gt;
&lt;br /&gt;
Zu beachten sind folgende Dinge:&lt;br /&gt;
# Aktuelle Dateien (z.B. &amp;lt;code&amp;gt;10_CUL_HM&amp;lt;/code&amp;gt;) verwenden!&lt;br /&gt;
# Bei dem &#039;&#039;controlParty&#039;&#039;-Befehl &#039;&#039;kein&#039;&#039; Komma zwischen den Parametern.&lt;br /&gt;
# Bei der Funktion die Parameterübergabe definieren &amp;lt;code&amp;gt;($$$$$)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf:&#039;&#039;&#039;&lt;br /&gt;
:&amp;lt;code&amp;gt;{Urlaub (&amp;quot;16&amp;quot;, &amp;quot;06.12.13&amp;quot;, &amp;quot;16:30&amp;quot;, &amp;quot;09.12.13&amp;quot; ,&amp;quot;05:00&amp;quot;)}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Funktion:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=perl&amp;gt;&lt;br /&gt;
my $Urlaub;&lt;br /&gt;
sub&lt;br /&gt;
Urlaub($$$$$)&lt;br /&gt;
  {&lt;br /&gt;
    my ($temp, $startDate, $startTime, $endDate, $endTime) = @_;&lt;br /&gt;
 &lt;br /&gt;
    # HM-CC-RT-DN akzeptiert nur Zeiten, die auf Minute 00 oder 30 enden.&lt;br /&gt;
    # Daher $startTime und $endTime abrunden&lt;br /&gt;
    $startTime =~ s/\:[0-2].$/:00/;&lt;br /&gt;
    $startTime =~ s/\:[3-5].$/:30/;&lt;br /&gt;
    $endTime =~ s/\:[0-2].$/:00/;&lt;br /&gt;
    $endTime =~ s/\:[3-5].$/:30/;&lt;br /&gt;
&lt;br /&gt;
    # controlParty bei jedem HM-CC-RT-DN setzen.&lt;br /&gt;
    for my $rt (qw(Kammer Treppenhaus)) {&lt;br /&gt;
      fhem (&amp;quot;set $rt controlParty $temp $startDate $startTime $endDate $endTime&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tastensperre ===&lt;br /&gt;
&lt;br /&gt;
Um zu verhindern, dass der Modus oder die Temperatur per Tasten bzw. Drehrad am HM-CC-RT-DN verändert wird, kann eine Tastensperre gesetzt werden. Dies erfolgt mittels des Befehls:&lt;br /&gt;
&lt;br /&gt;
 set &amp;lt;HM-CC-RT-DN&amp;gt; regSet btnLock on&lt;br /&gt;
&lt;br /&gt;
Rückgängig machen geht per:&lt;br /&gt;
&lt;br /&gt;
 set &amp;lt;HM-CC-RT-DN&amp;gt; regSet btnLock off&lt;br /&gt;
&lt;br /&gt;
Diese Tastensperre kann man aber am HM-CC-RT-DN durch eine Tastenkombination wieder zurücksetzen. Um sie nur per Fhem rücksetzen zu können, muss&lt;br /&gt;
&lt;br /&gt;
 set &amp;lt;HM-CC-RT-DN&amp;gt; regSet globalBtnLock on&lt;br /&gt;
&lt;br /&gt;
eingegeben werden. Rückgängig geht wieder per:&lt;br /&gt;
&lt;br /&gt;
 set &amp;lt;HM-CC-RT-DN&amp;gt; regSet globalBtnLock off&lt;br /&gt;
&lt;br /&gt;
Es gibt auch eine Tastensperre die nur das Umschalten des Modus (Auto, Manuell, Urlaub) am Gerät verhindert. Diese wird mit&lt;br /&gt;
&lt;br /&gt;
 set &amp;lt;HM-CC-RT-DN&amp;gt; regSet modusBtnLock on&lt;br /&gt;
&lt;br /&gt;
eingeschaltet. Abschalten geht mit:&lt;br /&gt;
&lt;br /&gt;
 set &amp;lt;HM-CC-RT-DN&amp;gt; regSet modusBtnLock off&lt;br /&gt;
&lt;br /&gt;
=== Burst-Modus ===&lt;br /&gt;
Das ist ein &#039;&#039;&#039;Übertragungs&#039;&#039;&#039;modus für Nachrichten zwischen HM-Geräten und der Zentrale. Der RT erwacht alle 2,5 Minuten und dann überträgt die Zentrale die Kommandos. Wenn man einen Fensterkontakt oder eine Fernsteuerung nutzt, muss der RT sofort reagieren - dann muss man den Burst &#039;&#039;enablen&#039;&#039;. Der RT kann in diesem Fall sofort aufgeweckt werden und bearbeitet die Anforderung (Request). Das kann man auch von der Zentrale aus nutzen (so man möchte). Das ist der &#039;&#039;&#039;Vorteil&#039;&#039;&#039; des eingeschalteten Burst-Modus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Nachteil:&#039;&#039;&#039; Der Burst-Modus benötigt mehr Leistung, das heißt die Batterien müssen häufiger gewechselt werden: Der RT muss den Receiver ständig empfangsbereit halten. Außerdem wachen bei jedem Burst wachen &#039;&#039;alle&#039;&#039; Burst-Empfänger auf – egal an wen die Kommunikation gerichtet war.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Burst – wie es funktioniert&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Schickt ein Sender eine burst Sequenz, wachen alle burst-Empfänger auf und prüfen die Message. &lt;br /&gt;
Wenn sie betroffen sind bleiben sie eine Zeit lang wach, ansonsten schlafen sie wieder ein. &lt;br /&gt;
Man beachte also, dass Senden eines Burst  Energie in ALLEN burst-Empfängern verbraucht, egal ob sie angesprochen sind.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HMLAN und burst&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[HMLAN]] hat ein Sendebudget das über eine Stunde berechnet wird. Burst belastet diese Konto deutlich - so können nicht mehr als 100 bursts /h gesendet werden - dann geht HMLAN in overload Wenn zusätzliche Nachrichten gesendet werden sind es entsprechend weniger. &lt;br /&gt;
Es ist als nicht vorteilhaft, unnötig bursts zu senden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Burst devices&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Es gibt Devices, die immer auf burst reagieren und solche bei denen es abgeschaltet werden kann. So reagiert ein Rauchmelder immer auf Burst damit er seine Team-Kollegen hören kann. &lt;br /&gt;
Ein TC oder RT hingegen hat diese Funktion abschaltbar. &#039;Per default ist dies ausgeschaltet um Batterie zu sparen&#039;. Wenn ein VD gesteuert wird ist der TC ja selbst wach.  Wird er aber mit einem Fensterkontakt gekoppelt muss es eingeschaltet werden – sonst verpasst er die Nachricht. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ConditionalBurst devices&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Devices mit abschaltbarem Burst wie z.B. der &#039;&#039;HM-CC-RT-DN&#039;&#039; haben ein Register, &#039;&#039;burstRx&#039;&#039;, mit dem das burst-Erwachen eingestellt werden kann. &lt;br /&gt;
Sendern, die einen burst-Aktor erwecken sollen, muss man sagen, welcher Peer Burst benötigt. Hier kann ggf. das Register &#039;&#039;peerNeedsBurst&#039;&#039; nach dem Peeren gesetzt werden. FHEM versucht dies automatisch beim Peeren zu erledigen. Siehe [[HomeMatic HMInfo|HMinfo]] Befehl &#039;&#039;models&#039;&#039; um herauszufinden, welche Devices welchen Modus unterstützen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Attribut burstAccess&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Devices, die abschaltbaren burst haben kann man ein attribut bustAccess 1_auto setzen. Es wird beim Abschicken eines Kommandos versucht, das Device mit burst zu wecken. Sollte es nicht funktionieren wird gewartet, bis das Device aufwacht (meist reagieren solche Devices auch auf wakeup). Das Setzen des Attributs ist angenehm – es werden aber ggf. viele bursts gesendet.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Kommando burstXmit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Mit diesem Kommando, das bei Devices mit contitional-Burst zu Verfügung steht, wird der burst gezielt von User angestossen.&lt;br /&gt;
&lt;br /&gt;
Der User schickt erst seine Kommandos an das device. Die Kommandos werden im Command-stack gesammelt. &lt;br /&gt;
&lt;br /&gt;
Dann sendet der User ein set burstXmit.&lt;br /&gt;
&lt;br /&gt;
Es passiert das gleiche wie bei burstAccess.&lt;br /&gt;
&lt;br /&gt;
FHEM versucht mittels burst zu wecken und sendet bei Erfolg die Messages aus dem Kommandostack. &lt;br /&gt;
&lt;br /&gt;
Im Gegensatz zu burstAccess ist burstXmit gezielt einsetzbar und kann sparsamer verwendet werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; FHEM und burst devices&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
FHEM sendet eine burst automatisch mit Kommandos zu Devices, die nur burst unterstützen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;So aktiviert man den burst-Betrieb am HM-CC-RT-DN&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Burst Mode einschalten&#039;&#039; (der Kanal 4 des Device WZ1 heisst hier WZ1_4)&lt;br /&gt;
:&amp;lt;code&amp;gt;set WZ1_4 regSet burstRx on &amp;lt;/code&amp;gt;&lt;br /&gt;
prüfen mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;get WZ1_4 reg burstRx &amp;lt;/code&amp;gt;&lt;br /&gt;
&#039;&#039;Nun in FHEM den Burst mode einschalten (sofern nicht burstXmit verwendet wird)&#039;&#039;&lt;br /&gt;
:&amp;lt;code&amp;gt;attr WZ1 burstAccess 1_auto&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hinweis: Das Attribut im Device und nicht im Kanal setzen, ansonsten gibt es eine Fehlermeldung.&lt;br /&gt;
&lt;br /&gt;
=== Temperaturlisten ===&lt;br /&gt;
Die Temperaturlisten des HM-CC-RT-DN werden identisch mit denen anderer HomeMatic Thermostate verwaltet (siehe [[HomeMatic Type Thermostat#Temperaturlisten|HomeMatic Type Thermostat]]). Beim HM-CC-RT-DN ist der Kanal 4 (_Clima) für die Temperaturlisten zuständig.&lt;br /&gt;
&lt;br /&gt;
==Fhem-Log==&lt;br /&gt;
In den folgenden Logs heißt Kanal 4 noch &amp;quot;_ClimRT_tr&amp;quot;. Inzwischen würde man dort &amp;quot;_Clima&amp;quot; sehen.&lt;br /&gt;
&lt;br /&gt;
=== Device-Log ===&lt;br /&gt;
 2013.10.10 20:03:24 3: CUL_HM Unknown device CUL_HM_HM_CC_RT_DN_2212BC, please define it&lt;br /&gt;
 2013.10.10 20:03:24 2: autocreate: define CUL_HM_HM_CC_RT_DN_2212BC CUL_HM 2212BC A1A0184002212BC0000001000954B4551303531303031375900FFFF&lt;br /&gt;
 2013.10.10 20:03:24 3: Device CUL_HM_HM_CC_RT_DN_2212BC added to ActionDetector with 000:10 time&lt;br /&gt;
 2013.10.10 20:03:24 3: CUL_HM pair: CUL_HM_HM_CC_RT_DN_2212BC thermostat, model HM-CC-RT-DN serialNr KEQ0510017&lt;br /&gt;
 2013.10.10 20:03:24 3: LANCUL pairing (hmPairForSec) not enabled&lt;br /&gt;
 2013.10.10 20:03:24 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC-%Y.log CUL_HM_HM_CC_RT_DN_2212BC&lt;br /&gt;
 2013.10.10 20:03:24 3: Device Heizung_Wohnzimmer added to ActionDetector with 000:10 time&lt;br /&gt;
 2013.10.10 20:03:24 3: CUL_HM pair: Heizung_Wohnzimmer thermostat, model HM-CC-TC serialNr JEQ0044286&lt;br /&gt;
 2013.10.10 20:03:24 3: Device CUL_HM_HM_CC_RT_DN_2212BC added to ActionDetector with 000:10 time&lt;br /&gt;
 2013.10.10 20:03:24 3: CUL_HM pair: CUL_HM_HM_CC_RT_DN_2212BC thermostat, model HM-CC-RT-DN serialNr KEQ0510017&lt;br /&gt;
 2013.10.10 20:03:25 2: autocreate: define CUL_HM_HM_CC_RT_DN_2212BC_Weather CUL_HM 2212BC01&lt;br /&gt;
 2013.10.10 20:03:25 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC_Weather FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC_Weather-%Y.log CUL_HM_HM_CC_RT_DN_2212BC_Weather&lt;br /&gt;
 2013.10.10 20:03:25 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC_Weather FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC_Weather-%Y.log CUL_HM_HM_CC_RT_DN_2212BC_Weather&lt;br /&gt;
 2013.10.10 20:03:26 2: autocreate: define CUL_HM_HM_CC_RT_DN_2212BC_Climate CUL_HM 2212BC02&lt;br /&gt;
 2013.10.10 20:03:26 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC_Climate FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC_Climate-%Y.log CUL_HM_HM_CC_RT_DN_2212BC_Climate&lt;br /&gt;
 2013.10.10 20:03:26 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC_Climate FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC_Climate-%Y.log CUL_HM_HM_CC_RT_DN_2212BC_Climate&lt;br /&gt;
 2013.10.10 20:03:27 2: autocreate: define CUL_HM_HM_CC_RT_DN_2212BC_WindowRec CUL_HM 2212BC03&lt;br /&gt;
 2013.10.10 20:03:27 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC_WindowRec FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC_WindowRec-%Y.log CUL_HM_HM_CC_RT_DN_2212BC_WindowRec&lt;br /&gt;
 2013.10.10 20:03:27 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC_WindowRec FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC_WindowRec-%Y.log CUL_HM_HM_CC_RT_DN_2212BC_WindowRec&lt;br /&gt;
 2013.10.10 20:03:28 2: autocreate: define CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr CUL_HM 2212BC04&lt;br /&gt;
 2013.10.10 20:03:28 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr-%Y.log CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr&lt;br /&gt;
 2013.10.10 20:03:28 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr-%Y.log CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr&lt;br /&gt;
 2013.10.10 20:03:29 2: autocreate: define CUL_HM_HM_CC_RT_DN_2212BC_ClimaTeam CUL_HM 2212BC05&lt;br /&gt;
 2013.10.10 20:03:29 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC_ClimaTeam FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC_ClimaTeam-%Y.log CUL_HM_HM_CC_RT_DN_2212BC_ClimaTeam&lt;br /&gt;
 2013.10.10 20:03:29 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC_ClimaTeam FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC_ClimaTeam-%Y.log CUL_HM_HM_CC_RT_DN_2212BC_ClimaTeam&lt;br /&gt;
 2013.10.10 20:03:30 2: autocreate: define CUL_HM_HM_CC_RT_DN_2212BC_remote CUL_HM 2212BC06&lt;br /&gt;
 2013.10.10 20:03:30 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC_remote FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC_remote-%Y.log CUL_HM_HM_CC_RT_DN_2212BC_remote&lt;br /&gt;
 2013.10.10 20:03:30 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC_remote FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC_remote-%Y.log CUL_HM_HM_CC_RT_DN_2212BC_remote&lt;br /&gt;
 2013.10.10 20:03:35 3: Device CUL_HM_HM_CC_RT_DN_2212BC added to ActionDetector with 000:10 time&lt;br /&gt;
 2013.10.10 20:03:40 2: CUL_HM set CUL_HM_HM_CC_RT_DN_2212BC getSerial&lt;br /&gt;
 2013.10.10 20:03:40 2: CUL_HM set CUL_HM_HM_CC_RT_DN_2212BC getConfig&lt;br /&gt;
 2013.10.10 20:03:54 3: Device CUL_HM_HM_CC_RT_DN_2212BC added to ActionDetector with 000:10 time&lt;br /&gt;
&lt;br /&gt;
=== Event monitor ===&lt;br /&gt;
 2013-10-12 12:05:35.610 CUL_HM CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr motorErr: ok&lt;br /&gt;
 2013-10-12 12:05:35.610 CUL_HM CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr measured-temp: 18.4&lt;br /&gt;
 2013-10-12 12:05:35.610 CUL_HM CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr desired-temp: 18&lt;br /&gt;
 2013-10-12 12:05:35.610 CUL_HM CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr ValvePosition: 3 %&lt;br /&gt;
 2013-10-12 12:05:35.610 CUL_HM CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr mode: manu&lt;br /&gt;
 2013-10-12 12:05:35.610 CUL_HM CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr unknown0: 24&lt;br /&gt;
 2013-10-12 12:05:35.610 CUL_HM CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr T: 18.4 desired: 18 valve: 3 %&lt;br /&gt;
 2013-10-12 12:05:35.646 CUL_HM CUL_HM_HM_CC_RT_DN_2212BC battery: ok&lt;br /&gt;
 2013-10-12 12:05:35.646 CUL_HM CUL_HM_HM_CC_RT_DN_2212BC batteryLevel: 3.1 V&lt;br /&gt;
 2013-10-12 12:05:35.646 CUL_HM CUL_HM_HM_CC_RT_DN_2212BC measured-temp: 18.4&lt;br /&gt;
 2013-10-12 12:05:35.646 CUL_HM CUL_HM_HM_CC_RT_DN_2212BC desired-temp: 18&lt;br /&gt;
 2013-10-12 12:05:35.646 CUL_HM CUL_HM_HM_CC_RT_DN_2212BC actuator: 3 %&lt;br /&gt;
&lt;br /&gt;
== Firmware Update ==&lt;br /&gt;
Seit 24.10.2014 gibt es für den HM-CC-RT-DN die neue Firmware Version 1.4. Diese kann von der eQ-3 Webseite heruntergeladen werden. Genauere Informationen gibt es unter [[HomeMatic Firmware Update]].&lt;br /&gt;
&lt;br /&gt;
=== HM-CC-RT-DN spezifische Update Informationen ===&lt;br /&gt;
Durch gleichzeitiges Drücken der &amp;quot;Auto-/Manu&amp;quot;-Taste und der &amp;quot;Comfort-/Eco&amp;quot;-Taste am HM-CC-RT-DN während man die Batterien wieder einlegt wird der updatemodus gestartet. Während des Updates steht &amp;quot;FUP&amp;quot; im Display. Nach erfolgreichem Update erscheint &amp;quot;Ins&amp;quot; im Display und es muss eine erneute Adaptierfahrt durch drücken der Boost-Taste ausgelöst werden. Anschließend sollte der HM-CC-RT-DN wieder normal funktionieren. Die eingestellten Parameter und das Pairing mit FHEM gehen beim Update nicht verloren. Sollte das Update fehlschlagen, erscheint &amp;quot;Err&amp;quot; bzw. &amp;quot;CrC&amp;quot; im Display.&lt;br /&gt;
&lt;br /&gt;
Normalerweise sollte dann durch erneutes starten der Prozedur am PC und HM-CC-RT-DN das ganze erneut durchführbar sein.&lt;br /&gt;
&lt;br /&gt;
Es gibt einige Readings, die nicht durch ein einfaches &#039;&#039;getConfig&#039;&#039; aktualisisert werden, z.B. &amp;quot;battery&amp;quot;(nicht batteryLevel). Um diese Readings zu bekommen, ist ein &lt;br /&gt;
:&amp;lt;code&amp;gt;set Device_Channel04 controlMode auto &amp;lt;/code&amp;gt;&lt;br /&gt;
notwendig. Daraufhin werden die Readings übertragen/aktualisiert.&lt;br /&gt;
&lt;br /&gt;
== Simulation von Fensterkontakten und externen Temperatursensoren ==&lt;br /&gt;
grober Ablauf:&lt;br /&gt;
* erstellen ein virtuelles Device&lt;br /&gt;
* erstelle dazu einen virtuellen Kanal&lt;br /&gt;
* peeren den Kanal mit dem RT (als fenster-kontakt oder als remote, wen du willst)&lt;br /&gt;
* sende ein postEvent&lt;br /&gt;
&lt;br /&gt;
=== Fensterkontakte ===&lt;br /&gt;
&#039;&#039;Entnommen aus diesem {{Link2Forum|Topic=31078|Message=236245|LinkText=Forenbeitrag}}&#039;&#039;&lt;br /&gt;
 define virSC CUL_HM 221133&lt;br /&gt;
 attr virSC autoReadReg 4_reqStatus&lt;br /&gt;
 attr virSC expert 2_full&lt;br /&gt;
 attr virSC model virtual_1&lt;br /&gt;
 attr virSC peerIDs &lt;br /&gt;
 attr virSC subType virtual&lt;br /&gt;
 attr virSC webCmd press short:press long&lt;br /&gt;
 &lt;br /&gt;
 define virtualKitchenDoor CUL_HM 22113301&lt;br /&gt;
 attr virtualKitchenDoor dummy 1&lt;br /&gt;
 attr virtualKitchenDoor expert 1&lt;br /&gt;
 attr virtualKitchenDoor group Virtual&lt;br /&gt;
 attr virtualKitchenDoor model virtual_1&lt;br /&gt;
 attr virtualKitchenDoor webCmd postEvent open:postEvent closed &lt;br /&gt;
&lt;br /&gt;
Anschließend peeren und Temperatur festlegen mit:&lt;br /&gt;
 set virtualKitchenDoor peerChan 0 &amp;lt;Thermostat_Window_Rec&amp;gt; single set&lt;br /&gt;
 set &amp;lt;Thermostat_Window_Rec&amp;gt; regSet winOpnTemp 5 virtualKitchenDoor&lt;br /&gt;
&lt;br /&gt;
Die virtuelle Tür wird dann entsprechend über ein Notify getriggert:&lt;br /&gt;
 define notify_virtualKitchenDoor notify (Fensterkontakt_1|Fensterkontakt_2) {if(Value(&amp;quot;Fensterkontakt&amp;quot;) eq &amp;quot;open&amp;quot; &amp;amp;&amp;amp; Value(&amp;quot;Fensterkontakt_2&amp;quot;) eq &amp;quot;open&amp;quot;){fhem(&amp;quot;set virtualKitchenDoor postEvent open&amp;quot;)}else{fhem(&amp;quot;set virtualKitchenDoor postEvent closed&amp;quot;)}}&lt;br /&gt;
&lt;br /&gt;
=== Temperatursensoren ===&lt;br /&gt;
&#039;&#039;Entnommen aus diesem {{Link2Forum|Topic=19686|Message=233788|LinkText=Forenbeitrag}}&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Virtuelles HomeMatic Device mit _deiner_ HM Id definieren:&lt;br /&gt;
 define wz_vT CUL_HM &amp;lt;hmId&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Dem Device einen virtuellen Kanal (Default ist ein virtueller Button) hinzufügen:&lt;br /&gt;
 set wz_vT virtual 1&lt;br /&gt;
&lt;br /&gt;
3. Es ist kein virtueller Button sondern ein virtueller Temperatursensor - darum rename:&lt;br /&gt;
 rename wz_vT_Btn1 wz_vT_Sensor1&lt;br /&gt;
&lt;br /&gt;
4. Virtuellen Peer Sensor mit dem Weather Channel des RT-DN peeren:&lt;br /&gt;
 set wz_vT_Sensor1 peerChan 0 &amp;lt;RT_DN&amp;gt;_Weather single&lt;br /&gt;
&lt;br /&gt;
5. Peering kontrollieren (Voraussetzung: Device &#039;&#039;hm&#039;&#039; vom Typ [[HomeMatic HMInfo|HMinfo]] existiert):&lt;br /&gt;
:&amp;lt;code&amp;gt;set hm peerXref&amp;lt;/code&amp;gt;&lt;br /&gt;
Beispiel-Ausgabe:&lt;br /&gt;
 peerXref done: &lt;br /&gt;
 x-ref list &lt;br /&gt;
    wz_Thermostat_Weather =&amp;gt; wz_vT_Sensor1 &lt;br /&gt;
    wz_vT_Sensor1 =&amp;gt; wz_Thermostat_Weather&lt;br /&gt;
&lt;br /&gt;
6. Gemessene Temperatur vom z.B. 1-Wire DS1820 dem virtuellen HM Sensor übergeben. Z.B. alle zwei Minuten per at:&lt;br /&gt;
 define at_wz_vT at +*00:02 { my $T=(ReadingsVal(&amp;quot;&amp;lt;DS1820B&amp;gt;&amp;quot;,&amp;quot;temperature&amp;quot;,20.0)); fhem &amp;quot;set wz_vT_Sensor1 virtTemp $T&amp;quot; }&lt;br /&gt;
&lt;br /&gt;
Fertig.&lt;br /&gt;
&lt;br /&gt;
== Bekannte Probleme ==&lt;br /&gt;
=== TempList: Bad format ... ===&lt;br /&gt;
Wenn Sie beim Setzen einer Temperaturliste nach dem o.a. Schema (&amp;quot;SetTempList...&amp;quot;) die Meldung&lt;br /&gt;
&lt;br /&gt;
 Bad format, use HH:MM TEMP ......&lt;br /&gt;
&lt;br /&gt;
erhalten, sollten Sie zunächst ein [[update]] von Fhem durchführen.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [http://www.eq-3.de/produkt-detail-aktoren/items/homematic-funk-heizkoerperthermostat.html Produktinfo]&lt;br /&gt;
* [http://www.eq-3.de/Downloads/eq3/pdf_produkte/HM-CC-RT-DN_UM_GE_eQ-3_web.pdf Bedienungsanleitung (PDF)]&lt;br /&gt;
* [http://www.eq-3.de/Downloads/eq3/pdf_produkte/Funk-Heizkoerperthermostat_105155_Produktdatenblatt_V2.2.pdf Datenblatt (PDF)]&lt;br /&gt;
* [http://www.eq-3.de/Downloads/eq3/downloads/Ventilkompatibilitaeten.pdf Ventil-Kompatibilitätsliste (PDF)]&lt;br /&gt;
* {{Link2Forum|Topic=14738|LinkText=Forenthema zum Thermostat}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HomeMatic Components]]&lt;br /&gt;
[[Kategorie:Heizungsventile]]&lt;/div&gt;</summary>
		<author><name>Stephan1965</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=HomeMatic_HMinfo_Templates_erstellen&amp;diff=16853</id>
		<title>HomeMatic HMinfo Templates erstellen</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=HomeMatic_HMinfo_Templates_erstellen&amp;diff=16853"/>
		<updated>2016-10-29T16:01:25Z</updated>

		<summary type="html">&lt;p&gt;Stephan1965: /* Kurzerklärung Tempaltes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mit diesem kleine HowTo soll gezeigt werden wie ein eigenes Template für die Konfiguration von Aktoren (Type switch) mit Tastern (Type remote) erstellt werden kann.&lt;br /&gt;
&lt;br /&gt;
Grundlegende Infos findet man hier: [[HomeMatic_HMInfo]]&lt;br /&gt;
== Kurzerklärung Templates== &lt;br /&gt;
Templates erleichtern den Umgang mit Register. Wie in HMinfo erläutert muss man den möglichen Umfang eines einzelnen Templates verstehen. Ein Template beinhaltet mindestens ein Register, typisch sicher mehrere. Maximal beschränkt sich ein einzelnes Template auf&lt;br /&gt;
* eine Entity (einen Kanal)&lt;br /&gt;
* 0-Template: alle Register die NICHT einem peer zugeordnet sind&lt;br /&gt;
* peer-Template: Register die einem Peer zugeordnet sind&lt;br /&gt;
** short/long-Template: Alle Regiser eines Peers für short ODER long. Beschrieben wird das short ODER long Verhalten&lt;br /&gt;
** both-Template: Alle Register eines Peers - beschrieben wird short UND long Verhalten &lt;br /&gt;
&lt;br /&gt;
Wie feingranular man ein Tempalate erstellt ist Geschmackssache. Man kann einer Entity beliebig viele Templates zuweisen. Wenn sich Inhalte überschneiden kommt es zu Problemen, welche mit configCheck aufgedeckt werden.&lt;br /&gt;
&lt;br /&gt;
== Erstellen eines Templates== &lt;br /&gt;
Ziel ist es die Funktion der Tasten zu ändern/tauschen.&lt;br /&gt;
Peert man das Tastenpaar 5/6 eines HM-PB-6-WM55 mit dem Channel 1 von einem HM-LC-SW2-FM mittels&lt;br /&gt;
  set RC61_5 peerChan 0 SW01_Sw01 dual set both&lt;br /&gt;
&lt;br /&gt;
ensteht der Ausgangzustand: &lt;br /&gt;
Taste 5 RC61_5 schaltet SW01_Sw01 aus. &lt;br /&gt;
Taste 6 RC61_6 schaltet SW01_Sw01 ein.&lt;br /&gt;
&lt;br /&gt;
Die regTable dazu sieht so aus:&lt;br /&gt;
                         RC61_5                          RC61_6                          &lt;br /&gt;
                         lg              sh              lg              sh              &lt;br /&gt;
  ActionType             jmpToTarget     jmpToTarget     jmpToTarget     jmpToTarget     &lt;br /&gt;
  CtDlyOff               geLo            geLo            geLo            geLo            &lt;br /&gt;
  CtDlyOn                geLo            geLo            geLo            geLo            &lt;br /&gt;
  CtOff                  geLo            geLo            geLo            geLo            &lt;br /&gt;
  CtOn                   geLo            geLo            geLo            geLo            &lt;br /&gt;
  CtValHi                100             100             100             100             &lt;br /&gt;
  CtValLo                50              50              50              50              &lt;br /&gt;
  MultiExec              on              off             on              off             &lt;br /&gt;
  OffDly            [s]  0               0               0               0               &lt;br /&gt;
  OffTime                unused          unused          unused          unused          &lt;br /&gt;
  OffTimeMode            absolut         absolut         absolut         absolut         &lt;br /&gt;
  OnDly             [s]  0               0               0               0               &lt;br /&gt;
  OnTime                 unused          unused          unused          unused          &lt;br /&gt;
  OnTimeMode             absolut         absolut         absolut         absolut         &lt;br /&gt;
  SwJtDlyOff             off             off             on              on              &lt;br /&gt;
  SwJtDlyOn              off             off             on              on              &lt;br /&gt;
  SwJtOff                off             off             dlyOn           dlyOn           &lt;br /&gt;
  SwJtOn                 dlyOff          dlyOff          on              on              &lt;br /&gt;
&lt;br /&gt;
Damit der gewünschte Effekt ensteht sollen die Register wie folgt geändert werden, es werden nur die Register für sh geändert!&lt;br /&gt;
&lt;br /&gt;
  SwJtDlyOff             off             no              on              no              &lt;br /&gt;
  SwJtDlyOn              off             no              on              no              &lt;br /&gt;
  SwJtOff                off             on              dlyOn           no           &lt;br /&gt;
  SwJtOn                 dlyOff          no              on              off              &lt;br /&gt;
&lt;br /&gt;
Jetzt werden zwei Templates definiert&lt;br /&gt;
&lt;br /&gt;
  set hminfo templateDef tmpl_SwOnOnly 0 &amp;quot;Template für nur an&amp;quot; ActionType:jmpToTarget SwJtDlyOff:no SwJtDlyOn:no SwJtOff:on SwJtOn:no&lt;br /&gt;
  set hminfo templateDef tmpl_SwOffOnly 0 &amp;quot;Template für nur aus&amp;quot; ActionType:jmpToTarget SwJtDlyOff:no SwJtDlyOn:no SwJtOff:no SwJtOn:off&lt;br /&gt;
&lt;br /&gt;
und entsprechend übertragen&lt;br /&gt;
  set hm templateSet SW01_Sw01 tmpl_SwOnOnly RC61_5:short&lt;br /&gt;
  set hm templateSet SW01_Sw01 tmpl_SwOffOnly RC61_6:short&lt;br /&gt;
&lt;br /&gt;
Die Konfiguration kann auf unterschiedliche Art gesichert werden, z.B:&lt;br /&gt;
  set hm saveConfig config.txt &lt;br /&gt;
schreibt alles (Die gesamte Konfiguration die hmInfo aus FHEM ermitteln kann - also nicht aus den Geräten selbst) in eine Datei /opt/fhem/config.txt.&lt;br /&gt;
&lt;br /&gt;
Aus der Datei können im Bedarfsfall einzelne Befehle zum Setzen der Register herausgezogen werden.&lt;br /&gt;
&lt;br /&gt;
Weiter Möglichkeiten bietet das Modul mit archConfig&lt;br /&gt;
== Templates Repository== &lt;br /&gt;
Hier werden einige Templates angeboten, welche im System integriert werden könne&lt;br /&gt;
=== Generelle Einstellungen ===&lt;br /&gt;
 define hm HMinfo&lt;br /&gt;
 attr hm autoArchive 1&lt;br /&gt;
 attr hm autoLoadArchive 1_load&lt;br /&gt;
 attr hm autoUpdate 0:3&lt;br /&gt;
 attr hm configFilename regConfig.cfg&lt;br /&gt;
=== switch Templates ===&lt;br /&gt;
==== long-short ====&lt;br /&gt;
Templates zum Setzen der Condition-Table&lt;br /&gt;
 set hm templateDef SwOnCond level:cond &amp;quot;switch: execute only if condition [geLo|ltLo] level is below limit&amp;quot; CtValLo:p0 CtOn:p1 CtOff:p1 CtDlyOn:p1 CtDlyOff:p1&lt;br /&gt;
 set hm templateDef SwCondAbove condition &amp;quot;Switch: execute only if condition level is above limit&amp;quot; CtValLo:p0 CtOn:geLo CtOff:geLo CtDlyOn:geLo CtDlyOff:geLo&lt;br /&gt;
 set hm templateDef SwCondBelow condition &amp;quot;Switch: execute only if condition level is below limit&amp;quot; CtValLo:p0 CtOn:ltLo CtOff:ltLo CtDlyOn:ltLo CtDlyOff:ltLo&lt;br /&gt;
 set hm templateDef autoOff time &amp;quot;staircase - auto off after -time-, extend time with each trigger&amp;quot; SwJtDlyOn:no ActionType:jmpToTarget SwJtDlyOff:dlyOn OnTime:p0 OffTime:unused SwJtOn:on SwJtOff:dlyOn&lt;br /&gt;
&lt;br /&gt;
Templates zur Definiton einer Aktion&lt;br /&gt;
 set hm templateDef SwIgnore 0 &amp;quot;ignore event&amp;quot; ActionType:off&lt;br /&gt;
 set hm templateDef SwOff 0 &amp;quot;Switch: off if trigger&amp;quot; SwJtDlyOn:dlyOff ActionType:jmpToTarget SwJtDlyOff:off OnTime:unused OffTime:unused SwJtOn:dlyOff SwJtOff:no&lt;br /&gt;
 set hm templateDef SwOn 0 &amp;quot;Switch: on if trigger&amp;quot; SwJtDlyOn:on ActionType:jmpToTarget SwJtDlyOff:dlyOn OnTime:unused OffTime:unused SwJtOn:no SwJtOff:dlyOn&lt;br /&gt;
 set hm templateDef SwToggle 0 &amp;quot;Switch: toggle on trigger&amp;quot; SwJtDlyOn:on ActionType:jmpToTarget SwJtDlyOff:off OnTime:unused OffTime:unused SwJtOn:dlyOff SwJtOff:dlyOn&lt;br /&gt;
&lt;br /&gt;
Beispiel Nutzung: nutze den Trigger &amp;quot;short&amp;quot; des Peers &amp;quot;MeinPeer&amp;quot; wenn der Level größer als 30 ist. Als Aktion ist ein 2. Tempalte zum Einschalten aktiviert. Bei langen Trigger soll ausgeschaltet werden&lt;br /&gt;
 set hm templateSet &amp;lt;MeinLicht&amp;gt; SwOnCond &amp;lt;MeinPeer:short&amp;gt; 30 gtLo&lt;br /&gt;
 set hm templateSet &amp;lt;MeinLicht&amp;gt; SwOn &amp;lt;MeinPeer:short&amp;gt; &lt;br /&gt;
 set hm templateSet &amp;lt;MeinLicht&amp;gt; SwOff &amp;lt;MeinPeer:long&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== both ====&lt;br /&gt;
Both ist ein kompakterer Ansatz - man definiert das komplette Verhalten eines Peers, also short und long in einem. &lt;br /&gt;
 set hm templateDef SwMdir onTime:minBright &amp;quot;switch action when peered motionDetector&amp;quot; shOnDly:0 shSwJtOn:no shOffDly:p0 lgActionType:off shCtDlyOff:ltHi shOffTimeMode:minimal shCtValLo:p1 lgMultiExec:off shOnTime:0 shCtValHi:255 shOffTime:unused shMultiExec:off shOnTimeMode:minimal shSwJtOff:dlyOff shSwJtDlyOff:dlyOff shCtOff:ltLo shActionType:jmpToTarget shCtOn:ltLo shSwJtDlyOn:no shCtDlyOn:ltLo&lt;br /&gt;
 set hm templateDef SwSonLoff 0 &amp;quot;Switch: shortOn, long Off&amp;quot; lgSwJtOff:no lgOffTime:unused shOffTime:unused shSwJtOn:no lgSwJtOn:dlyOff lgActionType:jmpToTarget shSwJtOff:dlyOn shSwJtDlyOff:dlyOn shActionType:jmpToTarget lgSwJtDlyOff:off shSwJtDlyOn:on lgSwJtDlyOn:dlyOff lgOnTime:unused shOnTime:unused&lt;br /&gt;
 set hm templateDef SwSoffLignore 0 &amp;quot;Switch: shortOff, long Ignore&amp;quot; shOffTime:unused shSwJtOn:dlyOff lgActionType:off shSwJtDlyOff:off shSwJtOff:no shActionType:jmpToTarget shSwJtDlyOn:dlyOff shOnTime:unused&lt;br /&gt;
&lt;br /&gt;
Beispiel: Konfiguration eines Aussenlichts mit Motion-Detector. Erzielt werden soll das Einschalten bei Dunkelheit (brght kleiner 70) für 30sec. Per Tastendruck soll das Licht eingeschaltet werden und endloc anbleiben (Ausschalten nicht vergessen). Alternativ einschalten für einige Stunden - das sollte auch reichen - und es geht irgendwann doch aus. Im Beispiel für Button2 4 Stunden. &lt;br /&gt;
 set hm templateSet &amp;lt;MeinLicht&amp;gt; SwMdir &amp;lt;MotionPeer:both&amp;gt; 30 70&lt;br /&gt;
 set hm templateSet &amp;lt;MeinLicht&amp;gt; SwSonLoff &amp;lt;ButtonPeer:both&amp;gt;  &lt;br /&gt;
 set hm templateSet &amp;lt;MeinLicht&amp;gt; autoOff &amp;lt;Button2Peer:short&amp;gt; 14400&lt;br /&gt;
&lt;br /&gt;
=== Dimmer Templates ===&lt;br /&gt;
==== long-short ====&lt;br /&gt;
 set hm templateDef DimDown rampTime &amp;quot;ramp down to 0, ramp valiable&amp;quot; DimJtRampOff:off OnTime:unused DimJtOn:dlyOff OffTime:unused OffDlyStep:5 DimJtOff:rampOff OffTimeMode:absolut OffDlyBlink:on OnDlyMode:setToOff DimJtRampOn:dlyOff OffDlyOldTime:0.4 RampOnTime:p0 DimMaxLvl:100 OnTimeMode:absolut RampSstep:5 OnLvlPrio:high DimMinLvl:0 DimStep:5 DimJtDlyOff:rampOff OffLevel:0 OnMinLevel:10 ActionTypeDim:jmpToTarget OnDly:0 OffDly:0 OffDlyNewTime:0.4 RampOffTime:p0 OnLevel:100 DimJtDlyOn:dlyOff&lt;br /&gt;
 set hm templateDef DimOff 0 &amp;quot;Dimmer: off if trigger&amp;quot; DimJtDlyOff:off DimJtRampOff:dlyOff DimJtOn:dlyOff OnTime:unused ActionTypeDim:jmpToTarget DimJtOff:no OffTime:unused DimJtRampOn:dlyOff DimJtDlyOn:dlyOff&lt;br /&gt;
 set hm templateDef DimOn 0 &amp;quot;Dimmer: on if trigger&amp;quot; DimJtDlyOff:dlyOn DimJtRampOff:dlyOn DimJtOn:no OnTime:unused ActionTypeDim:jmpToTarget DimJtOff:dlyOn OffTime:unused DimJtRampOn:dlyOn DimJtDlyOn:on&lt;br /&gt;
 set hm templateDef DimUp onLevel:rampTime:onTime &amp;quot;ramp up soft&amp;quot; DimJtRampOff:dlyOn OnTime:p2 DimJtOn:rampOn OffTime:unused OffDlyStep:5 DimJtOff:dlyOn OffTimeMode:absolut OffDlyBlink:on OnDlyMode:setToOff DimJtRampOn:on OffDlyOldTime:0.4 RampOnTime:p1 DimMaxLvl:p0 OnTimeMode:absolut RampSstep:5 OnLvlPrio:high DimMinLvl:0 DimStep:5 DimJtDlyOff:dlyOn OffLevel:0 OnMinLevel:10 ActionTypeDim:jmpToTarget OnDly:0 OffDly:0 OffDlyNewTime:0.4 RampOffTime:p1 OnLevel:p0 DimJtDlyOn:rampOn&lt;br /&gt;
&lt;br /&gt;
==== both ====&lt;br /&gt;
&lt;br /&gt;
=== Blind (Rollo) Templates ===&lt;br /&gt;
&lt;br /&gt;
==== devicelevel ====&lt;br /&gt;
 set hm templateDef BlSetDrive up:down:turn &amp;quot;drive times up, down and turn plus gen defaults&amp;quot; statusInfoRandom:0 localResDis:off refRunCounter:0 statusInfoMinDly:3 driveUp:p0 driveDown:p1 transmitTryMax:6 driveTurn:p2 intKeyVisib:visib confBtnTime:permanent sign:off&lt;br /&gt;
 set hm templateSet Blind BlSetDrive 100 105 0.5 # Setze Fahrzeiten auf 100s, runter 105s, turn 0.5s&lt;br /&gt;
&lt;br /&gt;
==== long-short ====&lt;br /&gt;
 set hm templateDef BlStopDnLg 0 &amp;quot;Blind: stop drive on any key - for long drive down&amp;quot; BlJtOn:dlyOff BlJtDlyOff:refOff BlJtDlyOn:dlyOff ActionType:jmpToTarget BlJtOff:dlyOff BlJtRampOff:rampOff BlJtRampOn:on BlJtRefOn:on BlJtRefOff:rampOff&lt;br /&gt;
 set hm templateDef BlStopDnSh 0 &amp;quot;Blind: stop drive on any key - for short drive down&amp;quot; BlJtOn:dlyOff BlJtDlyOff:refOff BlJtDlyOn:dlyOff ActionType:jmpToTarget BlJtOff:dlyOff BlJtRampOff:off BlJtRampOn:on BlJtRefOn:on BlJtRefOff:rampOff&lt;br /&gt;
 set hm templateDef BlStopUpLg 0 &amp;quot;Blind: stop drive on any key - for long drive up&amp;quot; BlJtOn:dlyOn BlJtDlyOff:dlyOn BlJtDlyOn:refOn ActionType:jmpToTarget BlJtOff:dlyOn BlJtRampOff:off BlJtRampOn:rampOn BlJtRefOn:rampOn BlJtRefOff:off&lt;br /&gt;
 set hm templateDef BlStopUpSh 0 &amp;quot;Blind: stop drive on&amp;quot; BlJtOn:dlyOn BlJtDlyOff:dlyOn BlJtDlyOn:refOn ActionType:jmpToTarget BlJtOff:dlyOn BlJtRampOff:off BlJtRampOn:on BlJtRefOn:rampOn BlJtRefOff:off&lt;br /&gt;
 set hm templateDef BlToggle 0 &amp;quot;toggle mein Rollo&amp;quot; BlJtDlyOff:no BlJtOn:dlyOff ActionType:jmpToTarget BlJtDlyOn:no BlJtOff:dlyOn BlJtRampOff:dlyOn BlJtRampOn:dlyOff BlJtRefOn:dlyOff BlJtRefOff:dlyOn&lt;br /&gt;
&lt;br /&gt;
==== both ====&lt;br /&gt;
 set hm templateDef BlSmartStopDn 0 &amp;quot;from Master BlSmartStopDn &amp;gt; FB_09:both&amp;quot; shBlJtOff:dlyOff lgCtDlyOff:geLo lgDriveMode:direct lgOffLevel:0 lgActionType:jmpToTarget shBlJtDlyOn:dlyOff shOffLevel:0 lgCtValLo:50 lgCtRefOn:geLo lgBlJtOff:dlyOff shCtDlyOff:geLo shOffTimeMode:absolut lgOnLevel:100 lgBlJtDlyOn:dlyOff lgBlJtDlyOff:refOff shBlJtDlyOff:refOff lgMultiExec:on lgOffDly:0 lgBlJtRefOff:rampOff shCtValHi:100 lgMaxTimeF:0.5 shBlJtRefOn:on lgCtValHi:100 shBlJtRampOff:off shCtRefOff:geLo shCtRampOn:geLo shMaxTimeF:unused shOnTimeMode:absolut shBlJtRefOff:rampOff lgOnTime:unused lgCtRefOff:geLo lgOnTimeMode:absolut lgCtRampOff:geLo shOnDly:0 lgCtRampOn:geLo lgOffTime:unused lgBlJtRefOn:on shOffDly:0 shCtRefOn:geLo lgCtOff:geLo lgCtOn:geLo shCtValLo:50 lgBlJtOn:dlyOff lgOnDly:0 lgOffTimeMode:absolut shBlJtRampOn:on shBlJtOn:dlyOff shOnTime:unused shDriveMode:direct shOffTime:unused lgCtDlyOn:geLo shOnLevel:100 lgBlJtRampOn:on shCtRampOff:geLo shMultiExec:off shCtOff:geLo shActionType:jmpToTarget shCtOn:geLo shCtDlyOn:geLo lgBlJtRampOff:rampOff&lt;br /&gt;
 set hm templateDef BlSmartStopUp 0 &amp;quot;from Master BlSmartStopUp &amp;gt; FB_10:both&amp;quot; shBlJtOff:dlyOn lgCtDlyOff:geLo lgDriveMode:direct lgOffLevel:0 lgActionType:jmpToTarget shBlJtDlyOn:refOn shOffLevel:0 lgCtValLo:50 lgCtRefOn:geLo lgBlJtOff:dlyOn shCtDlyOff:geLo lgOnLevel:100 shOffTimeMode:absolut lgBlJtDlyOff:dlyOn lgBlJtDlyOn:refOn shBlJtDlyOff:dlyOn lgMultiExec:on lgOffDly:0 lgBlJtRefOff:off shCtValHi:100 lgMaxTimeF:0.5 shBlJtRefOn:rampOn lgCtValHi:100 shCtRefOff:geLo shCtRampOn:geLo shBlJtRampOff:off shMaxTimeF:unused shBlJtRefOff:off shOnTimeMode:absolut lgCtRefOff:geLo lgOnTime:unused lgOnTimeMode:absolut lgCtRampOff:geLo lgCtRampOn:geLo shOnDly:0 lgOffTime:unused lgBlJtRefOn:rampOn shOffDly:0 shCtRefOn:geLo lgCtOff:geLo lgCtOn:geLo shCtValLo:50 lgBlJtOn:dlyOn lgOnDly:0 lgOffTimeMode:absolut shBlJtRampOn:on shBlJtOn:dlyOn shOnTime:unused shDriveMode:direct shOffTime:unused lgCtDlyOn:geLo shOnLevel:100 lgBlJtRampOn:rampOn shCtRampOff:geLo shMultiExec:off shCtOff:geLo shActionType:jmpToTarget shCtOn:geLo shCtDlyOn:geLo lgBlJtRampOff:off&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Heizung RT Templates ===&lt;br /&gt;
Man muss hier die einzelnen Kanäle unterscheiden. Da sich die Register unterscheiden sind für jeden Kanal eigenen Templates erstellt werden. &lt;br /&gt;
Achtung: Die Templates sind in diesem Fall Beispiele. Evtl sind andere Einstellungen gewünscht. &lt;br /&gt;
==== RT-device ====&lt;br /&gt;
Selektierbat ist, ob Buttonlock ein oder ausgeschaltet sein soll.Mit Beispielnutzung&lt;br /&gt;
 set hm templateDef HeatDefDev BtnLock &amp;quot;Default RT Device register&amp;quot; globalBtnLock:off modusBtnLock:off localResDis:off cyclicInfoMsg:on backOnTime:10 lowBatLimitRT:2.1 burstRx:on cyclicInfoMsgDis:0 btnLock:p0&lt;br /&gt;
&lt;br /&gt;
 set hm templateSet rtDevice HeatDefDev 0 on # buttonLock ist eingeschaltet&lt;br /&gt;
&lt;br /&gt;
Eine Alternative - wenn man auch den Batterielevel selektiv einstellen will. Da es bei allem meinen RTs identisch ist stelle ich es im Define ein, nicht im Set. Aber dennoch hier das Beispiel&lt;br /&gt;
 set hm templateDef HeatDefDev BtnLock:BatLevel &amp;quot;Default RT Device register&amp;quot; globalBtnLock:off modusBtnLock:off localResDis:off cyclicInfoMsg:on backOnTime:10 lowBatLimitRT:p1 burstRx:on cyclicInfoMsgDis:0 btnLock:p0&lt;br /&gt;
&lt;br /&gt;
 set hm templateSet rtDevice HeatDefDev 0 2.3 on # buttonLock ist eingeschaltet, BatMinLevel ist 2.3V&lt;br /&gt;
&lt;br /&gt;
==== RT-Clima====&lt;br /&gt;
 set hm templateDef HeatDefault boost &amp;quot;myDefault RT settings, enter boostTime&amp;quot; reguIntI:20 regAdaptive:offDeter nightTemp:17 tempOffset:0.0K dayTemp:21 reguIntPstart:5 reguExtI:20 reguIntP:25 reguExtP:25 showWeekday:off tempMin:4.5 tempMax:30.5 valveMaxPos:15 valveOffsetRt:0 modePrioManu:all daylightSaveTime:on boostPos:30 showInfo:time decalcWeekday:Sat btnNoBckLight:off decalcTime:11:00 noMinMax4Manu:off reguExtPstart:5 valveErrPos:15 modePrioParty:all boostPeriod:p0&lt;br /&gt;
 set hm templateSet RT1_Clima HeatDefault 20 on # Clima-defaults - Boost fpr RT1 ist auf 20 min eingestellt&lt;br /&gt;
 set hm templateSet RT2_Clima HeatDefault 5 on # Clima-defaults - Boost fpr RT1 ist auf 5 min eingestellt&lt;br /&gt;
&lt;br /&gt;
==== RT-Remote====&lt;br /&gt;
Um mit einem Button &amp;quot;gute Nacht&amp;quot; zu sagen und alle Lichter auszuschalten kann man den Button auch mit den RTs koppeln und auf Nachttemp zu schalten. Man muss hier - wie beim Switch - long/short und both unterschieden. Im Beispiel ist ein long/short template genutzt. &lt;br /&gt;
 set hm templateDef HeatRemote temp &amp;quot;heatRemote set temperature CtrlRc:autoAndTemp&amp;quot; TempRC:p0&lt;br /&gt;
&lt;br /&gt;
 set hm templateSet RT1_Remote HeatRemote &amp;lt;Button1:long&amp;gt; 18 # schalte bei trigger long auf 18 Grad(Nacht)&lt;br /&gt;
 set hm templateSet RT1_Remote HeatRemote &amp;lt;Button1:short&amp;gt; 23 # schalte bei trigger short auf 23 Grad(Tag)&lt;br /&gt;
 set hm templateSet RT1_Remote HeatRemote &amp;lt;Button2:long&amp;gt; 15 # schalte bei trigger long auf 15 Grad&lt;br /&gt;
 set hm templateSet RT1_Remote HeatRemote &amp;lt;Button2:short&amp;gt; 28 # schalte bei trigger short auf 28 Grad&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== SmokeDetector SD2 ===&lt;br /&gt;
Entschieden, ob der Repeater eingeschaltet werden soll oder nicht. &lt;br /&gt;
 set hm templateDef  sd2Rep repeat &amp;quot;SD2 setup as repeater (1) or not (0)&amp;quot; devRepeatCntMax:p0&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Commandref: [http://fhem.de/commandref_DE.html#HMinfo]&lt;br /&gt;
* hmInfo Wiki: [[HomeMatic_HMInfo]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HomeMatic Components]]&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;/div&gt;</summary>
		<author><name>Stephan1965</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Virtueller_Controller_VCCU&amp;diff=16845</id>
		<title>Virtueller Controller VCCU</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Virtueller_Controller_VCCU&amp;diff=16845"/>
		<updated>2016-10-29T14:51:08Z</updated>

		<summary type="html">&lt;p&gt;Stephan1965: /* Mehrere VCCUs in einer Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Eine &#039;&#039;&#039;Virtuelle CCU&#039;&#039;&#039;, auch &#039;&#039;&#039;VCCU&#039;&#039;&#039; genannt, ist eine Zentrale für [[HomeMatic]]-Geräte. Die VCCU tritt beim [[Pairing (HomeMatic)|Pairing]] an die Stelle des &#039;&#039;I/O-Devices&#039;&#039; (auch &amp;quot;Schnittstelle&amp;quot; genannt, zum Beispiel [[CUL]] und [[HM-CFG-LAN]]).&lt;br /&gt;
&lt;br /&gt;
HomeMatic-Geräte werden überlicherweise mit einer Zentrale gepaired, um sie zentral verwalten zu können. Der Pairing-Partner ist im einfachsten Fall das I/O-Device ([[CUL]], [[HM-CFG-LAN]], …) selbst. Nachteilig dabei ist, dass der Ausfall der Schnittstelle bewirkt, dass alle gepairten Geräte nicht mehr bedient werden können. Dies lässt sich im Gegensatz zu ungepairten Protokollen (z.b. FS20) auch nicht durch doppelte Definition mit abweichenden IO-Devices lösen, da das Pairing nur mit einer &#039;&#039;hmId&#039;&#039; erfolgen kann. Daher kann auch durch mehrere Schnittstellen / IOs keine Redundanz erreicht werden. Ähnliches gilt für eine Vergrösserung der Funkabdeckung durch mehrere Schnittstellen. &lt;br /&gt;
&lt;br /&gt;
Dieses Problem kann durch eine VCCU gelöst werden. Die VCCU ist eine virtuelle Zentrale; sie tritt beim Pairing an die Stelle der Schnittstelle. Sie erhält eine eigene &#039;&#039;hmId&#039;&#039;, mit der die HM Sensoren und Geräte gepaired werden. Die Funkschnittstelle(n) werden dann von der VCCU als reine &amp;quot;dumme&amp;quot; IOs verwaltet. Dieses bietet vielfältige Möglichkeiten, z.b. die Verwendung mehrerer IOs, aus denen die VCCU die &amp;quot;beste&amp;quot; nach diversen Kriterien (z.B. RSSI) auswählt. Dadurch kann sowohl die Redundanz als auch die Funkabdeckung erhöht werden.&lt;br /&gt;
&lt;br /&gt;
Durch das Pairen der Geräte mit einer virtuellen CCU ergeben sich folgende Vorteile:&lt;br /&gt;
&lt;br /&gt;
* Die Verwendung mehrerer I/O-Devices wird möglich. Das sorgt für Redundanz (Ausfallsicherheit) und/oder Reichweiten-Vergrößerung.&lt;br /&gt;
* Der Tausch eines I/O-Devices ist transparent für gepairte Geräte.&lt;br /&gt;
* Die VCCU stellt virtuelle Kanäle zur Verfügung, mit denen HomeMatic-Geräte [[Homematic Peering Beispiele|gepeert]] werden können.&lt;br /&gt;
* &amp;quot;Geordnete&amp;quot; Termination von Nachrichten. (Da die üblichen Funkschnittstellen (wie CUL im HM-Mode oder HM-LAN-Konfigurator) relativ &amp;quot;dumm&amp;quot; sind, führen viele Zustände zu den bekannten &amp;quot;Help me&amp;quot; Einträge im Log.)&lt;br /&gt;
&lt;br /&gt;
Der einzige Nachteil einer VCCU gegenüber dem direkten Pairing mit dem I/O-Device ist ein Mehraufwand bei der initialen Konfiguration vom Fhem.&lt;br /&gt;
&lt;br /&gt;
== Kurzbeschreibung ==&lt;br /&gt;
&lt;br /&gt;
Ein virtueller Controller &#039;&#039;&#039;VCCU&#039;&#039;&#039; ist der Protokoll-Endpunkt der Zentrale und ersetzt dabei logisch (jedoch nicht physikalisch) z.b. den [[HM-CFG-LAN LAN Konfigurations-Adapter]] einer &amp;quot;klassichen&amp;quot; FHEM Konfiguration&lt;br /&gt;
&lt;br /&gt;
Es können einer VCCU einzelne oder mehrere IO Devices zugeordnet werden. Man bündelt dadurch mehrere I/O Devices (z.B. CULs und HM-CFG-LANs) zu einem &#039;&#039;Pool&#039;&#039;. Den HM-Devices in FHEM (Aktoren, Sensoren) kann dann als I/O Device die &#039;&#039;VCCU&#039;&#039; zugeordnet werden, dies geschieht durch das Attribut &#039;&#039;IOgrp.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Durch diese Gruppierung der I/O Devices und dem Zuordnen der VCCU zu einem Device entstehen verschieden Vorteile, abhängig des Einsatzes der VCCU. So kann ein beliebiges I/O Device im Device Pool der VCCU ausfallen und das oder die verbliebenden I/O Devices übernehmen diese Funktion (abhängig von der Funkreichweite/Erreichbarkeit). Die VCCU wird das nächst verfügbare I/O Device zum Senden/Empfangen verwenden.&lt;br /&gt;
&lt;br /&gt;
Ein weitere Vorteil ist, dass durch die VCCU auch das I/O Device genutzt werden kann, welches die beste Funkqualität aufweist. Dies kann z.B. bei beweglichen Sensoren/Aktoren (Fernbedienungen) sinnvoll sein, oder wenn die Funkqualität durch andere Faktoren beeinflusst wird (z.B. Tür/Tor oder andere &amp;quot;bewegliche&amp;quot; Störfaktoren)&lt;br /&gt;
&lt;br /&gt;
== Mehrere VCCUs in einer Installation==&lt;br /&gt;
&lt;br /&gt;
Theoretisch erlaubt Fhem die parallele Nutzung mehrer VCCUs, praktisch ergeben sich dadurch jedoch keine Vorteile gegenüber einer einzigen VCCU. Insbesondere kann eine VCCU verschiedene I/O-Devices bedienen, zum Beispiel einen [[CUL]] &#039;&#039;und&#039;&#039; ein [[HM-CFG-LAN]].&lt;br /&gt;
&lt;br /&gt;
Jede VCCUs muss eine eindeutige &#039;&#039;HomeMatic-ID&#039;&#039; haben, mit der HomeMatic-Geräte gepaired werden. Folglich kann jedes HomeMatic-Gerät nur mit &#039;&#039;einer&#039;&#039; VCCU gepaired werden.&lt;br /&gt;
&lt;br /&gt;
Die VCCU überschreibt die hmid eines  I/O Device mit seiner eignen, daher können nicht mehrere VCCUs das selbe I/O Device verwenden.&lt;br /&gt;
&lt;br /&gt;
== Definition der VCCU==&lt;br /&gt;
=== hmId wählen ===&lt;br /&gt;
Eine VCCU benötigt wie alle HM Devices eine Adresse, mit der sie angesprochen wird. Bei Schnittstellen und Zentralen ist dies eine &#039;&#039;hmId&#039;&#039;. Da die VCCU eine (virtuelle) Zentrale ist, muss sie auch mit einer &#039;&#039;hmId&#039;&#039; versehen werden. Dies geschieht per define analog zur Anlage einer physischen Schnittstelle (siehe weiter unten)&lt;br /&gt;
&lt;br /&gt;
Eine VCCU gibt die &#039;&#039;hmId&#039;&#039; an die ihr zugewiesenen IOs (Funkschnittstellen) weiter. D.H. alle von einer VCCU genutzen I/Os haben nach der Zuweisung die selbe &#039;&#039;hmId&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Definiert man eine VCCU nachdem I/Os (CUL oder HMLAN) für Homematic angelegt sind, sollte die &#039;&#039;hmId&#039;&#039; der bereits vorhandene Funkschnittstelle verwenden, hierdurch kann man sich das Neupairen der HM Devices ersparen. Hat man bereits mehre Funkschnittstellen im Einsatz, werde diese unterschiedliche &#039;&#039;hmId&#039;&#039;s haben, zumindest eine Schnittstelle wird nach der Zuweisung zur VCCU seine &#039;&#039;hmId&#039;&#039; also ändern. Für mit dieser Schnittstelle schon gepairte Devices ist ein Neupairen unumgänglich.&lt;br /&gt;
&lt;br /&gt;
Ausserdem muss in jedem Fall das attr IOgrp eines vor Anlage der VCCU gepairten Gerätes auf die VCCU angelegt/geändert werden., z.B. so&lt;br /&gt;
 attr &amp;lt;device&amp;gt; IOgrp VCCU&lt;br /&gt;
(Siehe weiter unten ein Tipp, wie dies leicht nachträglich erledigt werden kann)&lt;br /&gt;
&lt;br /&gt;
Mit der Anlage einer VCCU hat das eventuell angelegte attribut IODev eines HM_Devices keine Funktion mehr. Vielmehr setzt die VCCU das IODev automatisch je nach Verfügbarkeit und Funklage. Es ist jedoch nicht erforderlich angelegte IODev Attribute zu entfernen.&lt;br /&gt;
&lt;br /&gt;
=== Einrichten ===&lt;br /&gt;
  define VCCU CUL_HM &amp;lt;hmId&amp;gt;&lt;br /&gt;
  attr VCCU model CCU-FHEM&lt;br /&gt;
  attr VCCU IOList &amp;lt;io1&amp;gt;[,&amp;lt;io2&amp;gt;,...]&lt;br /&gt;
&lt;br /&gt;
Das Attribut IOList dient dazu festzulegen, welche physikalischen Schnittstellen (&amp;quot;IO&amp;quot;) von der VCCU genutzt werden, dies sind in der Regel alle HM-fähigen Schnittstellen einer Installtion.&lt;br /&gt;
IOList beinhaltet die Komma-getrennte Liste der IOs, so wie sie in FHEM angelegt sind.&lt;br /&gt;
&lt;br /&gt;
Es seien z.b. in FHEM bereits die beiden Schnittstellen HMLAN und CULHM angelegt:&lt;br /&gt;
&lt;br /&gt;
 define HMLAN0 HMLAN 192.168.168.2:1000&lt;br /&gt;
 attr HMLAN0 hmId 123456&lt;br /&gt;
 attr HMLAN0 hmLanQlen 1_min&lt;br /&gt;
 attr HMLAN0 icon hm_lan&lt;br /&gt;
&lt;br /&gt;
 define CUL0 CUL /dev/ttyACM0@9600 0000&lt;br /&gt;
 attr CUL0 hmId 123456&lt;br /&gt;
 attr CUL0 icon cul_cul&lt;br /&gt;
 attr CUL0 rfmode HomeMatic&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann kann zusätzlich die VCCU mit der selben hmId angelgt werden und die beiden physikalischen Schnittstellen ihr zugewiesen:&lt;br /&gt;
&lt;br /&gt;
 define VCCU CUL_HM 123456&lt;br /&gt;
 attr VCCU IOList CUL0,HMLAN0&lt;br /&gt;
 attr VCCU model CCU-FHEM&lt;br /&gt;
 attr VCCU subType virtual&lt;br /&gt;
 attr VCCU webCmd virtual:update&lt;br /&gt;
&lt;br /&gt;
Wird die VCCU mit einer von vorhandene Schnittstellen abweichenden &#039;&#039;hmId&#039;&#039; angelegt, so wird die &#039;&#039;hmId&#039;&#039; der ihr zugewiesenen Schnittstelle(n) automatische angepasst. Dies hat in der Regel zur Folge, das HM Devices neu gepairt werden müssen.&lt;br /&gt;
&lt;br /&gt;
Dies trifft auch zu, wenn bereits vorhandene Schnittstellen unterschiedliche hmIDs haben, dann wird sich die hmID mindestens einer Schnittstelle ändern. (Der Einfachheit halber war im obigen Beispiel angenommen, dass auch vorher die beiden Schnittstellen bereits die gleiche ID hatten.)&lt;br /&gt;
&lt;br /&gt;
=== Auswirkungen auf IOs / Funkschnittstellen===&lt;br /&gt;
Sind IOs durch das Attribut IOList einer VCCU zugewiesen, werden die notwendigen Attribute im IO gesetzt, so wird die hmId durch die VCCU kontrolliert. Ein HMLAN/USB ist etwas enger verbunden als CUL IOs. Beim HMLAN kann die HMId nicht mehr geändert werden. Die kontrollierende VCCU wird in den Internals &#039;&#039;owner&#039;&#039; und &#039;&#039;owner_CCU&#039;&#039; des IO automatisch eingetragen. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pairen von HM Devices===&lt;br /&gt;
HM Devices sollten vorzugsweise direkt mit der VCCU gepairt werden, hierzu werden die normalen Befehle&lt;br /&gt;
  hmPairForSec&lt;br /&gt;
  hmPairSerial&lt;br /&gt;
verwendet. Es ist im übrigen weiter möglich (aber nicht sinnvoll / empfehlenswert)  auch nach Anlage einer VCCU HM Devices mit diesen Kommandos direkt an ein IO zu pairen, d.h. diese Kommandos haben auch nach Anlage einer VCCU noch eine Funktion an der physikalischen Schnittstelle (im Gegensatz z.b. zum attr IODev)&lt;br /&gt;
&lt;br /&gt;
== Dynamisches IO ==&lt;br /&gt;
FHEM sendet Befehle an an ein HM Device in der Regel immer über das gleiche IO-Device. Fällt es aus, wird nicht mehr gesendet, selbst wenn ein zweites IO verfügbar wäre. Ausserdem gibt es &#039;&#039;bewegliche&#039;&#039; Fernbedienungen welche ihre Verbindung zu einem IO verlieren, aber über ein andere IO gut empfangen werden könnten.&lt;br /&gt;
&lt;br /&gt;
Die VCCU adressiert beide Probleme:&lt;br /&gt;
&lt;br /&gt;
Durch das Attibut IOgrp  &lt;br /&gt;
 attr &amp;lt;dev&amp;gt; IOgrp &amp;lt;vccu&amp;gt;:&amp;lt;preferredIO&amp;gt;&lt;br /&gt;
kann bestimmt werden, wie die VCCU die IO Devices genau nutzt. Insbesondere ist optional ein Preferd IO Device definierbar: bei stationären Devices - der häufigste Fall - sollte man das beste IO auswählen und als Default nutzen. Ein weiteres IO wird bei Ausfall des Ersten genutzt.&lt;br /&gt;
&lt;br /&gt;
Das preferredIO ist jedoch optional und kann insbesondere bei beweglichen HM Devices (Fernbedienungen) weggelassen werden.&lt;br /&gt;
&lt;br /&gt;
Es können auch mehrere preferredIO definiert werden, diese werden in der definierten Reihenfolge genutzt&lt;br /&gt;
 attr &amp;lt;dev&amp;gt; IOgrp &amp;lt;vccu&amp;gt;:&amp;lt;prefIO1&amp;gt;,&amp;lt;prefIO2&amp;gt;,&amp;lt;prefIO3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beispiele:&lt;br /&gt;
&lt;br /&gt;
Durch&lt;br /&gt;
 attr &amp;lt;device&amp;gt; IOgrp VCCU:HMLAN1&lt;br /&gt;
wird die VCCU zuerst versuchen Befehle an &amp;lt;device&amp;gt; mit HMLAN1 zu senden, falls seine condition=ok. &lt;br /&gt;
Falls nicht wird (einer) der verbleibende(n) IOs verwendet, hier der mit dem besten RSSI.&lt;br /&gt;
&lt;br /&gt;
Durch&lt;br /&gt;
 attr &amp;lt;device&amp;gt; IOgrp VCCU&lt;br /&gt;
wird durch die VCCU der IO mit dem besten RSSI zum Device gewählt, falls seine condition=ok ist. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Da dies für jedes angelegte HM Device einzeln definiert werden kann/muss, kann so auch eine Verteilung des Funkverkehrs vorgenommen werden, z.b. um die 1%-Regel (HighLoad) zu berücksichtigen, dennoch bleibt die Redunanz bei Ausfall einer Schnittstelle erhalten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bemerkungen ===&lt;br /&gt;
Es wird empfohlen, das Attribut IOgrp in allen Devices zu setzen. Kanäle senden nicht selbständig, haben daher kein Attribut IOgrp.&amp;lt;br&amp;gt;&lt;br /&gt;
Das Attribut &#039;&#039;&#039;IODev&#039;&#039;&#039; wird automatisch gesetzt, Usereinträge haben keine Funktion. Es zeigt jedoch indirekt das letzte genutzte output-device.&amp;lt;br&amp;gt;&lt;br /&gt;
Die besprochene Steuerung betrifft das &#039;&#039;&#039;Senden&#039;&#039;&#039;. Empfangen und verarbeitet werden Nachrichten immer von allen verfügbaren Quellen.&lt;br /&gt;
&lt;br /&gt;
=== Setzen der IOgrp auf (fast) allen Devices mit einem einzigen Befehl ===&lt;br /&gt;
Hat man eine bestehende Fhem-Installation mit mehreren/vielen Devices, kann das Setzen der &#039;&#039;IOgrp&#039;&#039; aufwändig sein. &lt;br /&gt;
Relativ einfach geht es bei allen HM Geräten durch Filtern der sechstelligen DEF (HMID):&lt;br /&gt;
&lt;br /&gt;
  attr TYPE=CUL_HM:FILTER=DEF=...... IOgrp VCCU&lt;br /&gt;
&lt;br /&gt;
Den obigen Befehl in der Fhem-Eingabezeile eingeben und mit &amp;lt;Return&amp;gt; bestätigen. &lt;br /&gt;
VCCU steht für den Namen der VCUU und ist entsprechend zu ersetzen.&lt;br /&gt;
Durch die 6 Punkte werden nur die Geräte erfasst, die Kanäle haben 8 stellige IDs und bleiben unberührt.  &lt;br /&gt;
&lt;br /&gt;
Anschließend nicht vergessen die Konfiguration mit save zu speichern.&lt;br /&gt;
&lt;br /&gt;
== Virtuelle Kanäle der VCCU==&lt;br /&gt;
: &#039;&#039;→ Siehe auch: [[HomeMatic#IO_Entities]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Eine VCCU kann bis zu 50 virtuelle Kanäle, sogenannte &#039;&#039;&#039;IO-Entities&#039;&#039;&#039;, bedienen. Diese können als Sender/Sensoren oder Empfänger genutzt werden. Man kann diese Kanäle mit einem realen Kanal peeren und Aktionen triggern. &lt;br /&gt;
&lt;br /&gt;
Man peert beispielsweise einen Dimmer mit einer IO-Entity um &amp;quot;Tastendrücke&amp;quot; in der Zentrale auslösen zu können. Sowohl kurze (short) als auch lange (long) Tastendrücke können so an den Dimmer gesendet werden.&lt;br /&gt;
Auch mehrere Aktoren können mit einer IO-Entity gepeert werden, beispielsweise um alle Lichter der Gruppe mit einem &amp;quot;press&amp;quot; gleichzeitig zu schalten.&lt;br /&gt;
 &lt;br /&gt;
=== Anlegen ===&lt;br /&gt;
  set VCCU virtual &amp;lt;AnzahlButton&amp;gt;&lt;br /&gt;
z.B.&lt;br /&gt;
  set VCCU virtual 10&lt;br /&gt;
legt 10 Kanäle für die VCCU an, die Kanäle 1-10. Evtl. vorhandene Kanäle größer 10 werden gelöscht.&lt;br /&gt;
&lt;br /&gt;
=== Kommandos ===&lt;br /&gt;
: &#039;&#039;→ Siehe auch: [http://fhem.de/commandref.html#CUL_HMvirtual CommandRef]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Verfügbare Kommandos auflisten:&lt;br /&gt;
&lt;br /&gt;
  get vccu_Btn1 cmdList&lt;br /&gt;
&lt;br /&gt;
Insbesondere gibt es:&lt;br /&gt;
 &lt;br /&gt;
  set vccu_Btn1 press short&lt;br /&gt;
  set vccu_Btn1 press long&lt;br /&gt;
  set vccu_Btn1 postEvent &amp;lt;condition&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HomeMatic Components]]&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;/div&gt;</summary>
		<author><name>Stephan1965</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Erste_Schritte_in_FHEM&amp;diff=15764</id>
		<title>Erste Schritte in FHEM</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Erste_Schritte_in_FHEM&amp;diff=15764"/>
		<updated>2016-06-30T15:48:49Z</updated>

		<summary type="html">&lt;p&gt;Stephan1965: Es sollte myLampe2 in myStehlampe umbenannt werden. War aber im Befehl myLampe1 und dass passt nicht zum Notify.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Für alle, die das erste mal mit fhem arbeiten, hier ein kleiner Kurs zum Einstieg.&lt;br /&gt;
Dieser ist so aufgebaut, dass man noch keine Hardware benötigt und nach dem Installieren der fhem-Software sofort loslegen kann.&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung wurde ursprünglich von Ulrich Maass publiziert, der die Genehmigung erteilt hat, sie auch im Wiki zu veröffentlichen.&lt;br /&gt;
&lt;br /&gt;
Anmerkung zur Bearbeitung: Korrekturen von Tippfehlern kann jeder machen. Redaktionelle Änderungen und Erweiterungen aber bitte mit dem Autor (z.B. auf der zugehörigen Diskussionsseite) abstimmen.&lt;br /&gt;
&lt;br /&gt;
==Der erste Einstieg==&lt;br /&gt;
Um fhem zum ersten Mal aufzurufen, geben Sie im Browser ein:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://&amp;lt;ip-Adresse&amp;gt;:8083&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
also z.B. &amp;lt;nowiki&amp;gt;http://192.168.1.1:8083&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
Sie gelangen auf den Startbildschirm:&lt;br /&gt;
&lt;br /&gt;
[[Datei:ErsteSchritteInFhem01.png]]&lt;br /&gt;
&lt;br /&gt;
*Am oberen Bildschirmrand sehen Sie das weiße &#039;&#039;Kommandofeld&#039;&#039;, in das Sie Befehle tippen können.&lt;br /&gt;
*Als ersten Menüpunkt sehen Sie die Schaltfläche &#039;&#039;Save config&#039;&#039;, mit der Änderungen so gespeichert werden, dass sie auch nach einem Neustart noch vorhanden sind.&lt;br /&gt;
*Außerdem gibt es bereits die Räume &#039;&#039;Unsorted&#039;&#039; und &#039;&#039;Everything&#039;&#039;, die wir bald kennenlernen.&lt;br /&gt;
*Im unteren Block befinden sich weitere Links, auf die wir später ebenfalls eingehen.&lt;br /&gt;
&lt;br /&gt;
Der Hinweis &#039;&#039;Security Check&#039;&#039; besagt, dass Sie noch kein Passwort für fhem eingerichtet haben. Wie man einen Passwortschutz einrichten kann, steht in der fhem-Befehlsreferenz [http://fhem.de/commandref_DE.html commandref], in der es übrigens eine Beschreibung zu allen Funktionen und Modulen von fhem gibt. Um diese Meldung erst einmal zu unterdrücken, geben Sie in das Kommandofeld ein:&lt;br /&gt;
 attr global motd none&lt;br /&gt;
und bestätigen Ihre Eingabe mit der {{Taste|Enter}}-Taste.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ErsteSchritteInFhem02.png]]&lt;br /&gt;
&lt;br /&gt;
==Device anlegen - define==&lt;br /&gt;
&lt;br /&gt;
Um fhem kennenzulernen, legen wir erst einmal einige &amp;quot;Dummy&amp;quot;-Devices an. So können Sie diese Tests auch ohne ein Hardware-System durchführen bzw. kann hier eine allgemeine Einführung erfolgen, ohne auf die Unterschiede der einzelnen Hardwaresysteme einzugehen. Ein Dummy-Device sieht auf der fhem-Oberfläche im Allgemeinen genau so aus, wie ein fhem-Device zu einem &amp;quot;echten&amp;quot; Gerät Ihres Hardwaresystems.&lt;br /&gt;
&lt;br /&gt;
Zunächst legen wir einen Schalter an. Dieser soll einen Lichtschalter an der Wand simulieren. Geben Sie dazu folgenden Befehl in das Kommandofeld ein:&lt;br /&gt;
 define mySchalter1 dummy&lt;br /&gt;
Nach drücken der {{Taste|Enter}}-Taste wird die Detail-Ansicht des neuen fhem-Device &#039;&#039;mySchalter1&#039;&#039; angezeigt.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ErsteSchritteInFhem03.png]]&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Der Block &#039;&#039;&#039;&#039;&#039;Internals&#039;&#039;&#039;&#039;&#039; zeigt immer die grundlegende Ausprägung eines fhem-device an:&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;NAME&#039;&#039;&#039;&#039;&#039;  ist der von Ihnen vergebene Name.&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;TYPE&#039;&#039;&#039;&#039;&#039;  ist der Typ des fhem-device, hier dummy.&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;STATE&#039;&#039;&#039;&#039;&#039; ist der in allen Übersichten angezeigte Status des Geräts. Da noch keine Zuordnung stattgefunden hat, ist dieser zunächst &#039;&#039;&#039;&#039;&#039;???&#039;&#039;&#039;&#039;&#039;.}}&lt;br /&gt;
&lt;br /&gt;
==Räume definieren==&lt;br /&gt;
In Räumen können Sie Geräte gruppieren, die sich auch physisch in einem Raum (Wohnzimmer, Schlafzimmer, etc.) befinden.&lt;br /&gt;
&lt;br /&gt;
Um ein Device einem Raum zuzuordnen (der Raum muss zu diesem Zeitpunkt noch nicht existieren), verwenden Sie folgenden Befehl:&lt;br /&gt;
 attr mySchalter1 room Schulungsraum&lt;br /&gt;
&lt;br /&gt;
Nach Eingabe dieses Befehls in das Kommandofeld und Abschließen der Eingabe mit {{Taste|Enter}} ist das Device dem Raum &#039;&#039;Schulungsraum&#039;&#039; zugeordnet. Durch diese Zuordnung ist dieser Raum in der Navigationsleiste links zur Liste der Räume hinzugefügt worden.&lt;br /&gt;
&lt;br /&gt;
Klicken Sie einmal auf den Raum &#039;&#039;Schulungsraum&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ErsteSchritteInFhem04.png]]&lt;br /&gt;
&lt;br /&gt;
Es werden nun alle Geräte angezeigt, die diesem Raum zugeordnet wurden. Bisher haben wir hier nur ein Gerät: &#039;&#039;mySchalter1&#039;&#039;. Es wird in einem Block mit der Typbezeichnung &#039;&#039;dummy&#039;&#039; dargestellt.&lt;br /&gt;
Neben dem Device-Namen wird immer der Status des Device angezeigt, hier noch &#039;&#039;???&#039;&#039;.&lt;br /&gt;
Wenn Sie auf den Namen &#039;&#039;mySchalter1&#039;&#039; klicken, gelangen Sie wieder in dessen Detailansicht.&lt;br /&gt;
&lt;br /&gt;
==Schaltbefehle definieren==&lt;br /&gt;
Nun soll unser &#039;&#039;mySchalter1&#039;&#039; Schalterflächen für &#039;&#039;on&#039;&#039; und &#039;&#039;off&#039;&#039; bekommen.&lt;br /&gt;
 attr mySchalter1 webCmd on:off&lt;br /&gt;
&lt;br /&gt;
Statt den o.g. Befehl in das Kommandofeld einzugeben, können Sie auch im unteren Bereich der Detailansicht das gewünschte Attribut (hier: &#039;&#039;&#039;&#039;&#039;webCmd&#039;&#039;&#039;&#039;&#039;) auswählen und in dem Textfeld rechts daneben die gewünschten Werte eintragen, hier &#039;&#039;&#039;&#039;&#039;on:off&#039;&#039;&#039;&#039;&#039;. Schließen Sie Ihre Eingabe durch Klick auf den Button {{Taste|attr}} ab.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ErsteSchritteInFhem05.png]]&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|&#039;&#039;&#039;&#039;&#039;Attribute&#039;&#039;&#039;&#039;&#039; können vom Anwender gesetzt und geändert werden. Sie beeinflussen das Erscheinungsbild und die Funktion eines bereits bestehenden fhem-device. Welche Attribute verfügbar sind, hängt vom device-TYPE ab.}}&lt;br /&gt;
&lt;br /&gt;
Klicken Sie nun wieder links auf den &#039;&#039;Schulungsraum&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Sie sehen, dass durch die Attribut-Angabe im vorhergehenden Schritt, nun in der Raumansicht die Schaltflächen für &#039;&#039;on&#039;&#039; und &#039;&#039;off&#039;&#039; hinzugekommen sind.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ErsteSchritteInFhem06.png]]&lt;br /&gt;
&lt;br /&gt;
Klicken Sie versuchsweise auf &#039;&#039;on&#039;&#039; und &#039;&#039;off&#039;&#039;: Statt der bisher angezeigten &#039;&#039;???&#039;&#039; erscheint nun ein Glühbirnensymbol, das den aktuellen Status darstellt.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie durch Klicken auf den Device-Namen &#039;&#039;mySchalter1&#039;&#039; wieder in die Detailansicht wechseln, sehen Sie, dass im Block &#039;&#039;Internals&#039;&#039; nun auch der aktuelle Zustand &#039;&#039;STATE&#039;&#039; angezeigt wird. Dieser wird in der Raumansicht als Icon (Glühbirne) dargestellt.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ErsteSchritteInFhem07.png]]&lt;br /&gt;
&lt;br /&gt;
Auch sehen Sie im Detail-Bildschirm einen neuen Block &#039;&#039;Readings&#039;&#039;.&lt;br /&gt;
{{Hinweis|&#039;&#039;&#039;&#039;&#039;Readings&#039;&#039;&#039;&#039;&#039; zeigen Informationen an, die - anders als Attribute - nicht direkt vom Anwender verändert werden können. Unter anderem werden hier Datum und Uhrzeit der letzten Zustandsänderung angezeigt. Welche Readings angezeigt werden, hängt vom device-TYPE ab.}}&lt;br /&gt;
&lt;br /&gt;
Schalten Sie &#039;&#039;mySchalter1&#039;&#039; noch einmal aus und prüfen Sie, ob das Reading &#039;&#039;STATE&#039;&#039; incl. seines Zeitstempels aktualisiert wurde.&lt;br /&gt;
&lt;br /&gt;
==Event Monitor==&lt;br /&gt;
&lt;br /&gt;
Öffnen Sie nun in Ihrem Browser ein zusätzliches Fenster, in dem Sie ebenfalls fhem und darin den &#039;&#039;&#039;Event Monitor&#039;&#039;&#039; anzeigen. Am Schnellsten geht das, indem Sie mit der rechten Maustaste auf &#039;&#039;Event Monitor&#039;&#039; klicken und aus dem Kontextmenü des Browsers &#039;&#039;Öffnen in neuem Fenster&#039;&#039; auswählen. Legen Sie die Fenster so übereinander, dass Sie gleichzeitig den Event Monitor sehen und Ihren &#039;&#039;mySchalter1&#039;&#039; bedienen können. Unter Windows ab Version 7 geht das am Einfachsten, wenn Sie zuerst das eine Fenster aktivieren und {{Taste|Windows}}+{{Taste|Pfeil rechts}} drücken, anschließend das selbe mit dem anderen Fenster und {{Taste|Windows}}+{{Taste|Pfeil links}} wiederholen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ErsteSchritteInFhem08.png]]&lt;br /&gt;
&lt;br /&gt;
Bei jedem Schalten von &#039;&#039;mySchalter1&#039;&#039; wird in fhem ein Ereignis, englisch event, ausgelöst. Bei jeder Betätigung des Schalters erscheint ein neuer Event im &#039;&#039;Event Monitor&#039;&#039;. Probieren Sie auch, was passiert, wenn Sie zweimal hintereinander auf &#039;&#039;on&#039;&#039; klicken.&lt;br /&gt;
&lt;br /&gt;
Ein Event besteht immer aus dem Zeitstempel, gefolgt vom Typ des auslösenden Gerätes (hier &#039;&#039;dummy&#039;&#039;), dem auslösenden Device-Namen (hier &#039;&#039;mySchalter1&#039;&#039;), sowie dem ausgelösten Befehl (hier &#039;&#039;on&#039;&#039; oder &#039;&#039;off&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
Auch &amp;quot;echte&amp;quot; sendende fhem-Geräte, also z.B. eine Fernbedienung oder ein Funkschalter an der Wand, lösen bei jedem Tastendruck auf dieses Gerät oder bei Klick auf das zugehörige fhem-Device einen Event aus. Das Verständnis von Events und wie sie aufgebaut sind ist also elementar, wir werden sie noch oft benötigen. Probieren Sie ein wenig damit herum.&lt;br /&gt;
&lt;br /&gt;
==Schalten von Geräten - set==&lt;br /&gt;
&#039;&#039;mySchalter1&#039;&#039; kann also über Klicken auf &#039;&#039;on&#039;&#039; oder &#039;&#039;off&#039;&#039; geschaltet werden. Alternativ geht das auch über die Eingabe eines Befehls in das Kommandofeld.&lt;br /&gt;
&lt;br /&gt;
Geben Sie dazu in das Kommandofeld &amp;lt;code&amp;gt;set mySchalter1 on&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;set mySchalter1 off&amp;lt;/code&amp;gt; ein und bestätigen jeweils mit der {{Taste|Enter}}-Taste. Auch hierbei ändert sich der Schaltzustand und ein Event wird ausgelöst. Den &#039;&#039;set&#039;&#039;-Befehl werden wir ebenfalls noch häufig verwenden.&lt;br /&gt;
&lt;br /&gt;
Für weitere Tests legen wir nun ein neues Device &#039;&#039;&#039;&#039;&#039;myLampe1&#039;&#039;&#039;&#039;&#039; an. Diese wollen wir später mit &#039;&#039;&#039;&#039;&#039;mySchalter1&#039;&#039;&#039;&#039;&#039; bedienen.&lt;br /&gt;
 define myLampe1 dummy&lt;br /&gt;
Da dies eine Lampe, also einen Aktor darstellen soll, werden wir der Lampe selbst keine Buttons für &#039;&#039;on&#039;&#039; oder &#039;&#039;off&#039;&#039; geben.&lt;br /&gt;
&lt;br /&gt;
Die Lampe soll im Schulungsraum stehen. Diese Zuordnung könnten Sie wie zuvor über die Kommandozeile erreichen. Diesmal sind wir aber tippfaul und möchten die Zuordnung durch Klicken vornehmen.&lt;br /&gt;
&lt;br /&gt;
Da &#039;&#039;myLampe1&#039;&#039; noch keinem Raum zugeordnet ist, erscheint sie im Raum &#039;&#039;Unsorted&#039;&#039;. Wechseln Sie in diesen Raum und klicken Sie auf den Namen von &#039;&#039;myLampe1&#039;&#039;, um in die Detailansicht zu gelangen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ErsteSchritteInFhem09.png]]&lt;br /&gt;
&lt;br /&gt;
Im unteren Bereich können wir wieder die Attributzuordnung vornehmen.&lt;br /&gt;
&lt;br /&gt;
Praktischerweise ist das Attribut &#039;&#039;room&#039;&#039; bereits ausgewählt, auch der Raum &#039;&#039;Schulungsraum&#039;&#039; ist bereits voreingestellt. Sie müssen also nur noch auf den Button {{Taste|attr}} klicken.&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie nun wieder in den Raum &#039;&#039;Schulungsraum&#039;&#039;. Es werden beide Geräte angezeigt.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ErsteSchritteInFhem10.png]]&lt;br /&gt;
&lt;br /&gt;
==Bei Event ausführen - notify==&lt;br /&gt;
&lt;br /&gt;
Im nächsten Schritt werden wir fhem beibringen, auf einen Event von &#039;&#039;mySchalter1&#039;&#039; zu reagieren. Immer dann, wenn &#039;&#039;mySchalter1&#039;&#039; einen Event mit dem Befehl &#039;&#039;on&#039;&#039; auslöst, soll &#039;&#039;myLampe1&#039;&#039; eingeschaltet werden.&lt;br /&gt;
Dazu wird in fhem ein &amp;quot;notify&amp;quot; verwendet. Die Befehlsstruktur ist&lt;br /&gt;
 define &amp;lt;NAME&amp;gt; notify &amp;lt;REGEXP&amp;gt; &amp;lt;command&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Der Name &#039;&#039;&#039;&amp;lt;name&amp;gt;&#039;&#039;&#039; dient später dazu, dieses fhem-Device anzeigen und wiederfinden zu können. Als Name verwende ich hier &#039;&#039;n_mySchalter1_on&#039;&#039;, also &#039;&#039;n_&#039;&#039; um es als Notify kenntlich zu machen, dann das auslösende Gerät &#039;&#039;mySchalter1&#039;&#039; und den auslösenden Event &#039;&#039;on&#039;&#039;. Dieser Name scheint jetzt kompliziert, ist aber hilfreich, wenn Sie später mehrere Notify angelegt haben. Sie können es ganz nach Gusto auch &#039;&#039;n1&#039;&#039; nennen oder &#039;&#039;Karlheinz&#039;&#039;. Device-Namen dürfen aus den Zeichen &#039;&#039;&#039;a-z&#039;&#039;&#039;, &#039;&#039;&#039;A-Z&#039;&#039;&#039;, &#039;&#039;&#039;0-9&#039;&#039;&#039;, &#039;&#039;&#039;Unterstrich _&#039;&#039;&#039; und &#039;&#039;&#039;Punkt .&#039;&#039;&#039; bestehen, wobei ein Punkt nicht an erster Stelle stehen darf. Sie werden später sehen, dass der Punkt in perl und damit fhem eine besondere Bedeutung hat, wenn möglich sollten Sie daher auf seine Verwendung in Device-Namen verzichten.&lt;br /&gt;
*&#039;&#039;&#039;&amp;lt;regex&amp;gt;&#039;&#039;&#039; steht für &amp;quot;Regular Expression&amp;quot; und ist die Bedingung, unter der das Notify ausgeführt werden soll. Wann immer in fhem ein Event auftritt, wird für alle vorhandenen Notify geprüft, ob die angegebene Regex zutrifft. Der auslösende Event ist in unserem Fall, dass &#039;&#039;mySchalter1&#039;&#039; ein Event mit dem Befehl &#039;&#039;on&#039;&#039; erzeugt. Dafür wird für die Regular Expression die Schreibweise &amp;lt;code&amp;gt;mySchalter1:on&amp;lt;/code&amp;gt; verwendet. Regular Expressions werden in perl und fhem häufig verwendet, Sie werden sich damit später detaillierter auseinandersetzen dürfen :)&lt;br /&gt;
*&#039;&#039;&#039;&amp;lt;command&amp;gt;&#039;&#039;&#039; definiert, was denn eigentlich ausgeführt werden soll. In unserem Beispiel soll das &amp;lt;code&amp;gt;set myLampe1 on&amp;lt;/code&amp;gt; sein.&lt;br /&gt;
&lt;br /&gt;
Unser Notify wird also erstellt mit&lt;br /&gt;
 define n_mySchalter1_on notify mySchalter1:on set myLampe1 on&lt;br /&gt;
&lt;br /&gt;
Nach Eingabe dieses Befehls in das Kommandofeld, abgeschlossen durch {{Taste|Enter}}, sehen Sie wieder die Detailansicht des neuen fhem-Device, also des Notify (siehe TYPE).&lt;br /&gt;
&lt;br /&gt;
[[Datei:ErsteSchritteInFhem11.png]]&lt;br /&gt;
&lt;br /&gt;
Im Block &#039;&#039;Internals&#039;&#039; sehen Sie hier die Definition &#039;&#039;&#039;DEF&#039;&#039;&#039;. Angezeigt wird hier alles, was bei der Definition nach dem Wort &amp;quot;notify&amp;quot;, also nach dem Gerätetyp angegeben wurde. Es erscheinen also &#039;&#039;&amp;lt;regexp&amp;gt;&#039;&#039; und &#039;&#039;&amp;lt;command&amp;gt;&#039;&#039;.&lt;br /&gt;
{{Hinweis|Im Block &#039;&#039;&#039;&#039;&#039;Probably associated with&#039;&#039;&#039;&#039;&#039; werden alle fhem-Devices angezeigt, die mit dem Notify verbunden sind. Die Geräte werden als klickbare Device-Namen angezeigt. Das ist praktisch, da man so mit einem Klick zur Detailansicht des jeweiligen Geräts springen kann.}}&lt;br /&gt;
&lt;br /&gt;
Ordnen Sie auch das Notify unserem Schulungsraum zu (im unteren Bereich das Attribut &#039;&#039;room&#039;&#039; und den passenden Raum auswählen und dann auf &#039;&#039;attr&#039;&#039; klicken).&lt;br /&gt;
&lt;br /&gt;
Wenn Sie nun im fhem-Menü auf &#039;&#039;Schulungsraum&#039;&#039; klicken, werden unsere drei fhem-Devices angezeigt.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ErsteSchritteInFhem12.png]]&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Üblicherweise würde man das Notify keinem Raum zuordnen, da es später für den Benutzer gar nicht sichtbar sein soll. Für unsere Testdurchläufe ist es aber praktischer.}}&lt;br /&gt;
&lt;br /&gt;
Wenn Sie nun &#039;&#039;mySchalter1&#039;&#039; auf &#039;&#039;on&#039;&#039; schalten, wird auch &#039;&#039;myLampe1&#039;&#039; auf &#039;&#039;on&#039;&#039; geschaltet. Das funktioniert scheinbar nur beim ersten Mal – wenn Sie aber den Event Monitor prüfen oder in der Detailansicht von &#039;&#039;myLampe1&#039;&#039; auf den Zeitstempel der letzten Statusänderung schauen, werden Sie sehen, dass es jedes Mal ausgeführt wird.&lt;br /&gt;
&lt;br /&gt;
Damit das Ganze auch beim Ausschalten funktioniert, legen Sie ein zweites notify an:&lt;br /&gt;
 define n_mySchalter1_off notify mySchalter1:off set myLampe1 off&lt;br /&gt;
Funktioniert es wie erwartet?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Natürlich möchte man nicht für jeden Befehl, den ein Device auslöst, ein eigenes Notify anlegen. Es geht auch einfacher.&lt;br /&gt;
Statt&lt;br /&gt;
 define n_mySchalter1_on  notify mySchalter1:on  set myLampe1 on&lt;br /&gt;
 define n_mySchalter1_off notify mySchalter1:off set myLampe1 off&lt;br /&gt;
definieren wir nun&lt;br /&gt;
 define n_mySchalter1 notify mySchalter1 set myLampe1 &#039;&#039;&#039;$EVENT&#039;&#039;&#039;&lt;br /&gt;
Wir sehen, dass die Regex nun nicht mehr unterscheidet, ob &#039;&#039;mySchalter1&#039;&#039; den Event &#039;&#039;on&#039;&#039; oder &#039;&#039;off&#039;&#039; sendet. Lassen wir diese Angabe weg, löst dieses Notify bei jedem Event von &#039;&#039;mySchalter1&#039;&#039; aus, egal mit welchem Kommando. Im auszuführenden &#039;&#039;set&#039;&#039;-Befehl verwenden wir nun die fhem-Variable &#039;&#039;&#039;$EVENT&#039;&#039;&#039; (Groß/Kleinschreibung beachten!). Dies ist ein Platzhalter für den Befehl, der vom auslösenden Event übernommen wird. Wenn also &#039;&#039;mySchalter1&#039;&#039; ein &#039;&#039;on&#039;&#039; auslöst, nimmt &#039;&#039;&#039;$EVENT&#039;&#039;&#039; den Wert &#039;&#039;on&#039;&#039; an. Entsprechend für &#039;&#039;off&#039;&#039; oder jeden anderen Befehl.&lt;br /&gt;
&lt;br /&gt;
==Devices löschen oder deaktivieren – delete, disable==&lt;br /&gt;
Wenn Sie den Event Monitor beachten, werden Sie sehen, dass nach jeder Betätigung von &#039;&#039;mySchalter1&#039;&#039; der Befehl für &#039;&#039;myLampe1&#039;&#039; nun zweimal ausgeführt wird. Das liegt daran, dass auf jeden Event von &#039;&#039;mySchalter1&#039;&#039; zwei Notify reagieren – sowohl die &amp;quot;alten&amp;quot; Notify wie auch das Neue. Um dies zu umgehen, müssen wir die alten Notify loswerden. Dazu gibt es zwei Möglichkeiten.&lt;br /&gt;
&lt;br /&gt;
#Löschen Sie ein Notify mit dem Befehl &amp;lt;code&amp;gt;delete &amp;lt;name&amp;gt;&amp;lt;/code&amp;gt;, z.B. mit &amp;lt;code&amp;gt;delete n_mySchalter1_on&amp;lt;/code&amp;gt;. Der &amp;lt;code&amp;gt;delete&amp;lt;/code&amp;gt; Befehl funktioniert übrigens für jedes Objekt in fhem. Sie können damit also auch &amp;quot;echte&amp;quot; Devices löschen.&lt;br /&gt;
#Deaktivieren Sie ein Notify, indem Sie das Attribut &#039;&#039;disable&#039;&#039; verwenden. Das können Sie wieder über die Detailansicht des Notify setzen (im unteren Bereich das Attribut &#039;&#039;disable&#039;&#039; und den Wert &#039;&#039;1&#039;&#039; auswählen, dann {{Taste|attr}} klicken), oder in der Kommandozeile &amp;lt;code&amp;gt;attr n_mySchalter1_off disable 1&amp;lt;/code&amp;gt; eingeben.&lt;br /&gt;
&lt;br /&gt;
==Save Config==&lt;br /&gt;
&lt;br /&gt;
Wann immer Sie mit dem aktuellen Zustand Ihrer fhem-Konfiguration zufrieden sind, klicken Sie im fhem-Menü oben links einmal auf &#039;&#039;&#039;&#039;&#039;Save config&#039;&#039;&#039;&#039;&#039; oder geben Sie in das Kommandofeld den Befehl &amp;lt;code&amp;gt;save&amp;lt;/code&amp;gt; ein. Ihre Konfiguration wird nun gespeichert. Tun Sie das nicht, sind alle Änderungen nach dem nächsten fhem-Neustart &#039;&#039;&#039;verloren&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Bestehende Devices verändern – modify==&lt;br /&gt;
&lt;br /&gt;
Wir legen nun eine zweite Lampe an, die ebenfalls durch unseren &#039;&#039;mySchalter1&#039;&#039; und unser Notify geschaltet werden soll.&lt;br /&gt;
Die neue Lampe wird durch folgende Eingabe in das Kommandofeld erzeugt:&lt;br /&gt;
 define myLampe2 dummy&lt;br /&gt;
&lt;br /&gt;
Durch &amp;quot;Zusammenklicken&amp;quot; im Detail-Bildschirm von &#039;&#039;myLampe2&#039;&#039; ordnen Sie diese ebenfalls dem Raum &#039;&#039;Schulungsraum&#039;&#039; zu und weisen ihr über das Attribut &#039;&#039;webCmd&#039;&#039; Schaltflächen für &#039;&#039;on&#039;&#039; und &#039;&#039;off&#039;&#039; zu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:ErsteSchritteInFhem13.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun passen wir das Notify &#039;&#039;n_mySchalter1&#039;&#039; an. Dazu navigieren Sie auf den Detail-Bildschirm des Notify: Wechseln Sie in den Raum &#039;&#039;Schulungsraum&#039;&#039; und klicken Sie auf den Namen von &#039;&#039;n_mySchalter1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Im Detail-Bildschirm befindet sich die Zeile &#039;&#039;DEF&#039;&#039;, die wir uns vorhin schon einmal angeschaut haben. Wenn Sie auf das Wort &#039;&#039;DEF&#039;&#039; klicken, können Sie die Definition eines fhem-Objekts bearbeiten.&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Im Feld &#039;&#039;DEF&#039;&#039; wird nur der Teil der Definition angezeigt, der beim Anlegen dieses Notify nach dem Objekttyp, also &#039;&#039;notify&#039;&#039; folgt. Sie finden hier also zunächst die Regex auf die das Notify reagiert, dann nach einer Leerstelle den auszuführenden Befehl.&lt;br /&gt;
Der Lesbarkeit halber ist im Folgenden immer das gesamte define-Statement dargestellt, auch wenn man es im Feld &#039;&#039;DEF&#039;&#039; nicht vollständig sieht.}}&lt;br /&gt;
&lt;br /&gt;
Wir ändern hier also von &lt;br /&gt;
 define n_mySchalter1 notify mySchalter1 set myLampe1 $EVENT&lt;br /&gt;
zu&lt;br /&gt;
 define n_mySchalter1 notify mySchalter1 set myLampe1,myLampe2 $EVENT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:ErsteSchritteInFhem14.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zum Beenden der Bearbeitung klicken Sie auf die Schaltfläche &#039;&#039;&#039;&#039;&#039;modify &amp;lt;name&amp;gt;&#039;&#039;&#039;&#039;&#039;, hier also {{Taste|modify n_mySchalter1}}. Wenn Sie die Angaben im Detail-Bildschirm prüfen, sehen Sie, dass die &#039;&#039;DEF&#039;&#039;inition des Notify angepasst wurde.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ErsteSchritteInFhem14B.png]]&lt;br /&gt;
&lt;br /&gt;
Beachten Sie auch hier wieder, dass im Detailscreen im unteren Bereich unter &#039;&#039;Probably associated with&#039;&#039; die geschalteten Lampen erscheinen – das wird noch oft nützlich sein.&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Über den Link &#039;&#039;&#039;&#039;&#039;Device specific help&#039;&#039;&#039;&#039;&#039; können Sie sich übrigens den gesamten Hilfe-Text zu Ihrem device-Typ aus der commandref anschauen, hier also den Hilfetext zu &#039;&#039;notify&#039;&#039;. Dieser Link ist gerade zu Beginn häufig hilfreich.}}&lt;br /&gt;
&lt;br /&gt;
Nun können Sie testen, ob ein Klick auf &#039;&#039;mySchalter1&#039;&#039; auch wirklich beide Lampen schaltet. Schauen Sie sich dabei auch wieder in einem separaten Fenster mit dem Event Monitor die entstehenden Events an.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:ErsteSchritteInFhem15.png]]&lt;br /&gt;
&lt;br /&gt;
==Mehrere Devices schalten==&lt;br /&gt;
&lt;br /&gt;
Zum Schalten mehrerer Devices kann also verwendet werden&lt;br /&gt;
 set &amp;lt;device1&amp;gt;,&amp;lt;device2&amp;gt; on&lt;br /&gt;
&lt;br /&gt;
Eine alternative Schreibweise dafür ist&lt;br /&gt;
 set &amp;lt;device1&amp;gt; on; set &amp;lt;device2&amp;gt; on&lt;br /&gt;
&lt;br /&gt;
Auch eine Kombination ist möglich:&lt;br /&gt;
 set &amp;lt;device1&amp;gt;,&amp;lt;device2&amp;gt; on; set &amp;lt;device3&amp;gt; off&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auch innerhalb eines notify (oder anderen fhem-Befehlen) kann man mehrere Befehle auflisten, jedoch ist hier eines zu beachten:&lt;br /&gt;
 define n1 notify mySchalter1:on set myLampe1 on;set myLampe2 off&lt;br /&gt;
Die Befehle sind durch ein Semikolon getrennt. Effekt ist: Das notify schaltet myLampe1 wann immer mySchalter1 den Event on sendet. Der nächste Befehl in dieser Zeile ist &#039;&#039;set myLampe2 off&#039;&#039;. Dieser wird &#039;&#039;&#039;sofort&#039;&#039;&#039; bei der Eingabe der o.g. Befehlszeile abgearbeitet. Es schaltet also myLampe2 sofort, myLampe1 erst nach dem Event von mySchalter1.&lt;br /&gt;
&lt;br /&gt;
Soll auch der zweite Befehl &#039;&#039;set myLampe2 off&#039;&#039; erst nach dem Event ausgeführt werden, muss ein doppeltes Semikolon genutzt werden:&lt;br /&gt;
 define n1 notify mySchalter1:on set myLampe1 on;;set myLampe2 off&lt;br /&gt;
&lt;br /&gt;
Die kombinierte Variante könnte so aussehen:&lt;br /&gt;
 define n1 notify mySchalter1:on set myLampe1 on;;set myLampe2 off;set myLampe3 on&lt;br /&gt;
Diese Befehlszeile würde also myLampe3 sofort schalten, aber erst nach dem Event von mySchalter1 schalten myLampe1 und myLampe2.&lt;br /&gt;
&lt;br /&gt;
==Devices umbenennen==&lt;br /&gt;
&lt;br /&gt;
Schließlich wollen wir (zur Übung) noch ein Device umbenennen: Aus &#039;&#039;&#039;&#039;&#039;myLampe2&#039;&#039;&#039;&#039;&#039; soll &#039;&#039;&#039;&#039;&#039;myStehlampe&#039;&#039;&#039;&#039;&#039; werden. Dafür verwenden wir&lt;br /&gt;
 rename &amp;lt;alterName&amp;gt; &amp;lt;neuerName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hierbei ist zu beachten, dass zugehörige notify-Anweisungen &#039;&#039;&#039;nicht&#039;&#039;&#039; automatisch aktualisiert werden. Beachten Sie also vor dem Umbenennen im unteren Bereich des Detail-Bildschirms die Liste &#039;&#039;Probably associated with&#039;&#039;, damit Sie bei der folgenden Anpassung keines Ihrer Notify vergessen.&lt;br /&gt;
&lt;br /&gt;
Geben Sie also in das Kommandofeld ein&lt;br /&gt;
 rename myLampe2 myStehlampe&lt;br /&gt;
und passen Sie anschließend &#039;&#039;n_mySchalter1&#039;&#039; an, indem Sie auf dessen Detail-Bildschirm im Bereich &#039;&#039;DEF&#039;&#039; die Definition anpassen.&lt;br /&gt;
&lt;br /&gt;
Nach der Änderung muss das Notify lauten&lt;br /&gt;
 define n_mySchalter1 notify mySchalter1 set myLampe1,myStehlampe $EVENT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:ErsteSchritteInFhem16.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Zeitgesteuert schalten - at==&lt;br /&gt;
&lt;br /&gt;
Im nächsten Schritt soll eine Zeitsteuerung eingerichtet werden.&lt;br /&gt;
Zunächst möchten wir erreichen, dass &#039;&#039;myLampe1&#039;&#039; nach einer Minute ausgeschaltet wird wie z.B. ein Treppenhauslicht.&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Damit Sie den Effekt sehen können, schalten Sie &#039;&#039;myLampe1&#039;&#039; vorher auf &#039;&#039;on&#039;&#039;.}}&lt;br /&gt;
&lt;br /&gt;
Für Zeitsteuerungen gibt es den fhem-Device-Typ &#039;&#039;at&#039;&#039;. Die Befehlsstruktur ist&lt;br /&gt;
 define &amp;lt;name&amp;gt; at &amp;lt;timespec&amp;gt; &amp;lt;command&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;name&amp;gt;&#039;&#039;&#039; und &#039;&#039;&#039;&amp;lt;command&amp;gt;&#039;&#039;&#039; haben hier dieselbe Funktion wie bei notify. Neu ist hier lediglich &#039;&#039;&#039;&amp;lt;timespec&amp;gt;&#039;&#039;&#039; (time specification), also die Zeitangabe. Diese erfolgt in der Schreibweise &#039;&#039;HH:MM:SS&#039;&#039; oder &#039;&#039;HH:MM&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Um &#039;&#039;&#039;&#039;&#039;myLampe1&#039;&#039;&#039;&#039;&#039; also &#039;&#039;&#039;in einer Minute auszuschalten&#039;&#039;&#039;, erzeugen Sie folgendes &#039;&#039;at&#039;&#039;:&lt;br /&gt;
 define a_myLampe1 at +00:01:00 set myLampe1 off&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:ErsteSchritteInFhem17.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Probieren Sie es aus.&lt;br /&gt;
Wird &#039;&#039;myLampe1&#039;&#039; nach einer Minute ausgeschaltet?&lt;br /&gt;
Wird dabei ein Event erzeugt?&lt;br /&gt;
&lt;br /&gt;
Wenn Sie sich die Detailansicht des &#039;&#039;at&#039;&#039; anschauen möchten, müssen Sie sich übrigens beeilen: Nach der einmaligen Ausführung wird das &#039;&#039;at&#039;&#039; automatisch gelöscht. Falls fhem schneller war, können Sie es ja noch einmal anlegen und ggf. eine längere Zeitspanne angeben :-)&lt;br /&gt;
&lt;br /&gt;
Bei  &amp;lt;timespec&amp;gt; kann man die Sekunden auch weglassen und einfach nur HH:MM schreiben. Außerdem gibt es mehrere Varianten:&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Varianten von Zeitangaben für &#039;&#039;at&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
!Notation&lt;br /&gt;
!Erklärung&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align: right;&amp;quot;|+00:02:00&lt;br /&gt;
|In zwei Minuten; einmalige Ausführung&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align: right;&amp;quot;|00:02:00&lt;br /&gt;
|Um zwei Minuten nach Mitternacht, also um 00:02 Uhr und 0 Sekunden; einmalige Ausführung&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align: right;&amp;quot;|*00:02:00&lt;br /&gt;
|Täglich um 00:02 Uhr&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align: right;&amp;quot;|+*00:02:00&lt;br /&gt;
|Alle 2 Minuten&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align: right;&amp;quot;|+*{3}00:02&lt;br /&gt;
|Dreimal, alle zwei Minuten&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align: right;&amp;quot;|*{3}00:02&lt;br /&gt;
|Dreimal um 00:02 Uhr&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align: right;&amp;quot;|*{sunset_rel()}&lt;br /&gt;
|Täglich zu Sonnenuntergang&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align: right;&amp;quot;|*{sunrise(+120)}&lt;br /&gt;
|Täglich 2 Minuten (120 Sekunden) nach Sonnenaufgang&lt;br /&gt;
|}&lt;br /&gt;
*Durch die Angabe von &#039;&#039;&#039;*&#039;&#039;&#039; wird also eine dauerhafte Wiederholung definiert. Die Wiederholungen laufen so lange, bis das &#039;&#039;at&#039;&#039; gelöscht oder disabled wird.&lt;br /&gt;
*Durch die Angabe von &#039;&#039;&#039;+&#039;&#039;&#039; wird die angegebene Zeit nicht mehr als absolute Uhrzeit interpretiert, sondern als Timer, nach wie vielen Stunden:Minuten:Sekunden der Befehl ausgeführt wird. &lt;br /&gt;
*Durch die Angabe von &#039;&#039;&#039;&#039;&#039;{n}&#039;&#039;&#039;&#039;&#039; wird das &#039;&#039;at&#039;&#039; nur n-mal durchlaufen.&lt;br /&gt;
*Die Funktionen &#039;&#039;&#039;&#039;&#039;{sunset_rel()}&#039;&#039;&#039;&#039;&#039; und &#039;&#039;&#039;&#039;&#039;{sunrise()}&#039;&#039;&#039;&#039;&#039; liefern die passende Uhrzeit zurück. Durch Angabe von &#039;&#039;&#039;&#039;&#039;*&#039;&#039;&#039;&#039;&#039; wird dies täglich wiederholt.&lt;br /&gt;
&lt;br /&gt;
Um bspw. täglich zu Sonnenaufgang die Gartenbeleuchtung auszuschalten, definieren Sie so etwas wie&lt;br /&gt;
 define a_GartenLicht_morgens_off at *{sunrise()} set GartenLicht off&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:ErsteSchritteInFhem18.png]]&lt;br /&gt;
&lt;br /&gt;
Im Detailscreen eines &#039;&#039;at&#039;&#039; wird übrigens im &#039;&#039;STATE&#039;&#039; der Zeitpunkt der nächsten Ausführung angezeigt. &lt;br /&gt;
&lt;br /&gt;
Diese Info erscheint auch in der Raum-Ansicht, falls Sie das &#039;&#039;at&#039;&#039; dort anzeigen lassen:&lt;br /&gt;
&lt;br /&gt;
[[Datei:ErsteSchritteInFhem18B.png]]&lt;br /&gt;
&lt;br /&gt;
==Timer bei einem Event starten - notify und at==&lt;br /&gt;
&lt;br /&gt;
Als letzte Übung wollen wir ein &#039;&#039;notify&#039;&#039; und ein &#039;&#039;at&#039;&#039; verbinden. Der Timer soll nun nicht starten, wenn Sie den Befehl in das Kommandofeld eingeben, sondern wenn ein Event eintritt.&lt;br /&gt;
&lt;br /&gt;
Dazu basteln wir uns ein Treppenhaus: Legen Sie dafür die Dummy-Devices &#039;&#039;th_Schalter&#039;&#039; und &#039;&#039;th_Licht&#039;&#039; im Raum &#039;&#039;Treppenhaus&#039;&#039; an. Zum Anlegen des Raums &#039;&#039;Treppenhaus&#039;&#039; ordnen Sie dem ersten Device den Raum über das Kommandofeld zu, alle weiteren Attribute dann durch Klicken im Detail-Bildschirm: &lt;br /&gt;
 define th_Schalter dummy&lt;br /&gt;
 attr   th_Schalter room Treppenhaus&lt;br /&gt;
 attr   th_Schalter webCmd on&lt;br /&gt;
 define th_Licht dummy&lt;br /&gt;
 attr   th_Licht room Treppenhaus&lt;br /&gt;
&lt;br /&gt;
Nun fehlt noch das Notify, welches auf &#039;&#039;th_Schalter:on&#039;&#039; reagiert und daraufhin zwei Befehle ausführt: &lt;br /&gt;
*Einschalten des Treppenhauslichts mit &amp;lt;code&amp;gt;set th_Licht on&amp;lt;/code&amp;gt;&lt;br /&gt;
*Einen Timer starten, der es nach einer Minute wieder ausschaltet. Also &amp;lt;code&amp;gt;define a1 at +00:01 set th_Licht off&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Das sieht dann so aus (und muss ins Kommandofeld als &#039;&#039;&#039;eine&#039;&#039;&#039; Zeile eingegeben werden):&lt;br /&gt;
 define n_th_Schalter_on notify th_Schalter:on &lt;br /&gt;
        set th_Licht on;;define a1 at +00:01 set th_Licht off&lt;br /&gt;
Beim Auslösen des Notify wird also als Kommando das Einschalten des Treppenhauslichts ausgelöst, wie auch das Definieren eines Timers, der es eine Minute später wieder ausschaltet.&lt;br /&gt;
Funktioniert es?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:ErsteSchritteInFhem19.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Da das ja doch recht sperrig ist, gibt es noch eine etwas einfachere Alternative:&lt;br /&gt;
 define n_th_Schalter_on notify th_Schalter:on set th_Licht on;;sleep 60;;set th_Licht off&lt;br /&gt;
&lt;br /&gt;
Manche Hardwaresysteme bieten auch den Befehl &#039;&#039;on-for-timer&#039;&#039;, mit dem man alternativ schreiben kann&lt;br /&gt;
 define n_th_Schalter_on notify th_Schalter:on set th_Licht on-for-timer 60&lt;br /&gt;
&lt;br /&gt;
==Wie geht es weiter?==&lt;br /&gt;
&lt;br /&gt;
Sie haben nun kennengelernt:&lt;br /&gt;
* Das Anlegen von fhem-Devices mit &#039;&#039;&#039;define&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Events&#039;&#039;&#039; und den Event-Monitor&lt;br /&gt;
* Schalten von Devices mit &#039;&#039;&#039;set&#039;&#039;&#039;&lt;br /&gt;
* Verändern von Devices mit &#039;&#039;&#039;modify&#039;&#039;&#039;, &#039;&#039;&#039;rename&#039;&#039;&#039; und &#039;&#039;&#039;delete&#039;&#039;&#039;&lt;br /&gt;
* Das Setzen und Bearbeiten von &#039;&#039;&#039;Attributen&#039;&#039;&#039;&lt;br /&gt;
* Event-getriebene Aktionen durch &#039;&#039;&#039;notify&#039;&#039;&#039;&lt;br /&gt;
* Zeitgesteuertes Schalten mit &#039;&#039;&#039;at&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Damit kennen Sie die grundlegendsten Mechanismen von fhem. Details zu diesen Befehlen finden Sie in der fhem Befehlsreferenz [http://fhem.de/commandref.html commandref]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tipp:&#039;&#039;&#039; Zu vielen fhem-Befehlen und Gerätetypen gibt es auch eine deutschsprachige Beschreibung. Klicken Sie dazu in der commandref oben links auf den Link &amp;quot;DE&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
In der commandref finden Sie neben der Beschreibung aller fhem-Befehle auch die Liste aller Gerätetypen, die in fhem eingebunden werden können.&lt;br /&gt;
&lt;br /&gt;
Sie werden feststellen, dass &amp;quot;echte&amp;quot; fhem-Devices grundsätzlich genau so aussehen, wie die dummy-Devices, die Sie hier bereits kennengelernt haben. Der wesentliche Unterschied ist, dass Sie die verfügbaren Befehle nicht mehr selbst mittels &#039;&#039;attr webCmd&#039;&#039; festlegen müssen, da diese bereits durch das fhem-Device vorgegeben sind. Und Events werden nicht nur ausgelöst, wenn Sie im fhem-Webfrontend klicken, sondern auch, wenn das physische Gerät (also der Bewegungssensor oder der Lichtschalter an der Wand) auslöst.&lt;br /&gt;
&lt;br /&gt;
Sobald Sie ihre ersten Geräte an fhem gekoppelt haben, schauen Sie sich den Event-Monitor an, um zu sehen, wann welche Events ausgelöst werden.&lt;br /&gt;
&lt;br /&gt;
Einen umfangreicheren Einstieg in fhem finden Sie im Dokument [http://fhem.de/Heimautomatisierung-mit-fhem.pdf Heimautomatisierung-mit-fhem]&lt;br /&gt;
&lt;br /&gt;
Viel Spaß und Erfolg mit fhem !&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;/div&gt;</summary>
		<author><name>Stephan1965</name></author>
	</entry>
</feed>