[RELEASE] HousePanel Dashboard for SmartThings and Hubitat

Welcome to the world of HousePanel

A little over a year ago, I introduced this thread by announcing the release of HousePanel under the Open-Dash brand. Since that time, Open-Dash and HousePanel have not really helped each other much and I have drifted away from that branding. So this introductory post has been edited and updated to reflect the current approach to distributing and supporting HousePanel.

HousePanel is a highly flexible locally hosted dashboard app for SmartThings and Hubitat. Everything you need to know about installing and using HousePanel can be found at the new HousePanel website at http://www.housepanel.net or here in this SmartThings community thread.

All the files you will need to install are in the HousePanel GitHub found here:

Installation and customization instructions are on the HousePanel website:
http://www.housepanel.net

Please note that prior notices have pointed users to the wiki in the old Open-Dash GitHub. This Wiki is no longer maintained up to date, so you should use the new documentation.

Good luck trying it out. I hope you enjoy. Here are a few screen shots showing what HousePanel looks like when installed and operational. Please note that these are just examples taken from my own home installation. With HousePanel you can make your dashboard look basically like whatever you want - including using any background photo, custom borders, custom colors, custom icons, random placement, and more.

Kitchen panel

  • notice the two presence tiles have my and my wife’s photos on them
  • I did some fancy footwork in the built in tile editor to make a cool looking analog clock
  • my pressure pad uses a custom icon
  • the stereo and night mode buttons were altered to have no borders
  • the thermostat AC setting was hidden because it is winter here

Office panel

  • notice the “Office Plug” tile that combines items from multiple things
  • the computer speakers tile includes a web launcher to Spotify added with the customizer
  • finally, the sonos tile shows how an icon can even be placed into the title bar

image

29 Likes

Is this an alternative for actiontiles?

Sort of … the biggest difference is HP is considerably harder to set up. In return it is free and it runs fully under your control. It is more customizable and is presented as an open source platform.

By the way I bought ActionTiles and I still use it sometimes so if you already have it and are happy with it there is no need to use HP. I made it because my wife wanted something that looked a little less sterile and I wanted something that was more flexible. I ended up having fun writing it so here it is.

My goal has since evolved to provide an open source platform that developers an use to creat dashboards and panels for SmartThings. This is why I am excited about the Open-Dash merge and brand. The above look is just one of many ways you can make HousePanel look. You can also use it as a silent web service for controlling or querying your smart home. I will document how soon.

6 Likes

I realize that I already documented this feature in the Alpha release thread. The information posted there is still valid. Take a look.

Pretty cool eh?

For this to work as described above, you will need to first authenticate your PC or Mac by loading HousePanel into a browser. This will save the cookie in that browser so the above calls will work. If you want to skip that step or use the endpoint feature from Ghostscript which has its own internal browser/curl mechanism, you will need to save your authentication information in your clientinfo.php file. The authentication info is displayed when you make the call to housepanel with ?useajax=showid variable.

1 Like

EDIT: New check box

Added a new Kiosk mode feature. Doc for how to use it is below from the Wiki.

Kiosk Mode

To run HousePanel in Kiosk mode, first you will need to download a good kiosk mode browser. I like the Fully Kiosk browser for Android tablets. For iOS iPAD tablets you will have to research other options. You can also use Safari to then put the page on the iOS desktop to create a Kiosk effect. Once you have that then turning on kiosk mode will remove the Options button from the bottom of the options page. On the options page, select the check box to turn on kiosk mode. Be aware that once you turn kiosk mode on the only way to turn it back off is to force HousePanel to display the options page again using the same method described above. Again, this is:
www.yourwebpage/housepanel.php?useajax=showoptions
1 Like

Following, looks good so far.

Thanks… just updated the Wiki to document the API mode. In my opinion this is one of the more exciting things about HousePanel - using it as an endpoint API I plan to write a bunch of python scripts to implement more sophisticated smart home logic than I can do with groovy.

1 Like

Massive speed increase implemented today by taking advantage of PHP SESSION variables to save the slow part which is reading all things from the SmartThings cloud. For most situations the things people have do not change very often, so the only time one needs to reload is when you add a device. This means you will have to force a reload when that happens by closing the browser and restarting it. I’ll also add a reload button for that in the future. In the mean time I think everyone will enjoy the huge speedup that this change implements. Now when you go to the Options page you can quickly see the effect of adding things to rooms, etc. And page reloads are a snap now.

