Zefau / ioBroker.roomba

Connect your iRobot Roomba to ioBroker
MIT License
13 stars 6 forks source link

Issue installing on node v11.6 #3

Closed antondnateam closed 5 years ago

antondnateam commented 5 years ago

Hi, Friend!

I tried to install your latest version of iobroker.roomba, but looks like installation script fails on node/nodejs v 11.6.0, as before ( on v8) everything works fine.

I see following errors while running npm command:

make: Entering directory '/opt/iobroker/node_modules/unix-dgram/build'
  CXX(target) Release/obj.target/unix_dgram/src/unix_dgram.o
In file included from ../node_modules/nan/nan.h:190:0,
                 from ../src/unix_dgram.cc:5:
../node_modules/nan/nan_maybe_43_inl.h: In function ‘Nan::Maybe<bool> Nan::ForceSet(v8::Local<v8::Object>, v8::Local<v8::Value>, v8::Local<v8::Value>, v8::PropertyAttribute)’:
../node_modules/nan/nan_maybe_43_inl.h:88:15: error: ‘class v8::Object’ has no member named ‘ForceSet’
   return obj->ForceSet(GetCurrentContext(), key, value, attribs);
               ^~~~~~~~

There are also few warnings, but looks like they are not so important.

Please, can you fix it? I have raspberry pi 3b+, and it automatically updated to recent versions of node/nodejs, and I cannot install roomba support to iobroker.

Thanks Anton

Zefau commented 5 years ago

Have you followed the installation instructions completely? See https://github.com/Zefau/ioBroker.roomba#installation

antondnateam commented 5 years ago

Yes, I did. And still get this error I shared in original post. I dont have this problem on another device with node versions less that 11.6

Zefau commented 5 years ago

I'm running on Node.js v8, so I can't retrace the error. Could you try to install unix-dgram manually by running npm i unix-dgram before installing the adapter?

antondnateam commented 5 years ago

I tried, and getting same error. Any ideas?

pi@raspberrypi:~ $ npm i unix-dgram --prefix "/opt/iobroker"

unix-dgram@0.2.3 install /opt/iobroker/node_modules/winston-syslog/node_modules/unix-dgram node-gyp rebuild

make: Entering directory '/opt/iobroker/node_modules/winston-syslog/node_modules/unix-dgram/build' CXX(target) Release/obj.target/unix_dgram/src/unix_dgram.o In file included from ../../nan/nan.h:190:0, from ../src/unix_dgram.cc:5: ../../nan/nan_maybe_43_inl.h: In function ‘Nan::Maybe Nan::ForceSet(v8::Local, v8::Local, v8::Local, v8::PropertyAttribute)’: ../../nan/nan_maybe_43_inl.h:88:15: error: ‘class v8::Object’ has no member named ‘ForceSet’ return obj->ForceSet(GetCurrentContext(), key, value, attribs); ^~~~ In file included from ../../nan/nan_new.h:189:0, from ../../nan/nan.h:196, from ../src/unix_dgram.cc:5:

Zefau commented 5 years ago

npm install nan bindings

Zefau commented 5 years ago

https://github.com/winstonjs/winston-syslog/issues/59#issuecomment-161604906

antondnateam commented 5 years ago

So does it mean need to wait in another thread for fix of unix-dgram for node11?

antondnateam commented 5 years ago

@Zefau By means of npm I installed and switched to node8. You iorobroker.roomba installed without errors. But I cannot see installed adapter in iobroker web interface. What should I additionally do to get it visible by iobroker installation?

antondnateam commented 5 years ago

@Zefau I managed to get adapter installed! just used console commans to upload adapter. Even you swithc node to v11 back ) However, I see other problem - adapter is up&running in iobroker webui (and connected to roomba), but there is no endpoint (device) in objects list.

What should I do?

antondnateam commented 5 years ago

I also see following issue in the log, related to roomba adapter:

