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 beliebige Konfigurationen welche Befehle ausgeführt werden müssen um die Hardware des Rollos zu steuern.
- 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.
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
Das eigentliche ansteuern des Rollo muss mit FHEM Befehlen ausführbar sein, diese Modul ist "nur" eine Oberfläche/Bedienmodul, kein Hardwaremodul.
Installation
Dieses Modul ist in der offiziellen FHEM-Auslieferung enthalten.
upD https://github.com/RettungsTim/fhem-rollo/blob/master/FHEM/44_ROLLO.pm
upD https://github.com/RettungsTim/fhem-rollo/blob/master/FHEM/44_ROLLO_Automatik.pm
und FHEM neu starten
Anwendung
Define
define <name> ROLLO
Attribute
Name | Datentyp/ Wertebereich |
Default-Wert | Beschreibung | ||||
---|---|---|---|---|---|---|---|
Set
Name | set Befehl | Beschreibung |
---|---|---|
open | set <Rollo-Device> open | Faehrt das Rollo komplett auf (pct 0) |
closed | set <Rollo-Device> closed | Faehrt das Rollo komplett zu (pct 100) |
up | set <Rollo-Device> up | Faehrt das Rollo um 10 auf (pct +10) |
down | set <Rollo-Device> down | Faehrt das Rollo um 10 zu (pct -10) |
half | set <Rollo-Device> half | Faehrt das Rollo zur haelfte runter bzw. hoch (pct 50) |
stop | set <Rollo-Device> stop | Stoppt das Rollo |
drive | set <Rollo-Device> drive up 5 | Fährt das Rollo in die angegebene Richtung für die angegebene Zeit (in Sekunden) |
blocked | set <Rollo-Device> blocked | wenn aktiviert, kann der ROLLO nur noch eingeschränkt gesteuert werden. Siehe Attribut block_mode für Details. |
unblocked | set <Rollo-Device> unblocked | Aktiviert einen geblockten ROLLO wieder für die normale Benutzung |
pct | set <Rollo-Device> pct <value> | Faehrt das Rollo auf eine beliebige pct zwischen 0 (offen) - 100 (geschlossen) |
reset | set <Rollo-Device> reset <value> | Sagt dem Modul in welcher pct sich der Rollo befindet |
extern | set <Rollo-Device> extern <value> | Der Software mitteilen dass gerade Befehl X bereits ausgeführt wurde und nun z.B,. das berechnen der aktuellen pct gestartet werden soll |
Readings
Name | Wert | Beschreibung |
---|---|---|
command | open,stop,closed | |
desired_position | 0-100 | Zielposition die angefahren werden soll (nur sinnvoll während das Rollo fährt) |
drive-type | modul,extern | bei dem Befehl "set rollo extern .." wird dieses attribut auf "extern" gestellt, sonst immer "modul" |
last_drive | drive-up,drive-down | die zuletzt benutzte Fahrtrichtung |
pct | 0-100 | exakte Position des Rollo |
state | open,closed,position-[0-100] | die Position gerundet auf ganze 10% Schritte, identisch mit dem Internal STATE |
Anwendungsbeispiele
Set
set RolladenWohnzimmer pct 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 closed
In der Oberfläche von fhem wird für das Rollo die Position "geschlossen" gespeichert, ohne Berechnungen durchzuführen oder Hardware zu steuern. Wird evtl. 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 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 open) 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 closed) 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. 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
Thread im Forum mit der jeweils aktuellen Version des Moduls als Anhang im ersten Beitrag.