Die Syntax für die Rampenfunktion sieht folgendermassen aus:
["Ramp","$In","$Out","$Active","$Step","$Period"]
"Ramp" : Modulkennung "$In": Referenz auf einen float Level der den angestrebten Ziel-Wert enthält "$Out": Referenz auf einen float Level der den aktuellen Ist-Wert enthält "$Active": Referenz auf einen boolschen Level der anzeigt, wenn die Annäherung aktiv ist (Ziel- und Ist-Wert unterschiedlich) "$Step": Referenz auf einen float Level der die Schrittweite der Annäherung enthält "$Period": Referenz auf einen float Level der den Takt der Annäherung enthält
Wie funktioniert das ganze?
Wenn der Ist-Wert unterschiedlich zum Ziel-Wert ist, wird ein Timer (mit $Period) gestartet.
Jedesmal wenn der Timer abläuft nähert sich der Ist-Wert dem Ziel-Wert an.
Wenn Ist- und Ziel-Wert gleich sind wird der Timer wieder gestoppt.
Bsp:
Code: Alles auswählen
{
"Level": [
["$In","float",0.0],
["$Out","float",0.0],
["$Active","bool",false],
["$Step","float",2.0],
["$Period","float",1.0],
["$VAR<Inhibit?>", "bool", false]
],
"Module": [
["Break", ["$VAR<Inhibit?>"] ],
["Ramp","$In","$Out","$Active","$Step","$Period"]
],
"Input": [
["Ziel","Ziel-Wert","$In","c"],
["Schritt","Schrittweite für Annäherung","$Step","c"],
["Intervall","Zeitintervall für Annäherung [s]","$Period","c"],
["Inhibit", "INHIBIT", "$VAR<Inhibit?>", "u" ]
],
"Output": [
["Akt. Wert","Aktueller Wert","$Out","c"],
["Aktive","Status: Ziel-Wert noch nicht erreicht","$Active","c"]
]
}
Hier der zeitliche Ablauf (Eingangssequenz: 0 -> 42 -> -17 -> 10):
Mit diesem Modul lässt sich sehr einfach eine langsame Dimmung umsetzen (Lichtwecker)
Das Modul ist bereits in der aktuellen DEV-Version verfügbar. Viel Spaß beim ausprobieren