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

                              846
                              Online

                              32.0k
                              Users

                              80.5k
                              Topics

                              1.3m
                              Posts

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