Lifx support out of the box

I'll probably add that to the Troubleshooting section of the readme

That would be good. Maybe it would help someone else troubleshooting.

So, I seem to be having a similar issue here. I've power cycled my bulbs, and yet can't seem to have the hub find any of them. All the drivers are installed per instructions, and I've set them all as static, etc etc. Is there any way I can shoot some sort of a ping request from the hub to the bulbs to ensure that it can actually see them?

Pretty stoked about Hubitat and I just got mine today, Not afraid of code as Im a developer myself. Hope I can get this local control under well... control!

Thank you all!

That's a bit strange, normally it's only a couple that don't want to be detected.

I suppose the first thing to check is that the Hubitat and the bulbs are on the same subnet - I would expect this to be 192.168.0. or 192.168.1.

If they're not then you'll need to type the subnet(s) for the bulbs into the relevant option in LIFX Master.

Failing that it may be a router issue - possibly it's blocking UDP traffic (although that would be very unusual).

So, it did eventually find all of my bulbs, though I had to extend the time to about 100ms and run 5 passes. And that was only after power cycling them a few times. I've had similar issues with connectivity before using a Flic Hub (overpriced imo). Must be some setting within my Unifi setup.

But for now, things are working as they should! Thanks for the reply!

I've been considering getting Unifi, I may hold off on that for a while :slight_smile:

Hi Rob, I use Unifi and everything works great here :wink:

By the way, do you think it will be possible eventually to control Z strips with individual segments (groups of 6 LEDs, like the LIFX app does).

Yannick

2 Likes

By the way Rob, thank-you very much for sharing your Lifx code and all the work you have done.

1 Like

I have that partially working with the Beam which should be pretty much the same as the strip, although currently it only lets you save and load a pattern set by the LIFX app. From my experience each LED is addressable, and I think that should be the case with the Strip as well.

The only reason I haven't released that yet is that I still haven't found a really good way of supporting level change (the issue here is what happens when one or more of the LEDs hits e.g. 0 and you continue to dim them - what happens upon brightening them again - I'd like the relative brightness to stay the same.

I may have to get a Strip at some point in case the behavour is different.

For the moment, I have 8 Z strips to play with. From what I can see, there is a LED driver every 6 leds so thats why you get 8 "zones" per 1 meter strip. Of course, when you add strips to the powersupply, those zones spread out evenly. When you are ready, I could do some testing if you want.

Yannick

You should definitely not hold off on getting unifi stuff. It's really really good. I went through a whole bunch of "pro grade" consumer routers before switching to unifi and always had problems. Since switching to unifi things are faster than ever and rock solid stable. On top of it if you get the cloud key g2+ unifi protect cameras are really excellent, I use a g3 nano as a baby monitor. Sorry, kinda off topic, thanks for the awesome lifx code!

1 Like

That makes sense - there's currently a limit of 82 zones in a multizone device

Is there a way to detect if a LIFX bulb is disconnected or not with these drivers? I created some rules that would trigger if a light was on at a certain time but if someone switches the light off at the wall then the device status page still shows the device is on. In the logs there is warnings that the device is not responding but the device status attributes still show it as on.

As far as I know there's no way to trap that warning, but I could probably add something to the code to check whether multiple polls have failed, I'll need to think about that some more. It would have to differentiate between a network failure and a device failure I suppose.

1 Like

That would be fantastic if you could.

I've just published the latest version of my LIFX drivers:
Two main new features

  1. Support for Start level change and Stop level change - I'm not 100% happy with this yet, but it does work.

  2. there's limited support for multizone devices (ie Beam and Strip) - you can save the current state under a name and then reload it later, not yet tried to do this from RM4, but it should be possible. Set a scene using the LIFX app on your phone, press the poll button on the device driver page to update the state - you should see the current state of the device displayed as multizone under current states. Then type a name in the Zones save box and press the button.
    It does store quite a lot of data in the state, I do very limited run-length encoding, but it could be improved, particularly when you have lot of the same colour in more than one zone. I will probably try to improve that at some point.
    However, there's still no support for Set Level - the reason for this is that as you increase the level it will max out at 100%, but possible only for certain LEDs, when you decrease it then you probably won't be able to return to the original levels, the same applies to dimming. There are two options that I can see:

    • Stop brightening or dimming as soon as any of the zones reach the limit
    • Keep track of the original value for each zone and all the deltas, which won't be much fun either.

To reinstall these you should only need to open the app and driver sources for each and reimport them.

3 Likes

Rob,
The multizone driver is throwing exceptions. This was while trying to do a setLevel

Rob, thank you for keeping improving the code and the quality of our home automation.

I installed the updated drivers today. I did have to roll back the Tile driver as frequent errors were logged;

dev:15512019-11-02 12:04:01.559 errorgroovy.lang.MissingMethodException: No signature of method: user_driver_robheyes_LIFX_Tile_228.getUseActivityLog() is applicable for argument types: () values: []
Possible solutions: setUseActivityLog(java.lang.Object), getUseActivityLogDebug() on line 101 (parse)
dev:15512019-11-02 12:04:01.532 errorgroovy.lang.MissingMethodException: No signature of method: user_driver_robheyes_LIFX_Tile_228.getUseActivityLog() is applicable for argument types: () values: []
Possible solutions: setUseActivityLog(java.lang.Object), getUseActivityLogDebug() on line 101 (parse)

That's odd - but then again, Set Level isn't currently supported for multizone devices - it should be logging a warning I think.

I must have missed a method - for now you can copy the getUseActivityLog() method from any of the other device drivers. The tile driver really doesn't do a lot yet anyway.