Require arduino in webserver for better validation (#2941)

This commit is contained in:
Jesse Hills 2021-12-22 20:08:54 +13:00
parent db3b955b0f
commit ffd4280d6c
No known key found for this signature in database
GPG key ID: BEAAE804EFD8E83A

View file

@ -22,31 +22,38 @@ AUTO_LOAD = ["json", "web_server_base"]
web_server_ns = cg.esphome_ns.namespace("web_server") web_server_ns = cg.esphome_ns.namespace("web_server")
WebServer = web_server_ns.class_("WebServer", cg.Component, cg.Controller) WebServer = web_server_ns.class_("WebServer", cg.Component, cg.Controller)
CONFIG_SCHEMA = cv.Schema( CONFIG_SCHEMA = cv.All(
{ cv.Schema(
cv.GenerateID(): cv.declare_id(WebServer), {
cv.Optional(CONF_PORT, default=80): cv.port, cv.GenerateID(): cv.declare_id(WebServer),
cv.Optional( cv.Optional(CONF_PORT, default=80): cv.port,
CONF_CSS_URL, default="https://esphome.io/_static/webserver-v1.min.css" cv.Optional(
): cv.string, CONF_CSS_URL, default="https://esphome.io/_static/webserver-v1.min.css"
cv.Optional(CONF_CSS_INCLUDE): cv.file_, ): cv.string,
cv.Optional( cv.Optional(CONF_CSS_INCLUDE): cv.file_,
CONF_JS_URL, default="https://esphome.io/_static/webserver-v1.min.js" cv.Optional(
): cv.string, CONF_JS_URL, default="https://esphome.io/_static/webserver-v1.min.js"
cv.Optional(CONF_JS_INCLUDE): cv.file_, ): cv.string,
cv.Optional(CONF_AUTH): cv.Schema( cv.Optional(CONF_JS_INCLUDE): cv.file_,
{ cv.Optional(CONF_AUTH): cv.Schema(
cv.Required(CONF_USERNAME): cv.All(cv.string_strict, cv.Length(min=1)), {
cv.Required(CONF_PASSWORD): cv.All(cv.string_strict, cv.Length(min=1)), cv.Required(CONF_USERNAME): cv.All(
} cv.string_strict, cv.Length(min=1)
), ),
cv.GenerateID(CONF_WEB_SERVER_BASE_ID): cv.use_id( cv.Required(CONF_PASSWORD): cv.All(
web_server_base.WebServerBase cv.string_strict, cv.Length(min=1)
), ),
cv.Optional(CONF_INCLUDE_INTERNAL, default=False): cv.boolean, }
cv.Optional(CONF_OTA, default=True): cv.boolean, ),
} cv.GenerateID(CONF_WEB_SERVER_BASE_ID): cv.use_id(
).extend(cv.COMPONENT_SCHEMA) web_server_base.WebServerBase
),
cv.Optional(CONF_INCLUDE_INTERNAL, default=False): cv.boolean,
cv.Optional(CONF_OTA, default=True): cv.boolean,
},
).extend(cv.COMPONENT_SCHEMA),
cv.only_with_arduino,
)
@coroutine_with_priority(40.0) @coroutine_with_priority(40.0)