NEWS
[Tester gesucht] Visual Studio Code Extension für ioBroker
-
Vielen Dank für deine Rückmeldung.
In dem Screenshot kann du mein Problem gut erkennen. Im Ordner Heizung laufen bis auf zwei alle Skripte, es werden jedoch nur zwei als aktiv angezeigt. Es werden diejenigen Skripte als aktiv angezeigt, die nicht laufen und umgekehrt.

Habe ich etwas falsch verstanden oder falsch gemacht? Ich bin ratlos.
-
-
In der Documentation fand ich ..
Start/Stop scripts
To start/stop a single script you have the following options:
Go to the script explorer and press the start or stop button.
Use the command iobroker: Start script, respectively iobroker: Stop script. This command starts/stops the script in the active text editor.Irgendwie ging ich intuitiv davon aus, dass die Symbole sich wie im Editor von ioBroker verhalten. Da das Starten und stoppen sich nicht über diese Symbole initiieren lässt, hätte mich eigentlich diese Besonderheit erkennen lassen können. Aber so ist das nunmal bei mir als Anfänger.:anguished:
Sei‘s d‘rum! Jetzt freue ich mich deine Erweiterung zu nutzen. Wenn du ggf. auch noch eine Art Debug-Modus implementierst, wäre das phantastisch.
Leider fehlt es dem JavaScript Editor von ioBroker an vielem. So vermisse ich sehr, dass keine echte Library-Option zur Verfügung steht. Aber für den Hausgebrauch soll‘s damit auch gut sein.
-
Ich hab das jetzt bei mir auch mal implementiert, aber warum seh ich wenn ich ganz oben auf den Explorer gehe in dem Ordner den ich angelegt hab, die Ordnerstruktur so wie sie in iobroker ist, hab ich noch irgendwo was vergessen?
Edit: Habs grad selber rausgefunden, ich hatte vergessen bei den Scripten auf 'Download All' zu klicken, jetzt sind die Ordner und Scripte local da.
-
Ich hab da eine Frage, Scripte die ich mit der VS Code Extension angelegt habe und auch entwickelt habe, tauchen nicht in der Webansicht auf sondern sind nur via VS Code sichtbar und editierbar. Mach ich hier etwas falsch? Es wär ungünstig wenn die Extension einmal nicht mehr laufen sollte und ich mein Script verliere. Sollte es nicht in beiden sichtbar sein? Was bedeutet "only remote" hier und warum steht das bei den Scripten die nur in VS Code auftauchen genau nicht dabei?
Konkret: telegram, cube, operating-hours, sonoff-wvs sieht man in der Webansicht nicht:


-
Ich hab da eine Frage, Scripte die ich mit der VS Code Extension angelegt habe und auch entwickelt habe, tauchen nicht in der Webansicht auf sondern sind nur via VS Code sichtbar und editierbar. Mach ich hier etwas falsch? Es wär ungünstig wenn die Extension einmal nicht mehr laufen sollte und ich mein Script verliere. Sollte es nicht in beiden sichtbar sein? Was bedeutet "only remote" hier und warum steht das bei den Scripten die nur in VS Code auftauchen genau nicht dabei?
Konkret: telegram, cube, operating-hours, sonoff-wvs sieht man in der Webansicht nicht:


@hacki11
remote only heisst nur auf dem Iobroker nicht runtergeladen.

wenn du im ioBroker bist kannst du sie alle mit einmal runterladen oder du markierst das einzelne Script und klickst auf den Pfeil runter.
um Änderungen hochzuladend musst du hier auf den Pfeil klicken

-
@hacki11
remote only heisst nur auf dem Iobroker nicht runtergeladen.

wenn du im ioBroker bist kannst du sie alle mit einmal runterladen oder du markierst das einzelne Script und klickst auf den Pfeil runter.
um Änderungen hochzuladend musst du hier auf den Pfeil klicken

