Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Error/Bug
    4. Node-Enocean Modul kann nicht per "require" eingebunden werden

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Node-Enocean Modul kann nicht per "require" eingebunden werden

    This topic has been deleted. Only users with topic management privileges can see it.
    • K
      KevinK last edited by

      Hallo zusammen,

      ich arbeite gerade mit Hochdruck daran, EnOcean Komponenten über ioBroker steuern zu können.

      Dazu habe ich das Modul node-enocean per NPM installiert. Bis auf dass serialport und leveldown per build from source installiert wurden, gab es keine Auffälligkeiten bei der Installation von node-enocean.

      Nun kann ich das node-enocean Modul aber nicht per "require" in mein Skript einbinden. Ich erhalte dabei die folgende Fehlermeldung:

      	javascript.0 script.js.common.Enocean_Dimmer: missing ) after argument list at Module._compile (module.js:542:28), at Object.Module._extensions..js (module.js:579:10), at Module.load (module.js:487:32), at tryModuleLoad (module.js:446:12), at Function.Module._load (module.js:438:3), at Module.require (module.js:497:17), at require (internal/module.js:20:19), at require (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:753:32), at script.js.common.Enocean_Dimmer:1:20, at ContextifyScript.Script.runInContext (vm.js:35:29)
      

      Der Require Befehl:

      var enocean      = require("node-enocean");
      

      Könnt ihr mir bitte sagen, wie ich den Fehler beheben kann?

      Vielen Dank im Voraus!
      3122_node-enocean_fehler.jpg

      1 Reply Last reply Reply Quote 0
      • Jey Cee
        Jey Cee Developer last edited by

        Japp installiert das Modul nicht mit npm, sondern Ruf die Einstellungen deiner JavaScript Adapter Instanz auf und trag dort den Namen des Moduls ein.

        Anschließend wird es automatisch installiert und die Instanz startet neu. Danach sollte es funktionieren.

        Gesendet von Unterwegs

        1 Reply Last reply Reply Quote 0
        • K
          KevinK last edited by

          Vielen Dank für den Tipp Jey Cee. Ich habe direkt versucht ihn umzusetzen. Nach dem npm uninstall, cache clear und reboot habe ich node-enocean von ioBroker installieren lassen

          Das Ergebnis ist jedoch, dass die Fehlermeldung beim Aufruf von "Require" wieder auftritt:

          javascript.0	2017-08-09 09:32:45.632	error	at Module._compile (module.js:542:28), at Object.Module._extensions..js (module.js:579:10), at Module.load (module.js:487:32), at tryModuleLoad (module.js:446:12), at Function.Module._
          javascript.0	2017-08-09 09:32:45.632	error	script.js.common.Enocean_Dimmer: missing ) after argument list
          

          Bei der ioBroker Installation des node-enocean treten die folgenden Fehler im Loglevel Error auf (siehe unten).

          Es scheint ja immer zu Problemen mit den Modulen Serialport und Leveldownzu kommen (Habe es schon mehrfach auf verschiedene Arten versucht).

          Können diese Installationsprobleme unter Umständen der Grund sein? Weiß jemand, wie ich sie lösen kann?

          <u>1.)</u>

          javascript.0	2017-08-09 09:25:20.302	error	WARN install No prebuilt binaries found (target=6.11.1 runtime=node arch=arm platform=linux)
          javascript.0	2017-08-09 09:25:20.301	error	prebuild-install
          javascript.0	2017-08-09 09:25:20.282	error	http 404 https://github.com/level/leveldown/releases/download/v1.7.2/leveldown-v1.7.2-node-v48-linux-arm.tar.gz
          javascript.0	2017-08-09 09:25:20.281	error	prebuild-install
          javascript.0	2017-08-09 09:25:19.418	error	prebuild-install http request GET https://github.com/level/leveldown/releases/download/v1.7.2/leveldown-v1.7.2-node-v48-linux-arm.tar.gz
          javascript.0	2017-08-09 09:25:19.418	error	info looking for cached prebuild @ /root/.npm/_prebuilds/https-github.com-level-leveldown-releases-download-v1.7.2-leveldown-v1.7.2-node-v48-linux-arm.tar.gz
          javascript.0	2017-08-09 09:25:19.417	error	prebuild-install
          javascript.0	2017-08-09 09:25:19.399	error	info looking for local prebuild @ prebuilds/leveldown-v1.7.2-node-v48-linux-arm.tar.gz
          javascript.0	2017-08-09 09:25:19.398	error	prebuild-install
          javascript.0	2017-08-09 09:25:19.385	error	info begin Prebuild-install version 2.2.1
          javascript.0	2017-08-09 09:25:19.384	error	
          javascript.0	2017-08-09 09:25:19.382	error	prebuild-install
          

          <u>2.)</u>

          javascript.0	2017-08-09 09:28:06.096	info	SOLINK_MODULE(target) Release/obj.target/serialport.node
          javascript.0	2017-08-09 09:28:05.035	error	^
          javascript.0	2017-08-09 09:28:05.035	error	obj->fd_ = info[0]->ToInt32()->Int32Value();
          javascript.0	2017-08-09 09:28:05.035	error	../src/serialport_poller.cpp:86:31: warning: 'v8::Local v8::Value::ToInt32() const' is deprecated (declared at /root/.node-gyp/6.11.1/include/node/v8.h:8209): Use maybe version [-Wdeprecate
          javascript.0	2017-08-09 09:28:05.035	error	../src/serialport_poller.cpp: In static member function 'static Nan::NAN_METHOD_RETURN_TYPE SerialportPoller::New(Nan::NAN_METHOD_ARGS_TYPE)':
          javascript.0	2017-08-09 09:28:02.942	info	CXX(target) Release/obj.target/serialport/src/serialport_poller.o
          javascript.0	2017-08-09 09:28:02.276	error	^
          javascript.0	2017-08-09 09:28:02.276	error	result->vtime = Nan::Get(options, Nan::New("vtime").ToLocalChecked()).ToLocalChecked()->ToInt32()->Int32Value();
          javascript.0	2017-08-09 09:28:02.276	error	../src/serialport_unix.cpp:44:111: warning: 'v8::Local v8::Value::ToInt32() const' is deprecated (declared at /root/.node-gyp/6.11.1/include/node/v8.h:8209): Use maybe version [-Wdeprecate
          javascript.0	2017-08-09 09:28:02.272	error	^
          javascript.0	2017-08-09 09:28:02.272	error	result->vmin = Nan::Get(options, Nan::New("vmin").ToLocalChecked()).ToLocalChecked()->ToInt32()->Int32Value();
          javascript.0	2017-08-09 09:28:02.272	error	../src/serialport_unix.cpp:43:109: warning: 'v8::Local v8::Value::ToInt32() const' is deprecated (declared at /root/.node-gyp/6.11.1/include/node/v8.h:8209): Use maybe version [-Wdeprecated
          javascript.0	2017-08-09 09:28:02.272	error	../src/serialport_unix.cpp: In function 'OpenBatonPlatformOptions* ParsePlatformOptions(const v8::Local&)':
          javascript.0	2017-08-09 09:28:00.151	info	CXX(target) Release/obj.target/serialport/src/serialport_unix.o
          javascript.0	2017-08-09 09:27:56.228	error	^
          javascript.0	2017-08-09 09:27:56.228	error	int fd = info[0]->ToInt32()->Int32Value();
          javascript.0	2017-08-09 09:27:56.228	error	../src/serialport.cpp:600:29: warning: 'v8::Local v8::Value::ToInt32() const' is deprecated (declared at /root/.node-gyp/6.11.1/include/node/v8.h:8209): Use maybe version [-Wdeprecated-decl
          javascript.0	2017-08-09 09:27:56.228	error	../src/serialport.cpp: In function 'Nan::NAN_METHOD_RETURN_TYPE Drain(Nan::NAN_METHOD_ARGS_TYPE)':
          javascript.0	2017-08-09 09:27:56.218	error	^
          javascript.0	2017-08-09 09:27:56.218	error	int fd = info[0]->ToInt32()->Int32Value();
          javascript.0	2017-08-09 09:27:56.218	error	../src/serialport.cpp:540:29: warning: 'v8::Local v8::Value::ToInt32() const' is deprecated (declared at /root/.node-gyp/6.11.1/include/node/v8.h:8209): Use maybe version [-Wdeprecated-decl
          javascript.0	2017-08-09 09:27:56.218	error	../src/serialport.cpp: In function 'Nan::NAN_METHOD_RETURN_TYPE Set(Nan::NAN_METHOD_ARGS_TYPE)':
          javascript.0	2017-08-09 09:27:56.212	error	^
          javascript.0	2017-08-09 09:27:56.212	error	int fd = info[0]->ToInt32()->Int32Value();
          javascript.0	2017-08-09 09:27:56.212	error	../src/serialport.cpp:492:29: warning: 'v8::Local v8::Value::ToInt32() const' is deprecated (declared at /root/.node-gyp/6.11.1/include/node/v8.h:8209): Use maybe version [-Wdeprecated-decl
          javascript.0	2017-08-09 09:27:56.212	error	../src/serialport.cpp: In function 'Nan::NAN_METHOD_RETURN_TYPE Flush(Nan::NAN_METHOD_ARGS_TYPE)':
          javascript.0	2017-08-09 09:27:56.184	error	^
          javascript.0	2017-08-09 09:27:56.184	error	baton->fd = info[0]->ToInt32()->Int32Value();
          javascript.0	2017-08-09 09:27:56.184	error	../src/serialport.cpp:354:32: warning: 'v8::Local v8::Value::ToInt32() const' is deprecated (declared at /root/.node-gyp/6.11.1/include/node/v8.h:8209): Use maybe version [-Wdeprecated-decl
          javascript.0	2017-08-09 09:27:56.184	error	../src/serialport.cpp: In function 'Nan::NAN_METHOD_RETURN_TYPE Close(Nan::NAN_METHOD_ARGS_TYPE)':
          javascript.0	2017-08-09 09:27:56.173	error	^
          javascript.0	2017-08-09 09:27:56.173	error	int fd = info[0]->ToInt32()->Int32Value();
          javascript.0	2017-08-09 09:27:56.173	error	../src/serialport.cpp:234:29: warning: 'v8::Local v8::Value::ToInt32() const' is deprecated (declared at /root/.node-gyp/6.11.1/include/node/v8.h:8209): Use maybe version [-Wdeprecated-decl
          javascript.0	2017-08-09 09:27:56.173	error	../src/serialport.cpp: In function 'Nan::NAN_METHOD_RETURN_TYPE Write(Nan::NAN_METHOD_ARGS_TYPE)':
          javascript.0	2017-08-09 09:27:56.167	error	^
          javascript.0	2017-08-09 09:27:56.167	error	baton->baudRate = Nan::Get(options, Nan::New("baudRate").ToLocalChecked()).ToLocalChecked()->ToInt32()->Int32Value();
          javascript.0	2017-08-09 09:27:56.167	error	../src/serialport.cpp:198:116: warning: 'v8::Local v8::Value::ToInt32() const' is deprecated (declared at /root/.node-gyp/6.11.1/include/node/v8.h:8209): Use maybe version [-Wdeprecated-de
          javascript.0	2017-08-09 09:27:56.162	error	^
          javascript.0	2017-08-09 09:27:56.162	error	int fd = info[0]->ToInt32()->Int32Value();
          javascript.0	2017-08-09 09:27:56.162	error	../src/serialport.cpp:173:29: warning: 'v8::Local v8::Value::ToInt32() const' is deprecated (declared at /root/.node-gyp/6.11.1/include/node/v8.h:8209): Use maybe version [-Wdeprecated-decl
          javascript.0	2017-08-09 09:27:56.162	error	../src/serialport.cpp: In function 'Nan::NAN_METHOD_RETURN_TYPE Update(Nan::NAN_METHOD_ARGS_TYPE)':
          javascript.0	2017-08-09 09:27:56.159	error	^
          javascript.0	2017-08-09 09:27:56.159	error	int fd = argv[1]->ToInt32()->Int32Value();
          javascript.0	2017-08-09 09:27:56.159	error	../src/serialport.cpp:153:31: warning: 'v8::Local v8::Value::ToInt32() const' is deprecated (declared at /root/.node-gyp/6.11.1/include/node/v8.h:8209): Use maybe version [-Wdeprecated-decl
          javascript.0	2017-08-09 09:27:56.159	error	../src/serialport.cpp: In function 'void EIO_AfterOpen(uv_work_t*)':
          javascript.0	2017-08-09 09:27:56.140	error	^
          javascript.0	2017-08-09 09:27:56.140	error	baton->stopBits = ToStopBitEnum(Nan::Get(options, Nan::New("stopBits").ToLocalChecked()).ToLocalChecked()->ToNumber()->NumberValue());
          javascript.0	2017-08-09 09:27:56.140	error	../src/serialport.cpp:113:131: warning: 'v8::Local v8::Value::ToNumber() const' is deprecated (declared at /root/.node-gyp/6.11.1/include/node/v8.h:8173): Use maybe version [-Wdeprecated-d
          javascript.0	2017-08-09 09:27:56.140	error	^
          javascript.0	2017-08-09 09:27:56.140	error	baton->bufferSize = Nan::Get(options, Nan::New("bufferSize").ToLocalChecked()).ToLocalChecked()->ToInt32()->Int32Value();
          javascript.0	2017-08-09 09:27:56.140	error	../src/serialport.cpp:111:120: warning: 'v8::Local v8::Value::ToInt32() const' is deprecated (declared at /root/.node-gyp/6.11.1/include/node/v8.h:8209): Use maybe version [-Wdeprecated-de
          javascript.0	2017-08-09 09:27:56.136	error	^
          javascript.0	2017-08-09 09:27:56.136	error	baton->dataBits = Nan::Get(options, Nan::New("dataBits").ToLocalChecked()).ToLocalChecked()->ToInt32()->Int32Value();
          javascript.0	2017-08-09 09:27:56.136	error	../src/serialport.cpp:110:116: warning: 'v8::Local v8::Value::ToInt32() const' is deprecated (declared at /root/.node-gyp/6.11.1/include/node/v8.h:8209): Use maybe version [-Wdeprecated-de
          javascript.0	2017-08-09 09:27:56.134	error	^
          javascript.0	2017-08-09 09:27:56.134	error	baton->baudRate = Nan::Get(options, Nan::New("baudRate").ToLocalChecked()).ToLocalChecked()->ToInt32()->Int32Value();
          javascript.0	2017-08-09 09:27:56.134	error	../src/serialport.cpp:109:116: warning: 'v8::Local v8::Value::ToInt32() const' is deprecated (declared at /root/.node-gyp/6.11.1/include/node/v8.h:8209): Use maybe version [-Wdeprecated-dec
          javascript.0	2017-08-09 09:27:56.134	error	../src/serialport.cpp: In function 'Nan::NAN_METHOD_RETURN_TYPE Open(Nan::NAN_METHOD_ARGS_TYPE)':
          javascript.0	2017-08-09 09:27:54.052	info	CXX(target) Release/obj.target/serialport/src/serialport.o
          javascript.0	2017-08-09 09:27:54.050	info	make: Entering directory '/opt/iobroker/node_modules/iobroker.javascript/node_modules/serialport/build'
          javascript.0	2017-08-09 09:27:48.858	error	node-pre-gyp ERR! Pre-built binaries not found for serialport@3.1.2 and node@6.11.1 (node-v48 ABI) (falling back to source compile with node-gyp)
          javascript.0	2017-08-09 09:27:48.851	error	
          javascript.0	2017-08-09 09:27:48.847	error	Tried to download: https://github.com/voodootikigod/node-serialport/releases/download/3.1.2/serialport-v3.1.2-node-v48-linux-arm.tar.gz
          javascript.0	2017-08-09 09:27:48.845	error	
          javascript.0	2017-08-09 09:27:48.842	error	ERR!
          javascript.0	2017-08-09 09:27:48.839	error	
          javascript.0	2017-08-09 09:27:48.835	error	node-pre-gyp
          javascript.0	2017-08-09 09:27:35.612	info	> node-pre-gyp install --fallback-to-build
          
          1 Reply Last reply Reply Quote 0
          • AlCalzone
            AlCalzone Developer last edited by

            Bei mir siehts so aus:

            d:\test\node_modules\node-enocean\index.js:226
                            socket.on( "get-last-sensor-value" , async function( id ) {
                                                                 ^^^^^
            SyntaxError: missing ) after argument list
            

            Das ist EcmaScript 6-Syntax und funktioniert nur ab NodeJS 7.x (besser 8.x). Ist halt etwas blöd vom Programmierer, das nicht durch einen Transpiler wie Babel/TypeScript/etc. zu jagen.

            1 Reply Last reply Reply Quote 0
            • K
              KevinK last edited by

              Ich bin jetzt kein Experte…

              Nach einer Installation der Version 8.2.1 kam es bei der Installation von node-enocean zu anderen Fehlern. Zudem hatte ioBroker den javascript Adapter immernoch mit einer 6er Node Version geladen, wodurch das Update in der Form gar nicht gezogen wurde.

              Hat jemand einen spezifischen Hinweis, was ich machen kann, damit der Fehler nicht mehr auftritt?

              Jetzt mal ganz doof... Kann ich die scheinbar fehlende Klammer nicht irgendwo ergänzen? 😉

              Vielen Dank und Gruß

              Kevin

              1 Reply Last reply Reply Quote 0
              • AlCalzone
                AlCalzone Developer last edited by

                @KevinK:

                Jetzt mal ganz doof… Kann ich die scheinbar fehlende Klammer nicht irgendwo ergänzen? 😉 `
                Da fehlt keine Klammer. Async ist ein neues Keyword, das einer Funktionsdefinition vorangestellt wird. Der Parser kennt das nicht und denkt, die Liste der Argumente müsste zuende sein.

                Wenn du die "anderen" Fehler mal postest, kann man dir vllt helfen 😉

                1 Reply Last reply Reply Quote 0
                • K
                  KevinK last edited by

                  > Wenn du die "anderen" Fehler mal postest, kann man dir vllt helfen

                  Vielen Dank für den Hinweis, AlCalzone. Ich versuche einmal so viele Infos wie möglich zusammenzutragen:

                  Folgenden Aufruf setze ich ab:

                  /opt/iobroker/node_modules/iobroker.javascript# npm install node-enocean --unsafe-perm
                  

                  Ich hatte zuerst Fehler angezeigt bekommen, dass er sich zu registry registry.npmjs.org nicht verbinden konnte.

                  Dazu habe ich die IP in das /etc/hosts file eingetragen und die Installation hat daraufhin funktioniert.

                  Ich versuche erst einmal weiter und berichte später.

                  <u>Edit1:</u>

                  Letztendlich hat die das Update von 6.x auf 8.2.1 keine Früchte getragen und die gleichen Fehler aufgeworfen bei node-enocean. Im Log wurde aber auch alle Adapter noch mit 6.x geladen. Vielleicht habe ich hier beim Update geschlampt. Da kam es zur Entscheidung, es mit einer sauberen neuen 8.2.1 ohne vorinstallierter 6.x zu versuchen…

                  <u>EDIT2:</u>

                  Den vergangenen Tag habe ich ca 10 mal (immer mit verschiedenen Hacks) versucht, auf einer neuen sauberen Jessie Lite unter Node 8.2.1 (NPM 5.3) ioBroker zum laufen zu bekommen. Dabei sind quasi alle Fehler aus dem Thread http://forum.iobroker.net/viewtopic.php?t=7450 auch bei mir aufgetreten (plus etwaige zusätzliche durch die verschiedenen Herangehensweisen…).

                  Leider habe ich es nicht geschafft, ioBroker zum fliegen zu bekommen.

                  Falls noch jemand eine ToDo list für die Installation unter 8.2.1 parat hat, nehme ich sie gern an 😄

                  Ansonsten versuche ich mich wohl als nächstes mal mit 7.x

                  1 Reply Last reply Reply Quote 0
                  • K
                    KevinK last edited by

                    😄 😄 😄 Mit 7.x hat die Installation von ioBroker, JS-Adapter sowie node-enocean Modul funktioniert!!! 😄 😄 😄

                    Ich hab beim Browseraufruf jedoch den Hinweis bekommen, dass ich doch bitte auf 4,6 oder 8 updaten soll, da 7.x nicht supported wird.

                    Kennt jemand Komplikationen bei ioBroker mit node 7.x?

                    1 Reply Last reply Reply Quote 0
                    • Homoran
                      Homoran Global Moderator Administrators last edited by

                      Bei mir läuft 7.x stabil.

                      Der Grund ist ein anderer. Nur die geraden Versionen werden eine Langzeitunterstützung bekommen, die ingeraden sind sozusagen Entwicklerversionen.

                      Gruß

                      Rainer

                      1 Reply Last reply Reply Quote 0
                      • K
                        KevinK last edited by

                        Okay, also erst einmal kein Grund zur Sorge. Danke für die Info, Rainer.

                        Gruß Kevin

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        870
                        Online

                        31.8k
                        Users

                        80.0k
                        Topics

                        1.3m
                        Posts

                        4
                        10
                        1998
                        Loading More Posts
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes
                        Reply
                        • Reply as topic
                        Log in to reply
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                        The ioBroker Community 2014-2023
                        logo