luc-ass / homebridge-evohome

Homebridge plugin for Honeywell Evohome
29 stars 16 forks source link

ERROR LOADING PLUGIN homebridge-evohome: #45

Closed jan-dewit closed 5 years ago

jan-dewit commented 5 years ago

For some reason the homebridge-evohome is not loading at all in my environment. eDomoticz and Netatmo plugin are working fine without any issue.

Running RPi2 with Raspbian node -v v4.5.0 npm -v 2.15.9

SyntaxError: Unexpected string at exports.runInThisContext (vm.js:53:16) at Module._compile (module.js:373:25) at Object.Module._extensions..js (module.js:416:10) at Module.load (module.js:343:32) at Function.Module._load (module.js:300:12) at Module.require (module.js:353:17) at require (internal/module.js:12:17) at Object. (/usr/lib/node_modules/homebridge-evohome/node_modules/request/request.js:8:10) at Module._compile (module.js:409:26) at Object.Module._extensions..js (module.js:416:10)

luc-ass commented 5 years ago

Have you double checked your config? Please validate it using https://jsonlint.com and report back.

jan-dewit commented 5 years ago

actually this is even happening without any config, so only loading the plugin (without using it), but offcourse I tried also doing a proper config, however this is not working since the plugin is not loaded at all... (which makes sense in my opinion)

This error is being thrown with a valid JSON config: Error: The requested platform 'Evohome' was not registered by any plugin. at API.platform (/usr/local/lib/node_modules/homebridge/lib/api.js:118:13) at Server._loadPlatforms (/usr/local/lib/node_modules/homebridge/lib/server.js:281:45) at Server.run (/usr/local/lib/node_modules/homebridge/lib/server.js:77:36) at module.exports (/usr/local/lib/node_modules/homebridge/lib/cli.js:40:10) at Object. (/usr/local/lib/node_modules/homebridge/bin/homebridge:17:22) at Module._compile (module.js:409:26) at Object.Module._extensions..js (module.js:416:10) at Module.load (module.js:343:32) at Function.Module._load (module.js:300:12) at Function.Module.runMain (module.js:441:10)

luc-ass commented 5 years ago

Are you running homebridge as sudo? Did you install all the plugins the same way?

jan-dewit commented 5 years ago

yea, I have installed all plugins the same way... sudo npm install -g homebridge sudo npm install -g homebridge-evohome sudo npm install -g homebridge-edomoticz sudo npm install -g homebridge-netatmo

Starting homebridge with or without sudo doesnt make any difference, plugin isnt loading anyway...

luc-ass commented 5 years ago

I am running node v 7.10.0 in a docket container. Is upgrading an option for you?

luc-ass commented 5 years ago

Can you please post what comes before the error when loading?

jan-dewit commented 5 years ago

I tried upgrading to 7.10.0 but this is bringing other issues on a RasPi2. For example:

NODE_MODULE_VERSION 46. This version of Node.js requires NODE_MODULE_VERSION 51. Please try re-compiling or re-installing the module (for instance, using npm rebuild ornpm install).

When I try to rebuild/install: npm WARN npm npm does not support Node.js v7.10.0 npm WARN npm You should probably upgrade to a newer version of node as we npm WARN npm can't make any promises that npm will work with this version. npm WARN npm Supported releases of Node.js are the latest release of 6, 8, 9, 10, 11. npm WARN npm You can find the latest version at https://nodejs.org/

luc-ass commented 5 years ago

Annoying! Can you please post the full error when booting without Evohome in your configuration?

jan-dewit commented 5 years ago

Sure, gimme a sec to rebuild to node v4.5.0 which is working the best so far :)

luc-ass commented 5 years ago

While at it, pleas check your system time-zone! raspi-config should do the trick

jan-dewit commented 5 years ago

I checked time zone, which is fine, also date is reporting the right time.

Here is an output on starting homebridge, with the homebridge-evohome plugin installed, but no config.

