mirror of
https://github.com/esphome/esphome.git
synced 2026-09-02 02:56:01 +00:00
Resolved conflict in ethernet/__init__.py: - Kept on_connect/on_disconnect automation code from upstream - Removed Arduino WiFi library addition (handled by selective compilation now)
54 lines
1.8 KiB
Python
54 lines
1.8 KiB
Python
import esphome.codegen as cg
|
|
import esphome.config_validation as cv
|
|
from esphome.const import CONF_ID
|
|
from esphome.core import CORE, coroutine_with_priority
|
|
from esphome.coroutine import CoroPriority
|
|
|
|
CODEOWNERS = ["@esphome/core"]
|
|
DEPENDENCIES = ["network"]
|
|
|
|
|
|
def AUTO_LOAD():
|
|
if CORE.is_esp32:
|
|
return ["web_server_idf"]
|
|
if CORE.using_arduino:
|
|
return ["async_tcp"]
|
|
return []
|
|
|
|
|
|
web_server_base_ns = cg.esphome_ns.namespace("web_server_base")
|
|
WebServerBase = web_server_base_ns.class_("WebServerBase", cg.Component)
|
|
|
|
CONF_WEB_SERVER_BASE_ID = "web_server_base_id"
|
|
CONFIG_SCHEMA = cv.Schema(
|
|
{
|
|
cv.GenerateID(): cv.declare_id(WebServerBase),
|
|
}
|
|
)
|
|
|
|
|
|
@coroutine_with_priority(CoroPriority.WEB_SERVER_BASE)
|
|
async def to_code(config):
|
|
var = cg.new_Pvariable(config[CONF_ID])
|
|
await cg.register_component(var, config)
|
|
cg.add(cg.RawExpression(f"{web_server_base_ns}::global_web_server_base = {var}"))
|
|
|
|
if CORE.is_esp32:
|
|
# Count for StaticVector in web_server_idf - matches headers added in init()
|
|
cg.add_define("WEB_SERVER_DEFAULT_HEADERS_COUNT", 1)
|
|
return
|
|
|
|
# ESP32 uses IDF web server (early return above), so this is for other Arduino platforms
|
|
if CORE.using_arduino:
|
|
if CORE.is_esp8266:
|
|
cg.add_library("ESP8266WiFi", None)
|
|
if CORE.is_libretiny:
|
|
CORE.add_platformio_option("lib_ignore", ["ESPAsyncTCP", "RPAsyncTCP"])
|
|
if CORE.is_rp2040:
|
|
# Ignore bundled AsyncTCP libraries - we use RPAsyncTCP from async_tcp component
|
|
CORE.add_platformio_option(
|
|
"lib_ignore", ["ESPAsyncTCP", "AsyncTCP", "AsyncTCP_RP2040W"]
|
|
)
|
|
# https://github.com/ESP32Async/ESPAsyncWebServer/blob/main/library.json
|
|
cg.add_library("ESP32Async/ESPAsyncWebServer", "3.9.6")
|