Once you have completed both the Resideo and Amazon oauth flows and the skill is live for you, your Account Dashboard will show and buttons for backup and restore functionality, respectively.
Selecting will download a file called evocontrol.json to your PC/mac. This is a text file containing 6 sections with a backup of your Schedule Nicknames, Scenes/Activities, Groups, Schedule-Shift Target Zones, Custom Icons, Peek/Hidden tiles and ABC schedules, all encoded in the json format.
This file can be uploaded and restored as-is, but if you know what you are doing you can also edit it in a code-editor and upload a modified version.
That allows you great flexibility to keep multiple offline snapshots of your skill's state and upload one of them as live at will.
Note that the uploaded file is checked for structure/content and will be rejected for any misconfigurations. That is done to protect your TCC account from becoming polluted with invalid data and also to protect you against bad actors.
Choosing will open a file-upload dialog to allow you to select a json file on your PC/mac.
There are 6 updateable components that can be present in this file: nicknames, scenes, groups, sBlockZones, customIcon and schedules.
If any section(s) is/are omitted, the current values in the skill's back-end are left untouched — otherwise they are replaced. Be careful as this means you can inadvertently delete data from the skill. If e.g. the scenes section in the skill currently has 9 defined scenes but the file you upload only has 6, you will lose 3 scenes from the current live state. Obviously, if you still 'have' them in a different backup file they can be restored again at another time, but it's worth knowing so you will expect the correct behaviour. Any scenes with the same name but modified content will overwrite the live versions with the new ones.
scenes will be rejected if they address non-existent zones or if any setpoint is out-of-range +5° .. +35°, ∆ 0.5°. The maximum count of 12 must also be respected.
Specifying groups is similar — max. 12 and they can only contain valid zone names. Respect the '[' and ']' bracket notation or they will be rejected.
sBlockZones will be rejected if they address non-existent zones or if any incorrect block names are used. Valid block names are 'Waking Up', 'Lunch Time', 'Dinner Time', 'Going to Bed' (in English), plus 'Aufwachen', 'Mittagessen', 'Abendessen', 'Ins Bett gehen' (in German).
schedules are specified using a concatenation of seconds-since-midnight-on-Sunday (SSM) and the setpoint, separated by an underscore. There are 86,400 seconds in a day and 604,800 in a week. The valid range for the setpoint portion is +5° .. +35°, ∆ 0.5°. The schedules object can have ABC sub-entries — at a minimum the A is filled out as an example for you to copy/edit in the downloaded json. The parser will check that you don't have more than a max. of 6 entries per day and no more than 42 per week, per zone.
After restoring schedules to the skill, they are not yet live but are merely saved as an ABC preset. This gives you the opportunity to use the skill's visual editor to verify the SSM values in a normal weekday/time view so you can check for possible mistakes before making an entry live inside the skill.