NEWS
[gelöst]Zwei Trigger auf gleichem Datenpunkt nacheinander
-
Hallo, ich möchte mittels Trigger einen Datenpunkt zweimal abfragen. Nach dem ersten Mal passiert etwas, der Datenpunkt ändert sich und geht nach dem Ausführen der Aktion wieder in den Ursprungszustand. Erst wenn das geschehen ist darf bei der nochmaligen Abfrage eine andere Aktion starten. Ich kann aus meiner Sicht heraus einen Trigger ja nicht in einen Timeout setzen. Wie löse ich das Problem? Werden in der bisherigen Sicht, siehe unten, nicht beide Aktionen gleichzeitig ausgelöst oder wirklich in der Abfolge?
-
@matten sagte: Werden in der bisherigen Sicht, siehe unten, nicht beide Aktionen gleichzeitig ausgelöst
Logisch ja, wobei es eine echte "Gleichzeitigkeit" nicht gibt, aber die Reihenfolge ist nicht festgelegt.
-
@paul53 Und wie sorge ich dafür, dass es in dieser Reihenfolge passiert?
-
@matten sagte: Und wie sorge ich dafür, dass es in dieser Reihenfolge passiert?
Man wendet kein 2 Trigger auf einen Datenpunkt an. Innerhalb der Callback-Funktion des einen Triggers kann die Abarbeitungsreihenfolge festgelegt werden.
-
@matten sagte: Nach dem ersten Mal passiert etwas, der Datenpunkt ändert sich und geht nach dem Ausführen der Aktion wieder in den Ursprungszustand. Erst wenn das geschehen ist darf bei der nochmaligen Abfrage eine andere Aktion starten.
Vorschlag:
-
@paul53 So ganz verstehe ich nicht, was passiert. Die Variable wird nach 1000 ms auf NULL gesetzt, somit werden die folgenden Aktionen ausgeführt. Ist die Variable dann auf NULL wird die folgende Aktion gestartet. Und das sollte dann so aussehen?
-
@matten sagte : So ganz verstehe ich nicht
Was ist der Trigger-Datenpunkt (ist nicht zugewiesen)?
Die Folgeaktion (sonst) wird ausgeführt, wenn innerhalb der Zeit von 1000 ms eine weitere Änderung des Trigger-Wertes erfolgt.Anmerkung: Ich hoffe, dass Du keine zwei Variablen timeout hast.
-
@paul53 said in Zwei Trigger auf gleichem Datenpunkt nacheinander:
@matten sagte :
Was ist der Trigger-Datenpunkt (ist nicht zugewiesen)? Ist nur ein Beispiel und nicht mein Script.Die Folgeaktion (sonst) wird ausgeführt, wenn innerhalb der Zeit von 1000 ms eine weitere Änderung des Trigger-Wertes erfolgt.
Das ist das Problem. Die Zeit steht nicht fest, da Kinotrailer unterschiedlicher Länge abgespielt werde. Ist der Trailer durch, geht der Chromecast state wieder auf "idle" und dann können die nächsten Aktionen ausgeführt werden. Ansonsten kommen Bild und Ton wegen der notwendigen Umschaltungen des Receivers nicht an.
Anmerkung: Ich hoffe, dass Du keine zwei Variablen timeout hast. Das würde ich ändern-
-
@matten
Beantworte bitte meine Frage:@paul53 sagte in Zwei Trigger auf gleichem Datenpunkt nacheinander:
Was ist der Trigger-Datenpunkt (ist nicht zugewiesen)?
Welche Werte kann der Datenpunkt "playerState" neben "idle" annehmen?
@matten sagte in Zwei Trigger auf gleichem Datenpunkt nacheinander:
Kinotrailer unterschiedlicher Länge abgespielt werde.
Der Timeout sollte dann auf die maximale Trailer-Dauer eingestellt werden.
-
@paul53 said in Zwei Trigger auf gleichem Datenpunkt nacheinander:
@matten
Beantworte bitte meine Frage:@paul53 sagte in Zwei Trigger auf gleichem Datenpunkt nacheinander:
Was ist der Trigger-Datenpunkt (ist nicht zugewiesen)?
Ist nur beispielhaft, ist sonst einem Chromecast-state zugewiesen.
Welche Werte kann der Datenpunkt "playerState" neben "idle" annehmen?
Buffering und Playing
@matten sagte in Zwei Trigger auf gleichem Datenpunkt nacheinander:
Kinotrailer unterschiedlicher Länge abgespielt werde.
Der Timeout sollte dann auf die maximale Trailer-Dauer eingestellt werden.
-
@paul53 So sieht der Original-Block jetzt aus:
Ich werde mal sehen, ob ich diesen Block ohne das ganze drumherum mal testen kann, ich will nicht 10 mal die Leinwand betätigen und den Beamer einschalten...
-
@matten sagte: So sieht der Original-Block jetzt aus:
Man vermeidet doppelte identische Prüfungen, etwa so:
-
@paul53 Hallo Paul, vielen Dank für Deine Hilfe, es gab nochmal einige Denkanstöße. Deine Lösung ist insofern für mich nicht praktikabel, da ich immer auf den längsten Trailer angewiesen bin und somit teilweise eine Minute warten müsste, bis die nächste Aktion starten könnte. Meine Lösung, hat zumindest eben funktioniert, sieht jetzt so aus: