Skip to content
  • Home
  • 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
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. import Syntax

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    5
    1
    43

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.4k

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

import Syntax

Scheduled Pinned Locked Moved JavaScript
24 Posts 4 Posters 917 Views 2 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.
  • W WolfgangFB

    Laut JS Doku sollte der Aufruf

    import {Testfunktion} from './Funktion';
    

    die Funktion "Testfunktion" aus dem Modul "Funktion" importieren. So funktioniert das aber nicht. (Fehler)

    Ist meine Syntax falsch oder ist diese Funktion einfach nicht implementiert?

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

    @wolfgangfb

    https://forum.iobroker.net/post/1078724

    Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

    Spenden

    1 Reply Last reply
    0
    • W WolfgangFB

      Laut JS Doku sollte der Aufruf

      import {Testfunktion} from './Funktion';
      

      die Funktion "Testfunktion" aus dem Modul "Funktion" importieren. So funktioniert das aber nicht. (Fehler)

      Ist meine Syntax falsch oder ist diese Funktion einfach nicht implementiert?

      paul53P Offline
      paul53P Offline
      paul53
      wrote on last edited by paul53
      #5

      @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()));
      

      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 Reply Last reply
      0
      • 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
        wrote on last edited by
        #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 Reply Last reply
        0
        • W Offline
          W Offline
          WolfgangFB
          wrote on last edited by
          #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 Reply Last reply
          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
            wrote on last edited by 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 Reply Last reply
            0
            • W Offline
              W Offline
              WolfgangFB
              wrote on last edited by
              #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 Reply Last reply
              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
                wrote on last edited by
                #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 Reply Last reply
                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
                  wrote on last edited by
                  #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 Reply Last reply
                  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
                    wrote on last edited by
                    #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 Reply Last reply
                    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
                      wrote on last edited by
                      #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 Replies Last reply
                      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 Do not disturb
                        T Do not disturb
                        ticaki
                        wrote on last edited by
                        #14

                        @wolfgangfb

                        Der Link ist doch oben im Topic...

                        Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                        Spenden

                        1 Reply Last reply
                        0
                        • W Offline
                          W Offline
                          WolfgangFB
                          wrote on last edited by
                          #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 Reply Last reply
                          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
                            wrote on last edited by
                            #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 Replies Last reply
                            0
                            • paul53P paul53

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

                              Bei mir:

                              JS_Module.JPG

                              W Offline
                              W Offline
                              WolfgangFB
                              wrote on last edited by
                              #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 Reply Last reply
                              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
                                wrote on last edited by
                                #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 Reply Last reply
                                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 Do not disturb
                                  T Do not disturb
                                  ticaki
                                  wrote on last edited by
                                  #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 Reply Last reply
                                  0
                                  • paul53P paul53

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

                                    Bei mir:

                                    JS_Module.JPG

                                    W Offline
                                    W Offline
                                    WolfgangFB
                                    wrote on last edited by
                                    #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 Reply Last reply
                                    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
                                      wrote on last edited by
                                      #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 Reply Last reply
                                      0
                                      • paul53P paul53

                                        @wolfgangfb sagte: Modul neu einzulesen?

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

                                        W Offline
                                        W Offline
                                        WolfgangFB
                                        wrote on last edited by
                                        #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 Reply Last reply
                                        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
                                          wrote on last edited by
                                          #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 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

                                          424

                                          Online

                                          32.5k

                                          Users

                                          81.7k

                                          Topics

                                          1.3m

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

                                          • Don't have an account? Register

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