im Moment versuche ich mich daran, die Raffstoren-Bedienung in der Visu abzubilden. Mein aktueller Versuch sieht so aus, dass ich jeweils zwei Pegelsteller verwende, um Behanghöhe und Lamellenwinkel vorgeben zu können. Das Problem dabei ist nun, dass bei einer Änderung der Behanghöhe im Anschluss daran der Behangwinkel wiederhergestellt werden muss, da der Behangwinkel ansonsten beim Verfahren nach unten ganz geschlossen bzw. beim Verfahren nach oben ganz geöffnet ist.
Dazu habe ich mir die Logik "Behangpositionierung" geschrieben, welche als Input Behanghöhe und Lamellenwinkel erwartet. Der Baustein macht nun nichts anderes als die Inputwerte auf die Outputs zu schreiben, wobei der Lamellenwinkel auf "always" steht. Die Verkettung im TW sieht damit sowohl für Höhe als auch für Winkel wie folgt aus:
KNX-Statusobjekt -> Pegelsteller auf der Visu -> Logik "Behangpositionierung" -> KNX-Positionsobjekt
Das funktioniert wunderbar und wenn nun doch irgendwie manuell am Behang "gedreht" wird, fährt dieser im Anschluss daran den vorherigen Lamellenwinkel wieder an.
Hier der Code der Logik:
Code: Alles auswählen
/**
This logic is intented to set shutter angle after modification of shutter height.
This is required if the used actor modifies shutter height without restoring
shutter angle afterwards. To do so, this logic always write shutter angle to the
output, even if only height was changed.
**/
{
"Level": [
["$Input_Height", "float", 0.0],
["$Input_Angle", "float", 0.0],
["$Output_Height", "float", 0.0],
["$Output_Angle", "float", 0.0],
["$Const_Timeout", "int", 1],
["$Select", "int", 1]
],
"Input": [
["Behanghöhe Tür/Fenster (%)", "Höhe des Behangs", "$Input_Height", "c"],
["Lamellenwinkel Tür/Fenster (%)", "Winkel der Lamellen", "$Input_Angle", "a"]
],
"Module": [
["Monoflop","$Input_Height","$Input_Height","$Select","$Const_Timeout", 6],
["Multiplexer",["$Input_Height"],"$Output_Height","$Select"],
["Multiplexer",["$Input_Angle"],"$Output_Angle","$Select"]
],
"Output": [
["Behanghöhe Tür/Fenster (%)", "Anzufahrende Behanghöhe der Tür bzw. des Fensters", "$Output_Height", "c"],
["Lamellenwinkel Tür/Fenster (%)", "Anzufahrender Lamellenwinkel der Tür bzw. des Fensters", "$Output_Angle", "a"]
]
}
/**Der Schöpfer dieser Custom Logik überträgt die Nutzungsrechte gemäß der TOLL ("Timberwolf Open Logikblock License") die unter https://wrgt.news/TOLL zum Download zur Verfügung steht.*/

PS:
1. Dieses Problem ist Aktor-abhängig, es mag Aktoren geben, welche den Behangwinkel nach einer Höhenänderung von sich aus wiederherstellen.
2. Ich hoffe, dass das mit dem kommenden Beschattungswidget auf der Visu komplett überflüssig ist!