Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Tester
  4. [Tester gesucht] Visual Studio Code Extension für ioBroker

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.6k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.1k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    2.9k

[Tester gesucht] Visual Studio Code Extension für ioBroker

Geplant Angeheftet Gesperrt Verschoben Tester
vscodejavascript
154 Beiträge 22 Kommentatoren 21.1k Aufrufe 29 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • nokxsN nokxs

    @Feuersturm In Zukunft werde ich Breaking Changes besonders kennzeichnen. Damit sind solche Änderungen hoffentlich besser erkennbar.

    Ansonsten freue ich mich natürlich, dass es doch funktioniert :blush:

    FeuersturmF Online
    FeuersturmF Online
    Feuersturm
    schrieb am zuletzt editiert von
    #24

    @nokxs Ist es technisch möglich zu erkennen, ob sich das Skript in VSCode im Gegensatz zu dem was in ioBroker liegt unterscheidet? Wenn dies möglich ist, könnte ein kleines Icon anzeigen, welches dies anzeigt, so dass später weiß, welches Skript man noch hochladen sollte, wenn man an mehreren Skripten parallel arbeitet.

    1 Antwort Letzte Antwort
    0
    • UncleSamU Offline
      UncleSamU Offline
      UncleSam
      Developer
      schrieb am zuletzt editiert von
      #25

      Die Extension habe ich noch nicht fertig eingerichtet. Ich habe nun in jedem Workspace (der nichts mit ioBroker zu tun hat) irgendwie das Problem, dass er mir die Konfiguration anlegen will. Kannst du das irgendwie umstellen, dass es zumindest erst geschieht, wenn man auf den "Tab" wechselt. Und vielleicht auch dann noch fragt, oder man sogar explizit sagen muss, dass er die Konfiguration anlegen soll?

      Bitte bei Problemen mit meinen Adaptern, Issue auf GitHub erfassen: Loxone | I2C | Luxtronik2
      ♡-lichen Dank an meine Sponsoren

      1 Antwort Letzte Antwort
      0
      • nokxsN nokxs

        Visual Studio Extension 'ioBroker.javascript'

        Ich habe eine Visual Studio Code (VS Code) Extension geschrieben um Skripte für den javascript Adapter entwickeln zu können:

        extension

        Hintergrund
        In meiner ioBroker Installation habe ich inzwischen viele Javascript/Typescript-Skripte, welche ich schon länger in VS Code schreibe, mit Git versioniere und seither bei jeder Änderung von Hand in das Webinterface kopiert habe. Um mir die Skriptentwicklung etwas zu vereinfachen (und weil ich einfach mal eine VS Code Extension schreiben wollte :grin:) , habe ich die letzten Tage die hier vorgestellte Extension entwickelt.

        Wie installiere ich die Extension?
        Die Extension ist im Marketplace zu finden und kann wie jede andere VS Code Extension auch direkt über VS Code installiert werden: Link zur Extension

        Gibt es eine Dokumentation?
        Ja, aber nur auf Englisch: Dokumentation

        Ich habe einen Fehler gefunden
        Am besten direkt einen Issue in GitHub schreiben. Alternativ hier im Thread antworten.

        Das hier ist die erste Version, die ich veröffentliche und ich habe noch einige Ideen, die ich gerne umsetzen möchte.

        Ich freue mich über Feedback und Anregungen.

        Zum Schluss nochmal die wichtigen Links:
        VS Code Marketplace: https://marketplace.visualstudio.com/items?itemName=nokxs.iobroker-javascript
        GitHub: https://github.com/nokxs/iobroker-javascript-vs-code-extension

        ScroungerS Offline
        ScroungerS Offline
        Scrounger
        Developer
        schrieb am zuletzt editiert von
        #26

        @nokxs

        Erstmal vielen Dank für das Plugin, super idee.
        Hab jetzt auch mal getestet und gleich paar Fragen:

        • wie oder wo kann ich user und pw angeben?
        • scriptRoot was muss ich hier angeben, dass Verzeichnis, wo der JS-Adapter die Skripte hin spiegelt? Ich hatte es so verstanden, dass du direkt aus dem system.adapter.javascript.x Objekt die Skripte holste oder?
        • Wenn ich das Skript speichere, wird das dann automatisch synchronisiert oder muss ich jedes mal manuel uploaden?

        <a href="https://github.com/Scrounger/ioBroker.linkeddevices">LinkedDevices Adapter</a>

        <a href="https://github.com/Scrounger/ioBroker.vis-materialdesign">Material Design Widgets</a>

        nokxsN 1 Antwort Letzte Antwort
        0
        • ScroungerS Scrounger

          @nokxs

          Erstmal vielen Dank für das Plugin, super idee.
          Hab jetzt auch mal getestet und gleich paar Fragen:

          • wie oder wo kann ich user und pw angeben?
          • scriptRoot was muss ich hier angeben, dass Verzeichnis, wo der JS-Adapter die Skripte hin spiegelt? Ich hatte es so verstanden, dass du direkt aus dem system.adapter.javascript.x Objekt die Skripte holste oder?
          • Wenn ich das Skript speichere, wird das dann automatisch synchronisiert oder muss ich jedes mal manuel uploaden?
          nokxsN Offline
          nokxsN Offline
          nokxs
          schrieb am zuletzt editiert von
          #27

          @Feuersturm Ja, das ist prinzipiell möglich, aber nicht ganz trivial. Ich werde das in die Liste möglicher Features aufnehmen.

          @UncleSam Mit der neusten Version der Extension (0.6.0) sollte das nicht mehr so sein. Hier schaue ich, ob eine .iobroker-config.json gefunden werden kann. Wenn ja, wird eine Verbindung aufgebaut, wenn nein, dann muss man aktuell manuell das Kommando iobroker: Connect to ioBroker aufrufen. Hast du mit der 0.6.0 auch das von dir beschriebene Verhalten?

          @Scrounger Danke fürs Testen und hier die Antworten zu deinen Fragen:

          • Passwortgeschützte ioBroker Installation werden aktuell noch nicht unterstützt. Das werde ich aber zeitnah umsetzen
          • scriptRoot: Das ist der relative Pfad (relativ zu deinem Workspace) auf deiner Festplatte wo die Skripte hingespiegelt werden. Der Standard ist hier /, also direkt in dein Workspace Verzeichnis. Gibst du hier z.B. /test/ an, werde alle Skripte in den Unterordner test in deinem Workspace abgelegt. Geholt werden die Skripte direkt von den Objekte aus script.js.
          • Es wird beim Speichern NICHT automatisch synchronosiert, sprich man muss jedes mal manuell uploaden. Ich könnte dieses Verhalten konfigurierbar machen, sodass bei jedem Speichern das Skript direkt hochgeladen wird. Würde dir das helfen?
          UncleSamU ScroungerS FeuersturmF 3 Antworten Letzte Antwort
          0
          • nokxsN nokxs

            @Feuersturm Ja, das ist prinzipiell möglich, aber nicht ganz trivial. Ich werde das in die Liste möglicher Features aufnehmen.

            @UncleSam Mit der neusten Version der Extension (0.6.0) sollte das nicht mehr so sein. Hier schaue ich, ob eine .iobroker-config.json gefunden werden kann. Wenn ja, wird eine Verbindung aufgebaut, wenn nein, dann muss man aktuell manuell das Kommando iobroker: Connect to ioBroker aufrufen. Hast du mit der 0.6.0 auch das von dir beschriebene Verhalten?

            @Scrounger Danke fürs Testen und hier die Antworten zu deinen Fragen:

            • Passwortgeschützte ioBroker Installation werden aktuell noch nicht unterstützt. Das werde ich aber zeitnah umsetzen
            • scriptRoot: Das ist der relative Pfad (relativ zu deinem Workspace) auf deiner Festplatte wo die Skripte hingespiegelt werden. Der Standard ist hier /, also direkt in dein Workspace Verzeichnis. Gibst du hier z.B. /test/ an, werde alle Skripte in den Unterordner test in deinem Workspace abgelegt. Geholt werden die Skripte direkt von den Objekte aus script.js.
            • Es wird beim Speichern NICHT automatisch synchronosiert, sprich man muss jedes mal manuell uploaden. Ich könnte dieses Verhalten konfigurierbar machen, sodass bei jedem Speichern das Skript direkt hochgeladen wird. Würde dir das helfen?
            UncleSamU Offline
            UncleSamU Offline
            UncleSam
            Developer
            schrieb am zuletzt editiert von
            #28

            @nokxs sagte in [Tester gesucht] Visual Studio Code Extension für ioBroker:

            @UncleSam Mit der neusten Version der Extension (0.6.0) sollte das nicht mehr so sein. Hier schaue ich, ob eine .iobroker-config.json gefunden werden kann. Wenn ja, wird eine Verbindung aufgebaut, wenn nein, dann muss man aktuell manuell das Kommando iobroker: Connect to ioBroker aufrufen. Hast du mit der 0.6.0 auch das von dir beschriebene Verhalten?

            Ist behoben mit 0.6.0, danke für die super Arbeit!

            Ein Vorschlag noch: im "Setup" Prozess ist etwas verwirrend, dass er zuerst nach http://localhost fragt, und dann nach dem Port. Ich hätte das entweder in drei Schritte getrennt (http, localhost und 8081) oder ganz zusammen genommen (http://localhost:8081).

            Bitte bei Problemen mit meinen Adaptern, Issue auf GitHub erfassen: Loxone | I2C | Luxtronik2
            ♡-lichen Dank an meine Sponsoren

            1 Antwort Letzte Antwort
            0
            • nokxsN nokxs

              @Feuersturm Ja, das ist prinzipiell möglich, aber nicht ganz trivial. Ich werde das in die Liste möglicher Features aufnehmen.

              @UncleSam Mit der neusten Version der Extension (0.6.0) sollte das nicht mehr so sein. Hier schaue ich, ob eine .iobroker-config.json gefunden werden kann. Wenn ja, wird eine Verbindung aufgebaut, wenn nein, dann muss man aktuell manuell das Kommando iobroker: Connect to ioBroker aufrufen. Hast du mit der 0.6.0 auch das von dir beschriebene Verhalten?

              @Scrounger Danke fürs Testen und hier die Antworten zu deinen Fragen:

              • Passwortgeschützte ioBroker Installation werden aktuell noch nicht unterstützt. Das werde ich aber zeitnah umsetzen
              • scriptRoot: Das ist der relative Pfad (relativ zu deinem Workspace) auf deiner Festplatte wo die Skripte hingespiegelt werden. Der Standard ist hier /, also direkt in dein Workspace Verzeichnis. Gibst du hier z.B. /test/ an, werde alle Skripte in den Unterordner test in deinem Workspace abgelegt. Geholt werden die Skripte direkt von den Objekte aus script.js.
              • Es wird beim Speichern NICHT automatisch synchronosiert, sprich man muss jedes mal manuell uploaden. Ich könnte dieses Verhalten konfigurierbar machen, sodass bei jedem Speichern das Skript direkt hochgeladen wird. Würde dir das helfen?
              ScroungerS Offline
              ScroungerS Offline
              Scrounger
              Developer
              schrieb am zuletzt editiert von Scrounger
              #29

              @nokxs sagte in [Tester gesucht] Visual Studio Code Extension für ioBroker:

              • Passwortgeschützte ioBroker Installation werden aktuell noch nicht unterstützt. Das werde ich aber zeitnah umsetzen

              :+1:

              • scriptRoot: Das ist der relative Pfad (relativ zu deinem Workspace) auf deiner Festplatte wo die Skripte hingespiegelt werden. Der Standard ist hier /, also direkt in dein Workspace Verzeichnis. Gibst du hier z.B. /test/ an, werde alle Skripte in den Unterordner test in deinem Workspace abgelegt. Geholt werden die Skripte direkt von den Objekte aus script.js.

              Thx für die Erläuterung.

              • Es wird beim Speichern NICHT automatisch synchronosiert, sprich man muss jedes mal manuell uploaden. Ich könnte dieses Verhalten konfigurierbar machen, sodass bei jedem Speichern das Skript direkt hochgeladen wird. Würde dir das helfen?

              Ja das wäre super praktisch.
              Aber wie wird das geregelt, meines wissen nach wird wenn du etwas im system.adapter.javascript.x Objekt änderst, wird die komplette instanz neu gestartet. Das wäre in dem Fall dann kontraproduktiv

              <a href="https://github.com/Scrounger/ioBroker.linkeddevices">LinkedDevices Adapter</a>

              <a href="https://github.com/Scrounger/ioBroker.vis-materialdesign">Material Design Widgets</a>

              GarganoG 1 Antwort Letzte Antwort
              0
              • nokxsN nokxs

                @AlCalzone Was sehr zuverlässig funktioniert ist, wenn ich in einem Skript in der ersten Zeile mit /// <reference path="../.iobroker/types/javascript.d.ts" /> die Definition referenziere. Ich will nach Möglichkeit aber vermeiden, dass ich das in jedem Skript habe. Außerdem muss dann der Pfad gepflegt werden.

                patrickbs96P Offline
                patrickbs96P Offline
                patrickbs96
                Developer
                schrieb am zuletzt editiert von patrickbs96
                #30

                @nokxs Probier mal folgendes, bei mir scheint das zu klappen. Ergänze in der tsconfig.json die folgenden Zeilen in den compilerOptions.

                    "include": [
                        "global/**/*.js",
                        ".iobroker/types/javascript.d.ts"
                    ],
                

                EDIT: Fehlalarm, ich hatte die dummy.ts geöffnet. Deshalb hat es geklappt...
                EDIT2: So scheint es jetzt bei mir zu klappen. Mit dem "global/**/*.js" können alle Skripte die unter global liegen aufeinander verweisen. Der Zugriff von common aus scheint so aber leider nicht zu klappen.

                AlCalzoneA 1 Antwort Letzte Antwort
                0
                • patrickbs96P patrickbs96

                  @nokxs Probier mal folgendes, bei mir scheint das zu klappen. Ergänze in der tsconfig.json die folgenden Zeilen in den compilerOptions.

                      "include": [
                          "global/**/*.js",
                          ".iobroker/types/javascript.d.ts"
                      ],
                  

                  EDIT: Fehlalarm, ich hatte die dummy.ts geöffnet. Deshalb hat es geklappt...
                  EDIT2: So scheint es jetzt bei mir zu klappen. Mit dem "global/**/*.js" können alle Skripte die unter global liegen aufeinander verweisen. Der Zugriff von common aus scheint so aber leider nicht zu klappen.

                  AlCalzoneA Offline
                  AlCalzoneA Offline
                  AlCalzone
                  Developer
                  schrieb am zuletzt editiert von
                  #31

                  @patrickbs96 Ich fürchte du wirst in die gleichen Probleme laufen wie ich mit den globalen Skripten und vor kurzem dem Top-Level-Await-Support.

                  So wie ioBroker seine Skripte verwendet (nicht-Module, die import verwenden; Module, die den Scope mit nicht-Modulen teilen, etc...), versteht TypeScript bzw. der Editor nicht ohne Nachhilfe. Da musste ich relativ viel mit generierten Exports tricksen.
                  Damit du einen Eindruck bekommst, hier ein paar PRs:
                  https://github.com/ioBroker/ioBroker.javascript/pulls?page=2&q=is%3Apr+is%3Aclosed+author%3AAlCalzone

                  Mit dem "global/**/*.js" können alle Skripte die unter global liegen aufeinander verweisen.

                  Geht das noch, wenn hier import genutzt wird?

                  Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                  UncleSamU 1 Antwort Letzte Antwort
                  0
                  • nokxsN nokxs

                    @Feuersturm Ja, das ist prinzipiell möglich, aber nicht ganz trivial. Ich werde das in die Liste möglicher Features aufnehmen.

                    @UncleSam Mit der neusten Version der Extension (0.6.0) sollte das nicht mehr so sein. Hier schaue ich, ob eine .iobroker-config.json gefunden werden kann. Wenn ja, wird eine Verbindung aufgebaut, wenn nein, dann muss man aktuell manuell das Kommando iobroker: Connect to ioBroker aufrufen. Hast du mit der 0.6.0 auch das von dir beschriebene Verhalten?

                    @Scrounger Danke fürs Testen und hier die Antworten zu deinen Fragen:

                    • Passwortgeschützte ioBroker Installation werden aktuell noch nicht unterstützt. Das werde ich aber zeitnah umsetzen
                    • scriptRoot: Das ist der relative Pfad (relativ zu deinem Workspace) auf deiner Festplatte wo die Skripte hingespiegelt werden. Der Standard ist hier /, also direkt in dein Workspace Verzeichnis. Gibst du hier z.B. /test/ an, werde alle Skripte in den Unterordner test in deinem Workspace abgelegt. Geholt werden die Skripte direkt von den Objekte aus script.js.
                    • Es wird beim Speichern NICHT automatisch synchronosiert, sprich man muss jedes mal manuell uploaden. Ich könnte dieses Verhalten konfigurierbar machen, sodass bei jedem Speichern das Skript direkt hochgeladen wird. Würde dir das helfen?
                    FeuersturmF Online
                    FeuersturmF Online
                    Feuersturm
                    schrieb am zuletzt editiert von
                    #32

                    @nokxs sagte in [Tester gesucht] Visual Studio Code Extension für ioBroker:

                    Es wird beim Speichern NICHT automatisch synchronosiert, sprich man muss jedes mal manuell uploaden. Ich könnte dieses Verhalten konfigurierbar machen, sodass bei jedem Speichern das Skript direkt hochgeladen wird. Würde dir das helfen?

                    Ich fände dieses Feature auch super. mit sftp hatte ich das gleiche Verhalten, dass bei jedem speichern, auch das Skript in ioBroker aktualisiert wurde. Wenn es sich umsezten lässt (gerne auch konfigurierbar) würde ich mich freuen.

                    1 Antwort Letzte Antwort
                    0
                    • C Offline
                      C Offline
                      creatsher
                      schrieb am zuletzt editiert von
                      #33

                      Moin,

                      ich habe per Suchen-Funktion nichts gefunden und hier scheint mir der beste Platz zu sein.
                      Ich würde gerne ohne das Plugin zu nutzen (ich nutze SSH-Remote) trotzdem IntelliSense mit den ioBroker-Objekten nutzen wollen.
                      Ich bin normal nicht zu blöd für Google, aber ich bin neu in VSCode und finde auf gedeih und verderb nicht, wo ich die javascript.d.ts einfügen/konfigurieren muss damit das klappt...
                      Kann mir hier jemand helfen, auch wenn es nicht s mit dem Plugin direkt zu tun hat?

                      UncleSamU 1 Antwort Letzte Antwort
                      0
                      • C creatsher

                        Moin,

                        ich habe per Suchen-Funktion nichts gefunden und hier scheint mir der beste Platz zu sein.
                        Ich würde gerne ohne das Plugin zu nutzen (ich nutze SSH-Remote) trotzdem IntelliSense mit den ioBroker-Objekten nutzen wollen.
                        Ich bin normal nicht zu blöd für Google, aber ich bin neu in VSCode und finde auf gedeih und verderb nicht, wo ich die javascript.d.ts einfügen/konfigurieren muss damit das klappt...
                        Kann mir hier jemand helfen, auch wenn es nicht s mit dem Plugin direkt zu tun hat?

                        UncleSamU Offline
                        UncleSamU Offline
                        UncleSam
                        Developer
                        schrieb am zuletzt editiert von UncleSam
                        #34

                        @creatsher Versuch es mal mit einer tsconfig.json:

                        {"include":["**/*",".iobroker/dummy.ts"],"compilerOptions":{"typeRoots":["./.iobroker/types"]}}
                        

                        Und folgender Directory-Struktur:

                        /
                           tsconfig.json
                           .iobroker
                              dummy.ts (leere Datei)
                              types
                                 javascript.d.ts <-- dies ist die Datei
                        

                        So macht es diese Extension.

                        Aber @nokxs, es wäre wäre schon cool, wenn deine Extension auch mit Remote SSH funktionieren würde. Ich weiss nicht genau, was es dafür alles braucht, aber sicherlich musst du sagen, dass Teile deiner Extension auf dem "Server" laufen. Edit: vergiss es, mit Remote SSH arbeitet man ja direkt auf dem ioBroker System, dann braucht man die Synchronisation nicht mehr - die macht ja dann der JS Adapter.

                        Bitte bei Problemen mit meinen Adaptern, Issue auf GitHub erfassen: Loxone | I2C | Luxtronik2
                        ♡-lichen Dank an meine Sponsoren

                        C 1 Antwort Letzte Antwort
                        0
                        • UncleSamU UncleSam

                          @creatsher Versuch es mal mit einer tsconfig.json:

                          {"include":["**/*",".iobroker/dummy.ts"],"compilerOptions":{"typeRoots":["./.iobroker/types"]}}
                          

                          Und folgender Directory-Struktur:

                          /
                             tsconfig.json
                             .iobroker
                                dummy.ts (leere Datei)
                                types
                                   javascript.d.ts <-- dies ist die Datei
                          

                          So macht es diese Extension.

                          Aber @nokxs, es wäre wäre schon cool, wenn deine Extension auch mit Remote SSH funktionieren würde. Ich weiss nicht genau, was es dafür alles braucht, aber sicherlich musst du sagen, dass Teile deiner Extension auf dem "Server" laufen. Edit: vergiss es, mit Remote SSH arbeitet man ja direkt auf dem ioBroker System, dann braucht man die Synchronisation nicht mehr - die macht ja dann der JS Adapter.

                          C Offline
                          C Offline
                          creatsher
                          schrieb am zuletzt editiert von creatsher
                          #35

                          @unclesam ich muss gestehen, ich versteh nur Bahnhof!? irgendwas mit ner tsconfig.json hatte ich schon gefunden, aber wie ich wo was anlegen muss, da bin ich ernsthaft überfragt.

                          Also welcher Ordner ist bei dir "/" ?
                          Du wirst ja wohl kaum meinen Sever-Root meinen!?

                          UncleSamU 1 Antwort Letzte Antwort
                          0
                          • C creatsher

                            @unclesam ich muss gestehen, ich versteh nur Bahnhof!? irgendwas mit ner tsconfig.json hatte ich schon gefunden, aber wie ich wo was anlegen muss, da bin ich ernsthaft überfragt.

                            Also welcher Ordner ist bei dir "/" ?
                            Du wirst ja wohl kaum meinen Sever-Root meinen!?

                            UncleSamU Offline
                            UncleSamU Offline
                            UncleSam
                            Developer
                            schrieb am zuletzt editiert von
                            #36

                            @creatsher said in [Tester gesucht] Visual Studio Code Extension für ioBroker:

                            Also welcher Ordner ist bei dir "/" ?
                            Du wirst ja wohl kaum meinen Sever-Root meinen!?

                            Dein Projektverzeichnis, wo du die Skripte hast. Oder eins höher, oder noch höher... Am besten das Root deines VS Code Workspaces.

                            Bitte bei Problemen mit meinen Adaptern, Issue auf GitHub erfassen: Loxone | I2C | Luxtronik2
                            ♡-lichen Dank an meine Sponsoren

                            C 1 Antwort Letzte Antwort
                            0
                            • UncleSamU UncleSam

                              @creatsher said in [Tester gesucht] Visual Studio Code Extension für ioBroker:

                              Also welcher Ordner ist bei dir "/" ?
                              Du wirst ja wohl kaum meinen Sever-Root meinen!?

                              Dein Projektverzeichnis, wo du die Skripte hast. Oder eins höher, oder noch höher... Am besten das Root deines VS Code Workspaces.

                              C Offline
                              C Offline
                              creatsher
                              schrieb am zuletzt editiert von
                              #37

                              @unclesam aaaah jetzt hab ich's begriffen, vielen Dank. Manchmal denke ich einfach viel zu kompliziert...

                              1 Antwort Letzte Antwort
                              1
                              • nokxsN nokxs

                                Visual Studio Extension 'ioBroker.javascript'

                                Ich habe eine Visual Studio Code (VS Code) Extension geschrieben um Skripte für den javascript Adapter entwickeln zu können:

                                extension

                                Hintergrund
                                In meiner ioBroker Installation habe ich inzwischen viele Javascript/Typescript-Skripte, welche ich schon länger in VS Code schreibe, mit Git versioniere und seither bei jeder Änderung von Hand in das Webinterface kopiert habe. Um mir die Skriptentwicklung etwas zu vereinfachen (und weil ich einfach mal eine VS Code Extension schreiben wollte :grin:) , habe ich die letzten Tage die hier vorgestellte Extension entwickelt.

                                Wie installiere ich die Extension?
                                Die Extension ist im Marketplace zu finden und kann wie jede andere VS Code Extension auch direkt über VS Code installiert werden: Link zur Extension

                                Gibt es eine Dokumentation?
                                Ja, aber nur auf Englisch: Dokumentation

                                Ich habe einen Fehler gefunden
                                Am besten direkt einen Issue in GitHub schreiben. Alternativ hier im Thread antworten.

                                Das hier ist die erste Version, die ich veröffentliche und ich habe noch einige Ideen, die ich gerne umsetzen möchte.

                                Ich freue mich über Feedback und Anregungen.

                                Zum Schluss nochmal die wichtigen Links:
                                VS Code Marketplace: https://marketplace.visualstudio.com/items?itemName=nokxs.iobroker-javascript
                                GitHub: https://github.com/nokxs/iobroker-javascript-vs-code-extension

                                GarganoG Offline
                                GarganoG Offline
                                Gargano
                                schrieb am zuletzt editiert von
                                #38

                                @nokxs Klasse , hat auf Anhieb funktioniert.
                                In der Anzeige vom IOBroker Script Editor werden auch die Instanzen angezeigt. Ist es im Visual Studio Code Extension auch machbar ?
                                2606bd8b-8650-43f7-99a6-2a523f0fa649-grafik.png

                                1 Antwort Letzte Antwort
                                0
                                • ScroungerS Scrounger

                                  @nokxs sagte in [Tester gesucht] Visual Studio Code Extension für ioBroker:

                                  • Passwortgeschützte ioBroker Installation werden aktuell noch nicht unterstützt. Das werde ich aber zeitnah umsetzen

                                  :+1:

                                  • scriptRoot: Das ist der relative Pfad (relativ zu deinem Workspace) auf deiner Festplatte wo die Skripte hingespiegelt werden. Der Standard ist hier /, also direkt in dein Workspace Verzeichnis. Gibst du hier z.B. /test/ an, werde alle Skripte in den Unterordner test in deinem Workspace abgelegt. Geholt werden die Skripte direkt von den Objekte aus script.js.

                                  Thx für die Erläuterung.

                                  • Es wird beim Speichern NICHT automatisch synchronosiert, sprich man muss jedes mal manuell uploaden. Ich könnte dieses Verhalten konfigurierbar machen, sodass bei jedem Speichern das Skript direkt hochgeladen wird. Würde dir das helfen?

                                  Ja das wäre super praktisch.
                                  Aber wie wird das geregelt, meines wissen nach wird wenn du etwas im system.adapter.javascript.x Objekt änderst, wird die komplette instanz neu gestartet. Das wäre in dem Fall dann kontraproduktiv

                                  GarganoG Offline
                                  GarganoG Offline
                                  Gargano
                                  schrieb am zuletzt editiert von
                                  #39

                                  @scrounger Ich habs garde mal probiert. Ein Hochladen führt nicht zum Restart der JS Instanz, wohl aber zum Restart des Scripts. Genauso wie auch im IOBroker Script Editor.

                                  AutoUpLoad beim Save dann bitte konfigurierbar.

                                  UncleSamU 1 Antwort Letzte Antwort
                                  0
                                  • nokxsN nokxs

                                    Visual Studio Extension 'ioBroker.javascript'

                                    Ich habe eine Visual Studio Code (VS Code) Extension geschrieben um Skripte für den javascript Adapter entwickeln zu können:

                                    extension

                                    Hintergrund
                                    In meiner ioBroker Installation habe ich inzwischen viele Javascript/Typescript-Skripte, welche ich schon länger in VS Code schreibe, mit Git versioniere und seither bei jeder Änderung von Hand in das Webinterface kopiert habe. Um mir die Skriptentwicklung etwas zu vereinfachen (und weil ich einfach mal eine VS Code Extension schreiben wollte :grin:) , habe ich die letzten Tage die hier vorgestellte Extension entwickelt.

                                    Wie installiere ich die Extension?
                                    Die Extension ist im Marketplace zu finden und kann wie jede andere VS Code Extension auch direkt über VS Code installiert werden: Link zur Extension

                                    Gibt es eine Dokumentation?
                                    Ja, aber nur auf Englisch: Dokumentation

                                    Ich habe einen Fehler gefunden
                                    Am besten direkt einen Issue in GitHub schreiben. Alternativ hier im Thread antworten.

                                    Das hier ist die erste Version, die ich veröffentliche und ich habe noch einige Ideen, die ich gerne umsetzen möchte.

                                    Ich freue mich über Feedback und Anregungen.

                                    Zum Schluss nochmal die wichtigen Links:
                                    VS Code Marketplace: https://marketplace.visualstudio.com/items?itemName=nokxs.iobroker-javascript
                                    GitHub: https://github.com/nokxs/iobroker-javascript-vs-code-extension

                                    GarganoG Offline
                                    GarganoG Offline
                                    Gargano
                                    schrieb am zuletzt editiert von
                                    #40

                                    @nokxs Gibt es die Möglichkeit Haltepunkte zu setzen ?

                                    1 Antwort Letzte Antwort
                                    0
                                    • GarganoG Gargano

                                      @scrounger Ich habs garde mal probiert. Ein Hochladen führt nicht zum Restart der JS Instanz, wohl aber zum Restart des Scripts. Genauso wie auch im IOBroker Script Editor.

                                      AutoUpLoad beim Save dann bitte konfigurierbar.

                                      UncleSamU Offline
                                      UncleSamU Offline
                                      UncleSam
                                      Developer
                                      schrieb am zuletzt editiert von
                                      #41

                                      @gargano said in [Tester gesucht] Visual Studio Code Extension für ioBroker:

                                      AutoUpLoad beim Save dann bitte konfigurierbar.

                                      Ja, finde ich eine gute Idee.

                                      @gargano said in [Tester gesucht] Visual Studio Code Extension für ioBroker:

                                      Gibt es die Möglichkeit Haltepunkte zu setzen ?

                                      Jetzt wird's aber richtig fancy! Das wäre natürlich genial, gerade für kompliziertere Skripts. Allerdings weiss ich als Entwickler auch, dass Remote Debugging nicht so trivial ist (auf beiden Seiten). Wahrscheinlich müsste man sogar den Skript Adapter mit dem Debugger eingeschaltet starten (was mit der iobroker Kommandozeile möglich wäre, aber natürlich nicht so schön ist).

                                      Bitte bei Problemen mit meinen Adaptern, Issue auf GitHub erfassen: Loxone | I2C | Luxtronik2
                                      ♡-lichen Dank an meine Sponsoren

                                      nokxsN 1 Antwort Letzte Antwort
                                      0
                                      • UncleSamU UncleSam

                                        @gargano said in [Tester gesucht] Visual Studio Code Extension für ioBroker:

                                        AutoUpLoad beim Save dann bitte konfigurierbar.

                                        Ja, finde ich eine gute Idee.

                                        @gargano said in [Tester gesucht] Visual Studio Code Extension für ioBroker:

                                        Gibt es die Möglichkeit Haltepunkte zu setzen ?

                                        Jetzt wird's aber richtig fancy! Das wäre natürlich genial, gerade für kompliziertere Skripts. Allerdings weiss ich als Entwickler auch, dass Remote Debugging nicht so trivial ist (auf beiden Seiten). Wahrscheinlich müsste man sogar den Skript Adapter mit dem Debugger eingeschaltet starten (was mit der iobroker Kommandozeile möglich wäre, aber natürlich nicht so schön ist).

                                        nokxsN Offline
                                        nokxsN Offline
                                        nokxs
                                        schrieb am zuletzt editiert von
                                        #42

                                        @patrickbs96 Ich probiere später mal deinen Vorschlag mit der tsconfig.json. Mal schauen, ob das zufriedenstellender läuft als meine bisherigen Tests ;-)

                                        @Feuersturm & @Scrounger Ich werde den konfigurierbaren Auto-Upload von Skripten demnächst mal angehen. Das Ganze stelle ich mir selber auch praktisch vor.

                                        @Gargano

                                        • list itemDie Unterstützung verschiedener JS-Instanzen steht noch auf meiner Todo-Liste. Irgendwann werde ich das auch umsetzen.
                                        • Aktuell gibt noch keine Unterstützung für Haltepunkte und ehrlich gesagt hatte ich bis jetzt auch noch nicht drüber nachgedacht. Wenn das funktionieren würde, wäre dies natürlich das Killer-Feature. Ich stelle mir das Allerdings kompliziert vor umzusetzen. Man weiß aber nie, was noch kommt ;-)
                                        patrickbs96P 1 Antwort Letzte Antwort
                                        0
                                        • AlCalzoneA AlCalzone

                                          @patrickbs96 Ich fürchte du wirst in die gleichen Probleme laufen wie ich mit den globalen Skripten und vor kurzem dem Top-Level-Await-Support.

                                          So wie ioBroker seine Skripte verwendet (nicht-Module, die import verwenden; Module, die den Scope mit nicht-Modulen teilen, etc...), versteht TypeScript bzw. der Editor nicht ohne Nachhilfe. Da musste ich relativ viel mit generierten Exports tricksen.
                                          Damit du einen Eindruck bekommst, hier ein paar PRs:
                                          https://github.com/ioBroker/ioBroker.javascript/pulls?page=2&q=is%3Apr+is%3Aclosed+author%3AAlCalzone

                                          Mit dem "global/**/*.js" können alle Skripte die unter global liegen aufeinander verweisen.

                                          Geht das noch, wenn hier import genutzt wird?

                                          UncleSamU Offline
                                          UncleSamU Offline
                                          UncleSam
                                          Developer
                                          schrieb am zuletzt editiert von UncleSam
                                          #43

                                          @alcalzone said in [Tester gesucht] Visual Studio Code Extension für ioBroker:

                                          @patrickbs96 Ich fürchte du wirst in die gleichen Probleme laufen wie ich mit den globalen Skripten und vor kurzem dem Top-Level-Await-Support.

                                          So wie ioBroker seine Skripte verwendet (nicht-Module, die import verwenden; Module, die den Scope mit nicht-Modulen teilen, etc...), versteht TypeScript bzw. der Editor nicht ohne Nachhilfe. Da musste ich relativ viel mit generierten Exports tricksen.
                                          Damit du einen Eindruck bekommst, hier ein paar PRs:
                                          https://github.com/ioBroker/ioBroker.javascript/pulls?page=2&q=is%3Apr+is%3Aclosed+author%3AAlCalzone

                                          Ich habe gerade etwas den JS Adapter Code angeschaut, und gesehen, dass es da einen TS und einen JS "Declaration Server" (tsc.Server) hat. Ist der von aussen zugänglich oder ist das Wort "Server" hier nicht als TCP Server gemeint? Falls die beiden zugänglich sind, wäre es wahrscheinlich möglich, das in diese Extension zu integrieren, oder?

                                          Und wenn ich dich @AlCalzone schon an der Leitung habe: was sind deine Gedanken zum Remote Debugging von Scripts mit der Extension? Ich sehe zwar, dass vm2 Debugging kann, aber das bedingt wohl, dass der eigentliche Prozess den Debug Socket zur Verfügung stellt, oder?

                                          Bitte bei Problemen mit meinen Adaptern, Issue auf GitHub erfassen: Loxone | I2C | Luxtronik2
                                          ♡-lichen Dank an meine Sponsoren

                                          AlCalzoneA 1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          586

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe