mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 13:17:32 +00:00
Fix services for Armcrest & Logi Circle (#49166)
This commit is contained in:
parent
0ca3186caf
commit
de569982a4
@ -10,7 +10,7 @@ import voluptuous as vol
|
||||
|
||||
from homeassistant.components.camera import SUPPORT_ON_OFF, SUPPORT_STREAM, Camera
|
||||
from homeassistant.components.ffmpeg import DATA_FFMPEG
|
||||
from homeassistant.const import CONF_NAME, STATE_OFF, STATE_ON
|
||||
from homeassistant.const import ATTR_ENTITY_ID, CONF_NAME, STATE_OFF, STATE_ON
|
||||
from homeassistant.helpers.aiohttp_client import (
|
||||
async_aiohttp_proxy_stream,
|
||||
async_aiohttp_proxy_web,
|
||||
@ -77,26 +77,29 @@ _CBW_AUTO = "auto"
|
||||
_CBW_BW = "bw"
|
||||
_CBW = [_CBW_COLOR, _CBW_AUTO, _CBW_BW]
|
||||
|
||||
_SRV_GOTO_SCHEMA = {
|
||||
vol.Required(_ATTR_PRESET): vol.All(vol.Coerce(int), vol.Range(min=1))
|
||||
}
|
||||
_SRV_CBW_SCHEMA = {vol.Required(_ATTR_COLOR_BW): vol.In(_CBW)}
|
||||
_SRV_PTZ_SCHEMA = {
|
||||
_SRV_SCHEMA = vol.Schema({vol.Optional(ATTR_ENTITY_ID): cv.comp_entity_ids})
|
||||
_SRV_GOTO_SCHEMA = _SRV_SCHEMA.extend(
|
||||
{vol.Required(_ATTR_PRESET): vol.All(vol.Coerce(int), vol.Range(min=1))}
|
||||
)
|
||||
_SRV_CBW_SCHEMA = _SRV_SCHEMA.extend({vol.Required(_ATTR_COLOR_BW): vol.In(_CBW)})
|
||||
_SRV_PTZ_SCHEMA = _SRV_SCHEMA.extend(
|
||||
{
|
||||
vol.Required(_ATTR_PTZ_MOV): vol.In(_MOV),
|
||||
vol.Optional(_ATTR_PTZ_TT, default=_DEFAULT_TT): cv.small_float,
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
CAMERA_SERVICES = {
|
||||
_SRV_EN_REC: ({}, "async_enable_recording", ()),
|
||||
_SRV_DS_REC: ({}, "async_disable_recording", ()),
|
||||
_SRV_EN_AUD: ({}, "async_enable_audio", ()),
|
||||
_SRV_DS_AUD: ({}, "async_disable_audio", ()),
|
||||
_SRV_EN_MOT_REC: ({}, "async_enable_motion_recording", ()),
|
||||
_SRV_DS_MOT_REC: ({}, "async_disable_motion_recording", ()),
|
||||
_SRV_EN_REC: (_SRV_SCHEMA, "async_enable_recording", ()),
|
||||
_SRV_DS_REC: (_SRV_SCHEMA, "async_disable_recording", ()),
|
||||
_SRV_EN_AUD: (_SRV_SCHEMA, "async_enable_audio", ()),
|
||||
_SRV_DS_AUD: (_SRV_SCHEMA, "async_disable_audio", ()),
|
||||
_SRV_EN_MOT_REC: (_SRV_SCHEMA, "async_enable_motion_recording", ()),
|
||||
_SRV_DS_MOT_REC: (_SRV_SCHEMA, "async_disable_motion_recording", ()),
|
||||
_SRV_GOTO: (_SRV_GOTO_SCHEMA, "async_goto_preset", (_ATTR_PRESET,)),
|
||||
_SRV_CBW: (_SRV_CBW_SCHEMA, "async_set_color_bw", (_ATTR_COLOR_BW,)),
|
||||
_SRV_TOUR_ON: ({}, "async_start_tour", ()),
|
||||
_SRV_TOUR_OFF: ({}, "async_stop_tour", ()),
|
||||
_SRV_TOUR_ON: (_SRV_SCHEMA, "async_start_tour", ()),
|
||||
_SRV_TOUR_OFF: (_SRV_SCHEMA, "async_stop_tour", ()),
|
||||
_SRV_PTZ_CTRL: (
|
||||
_SRV_PTZ_SCHEMA,
|
||||
"async_ptz_control",
|
||||
|
@ -10,6 +10,7 @@ import voluptuous as vol
|
||||
from homeassistant import config_entries
|
||||
from homeassistant.components.camera import ATTR_FILENAME
|
||||
from homeassistant.const import (
|
||||
ATTR_ENTITY_ID,
|
||||
ATTR_MODE,
|
||||
CONF_API_KEY,
|
||||
CONF_CLIENT_ID,
|
||||
@ -72,17 +73,28 @@ CONFIG_SCHEMA = vol.Schema(
|
||||
extra=vol.ALLOW_EXTRA,
|
||||
)
|
||||
|
||||
LOGI_CIRCLE_SERVICE_SET_CONFIG = {
|
||||
LOGI_CIRCLE_SERVICE_SET_CONFIG = vol.Schema(
|
||||
{
|
||||
vol.Optional(ATTR_ENTITY_ID): cv.comp_entity_ids,
|
||||
vol.Required(ATTR_MODE): vol.In([LED_MODE_KEY, RECORDING_MODE_KEY]),
|
||||
vol.Required(ATTR_VALUE): cv.boolean,
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
LOGI_CIRCLE_SERVICE_SNAPSHOT = {vol.Required(ATTR_FILENAME): cv.template}
|
||||
LOGI_CIRCLE_SERVICE_SNAPSHOT = vol.Schema(
|
||||
{
|
||||
vol.Optional(ATTR_ENTITY_ID): cv.comp_entity_ids,
|
||||
vol.Required(ATTR_FILENAME): cv.template,
|
||||
}
|
||||
)
|
||||
|
||||
LOGI_CIRCLE_SERVICE_RECORD = {
|
||||
LOGI_CIRCLE_SERVICE_RECORD = vol.Schema(
|
||||
{
|
||||
vol.Optional(ATTR_ENTITY_ID): cv.comp_entity_ids,
|
||||
vol.Required(ATTR_FILENAME): cv.template,
|
||||
vol.Required(ATTR_DURATION): cv.positive_int,
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
async def async_setup(hass, config):
|
||||
|
Loading…
x
Reference in New Issue
Block a user