Howto: backup и restore¶
Сделать backup¶
Файл содержит:
- plaintext-секцию data с настройками (WiFi-SSID, dosator-пропорции,
email-хост и т.д. — но БЕЗ паролей и токенов);
- зашифрованный блок _secrets (AES-256-GCM, ключ выводится из
текущего admin-пароля через SHA-256).
Размер обычно <4 КБ.
Где хранить: в безопасном месте (зашифрованный диск, password manager). Файл с secrets-блобом можно безопасно лить в облако — без admin-пароля не расшифровать.
Восстановить на этом же устройстве¶
Если просто откатываешь свои настройки:
curl -u admin:admin123 -X POST \
-H "Content-Type: application/json" \
--data-binary @awdc-backup-2026-05-13.json \
http://awdc.local/api/system/restore
Лимит размера тела: 8 КБ. Если backup больше — нужно резать или
повышать kRestoreBodyLimit в коде.
Ответ:
Обязательно перезагрузить устройство (power-cycle или OTA-apply), чтобы менеджеры (WiFi, интеграции, NTP) перечитали новые ключи.
Восстановить на новом устройстве¶
- Прошить firmware той же или совместимой версии.
- Подключиться к
AWDC_SetupAP (см. setup-wifi.md). - Сменить admin-пароль на тот, который был на момент backup'а
(иначе
_secretsне расшифруется): - Залить backup:
- Перезагрузить устройство.
Восстановить если потерян admin-пароль¶
_secrets без пароля не расшифровать (AES-GCM verify падает).
Plaintext data-секцию можно вытащить вручную (это обычный JSON),
но пароли WiFi / токены ботов утрачены — их придётся вводить заново.
Workaround: открыть backup.json в редакторе, удалить блок _secrets,
POST на restore — поднимется plaintext-конфиг, потом руками впишешь
пароли через UI.
Что не входит в backup¶
- EEPROM-наработка дозаторов (
runtime_sв M24C16) — у каждого устройства своя. - NVS namespace
ota*— состояние OTA-сессии, не нужно. - Лог и state-snapshots — изменчивые.
См. также: api/system.md, nvs-reference.md.