Please update your smart apps and reload the dashboard for this release which fixes a number of bugs and introduces the ability to restore pistons from a backup file.
Restore pistons from a backup file
The Backup Piston(s) feature on the dashboard is now accompanied by a way to restore from that backup file. When restoring from a backup you will be guided through the process with the following screen:
The default sort encourages you to restore the “safest” pistons first but you can also sort by name, created date, last modified, or category. Unfortunately we don’t have category names in the backup file, just numbers. The screen shows warnings for pistons that:
- Use global variables, because you may want to create globals before importing those pistons
- Have tiles, because you probably need to configure a category for any piston that will show tiles
- Requires IFTTT to be configured
- Expects arguments, because it is likely to be called by another piston or remotely executed by URL
- Has devices in expressions like
[Hallway Light: switch]
, just in case you need to update them - Use the Execute Piston command since the dashboard can only update to your new piston IDs if the corresponding piston has already been imported
When a piston is imported it moves to the bottom of the list so that you can always restore the topmost piston. You can view the imported piston from this screen or restore another copy. When the import file is loaded, any pistons with identical name are indicated as imported.
Any Execute Piston actions are automatically updated to the new piston ID if you have already imported the target piston.
This feature is primarily useful for transferring pistons to a new webCoRE install on the same SmartThings account (i.e. same platform and devices) as an alternative to private backup bin codes which cannot be accessed on a different instance.
We have plans for a second phase of work on backup and import that can operate as a more comprehensive migration tool. The ability to copy over global variables and categories and globally replace devices would be convenient for significant changes like transitioning to a different automation platform. In this first phase the import will save time over manually recreating pistons, but you’ll still have a lot of work to manually update all devices and settings.
Restore workflow
This is not a one-click import, by any means. webCoRE code is organized in a way that requires certain actions to occur on certain screens. I don’t think that is a bad thing for a big operation like restoring all of your pistons, but you will need to review imported pistons.
Here is the basic workflow:
- Upload backup file (it doesn’t actually upload anywhere, this is all in-browser)
- Unlock the backup file with the password used to create it (not account password)
- webCoRE shows a list of all pistons in the file, sorted by “safest” to import
- Click Import to add a single piston
- webCoRE creates the piston and redirects to the editor
- Editor shows the piston code with any Execute Piston actions mapped to the new imported piston IDs
- Pistons that use Execute Piston should always appear last in the “safest” sort order; the mapping will not work if the callee piston has not yet been imported
- Review and save the piston
- Adjust piston name and category if necessary
- Resume piston now or later (all imported pistons are automatically paused to prevent mid-import mayhem)
- Click “continue import” in the banner on the piston page
- Import list appears again, piston you just imported is moved to the bottom of the list
- Repeat steps 4-11 as necessary
- Click X to ignore pistons that you don’t want to import (just removes them from the local import data)
- Click New Import to reset all of the import data (not the imported pistons, just the local data from the import file)
Bug fixes galore
- @bangali fixed incorrect time when parsing a string to a date across DST boundaries
- Workaround for inability to load the dashboard reported by several users whose SmartThings accounts were returning
null
rather than a list of routines - Fixed inability to save large pistons (roughly > 16 chunks) that affected some mobile devices
- Fixed variables disappearing when touched on mobile devices
- Fixed a series of casts that could drop trailing zeroes from integers… not ideal when you expect 100 but get 1
- Removed confusing (unknown) SHM status that appeared on the dashboard for anyone without Security monitors
- Fixed piston backup file download which did not work in Firefox
Also new in this release
- Updated to the latest version 5.3.1 of Font Awesome, see what’s new
The minions and out new beta testing team will be underground testing the next version of webCoRE for awhile. Unless any urgent bug fixes come up the next release will feature a major community contribution that bumps us up to version 0.4!