Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. iobroker-typen einbinden für typescript

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    iobroker-typen einbinden für typescript

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

      Hallo,
      laut ChatGPT fehlen mir die iobroker-typen wie z.B. "ioBroker.Object".
      Ich soll sie mit npm installieren:

      npm install --save @types/iobroker
      

      Ich hab aber schon öfters gelesen, dass man gewisse dinge nicht einfach so per npm install installieren soll.
      Darf/soll ich das so tun wie angegeben?

      OliverIO 1 Reply Last reply Reply Quote 0
      • OliverIO
        OliverIO @iob69 last edited by OliverIO

        @iob69

        du hast nicht erwähnt in welchem umfeld du da was machst.
        einen adapter programmieren?

        dann fügst du dort lieber das packet iobroker.adapter-dev hinzu
        da sind die types dann mit dabei
        der adapter creator fügt den auch schon automatisch mit dazu.

        https://github.com/ioBroker/adapter-dev/blob/5b8fffaadca9b14a629c6e82bddc6c33c77d9554/package.json#L53

        wenn es um den javascript adapter geht, da weiß ich nicht was alles verfügbar ist. aber da sind schon einige typen da.

        ee7fb35d-d5cf-49c7-aaae-5613f5e5b577-image.png

        1 Reply Last reply Reply Quote 1
        • I
          iob69 last edited by

          @oliverio
          danke für die Antwort. Bräuchte die Typen für Typescript. Da man dort Typisiert programmieren kann und dann gleich die Objekte mit der entsprechenden Struktur ansprechen kann, rsp. muss.
          Ich stosse immer wieder auf dieses Problem, wenn ich iobroker-spezifische Typen ansprechen will.

          Wenn ich das Packet iobroker.adapter-dev hinzufügen würde, hätte ich dann die Typen in Script (Typescript)?
          Muss ich den mit npm installieren?

          mcm1957 T 2 Replies Last reply Reply Quote 0
          • mcm1957
            mcm1957 @iob69 last edited by mcm1957

            @iob69
            Du hast noch immer nicht gesagt WO du das brauchst?

            • entwickeltst du einen Adapter in Typescript?
            • oder schreibst du im java-scritp Adapter Scripts in Typescript?
            • oder ...

            Wenn ich das Packet iobroker.adapter-dev hinzufügen würde, hätte ich dann die Typen in Script (Typescript)?
            Muss ich den mit npm installieren?

            Das betrifft NUR die Adapterentwicklungsumgebung. Auf einem laufenden ioBroker System (Produktivsystem) ist adapter.dev NICHT zu instalieren.

            I 1 Reply Last reply Reply Quote 1
            • T
              ticaki Developer @iob69 last edited by

              @iob69 sagte in iobroker-typen einbinden für typescript:

              @oliverio
              danke für die Antwort. Bräuchte die Typen für Typescript. Da man dort Typisiert programmieren kann und dann gleich die Objekte mit der entsprechenden Struktur ansprechen kann, rsp. muss.
              Ich stosse immer wieder auf dieses Problem, wenn ich iobroker-spezifische Typen ansprechen will.

              Wenn ich das Packet iobroker.adapter-dev hinzufügen würde, hätte ich dann die Typen in Script (Typescript)?
              Muss ich den mit npm installieren?

              Wenns um den Javascript-Adapter geht die sind dort als iobJS enthalten. Damit kommst du an die für den Javascript-Adapter verfügbaren Types.

              I 1 Reply Last reply Reply Quote 1
              • I
                iob69 @mcm1957 last edited by

                @mcm1957
                Ich dachte das sei klar geworden. Ich hab doch geschrieben, dass ich das für Typescript brauche.
                Aber nochmals konkret: Ich schreibe im Javascript-Adapter in Typescript, aber ich schreibe keine Adapter.

                T 1 Reply Last reply Reply Quote 1
                • I
                  iob69 @ticaki last edited by

                  @ticaki
                  Danke, ich probier das mal aus.

                  1 Reply Last reply Reply Quote 0
                  • T
                    ticaki Developer @iob69 last edited by

                    @iob69 sagte in iobroker-typen einbinden für typescript:

                    @mcm1957
                    Ich dachte das sei klar geworden. Ich hab doch geschrieben, dass ich das für Typescript brauche.

                    Man schreibt auch - bzw. ich schreibe alle meine Adapter in Typescript. Daher war es dann nicht so klar wie du vielleicht dachtest 🙂

                    I 1 Reply Last reply Reply Quote 1
                    • I
                      iob69 @ticaki last edited by iob69

                      @ticaki
                      ja ok.
                      Aber spielt es denn eine Rolle, wofür ich das brauche?
                      Kann man mit dem Packet ipbroker.adapter-dev auf mehr iob - spezifische Typen zugreifen?
                      Edit:
                      ChatGPT schreibt zum Beispiel folgendes:

                      "Der Fehler tritt auf, weil TypeScript die ioBroker-Namespace nicht finden kann. Das bedeutet, dass du entweder die Typdefinitionen für ioBroker nicht eingebunden hast oder dass sie im aktuellen Projekt nicht korrekt referenziert werden.

                      Um TypeScript korrekt mit ioBroker zu verwenden, müssen die entsprechenden Typdefinitionen für die ioBroker-Objekte eingebunden werden. In deinem Fall scheint es, als ob TypeScript keine Kenntnis über den ioBroker-Namespace hat."

                      Er schlägt mir dann vor:

                      1. ioBroker-Typdefinitionen zu installieren:
                      npm install --save-dev @types/iobroker
                      
                      1. die tsconfig.json anpassen und sicherstellen, dass sie den typeRoots-Pfad enthält:
                      {
                        "compilerOptions": {
                          "module": "commonjs",
                          "target": "ES6",
                          "typeRoots": [
                            "./node_modules/@types",
                            "./node_modules"
                          ],
                          "types": ["iobroker"]
                        },
                        "include": [
                          "src/**/*.ts"
                        ]
                      }
                      
                      1. In manchen Fällen die Typen explizit importieren. Versuche, am Anfang deiner TypeScript-Datei Folgendes hinzuzufügen:
                      /// <reference types="iobroker" />
                      
                      T mcm1957 2 Replies Last reply Reply Quote 0
                      • T
                        ticaki Developer @iob69 last edited by ticaki

                        @iob69
                        Bitte kein AI geplapper - in 50% der Fälle überzeugt sie dich davon das der Himmel grün und das gras blau ist (mit Quellen natürlich).

                        Textbots brauchen immer jemanden mit Ahnung von der Materie der das Geplapper auf Sinnhaftigkeit überprüft.

                        Du bist im Javascript-Adapter und nicht nativ mit nodejs unterwegs, da kannste fast alles was die AI sagt vergessen. Hm das ist nicht ganz richtig. Bei Funktionen, Berechnungen usw. geht das. Aber sobald es um verwaltung, systemfunktionen, libs, deps geht, wird das nix.

                        EDIT: Nochmal klarer - Wenn dir eine AI vorschlägt auf Systemebene etwas zu tun um ein Problem innerhalb eines Javascript-Adapter Skripts zu beheben ist das mit 99,9% Wahrscheinlichkeit falsch und das du was wirklich kaputt machst ist wahrscheinlich.

                        Edit2: hab den AI-Rant entfernt - hat nix mit dem Thema zu tun 😄

                        I 1 Reply Last reply Reply Quote 0
                        • mcm1957
                          mcm1957 @iob69 last edited by

                          @iob69

                          ChatGPT schreibt zum Beispiel folgendes:

                          Schreib dem traschGPT zurück dass er Ka-I (ka Intelligenz) ist und @iob69 frag lieber hier wenn du was brauchst.

                          1 Reply Last reply Reply Quote 0
                          • I
                            iob69 @ticaki last edited by

                            @ticaki @mcm1957
                            Das ist ja auch der Grund, weshalb ich hier nachfrage, bevor ich was kaputt mache.
                            Aber ich weiss jetzt noch immer nicht, was ich tun muss, um die iobroker-Spezifischen Typen einzubinden, um iob spezifische Objekte anzusprechen.
                            z.B. wenn ich auf ein vis-Element zugreifen will, oder wenn ich die Ordnerstruktur der iob-Objekte untersuchen will.
                            Ok, in iobJS scheinen schon viele Elemente vorhanden zu sein, aber ich denke das ist nicht alles?

                            T 1 Reply Last reply Reply Quote 0
                            • T
                              ticaki Developer @iob69 last edited by

                              @iob69
                              Das sollte alles sein, das du verwenden kannst. Welche fehlen dir denn?

                              I 1 Reply Last reply Reply Quote 1
                              • I
                                iob69 @ticaki last edited by

                                @ticaki
                                Ok, ich versuchs mal mit damit. Muss das erst mal durchschauen.

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

                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                474
                                Online

                                32.0k
                                Users

                                80.5k
                                Topics

                                1.3m
                                Posts

                                4
                                14
                                77
                                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