Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Script in mehrere Scripts aufteilen, ein Object pro Script

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.5k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    828

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Script in mehrere Scripts aufteilen, ein Object pro Script

Geplant Angeheftet Gesperrt Verschoben JavaScript
12 Beiträge 6 Kommentatoren 865 Aufrufe 4 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • paul53P paul53

    @martin-5 sagte: Global Ordner gefunden, finde ihn aber nicht im ioBroker.

    Im Expertenmodus von Javascript findet man die Gruppe "global". Skripte dort sollten nur häufig verwendete eigene Funktionen enthalten.

    @martin-5 sagte in Script in mehrere Scripts aufteilen, ein Object pro Script:

    Kann man eigene Module erstellen und dann mit require einbinden?

    Kann man, wenn man weis, wie Module erstellt werden.
    Wenn die eigenen Module unter "iobroker-data/modules" liegen:

    const clock = require('../../../iobroker-data/modules/test.js');
    
    M Offline
    M Offline
    Martin 5
    schrieb am zuletzt editiert von
    #3

    @paul53 Danke.
    Den globalen Ordner habe ich nun gefunden. Ist ja auch keine Leistung. ;-)
    Bei den Modulen bin ich nicht weiter gekommen. Ist aber auch nicht das was ich suche. Wenn man ein größeres Script schreiben möchte wird es schnell unübersichtlich.
    Beispiel:
    Ich erstelle eine Klasse aus der ich mehrere weitere Klassen ableite. In Java wird jede Klasse in eine Datei geschrieben wobei der Klassenname gleich dem Dateinamen ist. Alle Klassen in einem Verzeichnis sehen sich gegenseitig. Das ist recht praktisch und nach meinem Empfinden auch übersichtlich.
    Aber vielleicht sollen die Scripte auch gar nicht so groß werden.

    Grüße Martin

    CodierknechtC 1 Antwort Letzte Antwort
    0
    • M Martin 5

      @paul53 Danke.
      Den globalen Ordner habe ich nun gefunden. Ist ja auch keine Leistung. ;-)
      Bei den Modulen bin ich nicht weiter gekommen. Ist aber auch nicht das was ich suche. Wenn man ein größeres Script schreiben möchte wird es schnell unübersichtlich.
      Beispiel:
      Ich erstelle eine Klasse aus der ich mehrere weitere Klassen ableite. In Java wird jede Klasse in eine Datei geschrieben wobei der Klassenname gleich dem Dateinamen ist. Alle Klassen in einem Verzeichnis sehen sich gegenseitig. Das ist recht praktisch und nach meinem Empfinden auch übersichtlich.
      Aber vielleicht sollen die Scripte auch gar nicht so groß werden.

      Grüße Martin

      CodierknechtC Offline
      CodierknechtC Offline
      Codierknecht
      Developer Most Active
      schrieb am zuletzt editiert von
      #4

      @martin-5 sagte in Script in mehrere Scripts aufteilen, ein Object pro Script:

      Den globalen Ordner habe ich nun gefunden

      Globale Scripte haben - meiner bescheidenen Meinung nach - einen entscheidenden Nachteil: Sie werden in alle anderen Scripte "reinkopiert". Auch dort, wo man sie gar nicht benötigt.

      Ich würde @paul53's Vorschlag mit den Modulen verfolgen ...

      "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

      Proxmox 9.1.1 LXC|8 GB|Core i7-6700
      HmIP|ZigBee|Tasmota|Unifi
      Zabbix Certified Specialist
      Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

      U 1 Antwort Letzte Antwort
      1
      • CodierknechtC Codierknecht

        @martin-5 sagte in Script in mehrere Scripts aufteilen, ein Object pro Script:

        Den globalen Ordner habe ich nun gefunden

        Globale Scripte haben - meiner bescheidenen Meinung nach - einen entscheidenden Nachteil: Sie werden in alle anderen Scripte "reinkopiert". Auch dort, wo man sie gar nicht benötigt.

        Ich würde @paul53's Vorschlag mit den Modulen verfolgen ...

        U Offline
        U Offline
        uwe72
        schrieb am zuletzt editiert von uwe72
        #5

        @codierknecht Exakt, der Mechanismus der Global Scripte ist sehr gewöhnungsbedürftig, dass dies da einfach in die common reingeschrieben wird, ob sie dort gebraucht werden oder nicht. Dies übrigens noch Java-Script-Instanzen-übergreifend.

        Als ehemaliger Java-Entwickler wünscht man sich, dass man den Code den man öfters benötigt in einer "anderen Stelle" (externes File, Module,...) einmal schreibt und hinterlegt und dann in den common-Scripten per import/requires einzubindet.

        Vor einem halben Jahr war ich da schon sehr weit dies auszuprobieren, hatte am Ende aber aufgegeben. Da es glaub mit TypeScript dann noch schwieriger war. Kann mich generell nicht mehr erinnern, was das Problem war. Müsste hier auch Posts dazu geben zu diesem Thema.

        Hast Du das Thema mit den "externen Modulen" schon verfolgt?

        1 Antwort Letzte Antwort
        0
        • paul53P paul53

          @martin-5 sagte: Global Ordner gefunden, finde ihn aber nicht im ioBroker.

          Im Expertenmodus von Javascript findet man die Gruppe "global". Skripte dort sollten nur häufig verwendete eigene Funktionen enthalten.

          @martin-5 sagte in Script in mehrere Scripts aufteilen, ein Object pro Script:

          Kann man eigene Module erstellen und dann mit require einbinden?

          Kann man, wenn man weis, wie Module erstellt werden.
          Wenn die eigenen Module unter "iobroker-data/modules" liegen:

          const clock = require('../../../iobroker-data/modules/test.js');
          
          U Offline
          U Offline
          uwe72
          schrieb am zuletzt editiert von
          #6

          @paul53 said in Script in mehrere Scripts aufteilen, ein Object pro Script:

          @martin-5 sagte: Global Ordner gefunden, finde ihn aber nicht im ioBroker.

          Im Expertenmodus von Javascript findet man die Gruppe "global". Skripte dort sollten nur häufig verwendete eigene Funktionen enthalten.

          @martin-5 sagte in Script in mehrere Scripts aufteilen, ein Object pro Script:

          Kann man eigene Module erstellen und dann mit require einbinden?

          Kann man, wenn man weis, wie Module erstellt werden.
          Wenn die eigenen Module unter "iobroker-data/modules" liegen:

          const clock = require('../../../iobroker-data/modules/test.js');
          

          Kannst Du mir helfen. Habe eine Docker-Umgebung. Wo genau finde ich dein Verzeichnis "iobroker-data/modules"?
          2d6cfbb1-3a4b-49b0-b373-88826ff00360-image.png

          paul53P U 2 Antworten Letzte Antwort
          0
          • U uwe72

            @paul53 said in Script in mehrere Scripts aufteilen, ein Object pro Script:

            @martin-5 sagte: Global Ordner gefunden, finde ihn aber nicht im ioBroker.

            Im Expertenmodus von Javascript findet man die Gruppe "global". Skripte dort sollten nur häufig verwendete eigene Funktionen enthalten.

            @martin-5 sagte in Script in mehrere Scripts aufteilen, ein Object pro Script:

            Kann man eigene Module erstellen und dann mit require einbinden?

            Kann man, wenn man weis, wie Module erstellt werden.
            Wenn die eigenen Module unter "iobroker-data/modules" liegen:

            const clock = require('../../../iobroker-data/modules/test.js');
            

            Kannst Du mir helfen. Habe eine Docker-Umgebung. Wo genau finde ich dein Verzeichnis "iobroker-data/modules"?
            2d6cfbb1-3a4b-49b0-b373-88826ff00360-image.png

            paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von paul53
            #7

            @uwe72 sagte: Docker-Umgebung.

            Davon habe ich keine Ahnung.

            @uwe72 sagte in Script in mehrere Scripts aufteilen, ein Object pro Script:

            Wo genau finde ich dein Verzeichnis "iobroker-data/modules"?

            Unter Linux unter /opt/iobroker/iobroker-data. Darunter das Verzeichnis "modules" erstellt und darin dann die Skripte (Node-Module). Daten unter "iobroker-data" werden beim Backup gesichert.

            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

            U 1 Antwort Letzte Antwort
            1
            • paul53P paul53

              @uwe72 sagte: Docker-Umgebung.

              Davon habe ich keine Ahnung.

              @uwe72 sagte in Script in mehrere Scripts aufteilen, ein Object pro Script:

              Wo genau finde ich dein Verzeichnis "iobroker-data/modules"?

              Unter Linux unter /opt/iobroker/iobroker-data. Darunter das Verzeichnis "modules" erstellt und darin dann die Skripte (Node-Module). Daten unter "iobroker-data" werden beim Backup gesichert.

              U Offline
              U Offline
              uwe72
              schrieb am zuletzt editiert von
              #8

              @paul53 Wie heißt denn bei dir der volle absolute Pfad zu "iobroker-data/modules"?

              OliverIOO 1 Antwort Letzte Antwort
              0
              • U uwe72

                @paul53 said in Script in mehrere Scripts aufteilen, ein Object pro Script:

                @martin-5 sagte: Global Ordner gefunden, finde ihn aber nicht im ioBroker.

                Im Expertenmodus von Javascript findet man die Gruppe "global". Skripte dort sollten nur häufig verwendete eigene Funktionen enthalten.

                @martin-5 sagte in Script in mehrere Scripts aufteilen, ein Object pro Script:

                Kann man eigene Module erstellen und dann mit require einbinden?

                Kann man, wenn man weis, wie Module erstellt werden.
                Wenn die eigenen Module unter "iobroker-data/modules" liegen:

                const clock = require('../../../iobroker-data/modules/test.js');
                

                Kannst Du mir helfen. Habe eine Docker-Umgebung. Wo genau finde ich dein Verzeichnis "iobroker-data/modules"?
                2d6cfbb1-3a4b-49b0-b373-88826ff00360-image.png

                U Offline
                U Offline
                uwe72
                schrieb am zuletzt editiert von uwe72
                #9
                const clock = require('../../../iobroker-data/modules/test.js');
                

                Hast Du mir ein kleines Beispiel für den Inhalt von test.js, müssen da so Dinge wie export.... oder was rein? Und wie der Inhalt dann im common Script eingebunden wird bzw. verwendet wird? DANKE

                T 1 Antwort Letzte Antwort
                0
                • U uwe72

                  @paul53 Wie heißt denn bei dir der volle absolute Pfad zu "iobroker-data/modules"?

                  OliverIOO Offline
                  OliverIOO Offline
                  OliverIO
                  schrieb am zuletzt editiert von
                  #10

                  @uwe72
                  Ah du hast diesen thread auch schon gefunden

                  Meine Adapter und Widgets
                  TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                  Links im Profil

                  1 Antwort Letzte Antwort
                  1
                  • U uwe72
                    const clock = require('../../../iobroker-data/modules/test.js');
                    

                    Hast Du mir ein kleines Beispiel für den Inhalt von test.js, müssen da so Dinge wie export.... oder was rein? Und wie der Inhalt dann im common Script eingebunden wird bzw. verwendet wird? DANKE

                    T Nicht stören
                    T Nicht stören
                    ticaki
                    schrieb am zuletzt editiert von
                    #11

                    @uwe72

                    hab dir in deinem anderen Thread einen Link zu einem Beispiel von paul gepostet :D

                    Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                    Spenden

                    U 1 Antwort Letzte Antwort
                    1
                    • T ticaki

                      @uwe72

                      hab dir in deinem anderen Thread einen Link zu einem Beispiel von paul gepostet :D

                      U Offline
                      U Offline
                      uwe72
                      schrieb am zuletzt editiert von
                      #12

                      Habe für mich mal eine funktionierende Lösung in einem neuen Post aufgeschrieben:
                      https://forum.iobroker.net/topic/78632/info-auslagerung-von-scripte-aus-global-aufs-filesystem

                      1 Antwort Letzte Antwort
                      0
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      675

                      Online

                      32.6k

                      Benutzer

                      82.1k

                      Themen

                      1.3m

                      Beiträge
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Anmelden

                      • Du hast noch kein Konto? Registrieren

                      • Anmelden oder registrieren, um zu suchen
                      • Erster Beitrag
                        Letzter Beitrag
                      0
                      • Home
                      • Aktuell
                      • Tags
                      • Ungelesen 0
                      • Kategorien
                      • Unreplied
                      • Beliebt
                      • GitHub
                      • Docu
                      • Hilfe