Compare commits

...

1 Commits

Author SHA1 Message Date
Claude
9c4ac3c6aa Use DeviceSelector to limit upload_image service to OpenDisplay devices
Replace cv.string with DeviceSelector(DeviceSelectorConfig(integration=DOMAIN))
for the device_id field in the upload_image service schema, ensuring only
OpenDisplay devices can be selected.

https://claude.ai/code/session_01FtSxhJgzpSCYMt5cKkYynd
2026-04-09 22:01:03 +00:00

View File

@@ -31,11 +31,16 @@ from homeassistant.config_entries import ConfigEntryState
from homeassistant.const import ATTR_DEVICE_ID
from homeassistant.core import HomeAssistant, ServiceCall, callback
from homeassistant.exceptions import HomeAssistantError, ServiceValidationError
from homeassistant.helpers import config_validation as cv, device_registry as dr
from homeassistant.helpers import device_registry as dr
from homeassistant.helpers.aiohttp_client import async_get_clientsession
from homeassistant.helpers.device_registry import CONNECTION_BLUETOOTH
from homeassistant.helpers.network import get_url
from homeassistant.helpers.selector import MediaSelector, MediaSelectorConfig
from homeassistant.helpers.selector import (
DeviceSelector,
DeviceSelectorConfig,
MediaSelector,
MediaSelectorConfig,
)
if TYPE_CHECKING:
from . import OpenDisplayConfigEntry
@@ -64,7 +69,9 @@ def _str_to_int_enum(enum_class: type[IntEnum]) -> Callable[[str], Any]:
SCHEMA_UPLOAD_IMAGE = vol.Schema(
{
vol.Required(ATTR_DEVICE_ID): cv.string,
vol.Required(ATTR_DEVICE_ID): DeviceSelector(
DeviceSelectorConfig(integration=DOMAIN)
),
vol.Required(ATTR_IMAGE): MediaSelector(
MediaSelectorConfig(accept=["image/*"])
),