How to propagate bulb changes from LIFX app to SmartThings?

Hi,

Yesterday I added 2 new bulbs to my LIFX system. The new bulbs are named properly and working perfectly from the LIFX app; nevertheless, I cannot find how to make SmartThings to get the changes and allow me to control the new bulbs.

As I have been using LIFX+SmartThings for a while, this is what I have tried:

  • Going to “LIFX (Connect)” app and reinstalling the location (clicking “done”, no much more possible to do)
  • Waiting at the “add device” screen for up to 10 minutes (obviosly no new device appears because LIFX connects through wifi)
  • Trying to add a new device using the 2 currently possible options for LIFX (this just get me to the “LIFX (Connect)” configuration slide)
  • Logging in and out from LIFX and SmartThings apps

Now… deleting the “LIFX (Connect)” app is not an option as I have around 15 bulbs and this would require to reconfigure around 30 apps coded by myself that control my “wannabe” Intelligent Apartment.

Somebody knows the currently right procedure to propagate these LIFX changes so they are available on my SmartThings options?

Thanks!

@ptoledo - I have a ton of LIFX bulbs. 50ish I think. I lost count. Anyways, I don’t like the standard LIFX integration with LIFX. I wrote the following device handlers that might help you.

LIFX Group of Groups - Use this to control a group of LIFX bulbs as a single device within SmartThings. You can also control multiple LIFX groups as a single group within SmartThings.

Better LIFX Bulb - If you want your bulbs to each show as individual devices within SmartThings you can use this. However, you don’t need to have your bulbs added with this DH in order to use the LIFX Group of Groups DH.

In order to get these working you will need to sign up for a developer account with LIFX, instructions to do this are on github. It isn’t hard and YOU DO NOT NEED TO BE A DEVELOPER.

Updates from LIFX are not instant but you can schedule them to happen as often as every minute if you want based on the device settings.

2 Likes

Hi Eric,

Thank you, once again, for the help with these bulbs. I would like to install the “Better LIFX Bulb” to my system because it alignes better with my current bulb administration architecture. I would like to use the “Installation via GitHub Integration” but my IDE does not show the sections you mention on the readme (I see that your latest commit was 9 months ago for the readme file and the IDE got some changes since then).

Could you please check? otherwise I’ll install the manual way.

Thanks!

They changed the SmartThings page a while back. I updated the instructions. It should match now.

Hi Eric,

Thank you again. I had and idea about the changes on the site, but the issue was that I could not find the “settings” button. Well, in case somebody gets also lost, this button only shows up when you have completed the process to integrate GitHub with the IDE.

I just checked out the repository. I’ll post you about my results.

Thanks!

What did it say before? What did you click on to do the github integration?

Hi Eric,

On the site “My Device Handlers” at the left of the button “Create New Device Handler” there was a link that said “Enable GitHub Integration”. After I went through the whole enabling process (which requires a GitHub account) I got my missing “configuration” button.

On a side note… I have not been able to use your “Better LIFX Bulb”. I have not been able to create a device with it. Could you please give me some pointers about how to do that?

Thanks!

Once you have installed the device handler do the following to add the device to ST.

  1. Login to ST IDE.
  2. Click “My Devices”
  3. Click “+ New Device”, top right corner.
  4. Fill out the information. For “Device Network ID” give it a unique id. I do something like my initials with a long sequential number. Maybe “PTC000001” in your case. If you create another device increment the number, “PTC000002”.
  5. Don’t select a group or enter a zigbee ID.
  6. Hit Create.

Once you have done this, the device will appear in your ST app.

  1. Find the device in the ST app.
  2. Once in the device, click the configure button (cog).
  3. Take a look at the settings options.

There are two critical fields. “Bulb Name” and API Token.

The bulb name should be exact (case-sensitive) to what it is called in LIFX.

Follow the instructions here to get your API token.

Hi Eric,

Thank you. I was able to create and control a bulb with your device handler; nevertheless, I found 2 little issues:

  1. If I try to disable the “use schedule” option, the handler crushes without any log trace (I put the log level on “TRACE”)

  2. I am not sure if it is a dot or a space, but I have a bulb with letters and these 2 special characters and the handler does not seems to work. I am completely sure that the name is correct with capitalization and all (I copied it directly from LIFX) but in this case it does not work and the log says "LIFX did not understand the bulb names. It needs to match what is in your LIFX app and they are case sensitive."
    By reading the log, it seems to me that the handler is trying to open the path to the lifx api with a space on the string without converting it to “%20”

