Files
homeassistant_config/config/custom_components/irrigation_unlimited/__init__.py
2024-05-31 09:39:52 +02:00

59 lines
1.5 KiB
Python

"""
Custom integration to integrate irrigation_unlimited with Home Assistant.
For more details about this integration, please refer to
https://github.com/rgc99/irrigation_unlimited
"""
import logging
import voluptuous as vol
from homeassistant.helpers.entity_component import EntityComponent
from homeassistant.core import Config, HomeAssistant
from homeassistant.helpers.discovery import async_load_platform
from .irrigation_unlimited import IUCoordinator
from .entity import IUComponent
from .service import register_component_services
from .schema import (
IRRIGATION_SCHEMA,
)
from .const import (
BINARY_SENSOR,
DOMAIN,
COORDINATOR,
COMPONENT,
STARTUP_MESSAGE,
)
_LOGGER: logging.Logger = logging.getLogger(__package__)
CONFIG_SCHEMA = vol.Schema({DOMAIN: IRRIGATION_SCHEMA}, extra=vol.ALLOW_EXTRA)
async def async_setup(hass: HomeAssistant, config: Config):
"""Set up this integration using YAML."""
_LOGGER.info(STARTUP_MESSAGE)
hass.data[DOMAIN] = {}
coordinator = IUCoordinator(hass).load(config[DOMAIN])
hass.data[DOMAIN][COORDINATOR] = coordinator
component = EntityComponent(_LOGGER, DOMAIN, hass)
hass.data[DOMAIN][COMPONENT] = component
await component.async_add_entities([IUComponent(coordinator)])
await hass.async_create_task(
async_load_platform(hass, BINARY_SENSOR, DOMAIN, {}, config)
)
register_component_services(component, coordinator)
coordinator.listen()
coordinator.clock.start()
return True