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 für Import wird nicht gefunden

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    11
    1
    88

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    556

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.7k

Javascript für Import wird nicht gefunden

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
19 Beiträge 3 Kommentatoren 254 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.
  • R Rolli2

    @ofri2607 sagte in Javascript für Import wird nicht gefunden:

    Hast du auch in der javascript Instanz bei den Allgemeinen Einstellungen unter „Mirror scripts to file path“ den Pfad angegeben?

    Danke dir.
    Nein, ich hatte da nix und hab da jetzt "/home/iobroker/skripte" eingetragen und auch das Skript neu gestartet.
    Funktioniert aber nicht. Es kommt diese Fehlermeldung:
    ea1e1445-e347-40cf-bbcd-a1e3913513e9-grafik.png
    Der packt da immer noch "@iobroker-javascript.0/" davor.
    Funktioniert auch nicht, wenn ich da relative Pfade verwende. Also z.B. nur "skripte".

    In meiner Javascript Instanz habe ich allerdings keine NMP-Module eingetragen:
    1bceb2c5-cd7f-43c4-89b7-3ddad1a09738-grafik.png
    Aber ich vermute, die haben nix damit zu tun, oder?

    ofri2607O Offline
    ofri2607O Offline
    ofri2607
    schrieb am zuletzt editiert von
    #6

    @Rolli2 sagte in Javascript für Import wird nicht gefunden:

    Aber ich vermute, die haben nix damit zu tun, oder?

    Wie paul53 schon geschrieben, nein daran liegt es nicht.

    @Rolli2 sagte in Javascript für Import wird nicht gefunden:

    und auch das Skript neu gestartet

    Du musst nach Änderungen in der Klasse immer die javascript Instanz neu starten; nicht nur das Skript.
    Sonst wird die Änderung nicht geladen.

    Ich nutze kein Blockly, daher kann ich dir leider nicht sagen, ob es ev. daran liegt?

    Aber hier ein kleines Beispiel aus einem meiner Skripte, wie es bei mir läuft:
    In meinem Fall heißt die Klasse "class_Diagamm" und ist direkt im Javascript Adapter im Ordner "Module" abgespeichert:
    cf9bb05f-d373-4d14-9afc-079e7a2f4c79-image.png

    Code in der Klasse:

    class Diagramm {
        #_iob;
        #_dps;
        #_tf;
        #_debug;
    
        constructor(iob, dataPointsSettings, timeForerun, debug) {
        	this.#_iob = iob || null;
        	this.#_dps = Object.assign({}, dataPointsSettings);
            this.#_tf = timeForerun || 0;
        	this.#_debug = debug || false;
         }
    
         get refreshSecond() {return Math.floor(Math.random() * 59 + 1 )}
         // und weiterer Code in der Klasse
    }
    module.exports = { Diagramm };
    

    ... und vereinfacht der Code zum Laden der Klasse in einem anderen js, sowie dann der Aufruf einer Funktion aus der Klasse (hier als Bsp. "refreshSecond").

    const pathToModule = '/home/iobroker/skripte/Module/class_Diagramm.js'; 
    let DiaAZRaumklima = null;
    const loadModules = () => {
        return new Promise(async (resolve, reject) => {
             try {               
                  const { Diagramm } = require(pathToModule);
                  DiaAZRaumklima = new Diagramm(this, DiaAZRaumklimaSETTINGS, DiaAZRaumklimaUSERINPUT.Vorlaufzeit, DiaAZRaumklimaUSERINPUT.Debugging);
                  resolve(true);
             } catch (err) {reject(err)}
        })
    }
    
    await loadModules();
    const refreshSecond = DiaAZRaumklima.refreshSecond;
    //und weiterer Code im js
    
    1 Antwort Letzte Antwort
    1
    • paul53P paul53

      @Rolli2 sagte: die haben nix damit zu tun, oder?

      Nein, haben sie nicht.

      Ich speichere eigene Module unter "iobroker-data/modules", damit sie mit dem ioBroker-Backup gesichert werden. Der Aufruf im Skript erfolgt dann so:

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

      EDIT: Gerade getestet: Es funktioniert so offenbar nicht mehr!

      ofri2607O Offline
      ofri2607O Offline
      ofri2607
      schrieb am zuletzt editiert von ofri2607
      #7

      @paul53 sagte in Javascript für Import wird nicht gefunden:

      Ich speichere eigene Module unter "iobroker-data/modules", damit sie mit dem ioBroker-Backup gesichert werden.

      Ich denke du hast dann die Module aber nicht direkt im Javascript Adapter, oder? (siehe mein Bild im obigen Post)

      Ich nutze da den Weg das ich so alles direkt im Adapter habe und damit keine "externen" Files benötige.
      Die Sicherung ist damit auch gegeben.

      Zu den eigenen Modulen bei den zusätzlichen NPM-Modulen ablegen, gibt es einen Thread im Forum, finde ihn aber gerade nicht.
      Edit: hier ist der Link zu dem Thread, aus diesem habe ich auch die o.a. Lösung von @ticaki (siehe Beitrag 17)
      https://forum.iobroker.net/topic/70069/einfügen-von-js-klassen-aus-eigenem-npm-modul

      paul53P 1 Antwort Letzte Antwort
      0
      • ofri2607O ofri2607

        @paul53 sagte in Javascript für Import wird nicht gefunden:

        Ich speichere eigene Module unter "iobroker-data/modules", damit sie mit dem ioBroker-Backup gesichert werden.

        Ich denke du hast dann die Module aber nicht direkt im Javascript Adapter, oder? (siehe mein Bild im obigen Post)

        Ich nutze da den Weg das ich so alles direkt im Adapter habe und damit keine "externen" Files benötige.
        Die Sicherung ist damit auch gegeben.

        Zu den eigenen Modulen bei den zusätzlichen NPM-Modulen ablegen, gibt es einen Thread im Forum, finde ihn aber gerade nicht.
        Edit: hier ist der Link zu dem Thread, aus diesem habe ich auch die o.a. Lösung von @ticaki (siehe Beitrag 17)
        https://forum.iobroker.net/topic/70069/einfügen-von-js-klassen-aus-eigenem-npm-modul

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

        @ofri2607 sagte: Link zu dem Thread

        Im November 2023 hat meine Lösung auch noch funktioniert.

        Problem ist, dass neuerdings
        @Rolli2 sagte in Javascript für Import wird nicht gefunden:

        packt da immer noch "@iobroker-javascript.0/" davor.

        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
        • ofri2607O Offline
          ofri2607O Offline
          ofri2607
          schrieb am zuletzt editiert von
          #9

          @paul53
          Ok, interessant.
          Kann das dann nicht ev. mit Blockly zusammenhängen? So wie ich den Screenshot von @rolli2 deute, hat er das in Blockly aufgebaut.
          Die Lösung wie oben dargestellt, läuft so bei mir zuverlässig in zahlreichen Skripten und übersteht auch Neustarts vom ioBroker und dgl.

          paul53P R 2 Antworten Letzte Antwort
          0
          • ofri2607O ofri2607

            @paul53
            Ok, interessant.
            Kann das dann nicht ev. mit Blockly zusammenhängen? So wie ich den Screenshot von @rolli2 deute, hat er das in Blockly aufgebaut.
            Die Lösung wie oben dargestellt, läuft so bei mir zuverlässig in zahlreichen Skripten und übersteht auch Neustarts vom ioBroker und dgl.

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

            @ofri2607 sagte: Die Lösung wie oben dargestellt, läuft so bei mir zuverlässig

            Ja, funktioniert bei mir auch nach Instanz-Neustart:

            const myfunc = require('/home/iobroker/scripts/modules/test.js');
            
            log(myfunc(new Date()));
            

            modules.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

            ofri2607O 1 Antwort Letzte Antwort
            0
            • paul53P paul53

              @ofri2607 sagte: Die Lösung wie oben dargestellt, läuft so bei mir zuverlässig

              Ja, funktioniert bei mir auch nach Instanz-Neustart:

              const myfunc = require('/home/iobroker/scripts/modules/test.js');
              
              log(myfunc(new Date()));
              

              modules.JPG

              ofri2607O Offline
              ofri2607O Offline
              ofri2607
              schrieb am zuletzt editiert von
              #11

              @paul53
              Ja, Neustart der Instanz ist leider bei jeder Änderung in der Klasse erforderlich.

              @rolli2
              Ich habe dein Beispiel jetzt mal auf die Schnelle in meiner Umgebung nachgestellt, siehe:

              Die Klasse "Person":
              4003d6d0-2afb-4fa2-a8d4-2f40fe6ce360-image.png

              Das js TEST_Person:
              eef01c2a-4823-447a-8e8a-4ce7b9806947-image.png

              1 Antwort Letzte Antwort
              0
              • ofri2607O ofri2607

                @paul53
                Ok, interessant.
                Kann das dann nicht ev. mit Blockly zusammenhängen? So wie ich den Screenshot von @rolli2 deute, hat er das in Blockly aufgebaut.
                Die Lösung wie oben dargestellt, läuft so bei mir zuverlässig in zahlreichen Skripten und übersteht auch Neustarts vom ioBroker und dgl.

                R Offline
                R Offline
                Rolli2
                schrieb am zuletzt editiert von
                #12

                @ofri2607 sagte in Javascript für Import wird nicht gefunden:

                So wie ich den Screenshot von @rolli2 deute, hat er das in Blockly aufgebaut.

                Korrekt, ich hab's in Blockly gebaut.

                @ofri2607 sagte in Javascript für Import wird nicht gefunden:

                Ja, Neustart der Instanz ist leider bei jeder Änderung in der Klasse erforderlich.

                Die Javainstanz startet ja automatisch neu, wenn ich irgendwas darin ändere.

                @ofri2607 sagte in Javascript für Import wird nicht gefunden:

                Ich habe dein Beispiel jetzt mal auf die Schnelle in meiner Umgebung nachgestellt,

                Du hast's ja nicht in Blockly gebaut. Dann scheint's ja wirklich daran zu liegen.

                @paul53 sagte in Javascript für Import wird nicht gefunden:

                EDIT: Gerade getestet: Es funktioniert so offenbar nicht mehr!

                Aber bei dir scheinen Sachen ja auch "nicht mehr" zu funktionieren.

                paul53P ofri2607O 2 Antworten Letzte Antwort
                0
                • R Rolli2

                  @ofri2607 sagte in Javascript für Import wird nicht gefunden:

                  So wie ich den Screenshot von @rolli2 deute, hat er das in Blockly aufgebaut.

                  Korrekt, ich hab's in Blockly gebaut.

                  @ofri2607 sagte in Javascript für Import wird nicht gefunden:

                  Ja, Neustart der Instanz ist leider bei jeder Änderung in der Klasse erforderlich.

                  Die Javainstanz startet ja automatisch neu, wenn ich irgendwas darin ändere.

                  @ofri2607 sagte in Javascript für Import wird nicht gefunden:

                  Ich habe dein Beispiel jetzt mal auf die Schnelle in meiner Umgebung nachgestellt,

                  Du hast's ja nicht in Blockly gebaut. Dann scheint's ja wirklich daran zu liegen.

                  @paul53 sagte in Javascript für Import wird nicht gefunden:

                  EDIT: Gerade getestet: Es funktioniert so offenbar nicht mehr!

                  Aber bei dir scheinen Sachen ja auch "nicht mehr" zu funktionieren.

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

                  @Rolli2 sagte: Aber bei dir scheinen Sachen ja auch "nicht mehr" zu funktionieren.

                  In der "alten" Version hat es nicht mehr funktioniert, was daran liegen kann, dass beim Neuaufsetzen von ioBroker (neuer PC) das Verzeichnis "iobroker-data/modules" nicht restored wurde.
                  Mit dem Erstellen der Module im Skript-Editor unter der Gruppe "modules" und dem geänderten Pfad "/home/iobroker/scripts/modules/test.js" funktioniert es. "/home/iobroker/scripts" ist der Spiegelpfad bei mir.

                  Es funktioniert auch innerhalb einer JS-Funktion in Blockly.

                  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
                  • R Rolli2

                    @ofri2607 sagte in Javascript für Import wird nicht gefunden:

                    So wie ich den Screenshot von @rolli2 deute, hat er das in Blockly aufgebaut.

                    Korrekt, ich hab's in Blockly gebaut.

                    @ofri2607 sagte in Javascript für Import wird nicht gefunden:

                    Ja, Neustart der Instanz ist leider bei jeder Änderung in der Klasse erforderlich.

                    Die Javainstanz startet ja automatisch neu, wenn ich irgendwas darin ändere.

                    @ofri2607 sagte in Javascript für Import wird nicht gefunden:

                    Ich habe dein Beispiel jetzt mal auf die Schnelle in meiner Umgebung nachgestellt,

                    Du hast's ja nicht in Blockly gebaut. Dann scheint's ja wirklich daran zu liegen.

                    @paul53 sagte in Javascript für Import wird nicht gefunden:

                    EDIT: Gerade getestet: Es funktioniert so offenbar nicht mehr!

                    Aber bei dir scheinen Sachen ja auch "nicht mehr" zu funktionieren.

                    ofri2607O Offline
                    ofri2607O Offline
                    ofri2607
                    schrieb am zuletzt editiert von
                    #14

                    @Rolli2 sagte in Javascript für Import wird nicht gefunden:

                    startet ja automatisch neu, wenn ich irgendwas darin ändere

                    In den Instanzeinstellungen ja, wenn du nur im Code was änderst, dann nicht.

                    1 Antwort Letzte Antwort
                    0
                    • paul53P Offline
                      paul53P Offline
                      paul53
                      schrieb am zuletzt editiert von paul53
                      #15

                      Anmerkung: Das Vorgehen von @ofri2607 mit einer Gruppe für eigene Node-Module hat den Vorteil, dass im Spiegelverzeichnis die Rechte für den User "iobroker" passen und man das Modul-Skript nicht erst in eine Datei kopieren muss.

                      @ofri2607 sagte in Javascript für Import wird nicht gefunden:

                      würde der Pfad bei dir „ /home/iobroker/skripte/Person.js“ lauten.

                      Der korrekte Pfad wäre gewesen:

                      const Person = require('/home/iobroker/skripte/common/Person.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

                      R 1 Antwort Letzte Antwort
                      1
                      • ofri2607O Offline
                        ofri2607O Offline
                        ofri2607
                        schrieb am zuletzt editiert von
                        #16

                        @paul53
                        Danke für die Korrektur im Pfad 👍
                        Da war meine Angabe falsch. Ich editiere es in meinem Post oben auch noch

                        1 Antwort Letzte Antwort
                        0
                        • paul53P paul53

                          Anmerkung: Das Vorgehen von @ofri2607 mit einer Gruppe für eigene Node-Module hat den Vorteil, dass im Spiegelverzeichnis die Rechte für den User "iobroker" passen und man das Modul-Skript nicht erst in eine Datei kopieren muss.

                          @ofri2607 sagte in Javascript für Import wird nicht gefunden:

                          würde der Pfad bei dir „ /home/iobroker/skripte/Person.js“ lauten.

                          Der korrekte Pfad wäre gewesen:

                          const Person = require('/home/iobroker/skripte/common/Person.js');
                          
                          R Offline
                          R Offline
                          Rolli2
                          schrieb am zuletzt editiert von
                          #17

                          @paul53
                          Mit dem Pfad funktioniert es auch bei mir in Blockly.
                          dd2587ce-e20e-4787-bfde-4c9237a465fe-grafik.png
                          Vielen Dank @paul53.

                          paul53P 1 Antwort Letzte Antwort
                          0
                          • R Rolli2

                            @paul53
                            Mit dem Pfad funktioniert es auch bei mir in Blockly.
                            dd2587ce-e20e-4787-bfde-4c9237a465fe-grafik.png
                            Vielen Dank @paul53.

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

                            @Rolli2 sagte: funktioniert es auch bei mir in Blockly.

                            Bedenke, dass Person nur innerhalb der JS-Funktion zur Verfügung steht.

                            EDIT: Man kann Blockly allerdings austricksen, indem man eine (globale) Variable mit identischem Bezeichner Person erstellt, die auch einmal verwendet werden muss, damit sie im Skript erhalten bleibt.

                            Blockly_temp.JPG

                            Funktion classPerson():

                            Person = require('/home/iobroker/scripts/modules/Person.js');
                            

                            Funktion modultest(vorname, nachname, alter):

                            const neu = new Person(vorname, nachname, alter);
                            return neu.information();
                            

                            Log:

                            javascript.1	13:31:06.996	info	start JavaScript (Blockly)
                            javascript.1	13:31:07.000	info	function
                            javascript.1	13:31:07.000	info	Mein Name ist Cagney
                            

                            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

                            R 1 Antwort Letzte Antwort
                            0
                            • paul53P paul53

                              @Rolli2 sagte: funktioniert es auch bei mir in Blockly.

                              Bedenke, dass Person nur innerhalb der JS-Funktion zur Verfügung steht.

                              EDIT: Man kann Blockly allerdings austricksen, indem man eine (globale) Variable mit identischem Bezeichner Person erstellt, die auch einmal verwendet werden muss, damit sie im Skript erhalten bleibt.

                              Blockly_temp.JPG

                              Funktion classPerson():

                              Person = require('/home/iobroker/scripts/modules/Person.js');
                              

                              Funktion modultest(vorname, nachname, alter):

                              const neu = new Person(vorname, nachname, alter);
                              return neu.information();
                              

                              Log:

                              javascript.1	13:31:06.996	info	start JavaScript (Blockly)
                              javascript.1	13:31:07.000	info	function
                              javascript.1	13:31:07.000	info	Mein Name ist Cagney
                              
                              R Offline
                              R Offline
                              Rolli2
                              schrieb am zuletzt editiert von
                              #19

                              @paul53 Danke für den Tipp.

                              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

                              357

                              Online

                              32.5k

                              Benutzer

                              81.8k

                              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