Etwas über Rollos
Die Position von Rollos zu verfolgen ist trickreich weil es keine Möglichkeit gibt, sie direkt abzufragen.Es gibt zwei Arten von Telegrammen: Bewegen des Rollos in eine bestimmte Richtung und Bewegen nur für eine bestimmte Zeit (oder schlicht anhalten, gerade so, wie sie die Zeit in Ihrem Aktor programmiert haben)
Sie können den Rollo z.B. öffnen in dem Sie das "move up"-Kommando senden. Nichts wird auf dem Bus anzeigen, wann der Rollo tatsächlich oben ist. Wenn Sie das "move up"-Telegram senden wird der Aktor seinen Kontakt für eine Minute schließen, was ausreichend ist um den Rollo sicher hoch zu fahren. Wenn Sie nun kurz irgendeinen Richtungstaster betätigen wird der Rollo entweder stoppen wenn es die entgegengesetzte Richtung ist oder er wird nach einer kurzen Zeit stoppen wenn es die gleiche Richtung ist. Sie können auch die andere Richtung drücken. Das Rollo wird anhalten, kurz warten und dann in die andere Richtung fahren.
Die einzige Möglichkeit an die Position des Rollos zu kommen ist zu Messen, wie lange er sich bewegt. Ich hoffe, ich habe keine mögliche Situation übersehen. Dies ist die Strategie:
- Wir merken uns die Zeit eines "move"-Kommandos. Falls sich der Rollo gerade bewegt berechnen wir seine Position und starten von hier aus eine neue Bewegung.
- Wenn Sie die Position abfragen während sich der Rollo bewegt berechnen wir sie und setzen die Startzeit für die Bewegung auf die aktuelle Zeit. Auf diese Weise können Sie "life" die Bewegung der Rollos verfolgen.
- Vorläufig ignorieren wir die Zeit, die sich der Rollo beim Empfang eines "stop"-Kommandos bewegt. Ich empfehle, diese Zeit in Ihrem Aktor auf 0 zu programmieren.
- selbst wenn die Stopzeit nicht 0 ist wird sich die Position synchronisieren wenn Sie den Rollo komplett hoch oder runter fahren ohne ihn zu stoppen. Sie werden jedoch eine Abweichung bekommen, wenn Sie den Rollo wiederholt hoch und runter fahren und ihn jedesmal stoppen bevor er einen Endpunkt erreicht. Ich denke, es könnte besser gelöst werden als es im Moment ist aber die Abweichung kann nicht vollständig vermieden werden. (Sicherlich werden die Leute in 50 Jahren über solche Probleme nur lachen können).
![]() |
Der Aktionszähler zählt bei Rollos die Anzahl der
Bewegungen
(im Gegensatz zu anderen Typen, bei denen er die Anzahl der Zyklen
zählt, also An/Aus, Offen/Geschlossen etc.) Hoch- und Runterfahren eines Rollos zählen folglich als zwei Aktionen. |
Rollos in rleibd
Da Rollos über zwei Gruppen gesteuert werden (Starten und Stoppen oder auch Fahren und Tippen) müssen wir uns für eine Gruppe entscheiden, welche die Positionsdaten verfolgen soll. Dies ist die Gruppe mit dem Startkommando. Tragen Sie bei der Stopgruppe in eibdef.xml das "stops"-Element für die entsprechende Gruppe ein. Wenn Sie die Position des Rollos abfragen wollen, verwenden Sie nur die Startgruppe. Tatsächlich existiert die Positionsvariable auch in der Stopgruppe, sie liefert jedoch keine sinnvollen Werte.Abfragen der aktuellen Position
Der momentane Stand eines Rollos kann, ähnl. dem eines Fensters oder einer Lampe, durch einen Request der Form/eib/stat/pos/1.2.3
abgefragt werden. Die Antwort ist der Stand in % (0=auf, 100=zu).
Hinweis: Sie können die Position in Echtzeit abfragen, auch während sich der Rollo bewegt.
Setzen der Postition
Ein Rollo kann mit rleibd nicht nur auf- oder zugefahren oder in der Bewegung gestoppt werden (wie sie es mit dem Rolloschalter tun würden), er kann auch auf eine bestimmte Position gefahren werden indem Sie an den Request zum Abfragen ein simples ?val=x anhängen."x" ist dabei der gewünschte Rollostand in %. Wenn Sie Ihren Rollo also halb zu haben wollen, hängen Sie ein "?val=50" an. Mit "?val=85" sind die meisten Rolos blickdicht geschlossen. Den genauen Wert müssen Sie selbst ausprobieren:/eib/stat/pos/1.2.3?val=85
rleibd berechnet darauhin Zeit und Richtung die nötig ist, die gewünschte Position zu erreichen und führt die Bewegung aus. Genauer gesagt, rleibd startet die Bewegung und stoppt sie nach der berechneten Zeit, wobei der Stoppbefehl zur Zeit in jedem Fall gegeben wird, auch wenn Sie zwischendurch andere Kommandos an den Rollo senden.
rleibd wird keine Bewegung ausführen, die weniger als eine Sekunde dauert. Die Befehlskette über EIB ist zu langsam um diese vernünftig durchzuführen.
Sie können damit auf einfachste Weise z.B. Ihren Rollo auf Sonnenschutz fahren ohne seine vorherige Position berücksichtigen zu müssen.

