tinom86 hat geschrieben: ↑Sa Mai 30, 2020 1:43 pm
#1: Logik mit Time-Trigger -> Einschalten um 17:00 Uhr -> sendet um 17 Uhr ein True an #3
#2: Logik mit Time-Trigger -> Ausschalten um 0:00 Uhr -> sendet Ausschaltsignal direkt an die Lampe
#3: Logik mit 2 Eingängen -> Eingang 1: Helligkeitssensor < 100 | Eingang 2: Output von Logik #1 -> sendet Einschaltsignal direkt an die Lampe wenn beide Eingänge den Wert True annehmen (Wie bekomme ich Logik #1 dazu, dass sie um 0:00 Uhr auf False umschaltet?)
Habt ihr noch Tipps für mich? Ginge das so? Kann ich es auch in einem einzigen Baustein abbilden?
Hallo Tino
Für das Verständnis der Logikfunktion des TWS ist es wichtig, dass man zur Kenntnis nimmt, dass eine Logik nur rechnet, wenn sie ausgelöst wird. Dazu braucht es einen Trigger. Der Trigger kann bspw. ein Signal am Eingang einer Logik sein (d.h. der Eingang ist gleichzeitig der Trigger), oder ein zeitlich gesteuerter Auslöser (den Du über einen Trigger-Eingang definieren kannst).
An Deinem Konzept - das Du Dir schon gut zurecht gelegt hast - sehe ich folgendes Problem: Die zeitliche Bedingung am Einschaltteil wird nur einmal, nämlich um 17:00 Uhr getriggert. Wenn in diesem Zeitpunkt der Helligkeitswert nicht unterschritten ist, wird nichts passieren und zwar die ganze Nacht nicht mehr, weil die Logik nicht mehr ausgeführt wird.
Ich schlage Dir vor folgendes Konzept auszuprobieren, wobei ich mir - aus didaktischen Gründen - erlaube, die einzelnen Schritte zu erläutern:
1.) Um die Sache einfach zu halten, empfehle ich Dir,
mit zwei Logiken zu arbeiten: eine, die die Beleuchtung einschaltet und eine, die sie ausschaltet. Natürlich wäre es auch möglich, alles in eine einzige Custom-Logik zu verpacken; dieses Vorgehen wäre jedoch - zumindest, wenn man am Anfang der Lernkurve in der Logikfunktion des TWS steht - etwas komplexer.
2) Die
Ausschaltlogik ist einfach umzusetzen, ich würde mit folgendem Ansatz arbeiten: Nimm ein AND-Logik-Modul mit einem Ausgang, der mit dem KNX-Schaltobjekt verbunden wird und mit zwei Eingängen, beide aber ohne Verbindung zu einem Objekt.
Der erste Eingang ist ein Input-Eingang, dem Du als Parameter den Wert "FALSE" gibst.. Damit sendet die Logik in jedem Fall "FALSE", mithin einen Ausschaltbefehl. Der zweite ist ein Trigger-Eingang mit der Source "Zeit" . Als Zeitpunkt definierst Du "0:00" an jedem Wochentag.
3.) Auch die
Einschaltlogik würde ich über ein AND-Logik-Modul realisieren. Sein Ausgang wird mit dem entsprechenden KNX-Objekt verbunden.
Um den Helligkeitswert an die Logik zu übergeben, brauchst Du einen "Input-Eingang", den Du mit dem KNX- oder 1-Wire-Objekt, das die Helligkeit "meldet", verbindest. Diesem Input-Eingang gibst Du die Funktion "Schwellwert unter" und definierst als Wert "100; somit sendet die Logik TRUE, wenn ein Eingangsignal ankommt, das unter dem Schwellwert von 100 liegt.
Solange dieser Input-Eingang eine Triggerfunktion hat, wird beim Eintreffen eines Helligkeitssignals die Logik ausgelöst und zwar entweder jedesmal (always, Eingang mit "A" gekennzeichnet) oder nur wenn eine Wertänderung (on change, Eingang mit "C" gekennzeichnet) vorliegt. Da Dein Helligkeitssensor wahrscheinlich während der ganzen Nacht senden wird, würde dies dazu führen, dass die Beleuchtung beim Eintreffen eines Eingangsignals nach 0:00 wieder eingeschaltet würde. Um dies zu vermeiden, musst Du die Triggerfunktion dieses Eingangs ausschalten, indem Du den Eingang mit "U" (update-only) kennzeichnest. Damit stellt dieser Eingang der Logik nur seinen Wert zur Verfügung, löst die Logik aber nie aus.
Weil nun kein Auslöser mehr vorhanden ist, benötigt die Logik nun einen Trigger-Eingang. Dieser soll nicht - wie bei der Ausschaltlogik - nur zu einem bestimmten Zeitpunkt, sondern während einem bestimmten Zeitintervall, auslösen. Diese Funktionalität erreichst Du, in dem Du dem Triggereingang als Source "Zeit" und dort als Typ "Cron Syntax" zuordnest. Die Cron Syntax muss dann wie folgt lauten: "0 0/5 17-22 * * 0,1,2,3,4,5,6". Entscheidend sind dabei die Felder "0/5" und "17-22". Sie legen fest fest, dass während den Stunden 17-22 ab der 0-Minute alle fünf Minuten ein Trigger ausgelöst wird. Mehr zur Cron Syntax findest Du hier:
app.php/kb/viewarticle?a=95
Mit dieser Lösung wird höchstens im Zeitraum zwischen 17 und 23 Uhr ein Einschaltbefehl gesendet.
Ich hoffe, dass ich mich verständlich ausgedrückt habe und dass meine Überlegungen richtig sind (ich habe sie nicht getestet).
Schöne Pfingsten
Gruss, Diego
Edit: In der ersten Zeile "sendet" durch "rechnet" ersetzt.