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.
  • 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
                  • nokxsN nokxs

                    @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 Offline
                    patrickbs96P Offline
                    patrickbs96
                    Developer
                    schrieb am zuletzt editiert von
                    #44

                    @nokxs Ich habe hier nochmal herumgespielt und es scheint wohl so zu sein, das der Zugriff auf andere Funktion aus den anderen Skripten nicht auf eine bestimmte Ordnerstruktur eingeschränkt werden kann ("global/**/*.js"). Das führt leider dazu, dass IntelliSense nur in den Skripten unter global funktioniert und die ioBroker Funktionen sowie die Funktionen aus den anderen Skripten anzeigt...

                    Ich bin kein Experte von VSCode, vielleicht ist es doch irgendwie möglich das richtig zu begrenzen.

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

                    So sollten die ioBroker Funktionen auch unter common funktionieren aber es werden auch alle anderen Funktionen aus den anderen Skripten angezeigt. Ein "exclude" klappt hier auch nicht, das hätte den gleichen Effekt wie mit global.

                    ScroungerS 1 Antwort Letzte Antwort
                    0
                    • patrickbs96P patrickbs96

                      @nokxs Ich habe hier nochmal herumgespielt und es scheint wohl so zu sein, das der Zugriff auf andere Funktion aus den anderen Skripten nicht auf eine bestimmte Ordnerstruktur eingeschränkt werden kann ("global/**/*.js"). Das führt leider dazu, dass IntelliSense nur in den Skripten unter global funktioniert und die ioBroker Funktionen sowie die Funktionen aus den anderen Skripten anzeigt...

                      Ich bin kein Experte von VSCode, vielleicht ist es doch irgendwie möglich das richtig zu begrenzen.

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

                      So sollten die ioBroker Funktionen auch unter common funktionieren aber es werden auch alle anderen Funktionen aus den anderen Skripten angezeigt. Ein "exclude" klappt hier auch nicht, das hätte den gleichen Effekt wie mit global.

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

                      @patrickbs96

                      "global/**/*.js" funktioniert bei mir auch nicht. Das einzige wie es mit IntelliSense bei mir klappt ist wenn ich jedes einzelne global skript unter file angebe, bsp.:

                      {
                          "files": [
                              "../helper/javascript.d.ts"
                              "global/meinSkript.js"
                          ]
                      }
                      

                      Da jedes einzelne File manuell rein zu schreiben ist natürlich ätzend. Aber du könntest das evtl. mit dem plugin doch automatisieren?

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

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

                      patrickbs96P 1 Antwort Letzte Antwort
                      0
                      • ScroungerS Scrounger

                        @patrickbs96

                        "global/**/*.js" funktioniert bei mir auch nicht. Das einzige wie es mit IntelliSense bei mir klappt ist wenn ich jedes einzelne global skript unter file angebe, bsp.:

                        {
                            "files": [
                                "../helper/javascript.d.ts"
                                "global/meinSkript.js"
                            ]
                        }
                        

                        Da jedes einzelne File manuell rein zu schreiben ist natürlich ätzend. Aber du könntest das evtl. mit dem plugin doch automatisieren?

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

                        @scrounger Verwendest du bei dir auch noch include oder exclude? Dein Vorschlag klappt bei mir nämlich nicht...

                        So sieht meine tsconfig.json aus:

                        // https://github.com/ioBroker/create-adapter/blob/master/test/baselines/adapter_JS_ESLint_TypeChecking_Spaces_SingleQuotes_Apache-2.0/tsconfig.json
                        {
                            "compileOnSave": true,
                            "compilerOptions": {
                                // do not compile anything, this file is just to configure type checking
                                "noEmit": true,
                        
                                // check JS files
                                "allowJs": true,
                                "checkJs": true,
                        
                                "module": "commonjs",
                                "moduleResolution": "node",
                                "esModuleInterop": true,
                                // this is necessary for the automatic typing of the adapter config
                                "resolveJsonModule": true,
                        
                                // Set this to false if you want to disable the very strict rules (not recommended)
                                "strict": true,
                                // Or enable some of those features for more fine-grained control
                                // "strictNullChecks": true,
                                // "strictPropertyInitialization": true,
                                // "strictBindCallApply": true,
                                "noImplicitAny": false,
                                // "noUnusedLocals": true,
                                // "noUnusedParameters": true,
                        
                                // Consider targetting es2019 or higher if you only support Node.js 12+
                                "target": "es2018",
                        
                                "typeRoots":[
                                    ".iobroker/types",
                                    "node_modules/@types"
                                ]
                            },
                            // "files": [
                            //     "global/alexaHelper.js",
                            //     "global/scriptHelper.js",
                            //     "global/smartHelper.js",
                            //     "global/telegramHelper.js",
                            //     ".iobroker/types/javascript.d.ts"
                            // ],
                            "include": [
                                "**/*.js",
                                ".iobroker/types/javascript.d.ts"
                            ],
                            "exclude": [
                                "node_modules/**"
                            ]
                        }
                        
                        ScroungerS 1 Antwort Letzte Antwort
                        0
                        • UncleSamU UncleSam

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

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

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

                          TS und einen JS "Declaration Server"

                          Das ist ein Language Server, quasi eine Instanz, die das Skript-Projekt (inklusive aller referenzierten Module und Typdefinitionen) im Speicher hält - bzw. eigentlich nur ein Wrapper um TypeScript. Mit einem TCP-Server hat das nichts zu tun.
                          Zwar verwendet VSCode unter der Haube auch einen Language Server, der ist aber nicht kompatibel mit meinem Wrapper, der primär Kompilieren ohne Festplattenzugriff im Sinn hat.

                          Ehrliche Meinung: Vom Debuggen würde ich abraten.
                          Mit JS wirds vielleicht noch irgendwie hinhauen, wobei ich nicht weiß ob das mit der Node.js VM geht (wir verwenden VM2 nicht wirklich). Spätestens bei TS, den unter der Haube kompilierten Skripten und erst recht bei den Tricksereien, die da für top-level-await und den wilden Mix aus globalen Skripten und Modulen getrieben werden, ist der Spaß endgültig vorbei.

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

                          nokxsN UncleSamU 2 Antworten Letzte Antwort
                          1
                          • AlCalzoneA AlCalzone

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

                            TS und einen JS "Declaration Server"

                            Das ist ein Language Server, quasi eine Instanz, die das Skript-Projekt (inklusive aller referenzierten Module und Typdefinitionen) im Speicher hält - bzw. eigentlich nur ein Wrapper um TypeScript. Mit einem TCP-Server hat das nichts zu tun.
                            Zwar verwendet VSCode unter der Haube auch einen Language Server, der ist aber nicht kompatibel mit meinem Wrapper, der primär Kompilieren ohne Festplattenzugriff im Sinn hat.

                            Ehrliche Meinung: Vom Debuggen würde ich abraten.
                            Mit JS wirds vielleicht noch irgendwie hinhauen, wobei ich nicht weiß ob das mit der Node.js VM geht (wir verwenden VM2 nicht wirklich). Spätestens bei TS, den unter der Haube kompilierten Skripten und erst recht bei den Tricksereien, die da für top-level-await und den wilden Mix aus globalen Skripten und Modulen getrieben werden, ist der Spaß endgültig vorbei.

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

                            @alcalzone Falls jemals das Debuggen von Skripten kommt, kommt das sehr viel später, da ich mir das auch sehr kompliziert vorstelle.

                            Ich bin jetzt gerade dabei mir die Authentifizierung über socker.io anzuschauen. Mir ist aber noch nicht ganz klar, wie das Ganze funktioniert. Wenn ich für den Benutzer admin ein Passwort setze, bekomme ich beim Connect die Fehlermeldung (mit client.on("error"), ...) Passport was not initialized und die Verbindung wird nicht aufgebaut. Bei meinem Reverse-Engineering sah es immer so aus, als muss ich eine "authenticate"-Nachricht schicken. Das funktioniert aber nicht, wenn ich keine Verbindung aufbauen kann.

                            Im Socket.Io Adapter hab ich folgendes gefunden, was mich bis jetzt aber noch nicht wirklich weiter gebracht hat:

                            • https://github.com/ioBroker/ioBroker.socketio/blob/0894573174452febec59dbb0eb5d1eee519b1b5c/example/conn.js#L311
                            • https://github.com/ioBroker/ioBroker.socketio/blob/0894573174452febec59dbb0eb5d1eee519b1b5c/example/conn.js#L1294
                            • https://github.com/ioBroker/ioBroker.socketio/blob/master/lib/socket.js#L822
                            • https://github.com/ioBroker/ioBroker.socketio/blob/master/lib/socket.js#L168

                            Kann mir jemand ein paar Hinweise in die richtige Richtung geben, damit ich nicht stundenlang Code lesen muss?

                            UncleSamU 1 Antwort Letzte Antwort
                            0
                            • nokxsN nokxs

                              @alcalzone Falls jemals das Debuggen von Skripten kommt, kommt das sehr viel später, da ich mir das auch sehr kompliziert vorstelle.

                              Ich bin jetzt gerade dabei mir die Authentifizierung über socker.io anzuschauen. Mir ist aber noch nicht ganz klar, wie das Ganze funktioniert. Wenn ich für den Benutzer admin ein Passwort setze, bekomme ich beim Connect die Fehlermeldung (mit client.on("error"), ...) Passport was not initialized und die Verbindung wird nicht aufgebaut. Bei meinem Reverse-Engineering sah es immer so aus, als muss ich eine "authenticate"-Nachricht schicken. Das funktioniert aber nicht, wenn ich keine Verbindung aufbauen kann.

                              Im Socket.Io Adapter hab ich folgendes gefunden, was mich bis jetzt aber noch nicht wirklich weiter gebracht hat:

                              • https://github.com/ioBroker/ioBroker.socketio/blob/0894573174452febec59dbb0eb5d1eee519b1b5c/example/conn.js#L311
                              • https://github.com/ioBroker/ioBroker.socketio/blob/0894573174452febec59dbb0eb5d1eee519b1b5c/example/conn.js#L1294
                              • https://github.com/ioBroker/ioBroker.socketio/blob/master/lib/socket.js#L822
                              • https://github.com/ioBroker/ioBroker.socketio/blob/master/lib/socket.js#L168

                              Kann mir jemand ein paar Hinweise in die richtige Richtung geben, damit ich nicht stundenlang Code lesen muss?

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

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

                              Kann mir jemand ein paar Hinweise in die richtige Richtung geben, damit ich nicht stundenlang Code lesen muss?

                              Da gibt es nur genau jemanden, der diesen Code versteht... leider (und nein, das bin nicht ich).

                              Hast du diesen Code mal angeschaut? https://github.com/ioBroker/adapter-react/blob/4fbe1a786048e02a0fdec78505985aadf35a4780/src/Connection.js#L148-L168
                              Der macht noch etwas mit dem flag das vom 'connect' event zurück gegeben wird.

                              Bist du ganz sicher, dass du nicht (versehentlich) schon Nachrichten verschickst, bevor das 'authenticate' durch 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

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

                                Kann mir jemand ein paar Hinweise in die richtige Richtung geben, damit ich nicht stundenlang Code lesen muss?

                                Da gibt es nur genau jemanden, der diesen Code versteht... leider (und nein, das bin nicht ich).

                                Hast du diesen Code mal angeschaut? https://github.com/ioBroker/adapter-react/blob/4fbe1a786048e02a0fdec78505985aadf35a4780/src/Connection.js#L148-L168
                                Der macht noch etwas mit dem flag das vom 'connect' event zurück gegeben wird.

                                Bist du ganz sicher, dass du nicht (versehentlich) schon Nachrichten verschickst, bevor das 'authenticate' durch ist?

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

                                @unclesam Die Stelle hatte ich noch nicht angeschaut und ich mache es genau gleich wie dort, nur das es bei mir (noch) nicht funktioniert.

                                Ich hab jetzt mal an alle Stellen, an denen ich ein emit mache, also was sende, einen Breakpoint gesetzt. Ich bekomme allerdings immer sofort die Fehlermeldung Passport was not initialized und lande niemals im connect Event.

                                Ich betreibe mal Code-Archäologie und schaue was ich finde ;-)

                                Edit: Für alle interessierten: Es gibt seit gerade eben die Version 0.7.0: https://github.com/nokxs/iobroker-javascript-vs-code-extension/releases/tag/v0.7.0

                                FeuersturmF UncleSamU 2 Antworten Letzte Antwort
                                0
                                • nokxsN nokxs

                                  @unclesam Die Stelle hatte ich noch nicht angeschaut und ich mache es genau gleich wie dort, nur das es bei mir (noch) nicht funktioniert.

                                  Ich hab jetzt mal an alle Stellen, an denen ich ein emit mache, also was sende, einen Breakpoint gesetzt. Ich bekomme allerdings immer sofort die Fehlermeldung Passport was not initialized und lande niemals im connect Event.

                                  Ich betreibe mal Code-Archäologie und schaue was ich finde ;-)

                                  Edit: Für alle interessierten: Es gibt seit gerade eben die Version 0.7.0: https://github.com/nokxs/iobroker-javascript-vs-code-extension/releases/tag/v0.7.0

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

                                  @nokxs Hab gerade die 0.7.1 installiert. Hab testweise in einem Skript mal eine console.log Ausgabe einfgefügt. Wenn ich bei VSCode Ausgabe ìobroker (all) auswähle sehe ich die Log ausgabe.
                                  Wenn ich iobroker (current script) auswähle sehe ich keine Ausgabe, nachdem das Skript gestartet wurde. Im ioBroker Log ist die Ausgabe von console.log zu sehen.

                                  nokxsN 1 Antwort Letzte Antwort
                                  0
                                  • FeuersturmF Feuersturm

                                    @nokxs Hab gerade die 0.7.1 installiert. Hab testweise in einem Skript mal eine console.log Ausgabe einfgefügt. Wenn ich bei VSCode Ausgabe ìobroker (all) auswähle sehe ich die Log ausgabe.
                                    Wenn ich iobroker (current script) auswähle sehe ich keine Ausgabe, nachdem das Skript gestartet wurde. Im ioBroker Log ist die Ausgabe von console.log zu sehen.

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

                                    @feuersturm Hast du das Skript lokal auf deiner Festplatte gehabt?

                                    FeuersturmF 1 Antwort Letzte Antwort
                                    0
                                    • nokxsN nokxs

                                      @unclesam Die Stelle hatte ich noch nicht angeschaut und ich mache es genau gleich wie dort, nur das es bei mir (noch) nicht funktioniert.

                                      Ich hab jetzt mal an alle Stellen, an denen ich ein emit mache, also was sende, einen Breakpoint gesetzt. Ich bekomme allerdings immer sofort die Fehlermeldung Passport was not initialized und lande niemals im connect Event.

                                      Ich betreibe mal Code-Archäologie und schaue was ich finde ;-)

                                      Edit: Für alle interessierten: Es gibt seit gerade eben die Version 0.7.0: https://github.com/nokxs/iobroker-javascript-vs-code-extension/releases/tag/v0.7.0

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

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

                                      Ich betreibe mal Code-Archäologie und schaue was ich finde

                                      Ich glaube, ich hab's: du verwendest den Admin socket.io. Dort wird erwartet, dass du dich über das Admin GUI einloggst. Wahrscheinlich verwendet Admin die passport Library um die Authentifizierung sicherzustellen. Da du nicht auf den 8082 wechseln kannst (siehe frühere Diskussion), musst du wohl einen Weg finden, das Auth Cookie (oder was immer es ist) selber zu erstellen.

                                      Versuche mal zuerst, das Cookie von deinem Browser zu kopieren. Wenn das geht, musst du das Beschaffen des Cookie irgendwie selber implementieren. Eventuell hilft das: https://www.npmjs.com/package/passport.socketio

                                      Oder du wartest auf Admin 5 ;-). Da wird alles anders (WebSocket statt socket.io).

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

                                      nokxsN 1 Antwort Letzte Antwort
                                      0
                                      • nokxsN nokxs

                                        @feuersturm Hast du das Skript lokal auf deiner Festplatte gehabt?

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

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

                                        @feuersturm Hast du das Skript lokal auf deiner Festplatte gehabt?

                                        Gute Frage. Werde ich prüfen.

                                        FeuersturmF 1 Antwort Letzte Antwort
                                        0
                                        • patrickbs96P patrickbs96

                                          @scrounger Verwendest du bei dir auch noch include oder exclude? Dein Vorschlag klappt bei mir nämlich nicht...

                                          So sieht meine tsconfig.json aus:

                                          // https://github.com/ioBroker/create-adapter/blob/master/test/baselines/adapter_JS_ESLint_TypeChecking_Spaces_SingleQuotes_Apache-2.0/tsconfig.json
                                          {
                                              "compileOnSave": true,
                                              "compilerOptions": {
                                                  // do not compile anything, this file is just to configure type checking
                                                  "noEmit": true,
                                          
                                                  // check JS files
                                                  "allowJs": true,
                                                  "checkJs": true,
                                          
                                                  "module": "commonjs",
                                                  "moduleResolution": "node",
                                                  "esModuleInterop": true,
                                                  // this is necessary for the automatic typing of the adapter config
                                                  "resolveJsonModule": true,
                                          
                                                  // Set this to false if you want to disable the very strict rules (not recommended)
                                                  "strict": true,
                                                  // Or enable some of those features for more fine-grained control
                                                  // "strictNullChecks": true,
                                                  // "strictPropertyInitialization": true,
                                                  // "strictBindCallApply": true,
                                                  "noImplicitAny": false,
                                                  // "noUnusedLocals": true,
                                                  // "noUnusedParameters": true,
                                          
                                                  // Consider targetting es2019 or higher if you only support Node.js 12+
                                                  "target": "es2018",
                                          
                                                  "typeRoots":[
                                                      ".iobroker/types",
                                                      "node_modules/@types"
                                                  ]
                                              },
                                              // "files": [
                                              //     "global/alexaHelper.js",
                                              //     "global/scriptHelper.js",
                                              //     "global/smartHelper.js",
                                              //     "global/telegramHelper.js",
                                              //     ".iobroker/types/javascript.d.ts"
                                              // ],
                                              "include": [
                                                  "**/*.js",
                                                  ".iobroker/types/javascript.d.ts"
                                              ],
                                              "exclude": [
                                                  "node_modules/**"
                                              ]
                                          }
                                          
                                          ScroungerS Offline
                                          ScroungerS Offline
                                          Scrounger
                                          Developer
                                          schrieb am zuletzt editiert von
                                          #55

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

                                          @scrounger Verwendest du bei dir auch noch include oder exclude? Dein Vorschlag klappt bei mir nämlich nicht...

                                          Ist schon länger her, dass ich das getestet habe und war aus dem Kopf.
                                          Hab es heute auch mal getestet und bekomm es leider auch nicht mehr ans laufen :-(

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

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

                                          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

                                          789

                                          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