v1.9.0 — аварийный режим при неисправном железе
🩺 Аппаратные ошибки больше не вешают систему молча — неисправность приходит в чат, а бот переходит в аварийный режим.
🐞 Что было сломано
Отсутствие RTC или SD-карты вешало прошивку в бесконечном while ещё до старта loop(): бот не поднимался, сообщений не было, и понять причину можно было, только подключившись к устройству кабелем.
✨ Как теперь
- Неблокирующая инициализация RTC, SD-карты и платы клапанов (PCF8574): несколько попыток, и загрузка продолжается в любом случае.
- Отчёт в чат со списком неисправностей и пояснением последствий. Если в момент старта связи не было — отчёт уйдёт позже, как только связь появится.
- Аварийный режим бота: обычный интерфейс скрыт, на любую команду показывается отчёт и единственная кнопка «Перезагрузка» — починив контакт, систему можно поднять прямо из чата.
- Безопасное гашение нагрузок: насос, дренаж и залив бака выключаются напрямую по пинам (не через возможно мёртвый PCF8574); клапаны закрываются, только если расширитель отвечает.
- Полив останавливается — работать с неисправным оборудованием опасно. Бот и watchdog при этом продолжают жить.
📦 Файлы релиза
| Файл | Размер | Для чего |
|---|---|---|
DripIrrigation.ino.bin |
1.30 МБ | классический OTA |
DripIrrigation.ino.bin.gz |
0.81 МБ | сжатый OTA |
Собрано в GitHub Actions для ESP32 Dev Module (
esp32:esp32:esp32), схема разделов по умолчанию.
Полный список — в CHANGELOG.md.