ROLLO

Aus FHEMWiki


ROLLO
Zweck / Funktion
Rollo-Steuerung zur einfachen Anzeige/Programmierung
Allgemein
Typ Inoffiziell
Details
Dokumentation Thema
Support (Forum) Codeschnipsel
Modulname 44_ROLLO.pm
Ersteller ThomasRamm
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref!

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. Über welche Hardware/Module die Ausgänge angesprochen werden ist dabei egal.

Das Modul unterstützt verschiedenste Konfigurationen welche Befehle ausgeführt werden müssen um die Hardware des Rollos zu steuern. Weitere Konfigurationen können im Forum angefragt werden.

Besonderheiten:

  • Wird in einer Konfiguration ein Kanal für die Richtung, der zweite für das Aktivieren des Rollos genutzt (z.B. Typ1), wird immer vor einem Rollo-Start die Richtung gesetzt. Bei einem Richtungswechsel während der Fahrt wird der Rollo für 1 sekunde gestoppt und dann in der Gegenrichtung gestartet.
  • Fährt das Rollo zur Position offen oder geschlossen, wird der Motor noch 5 sec. länger auf on gelassen, um Positionsverschiebungen aufgrund ungenauer Parameter auszugleichen. Bei jedem vollständigen schließen/öffnen ist die Position damit wieder korrekt.
  • 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. Die Ungenauigkeiten die dadurch zwischen echter Position und gespeicherter Position entstehen, werden durch oben angeführte Korrektur ausgeglichen.
Verschiedene Ansichten des Rollo:offen, fährt gerade herunter, position 50, fährt gerade hoch, geschlossen

Vorteil dieses Moduls:

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


Voraussetzungen

Es müssen in fhem 2 Kanäle konfiguriert sein die mit on/off gesteuert werden können. Diese Kanäle können als Readings eines device oder als eigenständige definitionen in fhem existieren.

Anwendung

Define

define <name> ROLLO <device> <ausgang1> <ausgang2> <Typ>

Parameter:

Parameter Beschreibung
<name> Name des Modul
<device> Name des Hardwaremoduls dessen Readings die Kanäle sind. Sollten die Kanäle eigene definitionen in fhem sein, dann hier ein "-" eingeben.
<ausgang1> Name des Device-Reading oder des fhem Geräts von Kanal 1
<ausgang2> Name des zweiten Device-Reading bzw. fhem Geräts für Kanal 2
<typ> Art der Kanalsteuerung. Mögliche Werte sind:

Typ1,Typ2,Typ3,FS20ru. Eine Auflistung der Funktionsweise enthält der nächste Bereich.

Typen

Typ1
Kanal 1 Kanal 2 Status
On Off hoch
On On runter
Off Off stop
Typ2
Kanal 1 Kanal 2 Status
On - hoch
- On runter
Off Off stop
Typ3
Kanal 1 Kanal 2 Status
Off - hoch
On - runter
- On stop
FS20rsu
Kanal 1 Status
On hoch
Off runter
On stoppt das hochfahren
Off stoppt das herunterfahren
Typ4
Kanal 1 Kanal 2 Kanal 3 Status
on-for-timer 1 - - hoch
- on-for-timer 1 - runter
- - on-for-timer 1 stop

Attribute

Name Datentyp/
Wertebereich
Default-Wert Beschreibung
drive-down-time-to-100 Ganzzahl 20 Zeit in Sekunden die das Rollo vom offenen zum geschlossenen Zustand benötigt.
drive-up-time-to-100 Ganzzahl 20 Zeit in Sekunden, die das Rollo vom geschlossenen zum offenen Zustand benötigt (meist geringfügig höher als drive-down-time-to-100).
automatic-enabled on,off on Dieses Attribut wird nur für die Modulerweiterung 44_ROLLADEN_Automatic benötigt.

Hiermit kann die automatische Szenariensteuerung für den Rolladen deaktiviert werden.

automatic-delay 0,5,10,15,
20,30,45,60
0 Dieses Attribut wird nur für die Modulerweiterung ROLLADEN_Automatic benötigt.

Hiermit kann einge Zeitverzögerund für den Rolladen eingestellt werden, werden die Rolladen per Automatic heruntergefahren, so wird dieser um die angegebenen minuten später heruntergefahren.

Settings

Es gibt mehrere Settings die das Rollo in eine bestimmte Position fahren:

set <name> <geschlossen> Fährt das Rollo komplett herunter (Position 100)

set <name> <offen> Fährt das Rollo komplett nach oben (Position 0)

set <name> <schlitz> Fährt das Rollo soweit herunter das nur die Rolloschlitze offen sind (Position 90)

set <name> <position> <value> Fährt das Rollo auf eine beliebige Position zwischen 0 (offen) - 100 (geschlossen)


Weitere Fahrbefehle für das Rollo:

set <name> <stop> Stopt ein fahrendes Rollo unabhängig davon ob die vorher angegebene Zielposition erreicht wurde.

set <name> <toggle> Fährt das Rollo in die entgegengesetzte Richtung wie beim letzten mal bis zur jeweiligen Endposition. Fährt das Rollo gerade, wird es zuerst gestoppt und danach ebenfalls in die entgegengesetzte Richtung gefahren.


Sonstige Set-Befehle

set <name> extern <position:offen,geschlossen,schlitz,stop> Startet alle Berechnungen und internen Timer im Modul, aktiviert aber nicht die konfigurierte Hardware (nützlich wenn diese bereits aktiviert wurde, um den Status der Oberfläche mit dem Ist-Zustand synchron zu halten. siehe auch #Zusammenspiel mit externem Taster)

set <name> reset <position:offen,geschlossen> Setzt den internen Status des Rollo auf offen bzw. geschlossen ohne irgendwelche weiteren Aktionen durchzuführen.

Anwendungsbeispiele

Define

define meinRollo ROLLO myMcp23017 PortA0 PortA1 Typ1

Die Rollo-Kanäle sind Readings des Mcp23017-Device

define meinRollo ROLLO - Rollo_KanalA Rollo_KanalB

Die Rollo-Kanäle sind in fhem Eigenständige Devices, der Parameter <device> wurde deshalb mit einem "-" deaktiviert

Set

set RolladenWohnzimmer position 50
set RolladenWohnzimmer geschlossen
set RolladenWohnzimmer offen 

Drei Beispiele das Rollo-Modul anzuweisen verschiedene Positionen anzufahren.

set RolladenWohnzimmer extern stop

Das Rollo-Modul wird angewiesen den status auf "nicht fahren" zu setzen, die aktuelle Rollo-Position zu berechnen und als neue Position abzuspeichern. Der eigentliche Rollo-Stop-Befehl wird dabei aber nicht gesendet.

set RolladenWohnzimmer reset geschlossen

In der Oberfläche von fhem wird für das Rollo die Position "geschlossen" gespeichert, ohne Berechnungen durchzuführen oder Hardware zu steuern. Wird eevtl. benötigt wenn der Ist-Status von den Soll-Werten aus fhem abweicht.

Zusammenspiel mit externem Taster

In einem Anwendungszenario hat ein Nutzer zusätzliche Taster an seinem Rollo-Motor über die er ihn ebenfalls steuern kann. Die Taster selber senden keine Events an fhem, nur der Rollo-Motor. Hier ein Beispiel wie das ganze für Typ2-Rollos aussehen könnte und diese Taster in das ROLLO-Modul integriert werden:

define rollo_manuell_auf DOIF ([meinRollo_Kanal1] eq "on" and [meinRolloModul] ne "drive-up") (set meinRolloModul extern offen) DOELSEIF ([meinRollo_Kanal1] eq "off" and [meinRolloModul] eq "drive-up") (set meinRolloModul extern stop)
define rollo_manuell_ab  DOIF ([meinRollo_Kanal2] eq "on" and [meinRolloModul] ne "drive-down") (set meinRolloModul extern geschlossen) DOELSEIF ([meinRollo_Kanal2] eq "off" and [meinRolloModul] eq "drive-down") (set meinRolloModul extern stop)

meinRollo_Kanal1 und meinRollo_Kanal2 sind die Hardwarekanäle die in dem Rollo-Modul zum hochfahren/runterfahren benutzt werden. In diesem Beispiel ist das Rollo als Typ2 (ein Kanal hoch, zweiter Kanal runter) definiert. 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 <extern> 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 "fahre hoch". 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 <extern> 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.

Das gleiche wird dann im zweiten DOIF nochmal für das herunterfahren gemacht.

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.

Links

Thread im Forum mit der jeweils aktuellen Version des Moduls als Anhang im ersten Beitrag.