CANDY-LINE / node-red-contrib-lwm2m

Step-by-step tutorial is available at
http://candy-line.tumblr.com/post/166976363228/oma-lwm2m-node-red-node
Apache License 2.0
7 stars 3 forks source link

Unable to install with Node-Red #1

Closed ram1505 closed 7 years ago

ram1505 commented 7 years ago

Hi, I'm unable to install this with my node-red. Here is the error I get when I try installing:

Failed to execute '/usr/bin/nodejs /usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --target_arch=x64 --mo dule=/home/demo/.node-red/node_modules/node-red-contrib-lwm2m/dist/binding/node-v48-linux-x64/node_lwm2m.node --module_name=node_lwm2m --modul e_path=/home/demo/.node-red/node_modules/node-red-contrib-lwm2m/dist/binding/node-v48-linux-x64' (1) npm WARN node-red-project@0.0.1 No repository field. npm WARN node-red-project@0.0.1 No license field. npm ERR! Linux 4.9.0-3-amd64 npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "node-red-contrib-lwm2m" npm ERR! node v6.11.2 npm ERR! npm v3.10.10 npm ERR! code ELIFECYCLE npm ERR! node-red-contrib-lwm2m@0.1.3 install:node-pre-gyp install --fallback-to-build --target_arch=${ARCH:-$(node -e 'console.log(require("os") .arch())')} npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the node-red-contrib-lwm2m@0.1.3 install script 'node-pre-gyp install --fallback-to-build --target_arch=${ARCH:-$(node -e 'conso le.log(require("os").arch())')}'. npm ERR! Make sure you have the latest version of node.js and npm installed. npm ERR! If you do, this is most likely a problem with the node-red-contrib-lwm2m package, npm ERR! not with npm itself. npm ERR! Tell the author that this fails on your system: npm ERR! node-pre-gyp install --fallback-to-build --target_arch=${ARCH:-$(node -e 'console.log(require("os").arch())')} npm ERR! You can get information on how to open an issue for this project with: npm ERR! npm bugs node-red-contrib-lwm2m npm ERR! Or if that isn't available, you can get their info via: npm ERR! npm owner ls node-red-contrib-lwm2m npm ERR! There is likely additional logging output above.

dbaba commented 7 years ago

For linux-x64, you need to install GCC/make on your computer in order to compile C/C++ code. npm and node-gyp don't perform GCC/make installation, so please install them manually.

ram1505 commented 7 years ago

I've both GCC/make installed on my Mac and I still cannot install this node.

dbaba commented 7 years ago

As long as I looked at your error message, you were trying to install the node on Linux rather than mac. If you're installing it on mac, it should work. Are you using Docker, Vagrant or other VMs?

ram1505 commented 7 years ago

Ok, the initial error message I posted was on my Linux production machine. However, I did try installing node-red on my local machine (Mac) to test it out and still not able to install using npm. Is there a different way I need to install this? No, I'm not using any docker or other VMs.

ram1505 commented 7 years ago

Here are my GCC/ make versions

Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Debian 6.3.0-18' --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c ++ --prefix=/usr --program-suffix=-6 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object - -disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/l ib/jvm/java-1.5.0-gcj-6-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-6-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-6-amd64 --with-arch- directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --with-arch-32=i686 --with-abi=m64 --with-multilib-lis t=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu Thread model: posix gcc version 6.3.0 20170516 (Debian 6.3.0-18)

GNU Make 4.1 Built for x86_64-pc-linux-gnu Copyright (C) 1988-2014 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.

dbaba commented 7 years ago

Weird. Could you tell me the following command results?

$ node -v
$ npm -v
$ node -e 'console.log(require("os").arch())'
$ uname -a
ram1505 commented 7 years ago

node -v v6.11.2 npm -v 3.10.10 node -e 'console.log(require("os").arch())' x64 uname -a Linux 4.9.0-3-amd64 #1 SMP Debian 4.9.30-2+deb9u5 (2017-09-19) x86_64 GNU/Linux

dbaba commented 7 years ago

Okay, I've uploaded prebuilt binaries for Linux x64. Try npm install again or the palette manager on NR UI and let me know if it works for you. I will include the Linux-x64 prebuilt binaries for further release if successful.

ram1505 commented 7 years ago

Awesome! I can successfully install now. Thanks @dbaba

ram1505 commented 7 years ago

Hey, is there a sample flow that can be used for getting started and to understand the node?

dbaba commented 7 years ago

You can import an example flow from the menu icon, Import -> Examples -> lwm2m -> 01.basic-operations. I also published a step-by-step tutorial here.

ram1505 commented 7 years ago

Great! Managed to get it work with the example. However, I'm having trouble getting the server to connect when I've a NB-IoT module with my Raspberry Pi. The module already attached to network. Any idea how to make it work over NB-IoT? I'm using SIMCOM 7000C module.

dbaba commented 7 years ago

Sounds interesting. Unfortunately, I've never tried NB-IoT as no carriers are yet operating it... But the node should work if your RPi is connecting to internet. I'd tried it with a LTE CAT.1 module on my RPi and it worked fine. Are you trying to connect Leshan sandbox? Can you do that?

ram1505 commented 7 years ago

It's a bit different with LTE Cat1. Some NB modules support only UDP. I'm checking with the module vendor on this. Will keep you posted here. I did try my RPi with Leshan sandbox server and it worked great. Thanks for this great work!

dbaba commented 7 years ago

Mmm, very interesting. I'm looking forward to hearing the updates! I'd like to look into NB-IoT and LTE-M as well, but here in Japan, I can't. Some of carriers say they will launch soon but I'm not sure when it is 😩

ram1505 commented 7 years ago

Hey, I finally figured out how to use a NB-IoT/ CAT-M1 module connected to a raspberry pi. Basically yo got to set up a ppp chat script. I followed the steps stated here and got the LWM2M client access over NB-IoT/ CAT-M1. http://sixfab.com/updated-tutorial-2-make-a-ppp-internet-connection-with-sixfab-gprs-shield-on-raspberry-pi/

ram1505 commented 7 years ago

Do you have more examples? When I try to write to for example /3/0/1 I get the following error:

{"status":132,"message":"Not Found","operation":"write","uri":"/3/0/1","value":"ABC123"}

dbaba commented 7 years ago

Thanks for the info. I understood where you got stuck. Regarding the error, uncheck Hide Sensitive Device Info on the lwm2m configuration dialog. The following resources are hidden by default so that they're not sent unexpectedly to the public sandbox server.