[RELEASE] HousePanel Dashboard for SmartThings and Hubitat

@Ryan780

On my phone. But the gist of it is here.

Hi peopleā€¦ before someone else notices it, I have to fess up and tell you that the latest version has a big bug in the TIle Editor that prohibits editing items with sub idā€™s. Working on a fix and will post soon.

Hi Kewashi,

Just tested your script and it worked perfectly.

Rpi 3 b+ running raspbian stretch.

I did initially have your HousePanel running on a Sbs2011 server but wanted to move over to an isolated Rpi solution.

Thanks for the script approach, part of me didnt want to use it because i wanted to learn the whole Rpi process the hard way, Helps understand the components butā€¦weekend, Kids and lazyiness appreciates your script.

Iā€™m coming from a Actiontiles platform and wanted to have a non external solution thats alot more flexible, Thanks iā€™ll come back once iā€™ve dabbled in the tile configurator.

This bug has been fixed in the latest update. I forgot to change the version number - sorry about that. Icons in the tile editor now work properly as with prior versions. It was just the last update before this one that screwed it up. Should be back to normal now.

Iā€™m glad this worked for you. I hope it lowers the barrier of entry for many others so HP can get a broader audience. Please share any screen shots of your use case once you have it set up and running.

Hi Kewashi,

Similar to your build script, Do we have a simple command that can update the Housepanel on the rPi ?

I can see on Github the changes you have made and can manually update myself but i was thinking if there is a RPi command that we can use to update but leave the configuration of what we have already done, I.e Devices i had added, layout including pictures i have uploaded.

[EDIT - canā€™t rerun]
I donā€™t have anything like this but you should be able to just extract all the files and replace the existing ones on your server - except for the hmoptions.cfg and customtiles.css files. To do this just save a copy of your hmoptions.cfg file, your customtiles.css file in both the main folder and your skin folder. The only file that exists in the install base is customtiles.css in the default skin so make sure you save this and overwrite it after you upgrade. The other files can all be replaced. It is on my todo list to write an update script but for now the above shouldnā€™t be too painful.

In practice most upgrades involve just updating these files:

housepanel.php
housepanel.js
tileeditor.js

These three files do 90% of the heavy lifting so most of the time an update involves just replacing these files. Every once in a blue moon I update the groovy files and then you will also need to update the smartapp side. No known way to automate this unfortunately.

This is one of the reasons I went with Docker on my 2nd round of testing housepanel to replace smarttiles as my 1st time at beginning of year required extra troubleshooting effort if I forgot something. Now I have a base Docker HP image and containers to update from without having to do worry too much if I screwed up something.

