Skip to content

v1.9.0 — аварийный режим при неисправном железе

Choose a tag to compare

@github-actions github-actions released this 04 Aug 07:12
· 7 commits to master since this release

🩺 Аппаратные ошибки больше не вешают систему молча — неисправность приходит в чат, а бот переходит в аварийный режим.

🐞 Что было сломано

Отсутствие 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.