We’ve integrated support for LIFX bulbs into our mobile apps for our smart home controller Nuimo.
As we are supporting iOS and Android smartphones we’ve built our integrations on top of LIFX’ deprecated mobile SDKs:
We are fixing bugs as we discover them since these SDKs are not maintained any longer by LIFX. I was wondering how other developers deal with that situation? I guess that not everybody doesn’t have enough time to reimplement the LIFX’ LAN protocol for all mobile platforms.
The LIFX SDK documentation states that
“LIFX will no longer be supporting [the mobile platform SDKs]. This has been done in order to better support developers by focusing instead on releasing documentation for the LAN protocol itself and enabling SDKs to be produced in any language.”
I was wondering how developers should deal with that situation since we are all facing the same implementation problems / bug fixing problems. I however can’t find any actively maintained mobile platform SDK out there. That’s why, for the time being, we’ve cloned the SDKs and are bug fixing them on our own. But for me it feels like that we shouldn’t do that work at all to support LIFX lights.
PS: Using the HTTP API is not an option for us. We want the communication to happen in the user’s LAN exclusively.
As I couldn’t add more than 2 links to my post, here are the links to the cloned SDK repositories that we are maintaining:
How about using the AllJoyn interface? It’s HTTP based but there’s no Internet connection required. It’s all local to the user’s LAN. The AllSeen Alliance has released bits for the devices you are targeting.
Thanks for the Links! I’d like to add my question to this discussion as well:
is there a Swift based SDK to be expected?
@ianlee74 That’s an interesting approach – I didn’t know that AllJoyn was already that mature. What would suggest to read to get easily started with AllJoyn? Are you aware of any tutorial to support a specific smart device? The official documentation seems to be good but it’s a rather heavy thing to start with.
@eversin LIFX doesn’t seem to release more SDKs in the future. You can however use the Objective-C SDK and use it in your Swift project. This is what works for us as well.
Yeah I will try to bridge it as soon as i get around to fiddle around with my lifx bulbs! Thanks for answering so quickly!
Developing openHAB I came across the same problem as you (but only looked for a Java API).
I also tried AllJoyn as an alternative, but from my personal experience, I would not recommend it - it did not feel at all stable, it is not supported on older LIFX bulbs and you have to mess around with a lot of native C code and access this from Java.
In the end, we did a pure Java implementation of the LIFX local protocol, you can find the results here.
Btw, you will get all this local integration for free, once the integration of Nuimo in Eclipse SmartHome is working :-).
Hi Kai, thanks for your feedback! Your Java implementation might help us when tracing some bugs in the deprecated LIFX SDKs.
Really looking forward to seeing Nuimo work with OpenHAB!
@lars.senic I’ve only controlled the LIFX 1000 bulbs from Windows 10 & the Raspberry Pi w/ Windows IoT Core. That scenario seemed to work as expected but I definitely can’t vouch for the mobile platforms. @kai’s advice is probably more relevant. AllJoyn is being rapidly developed & enhanced. So, its definitely worth re-evaluating from time-to-time. If you decide to give it a shot, I’d love to hear your experiences.
PS - in full disclosure, I’ve recently become an AllJoyn Ambassador and am organizing the AllJoyn Nashville Meetup group.
I had a question about Nuimo’s integration with Lifx. Since my understanding is that Nuimo uses BLE, and the new Lifx bulbs do not have BLE, is it possible to use Nuimo on a Lifx bulb if there is no phone/tablet/computer on in the vicinity of the Nuimo? Or must there be a device with an app installed and running in order for Nuimo to control Lifx bulbs? Thanks in advance for your reply!
glad you are asking, so please let me clarify: Nuimo uses an open BLE profile that everybody can use to connect to Nuimo. This “GATT” profile is implemented by our Nuimo apps that are available for Android and iOS. These are apps are running in your phone’s background and automagically connect to your Nuimo and your LIFX bulbs. It’s the app that translates between user input from your Nuimo and commands for the LIFX bulbs.
You can however also build your own LIFX-Nuimo integration that would run on a different device, e.g. a Raspberry Pi. We provide SDKs for some platforms (with more being planned) that make the integration easier (check out senic.com/developers). As Nuimo’s GATT profile is open you can however use any platform that supports BLE.
If you have further questions, please let me know. Also feel free to shoot an email to firstname.lastname@example.org