Minor refactor of template lock (#61858)

pull/62091/head
Erik Montnemery 2021-12-16 16:12:24 +01:00 committed by GitHub
parent 1b66f3208d
commit 9bf7e25e6c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 16 additions and 32 deletions

View File

@ -22,8 +22,12 @@ from homeassistant.exceptions import TemplateError
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.script import Script
from .const import CONF_AVAILABILITY_TEMPLATE, DOMAIN
from .template_entity import TemplateEntity
from .const import DOMAIN
from .template_entity import (
TEMPLATE_ENTITY_AVAILABILITY_SCHEMA_LEGACY,
TemplateEntity,
rewrite_common_legacy_to_modern_conf,
)
CONF_LOCK = "lock"
CONF_UNLOCK = "unlock"
@ -37,31 +41,16 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
vol.Required(CONF_LOCK): cv.SCRIPT_SCHEMA,
vol.Required(CONF_UNLOCK): cv.SCRIPT_SCHEMA,
vol.Required(CONF_VALUE_TEMPLATE): cv.template,
vol.Optional(CONF_AVAILABILITY_TEMPLATE): cv.template,
vol.Optional(CONF_OPTIMISTIC, default=DEFAULT_OPTIMISTIC): cv.boolean,
vol.Optional(CONF_UNIQUE_ID): cv.string,
}
)
).extend(TEMPLATE_ENTITY_AVAILABILITY_SCHEMA_LEGACY.schema)
async def _async_create_entities(hass, config):
"""Create the Template lock."""
device = config.get(CONF_NAME)
value_template = config.get(CONF_VALUE_TEMPLATE)
availability_template = config.get(CONF_AVAILABILITY_TEMPLATE)
return [
TemplateLock(
hass,
device,
value_template,
availability_template,
config.get(CONF_LOCK),
config.get(CONF_UNLOCK),
config.get(CONF_OPTIMISTIC),
config.get(CONF_UNIQUE_ID),
)
]
config = rewrite_common_legacy_to_modern_conf(config)
return [TemplateLock(hass, config, config.get(CONF_UNIQUE_ID))]
async def async_setup_platform(hass, config, async_add_entities, discovery_info=None):
@ -75,22 +64,17 @@ class TemplateLock(TemplateEntity, LockEntity):
def __init__(
self,
hass,
name,
value_template,
availability_template,
command_lock,
command_unlock,
optimistic,
config,
unique_id,
):
"""Initialize the lock."""
super().__init__(availability_template=availability_template)
super().__init__(config=config)
self._state = None
self._name = name
self._state_template = value_template
self._command_lock = Script(hass, command_lock, name, DOMAIN)
self._command_unlock = Script(hass, command_unlock, name, DOMAIN)
self._optimistic = optimistic
self._name = name = config.get(CONF_NAME)
self._state_template = config.get(CONF_VALUE_TEMPLATE)
self._command_lock = Script(hass, config[CONF_LOCK], name, DOMAIN)
self._command_unlock = Script(hass, config[CONF_UNLOCK], name, DOMAIN)
self._optimistic = config.get(CONF_OPTIMISTIC)
self._unique_id = unique_id
@property