replaces temperature map with thermometer list
replaces thermostatState map with thermostat list
uses System.Timeout for non-blocking thermometer reads