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.
    • 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
                    • nokxs
                      nokxs @Feuersturm last edited by

                      @Feuersturm Vielen Dank fürs schnelle Testen 👍

                      Ich sehe schon, dass ich dringend automatisierte tests brauche, damit ich nicht dauernd was kaputt mache^^

                      Ich schau mal, ob ich morgen dazu komme es zu richten.

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

                        @nokxs Das Problem lag auf meiner Seite. In der Config musst das Attribut workspaceSubPath durch scriptRoot ersetzt werden. Dies Änderung hatte ich so aus den Releasenotes nicht herausgelsen. Nachdem ich das Attribut geändert habe geht der up und download sowie das Rename.

                        Von der Idee mit den automatisierten Tests will ich dich aber nicht abhalten 😉

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

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

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

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

                              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?

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

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

                                  @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?
                                  UncleSam Scrounger Feuersturm 3 Replies Last reply Reply Quote 0
                                  • UncleSam
                                    UncleSam Developer @nokxs last edited by

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

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

                                      👍

                                      • 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

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

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

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

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

                                            @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 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            834
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

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