KraigM / homebridge-wink

Wink hub plugin for HomeBridge
54 stars 37 forks source link

LAN API? #8

Open KraigM opened 8 years ago

KraigM commented 8 years ago

Wink's API seems to be painfully slow and doesn't work all the time. I even had to add code in that continually tries to update the device for awhile (until it works). Given HomeKit is all about local networks, I figure it might be faster if we skipped their cloud API and talked to the hub directly.

I did some research and ran across a few sites that mentioned it is possible, so it might be worth exploring further.

earlthesquirrel commented 8 years ago

Second!

KraigM commented 8 years ago

Anyone is free to do further research on this. We will all just make sure to post everything to this item so that no double work is done. I can also setup a special branch for this so people can send partial pull requests.

KraigM commented 8 years ago

http://hackaday.com/2015/01/05/a-better-way-to-hack-the-wink/

KraigM commented 8 years ago

Im not a windows guy but it looks like the "windows" portion of this is just "use putty" and "here is how you do a curl in powershell" so we could mod the instructions for mac/linux.

http://www.sytone.com/2015/02/rooting-the-wink-hub-with-windows/

pdlove commented 8 years ago

Here's the best site on it since the March update that broke easy rooting. This is the #1 reason I've been moving alot of my automation over to smart things. Wink is all against local access even though they have an awesome product. Potentially we could hack a Wink Hub and run node.js on it and have it serve up home bridge from the hub. Really, that sounds like a great idea on something to try.

pdlove commented 8 years ago

The site.... http://homeautomationhacking.com/openwink

pdlove commented 8 years ago

After reviewing some information, I believe it is possible for us to run homekit directly on our wink hubs and completely eliminate the delay caused by using the Wink API. At the same time, the hub would retain all of the Wink Cloud functionality.

It takes some work to get the root and a bit of soldering. I will possibly offer an installation service for anyone uncomfortable with it. The page for how to root is here: http://forum.xda-developers.com/general/off-topic/wink-hub-root-t2969205/page27

Is anyone interested in this?

If this is something of interest, I will pursue it with my own wink hub. It will likely be spun off to a separate plugin called "homebridge-winkroot" or something like that because the "API" is completely different with local access. If you want to know why I'm not looking at using the local php api, you can review on that same thread about it being removed from the firmware last year.

earlthesquirrel commented 8 years ago

I might be interested... (though if I do, I'm going to want to have a 2nd hub... if I "break" the existing working Wink setup my wife won't be happy...)

Earl

On Wed, Jan 6, 2016 at 9:32 AM, pdlove notifications@github.com wrote:

After reviewing some information, I believe it is possible for us to run homekit directly on our wink hubs and completely eliminate the delay caused by using the Wink API. At the same time, the hub would retain all of the Wink Cloud functionality.

It takes some work to get the root and a bit of soldering. I will possibly offer an installation service for anyone uncomfortable with it. The page for how to root is here: http://forum.xda-developers.com/general/off-topic/wink-hub-root-t2969205/page27

Is anyone interested in this?

If this is something of interest, I will pursue it with my own wink hub. It will likely be spun off to a separate plugin called "homebridge-winkroot" or something like that because the "API" is completely different with local access. If you want to know why I'm not looking at using the local php api, you can review on that same thread about it being removed from the firmware last year.

— Reply to this email directly or view it on GitHub https://github.com/KraigM/homebridge-wink/issues/8#issuecomment-169337455 .

AppleTechy commented 8 years ago

I agree. I am totally down but I am looking into buying a new hub so as @earlthesquirrel said so I don't break my existing setup. I am very interested into looking at running node js directly on the hub because I am looking into running homebridge on a NAS but it would be nice to run it directly on the Hub and not have to deal with possibly breakin my NAS if I miss up in SSH. :)

AppleTechy commented 8 years ago

Ok, so just to update anyone not on slack. The newest version of the Beta wink software includes references to use of LAN software.. We might see an update soon that allows access to a LAN API. This would have tremendous implications as it might solve some of the timeout errors related to the Wink plugin due to the command being sent faster which means faster execution time allowing for a faster response being send back to siri to confirm the change of state

3space123 commented 8 years ago

@AppleTechy, @earlyhesquirrel... I bought a 3rd Wink hub last year, and rooted it. I have ssh access to it, etc. Would this be of help for testing? If so, please tell me what to do, and I'm in!

3space123 commented 8 years ago

Sorry, @earlthesquirrel I meant!

pdlove commented 8 years ago

@3space123 With the news from AppleTechy, I'm going to wait and see what Wink is doing. If we root the hub and enable LAN access that way then it will be a very different process than doing whatever Wink comes up with.

3space123 commented 8 years ago

@pdlove: OK, sounds good. Thanks!

nicknewlin14 commented 8 years ago

Any update on this with the release of the new wink firmware with local control?

pdlove commented 8 years ago

@nicknewlin14 Local control is only possible by the Wink app and not by API without rooting the hub. I've sent in a support request to Wink asking how to access lights locally and, as yet, don't have a reply.

atheurer commented 8 years ago

I have been testing local control based on this info here: https://www.reddit.com/r/winkhub/comments/44p4x5/discussion_native_local_control_via_api_with_wink/ as I have root access and was able to get the id/secret. So far the response time to control a GE Link bulb has been very inconsistent, from 0.5 to 5 seconds.

AppleTechy commented 8 years ago

@atheurer The issue is that the ID/secret doesn't remain constant for all the hubs. Therefore even though people have created an "unofficial API" there isn't a way for us to implement a standard way of using locks access as most user don't have root to find out the ID/Secret. But Thxs for pointing ou the article. I think the people with root will probably take a look. @pdlove

impressiver commented 8 years ago

Sorry for joining the conversation late. I just got around to setting up homebridge{-wink}. It's working great from my laptop, but I'd really like to get it right on the hub (vs a Pi or NAS).

The hub is already running node, but not npm (as you know); unfortunately installing npm requires ~40mb free space so isn't an easy option. Except for the pain of cross-compiling homebridge for armv5, I don't see any reason why it wouldn't be possible to get this going on a rooted hub.

Tangentially, local_control is a node app, and already has everything requires to start an additional server listening on a lan port for commands. If anyone is interested, its trivial to dump the updater/rootfs partitions and ssh/scp as a tar/zip to play around with.

The kernel source has also been open sourced by Wink, but requires a licensed SDK to build for the i.mx28 cpu. Should anyone have a way to compile with build root/yocto, the community could create an alternate firmware with added features that would be easier to install than the full manual root process (repeated for every update).