2 Likes

Important bug fixes updated today. Includes fixing default kiosk mode to FALSE. Also finally implemented fix of misaligned columns in the default options page on tablets. Added a filter option so you can pick which things to show. And finally added sorting of things by category. Still can’t sort the whole list but can add that as an option later pretty easily. Fixed a few other bugs such as any added new thing will now show up in the page it would have using the default logic.

Thanks, Ken, for all your hard work! I was looking hard at Action Tiles, but wasn’t keen on relying on some 3rd party hosting something I’d prefer to manage/tweak/secure locally. I’ll try to set this up over the next few days and will report back.

I’m hoping to get IP camera tiles. Is this something you’ve already experimented with?

Thanks - installation is a bit of a slog but the Wiki is fairly detailed. Let me know if you have any problems. The hardest part is setting up the rPi with proper read/write permissions. Rest is just like loading up any othe PHP web app.

Regarding IP cameras, I have 3 set up and working great as still photo sources. You just have to configure them to save a photo once a minute somewhere on you rPi and then point to that URL is your custom CSS file. The Wiki describes this. I haven’t had any success setting up a live video stream. Apparently this isn’t easy nor reliable and each camera type does streaming a little differently. It’s on my todo list to figure out.

Finally - once you get it set up, you might try out the Web Service API feature. This is quickly becoming my favorite part of HousePanel.

Hi Folks - thought I would post an example of how to use the HousePanel API from a Python script. In this script, we call the API using our access token and endpoint, we read the thing ID’s from the hmoptions.cfg file, and then we call the API to query the status of a few select things. Here is the code:

> import json
> import urllib.request
> 
> def callAPI(str):
>     access_token = "yourdata"
>     endpt = "https://graph.api.smartthings.com:443/api/smartapps/installations/yourdata"
>     weburl = "http://myurl/housepanel/housepanel.php"
>     url = weburl + "?" + "hmtoken=" + access_token + \
>           "&hmendpoint=" + endpt + "&useajax=doquery&id=" + str
>     with urllib.request.urlopen(url) as f:
>         responsestr = f.read().decode('utf-8')
> 
>     return responsestr
> 
> def getThings():
>     fp = open("hmoptions.cfg","r")
>     things = json.load(fp)
>     ids = list(things["index"].keys())
>     idlist = []
>     typelist = []
>     for i in ids:
>         k = i.find('|')
>         if ( k >= 0):
>             typelist.append(i[:k])
>             idlist.append(i[k+1:])
>     return (typelist, idlist)
> 
> if __name__ == "__main__":
>     mytypes, myids = getThings()
>     for i in range(len(mytypes)):
>         # print("type = ",mytypes[i]," id = ", myids[i])
>         if ( mytypes[i]=="contact" ):
>             response = callAPI(myids[i])
>             print (mytypes[i]," = ",response)

When you run this Python code it will print out the status of all contact things in your system. Note that you must replace the placeholder data above with your real data in the strings for hmtoken and hmendpoint. These can be found by using the ?useajax=showinfo feature. Notice that this script reads the ID numbers from the hmoptions.cfg file directly.

This simple example is just the tip of the iceberg. It isn’t hard to imagine how you could write similar Python scripts to do some amazing things with your smart home.

1 Like

Hello all,
Ill start with I am a relatively new Smartthings user. I have been looking at your project along with other dashboards since I got my smartthings. I finally broke down and went through the install instructions and got house panel up and running for the most part. There were many firsts for me along the way here however your detailed instructions actually got me through the process pretty quickly. So Thank you.

I figured I would go ahead provide feedback from my experience.

1st. I cannot seem to get the weather tile to show anywhere. It shows under filter options on the options page, however if i filter everything except the weather widget I see nothing. Is there something more I need to do to enable this function? I have been through the install instructions and do not seem to find reference to enable or disabling it. I could have missed it though as it was a lot of reading - and as I said before a lot of firsts, I may have overlooked or made a mistake somewhere.

