通过 BLE 进行 Improv
ESPHome 中的 esp32_improv 组件实现了开源 Improv 标准,用于通过蓝牙低功耗(BLE)接收凭据来配置 ESP32 设备上的 Wi-Fi。
esp32_improv 组件将自动设置 BLE 服务器。
# 示例配置条目wifi: # ...
esp32_improv: authorizer: binary_sensor_id-
authorized_duration (可选, Time): 授权超时并需要重新授权的时间量。默认为
1min。 -
identify_duration (可选, Time): 识别持续时间。默认为
10s。 -
wifi_timeout (可选, Time): Wi-Fi 断开连接后等待多久再启动 Improv 服务的时间。默认为
90s。 -
next_url (可选, string): 配置完成后打开的 URL。默认为
https://my.home-assistant.io/redirect/config_flow_start?domain=esphome。 -
on_start (可选, Automation): 当 Improv 等待授权和/或授权时执行的操作。参见
on_start。 -
on_provisioned (可选, Automation): 当配置完成时执行的操作。参见
on_provisioned。 -
on_provisioning (可选, Automation): 当设备开始配置过程时执行的操作。参见
on_provisioning。 -
on_stop (可选, Automation): 当 Improv 停止时执行的操作。 参见
on_stop。 -
on_state (可选, Automation): 当 Improv 状态发生变化时执行的操作。 参见
on_state。
Improv 自动化
Section titled “Improv 自动化”ESP32 Improv 组件提供各种自动化,可用于在 Improv 配置过程中提供反馈。
on_start
Section titled “on_start”当设备等待授权(通常通过按下设备上的按钮,如果已配置 —— 参见上面的 authorizer)和/或授权时,将触发此自动化。
esp32_improv: on_start: then: - logger.log: "Improv 等待授权/已授权"on_provisioned
Section titled “on_provisioned”当配置完成时,将触发此自动化。
esp32_improv: on_provisioned: then: - logger.log: "Improv 已配置"on_provisioning
Section titled “on_provisioning”当配置开始时,将触发此自动化。
esp32_improv: on_provisioning: then: - logger.log: "Improv 正在配置"on_stop
Section titled “on_stop”当 Improv 停止时,将触发此自动化。
esp32_improv: on_stop: then: - logger.log: "Improv 已停止"on_state
Section titled “on_state”每次状态变化时都会触发此自动化。
在此自动化的 lambda 中可以使用两个变量。它们是:
-
state,一个名为improv::State的enum,具有以下值之一:improv::STATE_STOPPEDimprov::STATE_AWAITING_AUTHORIZATIONimprov::STATE_AUTHORIZEDimprov::STATE_PROVISIONINGimprov::STATE_PROVISIONED
-
error,一个名为improv::Error的enum,具有以下值之一:improv::ERROR_NONEimprov::ERROR_INVALID_RPCimprov::ERROR_UNKNOWN_RPCimprov::ERROR_UNABLE_TO_CONNECTimprov::ERROR_NOT_AUTHORIZEDimprov::ERROR_UNKNOWN
esp32_improv: on_state: then: - if: condition: lambda: return state == improv::STATE_AUTHORIZED; then: - logger.log: "Improv 状态为 STATE_AUTHORIZED"status_indicator 具有以下模式:
- 常亮:improv 服务处于活动状态并等待授权。
- 每秒闪烁一次:improv 服务正在等待凭据。
- 每秒闪烁 3 次,中间有停顿:客户端已使用识别命令。
- 每秒闪烁 5 次:正在验证凭据并保存到设备。
- 熄灭:improv 服务未运行。