命令行界面
基本使用
ESPHome 的命令行界面始终具有以下格式
esphome [选项] <命令> <配置文件...> [参数]ℹ️ Note
对于某些命令,您可以在命令行界面中指定多个配置文件,只需在
<命令>后面列出所有文件,例如:esphome run livingroom.yaml kitchen.yaml
选项
--help 选项
-h|--help<命令> 和 [参数]。
注意:您也可以使用 --help 获取任何特定命令的参数。esphome <某个命令> --help--verbose 选项
-v|--verboseESPHOME_VERBOSE=true 启用。--quiet 选项
-q|--quiet--substitution 选项
可以多次发出。
-s|--substitution KEY VALUE命令
run 命令
esphome run <配置> 命令是 ESPHome 最常用的命令。它
- 验证配置
- 编译固件
- 上传固件(通过 OTA 或 USB)
- 启动日志查看
选项
--device UPLOAD_PORT手动指定要使用的上传端口/IP。例如 /dev/cu.SLAB_USBtoUART,或 192.168.1.176 以执行 OTA。
可以指定多个 --device 选项以提供备用地址。ESPHome 将按顺序尝试每个地址,直到成功。这对于具有多个 IP 地址(IPv4/IPv6)的设备特别有用。
示例:
esphome run my-device.yaml --device 192.168.1.100 --device 2001:db8::1--upload_speed BAUD_RATEESPHOME_UPLOAD_SPEED 设置。
这可以在每个配置的平台io选项中覆盖,或在上传时使用此选项设置。--no-logs--topic TOPIC--username USERNAME--password PASSWORD--client-id CLIENT_ID--host-port HOST_PORT--resetESPHOME_SERIAL_LOGGING_RESET=true 配置。config 命令
esphome config <配置> 验证配置并显示验证结果。
compile 命令
esphome compile <配置> 验证配置并编译固件。
选项
--only-generateupload 命令
esphome upload <配置> 验证配置并上传最新的固件构建。
选项
--device UPLOAD_PORT手动指定要使用的上传端口/IP地址。例如 /dev/cu.SLAB_USBtoUART,或 192.168.1.176 以执行 OTA。
可以指定多个 --device 选项以提供备用地址。ESPHome 将按顺序尝试每个地址,直到成功。
示例:
esphome upload my-device.yaml --device 192.168.1.100 --device 2001:db8::1--upload_speed BAUD_RATEESPHOME_UPLOAD_SPEED 设置。
这可以在每个配置的平台io选项中覆盖,或在上传时使用此选项设置。--host-port HOST_PORTclean-mqtt 命令
esphome clean-mqtt <配置> 清除 MQTT 中继消息的保留消息。
参见 与 Home Assistant MQTT 实体一起使用。
选项
--topic TOPIC--username USERNAME--password PASSWORD--client-id CLIENT_IDwizard 命令
esphome wizard <配置> 命令启动 ESPHome 配置创建向导。
mqtt-fingerprint 命令
esphome mqtt-fingerprint <配置> 命令显示用于 SSL MQTT 连接的远程 MQTT SSL 指纹。参见 SSL 指纹。
version 命令
esphome version 命令显示当前 ESPHome 版本并退出。
clean 命令
esphome clean <配置> 命令清除所有构建文件,并有助于解决一些构建问题。
dashboard 命令
esphome dashboard <配置> 命令启动 ESPHome 仪表板服务器,以便通过图形用户界面使用 ESPHome。此命令接受配置目录而不是单个配置文件。
选项
--address ADDRESS--port PORT--socket SOCKET--address 或 --port,则这些参数的值将被忽略。不能与 --systemd-socket 一起使用。--username USERNAME--password PASSWORD--open-ui--socket 时,此功能无效。logs 命令
esphome logs <配置> 命令验证配置并显示所有日志。
选项
--topic TOPIC--username USERNAME--password PASSWORD--client-id CLIENT_ID--device SERIAL_PORT手动指定要使用的串行端口/IP。例如 /dev/cu.SLAB_USBtoUART。
可以指定多个 --device 选项以提供备用地址。当使用原生日志 API 时,所有地址都会传递给 API 客户端,该客户端使用 Happy Eyeballs 算法(RFC 8305)以最高效的方式连接使用可用的最快地址。
示例:
esphome logs my-device.yaml --device 192.168.1.100 --device 2001:db8::1--resetESPHOME_SERIAL_LOGGING_RESET=true 配置。使用 Bash 或 ZSH 自动补全
ESPHome 的命令行界面提供了使用 Bash 或 ZSH 提供的自动补全功能的能力。
您可以通过在您的 ~/.bashrc 文件中添加以下内容来注册 ESPHome 进行自动补全:
eval "$(register-python-argcomplete esphome)"有关更多信息,请参阅 argcomplete 文档。
使用 ESPHome 提供的日志工具
ESPHome 提供了两种类型的日志接口:API 和串行(UART)日志。
对于串行日志,有许多选项,包括 ESPHome Web 和 ESPHome CLI 的 run 命令。
对于基本的基于 API 的日志使用,可以使用 ESPHome 预装的 aioesphomeapi-logs 命令,
这在 ESP 设备位于远程/无法访问的位置时特别有用。
语法如下:
aioesphomeapi-logs <IPv4 或 IPv6 地址>一些工作示例包括:
aioesphomeapi-logs 192.168.x.y
aioesphomeapi-logs fe80::cdef:0123:4567:89ab
aioesphomeapi-logs 2001:0db8:3333:4444:5555:6666:7777:8888按 CTRL+C 退出日志查看。
如果您为 API 配置了加密,请按以下方式提供 YAML 中的密钥:
aioesphomeapi-logs 192.168.x.y --noise-psk <您的 API 密钥>如果您不知道/不希望知道 ESPHome 设备的 IP 地址,
您也可以使用 aioesphomeapi-discover 来发现本地网络上的在线 ESPHome 设备。
语法如下:
aioesphomeapi-discover响应列出了当前可用的 ESPHome 设备的信息:
状态 |名称 |地址 |MAC |版本 |平台 |主板