2nd. This could just be because I have not fully went through and tried to customize my tiles (if it is please disregard).As seen in this picutre the light tile is shown in top left position. Under it appears to be a second “invisible tile” which simply is labelled with a number two. Under that is what appears to be a third invisible tile that if hovered over shows the text number of buttons. - Clicking on the tile labelled light with icon (sometimes) seems to perform a toggle twice on the light, other times functions as i expect - I have to click on the 2nd “invisible” tile to toggle the light a single time. This is one of a few tiles that is having visual glitches - Another I saw for sure is a tile for VLC thing - (Edit. Sorted the VLC tile - there was more than one option for this - one labelled switch and one labelled music - the tile labelled music appears very nice)

3rd. Tried loading this on my tablet in two different browsers. The house panel loaded up promptly. I have all the exact same visual “glitches” (which could or could not just be me needing to go in and customize). Also though on my tablet KFHDX 7 inch running custom nougat rom with root, It just seems the UI is not repsonsive - At first I thought it was completely broke, with some persitance I found I have to touch the screen in very precise spots to get reaction from house panel, however when I did it seemed to function just as it did on my PC.

4th - Upon initial loading of house panel (or page refresh) I noticed the clock doesnt display the correct time after a few minutes (I have not sat and watched how long it takes). It updates the clock to the correct time.

I am not at all sure if any of this is helpful to you. If not feel free to disregard. If you can offer any guidance that would be most welcome, as I have a brand new 10 inch tablet just waiting to become my control panel as soon as I find the right solution.

Thanks in advance.

Hi Chris

First - thanks for trying out HousePanel and providing this feedback. You are almost there. Let me walk through each issue and offer some fixes.

On the extra tiles, what happens is HP displays all attributes of each tile. I styled the ones I have but you have some things that I don’t so the attributes are showIn up. You can fix this by inspecting the tiles and getting the names of the extra attribute. Then add the display:none to your CSS file for these items.

For the weather tile you need to first add it to your SmartThings account as a new device. So that from the Marketplace.

The clock updates once every 60 seconds to stay no sync with the real time.

I too am new to Smartthings. I installed HousePanel. It works perfect on my desktop, but like the above poster, I am having trouble pushing the button/tile, sensitivity issues. Tried on 3 different devices.

Thank you for this app!

I have the same issue and I’m working on a solution. I think the problem is caused by using the punch through JavaScript addon that makes touch events work in jQuery. You only need this to drag icons around on the page so I am thinking about activating this only when the browser is not a mobile device. Will post this fix later tonight. Will also try swapping the logic on unknown tiles so that the default is display:none for all but known things. Should fix lots of issues.

Hey Ken,
Thanks for the informative response - LOL I actually googled around for a weather tile - came across these smart weather control station apps and figured I needed a device to go with them and never read through the threads. Got it installed now looks good. Will check with my house panel setup when I get home if I can populate the weather tile.

A few more things I have noticed - My Hue smart white ambiance lights show up, however they are less than responsive to dimmer changes and me clicking the switch to turn them on / off with the tile labelled “light”. If I use the tile labelled switch they respond pretty effectively however without the ability to control the dim level.

VLC thing tile is slow to respond to button pushes for changing volume as well as it doesnt seem to properly read or toggle the mute state.

To the android touch issues I mentioned. I noticed the tiles are fully responsive if I just want to drag and move them, no issues with touch. Just trying to push them no response - if I drag it slightly out of position and then push it quickly it responds every time. Maybe this issue has to do with how they are setup to be easily dragged? (I really have no idea but can replicate this every time).

Not being able to use this on an android tablet will be a deal breaker for me unfortunately as it will not pass the WAF, however I love the design and customization that comes with this software, and would love to use it moving forward. Thank you for all your effort on this. It cant have been an easy task.

Thanks - the touch issue is caused by the JavaScript library that I use to trick mobile devices into working with jQuery. I need to play with it to fix or implement a native touch feature that mimics the jQuery click and drag feature. An easy fix is to just disable the library on mobile devices and force users to use a desktop tablet drag icons around. I like that option because most people probably do not want end users to be reconfiguring the page anyway. I will work on this tonight.

H[quote=“cwwilson08, post:18, topic:108342”]
VLC thing tile is slow to respond to button pushes for changing volume as well as it doesnt seem to properly read or toggle the mute state.
[/quote]

Can you tell me more about the VLC Thing? I don’t have one but hopefully can add one to help me troubleshoot it.

EDIT… found it.