KNX Data Secure Unterstützung
für KNX Logger und KNX Busmonitor

KNX Diagnose Monitor, Import des ETS Projektes deutlich beschleunigt, Suche in der Navigation
Mehr Informationen dazu hier im Forum

Insider Version 6 zur 4.5 jetzt für alle Mitglieder des Insider Clubs installierbar
Alle Infos zum Update im Timberwolf Wiki

[Frage] Zu einer bestimmtem Uhrzeit langsam hoch dimmen

Informationen und Diskussionen über Logik-Engine und Logik-Editor
Forumsregeln
  • Denke bitte an aussagekräftige Titel und gebe dort auch die [Firmware] an. Wenn ETS oder CometVisu beteiligt sind, dann auch deren Version
  • Bitte mache vollständige Angaben zu Deinem Server, dessen ID und dem Online-Status in Deiner Signatur. Hilfreich ist oft auch die Beschreibung der angeschlossener Hardware sowie die verwendeten Protokolle
  • Beschreibe Dein Projekt und Dein Problem bitte vollständig. Achte bitte darauf, dass auf Screenshots die Statusleiste sichtbar ist
  • Bitte sei stets freundlich und wohlwollend, bleibe beim Thema und unterschreibe mit deinem Vornamen. Bitte lese alle Regeln, die Du hier findest: https://wiki.timberwolf.io/Forenregeln

Robert_Mini
Reactions:
Beiträge: 3903
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 1264 Mal
Danksagung erhalten: 2213 Mal

#21

Beitrag von Robert_Mini »

Wie gesagt:
An den Trigger kommt man nicht ran. Es stößt nur die Ausführung der Zelle zum def. Zeitpunkt an.

Was aber geplant ist: ein ähnliches Menü zur Eingabe eines Zeitpunktes, das als normaler Eingang definiert wird und einen Cron-String übergibt, den man dann im Cron-Timer verwenden kann.

Lg
Robert
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297

S. Kolbinger
Elaborated Networks
Elaborated Networks
Reactions:
Beiträge: 588
Registriert: Mi Aug 15, 2018 11:34 am
Hat sich bedankt: 82 Mal
Danksagung erhalten: 560 Mal

#22

Beitrag von S. Kolbinger »

Hallo Bodo,

ich habe mal so eine Custom-Logik zusammen gebaut:

Code: Alles auswählen

{
    "Level": [
        ["$ValStart","float",0.0],
        ["$ValEnd","float",100.0],
        ["$ValStep","float",5.0],
        ["$ValCurrent","float",0.0],
        ["$ValNext","float",0.0],
        ["$Active","bool",false],
        ["$Run","bool",false],
        ["$TimeStep","float",1.5],
        ["$Period","float",0.0],
        ["$KonstEins","float",1.0]
    ],
    "Module": [
        ["Multiplexer",["$Active"],"$Run",0],
        ["Multiplexer",["$ValNext"],"$ValCurrent",0],
        ["Polynomial","$KonstEins","$ValNext",["$ValStep","$ValCurrent"]],
        ["Comparator","$ValNext","-$Run","$ValEnd"],        // Run sollange nächster Wert nicht größer als Endwert
        ["Latch","$ValStart","$ValNext","-$Active",0],      // Falls deaktiviert => Rücksetzen auf Startwert
        ["Latch","$ValStart","$ValNext","$Run",2],          // Rücksetzen auf Startwert, bei fallender Flanke von $Run
        ["Multiplexer",[0,"$TimeStep"],"$Period","$Run"],   // $Period == 0, stoppt den Timer
        ["Clocksignal","$Active",0,"$Period"]               // Timer für nächsten Schritt       
    ],
    "Input": [
        ["Aktiv","Aktiviere/Deaktivier Dimmer","$Active","u"],
        ["Start","Start-Wert","$ValStart","u"],
        ["Ende","End-Wert","$ValEnd","u"],
        ["Step","Schrittweite","$ValStep","u"],
        ["Intervall","Zeit [s] zwischen zwei Werten","$TimeStep","u"]
    ],
    "Output": [
        ["Dimmwert","Aktueller Dimmwert","$ValCurrent","c"]
    ]
}
Nachdem man die konstanten Eingänge zu Parametern gemacht und den Cron-Trigger hinzugefügt hat, sollte das ganze etwa so aussehen.
Bild

Die Parameter sind: Start- und Endwert des Dimmvorgangs, die Schrittweite und die Schrittdauer (in Sekunden).
Der Eingang "Aktiv" muss true sein, wenn der Cron-Timer feuert, damit der Dimmvorgang gestartet wird.
Wird der "Aktiv"-Eingang während des Dimmvorgangs false, wird der Dimmvorgang abgebrochen und der Ausgang bleibt auf dem letzten Wert stehen.
Gruß,
Stefan K.

