NEWS
Anfänger : Frage zur Funktion von Blockly
-
Moin,
Ich verstehe das Script nicht.
Was erwarte ich: Eine Ausgabe von "11", dann Schleife (bei Änderung Ausgabe "22") , Dann Ausgabe "33".
Wass passiert :
Ausgabe immer "33". Siehe log. Warum ?
Lose "Blöcke" werden immer sofort ausgeführt. Das habe ich gelernt.
Also müsst doch die Ausgabe "11", "33" und dann bei Wert Änderung "22" sein.
Passiert aber nicht.
Kann mit bitte jemand helfen, den Knoten im Kopf zu lösen :). Danke -
Welcher Trigger???
Test_Count_01 oder Test_Wert_1 oder Test_Counter_1???Was möchtest Du überhaupt erreichen?
-
@Blechsoldat Ich habe auch keine Ahnung was das Skript machen soll. Aber der erste und dritte Block werden sofort bei Skript-Start ausgeführt. Der dritte Block setzt den Datenpunkt der dann vom ersten und dritten Block ausgegeben wird. Also alles logisch so wie die Debug-Ausgabe erfolgt.
Du verwendest einmal 'Test_Count_1', dann 'Test_Counter_1' und dann 'Test_Wert_1'. Das sind drei völlig unterschiedliche Datenpunkte!
-
@Blechsoldat sagte:
Passiert aber nicht.
Aktualisiere arbeitet asynchron, d.h. die Operation wird nur angeschubst und bevor sie beendet wird, wird das Script weiter abgearbeitet. Deshalb kann man nach aktualisiere nicht den neuen Wert einlesen, sondern man erhält den vorherigen Wert.
-
@Berchemer
Lernen ^^
Beim Start hat der Test_Counter_1 einen unbestimmten Wert
TestWert_1 == 1300Das Script hat keine Funktion uns soll nichts machen. Es geht hier nur ums verstehen was wann warum passiert.
P.S.
Ich hba ioBroker grad kaputt gespielt. Melde mich wieder. -
@Blechsoldat Dann solltest du zuerst mal lernen die richtigen 'Namen' zu verwenden. Alleine an deinem letzten Post sehe ich, dass du da ziemlich schusselig zu sein scheinst.
Und dann musst du lernen wann, was in Blockly ausgeführt wird. Man braucht vor allem Trigger und muss beachten, dass nicht unbedingt alles von 'oben' nach 'unten' ausgeführt wird. Also wirst du dich auch mit Timern beschäftigen müssen. Diese können aber auch mehr- und vielmals gestartet werden! Also immer schön an passender Stelle stoppen.
Alles andere ist ziemlich logisch und einfach zu lernen.
-
Danke für all die Antworten.
Den Unterschied zwischen Steuern und Aktualisieren verstehe ich zwar nicht, aber auch das wird kommen.
Leute wie ich, die von der Hobby Spagetti Programmierung kommen, haben ein großes Problem mit der Umstellung auf das Triggerbasierte Programmieren von Blockly.
Das war/ist mein größtes Problem mit Blockly. -
@Blechsoldat sagte in Anfänger : Frage zur Funktion von Blockly:
Den Unterschied zwischen Steuern und Aktualisieren verstehe ich zwar nicht
Mit aktualisieren wird nur der Wert im Datenpunkt geändert, diese Änderung aber nicht "verarbeitet" - also z.B. ein Kontakt nicht geschaltet. Deswegen wird man in der Regel meist "steuern" verwenden.
Das mit den Triggern ist auch einfach erklärt. Es ist eine Funktion die auf Zustandsänderung reagiert. Also z.B. wenn sich ein Datenpunkt ändert bzw. aktualisiert wird oder wenn ein cron zutrifft wird die Logik darunter abgearbeitet. Verwendet man keinen Trigger, wird das Skript sofort mit dessen Start abgearbeitet.
-
Moin,
für Anfänger kann ich dir den ioBroker Kurs von Matthias Kleine sehr empfehlen.https://shop.haus-automatisierung.com/tutorials-kurse.html
Der Kurs hat mir persönlich zum Verständnis von "Blockly" sehr geholfen.
-
Geändert werden Verschiende Objekte, Debugout gibt aber imme nur einen Wert aus...
Test_Cont_1
Debugout Test_Counter_1