Announcing the first "beta" of LIFX Enhanced Drivers -- built using @bcopeland's LIFX Color Legacy driver as a reference, the intent is to provide additional functionality not exposed by the built-in LIFX drivers. These drivers utilize the built-in LIFX Classes and LIFX Integration App to build and send packets to the bulbs.
The first driver targets LIFX Strips / Multizone devices. Notable differences/enhancements from the built-in driver:
Persists unique colors in zones when running setLevel for the Strip
Aggregates updates from child devices when applying a scene to avoid "popcorning" the zones (with the tradeoff of a slight -- but configurable -- delay)
I intend to eventually develop enhanced drivers for additional bulb types as well.
If you encounter issues, or have suggestions for modified/enhanced behavior -- please enable debug/verbose logging to capture as much data as possible. PRs are welcome.
Sorry, no. I actually ran into some bugs with the MZ driver and flipped back to the built-in for now (better overall WAF) - still a side project I'd like to come back to, but on the back burner for now.
Hey,
I am looking to add "effects" to my LED strips, for example trigger the "Move Effect" for 30 seconds on the stairs every time there is a motion detected at the bottom.
Are these effects possible with the enhanced driver?
The framework is in the driver, but not tested. Would need to uncomment line 38:
capability "LightEffects"
to expose the command, then invoke setEffect with param: 1 to start the Move effect, param: 0 to stop. Current implementation does not specify the direction of motion, and has hardcoded the speed. Unfortunately hasn't gotten much love since my initial stab... it was unreliable in turning on/off (sometimes needed two sends), and I switched back to the built-in drivers for my own strips. Hoping to come back to this when life settles down
When I try to I get the following error java.lang.UnsupportedOperationException: Cannot use rightShift() on this number type: java.math.BigInteger with value: 18374686479671623680 on line 381 (method setEffect)
And Line 381 is the following
cmds.add(new hubitat.lifx.commands.SetMultiZoneEffect(instanceId: 4824828, type: effectType, speed: 5, duration: duration))
Posting because I found this - but if its not obvious please don't go intro trouble trying to debug it
Any ideas why Hubitat doesn't seem to remember the zone colors even after manually polling the strips? I'm trying to use 'set level' again without changing the zone colors, but despite the nice code you added @dkilgore90, all of the zones change to the Zone 1 color.
FWIW, I contacted LIFX about addressing brightness adjustments (using LAN protocol) without affecting the HSK values, and as expected they said nothing can be left blank; all values (HSBK) need to be re-set with each command sent. This makes sense when recalling how to program something like the Neopixel LED's. Still, it'd be nice if they were able to store zone colors on-board the device controller so we could send empty HSK values and let the device controller adjust the commands as needed.