RBT (SmartYard-Server) – der Kern der Plattform
RBT (SmartYard-Server) ist das Haupt-Backend der SmartYard-Plattform. Es speichert die vollständige Konfiguration und den Betriebszustand (Gebäude, Eingänge, Geräte, Benutzer, Schlüssel), sorgt dafür, dass Gegensprechanlagen und IP-Relais an diesem Modell ausgerichtet sind, orchestriert Intercom-Anrufe über Asterisk, liefert Push-Benachrichtigungen, sammelt und verarbeitet Ereignisse und lässt sich in Medienserver, RBT-TT und Überwachung integrieren.
Repository: https://github.com/rosteleset/SmartYard-Server
Was RBT speichert und verwaltet
Infrastruktur und Topologie
- Geräte: Gegensprechanlagen, CCTV-Kameras, IP-Relais
- Gebäude/Objekte: Gebäude, Anzahl Eingänge, Wohnungsbereiche pro Eingang
- „Tormodus“: Eingänge, die eine Gebäudegruppe bedienen
Benutzer und Berechtigungen
- Residente mobile App-Konten
- Berechtigungen pro Benutzer für alle Wohnungen, denen der Benutzer zugewiesen ist
Schlüssel und Zugangscodes
- mehrere Schlüsselebenen:
- Benutzer-Schlüssel
- Wohnungsschlüssel
- Gebäude-Schlüssel
- Schlüssel Verwaltungsgesellschaft
- Hauptschlüssel (alles öffnen)
- Zugangscodes zur Wohnung
Subsysteme innerhalb von RBT (SmartYard-Server)
1) Kerndomäne (Registrierung + Zugriffskontrolle) – Systemmodell und Zugriffslogik
Ein einzelnes Kernsubsystem, das als Quelle der Wahrheit für die gesamte Plattform fungiert:
- speichert die Standorttopologie: Gebäude, Eingänge, Wohnungsbereiche, Eingangsmodi (einschließlich „Gate-Modus“, der mehrere Gebäude bedient)
- speichert den Gerätebestand: Gegensprechanlagen, Kameras, IP-Relais und deren Bindungen
- speichert Benutzer und ihre Berechtigungen/Privilegien in allen Apartments
- speichert Schlüssel und Zugangscodes (Benutzer-/Wohnungs-/Gebäude-/Verwaltungs-/Hauptschlüssel)
- führt Berechtigungsprüfungen durch und generiert Zutrittskontrollaktionen (Tür/Tor/Schranke)
Dieses Domänenmodell und dieser Regelsatz werden vom Autokonfigurator, der mobilen API, der Ereignispipeline und den Integrationen genutzt.
2) Autokonfigurator – gewünschte/tatsächliche/unterschiedliche Gerätesynchronisierung
Konvergiert die Intercom- und IP-Relay-Konfiguration automatisch mit dem gewünschten, in RBT definierten Zustand:
– kompiliert eine Sollzustandskonfiguration für jedes Gerät aus der Kerndomäne - liest die aktuelle (tatsächliche) Gerätekonfiguration - berechnet einen Diff zwischen tatsächlich und gewünscht - Wendet nur die erforderlichen Änderungen („Patch“) an, um den Zielzustand zu erreichen – Reduziert unnötige Umschreibungen/Neustarts und sorgt dafür, dass der Gerätestatus mit dem Datenbankmodell übereinstimmt
3) Mobile API (Application API) – Schnittstelle für mobile Apps
Öffentliche API, die von iOS-/Android-Clients verwendet wird: - Authentifizierung/Sitzungen - verfügbare Gebäude/Wohnungen/Geräte - Zugriffsaktionen (z. B. „Öffnen“) mit Berechtigungsprüfungen - Ereignisse und Geschichte - Vergabe von Medienzugriffsparametern über den Medienserver (HLS / WebRTC)
Wichtig: Mobile Clients empfangen Videos über den Medienserver, nicht direkt von Kameras.
3.1) Anpassungsebene – Benutzerdefinierte Felder + überschreibbare Module + Weberweiterungen
RBT unterstützt eine Anpassungsebene, die dabei hilft, die Geschäftslogik zu erweitern, ohne das Kernprojekt zu verzweigen.
- Benutzerdefinierte Felder für Wohnungen sind in der Benutzeroberfläche verfügbar – Benutzerdefinierte Felder für andere Entitäten werden auch auf Modell-/Backend-Ebene unterstützt
- Benutzerdefiniertes Verhalten kann über überschreibbare Backend- und mobile API-Module implementiert werden (z. B. in
backends/*/customundmobile/*/custom). - Web-Erweiterungen für mobile Apps sind ebenfalls Teil dieser Ebene für die Benutzeroberflächen-/Workflow-Anpassung (siehe Web-Erweiterungen)
Praktisches Beispiel: Sie können die Blockierung von Gegensprechanlagen und Kameras in separate Wohnungsfelder aufteilen und das API-Verhalten basierend auf diesen Werten anpassen – und gleichzeitig vorgelagerte RBT-Updates einfacher durchführen.
3.2) Abrechnungsintegration – Basisfunktionen
RBT umfasst eine Basis-Integrationsschicht für die Abrechnung zur Synchronisierung zwischen Abrechnungs- und Plattformdaten.
- Import der Adresshierarchie in RBT (Region → Stadt → Straße → Gebäude → Wohnungen + Haustechnik)
- Synchronisierung von Wohnungsabonnements/Verträgen mit Aktualisierungen an:
- Status
- Login/Passwort
- Benutzerdefinierte Felder
- Telefonnummern der Benutzer
Dokumentationsbeispiel: Abrechnungsintegration
4) Telephony Orchestrator – Asterisk-Automatisierung
Verwaltet Asterisk automatisch für die Abwicklung von Intercom-Anrufen und der Interaktion zwischen Intercom und mobiler App.
5) Push & Messaging – Zustellung von Benachrichtigungen
Liefert Push-Benachrichtigungen für Intercom-Anrufe und andere Systemmeldungen/Ereignisse an mobile Apps.
6) Ereignispipeline (Syslog Ingest) – Ereigniserfassung und -verarbeitung
Ein dediziertes Subsystem, das Ereignisse über Syslog empfängt, sie normalisiert und mit Metadaten anreichert, sie in ClickHouse speichert und Folgeaktionen auslöst.
Hauptaufgaben: - Syslog-Aufnahme von Geräten/Diensten - Parsing, Normalisierung, Anreicherung (Gebäude/Eingang/Gerät/Wohnung/Benutzer) - Schreiben strukturierter Ereignisse in ClickHouse (einschließlich Metadaten und bei Bedarf Snapshots/Links) - Erkennungstrigger: Initiiert für unterstützte Ereignistypen die FALPRS-Verarbeitung (Gesichter/Platten)
7) Ereignisspeicher (ClickHouse) – Ereignisspeicher
Speichert den vollständigen Ereignisverlauf in ClickHouse: Ereignismetadaten sowie zugehörige Artefakte (z. B. Kamera-Schnappschüsse).
8) Medienrouting – Zuordnung von Kameras zu Medienservern
Behält die Zuordnung von Kameras/Streams zu Medienservern bei. Video erreicht Clients nur über den Medienserver mit HLS/WebRTC.
9) Kamerapräsentation – wie Kameras in der App angezeigt werden
Ermöglicht die Definition der Kamerapräsentation für Bewohner: - Ordnerbaum - Kartenbasierte Ansicht (geografisches/visuelles Layout)
10) Ticketing-Integration (RBT-TT)
Erstellt und pflegt Servicetickets in RBT-TT für betriebliche Arbeitsabläufe, die von Bedienpersonal und Außendiensttechnikern (PWA) abgewickelt werden.
11) Überwachungsintegration (Zabbix)
Überwacht aktive Geräte über die Integration mit Zabbix.
Übersichtstabelle „Subsystem → Verantwortung“
| Subsystem | Verantwortung | Speicher/Integrationen |
|---|---|---|
| Kerndomäne | Topologie, Geräte, Benutzer, Schlüssel, Berechtigungen + Zugriffsaktionen | RBT DB |
| Autokonfigurator | gewünschte/tatsächliche/Diff-Synchronisierung und Patch-Updates | RBT ↔ Gegensprechanlagen/IP-Relais |
| Mobile API (Anwendungs-API) | iOS/Android-API: Zugriff, Ereignisse, Medienparameter | ApplicationAPI + RBT |
| Anpassungsebene (benutzerdefinierte Felder + Weberweiterungen) | Projektspezifische Daten/Modell + mobile UI/Workflow-Erweiterungen ohne Core-Forking | RBT + überschreibbare Module + SmartYard-web |
| Abrechnungsintegration | Adresshierarchie-Import + Abonnements/Verträge synchronisieren | Abrechnung ↔ RBT |
| Telefonie-Orchestrator | Asterisk-Verwaltung, Intercom-Anrufe | Sternchen |
| Push & Messaging | Push-Benachrichtigungszustellung | Push-Anbieter |
| Ereignispipeline (Syslog Ingest) | Syslog → normalisieren → speichern → Erkennung auslösen | Syslog → ClickHouse → FALPRS |
| Ereignisspeicher | langlebiger Eventshop | ClickHouse |
| Medienrouting | „Kamera → Medienserver/Streams“-Zuordnung | Flussonic/Alternativen |
| Kamerapräsentation | Ordnerbaum / Kartenansicht | RBT |
| Ticketing-Integration | Tickets & Betriebsabläufe | RBT-TT |
| Überwachungsintegration | Geräteüberwachung | Zabbix |
Typische Abläufe
Automatische Gerätekonfiguration (unterschiedsbasierte Updates)
1) Datenänderungen in RBT (Berechtigungen/Schlüssel/Wohnungen/Geräte)
2) Der Autokonfigurator erstellt eine Konfiguration im gewünschten Zustand
3) Der Autokonfigurator liest die tatsächliche Gerätekonfiguration
4) Ein Diff/Patch wird berechnet und nur erforderliche Änderungen werden angewendet
5) Der Gerätestatus konvergiert mit dem Datenbankmodell
Veranstaltung → ClickHouse → Anerkennung
1) Ein Gerät/Dienst sendet ein Ereignis über Syslog
2) Event Pipeline analysiert/bereichert es
3) Ereignis wird in ClickHouse gespeichert
4) Für unterstützte Ereignistypen wird FALPRS ausgelöst (Gesichter/Platten)
5) Das Ergebnis wird gespeichert und steht Clients/Logik zur Verfügung
Video in der mobilen App
1) Ein Benutzer öffnet eine Kameraansicht
2) RBT prüft Berechtigungen und erteilt Medienzugriff über den Medienserver
3) Das Video wird über HLS/WebRTC über den Medienserver bereitgestellt
Intercom-Anruf → mobile App
1) Gegensprechanlage leitet einen Anruf ein
2) RBT orchestriert es über Asterisk
3) Eine Push-Benachrichtigung erreicht den Benutzer
4) Der Benutzer kann öffnen/handeln (Berechtigungsprüfung) und Ereignisse werden protokolliert