1 """The epson integration."""
5 from epson_projector
import Projector
6 from epson_projector.const
import (
8 STATE_UNAVAILABLE
as EPSON_STATE_UNAVAILABLE,
16 from .const
import CONF_CONNECTION_TYPE, DOMAIN, HTTP
17 from .exceptions
import CannotConnect, PoweredOff
19 PLATFORMS = [Platform.MEDIA_PLAYER]
21 _LOGGER = logging.getLogger(__name__)
28 check_power: bool =
True,
29 check_powered_on: bool =
True,
31 """Validate the given projector host allows us to connect."""
32 epson_proj = Projector(
38 _power = await epson_proj.get_power()
39 if not _power
or _power == EPSON_STATE_UNAVAILABLE:
40 _LOGGER.debug(
"Cannot connect to projector")
42 if _power == PWR_OFF_STATE
and check_powered_on:
43 _LOGGER.debug(
"Projector is off")
49 """Set up epson from a config entry."""
52 host=entry.data[CONF_HOST],
53 conn_type=entry.data[CONF_CONNECTION_TYPE],
55 check_powered_on=
False,
57 hass.data.setdefault(DOMAIN, {})
58 hass.data[DOMAIN][entry.entry_id] = projector
59 await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
65 """Unload a config entry."""
66 unload_ok = await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
68 projector = hass.data[DOMAIN].pop(entry.entry_id)
74 """Migrate old entry."""
76 "Migrating configuration from version %s.%s",
78 config_entry.minor_version,
81 if config_entry.version > 1
or config_entry.minor_version > 1:
85 if config_entry.version == 1
and config_entry.minor_version == 1:
86 new_data = {**config_entry.data}
87 new_data[CONF_CONNECTION_TYPE] = HTTP
89 hass.config_entries.async_update_entry(
90 config_entry, data=new_data, version=1, minor_version=2
94 "Migration to configuration version %s successful", config_entry.version
bool async_setup_entry(HomeAssistant hass, ConfigEntry entry)
bool async_unload_entry(HomeAssistant hass, ConfigEntry entry)
bool async_migrate_entry(HomeAssistant hass, ConfigEntry config_entry)
def validate_projector(HomeAssistant hass, str host, str conn_type, bool check_power=True, bool check_powered_on=True)
aiohttp.ClientSession async_get_clientsession(HomeAssistant hass, bool verify_ssl=True, socket.AddressFamily family=socket.AF_UNSPEC, ssl_util.SSLCipherList ssl_cipher=ssl_util.SSLCipherList.PYTHON_DEFAULT)