Files
2026-07-20 22:52:35 -04:00

37 lines
1.0 KiB
Python

"""Spook - Your homie."""
from __future__ import annotations
import random
from typing import TYPE_CHECKING
import voluptuous as vol
from homeassistant.components.select import DOMAIN, SelectEntity
from homeassistant.helpers import config_validation as cv
from ....services import AbstractSpookEntityComponentService
if TYPE_CHECKING:
from homeassistant.core import ServiceCall
class SpookService(AbstractSpookEntityComponentService[SelectEntity]):
"""Select entity service, select a random option."""
domain = DOMAIN
service = "random"
schema = {vol.Optional("options"): [cv.string]}
async def async_handle_service(
self,
entity: SelectEntity,
call: ServiceCall,
) -> None:
"""Handle the service call."""
option = random.choice(call.data.get("options", entity.options)) # noqa: S311
if option not in entity.options:
msg = f"Option {option} not valid for {entity.entity_id}"
raise ValueError(msg)
await entity.async_select_option(option)