NEWS
Node-red Adapter MCP23017 & MCP3008
-
Hallo Rainer
Ja das funktioniert bei einigen Nodes.
Aber nicht bei dem MCP23017.
Error im Log:
node-red.0 2017-03-01 18:39:28.032 error node-red.0 Cannot install npm packet: node-red-contrib-mcp23017 node-red.0 2017-03-01 18:39:28.031 error node-red.0 Cannot install node-red-contrib-mcp23017: 1 node-red.0 2017-03-01 18:39:27.995 error node-red.0 Please include the following file with any support request: npm ERR! /npm-debug.log node-red.0 2017-03-01 18:39:27.994 error node-red.0 npm ERR! node-red.0 2017-03-01 18:39:27.993 error node-red.0 node-red.0 2017-03-01 18:39:24.909 error node-red.0 npm ERR! This is most likely a problem with the i2c package, npm ERR! not with npm itself. npm ERR! Tell the author that this fails on your system: npm ERR! node-gyp rebuild npm ERR! Yo node-red.0 2017-03-01 18:39:24.909 error node-red.0 npm ERR! Failed at the i2c@0.1.4 install script 'node-gyp rebuild'. node-red.0 2017-03-01 18:39:24.908 error node-red.0 npm ERR! node-red.0 2017-03-01 18:39:24.906 error node-red.0 i2c@0.1.4 install: `node-gyp rebuild` npm ERR! Exit status 1 node-red.0 2017-03-01 18:39:24.887 error node-red.0 npm ERR! node-red.0 2017-03-01 18:39:24.886 error node-red.0 npm ERR! node v4.8.0 npm ERR! npm v2.15.11 npm ERR! code ELIFECYCLE node-red.0 2017-03-01 18:39:24.880 error node-red.0 ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "node-red-contrib-mcp23017" "--production" "--prefix" "/opt/iobroker/node_modules/iobroker.node-red" node-red.0 2017-03-01 18:39:24.879 error node-red.0 npm node-red.0 2017-03-01 18:39:24.879 error node-red.0 Linux 4.4.48-v7+ node-red.0 2017-03-01 18:39:24.879 error node-red.0 ERR! node-red.0 2017-03-01 18:39:24.877 error node-red.0 node-red.0 2017-03-01 18:39:24.868 error node-red.0 npm node-red.0 2017-03-01 18:39:24.815 error node-red.0 gyp ERR! stack Error: `make` failed with exit code: 2 gyp ERR! stack at ChildProcess.onExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:276:23) gyp ERR! stack at e node-red.0 2017-03-01 18:39:24.799 error node-red.0 build error node-red.0 2017-03-01 18:39:24.793 error node-red.0 ERR! node-red.0 2017-03-01 18:39:24.766 error node-red.0 gyp node-red.0 2017-03-01 18:39:24.755 error node-red.0 make: *** [Release/obj.target/i2c/src/i2c.o] Error 1 node-red.0 2017-03-01 18:39:24.754 info node-red.0 make: Leaving directory '/opt/iobroker/node_modules/iobroker.node-red/node_modules/node-red-contrib-mcp23017/node_modules/node-mcp23017/node_modules/i2c/build' node-red.0 2017-03-01 18:39:24.753 info node-red.0 i2c.target.mk:92: recipe for target 'Release/obj.target/i2c/src/i2c.o' failed node-red.0 2017-03-01 18:39:24.376 error node-red.0 ../src/i2c.cc: In function ‘v8::Handle Scan(const int&)’: ../src/i2c.cc:63:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ ../src/i2c.cc: In function ‘ node-red.0 2017-03-01 18:39:24.375 error node-red.0 ../src/i2c.cc: In function ‘v8::Handle SetAddress(const int&)’: ../src/i2c.cc:33:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ node-red.0 2017-03-01 18:39:24.319 error node-red.0 /root/.node-gyp/4.8.0/include/node/v8.h:4349:34: note: no known conversion for argument 1 from ‘v8::Handle(const int&) {aka v8::Local(const int&)}’ to ‘v8::Isolate*’ node-red.0 2017-03-01 18:39:24.318 error node-red.0 ../src/i2c.cc:247:39: error: no matching function for call to ‘v8::FunctionTemplate::New(v8::Handle (&)(const int&))’ FunctionTemplate::New(WriteBlock)->GetFunction()); node-red.0 2017-03-01 18:39:24.318 error node-red.0 In file included from /root/.node-gyp/4.8.0/include/node/node.h:42:0, from ../src/i2c.cc:1: /root/.node-gyp/4.8.0/include/node/v8.h:4349:34: note: static v8::Local node-red.0 2017-03-01 18:39:24.318 error node-red.0 ../src/i2c.cc:237:15: error: ‘NewSymbol’ is not a member of ‘v8::String’ target->Set(String::NewSymbol("open"), ^ ../src/i2c.cc:238:31: error: no matching function for cal node-red.0 2017-03-01 18:39:24.317 error node-red.0 ../src/i2c.cc:234:15: error: ‘NewSymbol’ is not a member of ‘v8::String’ target->Set(String::NewSymbol("setAddress"), ^ ../src/i2c.cc:235:37: error: no matching function f node-red.0 2017-03-01 18:39:24.317 error node-red.0 In file included from /root/.node-gyp/4.8.0/include/node/node.h:42:0, from ../src/i2c.cc:1: /root/.node-gyp/4.8.0/include/node/v8.h:4349:34: note: static v8::Local node-red.0 2017-03-01 18:39:24.317 error node-red.0 ../src/i2c.cc:184:31: error: invalid types ‘const int[int]’ for array subscript Local buffer = args[1]; ^ ../src/i2c.cc:186:22: error: invalid types node-red.0 2017-03-01 18:39:24.316 error node-red.0 In file included from /root/.node-gyp/4.8.0/include/node/node.h:42:0, from ../src/i2c.cc:1: /root/.node-gyp/4.8.0/include/node/v8.h: In function ‘v8::Handle Writ node-red.0 2017-03-01 18:39:24.316 error node-red.0 ../src/i2c.cc:175:20: error: ‘GetCurrent’ is not a member of ‘v8::Context’ callback->Call(Context::GetCurrent()->Global(), argc, argv); ^ ../src/i2c.cc:178:16: erro node-red.0 2017-03-01 18:39:24.316 error node-red.0 ../src/i2c.cc:167:28: error: ‘New’ is not a member of ‘v8::String’ err = Exception::Error(String::New("Cannot write to device")); ^ ../src/i2c.cc:170:13: er node-red.0 2017-03-01 18:39:24.316 error node-red.0 In file included from /root/.node-gyp/4.8.0/include/node/node.h:42:0, from ../src/i2c.cc:1: /root/.node-gyp/4.8.0/include/node/v8.h: In function ‘v8::Handle Writ node-red.0 2017-03-01 18:39:24.315 error node-red.0 ../src/i2c.cc:146:22: error: ‘GetCurrent’ is not a member of ‘v8::Context’ callback->Call(Context::GetCurrent()->Global(), argc, argv); ^ ../src/i2c.cc:149:15: node-red.0 2017-03-01 18:39:24.315 error node-red.0 ../src/i2c.cc:137:30: error: ‘New’ is not a member of ‘v8::String’ err = Exception::Error(String::New("Error reading length of bytes")); ^ ../src/i2c.cc node-red.0 2017-03-01 18:39:24.314 error node-red.0 In file included from /root/.node-gyp/4.8.0/include/node/node.h:42:0, from ../src/i2c.cc:1: /root/.node-gyp/4.8.0/include/node/v8.h:2499:25: note: static v8::Local node-red.0 2017-03-01 18:39:24.310 error node-red.0 ../src/i2c.cc: At global scope: ../src/i2c.cc:65:27: error: ‘Arguments’ does not name a type Handle Close(const Arguments& args) { ^ In file included from node-red.0 2017-03-01 18:39:24.246 error node-red.0 ../src/i2c.cc:40:38: error: invalid conversion from ‘int’ to ‘v8::Isolate*’ [-fpermissive] Local results(Array::New(128)); ^ In file included node-red.0 2017-03-01 18:39:24.240 error node-red.0 ../src/i2c.cc:39:58: error: invalid types ‘const int[int]’ for array subscript Local callback = Local::Cast(args[0]); node-red.0 2017-03-01 18:39:24.239 error node-red.0 ../src/i2c.cc:29:16: error: invalid types ‘const int[int]’ for array subscript addr = args[0]->Int32Value(); ^ ../src/i2c.cc:32:16: error: ‘class v8::HandleScope’ has no node-red.0 2017-03-01 18:39:24.238 error node-red.0 ../src/i2c.cc:22:5: error: ‘ThrowException’ was not declared in this scope ); ^ ../src/i2c.cc: At global scope: ../src/i2c.cc:26:32: error: ‘Arguments’ does not name a type Handl node-red.0 2017-03-01 18:39:24.234 error node-red.0 ../src/i2c.cc: In function ‘void setAddress(int8_t)’: ../src/i2c.cc:21:28: error: ‘New’ is not a member of ‘v8::String’ Exception::TypeError(String::New("Failed to set address"))
LG Hermann
geändert: Code in Code-Tags, Homoran (Mod)
-
und was sagt das log?
This is most likely a problem with the i2c package, npm ERR! not with npm itself. npm ERR! Tell the author that this fails on your system: npm ERR! node-gyp rebuild npm ERR! Yo `
Gruß
Rainer
-
Hi
I2C läuft super.
Ich kann die Adresse auslesen mit
i2cdetect -y 1
die einzelnen Ports schalten z.B.
gpio -x mcp23017<emoji seq="1f4af">
</emoji>0x20 write 108 0
gpio -x mcp23017<emoji seq="1f4af">
</emoji>0x20 write 108 1
Funktioniert alles, aber kein Node-Red mcp23017 über ioBroker.
-
Ich kenne mich nicht wirklich gut aus.
@hermannf1:I2C läuft super. `
Im Moment vielleicht, kann es aber sein, dass das Paket umgebaut werden muss?ERR! Failed at the i2c@0.1.4 install script 'node-gyp rebuild'.
node-red.0 2017-03-01 18:39:24.908 error node-red.0 npm ERR!
node-red.0 2017-03-01 18:39:24.906 error node-red.0 i2c@0.1.4 install:
node-gyp rebuild
npm ERR! Exit status 1 `und:
@hermannf1:node-red.0 make: *** [Release/obj.target/~~[color=#FF0000]~~i2c/src/i2c.o] Error 1
node-red.0 2017-03-01 18:39:24.754 info node-red.0 make: Leaving directory '/opt/iobroker/node_modules/iobroker.node-red/node_modules/node-red-contrib-mcp23017/node_modules/node-mcp23017/node_modules/i2c/build'
node-red.0 2017-03-01 18:39:24.753 info node-red.0 i2c.target.mk:92: recipe for target 'Release/obj.target/i2c/src/i2c.o' failed
node-red.0 2017-03-01 18:39:24.376 error node-red.0 ../src/i2c.cc: In function ‘v8::Handle Scan(const int&)’: ../src/i2c.cc:63:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ ../src/i2c.cc: In function ‘
node-red.0 2017-03-01 18:39:24.375 error node-red.0 ../src/i2c.cc: In function ‘v8::Handle SetAddress(const int&)’: ../src/i2c.cc:33:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ `
Gruß
Rainer
-
Es dürfte an der Node.js Version liegen.
Wenn ich mit es mit der Node.js v0.12 installiere und starte, so funktioniert es.
Mache ich dann ein Update auf eine neuere Version, so funktioniert es nicht mehr.
Ich habe mal an den Programmierer vom diesem Modul geschrieben.
Eine externe Node-red Installation wird man vermutlich nicht in den ioBroker integrieren können? Oder? :?:
-
Hallo, schreibe in diesem Thread, da es mir genauso um dein Aufbau PI mit MCP23017 und Integration in Node-Red geht,
könnt Ihr mir helfen, bin Einsteiger im umgang mit Node-Red und komme einfach nicht weiter.
Kann über i2c lesen und schreiben auch über
Write : gpio -x mcp23017<emoji seq="1f4af">
</emoji>0x20 write 100 1 / gpio -x mcp23017<emoji seq="1f4af">
</emoji>0x20 write 100 0
Read : gpio -x mcp23017<emoji seq="1f4af">
</emoji>0x20 read 108
aber wie bekomme ich es in Node-Red aufgenommen, das Modul "node-red-contrib-mcp23017" kann leider nur lesen will aber 8xinput und 8xoutput
-
Hi
Versuch es mit diesem Beispiel: https://www.2hf.org/example-node-red-mcp23017-89/
Einfach importieren.
LG
-
Danke Hermann, leider kann dieses Script nur als Output benutzt werden, das node-red-contrib-mcp23017 modul kann nur output.
ich möchte gerne aber den IC2 Bus direkt ansprechen und somit Read o. write benutzen
Z.B.
Write : gpio -x mcp23017<emoji seq="1f4af">
</emoji>0x20 write 100 1 / gpio -x mcp23017<emoji seq="1f4af">
</emoji>0x20 write 100 0
Read : gpio -x mcp23017<emoji seq="1f4af">
</emoji>0x20 read 108
auch gerne mit IC2 befehle
i2cset -y 0 0x20 0x14 0x01
i2cget -y 0 0x20 0x14
aber wie kann ich diese in Node-Red einbauen.
LG
-
Hi
Ja, das geht! Man kann in node-red jeden Befehl hinterlegen, dann man auch am Respberry in der Konsole eingibt. Node-red führt ihn dann in der Konsole aus.
Ich habe gerade keine Installation laufen. Ich suche mal ob ich den Menüpunkt in node-red finde.
LG
-
Hi
Ich habe es im Video gefunden.
https://www.youtube.com/watch?v=WxUTYzxIDns
Im Video bei 20:20 wird ein Beispiel gezeigt. Es ist das exec node. In diesem Beispiel fährt er mit dem shutdown Befehl den Raspberry runter. Man kann hier jeden Befehl eingeben.
LG
-
Danke, hatte gehoft es gibt ein bidirektionales Modul.
LG
-
ich möchte gerne aber den IC2 Bus direkt ansprechen und somit Read o. write benutzen
Z.B.
Write : gpio -x mcp23017<emoji seq="1f4af">
</emoji>0x20 write 100 1 / gpio -x mcp23017<emoji seq="1f4af">
</emoji>0x20 write 100 0
Read : gpio -x mcp23017<emoji seq="1f4af">
</emoji>0x20 read 108
auch gerne mit IC2 befehle
i2cset -y 0 0x20 0x14 0x01
i2cget -y 0 0x20 0x14
aber wie kann ich diese in Node-Red einbauen. ` Hi bodyfix
Konntest du dein Problem mit dem node-red Adapter für den MCP23017 lösen?
Ansonsten gibt es seit heute auch einen Adpater für I2C direkt in ioBroker:
http://forum.iobroker.net/viewtopic.php?f=23&t=7437
Im Moment unterstützt er zwar erst den PCF8574, aber wenn du wünschst, kann ich versuchen den MCP23017 zu integrieren.
Freue mich auf deine Antwort.
/UncleSam