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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.7k

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

Javascript für Import wird nicht gefunden

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
19 Beiträge 3 Kommentatoren 231 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?

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

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

    Die zusätzlichen NPM-Module für die Javascript-Instanz werden unter "/opt/iobroker/node_modules/@iobroker-javascript.0/" abgelegt.
    Vermutlich kann man dort auch eigene Module ablegen?

    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:

      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 Online
      ofri2607O Online
      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 Online
        ofri2607O Online
        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 Online
            ofri2607O Online
            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 Online
                ofri2607O Online
                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 Online
                      ofri2607O Online
                      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 Online
                          ofri2607O Online
                          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

                                437

                                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