Перейти к содержанию

RBT (SmartYard-Server) — ядро платформы

RBT (SmartYard-Server) — основной сервер платформы SmartYard. Он хранит конфигурацию и состояние инфраструктуры (дома, входы, устройства, пользователи, ключи), автоматически синхронизирует её с домофонами и IP-реле, управляет домофонными звонками через Asterisk, доставляет push-уведомления, собирает и обрабатывает события, интегрируется с медиасерверами, RBT-TT и мониторингом.

Репозиторий: https://github.com/rosteleset/SmartYard-Server


Что хранит и чем управляет RBT

Инфраструктура и топология

  • Устройства: домофоны, видеокамеры, IP-реле
  • Дома/объекты: список домов, количество входов, диапазоны квартир для каждого входа
  • Режим “калитки”: входы, обслуживающие группу домов

Пользователи и права

  • учётные записи пользователей мобильных приложений
  • привилегии пользователя по всем квартирам, куда он добавлен

Ключи и коды доступа

  • ключи разных уровней:
  • ключ пользователя
  • ключ квартиры
  • ключ дома
  • ключ управляющей компании
  • супер-ключи (открывают всё)
  • квартирные коды доступа

Подсистемы внутри RBT (SmartYard-Server)

1) Core Domain (Registry + Access Control) — модель и логика доступа

Единая “ядровая” подсистема RBT, которая является источником истины для всей платформы:

  • хранит топологию объектов: дома, входы, диапазоны квартир, режимы входов (в т.ч. “калитка” для группы домов)
  • хранит инвентарь устройств: домофоны, камеры, IP-реле и их привязки
  • хранит пользователей и их права/привилегии по квартирам
  • хранит ключи и коды доступа (пользователь/квартира/дом/УК/супер-ключи)
  • выполняет проверки прав и формирует команды управления доступом (дверь/калитка/шлагбаум)

На эту подсистему опираются автоконфигуратор, мобильный API, обработка событий и интеграции.

2) Autoconfigurator (Автоконфигуратор) — desired/actual/diff синхронизация устройств

Автоматически приводит конфигурацию домофонов и IP-реле к “требуемому” состоянию из базы RBT:

  • собирает данные из Core Domain в целевую (desired) конфигурацию для каждого устройства
  • считывает текущую (actual) конфигурацию устройства
  • вычисляет разницу (diff) между actual и desired
  • отправляет на устройство только изменения, необходимые для достижения требуемого состояния
  • снижает риск лишних перезаписей/перезагрузок и держит устройство согласованным с моделью в базе

3) Mobile API (Application API) — интерфейс для мобильных приложений

Публичный API для iOS/Android-клиентов и пользовательских сценариев: - авторизация/сессии - доступные адреса/квартиры/устройства - операции доступа (например, “открыть”) с проверкой прав - события и история - выдача параметров доступа к видео через медиасервер (HLS / WebRTC)

Документация API

Важно: мобильные клиенты получают видео через медиасервер, а не напрямую с камер.

4) Telephony Orchestrator (Управление Asterisk)

Автоматически управляет Asterisk для обработки домофонных вызовов и взаимодействия домофонов с мобильными приложениями.

5) Push & Messaging (Доставка уведомлений)

Доставляет push-уведомления о звонках домофонов и прочих событиях/сообщениях до мобильных приложений.

6) Event Pipeline (Syslog Ingest) — сбор и обработка событий

Подсистема, которая принимает события через syslog, нормализует и обогащает их метаданными, записывает в ClickHouse и запускает действия по типу события.

Ключевые функции: - приём событий по syslog от устройств/сервисов - парсинг, нормализация, обогащение (дом/вход/устройство/квартира/пользователь) - запись в ClickHouse (включая метаданные и, при необходимости, снимок/ссылки) - триггеры распознавания: для нужных типов событий инициирует обработку в FALPRS (лица/номера)

7) Events Storage (ClickHouse) — хранилище событий

Хранит полную историю событий системы в ClickHouse: метаданные и связанные артефакты (например, снимок с камеры).

8) Media Routing (Карта медиасерверов и потоков)

Хранит информацию о том, какие камеры и потоки размещены на каких медиасерверах. Видео в приложения поступает только через медиасервер по HLS/WebRTC.

9) Camera Presentation (Представление камер в приложении)

Позволяет задавать описание и структуру отображения камер для пользователя: - дерево папок - карта (геопривязка/визуализация)

10) Ticketing Integration (Интеграция с RBT-TT)

Генерирует и хранит в RBT-TT заявки, связанные с пользователями/объектами, для обработки сотрудниками оператора и полевыми техниками (PWA).

11) Monitoring Integration (Интеграция с Zabbix)

Осуществляет мониторинг активных устройств в сети через интеграцию с Zabbix.


Сводная таблица “подсистема → ответственность”

Подсистема За что отвечает Хранилище/интеграции
Core Domain топология, устройства, пользователи, ключи, права + команды доступа БД RBT
Autoconfigurator desired/actual/diff синхронизация и применение изменений RBT ↔ домофоны/IP-реле
Mobile API (Application API) API для iOS/Android: доступ, события, параметры видео ApplicationAPI + RBT
Telephony Orchestrator управление Asterisk, домофонные звонки Asterisk
Push & Messaging доставка push-уведомлений push-сервисы
Event Pipeline (Syslog Ingest) syslog → нормализация → запись → триггеры распознавания Syslog → ClickHouse → FALPRS
Events Storage долговременное хранилище событий ClickHouse
Media Routing “камера → медиасервер/потоки” Flussonic/альтернативы
Camera Presentation дерево/карта камер в приложении RBT
Ticketing Integration заявки и эксплуатационные процессы RBT-TT
Monitoring Integration мониторинг устройств Zabbix

Типовые потоки

Автоконфигурация устройства (diff-обновление)

1) Меняются данные в RBT (права/ключи/квартиры/устройства)
2) Autoconfigurator формирует desired конфиг
3) Autoconfigurator считывает actual конфиг устройства
4) Вычисляется diff и применяется только “патч” изменений
5) Состояние устройства приводится к модели в базе

Событие → ClickHouse → распознавание

1) Устройство/сервис отправляет событие в syslog
2) Event Pipeline парсит/обогащает событие
3) Событие сохраняется в ClickHouse
4) Для нужных типов событий запускается FALPRS (лица/номера)
5) Результат фиксируется и становится доступен клиентам/логике

Видео в приложении

1) Пользователь открывает камеру в приложении
2) RBT проверяет права и выдаёт параметры доступа через медиасервер
3) Видео идёт по HLS/WebRTC через медиасерверы

Звонок домофона → мобильное приложение

1) Домофон инициирует вызов
2) RBT оркестрирует звонок через Asterisk
3) Push-уведомление доставляется пользователю
4) Пользователь управляет доступом (по правам), события фиксируются


См. также