1 """The VLC media player Telnet integration."""
3 from dataclasses
import dataclass
5 from aiovlc.client
import Client
6 from aiovlc.exceptions
import AuthError, ConnectError
9 SCAN_INTERVAL
as MEDIAPLAYER_SCAN_INTERVAL,
16 from .const
import LOGGER
18 PLATFORMS = [Platform.MEDIA_PLAYER]
20 type VlcConfigEntry = ConfigEntry[VlcData]
25 """Runtime data definition."""
32 """Set up VLC media player Telnet from a config entry."""
35 host = config[CONF_HOST]
36 port = config[CONF_PORT]
37 password = config[CONF_PASSWORD]
43 timeout=
int(MEDIAPLAYER_SCAN_INTERVAL.total_seconds() - 1),
50 except ConnectError
as err:
51 LOGGER.warning(
"Failed to connect to VLC: %s. Trying again", err)
54 async
def _disconnect_vlc() -> None:
55 """Disconnect from VLC."""
56 LOGGER.debug(
"Disconnecting from VLC")
58 await vlc.disconnect()
59 except ConnectError
as err:
60 LOGGER.warning(
"Connection error: %s", err)
65 except AuthError
as err:
66 await _disconnect_vlc()
67 raise ConfigEntryAuthFailed
from err
69 entry.runtime_data =
VlcData(vlc, available)
71 entry.async_on_unload(_disconnect_vlc)
73 await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
79 """Unload a config entry."""
80 return await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
bool async_setup_entry(HomeAssistant hass, VlcConfigEntry entry)
bool async_unload_entry(HomeAssistant hass, ConfigEntry entry)