mirror of
https://github.com/esphome/esphome.git
synced 2025-07-29 14:46:40 +00:00
[update] Move to use `update_schema(..)
instead of
UPDATE_SCHEMA
` (#8726)
This commit is contained in:
parent
b3400a1308
commit
8a90ce882a
@ -16,14 +16,17 @@ HttpRequestUpdate = http_request_ns.class_(
|
|||||||
|
|
||||||
CONF_OTA_ID = "ota_id"
|
CONF_OTA_ID = "ota_id"
|
||||||
|
|
||||||
CONFIG_SCHEMA = update.UPDATE_SCHEMA.extend(
|
CONFIG_SCHEMA = (
|
||||||
{
|
update.update_schema(HttpRequestUpdate)
|
||||||
cv.GenerateID(): cv.declare_id(HttpRequestUpdate),
|
.extend(
|
||||||
cv.GenerateID(CONF_OTA_ID): cv.use_id(OtaHttpRequestComponent),
|
{
|
||||||
cv.GenerateID(CONF_HTTP_REQUEST_ID): cv.use_id(HttpRequestComponent),
|
cv.GenerateID(CONF_OTA_ID): cv.use_id(OtaHttpRequestComponent),
|
||||||
cv.Required(CONF_SOURCE): cv.url,
|
cv.GenerateID(CONF_HTTP_REQUEST_ID): cv.use_id(HttpRequestComponent),
|
||||||
}
|
cv.Required(CONF_SOURCE): cv.url,
|
||||||
).extend(cv.polling_component_schema("6h"))
|
}
|
||||||
|
)
|
||||||
|
.extend(cv.polling_component_schema("6h"))
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
async def to_code(config):
|
async def to_code(config):
|
||||||
|
@ -6,6 +6,7 @@ from esphome.const import (
|
|||||||
CONF_DEVICE_CLASS,
|
CONF_DEVICE_CLASS,
|
||||||
CONF_ENTITY_CATEGORY,
|
CONF_ENTITY_CATEGORY,
|
||||||
CONF_FORCE_UPDATE,
|
CONF_FORCE_UPDATE,
|
||||||
|
CONF_ICON,
|
||||||
CONF_ID,
|
CONF_ID,
|
||||||
CONF_MQTT_ID,
|
CONF_MQTT_ID,
|
||||||
CONF_WEB_SERVER,
|
CONF_WEB_SERVER,
|
||||||
@ -14,6 +15,7 @@ from esphome.const import (
|
|||||||
ENTITY_CATEGORY_CONFIG,
|
ENTITY_CATEGORY_CONFIG,
|
||||||
)
|
)
|
||||||
from esphome.core import CORE, coroutine_with_priority
|
from esphome.core import CORE, coroutine_with_priority
|
||||||
|
from esphome.cpp_generator import MockObjClass
|
||||||
from esphome.cpp_helpers import setup_entity
|
from esphome.cpp_helpers import setup_entity
|
||||||
|
|
||||||
CODEOWNERS = ["@jesserockz"]
|
CODEOWNERS = ["@jesserockz"]
|
||||||
@ -38,7 +40,7 @@ DEVICE_CLASSES = [
|
|||||||
|
|
||||||
CONF_ON_UPDATE_AVAILABLE = "on_update_available"
|
CONF_ON_UPDATE_AVAILABLE = "on_update_available"
|
||||||
|
|
||||||
UPDATE_SCHEMA = (
|
_UPDATE_SCHEMA = (
|
||||||
cv.ENTITY_BASE_SCHEMA.extend(web_server.WEBSERVER_SORTING_SCHEMA)
|
cv.ENTITY_BASE_SCHEMA.extend(web_server.WEBSERVER_SORTING_SCHEMA)
|
||||||
.extend(cv.MQTT_COMMAND_COMPONENT_SCHEMA)
|
.extend(cv.MQTT_COMMAND_COMPONENT_SCHEMA)
|
||||||
.extend(
|
.extend(
|
||||||
@ -56,6 +58,29 @@ UPDATE_SCHEMA = (
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def update_schema(
|
||||||
|
class_: MockObjClass = cv.UNDEFINED,
|
||||||
|
*,
|
||||||
|
icon: str = cv.UNDEFINED,
|
||||||
|
device_class: str = cv.UNDEFINED,
|
||||||
|
entity_category: str = cv.UNDEFINED,
|
||||||
|
) -> cv.Schema:
|
||||||
|
schema = {}
|
||||||
|
|
||||||
|
if class_ is not cv.UNDEFINED:
|
||||||
|
schema[cv.GenerateID()] = cv.declare_id(class_)
|
||||||
|
|
||||||
|
for key, default, validator in [
|
||||||
|
(CONF_ICON, icon, cv.icon),
|
||||||
|
(CONF_DEVICE_CLASS, device_class, cv.one_of(*DEVICE_CLASSES, lower=True)),
|
||||||
|
(CONF_ENTITY_CATEGORY, entity_category, cv.entity_category),
|
||||||
|
]:
|
||||||
|
if default is not cv.UNDEFINED:
|
||||||
|
schema[cv.Optional(key, default=default)] = validator
|
||||||
|
|
||||||
|
return _UPDATE_SCHEMA.extend(schema)
|
||||||
|
|
||||||
|
|
||||||
async def setup_update_core_(var, config):
|
async def setup_update_core_(var, config):
|
||||||
await setup_entity(var, config)
|
await setup_entity(var, config)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user