~/.homebridge$ homebridge WARNING The program 'node' uses the Apple Bonjour compatibility layer of Avahi. WARNING Please fix your application to use the native API of Avahi! WARNING For more information see http://0pointer.de/avahi-compat?s=libdns_sd&e=node WARNING The program 'node' called 'DNSServiceRegister()' which is not supported (or only supported partially) in the Apple Bonjour compatibility layer of Avahi. WARNING Please fix your application to use the native API of Avahi! WARNING For more information see http://0pointer.de/avahi-compat?s=libdns_sd&e=node&f=DNSServiceRegister [11/14/2018, 4:41:36 PM] Warning: skipping plugin found at '/usr/local/lib/node_modules/homebridge-edomoticz' since we already loaded the same plugin from '/usr/lib/node_modules/homebridge-edomoticz'. [11/14/2018, 4:41:38 PM] Loaded plugin: homebridge-edomoticz [11/14/2018, 4:41:38 PM] Registering accessory 'homebridge-edomoticz.eDomoticz' [11/14/2018, 4:41:38 PM] Registering platform 'homebridge-edomoticz.eDomoticz' [11/14/2018, 4:41:38 PM] --- [11/14/2018, 4:41:38 PM] ==================== [11/14/2018, 4:41:38 PM] ERROR LOADING PLUGIN homebridge-evohome: [11/14/2018, 4:41:38 PM] SyntaxError: Unexpected string at exports.runInThisContext (vm.js:53:16) at Module._compile (module.js:373:25) at Object.Module._extensions..js (module.js:416:10) at Module.load (module.js:343:32) at Function.Module._load (module.js:300:12) at Module.require (module.js:353:17) at require (internal/module.js:12:17) at Object. (/usr/lib/node_modules/homebridge-evohome/node_modules/request/request.js:8:10) at Module._compile (module.js:409:26) at Object.Module._extensions..js (module.js:416:10) [11/14/2018, 4:41:38 PM] ==================== [11/14/2018, 4:41:39 PM] Loaded plugin: homebridge-netatmo [11/14/2018, 4:41:39 PM] Registering platform 'homebridge-netatmo.netatmo' [11/14/2018, 4:41:39 PM] --- [11/14/2018, 4:41:39 PM] Loaded config.json with 0 accessories and 2 platforms. [11/14/2018, 4:41:39 PM] --- [11/14/2018, 4:41:39 PM] Loading 2 platforms...

luc-ass commented 5 years ago

I am mildly confused to say the least...

jan-dewit commented 5 years ago

Probably I should leave the RasPi alone and start running it elsewhere ;-)

luc-ass commented 5 years ago

Would be one solution. Was there an error while installing homebridge-evohome? Perhaps you can reinstall it and look for errors during installation.

jan-dewit commented 5 years ago

There are some warnings I am afraid this has all to do with matching versions of the packages used, you need to find the magic combination to get this working. Log is below. By the way: I got this up and running on a Syno NAS (within 5 minutes) using Docker with this guide and exactly the same config as on my RasPi: https://github.com/oznu/homebridge-syno-spk#how-to-install

~/.homebridge$ sudo npm install -g homebridge-evohome npm WARN deprecated node-uuid@1.4.8: Use uuid module instead npm WARN deprecated hoek@0.9.1: The major version is no longer supported. Please update to 4.x or newer npm WARN engine har-validator@5.1.3: wanted: {"node":">=6"} (current: {"node":"4.5.0","npm":"2.15.9"}) npm WARN engine punycode@2.1.1: wanted: {"node":">=6"} (current: {"node":"4.5.0","npm":"2.15.9"}) homebridge-evohome@0.6.1 /opt/nodejs/lib/node_modules/homebridge-evohome ├── q@1.0.1 ├── lodash@2.4.2 ├── request@2.34.0 (aws-sign2@0.5.0, tunnel-agent@0.3.0, forever-agent@0.5.2, qs@0.6.6, oauth-sign@0.3.0, mime@1.2.11, json-stringify-safe@5.0.1, node-uuid@1.4.8, http-signature@0.10.1, tough-cookie@2.4.3, form-data@0.1.4, hawk@1.0.0) ├── moment@2.22.2 └── fakegato-history@0.4.3 (debug@2.6.9, google-auth-library@0.10.0, googleapis@18.0.0)

luc-ass commented 5 years ago

Happy to hear that you got it to work. I used the same docker container. Runs beautifully on my Synology NAS.

ariedebruin commented 5 years ago

Unfortunately I run into the exact same problem. In my case it is a new installation based on "Raspbian Stretch with Desktop".

I do have a NAS but not one that is suitable with Docker. :( Has a solution already been available to use the Evohome-plugin?

EDIT: Problem solved. NodeJS v11 is needed instead of v10. Furthermore "sudo npm install -g homebridge-evohome" instead of "npm install -g homebridge-evohome" did the trick. The combination above is working. Thanks for your good work! Homebridge and Evohome, I love it... :)