Apparatus, systems, methods, and computer program products are disclosed for providing software updates to client devices. A client device (such as a thermostat) executes software to perform one or more functionalities of the device. Upon receiving an indicating that a software update is available, the device waits to download the software update until pre-download conditions are satisfied. Once the software update is downloaded, the device then waits to install the software update until pre-install conditions are satisfied. If the software update is non-critical and received during an initial installation of the device, the software update may not be installed until after installation of the device is complete. If the device is a thermostat, the device may delay installation of the software update until a controlled HVAC system in inactive. Control of the HVAC system may be disabled during installation of the software update.