For me, I also grab out sections of the following files to notepad++ before extract/replace with the newer build and mainly use WinSCP as itā€™s quicker drag/drop. Itā€™s a small tradeoff for having a lot of flexibility to customize our HP dashboards.

  1. housepanel.php file (my custom frames for weather forecast//radar/traffic map/security cameras; img graphic tiles; a couple of custom default div.xx settings)

  2. HousePanel.groovy file (ā€œGetting image tilesā€ section to include my extra img graphic above)

  3. housepanel.css file (div.image.url section for my custom img tiles above)

  4. my custom skin-xxhp folder(includes one of the customtiles.css file, housepanel.css, my custom background images in /media, my custom icons in /icon)

  5. some files in /housepanel(the other customtiles.css, hmoptions.cfg, custom html files for my weather forecast//radar/traffic map/security cameras/stop motion videos/etc)

Dude this is super helpful. I am not up to speed on docker so I need to learn this so I can officially support it.

Iā€™m sure you know this, but just in case ā€” the customtiles tile in the main folder is just a copy of the one in the current skin folder. Upon startup if no customtiles file is found the code just copies the one from the skin. Also, every change using tile editor operates only on the customtiles in the main folder and then copies it to the active skin folder. All this is to say that you should either make sure both are the same after you upgrade or you only have one in the skin folder.

Another suggestion is you might want to move your customizations out of the skinā€™s housepanel.css file and into customtiles.css since an upgrade will never touch customtiles files.

Iā€™m still thinking through how to enable user frame setups without editing the housepanel.php file. Finally got the video custom setting working by using the tile header name as the mp4 file. Frames are more complicated but maybe I could do something like using the header name as the frame html file. Would love your thoughts on this.

Yep, Docker has been extremely helpful for me as I multipurpose my rPi3b+ and not have to worry about an update to one app causing issues with others(ex: php version, node.js, etc). I have Docker containers running HousePanel, HA bridge for Alexa arm/disarm of my Vista20P alarm, rtsp camera feeds on same rPi host.

If you can provide a base Docker image for HousePanel, then your users can just docker pull down that image and not have to run any install script. They can skip on to customizing their Docker container for their dashboard to their liking as all the prereqs have been preinstalled in your base Docker image. This could be an option in addition to running current install script.

In my experience, I found that it was foolproof to just paste in the updated customtiles.css file in both main folder and my custom skin folder since it somehow messed up one time where a default customtile.css fie overwrote my customizations during a build update last month.

The frame setup is a little effort right now but it is a set once and you donā€™t have to touch it again so not a problem for me. Using header name is worth looking into.

Having a prebuilt tile for ā€œRefreshā€ and custom url would be a desired request as sometimes scrolling down to the bottom to click refresh on a tab that has more things than can fit on a small tablet screen is a little extra effort. On my smarttiles dashboard, I have the refresh tile right up top so my kids can just click it anytime they want current status.

The only customizations in housepanel.css that I have are from left over legacy I had from beginning of year like the couple sections below.
_div.switch, div.bulb, div.light, div.switchlevel, div.momentary, div.motion, div.lock, _
div.contact, div.music, div.presence, div.piston, div.valve, div.overlay div.door,
_div.overlay div.themode, _
div.temperature-thing, div.thingname.temperature {

div.switch.on, div.switch.off, div.light.on, div.light.off,
div.presence.present, div.presence.absent,
div.valve.open, div.valve.closed, div.momentary.on, div.momentary.off,
div.lock.locked, div.lock.unlocked, div.lock.unknown, div.motion.active, div.motion.inactive,
div.contact.open, div.contact.closed {

Ken, is there a way to see if the alarm has been triggered?

I donā€™t think so. All I support is reading the SHM state which is either stay, away, or off. You can get that state using the usual HP api call. There is probably a way using some other groovy api call but I havenā€™t investigated how to do it. On the Hubitat side their HSM state has a richer set of responses including alarm status but it is different on the ST side.

I searched the forum and found a two year old thread from Terry @tgauchat of ActionTiles that validates what I said above that SHM isnā€™t very flexible - apparently on purpose. Take a look here:

Yup - I am rethinking the bottom row buttons. Thinking to put them all under a new pop up option button tucked in the upper right corner next to the doc question mark with a typical gear symbol. Your request makes sense because refresh is used so often because polling isnā€™t perfect. So maybe two new top right buttons - a gear and a R for reset. When in edit or reorder mode the gear would return to normal mode.

An alternative is to add a refresh tile so users can put one anywhere they want. Iā€™m thinking to generalize this and make an options tile that has all the functionality of the bottom row. With tile editor you could style them or hide them as you like. This could even be a gear moved to the upper right to emulate the above so Iā€™m leaning this direction. Besides I think this is easy to create. Kiosk mode would also go away with this approach because kiosk mode basically would be removing or hiding this tile.

Thoughts? Preferences?

Gotcha, makes senseā€¦ unfortunately.
So I did a little work around, just in case anyone wants this (crickets). lol

  1. In the SmartThings Groovy IDE, under ā€œMy Devicesā€ create a ā€œsimulated switchā€.
  2. Under the SHM settings in the SmartThings app, under ā€œAlarm & Notificationsā€ select your new switch under ā€œAlert with Lightsā€.
  3. So now your simulated switch gets turned on with your alarm goes off. Now you can poll this status in HP, and do all kinds of fun visuals based on the on/off value.
  4. Now in webcore I created a piston that checks for when SHM changes to ā€œDisarmedā€ and then I change my ā€œsimulated switchā€ to off.

A little much, but it works.

1 Like

I think it is quite elegant and a perfect use of simulated switches. One can do all sorts of things with simulated switches that ST wasnā€™t designed to do and this is a great example.

2 Likes

My preference is the movable refresh tile via tile editor option so we can add it and custom the location base on the needs of the individual tabs. If we can include a blank http url tile in generalized options tile, that would be nice as well.

With multiple size tablet screens in the various rooms, if itā€™s going to be static position popup option button, then top left corner is same experience for all screen size since we wonā€™t need to scroll right for gears on smaller width tablets.

I have the config tile written and working. It is really cool with full editing working. So you can have just a refresh button or any number of commands represented in the bottom row today. Havenā€™t posted it yet because I wanted to understand your blank http request. Custom tiles can already invoke user provided URLā€™s provided in the hmoptions file. I think enabling the links in the options screen would be good. Is that what you mean? I could also do the same for blank tiles but their purpose is to provide spacing. Blanks play an important role when users opt to avoid dragging icons around. Dragging is more flexible but less robust. Let me know your thoughts.

Yes, as Iā€™m the only one that knows how to go manually edit the hmoptions file in my household. Having that flexibility enabled in options screen to enter in new URL will allow individuals to add their custom URL tiles at any time theyā€™d like on their devices.

Thanks for suggesting this. While investigating how to make it happen I stumbled upon a way with very little effort to bring the flexibility of custom tiles to all tiles. So now any tile can have any number of user provided fields added including text strings, states linked from other tiles, or a POST link to a valid web service (or GET or PUT). I also add a URL feature so clicks will open the provided URL instead of making a cURL web service call. I even added a feature to remove existing fields although not sure why anyone would want to do that when they can also just as easily be hidden and ignored. Anyway, this is all working and undergoing testing. I still need to build a user interface to allow end users to specify these things instead of editing the hmoptions file. Stay tuned as I make progress on that and finish up the testing.

2 Likes

I actually got this installed on my new RP3+B, but my screen looks like this:

Iā€™ve got 4 panels for my computer light (Philips Hue color bulb), and a list of commands under my Echo (for Echo Speaks). How would I clean this up? I donā€™t want to mess up any settings.