ActiON Dashboard 4.6.3 is here! (Now SmartTiles.click)

http://action-dashboard.github.io

Visit project’s home page to download SmartApp and view installation instructions.

What is it?

  • ActiON Dashboard is a fast and light web client for SmartThings. It is designed to run in any modern browser, regardless of operating system or screen size.
  • ActiON Dashboard SmartApp easily installs in 2 minutes. Create as many instances as you need and pick relevant devices for each dashboard.
  • ActiON Dashboard has no dependency on the SmartThings Mobile app or third party services.

What is it for?

  • Install as a native app to your smartphone to for a quick, user friendly access to your devices.
  • Install on a wall-mounted tablet as a whole-house control panel.
  • Create dashboards, as needed, for your family and friends and decide what they are allowed to view and control. Revoke access easily when needs change.

Features

  • Locks
  • Switches
  • Holiday Lights (specialty button for a switch/light, currently styled for Christmas and Valentine’s day, theme will be added for upcoming holidays) (new)
  • Dimmers
  • Momentary switches
  • Camera (image capture) (new)
  • Open/Close sensors
  • Presence sensors
  • Temperature sensor
  • Humidity sensor
  • Motion sensor
  • Water sensor (leak detector) (new)
  • Battery level (new)
  • Energy meter (new)
  • Power meter (new)
  • Smart Weather Station Tile
  • Dropcam video streams (Desktop only, requires flash. Other cameras will be supported on demand.) (new)
  • Foscam and Blue Iris video streams (new)
  • Clock (digital/analog)
  • Mode
  • Hello, Home!
  • Link tile (useful for linking multiple dashboards together)
  • Music Player new
  • Rearranging tiles (new)
  • Thermostat (soon)
  • Hue control (later)
  • Access control (new)

If you like this app, please support the developer:
alex.smart.things@gmail.com



Updates, issues

  • I recommend creating a new instance of SmartApp rather than just overriding version 3.
  • If you encountering errors during installation you either
  • Didn’t enable OAuth when you installed the app
  • You tried to install via the IDE and you didn’t get to the end of SmartApp preference selection and clicked “Install” rather than “Done”
  • Done everything right and some other weird thing crapped out. In this case try to set “Reset OAuth” in app preferences and then go through preference selection once more and then unset this option.
  • If it’s something else, let me know

Dec-22

  • Added error handling for devices that report numerical values as strings and cause the dashboard to crash. If such a device is used, it’s value will be printed as “n/a”.

Dec-29
Major updates!

  • All preference screens where redesigned. Preferences are now organized in a tree structure rather than sequential screens.
  • The ActiON Dashboard URL can now be obtained from within the app. You don’t have to go to the logs anymore to retrieve the URL. This makes user experience a thousand times smoother and installation even less technical.
  • Security fixes and improvements! OAuth access token invalidation is broken on the ST back end. The latest version of the app accommodates for this bug. Revoking access tokens will now actually work. The process of resetting access token has been streamlined. It is much more user friendly now.

If you are upgrading from version 4.0, just override the code and don’t forget to publish.
Then step through preferences and click “Done”, even if you are not changing anything.

If you are upgrading from version 3, I recommend installing a new SmartApp and configuring a new instance.

I am ending support for “Install app via SmartThings IDE” option. 8/10 emails I get are from people who get errors when they click “Install” button rather than “Next” and “Done”, no one reads the documentation. Also, often times the IDE is doing its own thing and craps out for no reason. While installing via the IDE still works, people will have to figure it out on their own.

Dec-30

  • Added support for Foscam and Blue Iris video streams.

Jan-5

  • Added support for Music Player (Sonos).

Jan 19

  • Added ability to change tile order. This option is accessible at SmartApp preferences. Note: since the app is designed to scale across a range of screen sizes, you get to define only linear order, the tiles will wrap to the next line depending on available space. If you want certain tile to appear on certain row/column for a particular screen size, just count the position considering sizes of other tiles.
  • Added preferences for tile and font sizes and disabling drop shadows. Note: if you are using “&t=120” attribute, it still takes precedence over other preferences.
  • Fix for battery icon scaling.
  • Resetting access token moved to “Preferences” section
  • JS resource moved from jsdelvr CDN to Github so that it won’t be blocked by ad blockers.

Jan-26
Added options to disable the dashboard or put it into read only mode. Find this under Preferences > Access and Authentication.

Feb-5

  • “Holiday Lights” tiles have been updated with some :heart:. Set a romantic lighting, or set it to play a special tune. May you get some :heart:!
    Pick your lights and then pick the theme in Preferences. I will keep adding themes for the upcoming holidays. So far we have Christmas and Valentine’s.
  • Specialty tiles for linking to other dashboards. They have distinct colors and icons and they are optimized to load better in iOS devices (without opening dashboards in another browser window).
  • Specialty tiles for lights. They work just like the switch tiles you are used to, but have a distinct icon. You may cut over devices from “switches” category to “lights” if you want to make that distinction.
  • Minor UI and SmartApp tweaks and optimization.

