Open source community created dashboard solution - Alpha Version in Testing

Just a little tease of where we are right now.


So this week we ripped out our old UI and tile model and adopted a fully customizable HTML and JavaScript objects model. This will allow end users to create their own assignable templates per device per dashboard.

We are getting close to our first alpha release that will only run local. Targeting an rPi3 or similar.

Right now the core of this is node.js using express for server and most is client side using jQuery and the metroui CSS framework. Lots of cools stuff to come.

Stay tuned.


a small preview of what the template engine can do. Did a couple this morning, including the background image and tile transparency.


Here is a walkthrough of the install process from git clone to setting up dashboards.

This is early pre-alpha, so lots will change…

Open-Dash alpha testing starts this week. Sign up at and join the slack channel, email list, etc for how to participate.



Very impressive. Has a little ways to go but I can see the direction and I like it.

Thanks, our first alpha release (Proof of Concept) went out to early testers today. Can’t wait to see what people come up with in the templates.

If the template name matches the type of device aka DeviceType Handler name, it will automatically use that template. If that doesn’t match, it now looks for keyword matching in our generic templates to match a smartsense motion sensor with the generic “motion” template. This is a huge time saver.

Bound to be a ton of bugs and this isn’t our final product, but need to get something in the hands of our great testers and contributors to get the platform built out…

If interested in the Alpha, join our mailing list at, or join just for regular updates…

This is looking really good… I like t that it runs local.

Can I run this on my laptop? If yes, is it too late to sign up for the alpha?

Never too late. The sign up part is just to stay up on the project. It’s open source. Just go to and grab the files and go. Watch the walkthrough video on YouTube.

1 Like

This link takes you no where :slight_smile: mobile typing sucks. Copy paste ftw.


Hi Guys. I’m working on my own Home automation project using the open Dash API and a soft PLC using codesys and a raspberry Pi. Link to the post is here.

I have a question on the open dash API and best use of the endpoints or more importantly the most efficient way of reducing polling and getting a faster response from all my devices. Currently i’m polling for each device using the end point: /devices/UUID/events/. This will give me the device status but takes up one request per device. Ideally I would make one request that returned status of more than one or all devices.

I’ve tried: /devices/UUID 1/UUID 2/events/ but this does not work. I’m looking into the /update/ endpoint but my PLC is having a hard time dealing with really large responses.

Any advice on how you are implementing the API in the most efficient manner would be really helpful.

Thanks in advance guys.


The /updates endpoint is the ideal for batch updating, however, you can hit the /devices/uuid and just get current state for each device, that should be small enough.

I also included another endpoint that can send commands to a POST of a list of JSON device objects, the same could be done for getting updates. Not currently written, but there is enough code examples in there to make that change.

The other option would be to dump the /updates endpoint on a schedule so it would only include devices that have changed since the last purge. Daily, hourly, etc.

1 Like

Thanks for the reply Stuart.

When you say /devices/uuid, you mean a single request for one device right?. I tried /devices/uuid#1/uuid#2/ where #1 and #2 are the uuid of 2 motion sensors but my response turns an error. This would be ideal, where I choose the devices I want a response from in one request but it doesn’t seem to work.

The update dump sounds interesting but not sure how I would implement it from my side. Im using a basic webclient as a called Function Block in my project.

Thanks for your help.

Yeah. I get what you are trying to do. The way I set this up is to avoid querying each device for it’s status by parsing the updates endpoint which is a cached copy of my recent changes by device.

Another approach would be to pass in a post object of the device IDs to the updates endpoint and only return those.

Does your webclient support POST or PUT with a body / Json payload?

Yes, my webclient supports POST.

Could you show me what a POST request would look like using this.
Would it be: /updates/uuid#1/uuid#2/…

At the very least I’ll test it on a web client like HURL IT to ensure it works before trying on my PLC.

Does the API support POST commands to devices yet?. On the API web page you have stated that it will be added later. Just wondering for the next stage when I need to start posting commands to devices.

Thanks Stuart.

No. A POST would have a body part in JSON like this {id:123,id:345} that would be sent to /updates.

I would have to add it to the smartapp. But it does make sense to have.

Then you would get back the same thing as updates but filtered based on that list you sent.

The reason to use updates is its cached and fast. Hitting the device endpoint has to query the current state of the device and loads the platform and slows response.

1 Like

After a bit of work on my PLC, I am now using Updates to return all my device status. I got around my string limitation by taking the entire response from my update request and converting it to an array of bytes to search for the uuid. Works great now.

Final piece of my project is to send commands to my devices.

Does the API support the post command yet.
For: /devices/:id/:command I can’t seem to send a command to any of my devices?.

Does the functionally for this need to be added?.

Hi folks - cross posting here an important announcement that I just made about the merge of HousePanel with Open-Dash. I realize this project has been dormant but HousePanel is vibrantly aliive and growing and it fulfills the promise of an open source dashboard for SmartThings. The announcement and HousePanel thread is here:

I will be providing more information as the post indicates shortly in the forthcoming Beta release announcement and source merge over to the Open-Dash website and GitHub repo.


HousePanel has all of this as a starting point for the community to now build upon. I can’t wait for more folks to jump in and contribute. Everything is now posted in the open-dash GitHub including documentation in the Wiki.

1 Like