mirror of
https://github.com/home-assistant/core.git
synced 2025-07-20 11:47:06 +00:00
Add area support to vacuum service schemas (#25443)
* Add area support to vacuum service schemas * Fixed tests * De-couple platform schemas
This commit is contained in:
parent
561bbecd25
commit
9e36448f03
@ -7,12 +7,12 @@ import voluptuous as vol
|
||||
|
||||
from homeassistant.components import group
|
||||
from homeassistant.const import (
|
||||
ATTR_BATTERY_LEVEL, ATTR_COMMAND, ATTR_ENTITY_ID, SERVICE_TOGGLE,
|
||||
SERVICE_TURN_OFF, SERVICE_TURN_ON, STATE_ON, STATE_PAUSED, STATE_IDLE)
|
||||
ATTR_BATTERY_LEVEL, ATTR_COMMAND, SERVICE_TOGGLE, SERVICE_TURN_OFF,
|
||||
SERVICE_TURN_ON, STATE_ON, STATE_PAUSED, STATE_IDLE)
|
||||
from homeassistant.loader import bind_hass
|
||||
import homeassistant.helpers.config_validation as cv
|
||||
from homeassistant.helpers.config_validation import ( # noqa
|
||||
PLATFORM_SCHEMA, PLATFORM_SCHEMA_BASE)
|
||||
ENTITY_SERVICE_SCHEMA, PLATFORM_SCHEMA, PLATFORM_SCHEMA_BASE)
|
||||
from homeassistant.helpers.entity_component import EntityComponent
|
||||
from homeassistant.helpers.entity import (ToggleEntity, Entity)
|
||||
from homeassistant.helpers.icon import icon_for_battery_level
|
||||
@ -42,15 +42,11 @@ SERVICE_START = 'start'
|
||||
SERVICE_PAUSE = 'pause'
|
||||
SERVICE_STOP = 'stop'
|
||||
|
||||
VACUUM_SERVICE_SCHEMA = vol.Schema({
|
||||
vol.Optional(ATTR_ENTITY_ID): cv.comp_entity_ids,
|
||||
})
|
||||
|
||||
VACUUM_SET_FAN_SPEED_SERVICE_SCHEMA = VACUUM_SERVICE_SCHEMA.extend({
|
||||
VACUUM_SET_FAN_SPEED_SERVICE_SCHEMA = ENTITY_SERVICE_SCHEMA.extend({
|
||||
vol.Required(ATTR_FAN_SPEED): cv.string,
|
||||
})
|
||||
|
||||
VACUUM_SEND_COMMAND_SERVICE_SCHEMA = VACUUM_SERVICE_SCHEMA.extend({
|
||||
VACUUM_SEND_COMMAND_SERVICE_SCHEMA = ENTITY_SERVICE_SCHEMA.extend({
|
||||
vol.Required(ATTR_COMMAND): cv.string,
|
||||
vol.Optional(ATTR_PARAMS): vol.Any(dict, cv.ensure_list),
|
||||
})
|
||||
@ -95,43 +91,43 @@ async def async_setup(hass, config):
|
||||
await component.async_setup(config)
|
||||
|
||||
component.async_register_entity_service(
|
||||
SERVICE_TURN_ON, VACUUM_SERVICE_SCHEMA,
|
||||
SERVICE_TURN_ON, ENTITY_SERVICE_SCHEMA,
|
||||
'async_turn_on'
|
||||
)
|
||||
component.async_register_entity_service(
|
||||
SERVICE_TURN_OFF, VACUUM_SERVICE_SCHEMA,
|
||||
SERVICE_TURN_OFF, ENTITY_SERVICE_SCHEMA,
|
||||
'async_turn_off'
|
||||
)
|
||||
component.async_register_entity_service(
|
||||
SERVICE_TOGGLE, VACUUM_SERVICE_SCHEMA,
|
||||
SERVICE_TOGGLE, ENTITY_SERVICE_SCHEMA,
|
||||
'async_toggle'
|
||||
)
|
||||
component.async_register_entity_service(
|
||||
SERVICE_START_PAUSE, VACUUM_SERVICE_SCHEMA,
|
||||
SERVICE_START_PAUSE, ENTITY_SERVICE_SCHEMA,
|
||||
'async_start_pause'
|
||||
)
|
||||
component.async_register_entity_service(
|
||||
SERVICE_START, VACUUM_SERVICE_SCHEMA,
|
||||
SERVICE_START, ENTITY_SERVICE_SCHEMA,
|
||||
'async_start'
|
||||
)
|
||||
component.async_register_entity_service(
|
||||
SERVICE_PAUSE, VACUUM_SERVICE_SCHEMA,
|
||||
SERVICE_PAUSE, ENTITY_SERVICE_SCHEMA,
|
||||
'async_pause'
|
||||
)
|
||||
component.async_register_entity_service(
|
||||
SERVICE_RETURN_TO_BASE, VACUUM_SERVICE_SCHEMA,
|
||||
SERVICE_RETURN_TO_BASE, ENTITY_SERVICE_SCHEMA,
|
||||
'async_return_to_base'
|
||||
)
|
||||
component.async_register_entity_service(
|
||||
SERVICE_CLEAN_SPOT, VACUUM_SERVICE_SCHEMA,
|
||||
SERVICE_CLEAN_SPOT, ENTITY_SERVICE_SCHEMA,
|
||||
'async_clean_spot'
|
||||
)
|
||||
component.async_register_entity_service(
|
||||
SERVICE_LOCATE, VACUUM_SERVICE_SCHEMA,
|
||||
SERVICE_LOCATE, ENTITY_SERVICE_SCHEMA,
|
||||
'async_locate'
|
||||
)
|
||||
component.async_register_entity_service(
|
||||
SERVICE_STOP, VACUUM_SERVICE_SCHEMA,
|
||||
SERVICE_STOP, ENTITY_SERVICE_SCHEMA,
|
||||
'async_stop'
|
||||
)
|
||||
component.async_register_entity_service(
|
||||
|
@ -9,9 +9,8 @@ from homeassistant.components.vacuum import (
|
||||
ATTR_CLEANED_AREA, DOMAIN, PLATFORM_SCHEMA, SUPPORT_BATTERY,
|
||||
SUPPORT_CLEAN_SPOT, SUPPORT_FAN_SPEED, SUPPORT_LOCATE, SUPPORT_PAUSE,
|
||||
SUPPORT_RETURN_HOME, SUPPORT_SEND_COMMAND, SUPPORT_STOP,
|
||||
SUPPORT_STATE, SUPPORT_START, VACUUM_SERVICE_SCHEMA, StateVacuumDevice,
|
||||
STATE_CLEANING, STATE_DOCKED, STATE_PAUSED, STATE_IDLE, STATE_RETURNING,
|
||||
STATE_ERROR)
|
||||
SUPPORT_STATE, SUPPORT_START, StateVacuumDevice, STATE_CLEANING,
|
||||
STATE_DOCKED, STATE_PAUSED, STATE_IDLE, STATE_RETURNING, STATE_ERROR)
|
||||
from homeassistant.const import (
|
||||
ATTR_ENTITY_ID, CONF_HOST, CONF_NAME, CONF_TOKEN, STATE_OFF, STATE_ON)
|
||||
import homeassistant.helpers.config_validation as cv
|
||||
@ -60,6 +59,10 @@ ATTR_STATUS = 'status'
|
||||
ATTR_ZONE_ARRAY = 'zone'
|
||||
ATTR_ZONE_REPEATER = 'repeats'
|
||||
|
||||
VACUUM_SERVICE_SCHEMA = vol.Schema({
|
||||
vol.Optional(ATTR_ENTITY_ID): cv.comp_entity_ids,
|
||||
})
|
||||
|
||||
SERVICE_SCHEMA_REMOTE_CONTROL = VACUUM_SERVICE_SCHEMA.extend({
|
||||
vol.Optional(ATTR_RC_VELOCITY):
|
||||
vol.All(vol.Coerce(float), vol.Clamp(min=-0.29, max=0.29)),
|
||||
|
@ -3,7 +3,7 @@ import unittest
|
||||
|
||||
from homeassistant.components import vacuum
|
||||
from homeassistant.components.vacuum import (
|
||||
ATTR_BATTERY_LEVEL, ATTR_COMMAND, ATTR_ENTITY_ID, ATTR_FAN_SPEED,
|
||||
ATTR_BATTERY_LEVEL, ATTR_COMMAND, ATTR_FAN_SPEED,
|
||||
ATTR_FAN_SPEED_LIST, ATTR_PARAMS, ATTR_STATUS, DOMAIN,
|
||||
ENTITY_ID_ALL_VACUUMS,
|
||||
SERVICE_SEND_COMMAND, SERVICE_SET_FAN_SPEED,
|
||||
@ -13,7 +13,8 @@ from homeassistant.components.demo.vacuum import (
|
||||
DEMO_VACUUM_BASIC, DEMO_VACUUM_COMPLETE, DEMO_VACUUM_MINIMAL,
|
||||
DEMO_VACUUM_MOST, DEMO_VACUUM_NONE, DEMO_VACUUM_STATE, FAN_SPEEDS)
|
||||
from homeassistant.const import (
|
||||
ATTR_SUPPORTED_FEATURES, CONF_PLATFORM, STATE_OFF, STATE_ON)
|
||||
ATTR_ENTITY_ID, ATTR_SUPPORTED_FEATURES, CONF_PLATFORM, STATE_OFF,
|
||||
STATE_ON)
|
||||
from homeassistant.setup import setup_component
|
||||
|
||||
from tests.common import get_test_home_assistant, mock_service
|
||||
|
Loading…
x
Reference in New Issue
Block a user