NEWS
keine skripte möglich immer Fehler 20
-
Hallo zusammen,
ich musste meinen Iobroker neu aufsetzen. Habe die Skripte vorher exportiert, und dann in die frische neue iobroker Instanz importiert. Egal welches skript ich starten möchte, aber auch bei neuen mit nur einem Blockly Trigger Baustein, ich bekomme immer "javascript.0 (2750) script.js.AKTIV.Test_Fehler_20 compile failed: at script.js.AKTIV.Test_Fehler_20:20"Auch das löschen aller skripte, bis auf das test skript bringt nichts. der iokroker ist auf neusten Stand. jemand ne Idee? Danke! Ich verzweifle wirklich...
-
@dieckfr sagte: jemand ne Idee?
Ist unter der Gruppe "global" (Expertenmodus) ein Skript aktiv?
-
Ja 2... systemadapter, und einmal systemevents ...
Die kannte ich auch von der Installation vorher.
-
@dieckfr sagte: Ja 2
Kommt der Compilerfehler auch, wenn sie deaktiviert sind?
-
@paul53 Nein, allerdings der Hinweis das die Instanz nicht aktiv ist... Ich mach jetzt alles nochmal neu... und probier dann erst mal ohne Import ein Skript... Ich frage mich dann nur was da verbogen worden sein könnte... und wie ich dann meine alten Skripte wieder ins system bekomme
-
@dieckfr sagte: was da verbogen worden sein könnte...
Zeige mal die zwei globalen Skripte.
-
@paul53 said in keine skripte möglich immer Fehler 20:
a verbogen worden s
Sooo komplett einmal per Hand neu und auf Stand... Skripte funktionieren jetzt also das testskript.... Jetzt hätte ich ja gerne die alten im rutsch importiert... ich hab das export zip entpackt, reicht es wenn ich die beiden lösche, und dann wieder zippe? oder kann ich einzelne zipen (aufn Mac) und dann importieren?
Hier der inhalt der skripte:
{
"common": {
"name": "Systemadapter",
"expert": true,
"engineType": "Blockly",
"engine": "system.adapter.javascript.0",
"source": "",
"debug": false,
"verbose": false
},
"type": "script",
"from": "system.adapter.admin.0",
"user": "system.user.admin",
"ts": 1612582481446,
"_id": "script.js.global.Systemadapter",
"acl": {
"object": 1636,
"owner": "system.user.admin",
"ownerGroup": "system.group.administrator"
}
}und Nr2:/* -- do not edit following lines - START --
{
"expert": true,
"debug": false,
"verbose": false
}
-- do not edit previous lines - END --*/
const EventListDestination = "javascript.0.SystemEventList.";function createEventlog(EventType, EventText) {
let EventList = getState(EventListDestination + "EventList").val;
let EventId = getState(EventListDestination + "NextEventId").val;
let EventDateTime = formatDate(getDateObject((new Date().getTime())), "TT.MM.JJ hh:mm:ss");EventId = EventId + 1;
setState(EventListDestination + "NextEventId", EventId);let FormatedEventId = ("00000" + EventId).slice(-5);
let EventLog = FormatedEventId + " - " + EventDateTime + " - " + EventType + " - " + EventText;
EventList = EventLog + "<br>" + EventList;setState(EventListDestination + "EventList", EventList);
}Wie gesagt habe ich die in einer laufenden Instanz exportiert...
Ne 'Idee?
-
@dieckfr
Das erste ist kein Skript, sondern ein Objekt vom Typ "script" mit der ID "script.js.global.Systemadapter".
Beim zweiten Skript fällt auf, dass die VariablenEDIT: Variablen sind Übergabeparameter.EventType
undEventText
nicht deklariert sind.
Du solltest beides löschen. Woher stammt das? -
@paul53 Danke für Deine Hilfe, ich übe mich noch Ganz ehrlich, ich hab keine Ahnung woher das kommt, ich hatte den alten Iobroker schon 2-3 Jahre, und auch mal was an Skripten für einen Test installiert, könnte höchstens sein das es da herkommt... Aber die neue Installation, lief auch nciht, wenn ich die Skripte deaktiviert hatte... Können die denn dafür verantwortlich sein? Und wie mache ich dann jetzt meinen import
-
@paul53 Also skripte laufen soweit, nur habe ich wohl beim import der alten skripte nen Bock geschossen. Hab auf nem Mac, die datei entpackt, und habe dann einen Ordner mit meinen aktiven skripten importieren wollen. Die sind auch da, aber jetzt habe ich eine "Gesterfragment Ordnerstruktur" bei der Spriptübersicht... Nen Ordner MACOS.... mit 2 unterordnern, und ie kriege ich. nciht gelöscht... die Unterordner schon, aber den Stamm nicht... Der FEhler lautet:
The id "script.js.__MACOSX.AKTIV.." is invalid. Ids are not allowed to end in "."Gibt es ne Möglichkeit das händisch zu fixen? Nochmal alles... Puhhhh...
-
@dieckfr sagte: Ordner mit meinen aktiven skripten importieren wollen.
Ich verwende bisher keinen Export/Import von Skripten, sondern kopiere den Inhalt einzelner Skripte mit Copy & Paste.
-
@dieckfr sagte: The id "script.js.__MACOSX.AKTIV.." is invalid.
Gibt es ne Möglichkeit das händisch zu fixen?Stoppe ioBroker, öffne die Datei /opt/iobroker/iobroker-data/objects.jsonl in einem Linux-Editor. Suche nach
MACOSX.AKTIV und ersetze "script.js.__MACOSX.AKTIV.." durch "script.js.__MACOSX.AKTIV.a.b". Nach Speichern und ioBroker-Start sollte sich das Objekt in ioBroker löschen lassen.