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 das Rollo z.B. öffnen in dem Sie das move up
-
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 das Rollo gerade bewegt berechnen wir seine Position und starten von hier aus eine neue Bewegung. - Wenn Sie die Position abfragen während sich das 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 das 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 das Rollo komplett hoch oder runter fahren ohne ihn zu stoppen. Sie werden jedoch eine Abweichung bekommen, wenn Sie das 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.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
-
Abfragen der aktuellen Position
Der momentane Stand eines Rollos kann, ähnl. dem eines Fensters oder einer Lampe, durch einen Request der Form
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 das 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 Ihr 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:
rleibd berechnet daraufhin 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 das 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. Ihre Rollos auf Sonnenschutz
fahren ohne seine vorherige Position berücksichtigen zu müssen.
Sehen Sie sich das Script sunjob
im Sample-