Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. TypeScript declarations für ioBroker

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    TypeScript declarations für ioBroker

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

      Hey zusammen,

      da ich neuerdings bevorzugt in TypeScript entwickle, und das auch für Adapter verwenden will, gibt es jetzt ein Adapter-Template in TypeScript

      https://github.com/ioBroker/ioBroker.template-ts

      Das enthält die notwendigen Dateien zur Adapter-Erstellung sowie eine Definitionsdatei ioBroker.d.ts, mit der in unterstützen IDEs Auto-Vervollständigung, Typüberprüfung und kurze Dokumentationen der Funktionen angezeigt werden.

      1 Reply Last reply Reply Quote 0
      • Bluefox
        Bluefox last edited by

        Vielleicht sogar ein template erzeugen?

        IoBroker.ts-template

        Da mit gulp/grunt die Übersetzung mitdabei?

        1 Reply Last reply Reply Quote 0
        • apollon77
          apollon77 last edited by

          Die Idee find ich cool. Am besten auch gleich noch das Adapter-Testing im TS-Style 🙂

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

            @Bluefox:

            Vielleicht sogar ein template erzeugen?

            IoBroker.ts-template `
            Klar, warum nicht! Schau ich mir übers Wochenende mal an.

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

              https://github.com/AlCalzone/ioBroker.template-ts

              Erste Version mit automatischer Kompilierung (zumindest in VSCode und Visual Studio) sowie global vorhandenem Namespace ioBroker (unter dem alle Typen zu finden sind).

              Habs noch nicht getestet mit einem tatsächlichen Adapter, erwarte aber nicht allzuviele Probleme. Es könnte jedoch sein, dass "utils" in einem falschen Ordner nach dem Controller sucht, da die Datei jetzt in "./build/lib/" liegt statt "./lib"

              Tests sind bisher unverändert in JS.

              1 Reply Last reply Reply Quote 0
              • apollon77
                apollon77 last edited by

                Könntest Du das bitte nochmal löschen und als eigenes Repo (also nicht als Fork von ioBroker.template) neu anlegen :-)) Ich kann es nicht forken weil ich .template schon geforkt habe

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

                  äh ja, wird gemacht 😄

                  1 Reply Last reply Reply Quote 0
                  • apollon77
                    apollon77 last edited by

                    So, hat jetzt auch Default-Adaptertesting dabei 🙂

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

                      Habe heute noch einige Deklarationen zum TypeScript Template-Adapter hinzugefügt.

                      An einigen Stellen in https://github.com/AlCalzone/ioBroker.t … roker.d.ts gibts noch Kommentare der Art

                      // TODO find out how this looks like
                      

                      Wenn einer der Profis (Bluefox?) mir nen Tipp geben kann, wie die so markierten Typen aufgebaut sind, wäre ich dankbar. Ansonsten wühle ich mich halt irgendwann mal wieder durch den Code vom JS-Controller 😄

                      Edit: Insbesondere hier brauche ich Hilfe:

                      https://github.com/AlCalzone/ioBroker.t … .d.ts#L126

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

                        Es gibt jetzt zwei Branches:

                        • master: der vollständige Adapter mit Widget, Docs, www-files, etc.

                        • bare: nur das "nötigste", d.h. main-code, TypeScript-Umgebung und Admin-UI-Dateien.

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

                          Das zukünftige Loglevel "silly" ist auch drin!

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

                            Jetzt gibts auch TypeScript-style unit testing, sowohl lokal mit Coverage-Report und online auf Travis/AppVeyor.

                            Beschreibung siehe https://github.com/AlCalzone/ioBroker.t … it-testing

                            Beispiel hier: https://github.com/AlCalzone/ioBroker.t ... in.test.ts

                            1 Reply Last reply Reply Quote 0
                            • J
                              JoJ123 last edited by

                              Hey, ich wollte heute einen neuen Adapter in Typescript erstellen.

                              Ich habe es mit dem template von Github versucht. Am Code selber habe ich nichts geändert, ich habe den Code in "node_modules" kopiert und anschließend mit npm install alle packages installiert in dem Ordner. Dann den Adapter "upgeloaded".

                              Jedoch startet der Adapter bei mir nicht.

                              Im Instanz Tab ist die Instanz rot.

                              Im Log erscheint lediglich:

                              iobroker	2018-10-09 19:59:55.556	info	exit 0
                              iobroker	2018-10-09 19:59:55.548	info	host.DESKTOP-RV0C8KF object system.adapter.template-ts.0 created
                              host.DESKTOP-RV0C8KF	2018-10-09 19:59:55.545	info	object change system.adapter.template-ts.0
                              iobroker	2018-10-09 19:59:55.516	info	host.DESKTOP-RV0C8KF object system.adapter.template-ts.0.alive created
                              iobroker	2018-10-09 19:59:55.488	info	host.DESKTOP-RV0C8KF object system.adapter.template-ts.0.connected created
                              iobroker	2018-10-09 19:59:55.461	info	host.DESKTOP-RV0C8KF object system.adapter.template-ts.0.memHeapUsed created
                              iobroker	2018-10-09 19:59:55.433	info	host.DESKTOP-RV0C8KF object system.adapter.template-ts.0.memHeapTotal created
                              iobroker	2018-10-09 19:59:55.404	info	host.DESKTOP-RV0C8KF object system.adapter.template-ts.0.memRss created
                              iobroker	2018-10-09 19:59:55.377	info	host.DESKTOP-RV0C8KF object system.adapter.template-ts.0.uptime created
                              iobroker	2018-10-09 19:59:55.348	info	host.DESKTOP-RV0C8KF object system.adapter.template-ts.0.inputCount created
                              iobroker	2018-10-09 19:59:55.320	info	host.DESKTOP-RV0C8KF object system.adapter.template-ts.0.outputCount created
                              iobroker	2018-10-09 19:59:55.292	info	host.DESKTOP-RV0C8KF object system.adapter.template-ts.upload created
                              iobroker	2018-10-09 19:59:55.288	info	host.DESKTOP-RV0C8KF create instance template-ts
                              iobroker	2018-10-09 19:59:55.276	info	host.DESKTOP-RV0C8KF object system.adapter.template-ts created
                              

                              Hat das von euch schon einer zum Laufen gebracht?

                              Ist das Template noch up to date?

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

                                Das Template müsste noch aktuell sein, wesentliche Änderungen gab es nicht. Ich sehe nicht dass überhaupt versucht wird, die Instanz zu starten. Allerdings hab ich auch noch nie probiert, das Template direkt auszuführen.

                                1 Reply Last reply Reply Quote 0
                                • J
                                  JoJ123 last edited by

                                  Gibt es denn einen Adapter der läuft und mit diesem Typescript Template entwickelt wurde? Dann würde ich mich auf die Fehlersuche begeben

                                  Gesendet von meinem EML-L09 mit Tapatalk

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

                                    Alle meine: g-homa, tradfri, ble

                                    Vermutlich musst du den Adapter "richtig" installieren. npm install löscht auch Ordner, wenn diese nicht vorhanden sein sollten. Zum Beispiel kannst du den Adapter mit npm pack in einen tarball verpacken, diesen auf den Host schieben und dort im Ordner /opt/iobroker per npm install pfad-zum-tarball installieren.

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

                                      @alcalzone werden die Declarations noch irgendwie verwendet, wenn ich meinen Adapter über create-adapter erstellt habe?

                                      Die StateQuality Values scheinen wohl nicht aktuell zu sein und ich habe bei der Google Suche nichts anderes gefunden, als die Deklaration in https://github.com/AlCalzone/virtual-tsc/blob/master/test/ioBroker.d.ts .

                                      Daher bin ich nicht sicher, wie/wo man die Deklaration anpassen muss, damit keine Fehler mehr bei der Zuweisung von neueren Weren für state.q generiert werden.

                                      Ich habe dazu ein Issue auf GitHub aufgemacht:
                                      https://github.com/AlCalzone/virtual-tsc/issues/16

                                      jpawlowski created this issue in AlCalzone/virtual-tsc

                                      closed Update StateQuality #16

                                      1 Reply Last reply Reply Quote 0
                                      • mcm1957
                                        mcm1957 last edited by

                                        see
                                        https://github.com/ioBroker/ioBroker.js-controller/issues/2319

                                        jpawlowski created this issue in ioBroker/ioBroker.js-controller

                                        closed TypeScript STATE_QUALITY has missing values #2319

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

                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate

                                        843
                                        Online

                                        31.7k
                                        Users

                                        79.8k
                                        Topics

                                        1.3m
                                        Posts

                                        6
                                        18
                                        3991
                                        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