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
|
||
|
)
|
||
|
},
|
||
|
),
|
||
|
)
|