51 lines
1.4 KiB
Python
51 lines
1.4 KiB
Python
"""Intents for the media_player integration."""
|
|
|
|
import voluptuous as vol
|
|
|
|
from homeassistant.const import (
|
|
SERVICE_MEDIA_NEXT_TRACK,
|
|
SERVICE_MEDIA_PAUSE,
|
|
SERVICE_MEDIA_PLAY,
|
|
SERVICE_VOLUME_SET,
|
|
)
|
|
from homeassistant.core import HomeAssistant
|
|
from homeassistant.helpers import intent
|
|
|
|
from . import ATTR_MEDIA_VOLUME_LEVEL, DOMAIN
|
|
|
|
INTENT_MEDIA_PAUSE = "HassMediaPause"
|
|
INTENT_MEDIA_UNPAUSE = "HassMediaUnpause"
|
|
INTENT_MEDIA_NEXT = "HassMediaNext"
|
|
INTENT_SET_VOLUME = "HassSetVolume"
|
|
|
|
|
|
async def async_setup_intents(hass: HomeAssistant) -> None:
|
|
"""Set up the media_player intents."""
|
|
intent.async_register(
|
|
hass,
|
|
intent.ServiceIntentHandler(INTENT_MEDIA_UNPAUSE, DOMAIN, SERVICE_MEDIA_PLAY),
|
|
)
|
|
intent.async_register(
|
|
hass,
|
|
intent.ServiceIntentHandler(INTENT_MEDIA_PAUSE, DOMAIN, SERVICE_MEDIA_PAUSE),
|
|
)
|
|
intent.async_register(
|
|
hass,
|
|
intent.ServiceIntentHandler(
|
|
INTENT_MEDIA_NEXT, DOMAIN, SERVICE_MEDIA_NEXT_TRACK
|
|
),
|
|
)
|
|
intent.async_register(
|
|
hass,
|
|
intent.ServiceIntentHandler(
|
|
INTENT_SET_VOLUME,
|
|
DOMAIN,
|
|
SERVICE_VOLUME_SET,
|
|
extra_slots={
|
|
ATTR_MEDIA_VOLUME_LEVEL: vol.All(
|
|
vol.Range(min=0, max=100), lambda val: val / 100
|
|
)
|
|
},
|
|
),
|
|
)
|