# 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*