跳转到内容

主机平台

host 平台允许 ESPHome 配置在台式计算机上编译和运行。已知可在 MacOS 和 Linux 上工作。在 Windows 上,可使用 WSL(Windows Subsystem for Linux)创建一个可运行 ESPHome 的 Linux 环境。

唯一需要的配置是可选地设置一个虚拟 MAC 地址,用于向 Home Assistant 标识该配置(本地 MAC 地址不直接可用)。

NOTE

HA 不会通过 mDNS 自动发现运行在 host 上的 ESPHome 实例,你需要使用主机计算机的 IP 地址手动将其添加。如果在手动添加设备时 HA 无法建立连接,本地主机计算机的防火墙设置可能是原因。 必须允许 ESPHome API 端口(6053 )通过防火墙。 详见 Api。

许多组件(尤其是那些与实际硬件交互的组件)在使用 host 时将不可用。不要 配置 wifi——网络将自动使用主机计算机提供。

# Example configuration entry
host:
mac_address: "06:35:69:ab:f6:79"
  • mac_address(可选,MAC address):与 HA 通信时使用的虚拟 MAC 地址。

esphome run yourfile.yaml 命令将在 host 平台上编译并自动运行生成的文件。

主机平台支持首选项持久化。更多信息请参见 Preferences。 首选项存储在环境变量 ESPHOME_PREFDIR 指定的目录中的文件中。如果未设置该变量,首选项存储在用户主目录下名为 .esphome/prefs 的目录中。如果 ESPHOME_PREFDIR 未设置且无法从 HOME 环境变量确定主目录,首选项将不会被保存或恢复,并会记录错误消息。

在目录中创建的首选项文件名来源于 esphome 块中的 name 选项,并附加 .prefs 后缀。例如,如果 name 为 living_room,则首选项文件将被命名为 living_room.prefs。

主机平台通过 esphome OTA 平台在端口 8082(默认)支持OTA 升级。 当 OTA 上传成功完成后,新二进制文件将被验证(Linux 上匹配 ELF,macOS 上匹配瘦 Mach-O,且与正在运行的可执行文件具有相同架构), 以原子方式重命名覆盖正在运行的二进制文件路径,并通过 execv() 用新镜像替换自身进程。 PID 在切换过程中保持不变,因此任何主管进程(systemd、包装脚本等)都会看到同一进程继续运行。

这主要用于开发、集成测试和 CI;可以在不刷写硬件的情况下,对与真实微控制器上运行的相同代码路径进行端到端测试。

CAUTION

OTA 端点可能会覆盖正在运行的可执行文件。请设置 OTA 密码,并将主机绑定到受信任的接口, 或者使用防火墙规则限制端口 8082。