Seite 1 von 1

Modul "Rampenfunktion" alias Softdimmer

Verfasst: Fr Feb 28, 2020 7:46 pm
von S. Kolbinger
Es gibt ein neues Modul für die Logic-Engine: Die "Ramp"-enfunktion, mit dem lässt sich ein Wert einem neuen Zielwert langsam und schrittweise annähern.

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"]
      ]
}
Bild

Hier der zeitliche Ablauf (Eingangssequenz: 0 -> 42 -> -17 -> 10):
Bild

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 :handgestures-thumbupright:

Re: Modul "Rampenfunktion" alias Softdimmer

Verfasst: Fr Feb 28, 2020 10:59 pm
von Didda93
Guten Abend,
Lässt sich das mit der DMX Customlogik kombinieren?
Dann könnte ich mal schön sauber dimmen :)

Lg
Philipp

Re: Modul "Rampenfunktion" alias Softdimmer

Verfasst: Sa Feb 29, 2020 7:56 am
von Sun1453
Hallo Stefan K.
Ja das wäre eine feine Sache wenn man das mit dem DMX verbinden könnte. Bisher ist ja nur eine Logik zum ansteuern möglich. Später wird man bestimmt auch die Lightning Engine daran hängen können oder diese hat die Logik gleich eingebaut.

Kannst du uns bitte weitere Informationen dazu geben? Danke

Re: Modul "Rampenfunktion" alias Softdimmer

Verfasst: Sa Feb 29, 2020 8:05 am
von S. Kolbinger
Klar geht das.
Bin aber heute den ganzen Tag unterwegs.
Noch ein wenig Geduld, das Modul ist ja bisher auch erst in der DEV-Version verfügbar.

Re: Modul "Rampenfunktion" alias Softdimmer

Verfasst: Sa Feb 29, 2020 12:14 pm
von StefanW
Hallo Michael,
Sun1453 hat geschrieben: Sa Feb 29, 2020 7:56 amJa das wäre eine feine Sache wenn man das mit dem DMX verbinden könnte.
Wir arbeiten daran, das Modul ist aus der Realisierung der Aufgabenstellung heraus entstanden. Leztlich entsteht ein komplexeres Dimmermodul. Die Ausgangswerte können (mit Einschränkung der Telegrammrate) kann auch für alle anderen Technologien verwendet werden, also neben DMX auch KNX-Dimmer, DALI (derzeit vie Gateway) und später auch MQTT / HUE usw. Wird toll werden.

Sun1453 hat geschrieben: Sa Feb 29, 2020 7:56 amSpäter wird man bestimmt auch die Lightning Engine daran hängen können oder diese hat die Logik gleich eingebaut.
Jep, letzteres.


lg

Stefan

Re: Modul "Rampenfunktion" alias Softdimmer

Verfasst: Sa Feb 29, 2020 5:44 pm
von Sun1453
@StefanW Super das ist echt genial!

Re: Modul "Rampenfunktion" alias Softdimmer

Verfasst: Sa Feb 29, 2020 6:35 pm
von gbglace
StefanW hat geschrieben: Sa Feb 29, 2020 12:14 pm Wird toll werden.
Das glaube ich,

sind ja schon viele kleine Bausteine entstanden die für die Hintergrundaktivitäten der TIE gute Dienste leisten werden.

Ich beobachte das ja sehr genau.

Re: Modul "Rampenfunktion" alias Softdimmer

Verfasst: Mo Mär 23, 2020 7:37 am
von S. Kolbinger
Hallo Michael,
Sun1453 hat geschrieben: Sa Feb 29, 2020 7:56 am Hallo Stefan K.
Ja das wäre eine feine Sache wenn man das mit dem DMX verbinden könnte. Bisher ist ja nur eine Logik zum ansteuern möglich. Später wird man bestimmt auch die Lightning Engine daran hängen können oder diese hat die Logik gleich eingebaut.

Kannst du uns bitte weitere Informationen dazu geben? Danke
hier schon mal ein Beispiel, wie du das Soft-Dimming mit der V1.6.0 jetzt schon funktioniert.

Code: Alles auswählen

{
  "Level": [
    ["$Ziel","float",0],
    ["$Schritt","float",5.0],
    ["$ZwischenWert","float",0],
    ["$Value","float",0],
    ["$Period","float",0.5],
    ["$VAR<Inhibit?>","bool",false]
  ],
  "Module": [
    ["Break",["$VAR<Inhibit?>"]],
    ["Ramp","$Ziel","$ZwischenWert",0,"$Schritt","$Period"],
    ["Interpolation","$ZwischenWert","$Value",[[0,0],[25,25],[50,68],[75,139],[100,255]]],
    ["DMX_Test",["$Value","$Value","$Value"], "$Period", 0]
  ],
  "Input": [
    ["Hell","Helligkeit [0 .. 100]","$Ziel","c"],
    ["Inhibit","INHIBIT","$VAR<Inhibit?>","u"]
  ],
  "Output": [
    ["Aktuell","Aktueller Helligkeits-Wert","$Value","c"]
  ]
}
Dieses Beispiel steurert drei Kanäle (1,2 und 3) mit den gleichen Werten an. Bei mir handelt es sich um die RGB-Kanäle einer Lampe.
Mit den Werten bei Interpolation kannst du die Kurve deinem Helligkeitsempfinden anpassen.
SoftDimming.png
Viel Spaß beim ausprobieren.