1 """Support for Sony projectors via SDCP network control."""
3 from __future__
import annotations
9 import voluptuous
as vol
12 PLATFORM_SCHEMA
as SWITCH_PLATFORM_SCHEMA,
21 _LOGGER = logging.getLogger(__name__)
23 DEFAULT_NAME =
"Sony Projector"
25 PLATFORM_SCHEMA = SWITCH_PLATFORM_SCHEMA.extend(
27 vol.Required(CONF_HOST): cv.string,
28 vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
36 add_entities: AddEntitiesCallback,
37 discovery_info: DiscoveryInfoType |
None =
None,
39 """Connect to Sony projector using network."""
41 host = config[CONF_HOST]
42 name = config[CONF_NAME]
43 sdcp_connection = pysdcp.Projector(host)
47 sdcp_connection.get_power()
48 except ConnectionError:
49 _LOGGER.error(
"Failed to connect to projector '%s'", host)
51 _LOGGER.debug(
"Validated projector '%s' OK", host)
56 """Represents a Sony Projector as a switch."""
59 """Init of the Sony projector."""
60 self.
_sdcp_sdcp = sdcp_connection
68 """Return if projector is available."""
73 """Return name of the projector."""
74 return self.
_name_name
78 """Return if the projector is turned on."""
83 """Return state attributes."""
87 """Get the latest state from the projector."""
91 except ConnectionRefusedError:
92 _LOGGER.error(
"Projector connection refused")
96 """Turn the projector on."""
97 _LOGGER.debug(
"Powering on projector '%s'", self.
namenamename)
98 if self.
_sdcp_sdcp.set_power(
True):
99 _LOGGER.debug(
"Powered on successfully")
100 self.
_state_state = STATE_ON
102 _LOGGER.error(
"Power on command was not successful")
105 """Turn the projector off."""
106 _LOGGER.debug(
"Powering off projector '%s'", self.
namenamename)
107 if self.
_sdcp_sdcp.set_power(
False):
108 _LOGGER.debug(
"Powered off successfully")
109 self.
_state_state = STATE_OFF
111 _LOGGER.error(
"Power off command was not successful")
None turn_on(self, **Any kwargs)
None turn_off(self, **Any kwargs)
def __init__(self, sdcp_connection, name)
def extra_state_attributes(self)
str|UndefinedType|None name(self)
None add_entities(AsusWrtRouter router, AddEntitiesCallback async_add_entities, set[str] tracked)
None setup_platform(HomeAssistant hass, ConfigType config, AddEntitiesCallback add_entities, DiscoveryInfoType|None discovery_info=None)