StefanW
Elaborated Networks
Elaborated Networks
Reactions:
Beiträge: 10714
Registriert: So Aug 12, 2018 9:27 am
Wohnort: Frauenneuharting
Hat sich bedankt: 5305 Mal
Danksagung erhalten: 8685 Mal
Kontaktdaten:

#23

Beitrag von StefanW »

Hallo Bodo,
bodo hat geschrieben: Di Dez 10, 2019 7:49 pmIch habe im sogenannten LE-Code die Variable $CRONTRIGGER_2_5 gefunden, komme aber nicht an sie ran.Wenn ich sie als Ausgang definiere geht das nicht, weil sie nicht definiert ist.
bitte nicht in Form von "Variablen" denken sondern wir bei einem Schaltplan von Leitungen - wir nennen das Signale.

Der LE-Code ist kein prozeduraler Code mit Definitionen, Variablen, Zuweisungen, Funktionen, sondern es ist eine Schaltplanbeschreibung.

Stelle Dir - wie beim Elektronikbaukasten unserer Jugend - das als einzelne Module vor, die man auf dem Feld anordnet und dann mit Drähten ("Signale") verbindet.

Was Stefan Dir sagen will, Du nimmst also einen Cron-Baustein und verbindest diesen mit einem Berechnungsbaustein (und noch Speichern usw). Der Cron-Baustein berechnet den nächsten Trigger-Zeitpunkt und der Berechnungsbaustein addiert dann was dazu und das verbindet man dann mit einem Trigger-Eingang eines anderen Bausteins.

Ich hoffe das Dir das Bild der Bausteine die man verbindet besser hilft beim Verständnis. Wenn man das mal verstanden hat, wird man sehr schnell mit der Logik und sehr sauber.

lg

Stefan
Zuletzt geändert von StefanW am Mi Dez 11, 2019 9:27 pm, insgesamt 1-mal geändert.
Stefan Werner
Product Owner für Timberwolf Server, 1-Wire und BlitzART
Bitte WIKI lesen. Allg. Support nur im Forum. Bitte keine PN
Zu Preisen, Lizenzen, Garantie, HW-Defekt an service at elabnet dot de

Link zu Impressum und Datenschutzerklärung oben.
Benutzeravatar

Ersteller
bodo
Reactions:
Beiträge: 283
Registriert: So Aug 12, 2018 7:01 am
Hat sich bedankt: 271 Mal
Danksagung erhalten: 106 Mal

#24

Beitrag von bodo »

S. Kolbinger hat geschrieben: Mi Dez 11, 2019 8:55 pm ich habe mal so eine Custom-Logik zusammen gebaut:
Hoi Stefan

Vielen Dank, es funktioniert. :clap:
Da muss ich in der Denke wohl etwas umstellen. :shock:
Zuletzt geändert von bodo am Mi Dez 11, 2019 11:19 pm, insgesamt 1-mal geändert.
Grüsse Bodo

TWS 2400 ID:64, VPN offen, Reboot möglich * Wiregate * zahlreiche 1-Wire Sensoren * einige BlitzART
Benutzeravatar

Ersteller
bodo
Reactions:
Beiträge: 283
Registriert: So Aug 12, 2018 7:01 am
Hat sich bedankt: 271 Mal
Danksagung erhalten: 106 Mal

#25

Beitrag von bodo »

StefanW hat geschrieben: Mi Dez 11, 2019 9:26 pm bitte nicht in Form von "Variablen" denken sondern wir bei einem Schaltplan von Leitungen - wir nennen das Signale.
Hoi Stefan

Die Module:

Code: Alles auswählen

["Multiplexer",[0,"$TimeStep"],"$Period","$Run"],   // $Period == 0, stoppt den Timer
["Clocksignal","$Active",0,"$Period"]               // Timer für nächsten Schritt
machen Sachen, die ich noch nicht ganz kapiert hab'. Das wird schon, vielleicht. :shifty:
Grüsse Bodo

TWS 2400 ID:64, VPN offen, Reboot möglich * Wiregate * zahlreiche 1-Wire Sensoren * einige BlitzART

Matze76
Reactions:
Beiträge: 315
Registriert: Mo Sep 24, 2018 9:59 am
Hat sich bedankt: 287 Mal
Danksagung erhalten: 195 Mal

#26

Beitrag von Matze76 »

Hallo @bodo,

Code: Alles auswählen

["Clocksignal","$Active",0,"$Period"]               // Timer für nächsten Schritt
Das Clocksignal ist ein zyklischer Trigger, der die Logik - nachdem sie initial getriggert wurde - intern immer wieder neu triggert. Vorausgesetzt sie ist aktiv ($Active = true). Die Variable $Period bestimmt dabei die Zeit, nach der immer wieder neu getriggert und hier damit der Dimmwert stufenweise hochgesetzt wird.

Code: Alles auswählen

