NEWS
Script nur kurz / einmal ausführen?
-
@exmerci
Bitte zum Grundverständnis:
Laufen ist nicht LaufenDie mehrfach gestellte Frage, was du genau machen willst, bzw. das Skriopt nach abarbeiten NICHT mehr machen soll bitte beantworten, denn:
Das Skript ist bei js immer aktiv
Ein Trigger löst es aus (in deinem Fall der Button)
Das Skript wird abgearbeitet und wartet in einer ruhigen dunklen Ecke auf en nächsten Knopfdruck.Da muss nichts gestoppt werden, außer du hast eine unsaubere Schleife programmiert
-
@Homoran sagte in Script nur kurz / einmal ausführen?:
Die mehrfach gestellte Frage, was du genau machen willst, bzw. das Skriopt nach abarbeiten NICHT mehr machen soll bitte beantworten, denn
Wieso. Ich habe doch oben geschrieben was es machen soll.
ich baue mir gerade ein Blockly Script, was im heatingControl meine Temperatur Profile setzen soll.
Und was es nicht machen soll, ist wenn ich das Script für Profil2 sozusagen starte, die Werte von Script 2 wieder überschreiben, weil es ja noch läuft (nach meinem Vertändniss).
Ist wohl so, das ich das mit dem triggern nicht verstehe, da ich keine JS Erfahrung habe.
Wie triggere ich den das Script. Indem ich einfach einen Button in VIS baue und das Script dort eintrage? -
@exmerci sagte in Script nur kurz / einmal ausführen?:
Ist wohl so, das ich das mit dem triggern nicht verstehe, da ich keine JS Erfahrung habe.
Wahrscheinlich.
Der Trigger (eigene Gruppe von Blöcken) "startet" (korrekt= löst aus) das Skript.
Danach schläft es und macht nichts mehr, bis es wieder getriggert wird.
(Außer es läuft eine falsche Endlosschleife)@exmerci sagte in Script nur kurz / einmal ausführen?:
Wie triggere ich den das Script.
Das ist unterschiedlich. In deinem Fall wohl über einen selbst angelegten Datenpunkt.
Je nach Wunsch wäre das ein boolscher Zustand, der durch das Button-Widget kurz auf true gesetzt wird oder ein Dantenpunkt vom Typ number in das du "1" oder "2" für das gewünschte Programm einträgst und darauf wird dann getriggert -
Eventuell auch ne Möglichkeit ? Den DP javascript.0.scriptEnabled vom Script auf true und verzögert wieder auf false setzen via toggle Button ?
Nur so ne Idee von mir ....
-
@harrym sagte in Script nur kurz / einmal ausführen?:
Nur so ne Idee von mir ....
soll man aber nicht machen
-
@Homoran OK. Dann war's ne blöde Idee
-
Ich hatte jetzt mal so etwas gebaut. Aber irgendwie geht das nicht.
Zugehörige Objekte:
-
@exmerci sagte in Script nur kurz / einmal ausführen?:
Aber irgendwie geht das nicht.
Die Zahlen bitte als Mathematik-Block nehmen.
unwahr = falsch bitte las Logikblock
steuere durch aktualisiere-Block ersetzen -
@exmerci
mache aus "normal" mal einen "button" (ausser der kann auch "false" sein)
Du darfst "string" (Textbausteine) auch nur für "string" Inhalte verwenden und nicht für Zahlen oder "true/false" Werte -
Ok. Ich versuche es. Muss jetzt erst noch mal ein bisschen arbeiten.
Melde mich wieder ob ich es hinbekommen habe oder nicht. -
@Homoran sagte in Script nur kurz / einmal ausführen?:
Die Zahlen bitte als Mathematik-Block nehmen.
Wenn ich das mache, kann ich keine Zahlen wie 12:00 eingeben für die Uhrzeit.
-
@exmerci sagte:
keine Zahlen wie 12:00 eingeben für die Uhrzeit.
12:00 ist keine Zahl, sondern ein String. Die target temperature sollte eine Zahl sein.
-
Obwohl es zu funktionieren scheint, wird folgender Fehler angezeigt.
Was habe ich noch falsch gemacht?
-
@exmerci sagte in Script nur kurz / einmal ausführen?:
Was habe ich noch falsch gemacht?
Was steht in Zeile 11 des erzeugten Javascript-Codes (Button blockly/JS rechts oben) ?
-
setState("0_userdata.0.Normal"/*Normal*/, false, true);
-
-
@exmerci sagte:
setState("0_userdata.0.Normal"/Normal/, false, true);
Hast Du den Datenpunkt "0_userdata.0.Normal" versehentlich gelöscht ?
-
Nein, dann würde es ja auch nicht funktionieren.
-
Muss an Blockly liegen. Wenn ich den Java Code kopiere und in ein richtiges Java script kopiere kommt der Fehler nicht.
-
@exmerci sagte:
Muss an Blockly liegen.
Wohl kaum, denn Zeile 11 ist fehlerfrei. Starte mal die JS-Instanz neu. Kommt dann die Warnung noch immer ?