return null if the string isn't in the right form
if a thermostat's feature is null, still update
also, properly update ThermostatSetpointModel
don't show empty thermostat system or fan mode
add option to do return route optimization
don't crash if the device is null
improved logging of device events