NEWS
Verständnisfrage 2xTrigger (falls Objekte) und WERT
-
Moin liebe Community,
ich verwende das Element Trigger (falls Objekte) um ein Leuchtmittel mittels zwei Bewegungsmelder einzuschalten.
Wie verhält sich nun das Objekt "Wert" (siehe Markierung) wenn ich zwei Trigger habe?VG Takahara
-
@takahara sagte in Verständnisfrage 2xTrigger (falls Objekte) und WERT:
Wie verhält sich nun das Objekt "Wert" (siehe Markierung) wenn ich zwei Trigger habe?
Das enthält den Wert des Objektes, das den Trigger ausgelöst hat. Eines der beiden.
Wenn es egal ist, welches der beiden Objekte den Trigger ausgelöst hat, kannst Du das so machen wie gezeigt.Wenn aber beide BWM ausgelöst haben müssen, müsstest Du beide Werte mit "Wert von Objekt" einlesen und prüfen, da ja im Vorfeld nicht bekannt ist welcher BWM jetzt gerade ausgelöst hat.
OK - man könnte hingehen und die ID des auslösenden Objektes lesen und dann nur noch das jeweils andere auslesen. Macht's aber unnötig kompliziert - auch wenn's minimal Ressource sparen würde.BTW: Das "Prüfe" kannst Du Dir schenken
-
Hallo @codierknecht,
vielen Dank für deine Antwort!
Bevor ich auf das eigentliche Thema eingehe, habe ich noch eine Rückfrage zu deinem Kommentar “Das Prüfe kannst du dir schenken.” – was genau meinst du damit in meinem Blockly-Script? Ich prüfe ja nach einer Auslösung, ob die Automatik für die Beleuchtung aktiv ist, da es Situationen gibt, in denen das Licht nicht automatisch geschaltet werden soll. Ist das der Punkt, den du meintest?
Zum Thema „Wert von Objekten“: Ich verstehe den Ablauf grundsätzlich. Wenn der erste Bewegungsmelder eine Bewegung erkennt und sowohl „dunkler Raum“ als auch „dunkel draußen“ auf True stehen, wird das Licht eingeschaltet. Falls der zweite Bewegungsmelder ebenfalls eine Bewegung erkennt, bleibt das Licht ebenfalls an.
Mein Problem ist jedoch: Wenn ich mich noch im Raum befinde, aber einer der Bewegungsmelder keine Bewegung mehr erkennt, würde der „Wert von Objekten“ auf False springen. Das hätte zur Folge, dass das Licht ausgeschaltet wird, obwohl der andere Bewegungsmelder weiterhin eine Bewegung erkannt hat. Das scheint mir nicht korrekt zu sein – ich denke, ich müsste die Logik entsprechend anpassen.
Was meinst du dazu?
Viele Grüße
Takahara -
@takahara sagte: im Raum befinde, aber einer der Bewegungsmelder keine Bewegung mehr erkennt, würde der „Wert von Objekten“ auf False springen.
Deshalb müssen beide DP-Werte per ODER verknüpft werden.
Bleibt
dunkel_Raum
true, wenn das Licht eingeschaltet wird?EDIT: Ich würde die Logik eher so gestalten:
EDIT: Der Timeout muss bei jeder Bewegungserkennung gestoppt werden - nicht nur, wenn das Licht eingeschaltet wird.
-
@paul53 said in Verständnisfrage 2xTrigger (falls Objekte) und WERT:
Bleibt
dunkel_Raum
true, wenn das Licht eingeschaltet wird?Ja, dunkel_Raum bleibt true, da hier eine Hysterese berücksichtigt wird.
Vielen Dank für deine Hilfe!
VG Takahara -
@takahara sagte: Ja, dunkel_Raum bleibt true
Bei der unten vorgeschlagenen Version ist es egal.
-
@paul53 said in Verständnisfrage 2xTrigger (falls Objekte) und WERT:
@takahara sagte: Ja, dunkel_Raum bleibt true
Bei der unten vorgeschlagenen Version ist es egal.
Ja richtig. Aber wenn ich dein Blockly Script richtig verstehe, wird das Licht nicht mehr ausgeschaltet, wenn dunkelAussen FALSE ist.
Das könnte dazu führen, dass das Licht am Tage an bleibt, sobald die Helligkeitsschwelle für dunkelAussen überschritten wurde.VG Takahara
-
@takahara sagte: wird das Licht nicht mehr ausgeschaltet, wenn dunkelAussen FALSE ist.
Das passiert nur, wenn es draußen hell wird, während Bewegung erkannt wurde. Aber auch das kann man umgehen:
-
@takahara sagte in Verständnisfrage 2xTrigger (falls Objekte) und WERT:
zu deinem Kommentar “Das Prüfe kannst du dir schenken.” – was genau meinst du damit in meinem Blockly-Script?
Dieses "Prüfe".
Du prüfst da, ob ein logischer Ausdruck "wahr" oder "falsch" ist, um dann "wahr" oder "falsch" zurückzugeben.
Das ist unnötig, denn ein logischer Ausdruck kann ja selbst nur "wahr" oder "falsch" sein.Darum habe ich das vereinfacht:
@paul53 hat natürlich Recht. Wenn Du auf "wurde geändert" triggerst, musst Du immer beide Werte prüfen.
Der Trigger würde ja auch ausgelöst, wenn BWM 1 auf "false" wechselt. Dann müsste geprüft werden, ob BWM 2 noch "true" ist oder nicht.
Auch das kann man sich schenken, wenn man auf "größer als letztes" triggert. Dann löst der Trigger nur aus, wenn einer der beiden BWM Bewegung erkennt. -
@codierknecht
Die Frage hatte ich mir auch schon einmal gestellt.
Also kann ich in meinem Blockly im Trigger "ist größer als letztes" benutzen und den "oder Baustein" durch "Wert" ersetzen?
-
Also kann ich in meinem Blockly im Trigger "ist größer als letztes" benutzen und den "oder Baustein" durch "Wert" ersetzen?
Nein.
Du willst ja auf beide Zustände reagieren: "Bewegung erkannt" und auch "keine Bewegung mehr".
Dazu muss auf "geändert" reagiert und alle 3 Zustände geprüft werden. -
@codierknecht said in Verständnisfrage 2xTrigger (falls Objekte) und WERT:
Auch das kann man sich schenken, wenn man auf "größer als letztes" triggert. Dann löst der Trigger nur aus, wenn einer der beiden BWM Bewegung erkennt.
Wenn der Trigger bei "ist größer als letztes" nur auslöst, wenn beide BWM Bewegung erkannt haben, wie soll dann das Licht ausgeschaltet werden? Ziel bzw. Aufgabe des Blockly Scriptes soll es sein.
- Die Lichter einzuschalten, wenn zumindest 1 BWM eine Bewegung erkannt hat
- Die Lichter nur ausschalten, wenn keiner der beiden BMW keine Bewegung mehr erkannt hat.
Großen Dank für deine Unterstützung und Erklärungen.
-
@takahara sagte in Verständnisfrage 2xTrigger (falls Objekte) und WERT:
Wenn der Trigger bei "ist größer als letztes" nur auslöst, wenn beide BWM Bewegung erkannt haben, wie soll dann das Licht ausgeschaltet werden?
In Deinem Eingangspost war von "ausschalten" keine Rede. Nur darauf bezog sich meine Aussage.
Ich befürchte, hier hab' ich jetzt für mehr Verwirrung als Erhellung gesorgtVerwende den Vorschlag von @paul53
-
@codierknecht sagte in Verständnisfrage 2xTrigger (falls Objekte) und WERT:
Also kann ich in meinem Blockly im Trigger "ist größer als letztes" benutzen und den "oder Baustein" durch "Wert" ersetzen?
Nein.
Du willst ja auf beide Zustände reagieren: "Bewegung erkannt" und auch "keine Bewegung mehr".
Dazu muss auf "geändert" reagiert und alle 3 Zustände geprüft werden.Du hast Recht. Funktioniert ja so wie es ist.