Files
RoggioApp/Brainstorm/260426/08_Langzeit_Vision_und_Erweiterungen.md
2026-04-26 19:42:42 +02:00

2.5 KiB
Executable File
Raw Permalink Blame History

RoggioApp - Langzeit-Vision & Hardware-Schnittstellen

1. Lokale Resilienz (Datenbank-Mirroring)

  • Ziel: Die Cloud (Hetzner) darf ausfallen oder das Internet auf dem Gelände streiken, ohne dass der Betrieb komplett lahmgelegt wird.
  • Ansatz: Ein lokales Mirror-System für die Datenbank.
  • Architektur-Implication: PostgreSQL erlaubt logische Replikation (Master-Slave oder Master-Master Konzepte). Wir sollten das Backend so bauen, dass es (später) Offline-First / Sync-Fähigkeiten bekommt oder zumindest ein lokaler Read-Replica Server auf dem Gelände läuft. (Für den Start bauen wir Single-Node, halten uns aber die Multi-Node Replikation in Postgres offen).

2. Zentrale User-Verwaltung (Identity & Access Management - IAM)

  • Ziel: Das Auth-System (Nextcloud / OIDC) soll in Zukunft der einzige Schlüssel für alles sein.
  • Geplante Erweiterungen für User:
    • WireGuard VPN-Profile
    • VoIP / SIP-Accounts (Telefonie)
    • E-Mail Accounts
    • NFC / RFID Zugangskontrolle (Türen)
  • Architektur-Implication: Nextcloud als OIDC-Provider ist hier bereits ein sehr guter Startpunkt. Wir dürfen in der RoggioApp keine eigenen, isolierten "User-Passwort"-Tabellen bauen. Die RoggioApp referenziert nur eine globale user_id (z.B. aus LDAP oder Nextcloud), an der die Hardware-Schlüssel hängen.

3. Home Automation & IoT (Der Campus)

  • Ziel: Smarte Steuerung und Überwachung der physischen Infrastruktur vor Ort.
  • Core-Technologien: HomeAssistant, MQTT, LoRaWAN.
  • Kritische Systeme:
    • PV / Solar Management (Strom)
    • Wasserspeicher (Infrastruktur)
    • Zugangskontrolle (Smart Locks)
  • Architektur-Implication: Unser Konzept der "Units" und "Traits" greift hier perfekt!
    • Eine Unit (z.B. Zirkuswagen) bekommt in unserer Datenbank den Trait has_smart_lock.
    • In diesem Trait speichern wir die MQTT-Topic-ID (/house/zirkuswagen/lock).
    • Wenn im Event "Buchung" der Status auf "Check-in" wechselt, feuert unser Node-Backend einen MQTT-Befehl an den lokalen HomeAssistant, um den Code des Gastes auf das Schloss zu spielen.

Claras Fazit

Die Weichenstellung ist klar: Das System ist kein reines "Software-Tool", sondern das Betriebssystem für ein physisches Gelände. Die strikte Trennung von Core-Logik, externem Auth-Provider und MQTT-fähigen Hardware-Layern sichert uns ab. Keine dieser Anforderungen sprengt unseren API-First / Node.js / Postgres Stack im Gegenteil, MQTT und OIDC lassen sich in Node.js hervorragend nativ integrieren.