NEWS
Blockly-Programm startet nicht
-
@paul53 said in Blockly-Programm startet nicht:
@triplex sagte: Wenn die Rollade startet verändert sich der Wert um 2-3% nach oben oder unten, abhängig davon in welche Richtung sich die Rollade bewegt
Dann versuche es mal so:
Welcher Datenpunkt wird beim Stoppen zuerst aktualisiert: "ACTUAL" oder "ACTIVITY_STATE"?
Laut Zeitstempel laufen die synchron.
Habe dein Programm mal nachgebaut und es hat sich auch was getan.
Leider nicht ganz so wie ich es mir vorgestellt habe.
Konnte auch einige Zeilen in deinem Programm nicht so ganz nachvollziehen (z.B. "Falls nicht Intervall")
Was soll die bewirken? -
@triplex sagte in Blockly-Programm startet nicht:
Leider nicht ganz so wie ich es mir vorgestellt habe.
das wäre wie?
und was ist passiert?
-
@triplex sagte: Laut Zeitstempel laufen die synchron.
Dann bau in beide Trigger je einen Debug-Block ein und schau, welcher Log beim Stoppen als erstes erscheint.
@triplex sagte in Blockly-Programm startet nicht:
nicht so ganz nachvollziehen (z.B. "Falls nicht Intervall")
Das sperrt einen weiteren Start des Programmes im falls-Block solange das Intervall läuft. Es dürfen nicht mehrere Intervalle gestartet werden, die sich nicht mehr löschen lassen.
-
@homoran said in Blockly-Programm startet nicht:
@triplex sagte in Blockly-Programm startet nicht:
Leider nicht ganz so wie ich es mir vorgestellt habe.
das wäre wie?
und was ist passiert?
Die Werte sind ins negative gelaufen und die Animation der Rolladenbewegung ist so ab 10% nicht mehr gleichmäßig gefahren sondern ist dann immer wieder auf-zu-auf-zu-.... gegangen.
-
@paul53 Ah...ok.
Danke schonmal für die ganze Arbeit und die Unterstützung.
Werde jetzt mal versuchen auf Basis deines Programms ein neues zu erstellen.
Eins muss ich jetzt aber nochmal fragen...
Wenn ich eine Schleife programmieren möchte, die so lange läuft bis sagen wir mal Wert A größer ist Als Wert B, welche der Objekt-ID-Blöcke muss ich dann verwenden?Wäre das so richtig?
Oder müsste ich den Block verwenden?
-
@triplex sagte: Schleife programmieren möchte, die so lange läuft bis sagen wir mal Wert A größer ist Als Wert B,
Man kann eine Schleife "wiederhole bis" nicht auf die Prüfung von Datenpunkten anwenden, sondern man benötigt eine schnelle Abbruch-Bedingung. So entsteht eine Endlosschleife.
Alternative: Innerhalb der Schleife "Pause" anstelle von "Timeout" oder "Intervall" verwenden.@triplex sagte in Blockly-Programm startet nicht:
Oder müsste ich den Block verwenden?
Das ist egal, sofern der ID-Selektor verwendet wird.
-
@paul53 said in Blockly-Programm startet nicht:
@triplex sagte: Schleife programmieren möchte, die so lange läuft bis sagen wir mal Wert A größer ist Als Wert B,
Man kann eine Schleife "wiederhole bis" nicht auf die Prüfung von Datenpunkten anwenden, sondern man benötigt eine schnelle Abbruch-Bedingung. So entsteht eine Endlosschleife.
Alternative: Innerhalb der Schleife "Pause" anstelle von "Timeout" oder "Intervall".@triplex sagte in Blockly-Programm startet nicht:
Oder müsste ich den Block verwenden?
Das ist egal, sofern der ID-Selektor verwendet wird.
Ok...bin erst seit ein paar Tagen mit Blockly dran und steige an manchen Stellen noch nicht so ganz dahinter.
Gibt es evtl. irgendwo ein Doku oder so, wo die Blöcke und deren Funktion etc. erläutert werden? -
@triplex sagte in Blockly-Programm startet nicht:
Gibt es evtl. irgendwo ein Doku oder so,
Empfehlung ... siehe Signatur @haus-automatisierung
-
@glasfaser said in Blockly-Programm startet nicht:
@triplex sagte in Blockly-Programm startet nicht:
Gibt es evtl. irgendwo ein Doku oder so,
Empfehlung ... siehe Signatur @haus-automatisierung
Den hatte ich auch schon ins Auge gefasst.
War mir aber unsicher ob das Sinn macht den jetzt zu bestellen, da wohl gerade ein neuer in Arbeit ist.
Oder weißt du ob man dann auf die Updates auch Zugriff hat wenn ich jetzt schon bestelle? -
-
@triplex sagte: Die Werte sind ins negative gelaufen
Dann sind offenbar die 200 ms zu kurz oder "ACTUAL" wird nach "ACTIVITY_STATE" aktualisiert.
EDIT: Die Reihenfolge der Aktualisierung spielt keine Rolle, wenn man nur einen Trigger verwendet:
-
@paul53 said in Blockly-Programm startet nicht:
@triplex sagte: Die Werte sind ins negative gelaufen
Dann sind offenbar die 200 ms zu kurz oder "ACTUAL" wird nach "ACTIVITY_STATE" aktualisiert.
EDIT: Die Reihenfolge der Aktualisierung spielt keine Rolle, wenn man nur einen Trigger verwendet:
Danke dir!
Werde es nachher mal nachbauen.Das mit dem "Falls nicht Intervall" habe ich ja jetzt verstanden, aber was fragst du mit dem "Delta und" jetzt noch zusätzlich ab?
-
@triplex sagte: aber was fragst du mit dem "Delta und" jetzt noch zusätzlich ab?
Ich habe
delta
am Anfang auf 0 gesetzt. Wenn der Wert von "ACTIVITY_STATE" kein Delta von -1 oder 1 ergibt, wird das Intervall nicht ausgeführt. Die implizite Typwandlung von "falls" interpretiert eine 0 wie false. -
@paul53 said in Blockly-Programm startet nicht:
@triplex sagte: aber was fragst du mit dem "Delta und" jetzt noch zusätzlich ab?
Ich habe
delta
am Anfang auf 0 gesetzt. Wenn der Wert von "ACTIVITY_STATE" kein Delta von -1 oder 1 ergibt, wird das Intervall nicht ausgeführt. Die implizite Typwandlung von "falls" interpretiert eine 0 wie false.Muss ich hier die Objekt ID in dem Block auswählen oder muss ich das wirklich 1zu1 so aufbauen?
-
@triplex sagte: Muss ich hier die Objekt ID in dem Block auswählen
Ja. Ich habe einen Kommentar gewählt, da ich diesen Datenpunkt nicht habe.
-
@paul53 said in Blockly-Programm startet nicht:
@triplex sagte: Muss ich hier die Objekt ID in dem Block auswählen
Ja. Ich habe einen Kommentar gewählt, da ich diesen Datenpunkt nicht habe.
Denke ich bin fast am Ziel.
Habe dein Programm noch was verändert.Folgendes soll passieren...
- Rollade bewegt sich
- Aktuelle Position wird in "... - Bewegung Simulation" geschrieben
--> "... - Bewegung Simulation" steuert die Animation in meiner Vis - Es wird überprüft ob die Rollade nach oben oder unten fährt
- Anschließend soll der Datenpunkt "... - Bewegung Simulation" solange erhöht oder verringert werden bis tatsächliche Position erreicht ist. Dafür habe ich das hier eingesetzt.
- Da die Rollade schneller fährt als der Datenpunkt verändert wird, soll die Animation noch bis zu tatsächlichen Position weiterlaufen auch wenn die Rollade schon längst steht.
Aktuell ist es noch so, dass die Animation nicht bis zum Ende fährt sondern beim Stoppen der Rollade ebenfalls stoppt.
Zudem "hämmert" die Animation im Widget den Behang immer wieder auf und zu.Muss ich evtl. das hier das "delta" entfernen?
-
@triplex sagte: Da die Rollade schneller fährt als der Datenpunkt verändert wird
Dann ist das Intervall mit 1000 ms zu lang.
Wo wird das Intervall gestoppt?
-
@paul53 said in Blockly-Programm startet nicht:
@triplex sagte: Da die Rollade schneller fährt als der Datenpunkt verändert wird
Dann ist das Intervall mit 1000 ms zu lang.
Wo wird das Intervall gestoppt?
Dachte das würde durch die Begrenzung automatisch gestoppt wenn eine der Grenzen erreicht ist.
-
@triplex sagte: Dachte das würde durch die Begrenzung automatisch gestoppt wenn eine der Grenzen erreicht ist.
Nein, das Intervall muss per Stop-Intervall-Block gestoppt werden, da sonst die Sperre aktiv bleibt.
-
@paul53 said in Blockly-Programm startet nicht:
@triplex sagte: Dachte das würde durch die Begrenzung automatisch gestoppt wenn eine der Grenzen erreicht ist.
Nein, das Intervall muss per Stop-Intervall-Block gestoppt werden, da sonst die Sperre aktiv bleibt.
Ok...wo müsste ich denn den den Stopbefehl unterbringen, damit das Interval aufhört wenn die Simulation die richtige Position erreicht hat.
Ich müsst ja abfragen ob der Wert "...-Bewegung Simulation" den Wert 0 oder 100 oder ACTUAL erreicht hat.
Und wie frage ich die 3 Werte am besten ab?