NEWS
Skripte beginnen doppelt zu laufen
-
Hallo liebe Community,
ich habe mit meine Skripten das Problem, dass diese nach ca. 15 Stunden beginnen doppelt zu laufen bzw. nochmals 15 Stunden später dann 3-fach usw. Es betrifft einfache Skripte, welche über eine Astrozeit wie z.B. "Sonnenuntergang" getriggert werden, aber auch kompliziertere.
Wenn ich wenige Stunden bevor ein Script auslösen soll, die Script Engine neu starte, funktioniert das Skript normal (wird also - denke ich - auch nur einmal gestartet). Läuft die Scipt Engine dann länger als ca. 15 Stunden, treten die Vervielfachungen auf.
Ich habe verschiedene Debug-Ausgaben in die Skripte eingebaut und sehe diese Debugeinträge im Log dann in einem Zeitlichen Abstand von 2,1 Sekunden. Es kommt also irgendwie auch ein etwas größerer Zeitlicher Abstand zustande.Aufgefallen ist mir dieses mehrfache Ansteuern an meinen Jalousien. Hier werden bei Beginn der Golden-Hour die Lamellen ein kleines Stück geschlossen (sehr kurze Steuerzeit von ca. 1 Sek., also kleiner als der zeitliche Abstand der Skripte). Wenn das Skript dann mehrfach läuft werden die Lamellen entsprechend mehrfach geschlossen und wieder geöffnet, was dazu führt, dass die Jalousie sich aufschaukelt (ziemlich große Jalousie) und anfängt zu scheppern, was echt unschön ist und einen riesen Krach macht.
Meine Daten zum System:
js-controller: 1.4.2
Script Engine: 3.6.5
Platform: darwin
Architecture: x64
CPUs: 4
Speed: 2500 MHz
Model: Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz
RAM: 16 GB
System uptime: 6 T. 16:51:19
Node.js: v8.11.3
NPM: 4.6.1
adapters count: 231
Uptime: 6 T. 16:50:19Es wäre genial, wenn jeman deine Idee hätte wie man das Problem beheben kann. Ich kämpfe schon sehr lange damit rum. Die Skript Engine jede Nacht nach einem Zeitplan einfach neu zu starten ist irgendwie unelegant und bringt auch nicht viel, da das Problem ja schon vor dem nächsten Neustart wieder beginnen würde.
Viele Grüße
-
Mal die JavaScript Instanz auf Debug gestellt und vielleicht mal ein/zwei der Skripte die doppelt laufen hier posten.
Ist es wirklich so das die Skripte doppelt laufen oder erscheinen nur die Logeinträge doppelt?
-
Hast Du vielleicht den js2f Adapter installiert. Der hat bei mir auch schon mal so etwas bewirkt.
-
@Marty56 sagte in Skripte beginnen doppelt zu laufen:
js2f Adapter
Nein den js2f Adapter habe ich nicht installiert.
Ich habe gemerkt, dass es reicht, nur das betroffene Script neu zu starten um das Problem für die nächsten 15 Stunden zu beheben. Ich muss also nicht den ganzen JS-Adapter neu starten.
Mir ist auch aufgefallen, dass wenn ich ein Script stoppe, im Log oft "Stop......Skriptname(1)...." angezeigt wird bis hin zu "....Skriptname(4)". Irgendwie scheinen sich die Skripte beim Speichern zu vervielfältigen. Zum verrückt werden.
-
Hallo,
die JavaScript Instanz habe ich auf Debug gestellt und warte nun bis etwas angezeigt wird.
Anbei mal ein Beispiel-Skript bei dem die Debugeinträge doppelt erscheinen im Abstand von 2,1 Sekunden.
Da bei diesem Skript die Lamellen der Jalousie nur ganz kurz verstellt werden (weniger als 2 Sekunden), merke ich, dass diese doppelt angesteuert werden (einmal in gewünschte Position, dann wieder auf und wieder in gewünschte Position). Starte ich die JavaScript Instanz ein paar Stunden bevor das Skript getriggert wird neu, wird die Jalousie normal angesteuert.Bei anderen Skripten, welche nur Lampen einschalten, habe ich ebenso die Logeinträge doppelt. Von der doppelten Ansteuerung merkt man natürlich nichts.
Ich werde noch weitere Beispiele posten, sobald es wieder los geht mit doppelten Einträgen.
Mir ist aufgefallen, dass das ein oder andere Skript manchmal auch garnicht mehr auf Trigger reagiert (z.B. Außenbeleuchtung soll bei Sonnenaufgang ausschalten). Das geht seit 3 Tagen nicht mehr. Musste das Skript erst neu erstellen um es wieder zum Funktionieren zu bewegen.
-
Mach doch mal mehrere Debug Bausteine rein.
Z.B. Einen direkt nach dem Trigger usw. um zu sehen ob es eventuell am Trigger liegt oder ob die Steuere Blöcke einzeln mehrfach ausgeführt werden.
-
Bis jetzt habe ich keine doppelten Log-Einträge.
Was hat "logging false" und "logging true" zu bedeuten? -
ich habe das gleiche Problem, manchmal erscheint alles 2x, oft auch 3x. Es wird dann nicht nur der LOG so oft angezeigt, auch die Programme arbeiten dementsprechend. Also ich erhalten auch 3 Mails etc. Einen Zeitraum konnte ich noch nicht feststellen. Ein Restart des Adapters brachte meist nicht den erwünschten Erfolg, nur iobroker komplett rebooten. Die Adapter habe ich auch alle auf latest, bis auf hue.
-
Habe das selbe Problem, es gibt mittlerweile auch mehrer Foren bzw. Plattformen z.B. Facebook etc. wo das Thema behandelt wird.
Leider gibt es wohl aktuell noch keine Lösung.
In Verbindung mit Telegram oder Alexa macht das echt kein Spaß.
Ich kann nur hoffen, das bald mal jemand eine Lösung für das Problem hat. -
Moin, gibt es hierzu inzwischen eine Lösung? Meine Blockly-Skripte laufen auch häufig doppelt. Es handelt sich um recht einfache "repeat while true" Schleifen ohne sonstige Trigger.
-
@derdom sagte in Skripte beginnen doppelt zu laufen:
Moin, gibt es hierzu inzwischen eine Lösung? Meine Blockly-Skripte laufen auch häufig doppelt. Es handelt sich um recht einfache "repeat while true" Schleifen ohne sonstige Trigger.
Es gibt keine Lösung weil es kein Problem gibt.
Ich habe das noch nie gehört. Scripte starten nicht doppelt; es sei denn es ist gewollt.
(weil z.B. trigger doppelt auslöst mit ack false und ack true; das kann man aber prüfen).
Und gelesen habe ich das auch noch nie.Wie @wendy2702 schon geschrieben hat, die entsprechenden Scripte posten und genau beschreiben was man gemacht hat.
-
[gelöscht]
-
Mit dieser Bildschirmcopy kann man nichts anfangen.
Viel zu klein, nicht zu lesen.Ich werde nun nichts mehr schreiben.
Stell die Daten vernünftig ein.
So, dass man damit arbeiten kann.-> Blockly so, dass man es lesen kann.
und den Code in code-tags. -
@derdom sagte in Skripte beginnen doppelt zu laufen:
um recht einfache "repeat while true" Schleifen
so etwas sollte nur derjenige nutzen, der weiß was er da tut!
Schleifen führen in den meisten Fällen zu Überlastung des Systems, weil diese im Millisekundentakt abgefeuert werden -
Erst stellt er was ein.
Dann sagt man er soll es richtig einstellen.
und dann löscht er alles.Was soll das ?
Äußerst negativ und von mir auch so bewertet. -
Das Problem ist scheinbar noch nicht behoben.
In unregelmäßigen Abständen feuern die Trigger mit fester Zeitvorgabe nach genau 60 s ein zweites mal.
Das ist sehr unangenehm, weil ich am Tagesende Daten wie Energie, Lauf- und Ladedaten meines E-Autos usw. aufbereite. Da werden z. B. auch Tagesdaten zurückgesetzt, die dann in der Mail fehlen.
Ich kann mir keinen Reim darauf machen, weil das immer wieder vorkommt. Alle paar Wochen oder auch öfter.
Mit
"if ((new Date().getMinutes()) < 58) {"
kann man das zwar unterbinden, wobei die "58" eine Minute über der Startzeit des Skripts zu 23.57 Uhr ist und im Fehlerfall eine Debug Meldung im Protokoll steht.Aber das ist ja nicht Sinn des Triggers.
Wer hat dazu eine Idee, woran das liegen könnte?