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. Entwicklung
  4. (beantwortet) Frage zu npm - neues Modul laden (extraneous)

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    16
    1
    290

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

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

(beantwortet) Frage zu npm - neues Modul laden (extraneous)

Scheduled Pinned Locked Moved Entwicklung
12 Posts 4 Posters 3.1k Views
  • 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.
  • ruhr70R Offline
    ruhr70R Offline
    ruhr70
    wrote on last edited by
    #1

    Anfängerfrage zum Thema npm. Ich brauche einen Anstoss, um hier weiter zu kommen. :( :?:

    Ich versuche ein npm Modul zu laden und in einem Script zu verwenden.

    Das Modul: https://circuitsandbox.net/circuit.tgz

    Beschreibung: https://circuitsandbox.net/sdk/#GettingStartedClient

    Installation im iobroker Verzeichnis mit:

    npm install ./circuit.tgz
    

    Danach fällt schon folgendes auf. Ein > node list circuit ergibt:

    Michaels-iMac:iobroker michael$ npm list circuit
    /Users/michael/iobroker
    └─┬ iobroker.javascript@2.0.3
      └── circuit@1.0.0  extraneous
    
    npm ERR! extraneous: circuit@1.0.0 /Users/michael/iobroker/node_modules/iobroker.javascript/node_modules/circuit
    
    

    Soweit ich bisher recherchieren konnte bedeutet"extraneous", dass das Modul nicht verwendet wird?

    Kann hier schon mein Problem liegen?

    Weiter in der Problembeschreibung:

    Das Script:

    `unction main() {
        // Load the circuit module
    [code]    var Circuit = require('circuit');[/code]`
    
        // Instantiate a client and logon
    
        var client = new Circuit.Client();
    
         client.logon({email: 'bob@unify.com', password: 'P@ssw0rd'}).then(function (user) {
    
            log('Logged on user: ' + user);
    
        }, function (err) {
    
            log("circuit error","error");
    
        });
    
    }
    
    main();
    

    Erzeugt folgenden Fehler:

    javascript-2	2016-03-12 18:02:22	error	at script.js.Circuit_für_Forum:396:1
    javascript-2	2016-03-12 18:02:22	error	at main (script.js.Circuit_für_Forum:385:18)
    javascript-2	2016-03-12 18:02:22	error	script.js.Circuit_für_Forum: TypeError: Circuit.Client is not a function
    javascript-2	2016-03-12 18:02:22	info	Start javascript script.js.Circuit_für_Forum
    
        var Circuit = require('circuit');
    ````Wird ohne Fehler ausgeführt. D,h, das Modul ist korrekt vorhanden?
    
    
    var client = new Circuit.Client();
    
    
    Hat jemand einen Denkanstoss für mich. Mache ich grundlegend etwas falsch oder liegt es an dem Modul, welches ich nutzen möchte?
    
    –
    
    iobroker: 0.8.7
    
    node.js: v4.3.0
    
    npm: 2.14.12
    
    Mac OS X 10.11.3
    
    Javascript: 2.0.3

    Adapter: Fritzbox, Unify Circuit
    Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

    1 Reply Last reply
    0
    • paul53P Offline
      paul53P Offline
      paul53
      wrote on last edited by
      #2

      Auf der Seite zum https://www.npmjs.com/package/circuit kann ich keine Methode .Client finden.

      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
      • ruhr70R Offline
        ruhr70R Offline
        ruhr70
        wrote on last edited by
        #3

        @paul53:

        Auf der Seite zum https://www.npmjs.com/package/circuit kann ich keine Methode .Client finden. `

        Das sieht nach einem ganz anderem Modul aus, als dass, was ich nutzen möchte.

        Kann es sein, dass nicht das Module aus der circuit.tgz verwendet wird, sondern das, auf deren Beschreibung Du verlinkt hast?

        Und daher die Methode nicht gefunden wird?

        Adapter: Fritzbox, Unify Circuit
        Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

        1 Reply Last reply
        0
        • ruhr70R Offline
          ruhr70R Offline
          ruhr70
          wrote on last edited by
          #4
              // Load the circuit module
              var circuit = require('circuit');
          
          var message = circuit.prop(function(name) {
            return 'Hello, ' + name;
          });
          
          // set the value to `Alice` 
          message('Alice');
          
          // get the transformed value 
          var a = message(); // a == "Hello, Alice" 
          
          // set the value to `Bob` 
          message('Bob');
          
          // get the transformed value 
          var b = message(); // b == "Hello, Bob" 
          
          log("a = " + a + " ## b = " + b);
          

          Das Script funktioniert.

          javascript-1	2016-03-12 19:53:37	info	script.js.Test_Skript1: a = Hello, Alice ## b = Hello, Bob
          javascript-1	2016-03-12 19:53:37	info	Start javascript script.js.Test_Skript1
          

          Mit var circuit = require('circuit'); wird also das npm Modul verwendet, auf das paul53 verlinkt hat :-(

          Was muss ich denn machen, damit das Modul verwendet wird, das ich aus derDatei circuit.tgz installiert habe?

          Adapter: Fritzbox, Unify Circuit
          Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

          1 Reply Last reply
          0
          • ruhr70R Offline
            ruhr70R Offline
            ruhr70
            wrote on last edited by
            #5

            Nach ein bisschen Recherche…

            • unter ../iobroker/node_modules/circuit
            liegt das Paket, das ich benötige
            
            • unter ../iobroker/node_modules/iobroker.javascript/node_modules/circuit

              liegt das Paket, dessen Beschreibung paul53 verlinkt hat

                var circuit = require('circuit');
            ````verwendet das Modul unter ../iobroker/node_modules/iobroker.javascript/node_modules/circuit
            
            Wie installiere ich das Modul korrekt, so dass man das Ergebnis auch einfach oder in einem Adapter verwenden kann?
            
            Habe ich bei der Installation was falsch gemacht, s.o.?

            Adapter: Fritzbox, Unify Circuit
            Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

            1 Reply Last reply
            0
            • BluefoxB Offline
              BluefoxB Offline
              Bluefox
              wrote on last edited by
              #6

              @ruhr70:

              Nach ein bisschen Recherche…

              • unter ../iobroker/node_modules/circuit
              liegt das Paket, das ich benötige
              
              • unter ../iobroker/node_modules/iobroker.javascript/node_modules/circuit

                liegt das Paket, dessen Beschreibung paul53 verlinkt hat

                  var circuit = require('circuit');
              ````verwendet das Modul unter ../iobroker/node_modules/iobroker.javascript/node_modules/circuit
              
              Wie installiere ich das Modul korrekt, so dass man das Ergebnis auch einfach oder in einem Adapter verwenden kann?
              
              Habe ich bei der Installation was falsch gemacht, s.o.? `  
              

              Du kannst "/iobroker/node_modules/iobroker.javascript/node_modules/circuit" löschen und dann sollte schon dein Modul verwendet werden

              1 Reply Last reply
              0
              • ruhr70R Offline
                ruhr70R Offline
                ruhr70
                wrote on last edited by
                #7

                @Bluefox:

                [

                Du kannst "/iobroker/node_modules/iobroker.javascript/node_modules/circuit" löschen und dann sollte schon dein Modul verwendet werden `

                Danke! Funktioniert leider trotzdem nicht. :roll:

                Ich habe beide Pfade gelöscht. Und im iobroker Verzeichnis neu installiert:

                Michaels-iMac:iobroker michael$ npm install ./circuit.tgz
                \
                > utf-8-validate@1.2.1 install /Users/michael/iobroker/node_modules/circuit/node_modules/ws/node_modules/utf-8-validate
                > node-gyp rebuild
                
                  CXX(target) Release/obj.target/validation/src/validation.o
                  SOLINK_MODULE(target) Release/validation.node
                
                > bufferutil@1.2.1 install /Users/michael/iobroker/node_modules/circuit/node_modules/ws/node_modules/bufferutil
                > node-gyp rebuild
                
                  CXX(target) Release/obj.target/bufferutil/src/bufferutil.o
                  SOLINK_MODULE(target) Release/bufferutil.node
                circuit@1.1.5600-1 node_modules/circuit
                └── ws@0.8.1 (utf-8-validate@1.2.1, bufferutil@1.2.1)
                

                Die Abfrage npm list circuit zeigt nun einen Fehler, den ich vorher nicht hatte (hat nichts mit dem Löschen zu tun. War nach meinen diversen Versuchen irgendwann da):

                Michaels-iMac:iobroker michael$ npm list circuit
                /Users/michael/iobroker
                └── (empty)
                
                npm ERR! code 1
                

                "/iobroker/node_modules/iobroker.javascript/node_modules/circuit" ist gelöscht

                unter "/iobroker/node_modules/circuit" liegt das benötigte Modul.

                Das Testscript:

                ! ````
                // Load the circuit module
                var circuit = require('circuit');
                ! var message = circuit.prop(function(name) {
                return 'Hello, ' + name;
                });

                // set the value to Alice
                message('Alice');

                // get the transformed value
                var a = message(); // a == "Hello, Alice"

                // set the value to Bob
                message('Bob');

                // get the transformed value
                var b = message(); // b == "Hello, Bob"

                ! log("a = " + a + " ## b = " + b);
                ! // Load the circuit module
                var Circuit = require('circuit');
                ! // Instantiate a client and logon
                var client = new Circuit.Client();

                 client.logon({email: 'bob@unify.com', password: 'P@ssw0rd'}).then(function (user) {
                    log('Logged on user: ' + user);
                }, function (err) {
                    log("circuit error","error");
                });
                

                ! ````

                Funktioniert immer noch für das Modul, welches ich unter iobroker.javascript gelöscht hatte und erzeugt für das von mir benötigte Modul immer noch den Fehler.

                javascript-1	2016-03-12 22:00:36	error	at script.js.Test_Skript1:408:18
                javascript-1	2016-03-12 22:00:36	error	script.js.Test_Skript1: TypeError: Circuit.Client is not a function
                javascript-1	2016-03-12 22:00:36	info	script.js.Test_Skript1: a = Hello, Alice ## b = Hello, Bob
                javascript-1	2016-03-12 22:00:36	info	Start javascript script.js.Test_Skript1
                

                Der erste Fehler npm ERR! code 1 war vorher nicht da.

                Vielleicht habe ich zu viel getestet und probiert und was "kaputt gemacht"? :shock:

                [EDIT]

                Funktioniert jetzt.

                Ich musste nach dem Löschen das Modul vom Verzeichnis "/iobroker/node_modules/circuit" nach "/iobroker/node_modules/iobroker.javascript/node_modules/circuit kopieren.

                Adapter: Fritzbox, Unify Circuit
                Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                1 Reply Last reply
                0
                • ThisoftT Offline
                  ThisoftT Offline
                  Thisoft
                  wrote on last edited by
                  #8

                  Also nach meinem Verständnis liegt das Problem doch nicht darin dass das Modul nicht korrekt installiert wäre sondern dass Du den Client falsch aufrufst.

                  Der Fehler ist:
                  ` > ````

                  javascript-1 2016-03-12 22:00:36 error script.js.Test_Skript1: TypeError: Circuit.Client is not a function
                  ```` `

                  Das bedeutet doch dass in der folgenden Zeile was falsch ist:

                  ` > ````

                  var client = new Circuit.Client();
                  

                  ```` `

                  Nur mal eine Vermutung von mir - lass mal die Klammern hinter "Client" weg. Wie gesagt ist ne Vermutung und so toll fit bin ich noch nicht in der Syntax von JS. Könnte auch sein, dass es in dem Modul was Du installiert hast wirklich keine Funktion "Client" gibt…

                  22 HM-Geräte; PivCCU2 auf RasPi

                  ioBroker-Multihost; Ubuntu-Master auf Intel-Atom und 3 RasPi-Clients

                  1 Reply Last reply
                  0
                  • ruhr70R Offline
                    ruhr70R Offline
                    ruhr70
                    wrote on last edited by
                    #9

                    @Thisoft:

                    Also nach meinem Verständnis liegt das Problem doch nicht darin dass das Modul nicht korrekt installiert wäre sondern dass Du den Client falsch aufrufst.

                    Der Fehler ist:
                    ` > ````

                    javascript-1 2016-03-12 22:00:36 error script.js.Test_Skript1: TypeError: Circuit.Client is not a function
                    ```` `

                    Das bedeutet doch dass in der folgenden Zeile was falsch ist:

                    ` > ````

                    var client = new Circuit.Client();
                    

                    ```` `

                    Nur mal eine Vermutung von mir - lass mal die Klammern hinter "Client" weg. Wie gesagt ist ne Vermutung und so toll fit bin ich noch nicht in der Syntax von JS. Könnte auch sein, dass es in dem Modul was Du installiert hast wirklich keine Funktion "Client" gibt… `

                    Hallo Thisoft,

                    danke für Dein Feedback. Der Aufruf im Script ist richtig. Ist auch eine 1:1 Kopie aus dem Beispiel für das Modul.

                    Es funktioniert jetzt. Es war wirklich die Installation des Moduls. Da das Modul über die gepackte Datei installiert wird und es aber auch ein Modul auf npm mit identischen Namen gibt, hatte ich im Javascript-Verzeichnis das falsche Modul.

                    Ich musste, wie bluefox geschrieben hatte, das Modul im Javascript-Verzeichnis löschen und dann aber noch eine Kopie aus dem "nodes_module" Hauptverzeichnis wieder rein kopieren.

                    Habe viel gelernt. Danke für jedes Feedback.

                    Gruß

                    Michael

                    Adapter: Fritzbox, Unify Circuit
                    Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                    1 Reply Last reply
                    0
                    • ThisoftT Offline
                      ThisoftT Offline
                      Thisoft
                      wrote on last edited by
                      #10

                      OK, schön dass es jetzt bei dir klappt. Hab ich ja gewissermaßen auch wieder was gelernt. Ich bin halt verwöhnt von einer IDE die einem fehlende Verweise ('require') schon im Editor "um die Ohren haut".

                      Gruß Thilo

                      22 HM-Geräte; PivCCU2 auf RasPi

                      ioBroker-Multihost; Ubuntu-Master auf Intel-Atom und 3 RasPi-Clients

                      1 Reply Last reply
                      0
                      • ruhr70R Offline
                        ruhr70R Offline
                        ruhr70
                        wrote on last edited by
                        #11

                        @Thisoft:

                        …Ich bin halt verwöhnt von einer IDE die einem fehlende Verweise ('require') schon im Editor "um die Ohren haut". `

                        Hi Thilo,

                        das 'require' war auch korrekt vorhanden. Es lag wirklich an den unterschiedlichen "circuit" node Modulen.

                        Die Erkenntnisse aus den Tests zusammengefasst, ohne Anspruch auf Richtigkeit:

                        <size size="150">"/iobroker/node_modules/"</size>

                        • Hier liegen die Pakte, die von iobroker und node.js verwendet werden.?

                        <size size="150">"/iobroker/node_modules/iobroker.adaptername/node_modules/"</size>

                        • Hier liegen die Pakete, die zusätzlich von einem Adapter verwendet werden. Die Pakete sind für alle Instanzen eines Adapter identisch.

                        • Automatische Installation durch den Adapter während dessen Installation. Welche Module individuell für den Adapter installiert werden steht in der package.json des Adapters unter "dependencies".

                        • Manuelle Installation durch den Anwender: für den Javascript Adapter, siehe nächster iobroker.admin, Reiter Instanzen: "

                        • Manuelle Installation durch den Anwender: im Verzeichnis "/iobroker/node_modules/iobroker.javascript/" npm ausführen, z.B. > npm install bleacon (wenn ein Modul direkt von npm installiert werden oder z.B. > npm install ./circuit.tgz, wenn ein Modul, welches in dem Verzeichnis lokal liegt, installiert werden soll.

                        <size size="150">iobroker.admin, Reiter Instanzen:</size>

                        • Hier können im Javascript Adapter runter "Zusätzliche NPM-Module" zusätzliche npm Module installiert werden, die auf npm bekannt sind.

                        • Die Module werden nach dem Speichern der Einstellungen unter "/iobroker/node_modules/iobroker.javascript/node_modules/" installiert (Log kontrollieren). Wenn sie einmal installiert sind, könnte der Eintrag in den Einstellungen des Adapter s auch raus.

                        • Einige Module werden mit dem Javascript-Adapter schon vorinstalliert, wie z.B. wake_on_lan, request, suncalc.

                          Auszug aus der package.json des JavaScript-Adapters (die Quellen der Adapter liegen auf npm):

                            "dependencies": {
                              "node-schedule": "1.0.0",
                              "request": "^2.69.0",
                              "suncalc": "^1.7.0",
                              "wake_on_lan": "0.0.4",
                              "coffee-compiler": "^0.3.2",
                              "coffee-script": ">=1.10.0"
                            },
                          

                          Auszug aus der package.json des Sonor-Adapters (hier liegt die Quelle des Moduls nicht auf npm):

                          ,
                            "dependencies": {
                              "sonos-web-controller": "https://github.com/jishi/node-sonos-web-controller/tarball/master/"
                            },
                          
                        • Die Module fs, crypto, util, path, os, net, events, dns sollen laut Javascript Adapter Dokumentation auch vorinstalliert sein, tauchen aber unter

                          "/iobroker/node_modules/iobroker.javascript/node_modules/" nicht auf. Sie sind auch unter "/iobroker/node_modules/" nicht zu finden. offene Frage: wo werden diese Module abgelegt?

                        <size size="150">Dokumentation von npm Modulen</size>

                        • auf https://www.npmjs.com findet man die Dokumentation zu den dort vorhandenen npm Modulen

                        • Beispiel für das Modul request: https://www.npmjs.com/package/request

                        Adapter: Fritzbox, Unify Circuit
                        Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                        1 Reply Last reply
                        0
                        • BluefoxB Offline
                          BluefoxB Offline
                          Bluefox
                          wrote on last edited by
                          #12

                          @ruhr70:

                          • Die Module fs, crypto, util, path, os, net, events, dns sollen laut Javascript Adapter Dokumentation auch vorinstalliert sein, tauchen aber unter

                            "/iobroker/node_modules/iobroker.javascript/node_modules/" nicht auf. Sie sind auch unter "/iobroker/node_modules/" nicht zu finden. offene Frage: wo werden diese Module abgelegt? `
                            Das sind eingebaute Module. Die sind im node.js Core drin und müssen nicht installiert sein:

                          assert
                          buffer
                          child_process
                          cluster
                          crypto
                          dgram
                          dns
                          events
                          fs
                          http
                          https
                          net
                          os
                          path
                          punycode
                          querystring
                          readline
                          repl
                          string_decoder
                          tls
                          tty
                          url
                          util
                          vm
                          zlib
                          
                          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

                          592

                          Online

                          32.7k

                          Users

                          82.5k

                          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