NEWS
Javascript läuft nicht mehr..
-
@joemuc sagte: in den Logs gefunden:
RAM knapp? Schau mal mit
top
. -
hatte die Skripte bisher unter common (ohne Probleme). wenn ich den Script nach global verschiebe ist zumindest die ursprüngliche Fehlermeldung weg.
Der Script schaut im kompletten so aus:
on({id: "mqtt.0.WEMOS_D1_2.Door.State", change: "any"}, function (obj) { log("---------------------------------- Test log-------------------------------------") });
unter common kommt der Fehler, unter global nicht.
Problem ist allerdings, das der Script unter global nicht auslöst auch wenn ich den State des Datenpunktes ändere.
Aber ich mache mich da mal auf die Suche was das Problem sein könnte..
Vielen Dank schonmal für die schnelle Hilfe!
-
top - 15:37:45 up 24 min, 2 users, load average: 0,96, 0,97, 0,90 Tasks: 173 total, 2 running, 171 sleeping, 0 stopped, 0 zombie %Cpu(s): 9,4 us, 4,2 sy, 0,0 ni, 85,7 id, 0,0 wa, 0,0 hi, 0,7 si, 0,0 st MiB Mem : 3838,7 total, 1837,7 free, 1320,5 used, 680,5 buff/cache MiB Swap: 100,0 total, 100,0 free, 0,0 used. 2631,2 avail Mem
2631,2 avail Mem sollte reichen...
-
@joemuc sagte: Der Script schaut im kompletten so aus:
Die Fehlermeldung zu Zeile 2 ist eine andere:
error var switch = {};
Ist nicht noch ein Skript unter "global" aktiv.
@joemuc sagte in Javascript läuft nicht mehr..:
wenn ich den Script nach global verschiebe
Skripte mit Triggern niemals unter "global" speichern!!
@joemuc sagte in Javascript läuft nicht mehr..:
2631,2 avail Mem sollte reichen...
Ja, wenig RAM ist offenbar nicht das Problem.
-
@joemuc sagte in Javascript läuft nicht mehr..:
2631,2 avail Mem sollte reichen...
aber die Kiste läuft erst seit
@joemuc sagte in Javascript läuft nicht mehr..:
up 24 min
interessant wird es wie es nach längerem Zeit aussieht
-
ich habe alle Skripte unter common und global deaktiviert:
Wenn ich den Skript unter common starte kommt folgender Fehler:
error at processImmediate (node:internal/timers:468:21) error at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.javascript/main.js:1472:17) error at /opt/iobroker/node_modules/iobroker.javascript/main.js:2001:17 error at prepareScript (/opt/iobroker/node_modules/iobroker.javascript/main.js:1900:37) error at createVM (/opt/iobroker/node_modules/iobroker.javascript/main.js:1647:28) error at Object.createScript (node:vm:257:10) error at new Script (node:vm:100:7) error SyntaxError: Unexpected token 'switch' error ^^^^^^ error var switch = {}; error script.js.common.Test compile failed: at script.js.common.Test:2
unter global kommt der Fehler nicht, allerdings reagiert er auch nicht auf den Trigger..
Ich werde wohl das System mal neu aufsetzen müssen
Der Skript beinhaltet nur:
on({id: "mqtt.0.WEMOS_D1_2.Door.State", change: "any"}, function (obj) { log("---------------------------------- Test log-------------------------------------") });
-
-
@joemuc sagte in Javascript läuft nicht mehr..:
Noch schaut es gut aus, ich beobachte es weiter
top - 16:07:15 up 53 min, 2583,9 avail Mem
top zeigt immer nur eine Momentaufnahme.
Wenn jedoch etwas vom SWAP angeknabbert wurde, hatte der RAM nicht ausgereicht. -
@joemuc sagte:
error SyntaxError: Unexpected token 'switch' error ^^^^^^ error var switch = {};
In Javascript ist
switch
ein reserviertes Wort. -
Hallo Paul, ja in meinen Skripten verwende ich switch nicht. Die liefen jetzt 1,5 Jahre ohne das ich was geändert habe.
Das switch muss irgendwo anders her kommen.
VG Joe
-
@joemuc sagte: Das switch muss irgendwo anders her kommen.
Ich vermute ein Skript unter "global". Hast Du "linkeddevices" installiert und das Skript generiert?
-
suche es mal mit :
.
und darauf achten , das hier nichts markiert ist ( Filter gesetzt ) :Filter gesetzt :
-
Hallo Paul,
genau das war es... hatte den Adapter "linked devices" wieder aktiviert, allerdings nichts weiter gemacht.
Habe dann nachdem ich Deinen Post gelesen habe:
- erst den Adapter deinstalliert: ohne Erfolg
- den Adapter wieder installiert, einen Skriptnamen vergeben und den Skript generiert: ohne Erfolg.
- dann habe ich einen Skriptnamen und Name der Variable eingeben, Skript generiert und danach gleich deaktiviert.
--> das hat den Erfolg gebracht, jetzt geht wieder alles.
Tausend Dank für Deine Hilfe! Ich wäre da nie drauf gekommen, dass es mit linked devices zusammenhängt.
Mega, dass jetzt wieder alles läuft!!!
Viele Grüße und einen schönen Abend
Joe