Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. [Tester gesucht] Visual Studio Code Extension für ioBroker

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

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

    This topic has been deleted. Only users with topic management privileges can see it.
    • nokxs
      nokxs last edited by

      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 😁) , 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

      UncleSam Feuersturm Scrounger Gargano Segway 7 Replies Last reply Reply Quote 7
      • UncleSam
        UncleSam Developer @nokxs last edited by

        @nokxs Hey, genial!

        Leider kriege ich es nicht zum laufen. Ich habe VS Code 1.52.1 unter Windows.

        Der Skript Explorer ist leer, wenn ich auf den Refresh-Button klicke, kommt: "command 'iobroker-javascript.view.scriptExplorer.refresh' not found"

        Wenn ich "ioBroker: Download all Scripts" mache, geschieht genau gar nichts.

        Im Extension Host Log sehe ich aber sehr wohl den folgenden Eintrag:

        [2021-01-07 08:09:16.353] [exthost] [info] ExtensionService#loadCommonJSModule file:///c:/Users/xxxxxxx/.vscode/extensions/nokxs.iobroker-javascript-0.5.1/dist/extension.js
        
        nokxs 1 Reply Last reply Reply Quote 0
        • nokxs
          nokxs @UncleSam last edited by nokxs

          Mit VS Code 1.52.1 sollte es prinzipiell laufen. Das sollte schon mal nicht das Problem sein.

          Ich habe die Extension gerade auf einem zweiten Rechner installiert und dort hab ich die gleichen Probleme wie du.

          Ich schau mir das heute Abend nach der Arbeit mal an und melde mich dann nochmal hier.

          UncleSam 1 Reply Last reply Reply Quote 1
          • UncleSam
            UncleSam Developer @nokxs last edited by

            @nokxs Ich vermute, dir fehlt eine Datei im Paket.

            patrickbs96 1 Reply Last reply Reply Quote 0
            • patrickbs96
              patrickbs96 Developer @UncleSam last edited by patrickbs96

              @UncleSam @nokxs Ich hatte meinerseits auch erst Probleme. Nachdem ich Git installiert hatte konnte ich die Extension konfigurieren und alle Skripte herunterladen. Soweit scheint es bei mir zu klappen.

              @nokxs Wünschenswert wäre es noch, wenn die Funktionen und Klassen aus den Globalen Skripten ergänzt werden und die richtigen Datentypen in den anderen Skripten angezeigt werden. Im Javascript Adapter wird mir das neuerdings auch automatisch angezeigt. Oder müsste das über ein Typescript ergänzt werden?

              EDIT:
              Ein upload-all wäre auch nicht schlecht, wenn an mehreren Skripten etwas geändert wird.
              Sortierung der Ordner und Skripte im Explorer wäre auch noch schön.

              1 Reply Last reply Reply Quote 0
              • Feuersturm
                Feuersturm @nokxs last edited by

                @nokxs Sehr cooles Addon. Vielen Dank dafür 🙂
                Ich konnte es bei mir installieren und es scheint zu funktionieren.

                Ich hab bisher über den JS-Adapter die Skripte über eine Pfadangabe in "Spiegeln von Skripten in den Dateipfad" gespiegelt und dann mittels sftp Plugin in VS-Code hierauf zugegriffen. Das wird dann ja mit deinem Addon hinfällig wenn ich es richtig verstehe.

                Meine Skripte versioniere ich über Git, so dass mir in meiner bisherigen Workspace Ansicht auch mit angezeigt wurde wo z.B. ein Skript modifiziert wurde.
                d0a58089-1269-41d8-a302-124bb1754666-image.png

                Wenn ich diese Information weiterhin sehen möchte muss ich zwischen den Menüeinträgen "Explorer" und "ioBroker" hin und her wechseln oder?

                Ein großer Vorteil von deinem Addon ist, dass man die Ausgaben von console.log jetzt direkt in VSCode sehen kann. Ist es technisch umsetzbar, dass man bei Ausgabe nicht nur "ioBroker (all)" auswählen kann, sondern z.B. "ioBroker (selected Script)" wo dann nur die Debugausgaben von dem Skript angezeigt werden?

                nokxs 1 Reply Last reply Reply Quote 0
                • nokxs
                  nokxs @Feuersturm last edited by

                  @UncleSam Bei der letzten Version war es noch so, dass beim initialen Laden der Extension die Verbindung gleich klappen musste. Ist diese aus irgend einem Grund fehlgeschlagen, wurde die Extension nicht richtig geladen. Hier habe ich soeben einiges verbessert: https://github.com/nokxs/iobroker-javascript-vs-code-extension/releases/tag/v0.5.2

                  Kannst du mal versuchen, ob es jetzt bei dir klappt?

                  @patrickbs96 Eigentlich braucht man kein Git für die Extension. Der erste Verbindungsaufbau war einfach etwas wackelig. Mit der neuen Version sollte es besser sein.

                  Deine Vorschläge für Features finde ich gut und habe ich in die Liste der geplanten Features aufgenommen: https://github.com/nokxs/iobroker-javascript-vs-code-extension#planned-features
                  Ein "upload all" Kommand wollte ich eigentlich direkt am Anfang machen, da es aber nicht trivial ist habe ich es erst einmal weggelassen.

                  @Feuersturm Genau, der Plan ist es solch ein Spiegel-SFTP-Konstrukt obsolet zu machen. Ich hatte auch mal so etwas verwendet, war aber nie so richtig zufrieden damit.

                  Ich versioniere meine Skripte auch per Git. Mit dem Kommando iobroker: Download all scripts (aktuell nur über die Command-Pallete verfügbar) kann man sich alle Skripte auf die Festplatte herunterladen und dann ganz normal mit Git versionieren. So mache ich es auch gerade. Aktuell muss man - wie du schon gemerkt hast - noch recht viel zwischen der FileBrowser-Tab und ioBroker-Tab hin- und herwechseln. Mein Plan ist es den Script Explorer im ioBroker-Tab so auszubauen, dass man nur noch selten wechseln muss.

                  Die Ausgabe für ioBroker (selected Script), gibt es sogar schon so halblebig im Code. Funktioniert aber noch nicht richtig und wird deswegen aktuell noch ausgeblendet. Die Ausgabe wird allerdings irgendwann in der Zukunft noch kommen.

                  Ich danke euch allen schon mal fürs Testen 👍

                  Feuersturm patrickbs96 3 Replies Last reply Reply Quote 0
                  • Feuersturm
                    Feuersturm @nokxs last edited by

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

                    Hier habe ich soeben einiges verbessert: https://github.com/nokxs/iobroker-javascript-vs-code-extension/releases/tag/v0.5.2

                    Wie kann ich am einfachsten von meiner installierten v0.5.1 auf die v.0.5.2 updaten um die neuen Versionen mitzutesten?

                    patrickbs96 1 Reply Last reply Reply Quote 0
                    • patrickbs96
                      patrickbs96 Developer @Feuersturm last edited by patrickbs96

                      @Feuersturm Bei mir wurde beim Start von VS Code automatisch aktualisiert. Schau mal ob das bei dir auch so ist 🙂

                      Feuersturm 1 Reply Last reply Reply Quote 0
                      • Feuersturm
                        Feuersturm @patrickbs96 last edited by

                        @patrickbs96 Du hast recht, ich hab jetzt auch die v0.5.2 drauf 🙂 Das nenn ich mal eine einfach Aktualisierung 🤣

                        1 Reply Last reply Reply Quote 1
                        • Feuersturm
                          Feuersturm @nokxs last edited by

                          @nokxs Bei einigen Skripten wird anscheinend die Dateiendung nicht korrekt gespeichert
                          e6c433e6-61c3-4cc3-a138-1e65c0e20667-grafik.png
                          26f8b9f0-da0c-47aa-9fb4-d33e2ffbaabc-grafik.png
                          Es fehlt das "js"
                          Aktuell sind bei mir 4 Skripte betroffen. Sonderzeichen oder Umlaute verwende ich nicht:
                          0ac2b6f1-7c87-4cae-9596-1fd350335a39-grafik.png

                          1 Reply Last reply Reply Quote 0
                          • patrickbs96
                            patrickbs96 Developer @nokxs last edited by

                            @nokxs Perfekt, danke dir schonmal 🙂
                            Ich hatte vorhin in VS Code die Extension eslint noch integriert, wie es auch bei Adaptern gemacht wird. Jetzt werden mir natürlich hunderte Fehler angezeigt, da eslint die ioBroker Befehle nicht kennt. Weißt du zufällig, wie ich die .iobroker\types\javascript.d.ts da integrieren kann?

                            UncleSam 1 Reply Last reply Reply Quote 0
                            • UncleSam
                              UncleSam Developer @patrickbs96 last edited by

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

                              Weißt du zufällig, wie ich die .iobroker\types\javascript.d.ts da integrieren kann?

                              Ich bin leider kein Spezialist für eslint (da müsstest du @AlCalzone fragen), aber hier ist ein Verzeichnis, das JavaScript mit eslint und der entsprechenden tsconfig hat, hoffe, das hilft: https://github.com/ioBroker/create-adapter/tree/master/test/baselines/adapter_JS_ESLint_TypeChecking_Spaces_SingleQuotes_Apache-2.0

                              1 Reply Last reply Reply Quote 0
                              • AlCalzone
                                AlCalzone Developer last edited by

                                Ich habe mir die Erweiterung noch nicht angezeigt, aber die .d.ts muss irgendwo ins Arbeitsverzeichnis gelegt werden, ohne dass sie als "Skript" erkannt wird.

                                1 Reply Last reply Reply Quote 0
                                • nokxs
                                  nokxs last edited by

                                  @Feuersturm Kannst du bei den Skripten, welche keine Korrekte Dateiendung haben, mal folgendes schauen:
                                  ioBroker Admin -> Object -> Expertenmodus einschalten -> Im Baum unter script.js das Fehlerhafte Skript suchen -> Objekt bearbeiten (Stift-Button) -> Raw (Nur Experten)

                                  Was steht dort bei engineType?

                                  @patrickbs96 Das mit der Integration von javascript.d.ts hatte ich mir insgesamt einfacher vorgestellt. Ich arbeite noch dran, das ordentlich zu integrieren und aktuell funktioniert es eher schlecht als recht. Eine ESLint Integration fehlt noch komplett, fände ich persönlich aber auch super. Ich wäre schon zufrieden, wenn IntelliSense zuverlässig funktioniert. Aktuell kennt VS Code bei mir manchmal die ioBroker Funktionen und kurze Zeit später wieder nicht.

                                  AlCalzone Feuersturm 2 Replies Last reply Reply Quote 0
                                  • AlCalzone
                                    AlCalzone Developer @nokxs last edited by

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

                                    kurze Zeit später wieder nicht.

                                    Wenn du in einem Skript einen Import hinzufügst?

                                    nokxs 1 Reply Last reply Reply Quote 0
                                    • nokxs
                                      nokxs @AlCalzone last edited by

                                      @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.

                                      patrickbs96 1 Reply Last reply Reply Quote 0
                                      • Feuersturm
                                        Feuersturm @nokxs last edited by Feuersturm

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

                                        ioBroker Admin -> Object -> Expertenmodus einschalten -> Im Baum unter script.js das Fehlerhafte Skript suchen -> Objekt bearbeiten (Stift-Button) -> Raw (Nur Experten)
                                        Was steht dort bei engineType?

                                        Bei den vier fehlerhaften Skripten steht folgendes:

                                        • TuerenFensterStatus: "engineType": "JavaScript/js",
                                        • ical_4_ToHtmlTable: "engineType": "JavaScript/js",
                                        • Timerscript: "engineType": "JavaScript/js",
                                        • Adapterinformationen: "engineType": "JavaScript/js",

                                        Bei den Skripten die i.O. angezeigt werden steht:

                                        • "engineType": "Javascript/js",

                                        Der Unterschied ist, dass bei den n.i.O Skripten das S in JavaScript groß geschrieben ist.

                                        nokxs 1 Reply Last reply Reply Quote 0
                                        • nokxs
                                          nokxs @Feuersturm last edited by

                                          @Feuersturm Danke fürs Raussuchen der Werte. Das Problem ist auf jeden Fall die Groß-/Kleinschreibung. Ich werde den Vergleich ändern, damit die Groß-/Kleinschreibung ignoriert wird.

                                          Feuersturm 1 Reply Last reply Reply Quote 1
                                          • Feuersturm
                                            Feuersturm @nokxs last edited by

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

                                            Danke fürs Raussuchen der Werte. Das Problem ist auf jeden Fall die Groß-/Kleinschreibung. Ich werde den Vergleich ändern, damit die Groß-/Kleinschreibung ignoriert wird.

                                            Ich hab gerade die Version 0.6.0 installiert.
                                            Die Skripte werden jetzt korrekt angezeigt 🙂

                                            Wenn ich aber jetzt ein beliebiges Skript herunterladen möchte kommt die Fehlermeldung:

                                            Fehler beim Ausführen des Befehls iobroker-javascript.download: Cannot read property 'endsWith' of undefined. Dies wird vermutlich durch die Erweiterung verursacht, die iobroker-javascript.download beiträgt.
                                            

                                            Wenn ich ein Skript umbennen möchte kommt die Fehlermeldung

                                            Fehler beim Ausführen des Befehls iobroker-javascript.view.scriptExplorer.rename: Cannot read property 'endsWith' of undefined. Dies wird vermutlich durch die Erweiterung verursacht, die iobroker-javascript.view.scriptExplorer.rename beiträgt.
                                            

                                            Ebenfalls tauchen jetzt in der Ausgabeconsole von VSCode zweimal der Eintrag "ioBroker(all)" auf.

                                            nokxs 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            284
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            javascript vscode
                                            18
                                            137
                                            13165
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo