命令行界面
基本使用
ESPHome 的命令行界面始终具有以下格式
esphome [选项] <命令> <配置文件...> [参数]
ℹ️ Note
对于某些命令,您可以在命令行界面中指定多个配置文件,只需在
<命令>
后面列出所有文件,例如:esphome run livingroom.yaml kitchen.yaml
选项
--help
选项
-h|--help
<命令>
和 [参数]
。
注意:您也可以使用 --help
获取任何特定命令的参数。esphome <某个命令> --help
--verbose
选项
-v|--verbose
ESPHOME_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_RATE
ESPHOME_UPLOAD_SPEED
设置。
这可以在每个配置的平台io选项中覆盖,或在上传时使用此选项设置。--no-logs
--topic TOPIC
--username USERNAME
--password PASSWORD
--client-id CLIENT_ID
--host-port HOST_PORT
--reset
ESPHOME_SERIAL_LOGGING_RESET=true
配置。config
命令
esphome config <配置>
验证配置并显示验证结果。
compile
命令
esphome compile <配置>
验证配置并编译固件。
选项
--only-generate
upload
命令
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_RATE
ESPHOME_UPLOAD_SPEED
设置。
这可以在每个配置的平台io选项中覆盖,或在上传时使用此选项设置。--host-port HOST_PORT
clean-mqtt
命令
esphome clean-mqtt <配置>
清除 MQTT 中继消息的保留消息。
参见 与 Home Assistant MQTT 实体一起使用。
选项
--topic TOPIC
--username USERNAME
--password PASSWORD
--client-id CLIENT_ID
wizard
命令
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
--reset
ESPHOME_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 |版本 |平台 |主板