Etwas über Rollos

Die Po­si­tion von Rol­los zu ver­fol­gen ist trick­reich weil es kei­ne Mög­lich­keit gibt, sie di­rekt ab­zu­fra­gen.
Es gibt zwei Ar­ten von Te­le­gram­men: Be­we­gen des Rol­los in ei­ne be­stimm­te Rich­tung und Be­we­gen nur für ei­ne be­stimm­te Zeit (oder schlicht an­hal­ten, ge­ra­de so, wie sie die Zeit in Ihrem Ak­tor pro­gram­miert ha­ben)

Sie kön­nen das Rol­lo z.B. öff­nen in dem Sie das move up-Kom­man­do sen­den. Nichts wird auf dem Bus an­zei­gen, wann das Rol­lo tat­säch­­lich oben ist. Wenn Sie das "move up"-Te­le­gram sen­den wird der Ak­tor sei­nen Kon­takt für ei­ne Mi­nu­te schlie­ßen, was aus­rei­chend ist um das Rol­lo si­cher hoch zu fah­ren. Wenn Sie nun kurz ir­gend­ei­nen Rich­tungs­tas­ter be­tä­ti­gen wird das Rol­lo ent­we­der stop­pen wenn es die ent­ge­gen­ge­setz­te Rich­tung ist oder es wird nach ei­ner kur­zen Zeit stop­pen wenn es die glei­che Rich­tung ist. Sie kön­nen auch die an­de­re Rich­tung drü­cken. Das Rol­lo wird an­hal­ten, kurz war­ten und dann in die an­de­re Rich­tung fah­ren.

Die ein­zi­ge Mög­lich­keit an die Po­si­tion des Rol­los zu kom­men ist zu Messen, wie lan­ge er sich be­wegt. Ich hof­fe, ich ha­be kei­ne mög­li­che Si­tu­a­tion über­se­hen. Dies ist die Stra­te­gie:

Der Akti­ons­zäh­ler zählt bei Rol­los die An­zahl der Be­we­gun­gen (im Ge­gen­satz zu an­de­ren Ty­pen, bei de­nen er die An­zahl der Zy­klen zählt, al­so An/Aus, Offen/Ge­schlos­sen etc.) Hoch- und Run­ter­fah­ren ei­nes Rol­los zäh­len folg­lich als zwei Ak­tio­nen.Zur Zeit gibt es kei­nen Ki­lo­me­ter­zäh­ler, der die to­ta­le Lauf­leis­tung Ihrer Rol­los an­gibt...

Rollos in rleibd

Da Rol­los über zwei Grup­pen ge­steu­ert wer­den (Star­ten und Stop­pen oder auch Fahren und Tip­pen) müs­sen wir uns für ei­ne Grup­pe ent­schei­den, wel­che die Po­si­ti­ons­da­ten ver­fol­gen soll. Dies ist die Grup­pe mit dem Start­kom­mando. Tragen Sie bei der Stop­grup­pe in eibdef.xml das stops-Ele­ment für die ent­spre­chen­de Grup­pe ein. Wenn Sie die Po­si­tion des Rol­los ab­fra­gen wol­len, ver­wen­den Sie nur die Start­grup­pe. Tat­säch­lich exis­tiert die Po­si­ti­ons­va­ri­ab­le auch in der Stop­grup­pe, sie lie­fert je­doch kei­ne sinn­vol­len Wer­te.

Abfragen der aktuellen Position

Der mo­men­ta­ne Stand ei­nes Rol­los kann, ähnl. dem ei­nes Fens­ters oder ei­ner Lam­pe, durch ei­nen Request der Form

/eib/stat/pos/1.2.3

ab­ge­fragt wer­den. Die Ant­wort ist der Stand in % (0=auf, 100=zu).
Hin­weis: Sie kön­nen die Po­si­tion in Echt­zeit ab­fra­gen, auch wäh­rend sich das Rol­lo be­wegt.

Setzen der Postition

Ein Rol­lo kann mit rleibd nicht nur auf- oder zu­ge­fah­ren oder in der Be­we­gung ge­stoppt wer­den (wie sie es mit dem Rol­lo­schal­ter tun wür­den), er kann auch auf ei­ne be­stimm­te Po­si­tion ge­fah­ren wer­den in­dem Sie an den Request zum Ab­fra­gen ein simp­les ?val=x an­hän­gen.x ist da­bei der ge­wünsch­te Rol­lo­stand in %. Wenn Sie Ihr Rol­lo al­so halb zu ha­ben wol­len, hän­gen Sie ein ?val=50 an. Mit ?val=85 sind die meis­ten Rolos blick­dicht ge­schlos­sen. Den ge­nau­en Wert müs­sen Sie selbst aus­pro­bie­ren:

/eib/stat/pos/1.2.3?val=85

rleibd be­rech­net da­r­auf­hin Zeit und Rich­tung die nö­tig ist, die ge­wünsch­te Po­si­tion zu er­rei­chen und führt die Be­we­gung aus. Ge­nau­er ge­sagt, rleibd star­tet die Be­we­gung und stoppt sie nach der be­rech­ne­ten Zeit, wo­bei der Stopp­befehl zur Zeit in je­dem Fall ge­ge­ben wird, auch wenn Sie zwi­schen­durch an­de­re Kom­man­dos an das Rol­lo sen­den.
rleibd wird kei­ne Be­we­gung aus­füh­ren, die we­ni­ger als ei­ne Se­kun­de dau­ert. Die Be­fehls­ket­te über EIB ist zu lang­sam um die­se ver­nünf­tig durch­zu­füh­ren.
Sie kön­nen da­mit auf ein­fachs­te Weise z.B. Ih­re Rol­los auf Son­nen­schutz fah­ren oh­ne sei­ne vor­he­ri­ge Po­si­tion be­rück­sich­ti­gen zu müs­sen.

Sehen Sie sich das Script sunjob im Sam­ple-Ver­zeich­nis an. Das be­nut­ze ich um mei­ne Rol­los bei Son­nen­auf­gang hoch und bei Son­nen­un­ter­gang wie­der run­ter zu fah­ren.