Is there any documentation on the hub/cloud network protocol? I really want to get the laggy cloud processing out of the loop for a number of time critical operations, and so thinking that perhaps a local proxy between the two would do the trick. The hub would talk to the proxy, which would pass all stuff on through to the cloud and back, but the proxy would be able to masquerade as the cloud and tell the hub to do certain things instantly.
I have wireshark, but unfortunately I have all switches at home, so not seeing the traffic. Gonna bring home a hub from work tonight and start poking around, but hoping someone has already done this. Is there a way to configure the address of the cloud server the hub contacts? I suspect it is doing an DNS lookup, which is easy to redirect. I’m more concerned that they are using an authenticated SSL connection. If so, anyone know of a way to turn that off?
Is there a way to telnet in to the hub? It appears to have the telnet port open, but dunno what the password is.
ST didn’t publish their hub protocol and I don’t think they ever will. The hub apparently is not part of their supposedly “open” architecture, which makes sense if you consider that routing all traffic through their servers is the cornerstone of their business strategy.
From what I can tell the hub keeps open TCP socket on port 433, which implies that they use HTTPS. It could be web socket or a long poll, for example. As far as telnet port, the official reply from ST was that it’s “for debugging only” and will be removed in the future.
I admire your passion and you taking initiative here. The long delays can be annoying, and even completely unacceptable at times, I agree.
However, I believe that cracking open the communication protocol may be a waste of your time. The hub firmware is under continuous development. There is a lot of churn, and the protocol may change at a whim. Updates are pushed over the air, so there isn’t really anything you can do to prevent your proxy from potentially breaking after your hub has been updated. What’s more is that if other users were to use your proxy software (I’m sure I’d want to!) this would create unnecessary workload and added noise for ST’s fantastic support team.
Instead, I would love for more people to get behind the idea of being able to install a custom rule set directly on the hub. Basically, a lightweight IFTTT executor, which would allow you to do simply things like turn on a light on motion, or turn on an outlet, if a light switch is turned on. Anything more complicated would still have to be implemented in a SmartApp, which would still execute in the cloud (no way this will ever change, ST’s whole architecture is based around this idea), but for a lot of that stuff the delay is acceptable. For example, I don’t mind my porch lights turning on 5 - 10 seconds after the sunset time.
+1 on the subset of custom rules that run on the hub. I had thought they actually mentioned planning to do that in one of the support documents, but I can’t find it now. I have to admit it stings when the $10 motion sensor that’s built into the hall light switch at my complex is 5x faster than my setup…
Also, not to go off topic, but if I could pitch why SmartThings should be completely open – even if your business model depends on you routing everything though a web service, opening up every level of your stack is actually good for that model. The developer crowd will love it all the more (the reason I recommend SmartThings to everyone is because it’s one of the few you can program). These developers will sometimes leave the cloud out of the picture for their highly specific solutions – but they’ll also evangelize to a lot of people who will be perfectly happy with everything it offers out of the box. So you end up with even more people using the web service than if it were closed. That’s how Twitter became huge, tech people loved it, told everyone about it, and all the users. You guys already have a lot of developer love, and making things more open would definitely give you a lot more.
I think I’m going to return my SmartThings and go with something else. This system is too closed and has too much latency for my needs. Thanks for the references to the ninjasphere by http://ninjablocks.com/pages/home, and the much more open and general purpose rule engine Steward from http://thethingsystem.com/