Fix services for Armcrest & Logi Circle (#49166)

This commit is contained in:
Franck Nijhof 2021-04-13 16:32:39 +02:00 committed by GitHub
parent 0ca3186caf
commit de569982a4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 41 additions and 26 deletions

View File

@ -10,7 +10,7 @@ import voluptuous as vol
from homeassistant.components.camera import SUPPORT_ON_OFF, SUPPORT_STREAM, Camera from homeassistant.components.camera import SUPPORT_ON_OFF, SUPPORT_STREAM, Camera
from homeassistant.components.ffmpeg import DATA_FFMPEG 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 ( from homeassistant.helpers.aiohttp_client import (
async_aiohttp_proxy_stream, async_aiohttp_proxy_stream,
async_aiohttp_proxy_web, async_aiohttp_proxy_web,
@ -77,26 +77,29 @@ _CBW_AUTO = "auto"
_CBW_BW = "bw" _CBW_BW = "bw"
_CBW = [_CBW_COLOR, _CBW_AUTO, _CBW_BW] _CBW = [_CBW_COLOR, _CBW_AUTO, _CBW_BW]
_SRV_GOTO_SCHEMA = { _SRV_SCHEMA = vol.Schema({vol.Optional(ATTR_ENTITY_ID): cv.comp_entity_ids})
vol.Required(_ATTR_PRESET): vol.All(vol.Coerce(int), vol.Range(min=1)) _SRV_GOTO_SCHEMA = _SRV_SCHEMA.extend(
} {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_CBW_SCHEMA = _SRV_SCHEMA.extend({vol.Required(_ATTR_COLOR_BW): vol.In(_CBW)})
vol.Required(_ATTR_PTZ_MOV): vol.In(_MOV), _SRV_PTZ_SCHEMA = _SRV_SCHEMA.extend(
vol.Optional(_ATTR_PTZ_TT, default=_DEFAULT_TT): cv.small_float, {
} vol.Required(_ATTR_PTZ_MOV): vol.In(_MOV),
vol.Optional(_ATTR_PTZ_TT, default=_DEFAULT_TT): cv.small_float,
}
)
CAMERA_SERVICES = { CAMERA_SERVICES = {
_SRV_EN_REC: ({}, "async_enable_recording", ()), _SRV_EN_REC: (_SRV_SCHEMA, "async_enable_recording", ()),
_SRV_DS_REC: ({}, "async_disable_recording", ()), _SRV_DS_REC: (_SRV_SCHEMA, "async_disable_recording", ()),
_SRV_EN_AUD: ({}, "async_enable_audio", ()), _SRV_EN_AUD: (_SRV_SCHEMA, "async_enable_audio", ()),
_SRV_DS_AUD: ({}, "async_disable_audio", ()), _SRV_DS_AUD: (_SRV_SCHEMA, "async_disable_audio", ()),
_SRV_EN_MOT_REC: ({}, "async_enable_motion_recording", ()), _SRV_EN_MOT_REC: (_SRV_SCHEMA, "async_enable_motion_recording", ()),
_SRV_DS_MOT_REC: ({}, "async_disable_motion_recording", ()), _SRV_DS_MOT_REC: (_SRV_SCHEMA, "async_disable_motion_recording", ()),
_SRV_GOTO: (_SRV_GOTO_SCHEMA, "async_goto_preset", (_ATTR_PRESET,)), _SRV_GOTO: (_SRV_GOTO_SCHEMA, "async_goto_preset", (_ATTR_PRESET,)),
_SRV_CBW: (_SRV_CBW_SCHEMA, "async_set_color_bw", (_ATTR_COLOR_BW,)), _SRV_CBW: (_SRV_CBW_SCHEMA, "async_set_color_bw", (_ATTR_COLOR_BW,)),
_SRV_TOUR_ON: ({}, "async_start_tour", ()), _SRV_TOUR_ON: (_SRV_SCHEMA, "async_start_tour", ()),
_SRV_TOUR_OFF: ({}, "async_stop_tour", ()), _SRV_TOUR_OFF: (_SRV_SCHEMA, "async_stop_tour", ()),
_SRV_PTZ_CTRL: ( _SRV_PTZ_CTRL: (
_SRV_PTZ_SCHEMA, _SRV_PTZ_SCHEMA,
"async_ptz_control", "async_ptz_control",

View File

@ -10,6 +10,7 @@ import voluptuous as vol
from homeassistant import config_entries from homeassistant import config_entries
from homeassistant.components.camera import ATTR_FILENAME from homeassistant.components.camera import ATTR_FILENAME
from homeassistant.const import ( from homeassistant.const import (
ATTR_ENTITY_ID,
ATTR_MODE, ATTR_MODE,
CONF_API_KEY, CONF_API_KEY,
CONF_CLIENT_ID, CONF_CLIENT_ID,
@ -72,17 +73,28 @@ CONFIG_SCHEMA = vol.Schema(
extra=vol.ALLOW_EXTRA, extra=vol.ALLOW_EXTRA,
) )
LOGI_CIRCLE_SERVICE_SET_CONFIG = { LOGI_CIRCLE_SERVICE_SET_CONFIG = vol.Schema(
vol.Required(ATTR_MODE): vol.In([LED_MODE_KEY, RECORDING_MODE_KEY]), {
vol.Required(ATTR_VALUE): cv.boolean, 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.Required(ATTR_FILENAME): cv.template, {
vol.Required(ATTR_DURATION): cv.positive_int, 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): async def async_setup(hass, config):