devbobo / homebridge-lifx-lan

LiFx LAN platform plugin for Homebridge
MIT License
85 stars 27 forks source link

Color Mini not detected as color #43

Open ScottBessel opened 5 years ago

ScottBessel commented 5 years ago

It appears that my two new Color Mini lights are only detected as white, I have no color options.

Also there is no way to exclude a light from the plug-in.
So if I wanted to use the new Mini's with the LiFx HomeKit implementation I get duplicate HomeKit lights.

Scott

ScottBessel commented 5 years ago

I did find a way to address my issue ignoring bulbs, which did help avoid the other issue as well.

I enabled debug mode. watched the logs for the lights I wanted: [1/23/2019, 4:09:56 PM] [LiFx] Online: LIFX Mini 3A06A2 [d073d53a06a2] [1/23/2019, 4:09:56 PM] [LiFx] Online: LIFX Mini 3CEBEE [d073d53cebee]

Then added the ignoredDevices options with the address found in the log.

My end configuration looks like this:

{
  "platform": "LifxLan",
  "name": "LiFx",
  "ignoredDevices": ["d073d53a06a2", "d073d53cebee"],
  "debug": false
},

hope this helps someone else.

cgrin commented 5 years ago

I'm seeing the same issue. This LAN plugin seems more reliable than the native Homekit, so I'd prefer to see the color control exposed here if it's possible...

mrowlinson commented 5 years ago

Same issue with my color minis. I can change the color temperature but can’t change actual colors. Not a huge deal for me since I almost never actually change the colors but it would be nice to have it working correctly.

Djelibeybi commented 5 years ago

There is a way to fix this issue, but it requires rediscovering all affected bulbs so that the cachedAccessories file knows they are colour-enabled. This could be very tedious depending on how many scenes or how many automation triggers you have.

You'll also need to know where you installed the homebridge-lifx-lan module (globally or specific to the homebridge directory) because we have to replace the node-lifx module it installs as a dependency.

If you use global modules, it'll most likely be in /usr/lib/node_modules/homebridge-lifx-lan so here are the steps to replace the version of node-lifx from NPM with the latest code from GitHub (that annoyingly has the same version as the one on NPM but does recognise the Minis properly):

# cd /usr/lib/node_modules/homebridge-lifx-lan
# npm uninstall node-lifx
# npm install https://github.com/MariusRumpf/node-lifx.git

Note that you must NOT use the -g parameter because you need to change the version of node-lifx that's used by the plugin itself.

Now, just this update is not enough, because the plugin caches the capabilities of each bulb on first discovery. So all the bulbs you already have configured via Homebridge won't get updated. The simplest way to remove a cached LIFX bulb is just to add its MAC address to the ignoredDevices configuration array and restart Homebridge. This will trigger Homebridge to remove the accessory. Once that's done, remove the MAC address from the ignoredDevices array and restart again and the bulb will be rediscovered with its capabilities properly enumerated.

WARNING: this process WILL REMOVE the bulb(s) from any scene or automation, so you'll have to reconfigure that afterwards.