Michael Hansen ec4bd9a421
Add new intents for cover, valve, vacuum, and media player (#110757)
* Add valve to HassTurnOn/Off

* Add set position for valves

* Add set position to covers

* Add HassTurnOn/Off for vacuums

* Add media player intents

* Split out vacuum intents

* Address comments

* Extra test
2024-02-19 22:28:42 -05:00

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