1 """Support for the EZcontrol XS1 gateway."""
5 import voluptuous
as vol
21 _LOGGER = logging.getLogger(__name__)
24 ACTUATORS =
"actuators"
28 CONFIG_SCHEMA = vol.Schema(
32 vol.Required(CONF_HOST): cv.string,
33 vol.Optional(CONF_PASSWORD): cv.string,
34 vol.Optional(CONF_PORT, default=80): cv.string,
35 vol.Optional(CONF_SSL, default=
False): cv.boolean,
36 vol.Optional(CONF_USERNAME): cv.string,
40 extra=vol.ALLOW_EXTRA,
43 PLATFORMS = [Platform.CLIMATE, Platform.SENSOR, Platform.SWITCH]
46 def setup(hass: HomeAssistant, config: ConfigType) -> bool:
47 """Set up XS1 integration."""
48 _LOGGER.debug(
"Initializing XS1")
50 host = config[DOMAIN][CONF_HOST]
51 port = config[DOMAIN][CONF_PORT]
52 ssl = config[DOMAIN][CONF_SSL]
53 user = config[DOMAIN].
get(CONF_USERNAME)
54 password = config[DOMAIN].
get(CONF_PASSWORD)
58 xs1 = xs1_api_client.XS1(
59 host=host, port=port, ssl=ssl, user=user, password=password
61 except ConnectionError
as error:
63 "Failed to create XS1 API client because of a connection error: %s",
68 _LOGGER.debug(
"Establishing connection to XS1 gateway and retrieving data")
70 hass.data[DOMAIN] = {}
72 actuators = xs1.get_all_actuators(enabled=
True)
73 sensors = xs1.get_all_sensors(enabled=
True)
75 hass.data[DOMAIN][ACTUATORS] = actuators
76 hass.data[DOMAIN][SENSORS] = sensors
78 _LOGGER.debug(
"Loading platforms for XS1 integration")
80 for platform
in PLATFORMS:
81 discovery.load_platform(hass, platform, DOMAIN, {}, config)
web.Response get(self, web.Request request, str config_key)
bool setup(HomeAssistant hass, ConfigType config)