192 lines
8.8 KiB
Markdown
192 lines
8.8 KiB
Markdown
# CHANGELOG — ACS Monitoring (СКУД + Датчики воды)
|
||
|
||
---
|
||
|
||
## [Unreleased] — 2026 Q2
|
||
|
||
- ⏳ Прошивка door-controller v2.0 ожидает первого деплоя на железо
|
||
- ⏳ Датчик воды v3.5.8 ожидает USB flash деплой
|
||
|
||
---
|
||
|
||
## [2026-02-10] — Прошивка СКУД v2.0 написана
|
||
|
||
### Добавлено
|
||
- `firmware/door-controller-v2.0/door_controller_v2.ino` — главный файл state machine
|
||
- `firmware/door-controller-v2.0/config.h` — GPIO пины, константы, структуры DeviceConfig
|
||
- `firmware/door-controller-v2.0/mqtt_handler.h` — MQTT клиент: provision, heartbeat, команды, batch sync
|
||
- `firmware/door-controller-v2.0/web_config.h` — AP Mode captive portal с тёмной темой (192.168.4.1)
|
||
- `firmware/door-controller-v2.0/wiegand_reader.h` — Wiegand 26/34 bit с проверкой чётности
|
||
- `firmware/door-controller-v2.0/card_cache.h` — NVS кеш до 10,000 карт
|
||
- `firmware/door-controller-v2.0/event_queue.h` — Offline очередь до 500 событий
|
||
- `firmware/door-controller-v2.0/README.md` — полная документация
|
||
|
||
### Возможности v2.0
|
||
- WiFi + MQTT связь с сервером
|
||
- Авторизация карт по локальному кешу (до 10,000)
|
||
- Offline режим: карты работают без WiFi, события копятся и синхронизируются
|
||
- AP Mode при первом запуске: `ACS-DOOR-XXXX`, 192.168.4.1
|
||
- OTA обновления
|
||
- Команды от сервера: open_door, close_door, reboot, factory_reset, sync_cards, set_door_duration
|
||
- Heartbeat каждые 30 сек (uptime, RSSI, free_heap, card_cache_count)
|
||
|
||
---
|
||
|
||
## [2026-02-09] — Завершение страниц СКУД
|
||
|
||
### Обновлено
|
||
- **AccessLogPage.tsx** — полная переработка:
|
||
- Группировка событий по дате (Сегодня / Вчера / дата)
|
||
- Сворачиваемые группы со счётчиком разрешённых/запрещённых
|
||
- Calendar picker с пресетами (Сегодня / Неделя / Месяц)
|
||
- Пагинация (load more, по 50 записей)
|
||
- Экспорт CSV с BOM для Excel
|
||
- Фильтр по устройству
|
||
- Сортировка новые/старые
|
||
- Цветовые бейджи по типу события
|
||
- Подсветка запрещённых проходов красным фоном
|
||
|
||
- **FirmwarePage.tsx** — добавлено:
|
||
- Удаление прошивки
|
||
- Модалка "Подробнее" (changelog, размер, дата)
|
||
- Переключение стабильная/бета (`toggleFirmwareStable`)
|
||
- Кнопка "Push OTA" на устройства (`pushFirmwareOTA`)
|
||
|
||
- **DevicesPage.tsx** — добавлено:
|
||
- Кнопка "Открыть дверь" прямо из карточки
|
||
- Настройка сети устройства (static IP / DHCP, gateway, DNS)
|
||
- Команды: перезагрузка, синхронизация карт, blink LED
|
||
- Dropdown обновления прошивки
|
||
|
||
- **AccessKeysPage.tsx** — добавлено:
|
||
- Интеграция со станцией регистрации (кнопка "Считать карту")
|
||
- Пагинация
|
||
- Фильтр по типу карты (RFID / RF)
|
||
|
||
- **EmployeesPage.tsx** — добавлено:
|
||
- Фильтр по отделу/должности
|
||
- Пагинация
|
||
|
||
### Деплой
|
||
```bash
|
||
cd /var/www/acs-monitoring/frontend && npm run build
|
||
# Сборка: 2708 модулей, 10.28с, 843 kB JS, 42 kB CSS
|
||
```
|
||
|
||
---
|
||
|
||
## [2026-02-09] — Backend API прошивок завершён
|
||
|
||
### Добавлено/завершено в `backend/src/api/firmware.ts`
|
||
- GET `/api/firmware` — список прошивок
|
||
- POST `/api/firmware` — добавить прошивку
|
||
- DELETE `/api/firmware/:id` — удалить
|
||
- PUT `/api/firmware/:id/toggle-stable` — стабильная/бета
|
||
- POST `/api/firmware/:id/push-ota` — OTA push на устройства
|
||
|
||
---
|
||
|
||
## [2026-02-09] — СКУД backend MQTT завершён
|
||
|
||
### Добавлено в `backend/src/mqtt/skud-handlers.ts`
|
||
- Обработчик `devices/provision` — активация нового устройства, запись в `devices`, отправка списка карт
|
||
- Обработчик `skud/{id}/status` — обновление `is_online`, `last_seen`, firmware_version
|
||
- Обработчик `skud/{id}/access` — запись в `access_events`, проверка прав
|
||
- Обработчик `skud/{id}/sync` — batch синхронизация offline событий
|
||
- Отправка команд через `skud/{id}/command`
|
||
- Топик `skud/{id}/provision/ack` с ответом + списком карт
|
||
|
||
---
|
||
|
||
## [2026-02-09] — Первые 5 страниц СКУД (базовая версия)
|
||
|
||
### Создано (первая версия)
|
||
- `AccessLogPage.tsx` — журнал с базовой таблицей
|
||
- `FirmwarePage.tsx` — список прошивок, загрузка
|
||
- `DevicesPage.tsx` — список дверей, статус online/offline
|
||
- `AccessKeysPage.tsx` — CRUD карт, привязка к сотруднику
|
||
- `EmployeesPage.tsx` — CRUD сотрудников, RF регистрация
|
||
- `DiscoveryPage.tsx` — поиск новых устройств
|
||
|
||
---
|
||
|
||
## [2026-02-09] — Сборка первого физического устройства
|
||
|
||
### Выполнено
|
||
- Получены все компоненты
|
||
- ESP32 DevKit 30-pin прошит прошивкой v1.0
|
||
- Mini560 настроен на 5.0V
|
||
- Wiegand считыватель подключён (GPIO 26/27)
|
||
- Реле подключено (GPIO 25)
|
||
- Кнопка выхода (GPIO 33)
|
||
- Тест: считыватель читает карты (любая карта открывает — тестовый режим v1.0)
|
||
|
||
---
|
||
|
||
## [2026-01-30] — Прошивка СКУД v1.0 (тестовая)
|
||
|
||
### Добавлено
|
||
- `firmware/door-controller-v1.0/` — тестовая прошивка
|
||
- Wiegand RFID 26/34 bit
|
||
- Управление реле (замок)
|
||
- Кнопка выхода (GPIO прерывание)
|
||
- Serial Monitor логи
|
||
- Автотесты компонентов при старте
|
||
- **⚠️ Открывает дверь для ЛЮБОЙ карты** — только для тестирования
|
||
|
||
---
|
||
|
||
## [2026-01-30] — Схема подключения и документация
|
||
|
||
### Добавлено
|
||
- Схема подключения ESP32 ↔ Wiegand ↔ Реле ↔ Замок ↔ БП ↔ АКБ
|
||
- Распиновка ESP32 DevKit 30-pin
|
||
- Чеклист сборки
|
||
- Инструкция по прошивке
|
||
- `TROUBLESHOOTING.md`
|
||
|
||
---
|
||
|
||
## [2026-01-28] — Проектирование БД и веб-панели
|
||
|
||
### Добавлено
|
||
- SQL схема 6 таблиц: employees, access_keys, devices, access_log, firmware, remote_controls
|
||
- Структура веб-панели: раздел СКУД в боковом меню
|
||
- Обсуждение шлагбаумов, RF брелоков, станции регистрации
|
||
- MQTT топики и протокол взаимодействия
|
||
|
||
---
|
||
|
||
## [2026-01-14] — Начало проекта СКУД
|
||
|
||
### Добавлено
|
||
- Архитектурное решение: ESP32 на каждую дверь + Wiegand RFID
|
||
- Список компонентов для 1 двери (~4 750 ₽)
|
||
- Заказ компонентов (15 дверей)
|
||
- Интеграция с существующей системой ACS Monitoring
|
||
|
||
---
|
||
|
||
## История (датчики воды)
|
||
|
||
### [2026-01-20] — Прошивка датчика воды v3.5.8
|
||
- **journal-first архитектура**: запись в SPIFFS перед MQTT
|
||
- Монотонные счётчики для дедупликации
|
||
- FIFO очередь неотправленных показаний
|
||
- `isFresh` логика на backend (заменила `isJournal`)
|
||
- Исправлен timezone bug (3-часовой offset → pure UTC NTP)
|
||
- Устранены аномальные показания > 900 л/мин
|
||
|
||
### [2026-01-18] — Прошивка датчика воды v3.5.x
|
||
- Non-blocking file scanning (исправлены lockups MQTT keepalive)
|
||
- Batch processing файлов журнала
|
||
- Оптимизация OTA — исправлено зависание при обновлении
|
||
|
||
### [2026-01-01] — Датчики воды v3.3.2 (стабильная)
|
||
- Базовая версия с MQTT reporting
|
||
- `firmware/water-sensor-v3.3.2/acs_sensor_v3.3.2.ino`
|
||
|
||
---
|
||
|
||
*Обновлено: май 2026*
|