This project is read-only.

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 GUI. 

Configuration Update
A running and internet-connected HomeOS hub will periodically upload its configuration files (stored in /output/hub/configs/config) as a zip file ( 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 ( into blob storage, so the 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 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.

Platform Update

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:
• The location (Uri) must be secure (https)

An example entry of watchdog.txt for enabling platform update:

Last edited Apr 1, 2014 at 9:04 PM by dannyh206, version 7


No comments yet.