NEWS
Verständnisfrage zu Blockly
-
Hallo zusammen,
ich hätte mal eine Frage zum Verständnis von der Blockly Programmierung.
Mit diesem Blockly würde ich gerne zwei Events abfangen, dabei aber ausschliessen wenn oben bereits (erstes "Falls Objekt") eine Aktion erfolgt ist dass dann unten nochmal eine Aktion erfolgt wenn das zweite "Falls Objekt" auch zutreffen würden.
Ist mit der Verknüpfung von dem ersten und dem zweiten Falls sichergestellt das immer beide Prüfungen nacheinander durchgeführt werden und vorher Änderung auf false gesetzt wird? Oder ist es denkbar das z.B. nur das unter "Falls Objekt" oder dieser Trigger ausgeführt wird wenn "Warning end" sich ändert?
Danke schon mal für eure Hilfe dazu.
-
@hotspot_2
Was ist das Ziel?
Die Variable Aenderung wird nirgends auf falsch zurück gesetzt und auch nicht wirklich ausgewertet. -
Ok, das verstehe ich jetzt nicht. Ich setze sie doch am Anfang auf "false" und dann frage ich sie im unteren "Falls Objekt"-Trigger ab?
Sinn ist das ich auf Änderungen der einen Unwettermeldung aus dem DWD Adapter reagiere und zwar die Anfangs- oder die Endzeit. Ich versende in beiden Fällen eine Pushover Meldung. In Fällen wo sowohl die Anfangs- als auch die Endzeit verändert wird soll nur einmal das Pushover versendet werden. Das wäre der Zweck von diesen Skript. Und die Zeiten umwandeln in beiden Fällen.
-
@hotspot_2 wie Paul schon schrieb, sie bezieht sich ja auf nichts, genauso gut kannst du es komplett weg lassen, hat den selben Effekt
-
@hotspot_2 sagte: In Fällen wo sowohl die Anfangs- als auch die Endzeit verändert wird soll nur einmal das Pushover versendet werden.
Also nur die erste Änderung der Zeit (am Tag?)?
-
Ich bin gerade am tüfteln mit dem DWD Adapter. Ich rufe gerade immer 1 Meldung ab.
In meinem momentane Verständnis läuft dieses Blockly Script von oben nach unten durch. Also erst wird die Variable gesetzt, dann wird geprüft ob sich die Beginn Zeit geändert hat und dann wird geprüft ob sich die Ende Zeit geändert hat. Mit meinem Ansatz momentan möchte ich verhindern das wenn sich sowohl die Beginn, also auch die Endzeit geändert hat zwei Pushover rausgehen. Es soll aber bei jeder Änderung immer eine Meldung rausgehen.
Aber ich glaube mein Verständnis wie das mit den Triggern abläuft ist da nicht richtig. Daher habe ich ja nach dem Verständnis gefragt.
-
@hotspot_2 sagte: läuft dieses Blockly Script von oben nach unten durch.
Nein, die Trigger warten auf ein Ereignis (Wertänderung). Die Befehle innerhalb eines Trigger-Blocks werden bei Eintreten des Ereignisses nacheinander abgearbeitet.
@hotspot_2 sagte in Verständnisfrage zu Blockly:
verhindern das wenn sich sowohl die Beginn, also auch die Endzeit geändert hat zwei Pushover rausgehen.
Also, wenn sie sich fast gleichzeitig (innerhalb einer bestimmten Zeit) ändern? Dann muss man eine Sperre per Timeout realisieren.
Anmerkung: Um auf die Timer-Variable timeout zugreifen zu können, muss man erst eine dummy-Variable erstellen.
-
Wenn ich vor dem Trigger etwas ins Skript setze z.B. das Setzen eines Zeigers wann wird das dann aufgerufen? Variablen können dort aber nicht intiiert werden so das sie immer da (persistent) sind? Das geht dann nur über die User / Objekte, oder?
Und ob ich die Trigger dann verbinde oder völlig frei platziere spielt dann auch keine Rolle vermutlich, oder?
-
@hotspot_2 sagte in Verständnisfrage zu Blockly:
Wenn ich vor dem Trigger etwas ins Skript setze z.B. das Setzen eines Zeigers wann wird das dann aufgerufen?
nur beim Skriptstart
@hotspot_2 sagte in Verständnisfrage zu Blockly:
Variablen können dort aber nicht intiiert werden so das sie immer da (persistent) sind?
Doch
@hotspot_2 sagte in Verständnisfrage zu Blockly:
Und ob ich die Trigger dann verbinde oder völlig frei platziere spielt dann auch keine Rolle vermutlich, oder?
so ist es
-
@hotspot_2 sagte: Wenn ich vor dem Trigger etwas ins Skript setze z.B. das Setzen eines Zeigers wann wird das dann aufgerufen?
Nur bei Skriptstart.
@hotspot_2 sagte in Verständnisfrage zu Blockly:
Variablen können dort aber nicht intiiert werden
Variablen können initialisiert werden. Änderungen überleben allerdings keinen erneuten Skriptstart. Dafür benötigt man Datenpunkte.
-
@All Perfekt. Danke! Hat sehr zum Verständnis beigetragen. Ich mach mich jetzt mal ran an mein Skript und melde mich nochmal wenn nochmal was auftauchen sollte an Fragen.
-
Hab nochmal eine Frage zum Thema Variablen.
Das hier würde aber so funktionieren, oder?
Wenn ich jetzt für jedes Objekt aus der Überwachung einen Trigger setzte dann sollte das doch klappen, oder? Oder habe ich mit den Funktionen das Problem mit den Variablen auch?
Danke schon mal.
-
@hotspot_2 sagte: Wenn ich jetzt für jedes Objekt aus der Überwachung einen Trigger setzte dann sollte das doch klappen, oder?
Ja.