I am willing to head up a group of talented open source developers to create the best dashboard solution for SmartThings.
Let’s put together a great team that can build the best free dashboard solution based on open source principles.
If you are a UI, UX, coder, back end admin, CSS HTMl, beta tester, or just want to help, let me know.
If there is enough interest in the community, I’ll put together the resources needed to get this project started. Let’s build the dashboard that should have always been in SmartThings from the beginning.
Any questions, let me know.
UPDATE:
I’ve created the website https://open-dash.com and the preliminary name Open-Dash for this project, open to better domain names and project names, but it was available
Feel free to reach out and join the team. We will put together some collaboration tools to bring everyone together and see what we can all do and where we need to recruit more talent from this great community.
UPDATE #3 as of 2/216/2017 we are very close to releasing an Alpha version of our node.js platform to test with. Walkthrough of current state is available here: https://www.youtube.com/watch?v=JRFzE3C-RW0
Here is a great video from SDC from what we hope will be made available soonish from SmartThings to build our own Dashboard Solutions inside the SmartThings Mobile app.
We can build out a web first concept that hopefully can be adapted to this model, if/when it is made available to the community developers.
Leveraging the parent / child smartapp model and the new authentication models, we can develop an open source, api based smartapp dashboard solution that can be the basis for many forks and customizations to enhance the SmartThings experience.
Let me know if you are interested in learning more and/or being part of this team. No role is too small, this will be built by the community, for the community.
I also think that there is a need to incorporate other data sources into a dashboard, create a unifying dashboard that could bring other platforms into this solution. Most other HA / IoT platforms have existing API’s that could be incorporated into this open source project.
Plus, insuring that this open source project can stand on its own (or be adapted to do so) means it has life beyond SmartThings and can be adapted for other IoT solutions as well.
We have some of the best minds and talented open source developers here on this community, lets come together and build the best open source dashboard solution!
You are thinking of building this as a smartapp? I’m confused as to how that would work. (Guess I need to watch the video. . . .) Or would you just use a smartapp to get the data to populate the UI which would be hosted elsewhere? Or would you try to make an android app that used a smartapp for data?
Open to all, that is the great thing about open source, is it can go in a lot of directions.
The heart will be a solid API (based on a smartapp) and plugin child smartapps to either display or render out the data, and handle the interactions.
We will explore the best options to provide the community with all options as it relates to accessing, visualizing and interacting with their Things.
So the goal would be, world class in app UI/UX as a Dashboard solution (if/when available publicly), API access, so remote access, self hosted, or shared hosted dashboards, and even simple Android and iOS (or even Windows) app access and display of content.
It’s all possible if we start with a solid foundation of accessing data and processing requests, all things a smartapp can do, but we need to standardize this first (something other systems have already done).
Once we have a standard for the pseudo API, we can build pretty much any UI/UX interaction on any platform.
But keeping in mind a built in solution placed in the “Dashboard” area in the mobile app makes the most sense, but why wait for SmartThings to release this, we can build our back ends in the mean time and pivot if/when this becomes available publicly.
Bottom line, this community has the talent and resources to come together and build a universal dashboard solution that is built on the solid foundation of open source solutions.
I have thought about this from time to time. It would not be that hard to do and could be much nicer and easier to integrate than what is out there. As a test a while back, I created a dummy SmartApp that sends all data out and also receives responses to act on commands.
I have a crude dashboard in Laravel with some commands and notifications that happen based on scenarios. Could then also integrate other systems if they support some sort of development structure.
There was a system that attempted this but it was way to heavy.
Yeah, putting and pulling data in/out of ST isn’t hard. It’s making it pretty and functional that puts it over the top.
Right now we can render HTML right into SmartThings and send that out via an API endpoint. But that door might close one day.
I would rather have lightweight web based solutions, based on open sourced code so we can trust the oauth2 chain and insure we can log into a website, mobile app, etc and get secured access to our data and interactions.
Personally, I am leaning towards a self hosted, shared hosted standalone website, run by donations that can be used to run the beta and production code to interact with the oauth2 SmartApp endpoints and also act as the trusted web source for installing the smartapp, assuming we can get it published.
But really, if we remove a lot of the heavy lifting from SmartThings SmartApp and really just create a solid API for the dashboard data in/out we can then control the rendering externally via trusted open code. Migrate to apps or whatever might come down the pipeline.
The earliest hurdle to overcome is to get something that can be publishable in the marketplace that provides us with the basic data in/out interactions so we can then render that across all kinds of screens / devices on many different platforms.
I really like how the CORE devs did their process, I don’t see why we can reproduce that with a universal dashboard solution to serve many different needs. We just need people who want to contribute to the cause.
Totally agree. This is the #1 priority. A smart app that exposes a solid REST API and a JS library to query and control things via the API. The biggest problem as I see it, is how to push events from the platform to the client efficiently, considering there’s no websocket or other native push mechanism available to us, mere mortals, outside of the native mobile app.
Let’s start by creating a Github repo. I’ll contribute whatever I can. Heck, I might even get inspired to resurrect Smart Alarm and give it a nice web UI.
Yeah, that’s the beauty of the built in Dashboard solution is they somehow have the immediate update on subscribed action.
This is where a good hosted / shared server with lightweight code running can parse the outbound updates from the SmartApp and avoid excessive polling. Even a queuing mechanism so to take load off both ends, but still maintain the illusion of near real time updates.
In the mean time, a simple API endpoint for getLatestUpdates is far better than refreshing all subscribed devices, as devices update, the state stores their latest values, then any call to getLatestUpdates returns a json object of id’s and states, which can then be parsed and handed out UI side via JS or other updates.
I have some unpublished SA code that allows us to jump start this API project, but we will have to discuss security and how to interact with subscribed devices, should we allow only subscribed action, or expose all available capabilities and take some shortcuts…
Sounds like we have a few people interested so far. I’ll be starting up a community hangout of some sort, either on slack or here, based on what the community wants.
I hate meetings, but in order to keep things on track, I am open to hosting regular hangouts to discuss project progress and facilitate development priorities, etc. Mainly to show off what we have come up with and where we are going with this.
Let’s make the best open source community dashboard solution possible!
Also, for those that are interested, please email me your contact info and areas of expertise (or desire to learn) and I’ll start building the github repo and figure out external dev tools / resources so we can build this as best as possible.
My email is patrick (@) patrickstuart (dot) com First test is to see if you can put that together It will also be the last test.
I still surprised that ST doesn’t have a second app that only has access the buttons. It’s always been an all or nothing which is too risky to give everyone who uses your hub. Not everyone needs access to set things up. I like this idea. I’m not a coder unfortunately but would be more than happy to help test it out.
Great feedback, I completely agree. A simple mobile optimized web page that allows you login and only access / view a few things would be ideal usage of open-dash.
Keep the ideas coming, we can’t solve everything, but the beauty of an open project with lots of community contributions we can build what we want, how we want and leverage the great collective knowledge.
If the next hub connects to HomeKit, the dashboard solution for all ios devices is solved since Apple has the Home app. But that will leave the Android folks out. What’s really confusing is ST really had the original Smarttiles built in and for some reason they changed it. The Things page used to have tiles which you could move under another tile which kinda created a Room. All they have to do is make the ST app a universal app for phone and pad so you can turn it sideways, go back to the tiles and now they have Smarttiles built in.
Yup, and maybe this will come back, but there is no doubt in my mind, we can make a community dashboard API, UI/UX and standalone solutions that can serve many different use cases. Because we are starting with open in mind, we wouldn’t mind at all if ST just brought our code in house as the model for dashboards.
Time will tell if the tools to build our own dashboard solutions will ever see the light of day, the video above shows they are working on it. Until then, all we can do is work with what we have, but keep in mind the goals of open and community driven.