["Multiplexer",[0,"$TimeStep"],"$Period","$Run"],   // $Period == 0, stoppt den Timer
Hier wird der Wert der Variable $Period für das Clocksignal bestimmt.
Wenn die Dimmsequenz läuft ($Run = true = 1) wird $Period mit dem Input-Parameter "Intervall" (Variable $TimeStep) versorgt.

Ist die Sequenz abgelaufen ($Run = false = 0) wird $Period = 0. Damit wird das Clocksignal gestoppt.
Gruß
Matthias

TWS 2500 ID:110 + PBM, VPN offen, Reboot nach Rücksprache

Matze76
Reactions:
Beiträge: 315
Registriert: Mo Sep 24, 2018 9:59 am
Hat sich bedankt: 287 Mal
Danksagung erhalten: 195 Mal

#27

Beitrag von Matze76 »

... mit ein paar kleinen Anpassungen kann man auch langsam herunter dimmen (z. B. für eine Sonnenuntergangssimulation im Aquarium).

Die "Konstante Eins" wird zu -1, und die Variablen im Polynomial- sowie Comparator-Modul umgedreht.

Code: Alles auswählen

{
    "Level": [
        ["$ValStart","float",100.0],
        ["$ValEnd","float",0.0],
        ["$ValStep","float",5.0],
        ["$ValCurrent","float",100.0],
        ["$ValNext","float",100.0],
        ["$Active","bool",false],
        ["$Run","bool",false],
        ["$TimeStep","float",1.5],
        ["$Period","float",0.0],
        ["$KonstEins","float",-1.0]
    ],
    "Module": [
        ["Multiplexer",["$Active"],"$Run",0],
        ["Multiplexer",["$ValNext"],"$ValCurrent",0],       
        ["Polynomial","$KonstEins","$ValNext",["$ValCurrent","$ValStep"]], // $ValNext = $ValCurrent + ($ValStep * -1)
        ["Comparator","$ValEnd","-$Run","$ValNext"],        // Run solange nächster Wert nicht kleiner als Endwert
        
        ["Latch","$ValStart","$ValNext","-$Active",0],      // Falls deaktiviert => Rücksetzen auf Startwert (100). 
        ["Latch","$ValStart","$ValNext","$Run",2],          // Rücksetzen auf Startwert, bei fallender Flanke von $Run (100)
              
        ["Multiplexer",[0,"$TimeStep"],"$Period","$Run"],   // $Period == 0, stoppt den Timer
        ["Clocksignal","$Active",0,"$Period"]               // Timer für nächsten Schritt       
    ],
    "Input": [
        ["Aktiv","Aktiviere/Deaktivier Dimmer","$Active","u"],
        ["Start","Start-Wert","$ValStart","u"],
        ["Ende","End-Wert","$ValEnd","u"],
        ["Step","Schrittweite","$ValStep","u"],
        ["Intervall","Zeit [s] zwischen zwei Werten","$TimeStep","u"]
    ],
    "Output": [
        ["Dimmwert","Aktueller Dimmwert","$ValCurrent","c"]
    ]
}
Gruß
Matthias

TWS 2500 ID:110 + PBM, VPN offen, Reboot nach Rücksprache

StefanW
Elaborated Networks
Elaborated Networks
Reactions:
Beiträge: 10714
Registriert: So Aug 12, 2018 9:27 am
Wohnort: Frauenneuharting
Hat sich bedankt: 5305 Mal
Danksagung erhalten: 8685 Mal
Kontaktdaten:

#28

Beitrag von StefanW »

Bitte

die fertigen Custom-Logiken mit entsprechenden Beschreibungen als eigene Threads unter "zusätzliche" Logikbausteine posten.

Weil sonst geht das unter und das wäre total schade. Insbesondere würden wir, wenn ausreichend "abgehangen" und bewertet und von uns geprüft diese nützlichen Bausteine auch in das Standard-Sortiment mit aufnehmen.

lg

Stefan
Stefan Werner
Product Owner für Timberwolf Server, 1-Wire und BlitzART
Bitte WIKI lesen. Allg. Support nur im Forum. Bitte keine PN
Zu Preisen, Lizenzen, Garantie, HW-Defekt an service at elabnet dot de

Link zu Impressum und Datenschutzerklärung oben.

Matze76
Reactions:
Beiträge: 315
Registriert: Mo Sep 24, 2018 9:59 am
Hat sich bedankt: 287 Mal
Danksagung erhalten: 195 Mal

#29

Beitrag von Matze76 »

Gerne, ich poste dann das Original weiter oben zum Hochdimmen (von Stefan Kolbinger) und meine Modifikation dort nochmal mit Verweis auf diesen Beitrag. Habe sowieso noch eine weitere Ergänzung in Arbeit.
Gruß
Matthias

TWS 2500 ID:110 + PBM, VPN offen, Reboot nach Rücksprache
Antworten

Zurück zu „Logikengine & Logik-Editor“