From 031cf56c1c09da6f43e1a5e8b7d04d06a0a301ce Mon Sep 17 00:00:00 2001 From: admin Date: Sun, 3 May 2026 10:46:45 +0000 Subject: [PATCH] =?UTF-8?q?docs:=20add=20TASKS.md=20=E2=80=94=20open=20tas?= =?UTF-8?q?ks,=20bugs,=20future=20plans?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TASKS.md | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 TASKS.md diff --git a/TASKS.md b/TASKS.md new file mode 100644 index 0000000..fcb1bd1 --- /dev/null +++ b/TASKS.md @@ -0,0 +1,81 @@ +# 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) |