Saltar a contenido

RBT (SmartYard-Server): el núcleo de la plataforma

RBT (SmartYard-Server) es el backend principal de la plataforma SmartYard. Almacena la configuración completa y el estado operativo (edificios, entradas, dispositivos, usuarios, llaves), mantiene los intercomunicadores y relés IP alineados con ese modelo, organiza llamadas de intercomunicador a través de Asterisk, entrega notificaciones automáticas, recopila y procesa eventos y se integra con servidores de medios, RBT-TT, y monitoreo.

Repositorio: https://github.com/rosteleset/SmartYard-Server


Qué almacena y gestiona RBT

Infraestructura y topología

  • Dispositivos: intercomunicadores, cámaras CCTV, relés IP
  • Edificios/objetos: edificios, número de entradas, rangos de apartamentos por entrada
  • “Modo puerta”: entradas que dan servicio a un grupo de edificios

Usuarios y permisos

  • cuentas de aplicaciones móviles residentes
  • privilegios por usuario en todos los apartamentos a los que está asignado el usuario

Claves y códigos de acceso

  • múltiples niveles clave:
  • clave usuario
  • llave apartamento
  • clave edificio
  • clave empresa gestora
  • llaves maestras (abrir todo)
  • códigos de acceso al apartamento

Subsistemas dentro de RBT (SmartYard-Server)

1) Dominio principal (Registro + Control de acceso): modelo del sistema y lógica de acceso

Un subsistema de núcleo único que actúa como fuente de verdad para toda la plataforma:

  • almacena la topología del sitio: edificios, entradas, rangos de apartamentos, modos de entrada (incluido el "modo de puerta" que sirve a varios edificios)
  • almacena el inventario de dispositivos: intercomunicadores, cámaras, relés IP y sus enlaces
  • almacena usuarios y sus permisos/privilegios en todos los apartamentos
  • almacena claves y códigos de acceso (usuario/apartamento/edificio/administración/llaves maestras)
  • realiza verificaciones de autorización y genera acciones de control de acceso (puerta/portón/barrera)

Este modelo de dominio y conjunto de reglas son consumidos por el configurador automático, la API móvil, la canalización de eventos y las integraciones.

2) Autoconfigurador: sincronización de dispositivo deseada/real/diferencial

Converge automáticamente la configuración del intercomunicador y del relé IP al estado deseado definido en RBT:

  • compila una configuración de estado deseado para cada dispositivo del dominio principal
  • lee la configuración actual (real) del dispositivo
  • calcula una diferencia entre real y deseado
  • aplica solo los cambios requeridos ("parche") para alcanzar el estado objetivo
  • reduce las reescrituras/reinicios innecesarios y mantiene el estado del dispositivo alineado con el modelo de base de datos

3) API móvil (API de aplicaciones): interfaz para aplicaciones móviles

API pública utilizada por clientes iOS/Android: - autenticación/sesiones - edificios/apartamentos/dispositivos disponibles - acceder a acciones (por ejemplo, "abrir") con comprobaciones de permisos - eventos e historia - emisión de parámetros de acceso a los medios a través del servidor de medios (HLS / WebRTC)

Documentación API

Importante: los clientes móviles reciben vídeo a través del servidor de medios, no directamente desde las cámaras.

3.1) Capa de personalización: campos personalizados + módulos reemplazables + extensiones web

RBT admite una capa de personalización que ayuda a ampliar la lógica empresarial sin bifurcar el proyecto principal.

  • Campos personalizados para apartamentos están disponibles en la interfaz de usuario
  • Los campos personalizados para otras entidades también son compatibles a nivel de modelo/backend
  • El comportamiento personalizado se puede implementar a través de módulos API móviles y de backend reemplazables (por ejemplo, en backends/*/custom y mobile/*/custom)
  • Las extensiones web de la aplicación móvil también forman parte de esta capa para la personalización de la interfaz de usuario/flujo de trabajo (consulte extensiones web)

Ejemplo práctico: puede dividir el bloqueo de intercomunicadores y el bloqueo de cámaras en campos de apartamentos separados y ajustar el comportamiento de la API en función de esos valores, mientras mantiene las actualizaciones de RBT ascendentes más fácilmente.

3.2) Integración de facturación: capacidades básicas

RBT incluye una capa de integración de facturación básica para la sincronización entre los datos de facturación y de la plataforma.

  • importación de jerarquía de direcciones en RBT (región → ciudad → calle → edificio → apartamentos + servicios de edificio)
  • sincronización de suscripciones/contratos de apartamentos con actualizaciones de:
  • estado
  • inicio de sesión/contraseña
  • campos personalizados
  • números de teléfono de usuario

Ejemplo de documentación: Integración de facturación

4) Orquestador de telefonía: automatización de Asterisk

