HomeOS and the Lab of Things cloud infrastructure were designed to let researchers update deployed hubs remotely. You can remotely update these things on a hub:
• Configurations (xml files)
• Binaries for the modules and scouts
• Platform binaries
While it is technically possible to maintain and update configurations and binaries manually, it would be time consuming and error-prone. So, we have created a simple tool, LoT Update Manager, which allows you to update your deployed home hubs remotely via
A running and internet-connected HomeOS hub will periodically upload its configuration files (stored in /output/hub/configs/config) as a zip file (actualconfig.zip) to the Azure blob storage account you have configured in Settings.xml. To remotely update the
configs on a hub, you will first need to place the desired config files (desiredconfig.zip) into blob storage, so the desiredconfig.zip can be pulled down from the storage and then unpacked and run by the hub.
Note: The frequency of config synchronization is defined by the value of ConfigLookupFrequency element in the settings.xml file.
Update Manager enables you to fetch the latest actual config files from blob storage, so you can edit these config files. Once you are done, the tool will package the config files into desiredconfig.zip and place it in blob storage. For more details, see the
Update Manager section of this document.
Updating Modules (Apps & Drivers) and Scouts
You can configure a hub to run specific versions of modules and scouts by specifying them in modules.xml for apps and drivers and scouts.xml for scouts. If a binary specified in either of those files is not found on the hub, if the hub is online it will try
to locate and download the binary referenced in the config files from the repository URI, which is defined in RepositoryURIs in the settings.xml file.
In order for a hub to download the binaries stored in a repository, the directory structure must follow this specific format:
Although it is possible to maintain binaries and their versions manually, we recommend using the Update Manager tool to package, upload and maintain versioning of your binaries. Update Manager automatically handles packaging your binaries and arranging them
in the appropriate hierarchy.
As with modules and scouts, HomeOS Platform binaries can be updated too. However, Platform updates are triggered differently than updates of modules and scouts. Platform update requires the HomeOS Watchdog service to be running on a hub. If the “check
for updates” flag is enabled and a newer version of the platform is found, Watchdog will update the Platform with the newer version of the binaries from the repository.
The binaries for Platform must be placed in the repository in the same type of structure as drivers/apps and scouts: HomeOS/Hub/Platform/version. You can also use Update Manager to package, upload and maintain versions of the Platform binaries on your repository.
• The variable checkForUpdates in Watchdog.txt must be set to true in order for Watchdog to look for updates
• The location (Uri) of your repository for Platform update must be set in Watchdog.txt (UpdateUri variable). It should look like: https://repository.myserver.com/HomeOS/Hub/Platform/Latest
• The location (Uri) must be secure (https)
An example entry of watchdog.txt for enabling platform update: