v1.7.1 — фикс .gz-OTA
⛔ НЕ ПРОШИВАЙТЕ эти бинарники
Файлы
.bin/.bin.gzв этом релизе собраны в CI с заглушкой вместо токена бота (PUT-YOUR-BOT-TOKEN-HERE). Токен компилируется внутрь прошивки, поэтому такое устройство не сможет подключиться к Telegram — бот не ответит, и OTA станет недоступен: восстановление только по проводу.Собирайте прошивку сами со своим
secrets.h— см. раздел «Установка» в README. Бинарники здесь пригодны только как проверка того, что код компилируется.
🐞 Исправление .gz-OTA из 1.7.0 — на боевом устройстве обновление не применялось.
Что было не так
Распаковка шла напрямую из сетевого потока, а StreamReader::readBytes() уменьшает счётчик остатка до фактического чтения. Если сокет отдавал меньше запрошенного (обычная пауза мобильного канала), поток рассинхронизировался и распаковка обрывалась.
Как исправлено
Обновление теперь в два этапа:
- архив скачивается на SD-карту штатным буферизованным
writeTo()библиотеки; - распаковка идёт с карты — локальное чтение не зависит от качества связи.
Временный /update.gz удаляется после обновления и при любой ошибке.
🔍 Диагностика
Если .gz всё же не применится, бот пришлёт причину: код распаковки uzlib, ошибку Update и сколько байт распаковано. В рабочей прошивке логи выключены — без этого причину не установить.
📦 Файлы релиза
| Файл | Размер | Для чего |
|---|---|---|
DripIrrigation.ino.bin |
1.29 МБ | классический OTA |
DripIrrigation.ino.bin.gz |
0.80 МБ | сжатый OTA |
⚠️ На устройстве сейчас 1.7.0, которая.gzещё не умеет — этот апдейт ставьте обычным.bin. Проверить.gzможно будет уже со следующего обновления.
Полный список — в CHANGELOG.md.