"""Services for Matter devices.""" from __future__ import annotations import voluptuous as vol from homeassistant.components.water_heater import DOMAIN as WATER_HEATER_DOMAIN from homeassistant.core import HomeAssistant, callback from homeassistant.helpers import config_validation as cv, service from .const import DOMAIN ATTR_DURATION = "duration" ATTR_EMERGENCY_BOOST = "emergency_boost" ATTR_TEMPORARY_SETPOINT = "temporary_setpoint" SERVICE_WATER_HEATER_BOOST = "water_heater_boost" @callback def async_setup_services(hass: HomeAssistant) -> None: """Register the Matter services.""" service.async_register_platform_entity_service( hass, DOMAIN, SERVICE_WATER_HEATER_BOOST, entity_domain=WATER_HEATER_DOMAIN, schema={ # duration >=1 vol.Required(ATTR_DURATION): vol.All(vol.Coerce(int), vol.Range(min=1)), vol.Optional(ATTR_EMERGENCY_BOOST): cv.boolean, vol.Optional(ATTR_TEMPORARY_SETPOINT): vol.All( vol.Coerce(int), vol.Range(min=30, max=65) ), }, func="async_set_boost", )