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. import Syntax

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    23
    1
    1.3k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

import Syntax

Geplant Angeheftet Gesperrt Verschoben JavaScript
24 Beiträge 4 Kommentatoren 913 Aufrufe 2 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

    @wolfgangfb sagte: ist diese Funktion einfach nicht implementiert?

    Im normalen Javascript (nicht TS) kann man eigene Node-Module mit require() importieren. Beispiel:

    const clock = require('../../../iobroker-data/modules/test.js');
    
    log(clock(new Date()));
    
    W Offline
    W Offline
    WolfgangFB
    schrieb am zuletzt editiert von
    #6

    @paul53

    Irgendwie klappt das nicht.
    Ich habe im "Common" Verzeichnis ein Skript "Testfunktion.js" erstellt.

    function Testfunktion(){
      console.log("Hallo");
    }
    

    wenn ich im gleichnen Verzeichnis ein weiteres Skript "Test.js" erstelle wird schon die erte Zeile

    cons commonScript = require('Testfunktion.js')
    

    als Fehler moniert (cannot find module Testfunktion.js)
    auch wenn ich den Pfad mit "./Testffunktion.js" oder ".\Testfunktion" oder was auch immer angebe.

    paul53P 1 Antwort Letzte Antwort
    0
    • W Offline
      W Offline
      WolfgangFB
      schrieb am zuletzt editiert von
      #7

      @ticaki sagte in import Syntax:

      @wolfgangfb

      Musste mal suchen ich hab mit jemanden anderem vor ein paar Monaten das ausprobiert und hinbekommen. Aber wieder vergessen wie es geht.

      Ich habe mal nach Dir gegoogelt, aber nichts passendes gefunden.

      1 Antwort Letzte Antwort
      0
      • W WolfgangFB

        @paul53

        Irgendwie klappt das nicht.
        Ich habe im "Common" Verzeichnis ein Skript "Testfunktion.js" erstellt.

        function Testfunktion(){
          console.log("Hallo");
        }
        

        wenn ich im gleichnen Verzeichnis ein weiteres Skript "Test.js" erstelle wird schon die erte Zeile

        cons commonScript = require('Testfunktion.js')
        

        als Fehler moniert (cannot find module Testfunktion.js)
        auch wenn ich den Pfad mit "./Testffunktion.js" oder ".\Testfunktion" oder was auch immer angebe.

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

        @wolfgangfb sagte: im "Common" Verzeichnis ein Skript "Testfunktion.js" erstellt.

        Was ist das "Common" Verzeichnis? Wenn Du mehrfach verwendbare Funktionen benötigst, erstelle sie unter der Gruppe "global" (Expertenmodus!). Sie können dann aus jedem anderen (nicht globalen) Skript mit ihrem Namen aufgerufen werden.

        Ein Node-Modul sieht etwas anders aus, als eine einfache Javascript-Funktion. Meine Datei "test.js" im Verzeichnis "/opt/iobroker/iobroker-data/modules":

        'use strict';
        module.exports = function (date) {
           let hour = date.getHours();
           let min = date.getMinutes();
           if(min < 10) min = '0' + min;
           return hour + ':' + min;
        };
        

        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

        1 Antwort Letzte Antwort
        0
        • W Offline
          W Offline
          WolfgangFB
          schrieb am zuletzt editiert von
          #9

          @paul53
          Ich abe mir jetzt in iobroker-data das Verzeichnis "modules" erzeugt und dort die Datei "test.js" angelegt.

          Darin dann

          'use strict';
          module.exports = function(x){
          return (x + 1);
          }
          

          dann ein Skript und dort

          const myfunc= require('../../../iobroker-data/modules/test.js');
          console.log(myfunc(2));
          

          '../../../iobroker-data/modules/test.js

          wird zwar immer noch rot unterkringelt, aber es kommt zumindest keine Fehlermeldung, dass das modul nicht gefunfen wird. Dafür kommt aber die Fehlermeldung

          myfunc is not a function.

          paul53P 1 Antwort Letzte Antwort
          0
          • W WolfgangFB

            @paul53
            Ich abe mir jetzt in iobroker-data das Verzeichnis "modules" erzeugt und dort die Datei "test.js" angelegt.

            Darin dann

            'use strict';
            module.exports = function(x){
            return (x + 1);
            }
            

            dann ein Skript und dort

            const myfunc= require('../../../iobroker-data/modules/test.js');
            console.log(myfunc(2));
            

            '../../../iobroker-data/modules/test.js

            wird zwar immer noch rot unterkringelt, aber es kommt zumindest keine Fehlermeldung, dass das modul nicht gefunfen wird. Dafür kommt aber die Fehlermeldung

            myfunc is not a function.

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

            @wolfgangfb sagte: myfunc is not a function

            Fehlermeldung des Editors (rote Kringel) oder zur Laufzeit?
            Wird nicht 3 im Log ausgegeben?

            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

            W 1 Antwort Letzte Antwort
            0
            • paul53P paul53

              @wolfgangfb sagte: myfunc is not a function

              Fehlermeldung des Editors (rote Kringel) oder zur Laufzeit?
              Wird nicht 3 im Log ausgegeben?

              W Offline
              W Offline
              WolfgangFB
              schrieb am zuletzt editiert von
              #11

              @paul53 sagte in import Syntax:

              @wolfgangfb sagte: myfunc is not a function

              Fehlermeldung des Editors (rote Kringel) oder zur Laufzeit?

              Editor

              Wird nicht 3 im Log ausgegeben?

              Nein, nur die Fehlermeldung "TypeError: myfunc is not a function"

              paul53P 1 Antwort Letzte Antwort
              0
              • W WolfgangFB

                @paul53 sagte in import Syntax:

                @wolfgangfb sagte: myfunc is not a function

                Fehlermeldung des Editors (rote Kringel) oder zur Laufzeit?

                Editor

                Wird nicht 3 im Log ausgegeben?

                Nein, nur die Fehlermeldung "TypeError: myfunc is not a function"

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

                @wolfgangfb sagte: nur die Fehlermeldung "TypeError: myfunc is not a function"

                Bei mir wird die 3 ausgegeben.

                JS_Module.JPG

                Identischer Inhalt in "test2.js".

                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

                W 1 Antwort Letzte Antwort
                0
                • paul53P paul53

                  @wolfgangfb sagte: nur die Fehlermeldung "TypeError: myfunc is not a function"

                  Bei mir wird die 3 ausgegeben.

                  JS_Module.JPG

                  Identischer Inhalt in "test2.js".

                  W Offline
                  W Offline
                  WolfgangFB
                  schrieb am zuletzt editiert von
                  #13

                  @paul53
                  Ich habe jetzt noch folgendes geändert:

                  var myfunc = require('../../../iobroker-data/modules/test.js');
                  console.log("Test: " + typeof(myfunc));
                  console.log(myfunc(4));  
                  

                  Ergebnis:

                  17:28:21.028	info	javascript.0 (304489) Stop script script.js.Test.Neu
                  17:28:21.154	info	javascript.0 (304489) Start javascript script.js.Test.Neu
                  17:28:21.161	info	javascript.0 (304489) script.js.Test.Neu: Test: object
                  17:28:21.162	info	javascript.0 (304489) script.js.Test.Neu: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                  17:28:21.163	error	javascript.0 (304489) script.js.Test.Neu: TypeError: myfunc is not a function
                  17:28:21.163	error	javascript.0 (304489) at script.js.Test.Neu:3:13
                  17:28:21.163	error	javascript.0 (304489) at script.js.Test.Neu:4:3
                  

                  Also myfunc ist ein Object und keine Funktion.

                  T paul53P 2 Antworten Letzte Antwort
                  0
                  • W WolfgangFB

                    @paul53
                    Ich habe jetzt noch folgendes geändert:

                    var myfunc = require('../../../iobroker-data/modules/test.js');
                    console.log("Test: " + typeof(myfunc));
                    console.log(myfunc(4));  
                    

                    Ergebnis:

                    17:28:21.028	info	javascript.0 (304489) Stop script script.js.Test.Neu
                    17:28:21.154	info	javascript.0 (304489) Start javascript script.js.Test.Neu
                    17:28:21.161	info	javascript.0 (304489) script.js.Test.Neu: Test: object
                    17:28:21.162	info	javascript.0 (304489) script.js.Test.Neu: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                    17:28:21.163	error	javascript.0 (304489) script.js.Test.Neu: TypeError: myfunc is not a function
                    17:28:21.163	error	javascript.0 (304489) at script.js.Test.Neu:3:13
                    17:28:21.163	error	javascript.0 (304489) at script.js.Test.Neu:4:3
                    

                    Also myfunc ist ein Object und keine Funktion.

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

                    @wolfgangfb

                    Der Link ist doch oben im Topic...

                    Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                    Spenden

                    1 Antwort Letzte Antwort
                    0
                    • W Offline
                      W Offline
                      WolfgangFB
                      schrieb am zuletzt editiert von
                      #15

                      @ticaki sagte in import Syntax:

                      @wolfgangfb

                      Der Link ist doch oben im Topic...

                      Ich sehe in dem Topic aber ehrlich gesagt keine Lösung für das Einbinden einer externen Funktion.

                      T 1 Antwort Letzte Antwort
                      0
                      • W WolfgangFB

                        @paul53
                        Ich habe jetzt noch folgendes geändert:

                        var myfunc = require('../../../iobroker-data/modules/test.js');
                        console.log("Test: " + typeof(myfunc));
                        console.log(myfunc(4));  
                        

                        Ergebnis:

                        17:28:21.028	info	javascript.0 (304489) Stop script script.js.Test.Neu
                        17:28:21.154	info	javascript.0 (304489) Start javascript script.js.Test.Neu
                        17:28:21.161	info	javascript.0 (304489) script.js.Test.Neu: Test: object
                        17:28:21.162	info	javascript.0 (304489) script.js.Test.Neu: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                        17:28:21.163	error	javascript.0 (304489) script.js.Test.Neu: TypeError: myfunc is not a function
                        17:28:21.163	error	javascript.0 (304489) at script.js.Test.Neu:3:13
                        17:28:21.163	error	javascript.0 (304489) at script.js.Test.Neu:4:3
                        

                        Also myfunc ist ein Object und keine Funktion.

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

                        @wolfgangfb sagte: myfunc ist ein Object und keine Funktion.

                        Bei mir:

                        JS_Module.JPG

                        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

                        W 2 Antworten Letzte Antwort
                        0
                        • paul53P paul53

                          @wolfgangfb sagte: myfunc ist ein Object und keine Funktion.

                          Bei mir:

                          JS_Module.JPG

                          W Offline
                          W Offline
                          WolfgangFB
                          schrieb am zuletzt editiert von
                          #17

                          @paul53

                          Jetzt bin ich völlig ratlos. Wenn ich die Datei in "test2.js" umbenenne (und das ganze natürlich auch in required... anpasse) funktioniert das ganze tadellos. Benenne ich wieder zurück in test.js wird es wieder als Object erkannt und funktioniert nicht. Was könnte der Grund für so ein seltsames Verhalten sein?

                          paul53P 1 Antwort Letzte Antwort
                          0
                          • W WolfgangFB

                            @paul53

                            Jetzt bin ich völlig ratlos. Wenn ich die Datei in "test2.js" umbenenne (und das ganze natürlich auch in required... anpasse) funktioniert das ganze tadellos. Benenne ich wieder zurück in test.js wird es wieder als Object erkannt und funktioniert nicht. Was könnte der Grund für so ein seltsames Verhalten sein?

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

                            @wolfgangfb sagte: Was könnte der Grund für so ein seltsames Verhalten sein?

                            Keine Ahnung.

                            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

                            1 Antwort Letzte Antwort
                            0
                            • W WolfgangFB

                              @ticaki sagte in import Syntax:

                              @wolfgangfb

                              Der Link ist doch oben im Topic...

                              Ich sehe in dem Topic aber ehrlich gesagt keine Lösung für das Einbinden einer externen Funktion.

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

                              @wolfgangfb sagte in import Syntax:

                              @ticaki sagte in import Syntax:

                              @wolfgangfb

                              Der Link ist doch oben im Topic...

                              Ich sehe in dem Topic aber ehrlich gesagt keine Lösung für das Einbinden einer externen Funktion.

                              Also siehst du nicht das dort eine externe class über eine require funktion eingebetet wird.

                              Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                              Spenden

                              1 Antwort Letzte Antwort
                              0
                              • paul53P paul53

                                @wolfgangfb sagte: myfunc ist ein Object und keine Funktion.

                                Bei mir:

                                JS_Module.JPG

                                W Offline
                                W Offline
                                WolfgangFB
                                schrieb am zuletzt editiert von
                                #20

                                @paul53
                                Ich habe jetzt folgendes festgestelle: Erstelle ich eine neues npm Modul funktioniert das ganze, änder ich in dem Modul etwas ab und speichere werden die Änderungen nicht übernommen. Auch wenn ich z.B. ein einmal funktionierendes Modul umbennen kommt keine Fehlermeldung, dass das Modul nicht existiert.
                                Gibt es einen Weg js dazu zu bringen, das Modul neu einzulesen? (irgendwie cache leeren oder ähnliches)

                                paul53P 1 Antwort Letzte Antwort
                                0
                                • W WolfgangFB

                                  @paul53
                                  Ich habe jetzt folgendes festgestelle: Erstelle ich eine neues npm Modul funktioniert das ganze, änder ich in dem Modul etwas ab und speichere werden die Änderungen nicht übernommen. Auch wenn ich z.B. ein einmal funktionierendes Modul umbennen kommt keine Fehlermeldung, dass das Modul nicht existiert.
                                  Gibt es einen Weg js dazu zu bringen, das Modul neu einzulesen? (irgendwie cache leeren oder ähnliches)

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

                                  @wolfgangfb sagte: Modul neu einzulesen?

                                  Genügt ein Skriptstart nicht? "require" wird bei Skriptstart ausgeführt.

                                  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

                                  W 1 Antwort Letzte Antwort
                                  0
                                  • paul53P paul53

                                    @wolfgangfb sagte: Modul neu einzulesen?

                                    Genügt ein Skriptstart nicht? "require" wird bei Skriptstart ausgeführt.

                                    W Offline
                                    W Offline
                                    WolfgangFB
                                    schrieb am zuletzt editiert von
                                    #22

                                    @paul53

                                    Probiere es aus. Ich habe ein neues Modul erstellt.

                                    excports.xplus1 = function(x){return (x + 1)}
                                    

                                    in der aufrufenden Funktion dann

                                    const myfunc= require(...);
                                    console.log(myfunc.xplus1(10));
                                    

                                    Ergebnis: 11

                                    änder ich jetzt in der exportieren Funktion etwas (z.B. anstelle von x + 1 => x + 2 kann ich speichern so viel ih will, es kommt immer 11 raus. Selbs wenn ich das Modul mit dem Export komplett lösche kann ich es immer noch aufrufen (mit dem Ergebnis 11), das muss irgendwo im Cache liegen.

                                    paul53P 1 Antwort Letzte Antwort
                                    0
                                    • W WolfgangFB

                                      @paul53

                                      Probiere es aus. Ich habe ein neues Modul erstellt.

                                      excports.xplus1 = function(x){return (x + 1)}
                                      

                                      in der aufrufenden Funktion dann

                                      const myfunc= require(...);
                                      console.log(myfunc.xplus1(10));
                                      

                                      Ergebnis: 11

                                      änder ich jetzt in der exportieren Funktion etwas (z.B. anstelle von x + 1 => x + 2 kann ich speichern so viel ih will, es kommt immer 11 raus. Selbs wenn ich das Modul mit dem Export komplett lösche kann ich es immer noch aufrufen (mit dem Ergebnis 11), das muss irgendwo im Cache liegen.

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

                                      @wolfgangfb sagte: das muss irgendwo im Cache liegen.

                                      Neustart der Javascript-Instanz?

                                      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

                                      W 1 Antwort Letzte Antwort
                                      0
                                      • paul53P paul53

                                        @wolfgangfb sagte: das muss irgendwo im Cache liegen.

                                        Neustart der Javascript-Instanz?

                                        W Offline
                                        W Offline
                                        WolfgangFB
                                        schrieb am zuletzt editiert von
                                        #24

                                        @paul53

                                        Das funktioniert taatsächlich, ist aber ziemlich blöd wenn man etwas entwickeln möchte. Bei jedem Fehler oder jeder Änderung die JS Instanz neu starten. Das muss auch irgendwie aders gehen.

                                        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

                                        761

                                        Online

                                        32.5k

                                        Benutzer

                                        81.7k

                                        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