Ich habe eine Zeitschaltuhr, die morgens um 6h eine Außenbeleuchtung einschaltet, die mit Sonnenaufgang abgeschaltet wird. Im Sommer liegt der Sonnenaufgang aber vor 6h, d.h. das Licht wird unnötig angeschaltet und bleibt dann auch an...
Ich habe eine interne Variable angelegt, die speichert, ob die "Abschaltung" schon stattgefunden hat, d.h. ich kann prüfen, ob die Schaltzeit ausgeführt wurde (siehe Frage 1) und ob die Schaltzeit "Ausschalten" bereits ausgeführt wurde (interne Variable). Bei vorliegen dieser Bedingung will ich die Einschaltbefehle "überschreiben" (also "AUS" senden) sonst nicht. Einen Sonnenaufgangs-/Sonnenuntergangs-Baustein habe ich nicht gefunden.
Mein Problem: Auch wenn die Bedingung nicht vorliegt, krieg' ich nur Logiken zusammen, die dann auch was ausführen. Soll heissen: Der "else"-Pfad wird bei jeder Schaltzeit getriggert.
Hier mal ein Beispiel:
Unbenanntes Bild.png
Bei Vorliegen der korrekten Bedingung ist alles gut. Aber jede andere Bedingung - Abschaltung morgens wurde noch nicht ausgelöst, andere Schaltzeit, als die, um die es geht - schaltet meine Lampen ein, weil die Logik auf Grund der Statusänderung auch ausgeführt wird. Das einzige, was mir noch einfallen würde, wäre im Prinzip bei Eintreten der Bedingung alle Werte über einen Wertgenerator manuell zu setzen... Aber das muss doch eleganter gehen (hoffe ich)?
Vielleicht ist meine Fragestellung so verständlicher.
Ankündigung
Einklappen
Keine Ankündigung bisher.
Schaltzeitindex in Logik verwenden
Einklappen
X
-
Das Else wird einfach nicht ausformuliert, wenn die Bedingung nicht stimmt, tut sich einfach nichts. Für ein echtes Else musst du die Gegenfunktion auch getrennt afragen, also Vergleicher >5 --> Aktion Y parallel dazu Vergleicher <= 5 --> Aktion Z
Gruß
Florian
Einen Kommentar schreiben:
-
Und ich habe gleich noch 'ne Frage, bzw. vmtl. einen Knoten im Hirn. Für die Anwendung oben will ich eine Funktion nach dem Schema (Pseudocode)
realisieren. Den ersten Teil kriege ich problemlos hin (AND, Vergleicher, Inverter...), aber den "do nothing" Zweig kriege ich nicht hin. Gibt es eine Äquivalent zu exit oder break?IF <Zeitschaltuhr hat ausgelöst> AND <Schaltzeitindex korrekt> THENDO <irgendwas>ELSEDO NOTHING
Einen Kommentar schreiben:
-
Schaltzeitindex in Logik verwenden
Ich möchte beim Auslösen einer bestimmten Schaltzeit eine Logik triggern. Leider ist die Doku an dieser Stelle etwas spärlich: Ich vermute, ich kann das über die Elemente "Ausgelöst" und "Schaltzeitindex" der Zeitschaltuhr realisieren. Was ich nicht verstehe:- Wo bekomme ich den Schaltzeitindex der Zeitschaltuhr her? Annahme: Das sind die jeweiligen Nummern vor den Schaltzeiten der Zeitschaltuhr im GPA, korrekt?
- Zählt der Index ab 0 oder 1 (GPA zählt ab 1)?
- Wie/wann wird der Zeitschaltindex aktualisiert? Steht in der Variablen immer der zuletzt ausgelöste Index? Ich muss auf den Trigger ("Ausgelöst") reagieren, aber nur bei einer bestimmten Schaltzeit ("Schaltzeitindex" = x).
Stichworte: -


Einen Kommentar schreiben: