[RELEASE] HousePanel Dashboard for SmartThings and Hubitat

The hard part is done… customizing is done using the Tile Editor - easy but tedious to make lots of changes. To use click on the Edit radio button on the bottom right side of the screen. Then select the green circle of the tile to edit. After the editor opens, click on any element you want to hide and select the Hide box on the left side. While in there I would customize names and pick some unique icons too. You can also edit the size or change borders. Have fun and make it look like you want.

If you know how to edit CSS, feel free to use that method by editing the housepanel.css file in the skin-housepanel folder. If you are good at CSS this will be faster than the built in editor but more error prone. The editor is tested to create correct CSS.

I guess I’m gonna start learning CSS, lol. Also, how to I change the zip code/url for the weather widget? I’ve looked all over for it.

There are two types of weather things.

One is the built in weather tile that uses the zip code in your ST account.

The larger Frame weather widget is loaded from the file forecast.html into a frame. Edit that file in any text editor and you will see the city name. Just change it resale it and refresh your screen. There is a second frame file that uses an AccuWeather widget. Same thing - just edit that file too.

By the way, the doc file is pretty good so if you click on the little question mark in the upper right corner it will display that. It describes how to do this stuff and more.

Of course I don’t mind helping here too, I’m knee deep in a complex Dev and testing phase of the new custom tile feature that is going to be wicked cool once I get the damn thing working right.

1 Like

Draft Release of major new update Version 1.950 of HousePanel is now available for beta testing on the “custom2” branch in the usual repo.

This version is chocked full of new features - too many to describe here. I’m working on updating the doc and writing a user interface, after which I will merge the branch into the master. Early adopters are welcome to use this as - is. I have been testing this for several days so it is pretty solid. As with all major new updates there may be a few kinks to work out over time.

The main new feature this update provides is the ability to customize any tile, not just custom tiles. Any tile can grab an item from any other tile, and any tile can add any number of random user-provided text fields, and any tile can include either a POST, GET, or PUT web service call… AND any tile can include any number of URL web links to open any other webpage in a separate window. And those links can be customized with the TileEditor to hide the text and show a custom icon - or whatever. Here is a demo of my Office tab where you will see I added a Spotify web link to my speakers switch. And my office plug was modified to include a contact switch, some text, and a POST link for making a web-service call to Stringify.

To use this new feature, for now you must edit your hmoptions.cfg file. The format is described in the following post with more detail coming in the doc, but the user interface I am writing will do this for you, so hang tight.

1 Like

This update also includes the ability to specify your video file name or your frame file name in the tile editor. It uses the name field if a tile matching that name is found (after ignoring spaces).

The clocks also get new fmt_time and fmt_date elements that contain the format used to render time. These are by default set to “g:I:s a” and “M d, Y” to render as before but using the custom feature above these variables can be replaced by any user provided text field to give different formats. I will build common options into the editor later.

Finally I thought I would document the format of the hmoptions user config for those wanting to try it. A user field is defined by adding a json formatted array of arrays. The main key is the word “user_” concatenated with the unique ID of the tile to customize. This is the ID returned by the hub or the names assigned for the ad hog tiles. For example for a custom tile this would be “user_custom_1”. These numbers are found on the Show Info page or in the hmoptions file on the left side of the index list.

The arrays inside the array are three strings. The first string is the custom type, which is either POST, GET, PUT, URL, LINK, or TEXT. The meaning of the second string depends on what the first element is. For TEXT it is the user provided text to show up on the tile. For LINK it is the ID of the tile to link. This is the same ID used in rooms. It is on the right side of the index list and also shown in the show info page under the Tile ID column. For all other first element types the second string is a fully qualified web url that must begin with http. The third string is the name of the tile element to be either created or replaced. If the element exists it will be replaced by the user provided data in the second string. Anything can be replaced and no checking is done to confirm your choice makes sense. So you have total control but you can also do stupid stuff using this feature like changing a light switch to a web link or a silly saying. A more serious use of this replacement feature is to change the content of width and height items of video tiles and to change the skin name of the analog clock. The new fmt_time value can also be replaced this way to modify time formats. Finally for LINK types this item must exist in the linked tile. That tile’s specifies element will then magically be added to our customized tile. And remember these three elements are in an array so they are separated by commas and surrounded by square brackets. That whole thing is then repeated as many times as you like to create more new or customized elements.

Wow… I know that’s a lot to take in and not easy to follow. This is why I’m not merging this yet until I write the GUI. Here is an example:

