mirror of
https://github.com/home-assistant/core.git
synced 2025-07-19 03:07:37 +00:00
Add Kodi keypress event (#93321)
* Add keypress events * Fix styling * fix tests * improve tests * Revert device trigger * Add entity_id to event for ease of filtering
This commit is contained in:
parent
f86cc34644
commit
4ef315b32a
@ -26,6 +26,7 @@ from homeassistant.components.media_player import (
|
||||
from homeassistant.config_entries import SOURCE_IMPORT, ConfigEntry
|
||||
from homeassistant.const import (
|
||||
ATTR_ENTITY_ID,
|
||||
CONF_DEVICE_ID,
|
||||
CONF_HOST,
|
||||
CONF_NAME,
|
||||
CONF_PASSWORD,
|
||||
@ -33,6 +34,7 @@ from homeassistant.const import (
|
||||
CONF_PROXY_SSL,
|
||||
CONF_SSL,
|
||||
CONF_TIMEOUT,
|
||||
CONF_TYPE,
|
||||
CONF_USERNAME,
|
||||
EVENT_HOMEASSISTANT_STARTED,
|
||||
)
|
||||
@ -279,6 +281,7 @@ class KodiEntity(MediaPlayerEntity):
|
||||
self._connection = connection
|
||||
self._kodi = kodi
|
||||
self._unique_id = uid
|
||||
self._device_id = None
|
||||
self._players = None
|
||||
self._properties = {}
|
||||
self._item = {}
|
||||
@ -336,6 +339,20 @@ class KodiEntity(MediaPlayerEntity):
|
||||
self._app_properties["muted"] = data["muted"]
|
||||
self.async_write_ha_state()
|
||||
|
||||
@callback
|
||||
def async_on_key_press(self, sender, data):
|
||||
"""Handle a incoming key press notification."""
|
||||
self.hass.bus.async_fire(
|
||||
f"{DOMAIN}_keypress",
|
||||
{
|
||||
CONF_TYPE: "keypress",
|
||||
CONF_DEVICE_ID: self._device_id,
|
||||
ATTR_ENTITY_ID: self.entity_id,
|
||||
"sender": sender,
|
||||
"data": data,
|
||||
},
|
||||
)
|
||||
|
||||
async def async_on_quit(self, sender, data):
|
||||
"""Reset the player state on quit action."""
|
||||
await self._clear_connection()
|
||||
@ -410,6 +427,7 @@ class KodiEntity(MediaPlayerEntity):
|
||||
dev_reg = dr.async_get(self.hass)
|
||||
device = dev_reg.async_get_device({(DOMAIN, self.unique_id)})
|
||||
dev_reg.async_update_device(device.id, sw_version=sw_version)
|
||||
self._device_id = device.id
|
||||
|
||||
self.async_schedule_update_ha_state(True)
|
||||
|
||||
@ -457,6 +475,7 @@ class KodiEntity(MediaPlayerEntity):
|
||||
self._connection.server.Application.OnVolumeChanged = (
|
||||
self.async_on_volume_changed
|
||||
)
|
||||
self._connection.server.Other.OnKeyPress = self.async_on_key_press
|
||||
self._connection.server.System.OnQuit = self.async_on_quit
|
||||
self._connection.server.System.OnRestart = self.async_on_quit
|
||||
self._connection.server.System.OnSleep = self.async_on_quit
|
||||
|
Loading…
x
Reference in New Issue
Block a user