Feb-17

  • Bug fixes and ability to assign lights/switches to different categories.
    Tips

  • Check out preferences section of the smart app. You may find useful settings there!

  • Since the app is designed to scale across a range of screen sizes, you get to define only linear order, the tiles will wrap to the next line depending on available space. If you want certain tile to appear on certain row/column for a particular screen size, just count the position considering sizes of other tiles.

  • If you think your tiles are too small/big you can try to change app preferences. If you don’t achieve a desired result, add “&t=120” at the end of your dashboard’s URL and play with the value to see what works best for you. If you are using a desktop browser you can also use zoom in/out.

  • There was a number of feature requests for one switch control a group of switches.

  • This can be achieved with Big Switch app by ST. You can find it on your mobile app.
    Tap (+) > More > Convenience > Scroll to the bottom and find “The Big Switch” app. Then setup the master and slave switches.

  • If you want to create a virtual (master) switches, go to IDE > My
    Devices > New Device. Enter required fields and choose “On/Off Button Tile” in the type selection box. Then you can use it as any other switch and put it on the dashboard.

  • If you want multiple instances of the dashboard, install SmartApp only once in the IDE. Then, create as many instances as necessary in the ST Mobile App. Each instance has it’s own set of preferences.

  • If you want to change the style, I added a block of code for your custom CSS overrides. Add your style within customCSS() method. I will always keep it at the end of the SmartApp code.

  • To add weather tile, do to IDE > My Devices, add SmartWeather Tile. It will be listed as one of your devices and you could pick it when you configure preferences of ActiON Dashboard.

  • Version 4.6 has new fields over 4.5, that’s why it’s very important to step though preferences on each dashboard instance. If you are getting a “NullPointerException”, this is why.

43 Likes

What’s new:

  • The app was rewritten pretty much from ground up.
  • Installs as a native app on Android and iOS with proper icon.
  • Support for more devices with better foundation for future ones.
  • The dashboard synchronizes frequently with the cloud and updates tiles in the background, without refreshing the whole screen.
  • If the connection to the cloud is lost, you will not lose the dashboard anymore. An indicator will be shown instead. When connection is restored, the dashboard will continue to operate as normal.
  • New responsive tile layout framework that allows the most flexibility. In desktop browsers, the tiles scale really well if you zoom in and out. We are now free to create tiles with different dimensions.
  • New modern analog clock face.
  • UI is more polished.
  • Dimmers now have on/off control independent of level (1-10). You can now preset your dimmer level before turning on lights.
4 Likes

I will consider feature requests as long as they are applicable to general use cases.

I will gladly incorporate new features created by the community as long as they don’t overly complicate things. I didn’t have much time to look at the forks, because I knew the code will be changing dramatically.

I get a Redbox Failure on Install with "Error: Unexpected error occurred.

OAuth is enabled.

Nothing is reported in the live logs (app isn’t installed).

Fails with only a single switch defined - nothing else at all, and all other options left at their defaults.

Awesome … but I am getting a 404 when I click on the instuctions 5. Paste the SmartApp code link

Also getting the 404…

The link has a typo. The proper link is below.

https://github.com/625alex/ActiON-Dashboard/blob/master/app-v4/ActiON4SmartApp.groovy

Is anyone else seeing a problem with momentary switches now on V4? I have some virtual momentary switches (call them a virtual button tile perhaps) that call certain things to happen (like turn on the coffee machine and turn on a light or execute an “all lights on” event). These all worked fine on V3 but now when you press the momentary switch on a dashboard, it instantly brings up the “cloud” error icon and it does not execute anything. I have also tested a std. ST momentary button tile and got the same results so it doesn’t seem to be my forked momentary button device type. Anyone else with a momentary switch issue on V4?

Edit

