跳转到内容

出厂重置

factory_reset 组件允许你使存储在闪存中的所有 ESPHome 偏好设置失效(重置)并重启节点。 重启后,所有状态、参数和变量将以默认值重新初始化。这在以下情况下有用:

  • 对于预刷了 ESPHome、想要将行为重置回出厂状态的设备
  • 在将设备移到新环境或开始新的用例时(例如重置计数器或状态)
  • 出于隐私考虑而将设备赠与他人时

NOTE

请极其谨慎地使用! 存储在非易失性存储器中的所有凭据、全局变量、计数器和保存的状态都将丢失,且没有恢复的机会。 即使使用 esptool 对闪存进行原始读取也无济于事,因为数据是从闪存中物理擦除的。

对于使用强制门户配置的设备,这也会重置 WiFi 设置,从而使此类设备离线。 你需要靠近设备,才能通过内置 WiFi 接入点和强制门户重新配置它。

factory_reset 组件可以配置为通过反复按下重置按钮或断电上电循环来清除存储的偏好设置, 这对于清除无法用串口线连接的设备上存储在非易失性存储器中的数据可能很有用。所需的断电上电次数以及它们之间的最大延迟可以在 factory_reset 组件配置中进行配置。需要注意的事项:

  • 最大延迟仅影响设备通电的时间, 而不影响其断电的时间(这是无法测量的)。

  • 当发生任何其他种类的复位时,或者设备通电并运行的时间超过最大延迟时, 重置计数将被清零。

  • 在 RP2040 和 RP2350 上不可用,因为无法确定复位原因。

  • 在 ESP8266 上,此功能需要在 ESP8266 平台中启用 restore_from_flash 功能。

factory_reset:
resets_required: 5
max_delay: 10s
  • resets_required (Optional, integer): 设备将被重置所需的断电上电循环次数。 无默认值,如果未配置,断电上电重置功能将被禁用

  • max_delay (Optional, Time): 断电上电循环之间的最大延迟。默认:10s

当当前重置循环计数发生变化时,将触发一个触发器。这发生在 factory_reset 组件检测到断电上电循环时,或者 循环计数因超时或不同类型的复位而被清零时。传递给触发器的参数有:

  • x : 当前循环计数
  • target : 目标循环计数
factory_reset:
resets_required: 5
max_delay: 10s
on_increment:
- logger.log:
format: "Fast power cycle count now %u, target %u"
args: [x, target]