@tt-tom
Wenn du „im ioBroker“ schreibst, meinst du in der ioBroker Extension für VS Code, oder?
Mir ist trotz deiner Antwort noch nicht ganz klar, warum das Script im Web nicht sichtbar ist. Changes gibt es keine und hochgeladen ist es auch. Es läuft ja auch schon sehr lange. Das Script ist auch in der iobroker internen Json enthalten aber es taucht nur der Eintrag in dieser Webliste nicht auf. -
@tt-tom
Wenn du „im ioBroker“ schreibst, meinst du in der ioBroker Extension für VS Code, oder?
Mir ist trotz deiner Antwort noch nicht ganz klar, warum das Script im Web nicht sichtbar ist. Changes gibt es keine und hochgeladen ist es auch. Es läuft ja auch schon sehr lange. Das Script ist auch in der iobroker internen Json enthalten aber es taucht nur der Eintrag in dieser Webliste nicht auf.@hacki11 sagte in [Tester gesucht] Visual Studio Code Extension für ioBroker:
@tt-tom
Wenn du „im ioBroker“ schreibst, meinst du in der ioBroker Extension für VS Code, oder?ja
Mir ist trotz deiner Antwort noch nicht ganz klar, warum das Script im Web nicht sichtbar ist. Changes gibt es keine und hochgeladen ist es auch. Es läuft ja auch schon sehr lange. Das Script ist auch in der iobroker internen Json enthalten aber es taucht nur der Eintrag in dieser Webliste nicht auf.
das Problem hatte ich noch nie gehabt, ich habe auch die Scripte nicht unter global. Da sollten eigentlich nur Scripte liegen die auch global genutzt werden, von anderen Skripten zum Beispiel.
vielleicht ist das auch ein Bug im javascript-Adapter.
-
@hacki11 sagte in [Tester gesucht] Visual Studio Code Extension für ioBroker:
@tt-tom
Wenn du „im ioBroker“ schreibst, meinst du in der ioBroker Extension für VS Code, oder?ja
Mir ist trotz deiner Antwort noch nicht ganz klar, warum das Script im Web nicht sichtbar ist. Changes gibt es keine und hochgeladen ist es auch. Es läuft ja auch schon sehr lange. Das Script ist auch in der iobroker internen Json enthalten aber es taucht nur der Eintrag in dieser Webliste nicht auf.
das Problem hatte ich noch nie gehabt, ich habe auch die Scripte nicht unter global. Da sollten eigentlich nur Scripte liegen die auch global genutzt werden, von anderen Skripten zum Beispiel.
vielleicht ist das auch ein Bug im javascript-Adapter.
-
@TT-Tom ok strange, es tritt eben nur bei den scripten auf die ich mit der Extension erzeugt hatte.
-
hast du die Datei über Dateien erstellt und dann über die Extension hochgeladen oder direkt in der Extension erstellt.
-
Ich habe nochmal getestet:
Variante A: Script in VS Code erstellen
-
Create Script in VS Code via ioBroker Extension

-
Script taucht 2x in Extension auf

-
Script => log("hello world");, Upload

-
Refresh, Doppelter Eintrag verschwindet

Problem: Script läuft aber in ioBroker Javascript Web Ansicht fehlt es komplett, außerdem zeigt er nicht "only remote" an
Erwartet: Script ist auch in Webansicht sichtbar
5) Script liegt lokal im Verzeichnis

Variante B: Script in ioBroker Webansicht erstellen
-

-
Script => log("hello");, Save, Run

-
Reload in VSCode Extension, Script taucht auf

-
Script in VSCode anpassen => Download; log("hello vscode"); Upload

-
Script in Webansicht verschwunden
Ich vermute bei "Download" wird es zum selben Problem wie bei Variante A. (Upload eines Scripts führt zum Verlust auf Webansicht)

