1 """Support for IHC devices."""
5 from ihcsdk.ihccontroller
import IHCController
6 import voluptuous
as vol
13 from .auto_setup
import autosetup_ihc_products
21 from .manual_setup
import IHC_SCHEMA, get_manual_configuration
22 from .service_functions
import setup_service_functions
24 _LOGGER = logging.getLogger(__name__)
27 CONFIG_SCHEMA = vol.Schema(
28 {DOMAIN: vol.Schema(vol.All(cv.ensure_list, [IHC_SCHEMA]))}, extra=vol.ALLOW_EXTRA
32 def setup(hass: HomeAssistant, config: ConfigType) -> bool:
33 """Set up the IHC integration."""
35 for index, controller_conf
in enumerate(conf):
36 if not ihc_setup(hass, config, controller_conf, index):
44 controller_conf: ConfigType,
45 controller_index: int,
47 """Set up the IHC integration."""
48 url = controller_conf[CONF_URL]
49 username = controller_conf[CONF_USERNAME]
50 password = controller_conf[CONF_PASSWORD]
52 ihc_controller = IHCController(url, username, password)
53 if not ihc_controller.authenticate():
54 _LOGGER.error(
"Unable to authenticate on IHC controller")
56 controller_id: str = ihc_controller.client.get_system_info()[
"serial_number"]
58 hass.data.setdefault(DOMAIN, {})
59 hass.data[DOMAIN][controller_id] = {
60 IHC_CONTROLLER: ihc_controller,
61 CONF_INFO: controller_conf[CONF_INFO],
62 IHC_CONTROLLER_INDEX: controller_index,
65 hass, config, ihc_controller, controller_id
70 if controller_index == 0:
def setup_service_functions(HomeAssistant hass, broker)
def autosetup_ihc_products(HomeAssistant hass, config, ihc_controller, controller_id)
None get_manual_configuration(HomeAssistant hass, ConfigType config, ConfigType controller_conf, str controller_id)
bool setup(HomeAssistant hass, ConfigType config)
bool ihc_setup(HomeAssistant hass, ConfigType config, ConfigType controller_conf, int controller_index)