Web 服务器组件
web_server 组件在节点上创建一个简单的 Web 服务器,可以通过任何浏览器和简单的 REST API 访问。请注意,启用此组件将占用大量内存,可能会降低稳定性,尤其是在 ESP8266 上。
要在浏览器中导航到 Web 服务器,使用节点的 IP 地址或通过 mDNS 使用 <node_name>.local/(注意末尾的正斜杠)。
# 示例配置项web_server: port: 80-
port (Optional, int): Web 服务器应该打开其套接字的端口。
-
css_url (Optional, url): 应该用于 CSS 样式表的 URL。默认为 https://oi.esphome.io/v1/webserver-v1.min.css(更新将转到
v2、v3等)。可以设置为空字符串。 -
css_include (Optional, 本地文件): 要包含在 Web 服务器索引页面中的本地文件路径。 此文件的内容将作为
/0.css提供服务,并由内部 Web 服务器用作 CSS 样式表。 当构建没有互联网访问的设备时很有用,您想使用内置 AP 和 Web 服务器。 -
js_url (Optional, url): 应该用于 JS 脚本的 URL。默认为 https://oi.esphome.io/v1/webserver-v1.min.js。可以设置为空字符串。
-
js_include (Optional, 本地文件): 要包含在 Web 服务器索引页面中的本地文件路径。 此文件的内容将作为
/0.js提供服务,并由内部 Web 服务器用作 JS 脚本。 当构建没有互联网访问的设备时很有用,您想使用内置 AP 和 Web 服务器。 -
auth (Optional): 启用带有用户名和密码的简单 Digest 认证。
- username (Required, string): 用于认证的用户名。
- password (Required, string): 用于认证检查的密码。
-
include_internal (Optional, boolean):
internal实体是否应该显示在 Web 界面上。默认为false。 -
enable_private_network_access (Optional, boolean): 启用对 私有网络访问 和 私有网络访问权限提示 的支持。 默认为
true。 -
log (Optional, boolean): 打开或关闭 Web 服务器内的日志功能。默认为
true。 -
ota (Optional, boolean): 显式禁用通过 Web 服务器界面的 OTA 更新。只接受
false。 此选项通常在您同时配置了web_server和captive_portal时使用,并且您希望 OTA 更新仅通过强制门户可用。由于captive_portal自动加载 Web 服务器 OTA 平台,将此设置为false可以防止通过常规 Web 界面进行 OTA 访问,同时 保持强制门户访问。要为 Web 服务器启用 OTA,请改用web_serverOTA 平台。 -
id (Optional, ID): 手动指定用于代码生成的 ID。
-
local (Optional, boolean): 在本地包含支持性 javascript,允许在没有互联网访问的情况下工作。默认为
false。 -
compression (Optional, string): 当启用
local时用于嵌入 Web 资源的压缩算法。 选项为gzip或br(Brotli)。Brotli 提供更小的嵌入 Web 资源(比 gzip 小约 10%),但某些 浏览器仅支持通过 HTTPS 连接的 Brotli。由于 ESPHome 设备通常通过 HTTP 提供,建议使用 gzip 以获得最大兼容性。默认为gzip。 -
version (Optional, string):
1、2或3。版本 1 显示为表格。版本 2 使用 Web 组件 并具有更多功能。版本 3 使用 HA 样式。默认为2。 -
sorting_groups (Optional, list): 仅在
version: 3上可用。用于分组实体的组 ID 和名称列表。请参阅 Web 服务器实体分组。- id (Required, ID): 手动指定用于组的 ID。
- name (Required, string): 表示组名称的字符串,显示为组的标题
- sorting_weight (Optional, float): 表示组权重的浮点数。具有较小
sorting_weight的组将首先显示。默认为50
为了节省闪存大小,用于在根页面上显示简单用户界面的 CSS 和 JS 文件在外部托管在 oi.esphome.io。如果您想使用自己的服务,请在配置中使用 css_url 和 js_url 选项。
NOTE
通过 Web 界面进行 OTA 更新
ota 选项已从 web_server 组件移动到其自己的 OTA 平台。
要通过 Web 界面启用 OTA 更新,请使用新的 web_server OTA 平台:
# 通过 Web 界面启用 OTA 更新ota: - platform: web_server要显式禁用 Web 服务器的 OTA 更新,同时保持强制门户启用(当配置强制门户时很有用,因为它自动启用 Web 服务器 OTA):
# 仅为 web_server 禁用 OTA 更新# 强制门户仍将具有 OTA 访问权限,因为它自动加载 web_server OTA 平台web_server: ota: false
captive_portal: # 此组件自动启用 OTA有关更多信息,请参阅 Web 服务器。
启用 HTTP 认证:
# 示例配置项web_server: port: 80 auth: username: !secret web_server_username password: !secret web_server_passwordIMPORTANT
使用 Web 服务器时始终启用认证。有关建议,请参阅 安全最佳实践 指南。
使用版本 1 用户界面:
# 示例配置项web_server: port: 80 version: 1客户端不需要互联网/内网(所有资源都内嵌、压缩并从闪存提供服务):
# 示例配置项web_server: local: true在使用强制门户时禁用 Web 服务器的 OTA 更新(常见安全设置):
# 示例配置项web_server: port: 80 ota: false # 通过常规 Web 界面禁用 OTA
# 强制门户自动启用 web_server OTA 平台# OTA 仅在强制门户活动时可访问captive_portal:以下假设文件副本具有本地路径 - 这取决于配置。
示例 web_server 版本 1 配置,CSS 和 JS 从 esphome-docs 包含。
CSS 和 JS URL 设置为空值,因此此设备不需要互联网访问即可显示其 Web 界面。
web_server: port: 80 version: 1 css_include: "../../../esphome-docs/_static/webserver-v1.min.css" css_url: "" js_include: "../../../esphome-docs/_static/webserver-v1.min.js" js_url: ""示例 web_server 版本 2 配置,JS 从本地文件包含。
CSS 和 JS URL 设置为空值,因此此设备不需要互联网访问即可显示其 Web 界面。
V2 将 css 嵌入在 js 文件中,因此不是必需的,但您可以包含自己的 CSS。
# 示例配置项 v2web_server: js_include: "./v2/www.js" js_url: "" version: 2将 https://oi.esphome.io/v2/www.js 复制到您的 yaml 文件夹中的 V2 文件夹。
版本 3 功能
Section titled “版本 3 功能”版本 3 支持实体排序。
您可以在每个实体上设置 sorting_weight。
较小的数字将首先显示,默认为 50。
我的传感器 2 显示在 我的传感器 1 之前
示例配置:
sensor: - platform: template name: "我的传感器 1" web_server: sorting_weight: 10 - platform: template name: "我的传感器 2" web_server: sorting_weight: -1web_server 版本 3 允许在自定义组中对实体进行分组。
可以通过提供 sorting_weight 对组进行排序。具有较小 sorting_weight 的组将首先显示。
如果您没有在组件上提供 web_server_sorting_group,将使用 entity_category 作为组。
示例配置:
web_server: version: 3 sorting_groups: - id: sorting_group_time_settings name: "时间设置" sorting_weight: 10 - id: sorting_group_number_settings name: "数字设置" sorting_weight: 20
datetime: - platform: template ... web_server: sorting_group_id: sorting_group_time_settings
number: - platform: template ... web_server: sorting_group_id: sorting_group_number_settings滑块模式的数字
Section titled “滑块模式的数字”
您可以通过移动滑块来更改值。 如果您想输入精确的数字,可以点击并按住当前值。将出现一个弹出输入框,您可以在其中输入数字并通过按回车键确认您的输入。
展开控件和日志
Section titled “展开控件和日志”
通过双击任何组标题,您可以将控件展开以填满整个屏幕。 您可以对日志执行相同操作。
传感器值图表
Section titled “传感器值图表”
通过点击任何传感器,它将展开一个显示该传感器历史值的图表。