“user_sblank1”:[[“TEXT”,”Hello Bing”,”hello”],
[“LINK”,”12”,”switch”],
[“URL”,”http://www.bing.com”,”bing”]]

This example adds text to a blank tile and adds below that text a live link to open a new browser window showing the bing search engine. This example also includes the switch from tile #12. It will be rendered just like it shows on tile 12.

POST and GET and PUT are similar to URL but instead of opening a window the code makes a cURL call and captures the result in a json string that shows on the tile only after clicked.

Pretty crazy stuff. I think this feature puts HP in a class of its own for panel flexibility and customization. Stay tuned for the GUI that makes it more usable.

To see what you can do in the forecast.html file check out the http://weatherwidget.io website that provides full documentation on how to use and customize their weather widgets.

I know it has been awhile but I finally found that that you are right – there definitely is a bug here and I fixed it. The fix is in the custom2 branch that I’m still developing… It is posted and available to use - you can just ignore the custom features if you don’t want to fool around with beta code.

This custom2 branch update also includes the addition of the keyword “api” to use when invoking the HousePanel API as an alternative to the usual “useajax”.

So API calls can now also made by doing: housepanel.php?api=doquery&tile=37

Finally, this custom2 branch update includes two new API calls, “getoptions” and “getthings” for returning the options file as a json string and the stored things array as a json string. There will be used by the new GUI but I figured what the heck - expose them for others to use too.

I gave up the day I couldn’t get it back out of Kiosk mode. Just too much setup for me. Very powerful package but a little too involved for my use-case.

Fair enough … I know it isn’t for everybody due to the heavy setup and config requirements. Thanks for trying it and giving me feedback.

The new setup script helps but you still have to do the auth step upon first load. I will probably remove the Kiosk option checkbox from the first setup screen because others have checked that too thinking it would be good to have on without realizing it only makes sense later.

Good luck with other options. ActionTiles is the best thing out there for an easy setup with similar functionality- better in some respects. Sharptools is also pretty good. Both are hosted in the cloud but the cloud is pretty reliable these days. Turns out a lot of HP users these days are using Hubitat driven by their desire to stay local.

Thank you Kewashi,

Great work. One quick question in case I am missing something: My dashboard isn’t updated with changes to things.

Is there something wrong I did ?

thanks!

I don’t see how a mode you can never get out of makes any sense personally. My dashboard is never going to be static. There are always going to be changes to it.

It was just a bug Ryan. That mode is for people who set up the panel for others to use without giving them the ability to muck with it. It is now working to get out of that mode if you are the person setting up the panel. End users will not be able to get the the options screen using the panel - it must be accessed from a computer.

If you are referring to edits not sticking, check the permissions on your server. They must allow the web page to write to it.

sudo chmod 777 hmoptions.cfg
sudo chmod 777 customtiles.css
sudo chmod 777 skin-housepanel/customtiles.css

Should do the trick.

If you are referring to the status on things then I don’t know why. It should update once a minute. Polling can’t really be faster than that.

Weather tiles are broken for now as a result of ST’s move from using the Weather Underground.

More here;

I will update the app to use a modern method soon.

[RELEASE] Version 1.951 with multiple bug fixes and enhancements

I proceeded with merging the custom2 branch into the master and am releasing an interim version. The GUI is still a work in progress and not usable, but I’m releasing this now anyway because I have found and fixed in the process a number of very important bugs and issues and implemented a number of other enhancements that are ready to use. So here it is. Just grab the files as usual from the main repo. The main updates include:

  • kiosk mode error fix
  • added numbers when reordering tiles
  • controller tile to place anywhere
  • a bunch of other updates and bug fixes… doc coming soon

By the way…
When in edit mode with this version, a new blue dot will show up. When clicked this will open the tile customizer dialog box which is not yet done, but look and feel feedback is welcome.

1 Like

[RELEASE] HousePanel Version 1.952 with Customizer GUI

Well folks, this update is a big one… it introduces a functioning GUI that allows ANY tile in HousePanel to be fully customized by adding or removing new fields. Those fields can be text, web links, POST web service calls, or links to other fields in other tiles. The GUI is self explanatory with a built in information guide. This turns HP into a general purpose command center for just about any purpose. Here is a screen shot of the customizer GUI with the Link type selected.

In this example it shows the two custom fields that exist marked with a *. Only those fields can be deleted.

I’m off to CES this week so this will be a good time to give this a try and send feedback about your experiences.

Have fun with this folks!

2 Likes

New version is working well. Nice work. I was having some issues getting new devices to stick on my pages, but a reauth of ST seems to have solved that for me. My setup is really coming around now.

Question: I would like to deploy different versions of HP for my kids, which would just be a subset of the room pages I have on the main version. Is there a way to do that by just creating different versions of the php file, instead of separate full folders of everything?

Anyway, keep up the great work and have fun at CES!

Glad you have it working. Your idea is a good one and it could be done with some code mods. The screen setup is fully governed by the hmoptions file so each unique client would have to point to different ones. This isn’t supported today. To do this you would need separate folders. However I like the idea and could implement it in a future update using either command line or cookies. You could hack up a unique version by editing the readOptions and writeOptions functions but there may be tails somewhere else that would need to be addressed so I wouldn’t recommend it.

Another option is to make a tab for each child and then set the system into Kiosk mode with the tabs bar hidden. With the new version you can add a Controller tile to just your page to go in and out of Tab mode or to make edits. The tricky part is setting the units to their tabs. Do that first and then select Hide Tabs on each client, then on your master unit go into kiosk mode. Then back on the kids units, reload the page. Kiosk mode is a server setting that applies to all clients while Tabs mode is client specific. So this means your kids tablets can be in kiosk mode with just their tab showing while your master tablet will be also in kiosk mode but with Tabs showing. Even in Kiosk mode the controller tile will show up and function. This might meet your use case needs.