So after some testing it seems that you can fix the momentary switch error by changing the following code that is at line 181. The V4 code was

} else if (type == "momentary") { 
    momentaries?.find{it.id == id} device.push()

and it needs to be changed to this code. At least it makes it work again but perhaps that is not the proper coding mechanism.

} else if (type == "momentary") {
    	device = momentaries?.find{it.id == id}
        if (device) {
        	device.push()
        }

Nice work the screens look great but i’m having some issues getting it running.

I removed the old ActionDashboard and reinstalled this one. When I configured the smartapp from the ST app I get an “unexpected error” on the last step, if i click “reset Oauth” it seems to install an instance of the app.

But then when I go to the URL provided by the logs I get the following error:
{“error”:true,“type”:“java.lang.NumberFormatException”,“message”:“An unexpected error occurred.”}

And from the logs I get the following error:
java.lang.NumberFormatException @ line 387

Getting an error on the last step “Error: Unexpected error occurred.”

I am also getting the Error: Unexpected error occurred on the last step…

@sjones0812 and @B_Ferguson, there was a type in the link. It’s been updated.

@all, there will be some quirks initially, we will sort it out!

here’s the error when i attempt to configure the app via the IDE with nothing selected:

grails.validation.ValidationException: Validation Error(s) occurred during save():
- Field error in object 'physicalgraph.app.InstalledSmartApp' on field 'data': rejected value [[ActiON4 - temperature = "", ActiON4 - motion = "", ActiON4 - holiday = "", ActiON4 - weather = "", ActiON4 - switches = "", ActiON4 - contacts = "", ActiON4 - presence = "", ActiON4 - momentaries = "", ActiON4 - power = "", ActiON4 - water = "", ActiON4 - energy = "", ActiON4 - camera = "", ActiON4 - battery = "", ActiON4 - humidity = "", ActiON4 - dimmers = "", ActiON4 - locks = ""]]; codes [physicalgraph.app.InstalledSmartApp.data.validator.error.physicalgraph.app.InstalledSmartApp.data,physicalgraph.app.InstalledSmartApp.data.validator.error.data,physicalgraph.app.InstalledSmartApp.data.validator.error.java.util.Set,physicalgraph.app.InstalledSmartApp.data.validator.error,installedSmartApp.data.validator.error.physicalgraph.app.InstalledSmartApp.data,installedSmartApp.data.validator.error.data,installedSmartApp.data.validator.error.java.util.Set,installedSmartApp.data.validator.error,physicalgraph.app.InstalledSmartApp.data.Input '[showMode, showHelloHome, showClock, roundNumbers, dropcamStreamT1, dropcamStreamUrl1, dropcamStreamT2, dropcamStreamUrl2, dropcamStreamT3, dropcamStreamUrl3, linkTitle1, linkUrl1, linkTitle2, linkUrl2, linkTitle3, linkUrl3]' is required.physicalgraph.app.InstalledSmartApp.data,physicalgraph.app.InstalledSmartApp.data.Input '[showMode, showHelloHome, showClock, roundNumbers, dropcamStreamT1, dropcamStreamUrl1, dropcamStreamT2, dropcamStreamUrl2, dropcamStreamT3, dropcamStreamUrl3, linkTitle1, linkUrl1, linkTitle2, linkUrl2, linkTitle3, linkUrl3]' is required.data,physicalgraph.app.InstalledSmartApp.data.Input '[showMode, showHelloHome, showClock, roundNumbers, dropcamStreamT1, dropcamStreamUrl1, dropcamStreamT2, dropcamStreamUrl2, dropcamStreamT3, dropcamStreamUrl3, linkTitle1, linkUrl1, linkTitle2, linkUrl2, linkTitle3, linkUrl3]' is required.java.util.Set,physicalgraph.app.InstalledSmartApp.data.Input '[showMode, showHelloHome, showClock, roundNumbers, dropcamStreamT1, dropcamStreamUrl1, dropcamStreamT2, dropcamStreamUrl2, dropcamStreamT3, dropcamStreamUrl3, linkTitle1, linkUrl1, linkTitle2, linkUrl2, linkTitle3, linkUrl3]' is required,installedSmartApp.data.Input '[showMode, showHelloHome, showClock, roundNumbers, dropcamStreamT1, dropcamStreamUrl1, dropcamStreamT2, dropcamStreamUrl2, dropcamStreamT3, dropcamStreamUrl3, linkTitle1, linkUrl1, linkTitle2, linkUrl2, linkTitle3, linkUrl3]' is required.physicalgraph.app.InstalledSmartApp.data,installedSmartApp.data.Input '[showMode, showHelloHome, showClock, roundNumbers, dropcamStreamT1, dropcamStreamUrl1, dropcamStreamT2, dropcamStreamUrl2, dropcamStreamT3, dropcamStreamUrl3, linkTitle1, linkUrl1, linkTitle2, linkUrl2, linkTitle3, linkUrl3]' is required.data,installedSmartApp.data.Input '[showMode, showHelloHome, showClock, roundNumbers, dropcamStreamT1, dropcamStreamUrl1, dropcamStreamT2, dropcamStreamUrl2, dropcamStreamT3, dropcamStreamUrl3, linkTitle1, linkUrl1, linkTitle2, linkUrl2, linkTitle3, linkUrl3]' is required.java.util.Set,installedSmartApp.data.Input '[showMode, showHelloHome, showClock, roundNumbers, dropcamStreamT1, dropcamStreamUrl1, dropcamStreamT2, dropcamStreamUrl2, dropcamStreamT3, dropcamStreamUrl3, linkTitle1, linkUrl1, linkTitle2, linkUrl2, linkTitle3, linkUrl3]' is required,Input '[showMode, showHelloHome, showClock, roundNumbers, dropcamStreamT1, dropcamStreamUrl1, dropcamStreamT2, dropcamStreamUrl2, dropcamStreamT3, dropcamStreamUrl3, linkTitle1, linkUrl1, linkTitle2, linkUrl2, linkTitle3, linkUrl3]' is required.physicalgraph.app.InstalledSmartApp.data,Input '[showMode, showHelloHome, showClock, roundNumbers, dropcamStreamT1, dropcamStreamUrl1, dropcamStreamT2, dropcamStreamUrl2, dropcamStreamT3, dropcamStreamUrl3, linkTitle1, linkUrl1, linkTitle2, linkUrl2, linkTitle3, linkUrl3]' is required.data,Input '[showMode, showHelloHome, showClock, roundNumbers, dropcamStreamT1, dropcamStreamUrl1, dropcamStreamT2, dropcamStreamUrl2, dropcamStreamT3, dropcamStreamUrl3, linkTitle1, linkUrl1, linkTitle2, linkUrl2, linkTitle3, linkUrl3]' is required.java.util.Set,Input '[showMode, showHelloHome, showClock, roundNumbers, dropcamStreamT1, dropcamStreamUrl1, dropcamStreamT2, dropcamStreamUrl2, dropcamStreamT3, dropcamStreamUrl3, linkTitle1, linkUrl1, linkTitle2, linkUrl2, linkTitle3, linkUrl3]' is required]; arguments [data,class physicalgraph.app.InstalledSmartApp,[ActiON4 - temperature = "", ActiON4 - motion = "", ActiON4 - holiday = "", ActiON4 - weather = "", ActiON4 - switches = "", ActiON4 - contacts = "", ActiON4 - presence = "", ActiON4 - momentaries = "", ActiON4 - power = "", ActiON4 - water = "", ActiON4 - energy = "", ActiON4 - camera = "", ActiON4 - battery = "", ActiON4 - humidity = "", ActiON4 - dimmers = "", ActiON4 - locks = ""]]; default message [{0} does not pass custom validation]

Thanks, got it working…but I am seeing an error on dimmers.

Get a cloud with a ?! error on IDE

java.lang.NumberFormatException: For input string: “off” @ line 170

Xmas lights work great, love how it changes from free to red :smile:

Switches seem to work fine, temps are fine, weather fine

If you slide the dimmer it works…then you can toggle it on and off without the error

Also, any way to make the mode box smaller like the Hello Home?

This looks great. I have three comments

(1) Is there a way to reduce the box size so it is similar to v3?
(2) I receive the following when taking a picture using my Dropcam

10:27:01 AM: error java.lang.NullPointerException: Cannot invoke method take() on null object @ line 184

10:27:01 AM: debug command received with params [command:toggle, device:7a31ea42-de7f-4ede-8422-74dcfeae492b, type:camera, access_token:2fee3501-c6fc-41dd-b224-4d795f309e2f, appId:9a6a1a42-b55f-4b90-83a8-71a2c51cdfd7, param1:command, action:[GET:executeSmartAppGet, POST:executeSmartAppPost, PUT:executeSmartAppPut, DELETE:executeSmartAppDelete, OPTIONS:executeSmartAppOptions], controller:smartAppApi]

(3) I have the same issue as @sjones0812 I utilize the GE Link Bulb

I think you clicked “Install” button at the bottom of right panel before you clicked “Done” button.

Follow through 3 configuration steps of the SmartApp. Click “Next” button after each step and finally click “Done”. Don’t forget to get through all pages, don’t click “Install” button too soon.

On line ~303 you can change the div class from “w2” to “w1” for the mode render and it will be a single wide box once again.

1 Like

This was changed to a 1x2 tile because several people have asked me to. Some mode names are longer and need more space to accommodate. I will consider changing the tile dimension dynamically.

Also, I have noticed that the tile sizes on my iPhone 4s are quite large. I now can only get the “hello home” and one other tile on the first row, the weather tile (it is a 2x tile) on the second row, and two other tiles on the third row of the screen at once. The tiles seem unusually large on the 4s screen and so few tiles can be on the screen at once it feels awkward. I am unsure how to make changes to UI just for the iPhone 4S’s smaller screen without messing up how well it looks on other larger devices.

I am also noticing that the tiles on my iPad Air are also quite large. I have an Android tablet that has a significantly lower screen resolution and the tiles are much smaller (they look appropriately sized). Therefore you can have much more info on the screen at once. Perhaps this is an iOS aspect…