Перейти к содержанию

Howto: factory reset

Полный сброс к заводским настройкам. Стирает user-config (STA, интеграции, dosator-config, UI), сохраняет factory creds, AP-настройки и EEPROM-наработку дозаторов.

Через Web UI (рекомендуется)

  1. Войти как admin.
  2. Вкладка Система → карточка Danger Zone (красная, свёрнута по умолчанию).
  3. Развернуть → кнопка «Factory reset».
  4. Confirm-dialog требует ввести admin-пароль ещё раз.
  5. После клика «Подтвердить» — endpoint стирает NVS и через ~500мс устройство перезагружается.

После reboot — устройство «как из коробки», login admin/admin123.

Через API

Двойной gate (re-confirm + body password):

# 1. Re-confirm admin-пароля
curl -u admin:admin123 -X POST \
     -H 'Content-Type: application/json' \
     -d '{"password":"admin123"}' \
     http://awdc-3f2c.local/api/auth/verify

# 2. Сам factory reset
curl -u admin:admin123 -X POST \
     -H 'Content-Type: application/json' \
     -d '{"password":"admin123"}' \
     http://awdc-3f2c.local/api/system/factory-reset

Ответ:

{
  "success": true,
  "reboot": true,
  "wiped_namespaces": [
    "sta-config", "int_smtp", "int_imap", "int_telegram", "int_maxbot",
    "ntp-config", "ota", "ota-test", "net-mgr", "wifi", "ui",
    "dosator", "selftest_v"
  ]
}

Полная схема API: api/system.md → «Factory reset», openapi.yaml.

Через UART (hardware reset)

Если устройство недоступно (забыли пароль / поломан UI):

pio run -t erase                  # стирает ВСЮ NVS (и auth тоже)
pio run -t upload                 # перепрошить

В отличие от API-reset, pio run -t erase сносит и auth-namespace (пароли) и ap-config — устройство стартует с полностью дефолтными настройками. Это «hard reset», hardware-level.

Что произойдёт после reset (через API)

Параметр После reset
admin пароль admin123
duty пароль duty123
AP SSID сохранён (пользовательский, если был задан)
AP пароль сохранён
device_name сброшен → mDNS вернётся к awdc-<MAC4>.local
STA-конфиг очищен (нет креденшелов)
Интеграции выключены, конфиг очищен
Дозаторы proportion=0, window_ms=2000, mode=0
EEPROM наработка сохранена (отдельный I²C-чип M24C16)
OTA partition state очищена (last-good info теряется)

Если хочется также обнулить EEPROM-счётчики:

curl -u admin:NEW_PASSWORD -X POST http://awdc-3f2c.local/api/statistics/reset

Что стирается / что сохраняется — детальный список

См. nvs-reference.md → раздел Factory reset. Там полный список 13 wiped namespace'ов и обоснование, почему auth, ap-config, eeprom_* оставлены нетронутыми.

Чек-лист после reset

  1. Подключиться к AP (SSID сохранён, captive portal откроется автоматически на телефоне — см. setup-wifi.md).
  2. Логин admin / admin123сразу сменить admin-пароль.
  3. Сменить duty-пароль.
  4. (Опционально) Задать собственное device_name в карточке «Устройство» — иначе будет awdc-<MAC4>.
  5. Настроить STA WiFi.
  6. (Опционально) Восстановить интеграции из backup (backup-restore.md).

Когда factory-reset уместен / неуместен

Уместен:

  • Передача устройства другому пользователю
  • Полная переконфигурация после ошибочной настройки интеграций
  • Очистка dev_name обратно к дефолту перед прошивкой как «универсальный»

Неуместен:

  • Forgot password — auth сохраняется при API-reset → не поможет. Нужен UART-erase.
  • Проблемы с OTA — попробуйте /api/ota/rollback или /api/ota/cancel перед factory-reset'ом.
  • Сетевые проблемы — попробуйте сначала /api/sta/config с правильными кредами, чтобы не убивать всю остальную конфигурацию.

См. также: nvs-reference.md, memory-map.md, api/system.md.