Add support for multiple thermostats (via hass-config) and auto-discovery via ratiotherm module

This commit is contained in:
Todd Ingarfield 2015-10-11 09:28:25 -05:00
parent 37278aab20
commit 84c72ebf63

View File

@ -26,24 +26,31 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
"Did you maybe not install the radiotherm dependency?") "Did you maybe not install the radiotherm dependency?")
return return
# Detect hosts with hass discovery, config or radiotherm discovery
hosts = [] hosts = []
logger.info(discovery_info) if discovery_info:
logger.info('hass radiotherm discovery', discovery_info)
elif CONF_HOST in config:
hosts = [config[CONF_HOST]]
else:
hosts.append(radiotherm.discover.discover_address())
host = config.get(CONF_HOST)
name = config.get(CONF_NAME) name = config.get(CONF_NAME)
if host is None: if hosts is None:
logger.error("host not defined in config.") logger.error("no radiotherm thermostats detected")
return return
tstats = []
for host in hosts:
try: try:
tstat = radiotherm.get_thermostat(host) tstat = radiotherm.get_thermostat(host)
except URLError: tstats.append(RadioThermostat(tstat))
except (URLError, OSError):
logger.exception( logger.exception(
"Unable to connect to Radio Thermostat") "Unable to connect to Radio Thermostat @{}".format(host))
return
add_devices([RadioThermostat(tstat, name)]) add_devices(tstats)
class RadioThermostat(ThermostatDevice): class RadioThermostat(ThermostatDevice):