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.
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.
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.
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.
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?
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.
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.