NEWS
Blockly wird unregelmäßig ausgeführt, kein Debug!
-
Hallo zusammen,
ich möchte hier ein Thema aufnehmen und um eure Hilfe bitten.
ich habe seit längerem Probleme mit zwei meiner Blocklyscripte, da beide nicht konstant zuverlässig ausgeführt werden. Soll heißen, das mein Script trotz Cronschedule manchmal nicht ausgeführt wird und trotz Javascript Adapter im Debug keinerlei Meldungen zum geplanten Zeitpunkt angezeigt werden!Ich hatte bereits einen Thread bei github aufgemacht, ist laut @apollon77 aber eher kein Adapterproblem.
Habe das Script hier aus dem Forum, wenn jemand einen Tipp hat um das Script zu vereinfachen um dadurch ggf Fehler zu vermeiden wäre ich sehr dankbar da ich noch ziemlich unerfahren darin bin.Verhalten:
Script 1 soll alle Rollos bis auf Terrasse 6 Uhr zu 50% öffnen und 6:30 dann zu 100%, der erste Schritt wird immer ausgeführt, der zweite allerdings nicht. Keinerlei Output im Debuglog! Gerade habe ich den Teil von 6:30 nochmal auf 6:40 geändert und da werden die Rollos korrekt zu 100% geöffnet!
JS
Script 2 soll Terrassenrollo Abends 22:30 herunterfahren, das klappt leider nur 2 von 10 mal, bisher konnte ich den Fehler nicht finden warum es oft nicht funktioniert. Wenn das Rollo 22:30 nicht geschaltet wird und ich das Script dann am selbern Abend zB 22:40 nochmal neu plane wird es heruntergefahren. Wenn das Script 22:30 nicht herunter gefahren wird erscheinen keinerlei Fehler, Warnungen oder Meldungen im DebugLog!
JS
Versions:
Adapter version: Javascript Adapter 5.7.0 JS-Controller version: 4.0.23 Node version: 14.19.3 Operating system: Debian
Iobroker läuft in einer Debian VM auf einem IntelNuc host mit Proxmox
Danke!
-
@benziman Also wie bereits auf Github gesagt würde ich die Skripte erstmal vereinfachen in dem dieses Intervall wegkomm. Das macht nix anderes wie sehr kompliziert ein Delay von x*230ms ... Rechnen und einfach das zweite setState mit Verzögerung und dann den Wert angeben.
-
das habe ich jetzt nicht ganz genau verstanden sorry
du meinst das hier oder? Damit fährt er das Rollo herunter und wie stoppe ich das wieder? oder verseteh ich das mit dem delay falsch?
so vllt?
0 fährt Rollo hoch, 1 stoppt Rollo nach 92*230ms (21160ms) -
nur mal so gefragt, steht um 06:00 bzw um 22:30 kein Start des Script im Log?
-
@benziman sagte: so vllt?
Ja, wenn es bei 50 % (= 10 s?) gestoppt werden soll. Wenn es auf 100 % gefahren werden soll, ist normalerweise kein Stoppen nötig.
Liefern die Rollos keine Position in einem Datenpunkt? -
nein leider nicht, ich kann nur die Zeit definieren wann die Taster wieder stoppen, einen DP für den aktuellen Prozentstand haben die nicht.
-
nur das was oben zu sehen ist, komisch ist halt, das es ja manchmal funktioniert. Wenn er das Rollo mal nicht schaltet und ich dann die Zeit auf aktuelle Zeit + 5min ändere startet das Script ja.
-
wenn ich dich richtig verstehe, startet das Script erst garnicht oder startet es und es wird nur nicht geschaltet?
ich vermute mal das die Tuya nicht schnell genug reagiert und du schon wieder alles Stoppst.
Bau mal debug Meldungen dazwischen um zu sehen was passiert.
-
so, habe jetzt alle meine Scripte umgebaut, erster Test bei einem Rollo hat funktioniert. Ich teste das heute Abend.
Danke schonmal für den Input an alle! -
@benziman was ist eigentlich Button_2? Ist wohl keine Hardware, bzw wer schaltet Button_2 schon auf wahr.
-
@benziman Offtopic:
ich empfinde es immer als Problem wenn man wie bei dir im Screenshot die einzelnen Datenpunkte gar nicht mehr unterscheiden kann. Man könnte nun vor jeden Block einen Kommentar packen.
Ich nehme gern die andere Variante:Bei dem Block kann man den Datenpunkt auswählen - dann sieht es genauso aus wie bisher - oder ein Textfeld ankoppeln und den Pfad da rein kopieren.
Per Rechtsklick kann man noch zwischen "internen" und "externen" Eingängen umschalten - die Ansicht aus dem Bild ist "extern"
-
@bananajoe sagte: Man könnte nun vor jeden Block einen Kommentar packen.
... oder die Namen der Datenpunkte editieren.
-
@benziman dumme frage ? Hast du den haken bei "alle States bei adapterstart abonnieren" im JS adapter gesetzt ? Wenn nein dann hast du ggf. ein race-condition problem, bei dem der im Skript genutzte wert eines Datenpunktes nicht dem entspricht wie er intern gesetzt ist.
Das könnte erklären warum z.Bsp. das herunterfahren um 22:30 nur manchmal geht, aber bei einem weiteren Versuch um 22:40 immer.
A.
-
@asgothian sagte: Hast du den haken bei "alle States bei adapterstart abonnieren" im JS adapter gesetzt ?
Ohne den Haken würden Error-Logs bei Verwendung von "Wert vom Objekt ID ..." generiert.
-
habe eine Debugzeile mit in mein Script aufgenommen, warum auch immer wurde mir im Livelog aber wieder nichts angezeigt, im Logfile von heute habe ich den Fehler aber gefunden. Ich hatte wegen häufiger Tuyaprobleme den Adapter alle 30Min neu gestartet per Cron, das erklärt auch warum das Script mal geht und mal nicht... -.-
mal schauen ob das die nächsten Tage stabil funktioniert, danke an alle Helfer vor allem auch für die Scriptvereinfachung!
-
@benziman sagte in Blockly wird unregelmäßig ausgeführt, kein Debug!:
Ich hatte wegen häufiger Tuyaprobleme den Adapter alle 30Min neu gestartet per Cron,
Halb off topic hier ... welche Probleme denn? Auchmit den aktuellsten Versionen? Sind nämlich keine Probeme bekannt
-
hing mit dem Tasterzusammen da ich immer wieder timeouts hatte, habe die Rollotaster jetzt ersetzt und keine Probleme.