quentinms / homebridge-aranet4

An Homebridge plugin to get data from an Aranet4
Apache License 2.0
36 stars 1 forks source link

How do I install this? Error when installing. #22

Closed macguyincali closed 1 year ago

macguyincali commented 1 year ago

When installing it gives this error. Disclosure: I am not a developer, but it seems that I'm missing some files that I need to install via Terminal? Error messages below.

xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun gyp ERR! build error gyp ERR! stack Error: make failed with exit code: 1 gyp ERR! stack at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23) gyp ERR! stack at ChildProcess.emit (node:events:527:28) gyp ERR! stack at Process.ChildProcess._handle.onexit (node:internal/child_process:291:12) gyp ERR! System Darwin 22.2.0 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 /usr/local/lib/node_modules/homebridge-aranet4/node_modules/@abandonware/noble gyp ERR! node -v v16.16.0 gyp ERR! node-gyp -v v9.0.0 gyp ERR! not ok npm ERR! code 1 npm ERR! path /usr/local/lib/node_modules/homebridge-aranet4/node_modules/@abandonware/noble npm ERR! command failed npm ERR! command sh -c node-gyp-build

npm ERR! A complete log of this run can be found in: npm ERR! /Users/xxxxxxxxxxxxx/.npm/_logs/2022-12-20T22_42_50_502Z-debug-0.log

quentinms commented 1 year ago

I think you need to install XCode.

xcode-select --install

(warning, it's a big file, make sure you have a good internet connection)

macguyincali commented 1 year ago

Ah, ok. That's a big install. Will take a look. Thanks!

macguyincali commented 1 year ago

OK. Xcode is installed and I was able to install Aranet. However, I'm getting that Bluetooth permission error. I went to Privacy and Security and there is no Node option. I also can't find an app named Node to allow me to add a permission. Is there something I need to do differently? Thanks for your hard work on this plug in!

quentinms commented 1 year ago

I'm not on the latest version of macOS so I can't try.

@finestructure how did you fix this for yourself? Did you locate node with a terminal command (e.g. which node) or is there a more user-friendly way to do it?

finestructure commented 1 year ago

Yes, so you find out where node is installed via which node and then the easiest is probably to run open <node's parent directory> to open the containing folder in Finder and drag the node binary into the list as a new entry.

I.e. say which node gives /opt/homebrew/bin/node then you run open /opt/homebrew/bin and find node in the Finder window that opens.

Hope that helps!

macguyincali commented 1 year ago

That is more or less what I ended up doing. After some Googling of "Node.js and bluetooth permissions, I found out that it's an invisible file you can find at /usr/local/bin/node). I was able to reach the Node file by using Go To Folder in Finder. When I went to Permissions for Bluetooth, I added Node as an application and voila, permission granted. Might not hurt to include instructions on how to do that for the less tech savvy folks out there (myself included). e.g. a) Click on Go to Folder in Finder b) enter /usr/local/bin/node c) Go to Privacy and Security, Select Bluetooth, d) press (+) button e) drag the Node file into the window and select enter. Voila.

Thanks again for this excellent plug-in and am always in awe of the amazing programmers and coders who make these plugins a reality. The skills required to do this are so far above my skillset, so I am thankful.

quentinms commented 1 year ago

Thanks for the help @finestructure 🙇‍♂️

Thanks for the kind words @macguyincali, I'll update the readme with more detailed instructions. I searched a bit for ways to automate it (e.g. a script that would trigger macOS' permission dialog) but to no avail.

Are we good to close this issue?

macguyincali commented 1 year ago

Yes, thanks again!