NEWS
[gelöst] Fehler Ein/Aus-Zustand switch.active Skript
-
Hallo Zusammen,
mir ist gerade ein sehr seltsames Problem aufgefallen:
Vorab vielleicht zur Info: Ich habe vor ein paar Tagen das Update auf js-Controller 4.x durchgeführt und heute auf die aktuelle Version 4.0.18 upgedatet.
Folgend das Problem:
Wenn man in ioBroker in der Objekte-Ansicht in den Pfad "javascript.0.scriptEnabled.Ordnername" navigiert, kann man dort den Zustand (also ein oder aus bzw. true oder false) eines Skripts sehen.
Ich habe bei einem javascript-Skript nun "true" stehen, d. h. das Skript läuft.
Wenn ich in ioBroker auf die Ansicht "Skripte" wechsle, ist dort auch das grüne Symbol, d. h. das Skript läuft.
Wenn ich nun aber über ein anderes Skript den Zustand des Skripts bspw. in das Log schreiben lasse, erscheint im Log "false", das würde heißen, dass das Skript nicht läuft.
console.log(getState("javascript.0.scriptEnabled.Ordnername.Skript1").val);
--> im Log schreibt er dann:
script.js.Ordnername.Skript2: false
Ich bin mir eigentlich sicher, dass das Skript läuft, da
- es keiner beendet hat (im Log sehe ich nur den Start-Log-Eintrag)
- in der Skripte-Ansicht es als aktiv angezeigt wird
- in der Objekte-Ansicht es als aktiv angezeigt wird
Das Problem habe ich übrigens sowohl bei javascript-Skripten wie auch bei Blockly-Skripten.
Wisst ihr vielleicht wie das sein kann? Kann das mit der neuen jsonl-Datenbank zusammenhängen? Sind hier vielleicht Probleme bekannt?
Vielen Dank vorab!
-
@magnus-0 Irgendwas stimmt hier nicht:
-
Doch passt so
Skript 2 ist das Skript welches die Ausgabe in das Log schreibt. Es wird zwar der Zustand von Skript 2 überprüft, jedoch in Skript 2.
Also Skript 1 ist das javascript-Skript.
Mit Skript 2 mache ich die Debug-Ausgabe. Als Ausgabe wird der Zustand von Skript 1 ausgegeben.
-
@magnus-0 OK.
Stimmt denn der Pfad zum Object?
Läuft das Script vielleicht in einer anderen JavaScript Instanz?
-
Ja, ich habe das jetzt mehrere Male überprüft, ich dachte zuerst das kann doch nicht sein...
Aber die Pfade passen und ich habe auch bloß eine JavaScript-Instanz.
-
Ich bin nun testweise mal hergegangen und habe das Skript aus- und wieder eingeschalten. Nun passt auch die Logausgabe.
Dann habe ich meinen kompletten Raspi neugestartet. Gleiches Problem wieder. Skript läuft, macht auch was es soll, jedoch wird ins Log wieder "false" geschrieben, obwohl es nachweislich ein ist.
-
@magnus-0 Sorry, dann bin ich leider raus.
-
Kein Problem, trotzdem vielen Dank für die schnellen Antworten.
Soll ich da einfach mal abwarten bis noch jemand schreibt oder soll ich da direkt jemanden anschreiben?
Was denkst du ist besser?
-
@magnus-0 Ist nicht 4.0.19 vom JS-Controller aktuell?
Kannst warten oder ein Issue in GitHub beim Adapter bzw. JS-Controller öffnen.
-
Also bei mir zeigt er 4.0.18 als aktuell an.
Ist das Problem bekannt weil du meinst ich kann warten?
-
@magnus-0 Ich kenne das Problem nicht, was aber nichts bedeutet.
Kann sein das 4.0.19 noch nicht im Stable ist. Muss ich selber mal gucken.
-
Ok, blöde Frage: Gibt es für das Erstellen des Issue in GitHub eine Anleitung? Ich hab das noch nie gemacht.
-
@magnus-0 Keine Ahnung… gibt aber beim entsprechenden Repo einen Button „Issue erstellen“
Beispiel:
-
@magnus-0 sagte in Fehler Ein/Aus-Zustand switch.active Skript:
mir ist gerade ein sehr seltsames Problem aufgefallen:
Ich kann das bestätigen, ich habe das selbe Problem.
tschuess
-
-
Ok Danke
-
@magnus-0 sagte in Fehler Ein/Aus-Zustand switch.active Skript:
Ok, Danke für die Info.
Mir fällt gerade auf, wenn man mit .ack abfragt, stimmt die Antwort.
log(getState('javascript.0.scriptEnabled.E-Auto.ZoeSkriptAnAus').ack)
-
@magnus-0 sagte in Fehler Ein/Aus-Zustand switch.active Skript:
Ok Danke
Nachdem ich das einmal mit .ack abgefragt habe , funktioniert das nun wieder mit .val, warum auch immer.
-
Schau mal was hier steht:
Scripts activity
There is a possibility to enabled and disable scripts via states. For every script the state will be created with name javascript.INSTANCE.scriptEnabled.SCRIPT_NAME. Scripts can be activated and deactivated by controlling of this state with ack=false.https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#scripts-activity
-
Seltsam...
Bei mir ist es schon auch so, wenn ich mit .ack abfrage, stimmt es.
Wenn ich dann aber das Skript kurz ändere und wieder mit .val abfrage stimmt es nicht mehr.
Das Blöde ist natürlich auch, dass ich den Unterschied zwischen .ack und .val nicht kenne...
Ich werde jetzt mal ein Update auf die 4.0.19 machen und schauen ob das Problem dann immer noch da ist. Aktuell habe ich 4.0.18.