I see that full range of effects supported by the iOS application are supported via the HTTP API (https://api.developer.lifx.com/docs/introduction). I am interested in using these effects via the LAN API but it seems like only “Move” is supported (https://lan.developer.lifx.com/docs/firmware-effects). Is this just a documentation issue or will a firmware need to be put out to support more?
The multizone products (so LIFX Z and LIFX Beam) support Move as a firmware effect (i.e. the effect happens in the firmware). And Tiles have the Flame and Morph effects in firmware.
The rest of the effects are just the app continuously sending SetWaveform messages to the device.
Unfortunately we don’t document anywhere publicly the values of those messages that create the effects in the app.
So when those are set via the HTTP API or via the iOS application there is continuous network traffic to make it work? Is there any reason those effects aren’t baked into the firmware?
The HTTP Api can only activate firmware effects or send a single waveform (for example the breathe effect is just a SINE waveform)
The other effects in the app aren’t in firmware at the moment (mainly due to competing priorities) but we might move some of them into the firmware in the future.
Would it be possible to at least document the values that are being sent for the other effects so that we could reproduce them via the SINE waveform? That should be pretty straight forward and hopefully not take away from the competing priorities.
It should be fairly easy to play around with sending SetColor/SetWaveform/SetWaveformOptional messages to your device and recreate the effects.
I am using https://www.npmjs.com/package/node-lifx-lan . I guess it is more the values to recreate them over the exact calls for a specific library. Figured that way anyone else looking to this could “port” them over.
The App devs are super busy with 4.0, so I had a look at the code myself. Now I’m a cloud dev so I’m not very familiar with the mobile app code, so it’s a little difficult for me to follow.
It does seem the effects themselves are pretty straight forward. i.e. different colors at different times, or setting values based on a random number in a range. There isn’t really any specific values that the app sends to the devices.
I made a photons script that tries to mimic the flicker effect which you can find here https://gist.github.com/delfick/d67898c132283439c3787eb5c072ae72
Hopefully that gives you a reasonable idea of how to make your own effects.
Damn! Thanks for going above and beyond.
Any hints at what new cool stuff is coming in v4?
it’s fun to make scripts sometimes
as for 4.0, I’d recommend signing up to the beta, https://www.reddit.com/r/lifx/comments/e1uczr/lifx_app_40_beta_release/