Web UI for Smart Hub

Hi All,
I am a student and I have just started my journey with IoT. For one of my course projects, I am thinking of building a web platform for users to replicate the same functionalities and maybe more that is provided by Samsung Smart App. Since I am just starting I am trying to read the documentation, searching in community forum to get me started. So I have the following questions:

  1. Is it possible to use the SmartThing APIs to control the connected device?
  2. How can I provide the controlling functionality for each user from the web platform?
  3. Is there any of such sort that has already been built which I can refer to?
  4. What all APIs should I get myself comfortable with to build the above platform.

Please let me know if there are any issues.
Thanks in advance.

You can’t replicate all of the admin level account functions, such as adding a new device or changing the geopresence boundary: those are reserved to the official app.

There are already a number of existing “dashboard” projects, including two very polished browser based third-party apps which are very popular. See the following recent discussion on those. (The topic title is a clickable link.)

That said, smartthings is currently in the middle of a major transition: new app, new backend platform, And the new stuff is still very much in the “work in progress” stage. There isn’t even complete documentation on it. :thinking: But you can look and see what there is.

And here is the announcement on the coming changes:

Updates to the SmartThings Platform

So if you want to build yet another dashboard project based on the old platform, you are certainly welcome to do so. Just be aware that you may have to redo all of the work in 2021 once the old platform is retired.

4 Likes

Hi @sarthak.jain, to add to what @JDRoberts said, SmartThings also has their own webUI. I’m on that beta, which has been going on for some time, but no eta for a public release yet.

There’s so much change going on right now with the mobile apps, major integrations like voice assistants, hub firmware, platform changes that we can see (and not see), and numerous bugs that I’d wait if you can.

Also, you’d have to seriously consider what are you going to deliver to differentiate yours from all the others, and/or deliver new capabilities we don’t already have. Make sure you do your homework on what those other solutions deliver.

1 Like

Thank you @JDRoberts for your comment. I am going through the dashboard link discussion. I could figure ActionTiles and SharpTools are some that people are using to get custom UI. I am curious, about the following things now:

  1. Are they open-source or have some javascript library/support that you know, which I can use in my project.
  2. Which backend APIs these two dashboards are using to achieve the required action or for showing the status of devices? Can you point me those APIs if you know?

Thank you @johnconstantelo for the update. I have some ideas that I think can differentiate. But before achieving I want to first implement basic things like showing devices on the platform, showing their status, and ability to control. So, if possible, could you please guide me to the APIs I should be reading upon which can help me achieve this?

ActionTiles and SharpTools are privately developed proprietary projects that represent thousands of hours of work on the part of their developers. But they do give you a good idea of what is possible and what your project would have to compete with. :sunglasses:

If you are interested in open source options, look at some of the free dashboard projects. You will have to check each one to see what the license restrictions are on reuse of their code.

1 Like

Hi @sarthak.jain, sorry for the delayed reply, it’s been a busy last few days.

Besides the SmartThings Developer link JD provided you, legacy documentation for SmartApps can be found here:

https://docs.smartthings.com/en/latest/smartapp-developers-guide/index.html

Keep in mind though, this is for Groovy apps, and ST is phasing that out, as well as the IDE, as part of those platform changes I mentioned.

Here’s another good Groovy SmartApp you can reference as an example:

Hi @johnconstantelo @JDRoberts to be honest, I have been reading and found out there is SmartThings API that have been made public. So, what I really want to do for my course project is, have a web platform for users to login. User will have smart devices connected in their home and those devices will be connected to SmartThings Hub. Now, in my web platform, I want each user to login, and see the status of each of their device connected to the smarthub. I want the users to be able to monitor the current status & control those devices remotely. So any action they take on the platform should be communicated to smart hub and then to the devices via I guess SmartThings cloud. I am under the assumption I can make use of SmartThings API to monitor and control devices. But I am not sure what SmartThings API to use for it. And also, what inputs to be taken from the user to be passed onto the APIs so that the SmartThings cloud fetches only that particular user’s device information. So, I just want to know how I can achieve this? Any help, links, guidance would be really appreciated.

Yes, that API is where you should be focused on, unfortunately I’ve not used it yet. I’m focused on their CLI tool for hub connected devices and making custom DTH’s work in the new app.

Perhaps @nayelyz can chime in for some additional resources for you. For now, here are a few more things for you to read: