Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Hilfe bei Strukturierung von Klassen in TypeScript

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.1k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.8k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.1k

Hilfe bei Strukturierung von Klassen in TypeScript

Scheduled Pinned Locked Moved Skripten / Logik
29 Posts 6 Posters 1.9k Views 4 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • XenonX Xenon

    ich häng mich mal dran:

    Bei mir findet er nicht mal das Modul, obwohl ich keinen relativen Pfad nutze, er sucht auch wieder im node_modules Ordner...
    Datei liegt unter : /opt/test/class.js

    const test = require ('../test/class.js')
    
    	error	javascript.2 (24913) script.js.common.test.importTest: Error: Cannot find module '/opt/iobroker/node_modules/iobroker.javascript/lib/../../../test/class.js'
    
    U Offline
    U Offline
    uwe72
    wrote on last edited by
    #14

    @xenon bei mir war dies auch lange so, trotz relativem Pfad. Mir ist bis heute nicht klar, warum dann die Fehlermeldung auf einmal weg war. Ggf. musst Du den Adapter neu starten? Ich weiß es nicht.

    Mir ist bei dir auch nicht klar: Du hast ein TypeScript oder ein JS? Da Dateiname (class) auf TS hinweist und die Endung der Datei auf JS. Wie sieht der Inhalt von class.js aus?

    1 Reply Last reply
    0
    • U uwe72

      @fastfoot

      Ja, meine Funktion heißt schon so. Meiner Meinung nach komme ich leider gar nicht so weit diese Funktion/Methode aufzurufen.

      require liefert irgendwie nichts zurück. Das File (test.ts) wird aber nun grundsätzlich gefunden.

      Als ehemaliger Java-Entwickler 😉 würde ich so was in der Art schreiben:

      634d028b-2be0-4e0c-9b4a-f6885dfaa9be-image.png

      Kommen aber viele Fehler:
      d73c6751-1e1a-44b7-bc8c-d56d87fc14ff-image.png

      AlCalzoneA Offline
      AlCalzoneA Offline
      AlCalzone
      Developer
      wrote on last edited by
      #15

      @uwe72 sagte in Hilfe bei Strukturierung von Klassen in TypeScript:

      Da Dateiname (class) auf TS hinweist

      Wieso weist das auf TS hin? class ist seit ES6 ein JS-Feature.

      Ich blicke nicht ganz ob ihr das Problem schon gelöst habt, aber hast du schon die import-Syntax versucht?

      import { Test } from "../pfad/zum/skript";
      const myInstance = new Test(3, 5);
      //...
      

      Abgesehen davon müssen relative Pfade relativ zum sandbox.js-Modul vom Adapter sein, welches in /opt/iobroker/node_modules/iobroker.javascript/lib liegt. Deshalb zeigt @Xenon's Import auch auf /opt/iobroker/test/class.js und nicht dahin wo die Datei wirklich liegt.

      Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

      XenonX 1 Reply Last reply
      0
      • AlCalzoneA AlCalzone

        @uwe72 sagte in Hilfe bei Strukturierung von Klassen in TypeScript:

        Da Dateiname (class) auf TS hinweist

        Wieso weist das auf TS hin? class ist seit ES6 ein JS-Feature.

        Ich blicke nicht ganz ob ihr das Problem schon gelöst habt, aber hast du schon die import-Syntax versucht?

        import { Test } from "../pfad/zum/skript";
        const myInstance = new Test(3, 5);
        //...
        

        Abgesehen davon müssen relative Pfade relativ zum sandbox.js-Modul vom Adapter sein, welches in /opt/iobroker/node_modules/iobroker.javascript/lib liegt. Deshalb zeigt @Xenon's Import auch auf /opt/iobroker/test/class.js und nicht dahin wo die Datei wirklich liegt.

        XenonX Offline
        XenonX Offline
        Xenon
        Forum Testing Developer
        wrote on last edited by
        #16

        @alcalzone sagte in Hilfe bei Strukturierung von Klassen in TypeScript:

        Abgesehen davon müssen relative Pfade relativ zum sandbox.js-Modul vom Adapter sein, welches in /opt/iobroker/node_modules/iobroker.javascript/lib liegt. Deshalb zeigt @Xenon's Import auch auf /opt/iobroker/test/class.js und nicht dahin wo die Datei wirklich liegt.

        Das bedeutet nun genau? Wenn die Datei unter opt/iobroker/test/class.js liegt, was muss ich dann im import angeben, damit er nicht in den node_modules sucht?

        wenn euch mein Beitrag geholfen hat, bewertet ihn bitte unten rechts :)

        AlCalzoneA 1 Reply Last reply
        0
        • XenonX Xenon

          @alcalzone sagte in Hilfe bei Strukturierung von Klassen in TypeScript:

          Abgesehen davon müssen relative Pfade relativ zum sandbox.js-Modul vom Adapter sein, welches in /opt/iobroker/node_modules/iobroker.javascript/lib liegt. Deshalb zeigt @Xenon's Import auch auf /opt/iobroker/test/class.js und nicht dahin wo die Datei wirklich liegt.

          Das bedeutet nun genau? Wenn die Datei unter opt/iobroker/test/class.js liegt, was muss ich dann im import angeben, damit er nicht in den node_modules sucht?

          AlCalzoneA Offline
          AlCalzoneA Offline
          AlCalzone
          Developer
          wrote on last edited by
          #17

          @xenon Von /opt/iobroker/node_modules/iobroker.javascript/lib ausgehend ist /opt/test/class.js unter dem relativen Pfad ../../../../test/class.js zu finden.

          Hier als Beispiel mal mit /home/iobroker/test.js:
          11e3f836-55c6-47bb-8089-9656b5d8dd46-grafik.png

          Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

          U XenonX 2 Replies Last reply
          1
          • AlCalzoneA AlCalzone

            @xenon Von /opt/iobroker/node_modules/iobroker.javascript/lib ausgehend ist /opt/test/class.js unter dem relativen Pfad ../../../../test/class.js zu finden.

            Hier als Beispiel mal mit /home/iobroker/test.js:
            11e3f836-55c6-47bb-8089-9656b5d8dd46-grafik.png

            U Offline
            U Offline
            uwe72
            wrote on last edited by uwe72
            #18

            @alcalzone said in Hilfe bei Strukturierung von Klassen in TypeScript:

            /opt/iobroker/node_modules/iobroker.javascript/lib

            Ich bin zu doof dafür 😞

            599e4971-29f5-4966-ab10-2b0772ee3c27-image.png

            Update: Habe nun das Mirror-Verzeichnis rausgenommen (weiß nicht ob es wirklich damit zusammen hängt), funktioniert nun aber:
            8d4a7a6e-935f-4f18-9d21-60c8dbfe3e8e-image.png

            F 1 Reply Last reply
            0
            • U uwe72

              @alcalzone said in Hilfe bei Strukturierung von Klassen in TypeScript:

              /opt/iobroker/node_modules/iobroker.javascript/lib

              Ich bin zu doof dafür 😞

              599e4971-29f5-4966-ab10-2b0772ee3c27-image.png

              Update: Habe nun das Mirror-Verzeichnis rausgenommen (weiß nicht ob es wirklich damit zusammen hängt), funktioniert nun aber:
              8d4a7a6e-935f-4f18-9d21-60c8dbfe3e8e-image.png

              F Offline
              F Offline
              fastfoot
              wrote on last edited by
              #19

              @uwe72 sagte in Hilfe bei Strukturierung von Klassen in TypeScript:

              Update: Habe nun das Mirror-Verzeichnis rausgenommen (weiß nicht ob es wirklich damit zusammen hängt), funktioniert nun aber:

              upps, das ist mir gar nicht aufgefallen dass da ein Unterschied ist. Aber an der Fehlermeldung kannst du es auch sehen, da stehen 5 x ../, also brauchst du im require nur 1x ../ so wie ich es schon mal gepostet hatte. Mir war es aber früher mal nicht gelungen unterhalb von /opt/iobroker zu kommen, das werde ich mal noch ohne mirror probieren

              iobroker läuft unter Docker auf QNAP TS-451+
              SkriptRecovery: https://forum.iobroker.net/post/930558

              1 Reply Last reply
              0
              • AlCalzoneA Offline
                AlCalzoneA Offline
                AlCalzone
                Developer
                wrote on last edited by
                #20

                Ich bin mir nicht sicher, was Mirror damit zu tun haben soll. Alle Skripte laufen in einer Sandbox, die sich in /opt/iobroker/node_modules/iobroker.javascript/lib befindet. Von dort aus werden alle requires aufgelöst.

                Aber an der Fehlermeldung kannst du es auch sehen, da stehen 5 x ../, also brauchst du im require nur 1x ../ so wie ich es schon mal gepostet hatte

                Die Fehlermeldung ist irreführend. Der JS-Adapter versucht erst den gegebenen Pfad und wenn das schief läuft hängt er vorne noch ../../ an. Das wird dann geloggt.

                @uwe72 Du scheinst Docker zu verwenden. Welchen (absoluten) Pfad hat denn dein Test-Skript innerhalb Docker?

                Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                1 Reply Last reply
                0
                • AlCalzoneA AlCalzone

                  @xenon Von /opt/iobroker/node_modules/iobroker.javascript/lib ausgehend ist /opt/test/class.js unter dem relativen Pfad ../../../../test/class.js zu finden.

                  Hier als Beispiel mal mit /home/iobroker/test.js:
                  11e3f836-55c6-47bb-8089-9656b5d8dd46-grafik.png

                  XenonX Offline
                  XenonX Offline
                  Xenon
                  Forum Testing Developer
                  wrote on last edited by Xenon
                  #21

                  @alcalzone sagte in Hilfe bei Strukturierung von Klassen in TypeScript:

                  @xenon Von /opt/iobroker/node_modules/iobroker.javascript/lib ausgehend ist /opt/test/class.js unter dem relativen Pfad ../../../../test/class.js zu finden.

                  Danke dir, funktioniert ! 🙂

                  Ist es sinnvoll das im /opt/iobroker anzulegen? Oder kann da was durch Updates des ioBrokers kaputt gehen?

                  wenn euch mein Beitrag geholfen hat, bewertet ihn bitte unten rechts :)

                  F 1 Reply Last reply
                  0
                  • XenonX Xenon

                    @alcalzone sagte in Hilfe bei Strukturierung von Klassen in TypeScript:

                    @xenon Von /opt/iobroker/node_modules/iobroker.javascript/lib ausgehend ist /opt/test/class.js unter dem relativen Pfad ../../../../test/class.js zu finden.

                    Danke dir, funktioniert ! 🙂

                    Ist es sinnvoll das im /opt/iobroker anzulegen? Oder kann da was durch Updates des ioBrokers kaputt gehen?

                    F Offline
                    F Offline
                    fastfoot
                    wrote on last edited by
                    #22

                    @xenon sagte in Hilfe bei Strukturierung von Klassen in TypeScript:

                    Ist es sinnvoll das im /opt/iobroker anzulegen? Oder kann da was durch Updates des ioBrokers kaputt gehen?

                    Also ich hatte meine Skripte immer in /opt/iobroker/scripts und bisher nie Probleme durch Updates etc. gehabt.

                    Allerdings bin ich jetzt endlich dem Rat von @Thomas-Braun gefolgt und und habe seit Kurzem den mirror nach /home/iobroker/scripts verlegt. Im Docker kann man das einfach nach Aussen mappen so dass ich auch weiterhin Zugriff mit VS Code habe

                    iobroker läuft unter Docker auf QNAP TS-451+
                    SkriptRecovery: https://forum.iobroker.net/post/930558

                    XenonX 1 Reply Last reply
                    1
                    • F fastfoot

                      @xenon sagte in Hilfe bei Strukturierung von Klassen in TypeScript:

                      Ist es sinnvoll das im /opt/iobroker anzulegen? Oder kann da was durch Updates des ioBrokers kaputt gehen?

                      Also ich hatte meine Skripte immer in /opt/iobroker/scripts und bisher nie Probleme durch Updates etc. gehabt.

                      Allerdings bin ich jetzt endlich dem Rat von @Thomas-Braun gefolgt und und habe seit Kurzem den mirror nach /home/iobroker/scripts verlegt. Im Docker kann man das einfach nach Aussen mappen so dass ich auch weiterhin Zugriff mit VS Code habe

                      XenonX Offline
                      XenonX Offline
                      Xenon
                      Forum Testing Developer
                      wrote on last edited by Xenon
                      #23

                      @fastfoot du nutzt das vs code tool? Ich habe es versucht, bekomme es aber nicht hin. Auch wenns jetzt OT ist, aber muss ich in meinem LXC irgendwie eine Freigabe erteilen? So sieht es bei mir immer aus (bin in sowas nicht so der Profi 😄 )

                      2021-11-15 18_20_30-Window.png

                      wenn euch mein Beitrag geholfen hat, bewertet ihn bitte unten rechts :)

                      F T 2 Replies Last reply
                      0
                      • XenonX Xenon

                        @fastfoot du nutzt das vs code tool? Ich habe es versucht, bekomme es aber nicht hin. Auch wenns jetzt OT ist, aber muss ich in meinem LXC irgendwie eine Freigabe erteilen? So sieht es bei mir immer aus (bin in sowas nicht so der Profi 😄 )

                        2021-11-15 18_20_30-Window.png

                        F Offline
                        F Offline
                        fastfoot
                        wrote on last edited by fastfoot
                        #24

                        @xenon sagte in Hilfe bei Strukturierung von Klassen in TypeScript:

                        @fastfoot du nutzt das vs code tool? Ich habe es versucht, bekomme es aber nicht hin. Auch wenns jetzt OT ist, aber muss ich in meinem LXC irgendwie eine Freigabe erteilen?

                        ja, den vs code Editor unter Windows. Mit LXC kenne ich mich leider null aus, beim Docker ist dieses Mapping so eine Art mount mit dem man fast beliebig Ordner ausserhalb des Containers bringt. Als Standard empfiehlt sich zB /opt/iobroker so dass bei einem Wechsel/Update des Containers die iobroker installation völlig(!) unberührt bleibt. Falls LXC bzw LXD diese Möglichkeit nicht bietet würde ich das über einen mount probieren

                        Edit: Ich greife mit vs code direkt auf ein Share zu und benutze kein Add-on

                        iobroker läuft unter Docker auf QNAP TS-451+
                        SkriptRecovery: https://forum.iobroker.net/post/930558

                        1 Reply Last reply
                        1
                        • XenonX Offline
                          XenonX Offline
                          Xenon
                          Forum Testing Developer
                          wrote on last edited by
                          #25

                          @fastfoot kommando zurück....... hatte https aktiv.... jetzt gehts 🙂

                          wenn euch mein Beitrag geholfen hat, bewertet ihn bitte unten rechts :)

                          1 Reply Last reply
                          0
                          • AlCalzoneA AlCalzone

                            @uwe72 sagte in Hilfe bei Strukturierung von Klassen in TypeScript:

                            Wie kann ich in einer dritten Datei die Klassen A und B einbinden? Ich weiß, dass ich A und B in global verschieben kann.

                            Geht nicht direkt im Skript-Editor wenn du global vermeiden willst. Packe alles in ein einzelnes Skript oder lagere die gemeinsamen Dinge wie die Klassen in externe Module (Dateien) aus, die du auf der Platte in einem Ordner ablegst, der für den Nutzer iobroker lesbar ist. Die kannst du dann per require("/pfad/zur/datei.js") laden.

                            ScroungerS Offline
                            ScroungerS Offline
                            Scrounger
                            Developer
                            wrote on last edited by
                            #26

                            @alcalzone

                            Geht das auch inzwischen mit Typescript?

                            Folgendes versuche ich gerade, Typescript liegt unter /opt/iobroker/test

                            myModule.ts:

                            export class testClass {
                                public static readonly testString = "alias.0";
                            }
                            

                            Wenn ich das aufrufen will:

                            const myModule = require('../../../test/myModule.ts');
                            console.warn(myModule.testClass.testString);
                            

                            bekomme ich folgende Fehlermeldung:

                            2023-01-24 09:04:15.881 - error: javascript.0 (2305) script.js.alias.Licht.Test: /opt/iobroker/test/myModule.ts:1
                            2023-01-24 09:04:15.881 - error: javascript.0 (2305) at wrapSafe (node:internal/modules/cjs/loader:1094:15)
                            2023-01-24 09:04:15.881 - error: javascript.0 (2305) at Module._compile (node:internal/modules/cjs/loader:1129:27)
                            2023-01-24 09:04:15.882 - error: javascript.0 (2305) at Object.Module._extensions..js (node:internal/modules/cjs/loader:1219:10)
                            2023-01-24 09:04:15.882 - error: javascript.0 (2305) at Module.load (node:internal/modules/cjs/loader:1043:32)
                            2023-01-24 09:04:15.882 - error: javascript.0 (2305) at Function.Module._load (node:internal/modules/cjs/loader:878:12)
                            2023-01-24 09:04:15.882 - error: javascript.0 (2305) at Module.require (node:internal/modules/cjs/loader:1067:19)
                            2023-01-24 09:04:15.882 - error: javascript.0 (2305) at require (node:internal/modules/cjs/helpers:103:18)
                            2023-01-24 09:04:15.882 - error: javascript.0 (2305) at require (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:509:32)
                            2023-01-24 09:04:15.882 - error: javascript.0 (2305) at script.js.alias.Licht.Test:3:16
                            2023-01-24 09:04:15.882 - error: javascript.0 (2305) at Script.runInContext (node:vm:141:12)
                            2023-01-24 09:04:15.883 - error: javascript.0 (2305) script.js.alias.Licht.Test: script.js.alias.Licht.Test:4
                            2023-01-24 09:04:15.883 - error: javascript.0 (2305) console.warn(myModule.testClass.testString);
                            2023-01-24 09:04:15.883 - error: javascript.0 (2305) ^
                            2023-01-24 09:04:15.883 - error: javascript.0 (2305) TypeError: Cannot read properties of undefined (reading 'testClass')
                            2023-01-24 09:04:15.883 - error: javascript.0 (2305) at script.js.alias.Licht.Test:4:23
                            2023-01-24 09:04:15.883 - error: javascript.0 (2305) at Script.runInContext (node:vm:141:12)
                            

                            <a href="https://github.com/Scrounger/ioBroker.linkeddevices">LinkedDevices Adapter</a>

                            <a href="https://github.com/Scrounger/ioBroker.vis-materialdesign">Material Design Widgets</a>

                            U 1 Reply Last reply
                            0
                            • ScroungerS Scrounger

                              @alcalzone

                              Geht das auch inzwischen mit Typescript?

                              Folgendes versuche ich gerade, Typescript liegt unter /opt/iobroker/test

                              myModule.ts:

                              export class testClass {
                                  public static readonly testString = "alias.0";
                              }
                              

                              Wenn ich das aufrufen will:

                              const myModule = require('../../../test/myModule.ts');
                              console.warn(myModule.testClass.testString);
                              

                              bekomme ich folgende Fehlermeldung:

                              2023-01-24 09:04:15.881 - error: javascript.0 (2305) script.js.alias.Licht.Test: /opt/iobroker/test/myModule.ts:1
                              2023-01-24 09:04:15.881 - error: javascript.0 (2305) at wrapSafe (node:internal/modules/cjs/loader:1094:15)
                              2023-01-24 09:04:15.881 - error: javascript.0 (2305) at Module._compile (node:internal/modules/cjs/loader:1129:27)
                              2023-01-24 09:04:15.882 - error: javascript.0 (2305) at Object.Module._extensions..js (node:internal/modules/cjs/loader:1219:10)
                              2023-01-24 09:04:15.882 - error: javascript.0 (2305) at Module.load (node:internal/modules/cjs/loader:1043:32)
                              2023-01-24 09:04:15.882 - error: javascript.0 (2305) at Function.Module._load (node:internal/modules/cjs/loader:878:12)
                              2023-01-24 09:04:15.882 - error: javascript.0 (2305) at Module.require (node:internal/modules/cjs/loader:1067:19)
                              2023-01-24 09:04:15.882 - error: javascript.0 (2305) at require (node:internal/modules/cjs/helpers:103:18)
                              2023-01-24 09:04:15.882 - error: javascript.0 (2305) at require (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:509:32)
                              2023-01-24 09:04:15.882 - error: javascript.0 (2305) at script.js.alias.Licht.Test:3:16
                              2023-01-24 09:04:15.882 - error: javascript.0 (2305) at Script.runInContext (node:vm:141:12)
                              2023-01-24 09:04:15.883 - error: javascript.0 (2305) script.js.alias.Licht.Test: script.js.alias.Licht.Test:4
                              2023-01-24 09:04:15.883 - error: javascript.0 (2305) console.warn(myModule.testClass.testString);
                              2023-01-24 09:04:15.883 - error: javascript.0 (2305) ^
                              2023-01-24 09:04:15.883 - error: javascript.0 (2305) TypeError: Cannot read properties of undefined (reading 'testClass')
                              2023-01-24 09:04:15.883 - error: javascript.0 (2305) at script.js.alias.Licht.Test:4:23
                              2023-01-24 09:04:15.883 - error: javascript.0 (2305) at Script.runInContext (node:vm:141:12)
                              
                              U Offline
                              U Offline
                              uwe72
                              wrote on last edited by
                              #27

                              @scrounger Es läuft gerade ein ähnliches/gleiches Thema auf:
                              https://forum.iobroker.net/topic/70069/einfügen-von-js-klassen-aus-eigenem-npm-modul/46?_=1699738698812

                              Typescript-Klassen/Code lassen sich einbinden. Problem ist aktuell, dass wenn im externen Script was wie "sendTo()" vorkommt, dies dann in iobroker angemeckert wird, da nicht erkannt wird.

                              1 Reply Last reply
                              1
                              • T Do not disturb
                                T Do not disturb
                                ticaki
                                wrote on last edited by ticaki
                                #28

                                3 Topics zum gleichen Thema? EDIT - oh 2 Jahre alt...

                                Lösung:
                                https://github.com/ticaki/script-library-example

                                Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                                Spenden

                                1 Reply Last reply
                                0
                                • XenonX Xenon

                                  @fastfoot du nutzt das vs code tool? Ich habe es versucht, bekomme es aber nicht hin. Auch wenns jetzt OT ist, aber muss ich in meinem LXC irgendwie eine Freigabe erteilen? So sieht es bei mir immer aus (bin in sowas nicht so der Profi 😄 )

                                  2021-11-15 18_20_30-Window.png

                                  T Do not disturb
                                  T Do not disturb
                                  ticaki
                                  wrote on last edited by ticaki
                                  #29

                                  ... ... ...

                                  Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                                  Spenden

                                  1 Reply Last reply
                                  0
                                  Reply
                                  • Reply as topic
                                  Log in to reply
                                  • Oldest to Newest
                                  • Newest to Oldest
                                  • Most Votes


                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  285

                                  Online

                                  32.4k

                                  Users

                                  81.4k

                                  Topics

                                  1.3m

                                  Posts
                                  Community
                                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                  ioBroker Community 2014-2025
                                  logo
                                  • Login

                                  • Don't have an account? Register

                                  • Login or register to search.
                                  • First post
                                    Last post
                                  0
                                  • Recent
                                  • Tags
                                  • Unread 0
                                  • Categories
                                  • Unreplied
                                  • Popular
                                  • GitHub
                                  • Docu
                                  • Hilfe