max-christian / homebridge-texecom

A plugin for homebridge (https://github.com/nfarina/homebridge) to integrate Texecom Premier Elite zones into HomeKit
MIT License
27 stars 8 forks source link

Install error #6

Closed paskovitch closed 5 years ago

paskovitch commented 5 years ago

When I want to install the plugin I get the following error message, I have Synology nas:

USER: root DIR: /homebridge CMD: npm --no-update-notifier install --unsafe-perm --save homebridge-texecom@latest

serialport@6.2.2 install /homebridge/node_modules/serialport prebuild-install || node-gyp rebuild

prebuild-install WARN install No prebuilt binaries found (target=10.15.1 runtime=node arch=x64 platform=linux) make: Entering directory '/homebridge/node_modules/serialport/build' CXX(target) Release/obj.target/serialport/src/serialport.o ../src/serialport.cpp: In function 'Nan::NAN_METHOD_RETURN_TYPE Open(Nan::NAN_METHOD_ARGS_TYPE)': ../src/serialport.cpp:41:49: warning: 'v8::String::Utf8Value::Utf8Value(v8::Local)' is deprecated: Use Isolate version [-Wdeprecated-declarations] v8::String::Utf8Value path(info[0]->ToString()); ^ In file included from /root/.node-gyp/10.15.1/include/node/v8.h:26:0, from /root/.node-gyp/10.15.1/include/node/node.h:63, from ../../nan/nan.h:53, from ../src/./serialport.h:6, from ../src/serialport.cpp:1: /root/.node-gyp/10.15.1/include/node/v8.h:2892:28: note: declared here explicit Utf8Value(Local obj)); ^ /root/.node-gyp/10.15.1/include/node/v8config.h:324:3: note: in definition of macro 'V8_DEPRECATED' declarator attribute((deprecated(message))) ^~~~~~ ../src/serialport.cpp:48:53: warning: 'v8::Local v8::Value::ToObject() const' is deprecated: Use maybe version [-Wdeprecated-declarations] v8::Local options = info[1]->ToObject(); ^ In file included from /root/.node-gyp/10.15.1/include/node/node.h:63:0, from ../../nan/nan.h:53, from ../src/./serialport.h:6, from ../src/serialport.cpp:1: /root/.node-gyp/10.15.1/include/node/v8.h:10046:15: note: declared here Local Value::ToObject() const { ^~~~~ ../src/serialport.cpp: In function 'void EIO_AfterOpen(uv_work_t)': ../src/serialport.cpp:95:30: warning: 'v8::Local Nan::Callback::Call(int, v8::Local) const' is deprecated [-Wdeprecated-declarations] data->callback.Call(2, argv); ^ In file included from ../src/./serialport.h:6:0, from ../src/serialport.cpp:1: ../../nan/nan.h:1674:3: note: declared here Call(int argc, v8::Local argv[]) const { ^~~~ ../src/serialport.cpp: In function 'Nan::NAN_METHOD_RETURN_TYPE Update(Nan::NAN_METHOD_ARGS_TYPE)': ../src/serialport.cpp:113:53: warning: 'v8::Local v8::Value::ToObject() const' is deprecated: Use maybe version [-Wdeprecated-declarations] v8::Local options = info[1]->ToObject(); ^ In file included from /root/.node-gyp/10.15.1/include/node/node.h:63:0, from ../../nan/nan.h:53, from ../src/./serialport.h:6, from ../src/serialport.cpp:1: /root/.node-gyp/10.15.1/include/node/v8.h:10046:15: note: declared here Local Value::ToObject() const { ^~~~~ ../src/serialport.cpp: In function 'void EIO_AfterUpdate(uv_work_t)': ../src/serialport.cpp:150:30: warning: 'v8::Local Nan::Callback::Call(int, v8::Local) const' is deprecated [-Wdeprecated-declarations] data->callback.Call(1, argv); ^ In file included from ../src/./serialport.h:6:0, from ../src/serialport.cpp:1: ../../nan/nan.h:1674:3: note: declared here Call(int argc, v8::Local argv[]) const { ^~~~ ../src/serialport.cpp: In function 'void EIO_AfterClose(uv_work_t)': ../src/serialport.cpp:188:30: warning: 'v8::Local Nan::Callback::Call(int, v8::Local) const' is deprecated [-Wdeprecated-declarations] data->callback.Call(1, argv); ^ In file included from ../src/./serialport.h:6:0, from ../src/serialport.cpp:1: ../../nan/nan.h:1674:3: note: declared here Call(int argc, v8::Local argv[]) const { ^~~~ ../src/serialport.cpp: In function 'void EIO_AfterFlush(uv_work_t)': ../src/serialport.cpp:231:30: warning: 'v8::Local Nan::Callback::Call(int, v8::Local) const' is deprecated [-Wdeprecated-declarations] data->callback.Call(1, argv); ^ In file included from ../src/./serialport.h:6:0, from ../src/serialport.cpp:1: ../../nan/nan.h:1674:3: note: declared here Call(int argc, v8::Local argv[]) const { ^~~~ ../src/serialport.cpp: In function 'Nan::NAN_METHOD_RETURN_TYPE Set(Nan::NAN_METHOD_ARGS_TYPE)': ../src/serialport.cpp:250:53: warning: 'v8::Local v8::Value::ToObject() const' is deprecated: Use maybe version [-Wdeprecated-declarations] v8::Local options = info[1]->ToObject(); ^ In file included from /root/.node-gyp/10.15.1/include/node/node.h:63:0, from ../../nan/nan.h:53, from ../src/./serialport.h:6, from ../src/serialport.cpp:1: /root/.node-gyp/10.15.1/include/node/v8.h:10046:15: note: declared here Local Value::ToObject() const { ^~~~~ ../src/serialport.cpp: In function 'void EIO_AfterSet(uv_work_t)': ../src/serialport.cpp:285:30: warning: 'v8::Local Nan::Callback::Call(int, v8::Local) const' is deprecated [-Wdeprecated-declarations] data->callback.Call(1, argv); ^ In file included from ../src/./serialport.h:6:0, from ../src/serialport.cpp:1: ../../nan/nan.h:1674:3: note: declared here Call(int argc, v8::Local argv[]) const { ^~~~ ../src/serialport.cpp: In function 'void EIO_AfterGet(uv_work_t)': ../src/serialport.cpp:336:30: warning: 'v8::Local Nan::Callback::Call(int, v8::Local) const' is deprecated [-Wdeprecated-declarations] data->callback.Call(2, argv); ^ In file included from ../src/./serialport.h:6:0, from ../src/serialport.cpp:1: ../../nan/nan.h:1674:3: note: declared here Call(int argc, v8::Local argv[]) const { ^~~~ ../src/serialport.cpp: In function 'void EIO_AfterGetBaudRate(uv_work_t)': ../src/serialport.cpp:383:30: warning: 'v8::Local Nan::Callback::Call(int, v8::Local) const' is deprecated [-Wdeprecated-declarations] data->callback.Call(2, argv); ^ In file included from ../src/./serialport.h:6:0, from ../src/serialport.cpp:1: ../../nan/nan.h:1674:3: note: declared here Call(int argc, v8::Local argv[]) const { ^~~~ ../src/serialport.cpp: In function 'void EIO_AfterDrain(uv_work_t)': ../src/serialport.cpp:424:30: warning: 'v8::Local Nan::Callback::Call(int, v8::Local) const' is deprecated [-Wdeprecated-declarations] data->callback.Call(1, argv); ^ In file included from ../src/./serialport.h:6:0, from ../src/serialport.cpp:1: ../../nan/nan.h:1674:3: note: declared here Call(int argc, v8::Local argv[]) const { ^~~~ CXX(target) Release/obj.target/serialport/src/serialport_unix.o ../src/serialport_unix.cpp:24:26: fatal error: linux/serial.h: No such file or directory

                      ^

compilation terminated. make: *** [serialport.target.mk:104: Release/obj.target/serialport/src/serialport_unix.o] Error 1 make: Leaving directory '/homebridge/node_modules/serialport/build' gyp ERR! build error gyp ERR! stack Error: make failed with exit code: 2 gyp ERR! stack at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:262:23) gyp ERR! stack at ChildProcess.emit (events.js:189:13) gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:248:12) gyp ERR! System Linux 4.4.59+ gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" gyp ERR! cwd /homebridge/node_modules/serialport gyp ERR! node -v v10.15.1 gyp ERR! node-gyp -v v3.8.0 gyp ERR! not ok npm WARN homebridge No description npm WARN homebridge No repository field. npm WARN homebridge No license field. npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.7 (node_modules/fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.7: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! serialport@6.2.2 install: prebuild-install || node-gyp rebuild npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the serialport@6.2.2 install script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in: npm ERR! /root/.npm/_logs/2019-03-04T17_56_09_350Z-debug.log

Command failed. Please review log for details

kieranmjones commented 5 years ago

This issue is specifically from the serialport dependency which is failing to build, the key error is this bit:

Release/obj.target/serialport/src/serialport_unix.o ../src/serialport_unix.cpp:24:26: fatal error: linux/serial.h: No such file or directory

I would reach out to that project and see if they have advice, certainly a Google of the problem suggests it is an architecture or dependency type issue that perhaps you can overcome by installing serialport yourself rather than relying on the automatic install via the dependency from this module?

Sorry can't be more help, as I say this issue doesn't relate to this project so not really something that can be addressed here.

paskovitch commented 5 years ago

Is there a version that only has IP support?

kieranmjones commented 5 years ago

There is not no, that is not to say it wouldn't be possible to strip out the serial aspects of the plugin. To be honest I would have thought fixing the serialport install wouldn't be too difficult, I appreciate it's a bit of a wasted effort as your device has no serial ports present.

I will apply some thought to the matter, in the meantime you could take the code yourself and strip out references to serial, I'm not sure what might break though as it's all tied quite closely together.

paskovitch commented 5 years ago

Thank you for dealing with the problem! :)

paskovitch commented 5 years ago

I acquired a raspberry pi 3 for this I could install. But forever, I see the sequel in the log: [2019-3-11 18:35:57] [Texecom] received data [2019-3-11 18:35:59] [Texecom] received data [2019-3-11 18:36:01] [Texecom] received data [2019-3-11 18:36:03] [Texecom] received data [2019-3-11 18:36:18] [Texecom] received data [2019-3-11 18:36:19] [Texecom] IP connection ended [2019-3-11 18:36:19] [Texecom] IP connection closed

My config: { "platform": "Texecom", "ip_address": "192.168.0.160", "ip_port": "10001", "zones": [ { "name": "Room 1", "zone_number": "02", "zone_type": "motion", "dwell": 1000 }, { "name": "Bedroom", "zone_number": "04", "zone_type": "motion", "dwell": 1000 }, { "name": "Room 2", "zone_number": "03", "zone_type": "motion", "dwell": 1000 }, { "name": "Door", "zone_number": "01", "zone_type": "contact", "dwell": 1000 } ] }

What could be the problem?

max-christian commented 5 years ago

Huh. How long does it run for before the IP connection ends? (P.S. This should probably be under a separate issue.)

paskovitch commented 5 years ago

When homebridge starts, there is no problem, but after I enter in the homekit, then throw the ip connection.

paskovitch commented 5 years ago

Texecom IOS app and in Wintex desktop app aren't any probleme.

max-christian commented 5 years ago

Sounds like you might not have the Crestron protocol configured on the COM-IP port?

paskovitch commented 5 years ago

How to configure it? Do you have a description of it?

max-christian commented 5 years ago

https://github.com/kieranmjones/homebridge-texecom/blob/master/README.md

(but since you have Wintex, use that instead as it's easier)

paskovitch commented 5 years ago

So everything works. I'm sorry I thought it was just the serial port that needed this setting. Thanks!

simonlock commented 4 years ago

So everything works. I'm sorry I thought it was just the serial port that needed this setting. Thanks!

Hi @paskovitch please could you share how you managed to install this on a raspberry pi? I've been trying to install this for a couple on months now. Did you strip out all references to serial port from the code?

I've tried installing this through Homebridge natively on a Pi, using docker on a Pi and also using a FreeBSD jail. Every Homebridge plugin installs for me except this one. Any help would be very much appreciated.

paskovitch commented 4 years ago

Hi @simonlock I use Raspbian OS on raspberry pi. On the user interface, I turned on the serial port in the interface settings. Then the plugin worked. [https://images.ctfassets.net/tvfg2m04ppj4/4owZNQS99yKFHzxClG7PnA/aa405e22555866c62395c1d6daa4f7b8/SSH.jpg?w=800]

simonlock commented 4 years ago

@paskovitch thank you for replying. I too use Raspian (Linux buster 4.19.75-v7+ #1270 SMP Tue Sep 24 18:45:11 BST 2019 armv7l GNU/Linux) but I'm using docker for homebridge. So I've just installed a fresh install of Raspian on another Raspberry Pi, enabled the Serial interface (raspi-config) as you indicated and installed Homebridge natively on the Pi. But this add-in still fails to install. I'm totally lost. Are you running Raspian Buster by any chance? Thanks again.