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

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

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

Geplant Angeheftet Gesperrt Verschoben Entwicklung
12 Beiträge 4 Kommentatoren 3.1k Aufrufe
  • Ä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.
  • ruhr70R Offline
    ruhr70R Offline
    ruhr70
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    0
    • paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      0
      • ruhr70R Offline
        ruhr70R Offline
        ruhr70
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        0
        • ruhr70R Offline
          ruhr70R Offline
          ruhr70
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          0
          • ruhr70R Offline
            ruhr70R Offline
            ruhr70
            schrieb am zuletzt editiert von
            #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 Antwort Letzte Antwort
            0
            • BluefoxB Offline
              BluefoxB Offline
              Bluefox
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              0
              • ruhr70R Offline
                ruhr70R Offline
                ruhr70
                schrieb am zuletzt editiert von
                #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 Antwort Letzte Antwort
                0
                • ThisoftT Offline
                  ThisoftT Offline
                  Thisoft
                  schrieb am zuletzt editiert von
                  #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 Antwort Letzte Antwort
                  0
                  • ruhr70R Offline
                    ruhr70R Offline
                    ruhr70
                    schrieb am zuletzt editiert von
                    #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 Antwort Letzte Antwort
                    0
                    • ThisoftT Offline
                      ThisoftT Offline
                      Thisoft
                      schrieb am zuletzt editiert von
                      #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 Antwort Letzte Antwort
                      0
                      • ruhr70R Offline
                        ruhr70R Offline
                        ruhr70
                        schrieb am zuletzt editiert von
                        #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 Antwort Letzte Antwort
                        0
                        • BluefoxB Offline
                          BluefoxB Offline
                          Bluefox
                          schrieb am zuletzt editiert von
                          #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 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

                          676

                          Online

                          32.6k

                          Benutzer

                          82.3k

                          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