Es ist also egal wo ich das Script anlege, sobald ich es einmal mit der VS Code Extension down/uploade, verschwindet es für immer aus der Webansicht - das ist hindert mich gerade die Extension zu nutzen. Aber eigentlich wär sie ja total genial, weil man auch eine gute AI Unterstützung bekommt.
-
-
Für jeden Upload wird in der iobroker objects.jsonl ein neuer Eintrag für das Script erzeugt (
script.js.create-in-web). Die verschiedenen Script Stände sind somit enthalten.Ich habe das ganze mit einem Script verglichen, dass ich über die Weboberfläche erzeugt und editiert habe. Was mir auffällit:
A) Sollte es nicht immer ein Eintrag für
script.js.create-in-websein? Der Key ist ja somit nicht mehr eindeutig.
B) Durch die Extension (?) wird"engineType": "JavaScript/js",geschrieben, wenn ich es im Webinterface anlege ist es jedochJavascript/js(kleines s).Das ist erstmal auffällig würde ich sagen.
{ "k": "script.js.create-in-web", "v": { "_id": "script.js.create-in-web", "type": "script", "common": { "name": "create-in-web", "expert": true, "engineType": "Javascript/js", "enabled": true, "engine": "system.adapter.javascript.0", "source": "log(\"hello\");", "debug": false, "verbose": false }, "native": {}, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1767103757855, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } } } { "k": "javascript.0.scriptEnabled.create-in-web", "v": { "_id": "javascript.0.scriptEnabled.create-in-web", "common": { "name": "scriptEnabled.create-in-web", "desc": "controls script activity", "type": "boolean", "write": true, "read": true, "role": "switch.active" }, "native": { "script": "script.js.create-in-web" }, "type": "state", "from": "system.adapter.javascript.0", "user": "system.user.admin", "ts": 1767103747395, "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } } } { "k": "javascript.0.scriptProblem.create-in-web", "v": { "_id": "javascript.0.scriptProblem.create-in-web", "common": { "name": "scriptProblem.create-in-web", "desc": "Script has a problem", "type": "boolean", "expert": true, "write": false, "read": true, "role": "indicator.error" }, "native": { "script": "script.js.create-in-web" }, "type": "state", "from": "system.adapter.javascript.0", "user": "system.user.admin", "ts": 1767103747549, "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } } } { "k": "script.js.create-in-web", "v": { "_id": "script.js.create-in-web", "type": "script", "common": { "name": "create-in-web", "expert": true, "engineType": "JavaScript/js", "enabled": true, "engine": "system.adapter.javascript.0", "source": "log(\"hello\");\nlog(\"hello vscode\");\n", "debug": false, "verbose": false }, "native": {}, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1767103757855, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } } } { "k": "script.js.create-in-web", "v": { "_id": "script.js.create-in-web", "type": "script", "common": { "name": "create-in-web", "expert": true, "engineType": "JavaScript/js", "enabled": true, "engine": "system.adapter.javascript.0", "source": "log(\"hello\");\nlog(\"hello vscode\");\nlog(\"hello vscode 2\");", "debug": false, "verbose": false }, "native": {}, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1767103757855, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } } }EDIT:
Bei TypeScript Scripten funktioniert es wie man es erwarten würde. Hier ist"engineType": "TypeScript/ts",mit einem großen S, sowohl via Web als auch via Extension.Kann es sein, dass du eigentlich richtigerweise ein großes S bei JavaScript verwendest aber der JavaScript Adapter leider ein kleines s?
Auffälligkeit A ist bei TypeScript identisch zu JavaScript, von daher wohl eher kein Problem.
TypeScript Beispiel
{ "k": "script.js.create-ts", "v": { "_id": "script.js.create-ts", "type": "script", "common": { "name": "create-ts", "expert": true, "engineType": "TypeScript/ts", "enabled": true, "engine": "system.adapter.javascript.0", "source": "log(\"hello ts\");", "debug": false, "verbose": false, "sourceHash": "26c190389005ce76b2c59a1f030c8ba2", "compiled": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nlog(\"hello ts\");\n" }, "native": {}, "from": "system.adapter.javascript.0", "user": "system.user.admin", "ts": 1767105349082, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } } } { "k": "javascript.0.scriptEnabled.create-ts", "v": { "_id": "javascript.0.scriptEnabled.create-ts", "common": { "name": "scriptEnabled.create-ts", "desc": "controls script activity", "type": "boolean", "write": true, "read": true, "role": "switch.active" }, "native": { "script": "script.js.create-ts" }, "type": "state", "from": "system.adapter.javascript.0", "user": "system.user.admin", "ts": 1767105325970, "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } } } { "k": "javascript.0.scriptProblem.create-ts", "v": { "_id": "javascript.0.scriptProblem.create-ts", "common": { "name": "scriptProblem.create-ts", "desc": "Script has a problem", "type": "boolean", "expert": true, "write": false, "read": true, "role": "indicator.error" }, "native": { "script": "script.js.create-ts" }, "type": "state", "from": "system.adapter.javascript.0", "user": "system.user.admin", "ts": 1767105325990, "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } } } { "k": "script.js.create-ts", "v": { "_id": "script.js.create-ts", "type": "script", "common": { "name": "create-ts", "expert": true, "engineType": "TypeScript/ts", "enabled": true, "engine": "system.adapter.javascript.0", "source": "log(\"hello ts\");\nlog(\"from vscode\");", "debug": false, "verbose": false, "sourceHash": "3bdbe4ebd04721c4e27ee4bdb6ec39c1", "compiled": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nlog(\"hello ts\");\nlog(\"from vscode\");\n" }, "native": {}, "from": "system.adapter.javascript.0", "user": "system.user.admin", "ts": 1767105380251, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } } } { "k": "script.js.create-ts", "v": { "_id": "script.js.create-ts", "type": "script", "common": { "name": "create-ts", "expert": true, "engineType": "TypeScript/ts", "enabled": true, "engine": "system.adapter.javascript.0", "source": "log(\"hello ts\");\nlog(\"from vscode\");\nlog(\"hello 2\");", "debug": false, "verbose": false, "sourceHash": "c732d88d2c7dc9380166d70b08a35cb0", "compiled": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nlog(\"hello ts\");\nlog(\"from vscode\");\nlog(\"hello 2\");\n" }, "native": {}, "from": "system.adapter.javascript.0", "user": "system.user.admin", "ts": 1767105453376, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } } } -
Ich habe nun in dem Objekt
script.js.create-in-webmanuell das s verkleinert und siehe da, es taucht in der Webansicht auf. Auffälligkeit B) war also die Ursache.
I created a Pull Request but I never developed an extension so I can't really test it unfortunately.
-
Ich habe nun in dem Objekt
script.js.create-in-webmanuell das s verkleinert und siehe da, es taucht in der Webansicht auf. Auffälligkeit B) war also die Ursache.
I created a Pull Request but I never developed an extension so I can't really test it unfortunately.
Hallo habe auch grade deine Tests bei mir noch eimal nachgezogen, bei mir ist kein Fehler erkennbar. Das S bleibt groß egal wo ich ändere und speichere. Welche Version vom javascript Adapter und VSC Extension hast du im Einsatz.
Edit: ich habe mal meine Objekte durch gesehen. ich habe beide Varianten mit groß und klein, aber alle sind immer sichtbar. Da ist noch keins verschwunden. Liegt es vielleicht daran das du alle im root-Verzeichnis hast. Bei mir liegt alles unter common/Allgemein und da in Ordner verteilt. Unter global habe ich nur eins am laufen was auch global sein muss. Die Frage ist jetzt ist es ein Bug von JS-Adapter oder von der Extension? Vielleicht kann man Matthias alias @haus-automatisierung mit ins Boot holen, er hat den Adapter mal weiterbetreut, eventuell kann er etwas zu der Problematik sagen.
-
Hallo habe auch grade deine Tests bei mir noch eimal nachgezogen, bei mir ist kein Fehler erkennbar. Das S bleibt groß egal wo ich ändere und speichere. Welche Version vom javascript Adapter und VSC Extension hast du im Einsatz.
Edit: ich habe mal meine Objekte durch gesehen. ich habe beide Varianten mit groß und klein, aber alle sind immer sichtbar. Da ist noch keins verschwunden. Liegt es vielleicht daran das du alle im root-Verzeichnis hast. Bei mir liegt alles unter common/Allgemein und da in Ordner verteilt. Unter global habe ich nur eins am laufen was auch global sein muss. Die Frage ist jetzt ist es ein Bug von JS-Adapter oder von der Extension? Vielleicht kann man Matthias alias @haus-automatisierung mit ins Boot holen, er hat den Adapter mal weiterbetreut, eventuell kann er etwas zu der Problematik sagen.
@TT-Tom
JavaScript Adapter 9.0.11
Extension 1.9.2Das S darf genau nicht groß bleiben, der Adapter erwartet ein kleines s: https://github.com/search?q=repo%3AioBroker%2FioBroker.javascript javascript%2Fjs&type=code
Hast du mit JavaScript oder TypeScript getestet?
-
@TT-Tom
JavaScript Adapter 9.0.11
Extension 1.9.2Das S darf genau nicht groß bleiben, der Adapter erwartet ein kleines s: https://github.com/search?q=repo%3AioBroker%2FioBroker.javascript javascript%2Fjs&type=code
Hast du mit JavaScript oder TypeScript getestet?
-
@TT-Tom
JavaScript Adapter 9.0.11
Extension 1.9.2Das S darf genau nicht groß bleiben, der Adapter erwartet ein kleines s: https://github.com/search?q=repo%3AioBroker%2FioBroker.javascript javascript%2Fjs&type=code
Hast du mit JavaScript oder TypeScript getestet?
@hacki11 sagte in [Tester gesucht] Visual Studio Code Extension für ioBroker:
https://github.com/search?q=repo%3AioBroker%2FioBroker.javascript javascript%2Fjs&type=code
in der type.d.ts wird es mit großen S geschrieben im Blockly auch wenn das jetzt richtig gesehen habe.