Files
weighing-controller/TASKS.md
T

4.8 KiB
Raw Blame History

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)