ROLLO
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 um den Motor zu schonen.
- 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.
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. Das Status-Icon ist anklickbar. 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
Attribute
Name | Datentyp/ Wertebereich |
Default-Wert | Beschreibung |
---|---|---|---|
kanal1 | Text | Name des fhem Geräts von Steuerungskanal1 | |
kanal2 | Text (optional) | Name des zweiten fhem Geräts für Kanal 2, sofern für die eigene Konfiguration notwendig | |
kanal3 | Text (optional) | Name des dritten Kanals, sofern für die eigene Konfiguration notwendig | |
funktionsweise | Typ1,Typ2,Typ3,Typ4,Typ5,FS20ru | Typ1 | Art der Kanalsteuerung. Eine Auflistung der Funktionsweise enthält der nächste Bereich. |
device | Text | wird dieses Attribut angelegt, werden die Kanäle 1-3 als Reading dieses angegebenen devices interpretiert, nicht als eigenständige devices. | |
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. |
Zeitaddition_Endanschlag | Ganzzahl | 5 | Zeit in Sekunden, für die zeit die drauf gegeben werden soll um sicher zu sein das das Rollo wirklich am Ende ankommt falls die Zeiten zu knapp hinterlegt sind. |
Typen
folgende Hardwarekonstellationen werden z.Zt. von dem Modul unterstützt, weitere können bei Nachfrage hinzugefügt werden.
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 | - | stop hoch |
- | Off | stop runter |
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 |
Typ5 | ||
---|---|---|
Kanal 1 | Kanal 2 | Status |
on | off | hoch |
off | on | runter |
off | - | stop hoch |
- | off | stop runter |
Typ6 | ||
---|---|---|
Kanal 1 | Status | |
On | hoch | |
Off | runter | |
Stop | stoppt das Rollo |
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.
Readings
Name | Wert | Beschreibung |
---|---|---|
extern | extern,no | Dieser Wert steht per default auf "no", nur bei [code]set extern ...[/code] wird er für die dauer der Befehlsausführung auf "extern" gesetzt. |
letzte_fahrt | drive-up,drive-down | Zeigt die zuletzt gefahrene Richtung an, wird für den Befehl "toggle" benutzt. |
position | 0-100 | Die aktuelle Rollo-Position als %-Wert, 0=offen, 100=zu |
state | offen,geschlossen,schlitz,drive-up,drive-down,position-[nn] | aktueller Rollo Status. Beim fahren: drive-[richtung], im stillstand die Position als klartext (offen,geschlossen,schlitz) oder als Position (position-[nn]) |
stop | Zeitwert | interner Zeitwert wann das Rollo beim fahren seine Zielposition erreicht hat. im stillstand ohne Bedeutung |
ziel_state | offen,geschlossen,schlitz,position-[nn] | Bei fahrendem Rollo die anzufahrende Zielposition |
Anwendungsbeispiele
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.