Custom User Interface?

I hope this is not explicitly a duplicate topic (I looked for a while to find one in the forums, but nothing exactly matches).
The question is;
Is it possible to write our own user interface to replace the mobile app provided?

The way I would want to do this, is using a web-based portal, or even a custom Android or iOS app. Those deployments would require the ability to access the SmartThings ecosystem via web service calls (I SUPPOSE???) in Java and/or Objective C++, or whatever language my web server would be implemented in.

The reason would not be due to a dissatisfaction with the existing apps, they are great!
I have requirements to integrate the programmatic control of, and get notifications from the SmartThings hub and its devices as part of a larger application, and ecosystem that includes the SmartThings hub.

This larger system has a scope beyond what SmartThings can control, but the requirements are such that my users (me and my family and whomever else I give my software to), do not want to navigate to multiple apps, pressing different buttons and menus in each app just to control the whole set of devices.

Okay, maybe I would design the UI differently as well, but let’s chalk that one up to me not maturing in my UI design skills yet.

Thanks,
Karl Miller (mailto:thekarlmiller@gmail.com)

@karlmiller - As a SmartThings developer, you have the ability to expose web services to be consumed by external applications (like your custom UI) in a couple of different ways:

  • You can expose RESTful web service endpoints that can be used to send control messages to devices managed by SmartThings (e.g., switch on a set of lights or lock a door)

  • You can also create subscriptions to devices such that your external application can register URLs to be called back when events occur on the subscribed devices (e.g., get notified when there’s motion on a SmartSense Motion Sensor)

We’re still working on finishing up the documentation (very soon, I hope), but you can get an idea of how things work by looking at the draft documentation at https://docs.google.com/a/smartthings.com/document/d/14F5CnjIbI8Ru4-MrjHXhnBGGQngUevVEe7H3cqoGHKA/ - and at the Sample Web Services example SmartApp in the IDE.

@dlieberman - Thank you very much. I guess a short, maybe more difficult question might be,
“is there anything that the iOS or Android SmartThings App does, that I can not do using the methods you prescribed?”

Thanks,
Karl

@karlmiller - Yes. The method that I described is primarily for passing control messages in to the platform, and subscribing to events from the platform. None of the administrative functions - setting up a new hub, pairing devices, deleting devices, etc - are currently exposed.