New Yeelight iOS App

Hello everyone. I am developing an app that takes advantage of the “developer mode” of Yeelight bulbs. Some screenshots:

The app is compatible with LED Color and LED white bulbs. This is the only hardware i have available.
I am planning to release the app the next couple of days. It will be a free app.

I wanted to ask someone from YeeLight team: is there any problem using the “Yeelight WiFi” name for this app?. Please let me know.

Any questions, thoughts are welcome.

Update
Link to App Store

Please go ahead, it’s OK for us. Thanks for this great app!

looks good! What is it name / release date and is their an early beta which I could join? :slight_smile:


I also have one final question, are you able to develop an app which will allow the light to flicker like a candle or beep to an notification?


Thanks,

Thomas H

Hi Tom,

The app has already been submitted to the App Store for review. I hope next week will be online. I will update this post with a link for it.

Currently, i’m afraid the API does not support that. In theory, you could do a color flow but the intervals have to be less than 1 second to get this “candle effect”. So maybe with a future firmware update in our bulbs.

For the notification “beeping”: i think this is plausible. I will have a look in future updates.

Thank for the questions

Thanks,

Can’t wait for app to come out as it will be nice to see someone else’s take on the smart light app.

Within color flow, each tuple’s interval can be down to 50ms, so basically you can achieve any effect.

So unfortunately there is a small issue:

We have started the review of your app, but we are not able to continue because we need the associated hardware to fully assess your app features.

Next Steps

To help us proceed with the review of your app, please send the necessary hardware/accessory to the address below.

NOTE: Please include your app name and app ID in the shipment; failure to provide this information can delay the review process.

Additionally, it may take several business days for us to receive the hardware once it has been delivered to Apple.

I didn’t know that i had to send an actual bulb to Apple. I suspected that they will need a way to test it so i’ve created a small virtual bulb that support few commands only. But it was not enough.

I live in the UK so i need to order a bulb from China, then send it to Apple in the US.

Since they need the actual hardware it means they already have it (they official app is already online) so i will try to tell them this.

I will try to tell them, if they dont accept we all need to wait.

Sorry guys

You can tell them Yeelight app is using the same hardware. If they still don’t approve, we can provide the support, we will send one bulb to them on behalf of you.

Hey weiwei,

This is amazing. Thanks for your help!

I’ve already sent email telling them to test it with the existing hardware they have.
I will update you once i hear back from them.

No problem. Also, remind them they need Yeelight app to turn on developer mode.

I have a notice when the list is empty:

There are also some basic instructions on the help section.

Hope they will be flexible with the hardware issue. Fingers crossed

wow!

Hi Kostas,
Maybe you can try to take a demo video, and add the url in the app info for preview.
For reference, https://www.yeelight.com/ios_demo/cherry_demo.htm
Good luck!

hi zhangxin, thanks for your instructions. I will prepare a video to demonstrate the functionality of the app if the won’t accept to test it with the existing bulbs.

In the meantime, i have a question: What other yeelight products support the same WiFi protocol? I am interested to buy each one of them so i can add support to the app.

I also have few more questions/suggestions on the WiFi protocol. Is it ok to send you an email?

All Yeelight WiFi products support developer mode and use the same protocol.
You can post your questions/suggestions here.

So one thing that was a bit annoying, is when you turn the bulb off from the (wall) switch. At that point it takes time to the app to recognise that there is no connection. So there is no immediate feedback to the user. Isn’t possible for the bulb to broadcast a NOTIFIY message when the power goes off? I am not sure if each bulb has a battery inside and i understand this is hard to implement but it would be amazing to have.

An other thing is that when you set a sleep timer the connected bulbs are not getting any feedback so i had to implement a timer that sends “cron_get” every 30 seconds. Do you plan to add this feature?

For the first issue, it’s about TCP programming paradigm. When your peer socket is closed gracefully, then you can detect it by checking if the return value of “read()” call is 0. When your peer socket is closed abruptly (for example, system power off, even with battery, you can’t guarantee a NOTFIY message will reach to your program), then you have no way to detect it immediately (I think this is the issue that bothers you). The common practice to handle this situation is using SO_KEEPALIVE socket option. After you create the socket, you can call “setsockopt” to enable TCP keep alive mechanism on your socket. TCP_KEEPIDLE, TCP_KEEPCNT, TCP_KEEPINTVL are three other options you need to use. Generally speaking, the logic is: when your TCP/IP stack detect your socket is idle for TCP_KEEPIDLE seconds (no message come from peer), then it will send a packet to peer, if no acknowledge is received, then it will re-send another probe packet at a interval of TCP_KEEPINTVL seconds. Once total retry count reaches TCP_KEEPCNT, TCP/IP stack will assume peer is closed and it will notify your program. You can tune these parameters to make your program react quickly when peer is powered off.

Regarding the 2nd issue, there is a property named “delayoff”, once sleep timer is enabled, it will notify the App every one minute. If sleeper time is cancelled or fired, this property will be changed to 0.

1 Like

Thanks for your technical reply weiwei.
I have an update on the app store issue.

Hello,

Thank you for your correspondence. As the app requires hardware in order to function properly, it would be appropriate for you to provide us with the necessary hardware in order to properly review the app. Alternatively, you may provide a demo video of the app working on an iOS device in conjunction with the associated hardware, and displaying the functionality of the app.

We look forward to reviewing your app.

Best Regards,
App Store Review

So, as zhangxin advised, i will make a nice video today and send it to them. Hopefully within couple of days the app will be up.

A new update on this issue: the video got accepted but they don’t like the name:

Hello,

After further review of the app we found the following issue:

Guideline 4.1 - Design

Your app or its metadata appears to contain misleading content. Specifically, your app title generates a misleading association with Yeelight.

Next Steps

To resolve this issue, please remove or revise any misleading content in your app and its metadata.

I need to change the name of the app now.

I will call it LightYeeAr