1 """Support for HDMI CEC devices as switches."""
3 from __future__
import annotations
8 from pycec.const
import POWER_OFF, POWER_ON
15 from .const
import ATTR_NEW, DOMAIN
16 from .entity
import CecEntity
18 _LOGGER = logging.getLogger(__name__)
20 ENTITY_ID_FORMAT = SWITCH_DOMAIN +
".{}"
26 add_entities: AddEntitiesCallback,
27 discovery_info: DiscoveryInfoType |
None =
None,
29 """Find and return HDMI devices as switches."""
30 if discovery_info
and ATTR_NEW
in discovery_info:
31 _LOGGER.debug(
"Setting up HDMI devices %s", discovery_info[ATTR_NEW])
33 for device
in discovery_info[ATTR_NEW]:
34 hdmi_device = hass.data[DOMAIN][device]
35 entities.append(
CecSwitchEntity(hdmi_device, hdmi_device.logical_address))
40 """Representation of a HDMI device as a Switch."""
43 """Initialize the HDMI device."""
44 CecEntity.__init__(self, device, logical)
54 """Turn device off."""
60 """Update device status."""
62 if device.power_status
in {POWER_OFF, 3}:
64 elif device.power_status
in {POWER_ON, 4}:
67 _LOGGER.warning(
"Unknown state: %d", device.power_status)
None turn_on(self, **Any kwargs)
None __init__(self, device, logical)
None turn_off(self, **Any kwargs)
None schedule_update_ha_state(self, bool force_refresh=False)
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)