SmartThings Community

ThingLayer: An open source real-time web interface for IoT


(Brian Steere) #21

It has a similar look, but it also quite a bit different. I would guess this one requires a third party service as there are a number of things that would be difficult to implement with just a SmartApp (and realtime is impossible to the best of my knowledge).

One of the many joys of open source.

(Darryl) #22

Yeah sadly, I already wish they would merge the two projects together—1 solution! :smile:

(Brian Steere) #23

There’s this one too: Home Automation Dashboard (HAD)

They all try to solve different problems. The primary goal of ActiON is to be completely contained within a SmartApp.

(Darryl) #24

Yeah, must admit—I love that one. Just not appropriate for me at the moment.

(Mitch) #25

I’d like to try it out as well.

(Jody) #26

I really like what @625alex alex has done, but as I understand, things like voice control and graphing are beyond the scope of what he is trying to do. I primarily want to control smart things with voice commands, others in my household like the dashboard concept, and I also want to be able to graph in real time the events happening in the house. There are just some things you cannot do within a smartapp at this point.

(Jeremy Shimko) #27

Cool stuff @jody.albritton. What did you build this with? You mentioned “realtime” and I see your server is running on port 3000… Any chance you’re using Meteor?

(Jody) #28

It’s a ruby on rails app.

Mysql for long term data storage, firebase for real time event subscription. I have tested having my own mqtt server and various other solutions, but firebase just works.

No meteor, just jquery and javascript. I might use angular for some stuff down the line.

(Av8rdude) #29

Wow…I would pay for this interface. Looks awesome!

(Jody) #30

Updated video with audio.

(Greg) #31

video is private 321

(Jody) #32

Apologies. The video is published now.

(Todd Wackford) #33

This where I meant to ask that question. What is your setup to make this run? What is the interface you’re using? Etc, etc

(Jody) #34

A smart app creates all of the rest endpoints for the devices, this handles manual fetching and querying of the devices. The smart app also subscribes to the device events and logs them to a firebase instance. I have built a web app that runs on ruby on rails that is running on a small virtual server that handles authentication and the web interface seen in the demo videos. I created an api client on the rails server that can handle importing of devices into the webapp.

There is a javascript firebase client running on each page that subscribes to the firebase instance for the devices that need to be updated in real time.

The data from the firebase instance is moved into a local mysql server every three hours, at this point I am using the hacker version of firebase which is free.

The interface is based on bootstrap. Html, javascript, and jquery.

The webapp has been designed from the beginning with multiple users in mind. I plan on providing a hosted version and an open source version that anyone can download and run.

The way it works now is you create an account on my webapp, there are a number of available services that you can connect to and import devices from. The webapp provides an oauth flow that lets you select which devices you would like to allow and then imports them into a database. After you have some devices you can create locations and zones. You sort your devices into the zones and give them friendly names. After you have completed those steps, you get what you see in the videos.

(Todd Wackford) #35

Awesomely thanks for the response. I think it’s good for everyone to see just what is possible with smartthings. Great job!

Open is good, open is cool, open is powerful!

(Jody) #36

I am a large proponent of the Internet of Things. I think it is going to be a big deal. Still, some people don’t want to download and run servers in their own home, so I think there needs to be an easy on ramp for that group. Before I do that I want to make sure that I have an ssl cert and that my data partitioning is working the way it should. Most of the millions of events that are generated by connected devices are benign and you probably would not care if that data leaked out. It’s those few events that are not so benign, like when you are away from home and your doors are unlocked, that data you want to keep secure.

(Matt) #37

You have done an amazing job! Solving some big problems that exist in the ST App as well as existing Dashboards. Great Job, it looks beautiful and is responsive! One thing I plan to do differently is move my HAD from Heroku to a local server to increase the loading speed, but I’m waiting to do that until I reload my vmware machine.

Keep us updated with progress and in if you release your code.

(Jody) #38

It will probably be less responsive. My local vm is smoked by my digital ocean droplet. You might want to take a look at digital ocean I have been using them for two years, very cheap and very reliable. You will have full access to the box, so you can run whatever you want on it.

(Matt) #39

Thanks for the info, I have multiple nodes at similar to digital ocean. I’ve thought about putting up a vps for my Home Automation, but i have plenty of resources locally to accomplish it too. I’m in the process of fazing out some local servers that take too much power usage (about 400 watts between my main computer with dual screen and two older dell servers). Will have to see what I end up with when I’m done with my upgrades. For now heroku is working, only reason its a problem is I refresh a lot when developing.

(trac starr) #40

Would love to be able to try this out. How can I get involved?