1 """Support for interface with an Harman/Kardon or JBL AVR."""
3 from __future__
import annotations
6 import voluptuous
as vol
9 PLATFORM_SCHEMA
as MEDIA_PLAYER_PLATFORM_SCHEMA,
11 MediaPlayerEntityFeature,
20 DEFAULT_NAME =
"Harman Kardon AVR"
23 PLATFORM_SCHEMA = MEDIA_PLAYER_PLATFORM_SCHEMA.extend(
25 vol.Required(CONF_HOST): cv.string,
26 vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
27 vol.Optional(CONF_PORT, default=DEFAULT_PORT): cv.port,
35 add_entities: AddEntitiesCallback,
36 discover_info: DiscoveryInfoType |
None =
None,
38 """Set up the AVR platform."""
39 name = config[CONF_NAME]
40 host = config[CONF_HOST]
41 port = config[CONF_PORT]
43 avr = hkavr.HkAVR(host, port, name)
50 """Representation of a Harman Kardon AVR / JBL AVR TV."""
52 _attr_supported_features = (
53 MediaPlayerEntityFeature.VOLUME_STEP
54 | MediaPlayerEntityFeature.VOLUME_MUTE
55 | MediaPlayerEntityFeature.TURN_OFF
56 | MediaPlayerEntityFeature.TURN_ON
57 | MediaPlayerEntityFeature.SELECT_SOURCE
61 """Initialize a new HarmanKardonAVR."""
74 """Update the state of this media_player."""
77 elif self.
_avr_avr.is_off():
87 """Return the name of the device."""
88 return self.
_name_name
92 """Muted status not available."""
97 """Return the current input source."""
102 """Available sources."""
106 """Turn the AVR on."""
107 self.
_avr_avr.power_on()
110 """Turn off the AVR."""
111 self.
_avr_avr.power_off()
114 """Select input source."""
118 """Volume up the AVR."""
122 """Volume down AVR."""
126 """Send mute command."""
127 return self.
_avr_avr.mute(mute)
None add_entities(AsusWrtRouter router, AddEntitiesCallback async_add_entities, set[str] tracked)
bool is_on(HomeAssistant hass, str entity_id)