Files
weighing-controller/TASKS.md
T

82 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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) |