Closed bohtho closed 6 years ago
Hi,
Please try it, just change index.js
, comment line 34:
if (typeof(config) === "undefined" || config === null) {
this.log.error("config undefined or null!");
this.log("storagePath = %s", storagePath);
//process.exit(1);
}
Regarding line 24: I think true
can not be removed. Take a look here:
// For platform plugin to be considered as dynamic platform plugin,
// registerPlatform(pluginName, platformName, constructor, dynamic), dynamic must be true
homebridge.registerPlatform("homebridge-samplePlatform", "SamplePlatform", SamplePlatform, true);
but you can try it.
You may be right about the second way. But I tried the first way (commenting out process.exit(1);
) but then I get this error:
Process: 4502 ExecStart=/usr/local/bin/homebridge $HOMEBRIDGE_OPTS (co de=exited, status=1/FAILURE) Main PID: 4502 (code=exited, status=1/FAILURE) CGroup: /system.slice/homebridge-ext.service ├─4544 /bin/sh -c npm view homebridge-mqtt version └─4546 npm
Presumably because I messed with a npm module which does now not match the version's hash or something ? Sorry, I'm not very knowledgable with npm or node.
Please post the log from homebridge start.
Probably you will see an error message:
config undefined or null!
I used to get config undefined or null!
on my second instance (with no mqtt plugin in config), see that log here: https://github.com/oznu/homebridge-config-ui-x/issues/17#issuecomment-389236469
Now after commenting out process.exit(1);
in index.js I get this:
May 16 20:52:09 LillePi homebridge[8057]: [2018-5-16 20:52:09] [homebridge-mqtt.mqtt] Number of cached Accessories: 0 May 16 20:52:09 LillePi homebridge[8057]: /usr/local/lib/node_modules/homebridge-mqtt/lib/model.js:34 May 16 20:52:09 LillePi homebridge[8057]: var url = this.config.url; May 16 20:52:09 LillePi homebridge[8057]: ^ May 16 20:52:09 LillePi homebridge[8057]: TypeError: Cannot read property 'url' of null May 16 20:52:09 LillePi homebridge[8057]: at Model.start (/usr/local/lib/node_modules/homebridge-mqtt/lib/model.js:34:25) May 16 20:52:09 LillePi homebridge[8057]: at Controller.start (/usr/local/lib/node_modules/homebridge-mqtt/lib/controller.js:361:14) May 16 20:52:09 LillePi homebridge[8057]: at PluginPlatform.
(/usr/local/lib/node_modules/homebridge-mqtt/index.js:69:23) May 16 20:52:09 LillePi homebridge[8057]: at API.emit (events.js:180:13) May 16 20:52:09 LillePi homebridge[8057]: at Server.run (/usr/local/lib/node_modules/homebridge/lib/server.js:98:13) May 16 20:52:09 LillePi homebridge[8057]: at module.exports (/usr/local/lib/node_modules/homebridge/lib/cli.js:40:10) May 16 20:52:09 LillePi homebridge[8057]: at Object. (/usr/local/lib/node_modules/homebridge/bin/homebridge:17:22) May 16 20:52:09 LillePi homebridge[8057]: at Module._compile (module.js:649:30) May 16 20:52:09 LillePi homebridge[8057]: at Object.Module._extensions..js (module.js:660:10) May 16 20:52:09 LillePi homebridge[8057]: at Module.load (module.js:561:32) May 16 20:52:09 LillePi systemd[1]: homebridge-ext.service: Main process exited, code=exited, status=1/FAILURE May 16 20:52:09 LillePi systemd[1]: homebridge-ext.service: Unit entered failed state. May 16 20:52:09 LillePi systemd[1]: homebridge-ext.service: Failed with result 'exit-code'.
this.log.error("config undefined or null!");
this.log("storagePath = %s", storagePath);
these logs show the error and the storagePath, so I need the log of the instance using homebridge-mqtt.
Sorry if I'm not following but the other (first) instance that is configured to use homebridge-mqtt logs this without error (even after my out-commenting in index.js):
May 16 22:22:13 LillePi homebridge[28553]: [2018-5-16 22:22:13] Loaded plugin: homebridge-config-ui-x May 16 22:22:13 LillePi homebridge[28553]: [2018-5-16 22:22:13] Registering platform 'homebridge-config-ui-x.config' May 16 22:22:13 LillePi homebridge[28553]: [2018-5-16 22:22:13] --- May 16 22:22:13 LillePi homebridge[28553]: [2018-5-16 22:22:13] Plugin /usr/local/lib/node_modules/homebridge-hue requires Node version of ^8.11.1 which does not satisfy the current Node version of v9.9.0. You may need to upgrade your installation of Node. May 16 22:22:15 LillePi homebridge[28553]: [2018-5-16 22:22:15] Loaded plugin: homebridge-hue May 16 22:22:15 LillePi homebridge[28553]: [2018-5-16 22:22:15] Registering platform 'homebridge-hue.Hue' May 16 22:22:15 LillePi homebridge[28553]: [2018-5-16 22:22:15] --- May 16 22:22:16 LillePi homebridge[28553]: [2018-5-16 22:22:16] Loaded plugin: homebridge-mqtt May 16 22:22:16 LillePi homebridge[28553]: homebridge API version: 2.2 May 16 22:22:16 LillePi homebridge[28553]: [2018-5-16 22:22:16] Registering platform 'homebridge-mqtt.mqtt' May 16 22:22:16 LillePi homebridge[28553]: [2018-5-16 22:22:16] --- May 16 22:22:16 LillePi homebridge[28553]: [2018-5-16 22:22:16] Loaded config.json with 0 accessories and 3 platforms. May 16 22:22:16 LillePi homebridge[28553]: [2018-5-16 22:22:16] --- May 16 22:22:16 LillePi homebridge[28553]: [2018-5-16 22:22:16] Loading 3 platforms... May 16 22:22:16 LillePi homebridge[28553]: [2018-5-16 22:22:16] [Config] Initializing config platform... May 16 22:22:16 LillePi homebridge[28553]: [2018-5-16 22:22:16] [Config] Spawning homebridge-config-ui-x with PID 28594 May 16 22:22:16 LillePi homebridge[28553]: [2018-5-16 22:22:16] [mqtt] Initializing mqtt platform... May 16 22:22:16 LillePi homebridge[28553]: [2018-5-16 22:22:16] [mqtt] homebridge-mqtt v0.4.8 May 16 22:22:16 LillePi homebridge[28553]: [2018-5-16 22:22:16] [Hue] Initializing Hue platform... May 16 22:22:16 LillePi homebridge[28553]: [2018-5-16 22:22:16] [Hue] homebridge-hue v0.9.2, node v9.9.0, homebridge v0.4.42 May 16 22:22:16 LillePi homebridge[28553]: [2018-5-16 22:22:16] [Hue] warning: not using recommended node version v8.11.1 LTS May 16 22:22:16 LillePi homebridge[28553]: [2018-5-16 22:22:16] [Hue] warning: not using recommended homebridge version v0.4.38 May 16 22:22:16 LillePi homebridge[28553]: [2018-5-16 22:22:16] Loading 0 accessories... May 16 22:22:16 LillePi homebridge[28553]: [2018-5-16 22:22:16] [mqtt] Number of cached Accessories: 11 May 16 22:22:16 LillePi homebridge[28553]: [2018-5-16 22:22:16] [mqtt] clientId = homebridge-mqtt_05073749 May 16 22:22:16 LillePi homebridge[28553]: [2018-5-16 22:22:16] [mqtt] Connecting.. May 16 22:22:17 LillePi homebridge[28553]: [2018-5-16 22:22:17] [mqtt] connected (url = mqtt://127.0.0.1)
Ok, it seems to be a multi-instance issue. Have a look here: https://github.com/nfarina/homebridge/issues/1160
I have to investigate, but you can try to replace line 34 with return;
-- process.exit(1);
++ return;
Yep, that works! The second Homebridge instance now manages to start up (without homebridge-mqtt configured as a platform in its config.json). It just logs the following on this instance but continues:
[2018-5-16 23:29:35] [homebridge-mqtt.mqtt] config undefined or null! [2018-5-16 23:29:35] [homebridge-mqtt.mqtt] storagePath = /var/lib/homebridge-ext
I've uploaded a new version, please install from gitHub:
sudo npm install -g --unsafe-perm cflurin/homebridge-mqtt
Awesome! Will you push it to npmjs as well?
- mai 2018 kl. 11:48 skrev cflurin notifications@github.com:
I've uploaded a new version, please install from gitHub:
sudo npm install -g --unsafe-perm cflurin/homebridge-mqtt — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or mute the thread.
homebridge-mqtt v0.5.0 on npm available.
Works great.
I have multiple instances of Homebridge where only one is configured to use homebridge-mqtt, but the mere existence (and loading) of the globally installed homebridge-mqtt plugin causes the second one to fail to start.
There's a simple fix to this bug proposed here (two possible solutions) if you agree and could implement:
https://github.com/oznu/homebridge-config-ui-x/issues/17#issuecomment-389465345