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

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

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

    This topic has been deleted. Only users with topic management privileges can see it.
    • Scrounger
      Scrounger Developer @patrickbs96 last edited by

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

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

        @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/**"
            ]
        }
        
        Scrounger 1 Reply Last reply Reply Quote 0
        • AlCalzone
          AlCalzone Developer @UncleSam last edited by

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

          nokxs UncleSam 2 Replies Last reply Reply Quote 1
          • nokxs
            nokxs @AlCalzone last edited by

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

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

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

              nokxs 1 Reply Last reply Reply Quote 0
              • nokxs
                nokxs @UncleSam last edited by 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

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

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

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

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

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

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

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

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

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

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

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

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

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

                            @nokxs Das Skript liegt lokal auf der Platte. Es kommt aber keine Ausgabe bei der Auswahl ioBroker (current script)

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

                              @feuersturm Das ist bei mir auch so

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

                                @unclesam Ich werde mir das mit dem Auth Cookie bei Gelegenheit genauer anschauen. Eventuell unterstütze ich Authentifizierung dann erst mit Admin 5 😉 . Kann ich irgendwo mitverfolgen, was bei Admin 5 alles geplant ist, da ich die Extension dann sicherlich darauf anpassen muss?

                                @Feuersturm, @Gargano Danke für die Rückmeldung. Ich versuch das mal bei mir nachzuvollziehen.

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

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

                                  Kann ich irgendwo mitverfolgen, was bei Admin 5 alles geplant ist, da ich die Extension dann sicherlich darauf anpassen muss?

                                  Ja, im Quellcode... viel mehr kann ich dir leider auch nicht sagen.

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

                                    @feuersturm @Gargano Ich habe das Problem bei ioBroker (current script) gefunden: Wenn die Skripte direkt im root lagen, gab es ein Fehler. Mit der neusten Version sollte der Fehler behoben sein:

                                    https://github.com/nokxs/iobroker-javascript-vs-code-extension/releases/tag/v0.7.2

                                    Feuersturm Gargano 2 Replies Last reply Reply Quote 2
                                    • Feuersturm
                                      Feuersturm @nokxs last edited by

                                      @nokxs Hi, danke für das Update.
                                      Kann bestätigen, dass die beiden Punkte aus den Releasenotes funktionieren:

                                      • Upload command and output for current script were broken, if the scripts were in the root of the workspace
                                      • Show message in status bar after a script was uploaded successfully
                                      1 Reply Last reply Reply Quote 0
                                      • Gargano
                                        Gargano @nokxs last edited by

                                        @nokxs Eine Anzeige unter iobroker current ist jetzt da. Jedoch wenn ich mehrere Scripte offen habe und zwischen den Scripts wechsel, dann bleibt der Output vom vorherigen Script stehen.
                                        Beispiel :
                                        Script1 macht Log 'script 1'
                                        Script2 macht Log 'script 2'
                                        Wechsel ich jetzt die Ansicht zwischen Script1 und Script2 bleibt immer im Output 'script1' und 'script2'
                                        Sollte da nicht die Ansicht wechseln ?

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

                                          @gargano Das der Output stehen bleibt, ist aktuell gewollt: https://github.com/nokxs/iobroker-javascript-vs-code-extension/releases/tag/v0.7.0

                                          Das mit dem Umschalten ist etwas komplizierter, weswegen ich das erst später umsetzen werde.

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

                                            @nokxs Ich hab gerade auf die neue Version 0.8.0 aktualisiert und wollte einmal ausprobieren, ob ich ein lokal neu erstelltes Skript hochladen kann.

                                            Ich hab hier das neue Skript "Testdatei.js" angelegt:
                                            464c53df-fb40-47e9-8b30-ff61dfa72e47-grafik.png

                                            Wenn ich jetzt in das ioBroker Menü wechsel taucht dort das Skript nicht auf. Muss man dafür noch etwas machen?
                                            3da2a446-49e1-45c5-b308-5a10c865ed25-grafik.png

                                            Zweite Frage: Ist es möglich, dass die Skripte alphabetisch sortiert werden, so wie es auch im ioBroker Skripteditor gemacht wird?

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            791
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            javascript vscode
                                            18
                                            137
                                            13263
                                            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