2019-01-10 17:08:26.429  - ESC[32minfoESC[39m: host.raspberrypi object change system.adapter.roomba.0
2019-01-10 17:08:26.442  - ESC[32minfoESC[39m: host.raspberrypi instance system.adapter.roomba.0 started with pid 10931
2019-01-10 17:08:29.070  - ESC[31merrorESC[39m: Caught by controller[0]: /opt/iobroker/node_modules/iobroker.roomba/library.js:36
2019-01-10 17:08:29.070  - ESC[31merrorESC[39m: Caught by controller[0]:                return _sodium.to_hex(_sodium.crypto_secretbox_keygen());
2019-01-10 17:08:29.070  - ESC[31merrorESC[39m: Caught by controller[0]:                                              ^
2019-01-10 17:08:29.070  - ESC[31merrorESC[39m: Caught by controller[0]: TypeError: _sodium.crypto_secretbox_keygen is not a function
2019-01-10 17:08:29.071  - ESC[31merrorESC[39m: Caught by controller[0]:     at Library.getEncryptionKey (/opt/iobroker/node_modules/iobroker.roomba/library.js:36:33)
2019-01-10 17:08:29.071  - ESC[31merrorESC[39m: Caught by controller[0]:     at Adapter.<anonymous> (/opt/iobroker/node_modules/iobroker.roomba/main.js:137:21)
2019-01-10 17:08:29.071  - ESC[31merrorESC[39m: Caught by controller[0]:     at Adapter.emit (events.js:188:13)
2019-01-10 17:08:29.071  - ESC[31merrorESC[39m: Caught by controller[0]:     at initAdapter (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:4990:18)
2019-01-10 17:08:29.071  - ESC[31merrorESC[39m: Caught by controller[0]:     at /opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:788:29
2019-01-10 17:08:29.071  - ESC[31merrorESC[39m: Caught by controller[0]:     at createInstancesObjects (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:748:13)
2019-01-10 17:08:29.071  - ESC[31merrorESC[39m: Caught by controller[0]:     at Socket.<anonymous> (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:787:25)
2019-01-10 17:08:29.071  - ESC[31merrorESC[39m: Caught by controller[0]:     at Socket.onack (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:319:9)
2019-01-10 17:08:29.072  - ESC[31merrorESC[39m: Caught by controller[0]:     at Socket.onpacket (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:244:12)
2019-01-10 17:08:29.072  - ESC[31merrorESC[39m: Caught by controller[0]:     at Manager.<anonymous> (/opt/iobroker/node_modules/component-bind/index.js:21:15)
2019-01-10 17:08:29.072  - ESC[31merrorESC[39m: Caught by controller[0]:     at Manager.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/component-emitter/index.js:133:20)
2019-01-10 17:08:29.072  - ESC[31merrorESC[39m: Caught by controller[0]:     at Manager.ondecoded (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/manager.js:345:8)
2019-01-10 17:08:29.072  - ESC[31merrorESC[39m: Caught by controller[0]:     at Decoder.<anonymous> (/opt/iobroker/node_modules/component-bind/index.js:21:15)
2019-01-10 17:08:29.072  - ESC[31merrorESC[39m: Caught by controller[0]:     at Decoder.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/component-emitter/index.js:133:20)
2019-01-10 17:08:29.072  - ESC[31merrorESC[39m: Caught by controller[0]:     at Decoder.add (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-parser/index.js:251:12)
2019-01-10 17:08:29.072  - ESC[31merrorESC[39m: Caught by controller[0]:     at Manager.ondata (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/manager.js:335:16)
2019-01-10 17:08:29.073  - ESC[31merrorESC[39m: Caught by controller[0]:     at Socket.<anonymous> (/opt/iobroker/node_modules/component-bind/index.js:21:15)
2019-01-10 17:08:29.073  - ESC[31merrorESC[39m: Caught by controller[0]:     at Socket.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/component-emitter/index.js:133:20)
2019-01-10 17:08:29.073  - ESC[31merrorESC[39m: Caught by controller[0]:     at Socket.onPacket (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/engine.io-client/lib/socket.js:456:14)
2019-01-10 17:08:29.073  - ESC[31merrorESC[39m: Caught by controller[0]:     at WS.<anonymous> (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/engine.io-client/lib/socket.js:273:10)
2019-01-10 17:08:29.073  - ESC[31merrorESC[39m: Caught by controller[0]:     at WS.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/component-emitter/index.js:133:20)
2019-01-10 17:08:29.073  - ESC[31merrorESC[39m: Caught by controller[0]:     at WS.Transport.onPacket (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/engine.io-client/lib/transport.js:145:8)
2019-01-10 17:08:29.073  - ESC[31merrorESC[39m: host.raspberrypi instance system.adapter.roomba.0 terminated with code 1 ()
Zefau commented 5 years ago

This is caused by the adapter and due to the encryption that has been used in earlier versions (but is now removed). I will fixed it today.

Zefau commented 5 years ago

Not related to Node.js v11 but an adapter issue. See https://github.com/Zefau/ioBroker.roomba/issues/4