Extra: At the moment I was able to use your handler for a bulb, the bulb was detected by SmartThings and it appeared on the app with the original LIFX bulb name; therefore, I get the bulb with your device handler and with ST handler. If then I delete the device with your handler, the ST handler stays on the list and continues working.

Can you send me an example name that has the characters you are talking about?

Also, update from github and see if turning the schedule off works now. BTW, why do you want it off?

Hi,

Thanks for the update. Disabling the schedule works now. I want to disable the “schedule” option because I do not know or have an explanation about what it does and as I only need a handler to send commands to the bulbs (from my apps) it seems unnecessary to me. Note: The handler now has an editable option at the end that only says “true”. Is this a hidden variable that got exposed? It does not have any label.

About the name, my bulb name is “Dorm. 1” (“Dorm.” as abbreviation for “Dormitorio”, Spanish for “Bedroom”).

Thanks!

The schedule allows the DH to update it’s status if you control the light through the LIFX app. It makes itself aware of external changes. Otherwise it won’t know it’s state if you use the LIFX app occasionally.

Hi,
Beside the ability to group bulbs together is a single virtual group, how are these device handlers better than the standard LIFX integration?
For me, a 1 MINUTE delay between bulb status sync is unacceptable. Is there a way to get instant updates like with the standard integration?

1 - It also uses the new Asynchronouse method from SmartThings which takes execution time from 1.5 - 2 seconds down to 10-30ms.

2 - If 1 to n of the lights in your group doesn’t do what you asked it to do, the DH will detect that and try again. It will retry up to 3 times at different intervals.

3 - I’ve implemented custom methods for both breathe and flash that can be called easily from webCoRE.

4 - I’ve also implemeneted a single method that sets both level and color temperature in a single api call to lifx. Why you ask? Because I do that a lot and it was more efficient.

5 - You can create multiple devices in ST that represent the same physical bulb or logical group. Comes in handy if you want the same device listed in multiple rooms in the ST app.

6 - This DH supports the IR functionality of their + line.

Ok, so keep using the ones that came with ST. However, I wasn’t aware that the standard ones did it either.

Feel free to update the DH to make it faster…

Change line 499 from…

runEvery1Minute(refresh)

to

schedule("X * * * * ?", refresh)

Change the “X” to how every many seconds you want the refresh to run.

I’m curious, why is it unacceptable?

Everything sounds great, thanks for your reply!

Because some of my webCoRE pistons are using the lighting status as a condition.
For example, turn on light#1 when movement is detected, but only if light#2 is OFF.
If light#2 is ON but the piston is not yet aware of that (because it turned on “only” 30 seconds ago) - the piston will turn on light#1 as well - and that’s not the expected behavior.

Of you only ever use ST to adjust the lights it won’t matter. Status updates are instant if you use ST and not the LIFX app.

Hi Eric,
Nic job thanks for this useful contribution. I have a question though.

I couldn’t get this to work with me and hope you can help me with that.

1- I created a device handler using GitHub integration and the device handler is published

2- Then I created a new device and assigned the type LIFX Group of Groups that I’ve created in the previous step and then published it

3- generated a new token from lifx website

4- went to the settings the newly created device in smartthings and copied the token and put the name of th group 1 as the same name I have in the lifx application

Then I tried to control the light using the new device but nothing happens!!

am I missing something? can you please help on that?
Thanks in advance

Regards,
Wissam

Are you sure the name is exact? Case and all?

Can you post logs from the IDE, that will contain the error message.

Hi Eric,
You were right actually after checking the IDE logs it’s saying cannot find the group name.
And then realized that the group name in lifx app has a space after the group naming which preventing it from working because of the case sensitive…
now I deleted the space and everything is working fine…
Thanks :slight_smile:

1 Like

Reviving this older thread. I have some questions about ST-Better-LIFX-BULB Device Handler @whoismoses.

I have installed the device handlers as instructed.
I have my API also.
image

What I am not sure about is the formatting for the bulbs. I am assuming they go here? How are they input into the “TEXT” field?

So, OK, I have the new device handlers installed and configured. Do I still need the Smartthings : LIFX (Connect) in the smartapps section?

Here is what is in my smartapps:
image

Are there more detailed instructions somewhere? I am also interested in your LGOG DH.

The MAIN issue I am trying to solver is essentially a “Gang” turn on and 15 sec fade up / fade out of all lights vs individual lights. I am assuming your DH’s will solve those?

Thank you so much in advance @whoismoses. I sincerely appreciate your contribution to the community to help “newbs” like myself.

-Walt