diff --git a/TASKS.md b/TASKS.md new file mode 100644 index 0000000..37ecda4 --- /dev/null +++ b/TASKS.md @@ -0,0 +1,125 @@ +# TASKS.md — Открытые задачи и баги + +## 🔴 Критическое + +### [BUG] acs-monitoring упал (PM2 stopped) +**Статус:** ❌ Требует немедленного исправления +**Симптом:** PM2 показывает `stopped`, 238+ рестартов +**Действие:** +```bash +pm2 logs acs-monitoring --lines 100 +pm2 restart acs-monitoring +# Если не стартует — смотреть ошибку в логах +``` + +--- + +## 🟠 Высокий приоритет + +### [FEATURE] Прошивка ESP32 v2.0 — установка и тестирование +**Статус:** ⏳ Код написан, не прошит на железо +**Путь:** `/var/www/acs-monitoring/firmware/door-controller-v2.0/` +**Что нужно:** +- Прошить через Arduino IDE / PlatformIO +- Пройти AP Mode конфигурацию (WiFi + MQTT + Device ID + Provision Token) +- Проверить provision → синхронизацию карт → события доступа +- Проверить offline режим (отключить WiFi → карта должна работать по кешу) +- Проверить OTA обновление + +### [FEATURE] Датчик воды — деплой v3.5.8 (journal-first архитектура) +**Статус:** ⏳ Требует USB flash деплой (не OTA) +**Что сделано:** journal-first, SPIFFS, монотонные счётчики, FIFO очередь, `isFresh` логика на backend +**Что нужно:** Физически подключить к компьютеру и прошить через Arduino IDE + +### [FEATURE] MQTT обработчики СКУД — проверка интеграции +**Статус:** ⏳ `skud-handlers.ts` написан, не проверялась end-to-end +**Что проверить:** +- Provision нового устройства +- Синхронизация карт при подключении +- Запись событий в `access_events` +- Статус heartbeat в `devices` + +--- + +## 🟡 Средний приоритет + +### [FEATURE] Станция регистрации карт +**Статус:** ❌ Не начато +**Описание:** ESP32 + RC522 (RFID) + ESP32 + CC1101 (RF 433 МГц) + OLED + Зуммер +**API уже есть:** `registration-station.ts` +**Нужно:** Hardware сборка + прошивка + +### [FEATURE] Шлагбаумы (RF брелоки 433 МГц) +**Статус:** ❌ Не начато +**Компоненты:** ESP32 + CC1101, реле 2-канальное, антенна +**Функционал:** RF брелоки + RFID карты + распознавание номеров (Линия 8) + +### [FEATURE] Telegram уведомления +**Статус:** ❌ Не настроено +**API:** `telegram.ts` есть, таблица `telegram_settings` есть +**Что нужно:** Задать `TELEGRAM_CHAT_ID` в `.env`, настроить события + +### [FEATURE] Расписание доступа по уровням +**Статус:** ❌ Не реализовано +**Описание:** Разные карты открывают разные двери в разное время + +### [FEATURE] Датчики давления и электроэнергии +**Статус:** ❌ Не начато +**Таблицы:** `pressure_data`, `electricity_data` уже в БД +**Нужно:** Прошивка + backend API + frontend страницы + +--- + +## 🟢 Низкий приоритет / Идеи + +### [FEATURE] Real-time уведомления на frontend +**Описание:** WebSocket push при новом событии доступа, устройство оффлайн, несанкционированный доступ +**Инфраструктура:** Socket.IO уже в стеке + +### [FEATURE] Отчёты и аналитика +- Графики активности по времени суток +- Отчёты по проходам сотрудников +- Экспорт в Excel +- Аномалии доступа (карта в двух местах одновременно) + +### [FEATURE] Discovery — авто-обнаружение устройств +**Описание:** Сканирование сети, обнаружение ESP32 в AP mode, provision через веб-панель +**Таблица:** `device_discovery` есть +**API:** `discovery.ts` есть + +### [FEATURE] QR-коды для временного доступа +### [FEATURE] Мобильное приложение (React Native) +### [FEATURE] Интеграция с 1С (учёт рабочего времени) +### [FEATURE] Биометрия (отпечатки / facial recognition) +### [FEATURE] Visitor management system + +--- + +## 🐛 Известные баги + +### [BUG] Датчик воды — аномальные показания > 900 л +**Статус:** ✅ Исправлено в v3.5.8 (timezone + journal logic) +**Причина:** Timezone offset +3h приводил к задвоению readings; `isJournal` → `isFresh` fix + +### [BUG] Датчик воды — 3-часовой offset временных меток +**Статус:** ✅ Исправлено — pure UTC конфигурация NTP + +### [BUG] Frontend — `/scud/keys` и `/scud/employees` вели на одну страницу +**Статус:** ✅ Исправлено в App.tsx + +--- + +## 📋 Мелкие улучшения + +- [ ] DiscoveryPage — доработка UI +- [ ] DevicesPage — индикатор последней синхронизации карт +- [ ] AccessLogPage — фильтр по сотруднику (сейчас есть только по устройству) +- [ ] FirmwarePage — загрузка .bin файла через UI (сейчас вводится путь) +- [ ] Dark mode для всей панели +- [ ] Backup БД (pg_dump по расписанию) +- [ ] Unit тесты для backend API +- [ ] Docker контейнеры / CI-CD + +--- + +*Обновлено: май 2026*