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:
Hinweis 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.
Zur Zeit gibt es keinen "Kilometerzähler", der die totale Laufleistung Ihrer Rollos angibt...

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.