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)
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/*/customymobile/*/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