Wenn die Rollos keine Ansteuerung über Prozentwerte erlauben (also Zahl 0 bis 100), musst Du Dir mit einem Timer behelfen. Die pragmatische Variante:
Code: Alles auswählen
var Timer tRollo = null
rule "rollo auf 80 Prozent"
when
Item rollo80prozent received command ON
then
rollo.sendCommand(DOWN)
tRollo = createTimer(now.plusSeconds(15),[|
rollo.sendCommand(STOP)
])
end
Diese Rule ist aber unflexibel und nicht eben sicher. Z.B. geht sie einfach davon aus, dass das Rollo komplett geöffnet ist. Auch kann die Rule nur eine einzige Position anfahren. Und die Rule kann auch nur ein Rollo steuern. Schicker wäre eine Variante, die sich um alle Rollos kümmert und auch gleich noch die Wenns und Abers berücksichtigt.
Dazu brauchst Du:
1. Ein Gruppenitem
2. Für jedes Rollo ein Rollershutter Item, welches Mitglied der Gruppe aus 1. ist. Dabei spielen die Namen eine untergeordnete Rolle, es bietet sich aber an, ein vernünftiges Namensschema zu verwenden.
3. Laufzeiten für jedes Rollo, von oben nach unten und von unten nach oben, in 1/10 Sekunden. Ganze Sekunden sind leider zu ungenau!
Die Rollos dürfen nicht auf ein Kommando .sendCommand(Zahl) reagierenweil Du das über die UI erzeugst. Sollte es hier doch zu einer Fahrt kommen, brauchst Du zusätzliche Items (pro Rollo ein Rollershutter Item und eine weitere Gruppe - und nun wäre es wichtig, dass die Items jeweils an der gleichen Stelle identische Namen aufweisen, so das man aus dem NAmen des einen Items auf das andere Item rückschließen kann)
4. eine Rule, die sich um die Steuerung kümmert. Die ist dann allerdings etwas aufwändiger, als die oben gezeigte.