常见问题
我应该在项目中使用哪种 ESP?
Section titled “我应该在项目中使用哪种 ESP?”我们一直被问到这个问题。与所有工程问题一样,“视情况而定”。ESP32 是大多数新开发发生的主要平台。根据 ESPHome 内硬件支持的当前状态,以下是我们建议:
-
ESP32(原版,非变体)
- 支持最好/最成熟。
- 包含一组出色的内置硬件外设,因此功能非常强大且非常灵活。
- 有线以太网连接的最佳选择,因为它内置了以太网 MAC,可直接连接到 PHY 芯片。其他变体需要基于 SPI 的以太网控制器,增加了延迟。
-
ESP32-S3
- 原版 ESP32 的更新版本,硬件外设略有修改。
- 具有内置 USB 外设/接口(而不是依赖外部 USB 转串行芯片)。
- 具有指令集扩展,使其更适合需要某种形式机器学习的应用程序(例如 Micro Wake Word)。
- 如果您需要原始计算能力,这是最佳选择,具有更好的整体性能和更低的延迟。
-
ESP32-C3
- 通常旨在(根据 Espressif)取代著名的 ESP8266。
- 更简单项目的好选择:单核 RISC-V,GPIO 引脚较少,但比双核 ESP32(-Sx) 变体成本更低、功耗更低。
-
ESP32-C6
- 与 ESP32-C3 类似,具有额外的连接选项,包括 Thread(通过 OpenThread)。
- 新项目的好选择。
不推荐用于新项目
Section titled “不推荐用于新项目”-
ESP8266
对于新项目,我们推荐 ESP32-C3,价格相似。与 ESP8266 相比,所有 ESP32 变体具有:
- 大约 5 倍的 RAM。某些组件(如大型显示器和某些传感器)可能在 ESP8266 上运行不佳。
- 显著更多的闪存。大多数 ESP8266 开发板有 1-2 MB,而大多数 ESP32 变体有 4 MB 或更多。
- 更多 GPIO 引脚和更好的硬件外设集。
ESP8266 不符合 Made for ESPHome 的要求。
原版 NodeMCU、D1-Mini 和 ESP-01 是使用 ESP8266 的开发板示例。请注意,这些开发板有引脚兼容版本可用,使用更现代的 ESP32 变体。
也就是说,现有的 ESP8266 设备运行良好,并将继续支持多年。 最近的内存优化显著改善了 ESP8266 上的可用堆,使以前不可靠的设备现在变得稳定。如果您的 ESP8266 设备正在工作,则无需更换。
LibreTiny (BK72xx, RTL87xx, LN882x)
Section titled “LibreTiny (BK72xx, RTL87xx, LN882x)”如果您有一个带有 Beken、Realtek 或 Lightning Semi 芯片的现成智能家居设备,LibreTiny 使在其上运行 ESPHome 成为可能。这些芯片通常不是直接购买的。相反,用户刷写包含它们的现有设备。
LibreTiny 支持已显著成熟,这些设备通常运行良好。然而,LibreTiny 不如 ESP8266 或 ESP32 支持成熟。
其他微控制器
Section titled “其他微控制器”对 ESP32-H2、RP2040 和其他较新芯片的支持不太成熟,因此您更有可能遇到这些问题。我们推荐上面列出的芯片以获得最佳 ESPHome 体验。
随着较新微控制器支持的成熟,我们将在此更新我们的建议。
如何将 ESPHome 安装到我的设备上?
Section titled “如何将 ESPHome 安装到我的设备上?”您可以直接使用 ESPHome Device Builder;将设备配置编辑到您满意的程度后,点击 “INSTALL” 并按照提示操作。请注意,第一次将 ESPHome 安装到(新)设备上时,您需要使用(USB)线缆连接它;此安装方法需要支持 WebSerial 的浏览器,如 Google Chrome 或 Microsoft Edge。
如果您喜欢更手动的方式:
-
您需要获取要安装的固件文件:
-
使用 ESPHome CLI
构建完成后,文件位于
<CONFIG_DIR>/<NODE_NAME>/.pioenvs/<NODE_NAME>/firmware.bin目录中。 -
使用 ESPHome Dashboard
- 点击设备的三点菜单
- 选择 “Install”
- 选择 “Manual download”
-
-
在某些开发板上,您可能需要强制微控制器进入其编程模式。这在大多数现代开发板/设备上通常不需要,但如果您遇到困难,值得一试。
-
最后,要安装固件文件,您可以使用:
-
ESPHome Web,我们的基于 web 的安装程序。这是最简单的方法,但需要支持 WebSerial 的浏览器,如 Google Chrome 或 Microsoft Edge。
-
将开发板连接到计算机,确保它被检测为串行端口并点击 Connect。
-
如果提示,在出现的弹窗框中允许您的浏览器请求权限。
-
选择与您的开发板关联的串行设备
-
点击 Install 并浏览/选择您之前下载的二进制文件(如上所述)。
请注意,文件在本地处理,不会上传到任何云服务。
-
-
esptool来自 GitHub 存储库。它可能作为您的操作系统的包可用,或者您可以尝试使用pip install esptool安装(如果是 Linux)。
-
什么是 esptool?
Section titled “什么是 esptool?”esptool 是一个命令行/终端应用程序,可用于在 Espressif 微控制器上执行各种任务。它不是最友好的方法,但相当强大,如果您遇到困难可能会有用。
NOTE
在使用 esptool 之前,请确保您知道您的开发板/串行适配器连接到哪个串行端口!
-
在 Linux 中,您可以在将设备插入 USB 端口后使用
dmesg命令查看(新)串行端口的名称。 -
在 Windows 中,查看设备管理器,看看插入时是否出现新串行端口,并记下(新)端口的 COM 编号。
这将擦除您的微控制器闪存 — 不会保留任何内容(设置、数据等)!
esptool --port /dev/ttyUSB0 erase_flash这将把您的二进制文件(ESPHome)安装(“刷写”)到您的微控制器上。
esptool --port /dev/ttyUSB0 write_flash 0x0 your_node_firmware.bin我无法通过 USB 安装
Section titled “我无法通过 USB 安装”这可能有许多原因。
-
您没有使用 USB 数据线。为了降低成本,许多 USB 线缆设计为仅用于电池充电,它们无法建立与您的开发板通信所需的数据连接。
-
ESPHome 依赖于您的计算机操作系统来使编程工具(例如
esptool.py)能够与您的微控制器开发板通信;您可能需要安装适当的驱动程序。 -
如果您尝试从 Docker 容器内将 ESPHome 安装到设备上,请确保使用
--device=/dev/ttyUSB0将设备挂载到容器中。
esptool 故障排除
Section titled “esptool 故障排除”如果您只看到屏幕上的 Connecting....____.... 并且安装(“刷写”)失败:
-
验证设备的端口名称是否已更改;如果您断开连接后重新连接太快,可能会发生这种情况(例如,它可能从
/dev/ttyUSB0变为/dev/ttyUSB1)。 -
如果您使用外部 USB 转串行适配器,请确认导线连接正确。适配器的接收 (RX) 线应连接到开发板的发送 (TX) 线(反之亦然)。
-
某些设备可能需要您至少在刷写开始之前保持
GPIO0和GND连接。 -
某些设备可能需要您重新上电以在擦除闪存后重新启动编程模式;它们不会自动重置。
-
最后但同样重要的是,这可能是您的微控制器有缺陷、损坏或无法编程的迹象。:(
如果您处于嘈杂的电气/RF 环境中或使用异常长的线缆/导线,安装可能在传输过程中失败。不用担心 — 只需重试,也许使用较低的波特率以进行更安全的传输:
esptool.py --port /dev/ttyUSB0 --baud 115200 write_flash 0x0 your_node_firmware.bin如果您仍然无法使其工作,您可能需要重新访问上面的我无法通过 USB 安装。
使用 ESPHome 的技巧
Section titled “使用 ESPHome 的技巧”-
ESPHome 支持(大多数)Home Assistant 的 YAML 配置指令,如
!include和!secret。 这允许您将机密(例如 WiFi 密码和 API 密钥)存储在名为secrets.yaml的文件中,只要此文件与您的 ESPHome 配置文件在同一目录中。我们增强了 ESPHome 的
!include指令,使其接受可在包含文件中替换的变量列表。例如:
binary_sensor: - platform: gpio id: button1 pin: GPIOXX on_multi_click: !include { file: on-multi-click.yaml, vars: { id: 1 } } # 内联语法 - platform: gpio id: button2 pin: GPIOXX on_multi_click: !include # 多行语法 file: on-multi-click.yaml vars: id: 2on-multi-click.yaml:
- timing: !include click-single.yaml then: - mqtt.publish: topic: ${device_name}/button${id}/status payload: single - timing: !include click-double.yaml then: - mqtt.publish: topic: ${device_name}/button${id}/status payload: double-
您可以使用替换基于上面的示例构建并减少配置文件中的重复。
-
如果您想查看 ESPHome 如何解释您的配置,请运行:
esphome config livingroom.yaml- 要在不上传的情况下查看 ESPHome 节点的日志,请运行:
esphome logs livingroom.yaml-
您始终可以在
<NODE_NAME>/src/目录中找到 ESPHome 生成的源代码。 -
您可以在以下位置查看完整的命令行界面选项列表:CLI
帮助!有些东西不工作
Section titled “帮助!有些东西不工作”这不好。以下是一些解决某些问题的步骤:
- 如果您遇到 Wi-Fi 问题:请参阅我的节点不断随机重新连接。
- 在您的 ESPHome 设备的
logger:部分中启用详细日志。 - 如果您的设备崩溃:请参阅故障排除指南了解如何获取回溯。
- 仍然看到错误? 检查 ESPHome issue tracker 中是否有已知问题。如果没有,您可以在那里创建新 issue 描述您的问题。我们会尽快查看。谢谢!
如何报告问题?
Section titled “如何报告问题?”ESPHome 是一个大项目,许多方面都在普遍使用且已知工作良好。也就是说,有些部分使用较少,因此测试较少。我们尽力测试尽可能多的内容,但我们根本没有 ESPHome 支持/实现的每一件硬件。我们严重依赖社区和贡献者完成的测试。当我们进行更改时,某处可能会出现问题。问题报告是我们跟踪并(希望/最终)修复问题的好方法。
提交问题时,尽可能描述详细很重要 — 但要避免过多无关信息。如果您希望您遇到的问题尽快修复:
-
只写 “X 不工作” 或 “X 有 bug” 是没有帮助的!!! 说真的,仅凭这些信息您期望得到什么帮助?
-
提供触发问题的代码/配置片段;我们可能想尝试复现它。请阅读如何创建最小、完整和可验证的示例。
-
如果是硬件通信问题(例如 I²C 或 SPI 设备),尝试将日志级别设置为
VERY_VERBOSE,因为它可能提供更好的洞察。 -
请描述您已经尝试过的故障排除步骤,这也可能帮助我们追踪问题。
您可以在 GitHub 上找到我们的 issue tracker。
如何更新到最新版本?
Section titled “如何更新到最新版本?”在 Home Assistant 中,当有可用更新时会显示更新通知(与所有插件一样)。
如果您独立于 Home Assistant 运行 Docker 容器,请运行:
pip3 install -U esphome# 从 docker:docker pull ghcr.io/esphome/esphome:stable如何更新到最新的 beta 版本?
Section titled “如何更新到最新的 beta 版本?”ESPHome 有一个 beta 发布周期,以便在更改部署到稳定通道之前轻松测试新版本。您可以通过安装 beta 来帮助测试 ESPHome(并使用新功能):
-
对于 Home Assistant 监督安装,在 Add-on Store 中搜索 “ESPHome”。请注意,插件相应命名;对于 beta 版本,您需要 “ESPHome Device Builder (beta)”。
-
如果您独立于 Home Assistant 在 Docker 中运行容器:
# 对于基于 pip 的安装 pip3 install --pre -U esphome
# 对于基于 docker 的安装 docker run [...] -it ghcr.io/esphome/esphome:beta run livingroom.yamlBeta 文档可在 beta.esphome.io 获取。
如何使用最新的前沿版本?
Section titled “如何使用最新的前沿版本?”首先,公平警告,最新的前沿版本并不总是稳定的。您可能会遇到异常问题和/或未记录/意外的更改。我们通常不支持运行 ESPHome dev — 通常只有开发人员使用。
除此之外,如果您想安装 ESPHome 的 dev 版本:
-
对于 Home Assistant 监督安装,在 Add-on Store 中搜索 “ESPHome”。请注意,插件相应命名;对于 dev 版本,您需要 “ESPHome Device Builder (dev)”。
-
从
pip:
pip3 install https://github.com/esphome/esphome/archive/dev.zip- 从 docker,使用 ghcr.io/esphome/esphome:dev 镜像。
docker run [...] -it ghcr.io/esphome/esphome:dev livingroom.yaml compileDev 文档可在 next.esphome.io 获取。
如何使用我的 Home Assistant secrets.yaml 文件?
Section titled “如何使用我的 Home Assistant secrets.yaml 文件?”如果您想将所有机密集中在一个地方,请在您的 esphome 目录中创建一个 secrets.yaml 文件,内容如下:
<<: !include ../secrets.yaml这将”引入”父目录中 Home Assistant secrets.yaml 文件的内容。
ESPHome 支持[此设备/功能]吗?
Section titled “ESPHome 支持[此设备/功能]吗?”如果它不在组件索引中,它(官方)不受支持。但是,我们总是在添加对新功能的支持。
在某些情况下,社区提供的外部组件可用;请记住,这些不受 ESPHome 官方支持,因此如果您遇到问题,您需要联系您使用的外部组件的开发人员寻求帮助。
您还可以在我们的 ESPHome 功能请求 tracker 中创建功能请求。
我有一个问题… 如何联系您?
Section titled “我有一个问题… 如何联系您?”当然!我们很乐意帮助 :) 您可以在这里联系我们:
-
如果您的咨询不是关于支持的,您可以给我们发邮件。
我的节点不断随机重新连接
Section titled “我的节点不断随机重新连接”这是一个已知问题,但似乎是非常底层的(换句话说,不是 ESPHome 特有的问题),我们真的不知道如何解决它。我们正在尝试确定问题的解决方法,但目前没有单一、特定的解决方案。
以下是一些可能有助于缓解问题的步骤:
-
如果您使用隐藏的 Wi-Fi 网络,请确保在设备的 Wi-Fi 配置中启用
fast_connect模式。请注意,这也可能有助于非隐藏网络。 -
给您的 ESPHome 设备一个静态 IP。
-
在您的
wifi:配置中将power_save_mode设置为light。但是,请注意,这可能会在某些情况下加剧问题。请参阅省电模式。 -
这个问题似乎更频繁地发生在”廉价”开发板上 — 特别是 eBay 上的”廉价” NodeMCU 开发板,有时天线不好。
-
ESPHome 在特定情况下有意在配置的持续时间后重启,例如当无法建立 Wi-Fi 连接、API 连接丢失 或 MQTT 连接丢失 时。要禁用此行为,您需要在相关组件上显式将
reboot_timeout选项设置为0s。 -
如果您在日志中看到
Error: Disconnecting <NODE_NAME>,ESPHome 正在主动关闭原生 API 客户端连接。您需要与设备建立串行连接以确定原因。如果您在断开连接之前立即看到ack timeout 4,这可能是 AsyncTCP 库中的 bug,ESPHome 版本 1.18.0 中包含了修复。如果您运行的是 1.18.0 之前的 ESPHome 版本,您应该升级 ESPHome 并为您的设备构建新固件。 -
我们看到在日志级别设置为
VERY_VERBOSE时断开连接增加,特别是在单核设备上,日志代码可能会干扰网络代码的操作。因此,我们建议在生产环境中使用较低的日志级别。 -
同时连接到设备上原生 API 服务器的客户端太多也可能导致此行为。例如,Home Assistant ESPHome 集成和 ESPHome Device Builder 上的日志查看器各自建立与设备的连接。在生产中,您可能只有来自 Home Assistant 的单个连接,使这不是问题。但请注意,附加日志查看器可能会产生影响。
-
在 Wi-Fi 接入点中减少 Delivery Traffic Indication Message (DTIM) 间隔可能有助于提高 Wi-Fi 可靠性和响应性。这将导致处于省电模式的 Wi-Fi 设备更频繁地唤醒。这可能会以增加其他同样使用省电模式的设备的功耗(可能还有电池使用)为代价来缓解断开连接。
“Brownout detector was triggered”
Section titled ““Brownout detector was triggered””此消息意味着您的 ESP32 电压降至安全水平以下,通常发生在 WiFi 发射脉冲期间,电流可能飙升至 300-500mA。最常见的原因:
- 电源供应不足 — USB 端口、细线缆或廉价适配器可能无法提供足够的电流。
- 长或细的布线 — 电压随距离下降,特别是细 USB 线缆。
- 其他外设消耗电力 — 传感器、LED 或继电器共享同一电源。
- 降低 WiFi 发射功率 — 这是单个最有效的更改:
wifi: output_power: 13dB # 默认为 20dB-
使用优质电源 — 带有短、粗 USB 线缆的专用 5V/2A 电源。
-
添加电容器 — 在 3.3V 和 GND 引脚之间添加一个 100-1000µF 电解电容器可以吸收短暂的电流脉冲。
重启后组件状态未恢复
Section titled “重启后组件状态未恢复”某些组件(如 climate 和 switch 组件)能够在微控制器重启/重新上电后恢复其状态。如果您已为某个组件配置了此功能,但发现其状态未按预期恢复,或者在设备日志中出现周期性的 ESP_ERR_NVS_NOT_ENOUGH_SPACE 错误,可能是闪存的 NVS 部分已满。这可能由多种原因引起,但无论如何,您可以尝试使用以下命令擦除 NVS 分区:
dd if=/dev/zero of=nvs_zero bs=1 count=20480esptool.py --chip esp32 --port /dev/ttyUSB0 write_flash 0x009000 nvs_zero将上面的 /dev/ttyUSB0 更改为您的串行端口。如果您更改了分区布局,则需要相应调整上述偏移量和大小。
Docker 参考
Section titled “Docker 参考”安装版本:
# 稳定版本docker pull ghcr.io/esphome/esphome# Betadocker pull ghcr.io/esphome/esphome:beta# Dev 版本docker pull ghcr.io/esphome/esphome:devESPHome 命令参考:
# 为文件 livingroom.yaml 启动新文件向导docker run --rm -v "${PWD}":/config -it ghcr.io/esphome/esphome wizard livingroom.yaml
# 编译并上传 livingroom.yamldocker run --rm -v "${PWD}":/config -it ghcr.io/esphome/esphome run livingroom.yaml
# 查看日志docker run --rm -v "${PWD}":/config -it ghcr.io/esphome/esphome logs livingroom.yaml
# 将 /dev/ttyUSB0 映射到容器中docker run --rm -v "${PWD}":/config --device=/dev/ttyUSB0 -it ghcr.io/esphome/esphome ...
# 在端口 6052 上启动仪表板(常规命令)# 警告:此命令目前在 MacOS 上的 Docker 中无法工作。(见下方注释)docker run --rm -v "${PWD}":/config --net=host -it ghcr.io/esphome/esphome
# 在端口 6052 上启动仪表板(MacOS 特定命令)docker run --rm -p 6052:6052 -e ESPHOME_DASHBOARD_USE_PING=true -v "${PWD}":/config -it ghcr.io/esphome/esphome
# 设置 bash 别名:alias esphome='docker run --rm -v "${PWD}":/config --net=host -it ghcr.io/esphome/esphome'Docker Compose 示例:
version: '3'
services: esphome: image: ghcr.io/esphome/esphome volumes: - ./:/config:rw # 使用本地时间作为日志时间戳 - /etc/localtime:/etc/localtime:ro devices: # 如果需要,像上面的命令行示例一样添加 esp 设备 - /dev/ttyUSB0:/dev/ttyUSB0 - /dev/ttyACM0:/dev/ttyACM0 # 主机网络驱动程序仅在 Linux 主机上工作,但在 Docker Desktop 版本 4.29 及更高版本上作为 Beta 功能可用。 network_mode: host restart: alwaysNOTE
默认情况下,ESPHome 使用 mDNS 解析网络上的设备 IP;这用于确定 ESPHome Device Builder 中的在线/离线状态。为了使此功能工作,您必须使用 Docker 的主机网络模式。
主机网络驱动程序仅在 Linux 主机上工作;它在 Docker Desktop 版本 4.29 及更高版本上可用。
如果您不想使用主机网络驱动程序,您必须使用下面描述的替代方法。
请注意,如果您的 Home Assistant 服务器和 ESPHome 节点位于不同的子网和/或 VLAN,mDNS 可能无法工作。如果您的路由器支持 Avahi,您可以配置 mDNS 在不同子网间工作。例如,在 OpenWRT 或 pfSense 中:
- 在两个子网上启用 Avahi(在 OpenWRT 或 pfSense 上安装 Avahi 模块)。
- 启用从 ESPHome 设备子网到 224.0.0.251/32 端口 5353 的 UDP 流量。
或者,您可以通过设置 "status_use_ping": true 或使用 Docker:-e ESPHOME_DASHBOARD_USE_PING=true 配置 ESPHome Device Builder 使用 ICMP ping 检查设备状态。
另请参阅 https://github.com/esphome/issues/issues/641#issuecomment-534156628。
关于禁用 mDNS 的说明
Section titled “关于禁用 mDNS 的说明”ESPHome 的某些功能依赖于 mDNS,因此禁用它自然会导致这些功能停止工作。
一般而言,在不设置静态 IP 地址(或静态 DHCP 租约)的情况下禁用 mDNS 必然会导致问题 — mDNS 用于确定每个 ESPHome 节点的 IP 地址。
如果您禁用 mDNS,预计会有以下影响:
-
您将无法使用节点的主机名来 ping、查找其 IP 地址或以其他方式连接到它。
-
使用原生 API 时,Home Assistant 中的自动发现依赖于 mDNS 广播消息来检测新 ESPHome 节点的存在。如果您需要在禁用 mDNS 的情况下使用原生 API,则需要使用静态 IP 地址并手动添加带有其(静态)IP 地址的 ESPHome 组件。
-
由于 ESPHome Device Builder 中的状态检测默认使用 mDNS,禁用 mDNS 的节点将始终显示为”离线”。这不影响任何功能;但是,如果您想查看节点的在线/离线状态,可以配置 ESPHome Device Builder 改为 ping 每个节点。请参阅 Docker 参考部分的说明 获取更多信息。
可以从设备中恢复配置文件吗?
Section titled “可以从设备中恢复配置文件吗?”ESPHome YAML 配置文件不存储在 ESPHome 设备上。如果您丢失了配置,无法从设备中恢复;如果您没有其他地方的备份,则需要从头重新创建。
始终备份您的文件!
为什么不应该在设备名称中使用下划线?
Section titled “为什么不应该在设备名称中使用下划线?”.yaml 配置文件中的顶级 name: 字段定义本地网络上的节点名称(“hostname”)。根据 RFC1912,主机名中的下划线 (_) 字符无效。实际上,某些 DNS/DHCP 设置可能正确处理下划线,而其他则不会。如果您使用静态 IP 地址,您不太可能遇到任何问题。在某些情况下,初始设置可能有效,但当 Home Assistant 重启或您更换路由器硬件时,连接可能会失败。
我们建议使用连字符 (-) 代替下划线。
重要:重命名在线设备时,请遵循这些说明 使用 use_address 参数,因为在名称更改完成之前,与现有设备的连接仅能使用旧名称。
为什么我会收到关于 strapping 引脚的警告?
Section titled “为什么我会收到关于 strapping 引脚的警告?”大多数微控制器都有特殊的 “strapping pins”,在启动过程中会被读取。引脚的状态决定启动过程的结果。微控制器实际上可以启动到两种”模式”:
- 正常模式
- “刷写”或”引导加载程序”模式
虽然这些引脚在软件中的使用本身不是问题,但如果连接到这些引脚之一的某个外部硬件组件/设备任意更改引脚状态,可能会发生启动失败或其他难以诊断的行为。
我们建议避免使用这些引脚,除非绝对必要且您完全理解启动时这些引脚的预期状态。
某些开发板将 GPIO 0 连接到按钮,通常标记为 “boot”。在 ESP 上电/复位时按住此按钮将使其进入引导加载程序模式。一旦 ESP 完全启动,此按钮可以安全地用作普通输入。
Strapping 引脚通常可以安全用作输出,只要它们仅连接到其他具有高阻抗输入且无上拉或下拉电阻的设备。请注意,I2C 时钟和数据线需要上拉电阻,因此在 strapping 引脚上不安全。
如果您绝对确定您使用 strapping 引脚的方式不会导致问题,您可以在相关引脚配置中添加 ignore_strapping_warning: true 来抑制警告。
如何测试 pull request?
Section titled “如何测试 pull request?”通过利用外部组件功能,可以通过简单地在您的 YAML 中添加几行来测试大多数 pull request!您需要 pull request 的编号以及 pull request 添加或更改的组件(它们在 pull request 的 GitHub 页面上用 “integration:” 标签列出)。然后,如果您将类似下面显示的代码块添加到您的 YAML 配置中,重新编译并将 ESPHome 重新安装/更新到您的设备,pull request 中的代码将用于 pull request 更改的组件。
external_components: # 将 1234 替换为 pull request 的编号 - source: github://pr#1234 components: # 在此处列出此 pull request 更改的所有组件 - ccs811请注意,这仅适用于仅更改 esphome/components/ 内文件的 pull request。如果添加或更改了 esphome/components/ 之外的任何文件,此方法将无法工作。这些 pull request 在 GitHub 上标有 “core” 标签。
为什么实体在深度睡眠期间显示为”不可用”?
Section titled “为什么实体在深度睡眠期间显示为”不可用”?”首次将设备添加到 Home Assistant 时,设备的配置中需要存在 Deep Sleep 组件。为了防止实体显示为”不可用”,您可以在 Home Assistant 中删除并重新添加设备。
如何保护我的 ESPHome 设备?
Section titled “如何保护我的 ESPHome 设备?”请参阅全面的安全最佳实践指南,了解有关 API 加密、OTA 密码、网络分段、物理安全等的详细建议。