Administra automáticamente Asterisk para manejar las llamadas de intercomunicador y la interacción de intercomunicador ↔ aplicación móvil.

5) Push & Messaging: entrega de notificaciones

Ofrece notificaciones automáticas para llamadas de intercomunicador y otros mensajes/eventos del sistema a aplicaciones móviles.

6) Canalización de eventos (Syslog Ingest): recopilación y procesamiento de eventos

Un subsistema dedicado que recibe eventos a través de syslog, los normaliza y enriquece con metadatos, los almacena en ClickHouse y desencadena acciones de seguimiento.

Responsabilidades clave: - ingesta de syslog desde dispositivos/servicios - análisis, normalización, enriquecimiento (edificio/entrada/dispositivo/apartamento/usuario) - escribir eventos estructurados en ClickHouse (incluidos metadatos y, cuando sea necesario, instantáneas/enlaces) - activadores de reconocimiento: para tipos de eventos admitidos, inicia el procesamiento FALPRS (caras/placas)

7) Almacenamiento de eventos (ClickHouse) - tienda de eventos

Almacena el historial completo de eventos en ClickHouse: metadatos de eventos más artefactos relacionados (por ejemplo, instantáneas de la cámara).

8) Enrutamiento de medios: asignación de cámaras a servidores de medios

Mantiene el mapeo de cámaras/transmisiones a servidores de medios. El vídeo llega a los clientes solo a través del servidor multimedia mediante HLS/WebRTC.

9) Presentación de la cámara: cómo aparecen las cámaras en la aplicación

Permite definir la presentación de la cámara para los residentes: - árbol de carpetas - vista basada en mapas (diseño geográfico/visual)

10) Integración de emisión de billetes (RBT-TT)

Crea y mantiene tickets de servicio en RBT-TT para flujos de trabajo operativos manejados por el personal del operador y los técnicos de campo (PWA).

11) Integración de monitoreo (Zabbix)

Monitorea dispositivos activos a través de la integración con Zabbix.


Cuadro resumen “subsistema → responsabilidad”

Subsistema Responsabilidad Almacenamiento/Integraciones
Dominio principal topología, dispositivos, usuarios, claves, permisos + acciones de acceso RBTDB
Autoconfigurador sincronización deseada/real/diff y actualizaciones de parches RBT ↔ intercomunicadores/relés IP
API móvil (API de aplicación) API iOS/Android: acceso, eventos, parámetros multimedia AplicaciónAPI + RBT
Capa de personalización (Campos personalizados + extensiones web) datos/modelo específicos del proyecto + UI móvil/extensiones de flujo de trabajo sin bifurcación central RBT + módulos reemplazables + SmartYard-web
Integración de facturación importación de jerarquía de direcciones + sincronización de suscripciones/contratos facturación ↔ RBT
Orquestador de telefonía Gestión de asteriscos, llamadas intercomunicantes Asterisco
Push y mensajería entrega de notificaciones push proveedores de empuje
Canalización de eventos (ingesta de Syslog) syslog → normalizar → almacenar → activar reconocimiento Syslog → ClickHouse → FALPRS
Almacenamiento de eventos tienda de eventos duradera Haga clic en Casa
Enrutamiento de medios Mapeo “cámara → servidor multimedia/transmisiones” Flussonic/alternativas
Presentación de la cámara árbol de carpetas/vista de mapa RBT
Integración de emisión de billetes tickets y flujos de trabajo operativos RBT-TT
Integración de monitoreo monitoreo de dispositivos Zabbix

Flujos típicos

Configuración automática del dispositivo (actualizaciones basadas en diferencias)

1) Cambios de datos en RBT (permisos/claves/apartamentos/dispositivos)
2) El configurador automático crea una configuración de estado deseado
3) El configurador automático lee la configuración del dispositivo real
4) Se calcula una diff/patch y solo se aplican los cambios necesarios
5) El estado del dispositivo converge con el modelo de base de datos.

Evento → ClickHouse → reconocimiento

1) Un dispositivo/servicio emite un evento a través de syslog
2) Event Pipeline lo analiza/enriquece
3) El evento se almacena en ClickHouse
4) Para los tipos de eventos admitidos, se activa FALPRS (caras/placas)
5) El resultado se almacena y queda disponible para los clientes/lógica

Vídeo en la aplicación móvil

1) Un usuario abre una vista de cámara.
2) RBT verifica los permisos y emite el acceso a los medios a través del servidor de medios
3) El vídeo se entrega a través de HLS/WebRTC a través del servidor de medios.

Llamada de intercomunicador → aplicación móvil

1) El intercomunicador inicia una llamada
2) RBT lo orquesta a través de Asterisk
3) Una notificación push llega al usuario.
4) El usuario puede abrir/actuar (con permiso verificado) y los eventos se registran


Ver también