# TASKS.md — Открытые задачи и планы > Обновлено: 2026-05-03 ## 🔴 Критические (блокируют запуск) ### 1. Настроить P5 на весах Zemic TITAN 9 **Статус:** Не выполнено **Проблема:** Параметр P5 (режим RS232 передачи) стоит в дефолтном значении "нет передачи". Данные с весов не поступают. **Что нужно:** Войти в сервисное меню, перейти к P5, установить значение **3** (передача при стабильном весе). **Пароль меню:** `1` **Контакт для консультации:** Zemic support: +7 (472) 277-71-19 **Важно:** Тест без платформы бессмысленен — нужно тестировать с полностью подключённой платформой. ### 2. Провести on-site тест с платформой **Статус:** Ожидает выполнения задачи #1 **Что проверить:** - Появление строк `[SCALE]` в Serial Monitor - Корректный парсинг формата `ww000.000kg` - Публикация MQTT событий → приём на сервере - Отображение на дашборде https://scales.zeroday.su --- ## 🟡 Важные (следующая итерация) ### 3. Переключить MQTT с plain на MQTTS (порт 8883) **Статус:** Готово на стороне сервера, не реализовано в прошивке **Что сделано:** nginx stream proxy на 8883 настроен и работает **Что нужно:** Переписать прошивку ESP32 под MQTTS после подтверждения RS232-потока **Подход:** Использовать `ETH.h` + нативный TLS из ESP32 core 3.x (SSLClient отказался — TLS handshake fail) ### 4. Разобраться с DS3231 RTC **Статус:** Нестабильное обнаружение **Симптом:** Иногда `[RTC] DS3231 OK`, иногда `[RTC] DS3231 NOT found!` **Гипотеза:** Конфликт I2C и SPI при инициализации **Временное решение:** NTP через Google (216.239.35.0) работает стабильно — RTC некритично **Что попробовать:** Увеличить `delay()` между Wire.begin() и ETH.begin(); проверить качество пайки SDA/SCL ### 5. Персистентность данных в PostgreSQL **Статус:** PostgreSQL установлен, не подключён **Сейчас:** История хранится in-memory (100 событий), теряется при рестарте **Что нужно:** - Создать таблицу `weighing_events` - Подключить `pg` npm модуль в server.js - Писать каждое событие в БД - API `/api/history` отдаёт из БД с пагинацией ### 6. Распознавание номерных знаков **Статус:** Зарезервировано в JSON (`"plate": null`) **Описание:** Внешняя АСУ или камера должна заполнять поле `plate` номером авто **Пока:** Поле зарезервировано, не реализовано --- ## 🟢 Улучшения (будущее) ### 7. Авторизация на дашборде Сейчас https://scales.zeroday.su открыт без авторизации. Добавить basic auth или JWT. ### 8. Алерты при ошибках связи Уведомление (Telegram, email) если ESP32 отключился от MQTT > X минут. ### 9. Экспорт истории Кнопка "Скачать CSV" на дашборде для выгрузки истории взвешиваний. ### 10. Watchdog и автовосстановление в прошивке Добавить hardware watchdog и логику reconnect при обрыве Ethernet/MQTT. ### 11. OTA обновление прошивки Механизм обновления прошивки ESP32 через сеть (ArduinoOTA или HTTP OTA). --- ## 🐛 Известные баги | # | Описание | Приоритет | |---|---|---| | B1 | DS3231 нестабильно определяется при наличии ETH | Низкий | | B2 | `received frame was truncated` в логах при старте W5500 | Некритично (cosmetic) | | B3 | При Reset ESP32 через кнопку EN — Serial Monitor теряет начало лога | Cosmetic (добавить delay в setup) |