👥
-
Benutzer aktiv ?
📱
-
Geräte online ?
🚨
-
Alarme heute ?
🔔
-
Offene Alarme ?
🔋
-
Akku-Warnungen ?

📱 Online-Benutzer ?

Lade...

🔋 Akku-Warnungen ?

Lade...

🚨 Letzte Alarme

Lade Daten...

👥 Rollen & Berechtigungen — Übersicht
Rolle Beschreibung App-Zugriff Admin-Panel
Admin System-Administrator
Vollzugriff auf alle Funktionen. Kann Benutzer verwalten, Profile erstellen, Konfiguration ändern, Master-Passwort setzen und Weiterleitungs-Server konfigurieren.
✅ Alle Tabs sichtbar
✅ Alle Einstellungen änderbar
✅ Master-PW Bereich verfügbar
✅ Vollzugriff auf alle Bereiche
Manager Team-/Abteilungsleiter
Kann Alarm-Protokolle und Benutzer-Status einsehen. Kann zugewiesene Benutzer verwalten und deren Profile zuweisen. Kein Zugriff auf System-Konfiguration oder Master-Passwörter.
⚙️ Je nach Server-Konfiguration
✅ Schutz + Einstellungen
❌ Kein Master-PW Bereich (Standard)
✅ Dashboard, Alarme, Protokolle
⚠️ Eingeschränkte Benutzerverwaltung
Benutzer Standard-Mitarbeiter / Alleinarbeiter
Die typische Rolle für Außendienstmitarbeiter und Alleinarbeiter. Sieht nach dem Login nur den Schutz-Bereich (Start/Stop, Status, Verlauf). Alle Konfiguration erfolgt zentral über den Server. Der Benutzer muss in der App nichts konfigurieren.
✅ Schutz aktivieren/deaktivieren
✅ Check-in "Bin OK" bestätigen
✅ Alarm-Verlauf einsehen
✅ Notfallkontakte sehen (read-only)
❌ Kein Dashboard/Sensoren/Analyse
❌ Keine Profil-/Schwellwert-Änderung
❌ Kein Master-PW Bereich
❌ Kein Zugriff
Betrachter Nur-Lese-Zugriff
Kann sich einloggen und den eigenen Status sehen, aber keine Aktionen ausführen. Gedacht für Auditoren oder temporäre Zugänge.
👁️ Nur-Lese-Modus
❌ Kein Schutz aktivierbar
❌ Kein Zugriff

🔑 Was wird wo konfiguriert?

Einstellung Wo? Wer?
Schutzprofil zuweisenAdmin-Panel → Benutzer → ProfilAdmin / Manager
Notfallkontakte setzenAdmin-Panel → Benutzer → NotfallkontakteAdmin / Manager
Tabs ein-/ausblendenAdmin-Panel → Konfiguration → UIAdmin
Schwellwerte ändernAdmin-Panel → Profile → SchwellwerteAdmin
Heartbeat-IntervallAdmin-Panel → Konfiguration → AllgemeinAdmin
Weiterleitungs-ServerAdmin-Panel → WeiterleitungenAdmin
Pro-Benutzer OverridesAdmin-Panel → Benutzer → KonfigurationAdmin
💡 Empfehlung: Für die meisten Alleinarbeiter-Einsätze reicht die Rolle "Benutzer". Der Mitarbeiter öffnet die App, loggt sich ein, und aktiviert den Schutz — fertig. Alle Konfiguration (Profil, Schwellwerte, Kontakte) erfolgt zentral über dieses Admin-Panel.
Live-Status Benutzername Name E-Mail Rolle Profil Letzter Login Aktionen

Lade Profile...

Lade Konfiguration...

Zeit Benutzer Szenario Schweregrad Nachricht Status Position

🔐 Master-Passwort ändern

Das Master-Passwort wird benötigt, um in der App auf geschützte Einstellungen zuzugreifen. Nur Benutzer, die dieses Passwort kennen, können Konfigurationen lokal in der App ändern.

Wird an alle App-Instanzen übertragen

📋 Audit-Log (letzte Änderungen)

Wird geladen...

Klicken Sie auf Check starten, um die Systemdiagnose durchzuführen.

ℹ️
Begriffe im Protokoll:
📡 Alive-Signal – Automatisches Lebenszeichen der App an den Server (alle 30 s technisch, alle 2 Min protokolliert). Zeigt, dass die App aktiv und erreichbar ist.
✅ Check-in – Manuelle Bestätigung des Benutzers („Bin OK"-Taste). Wird vom Alleinarbeiterschutz in regelmäßigen Abständen verlangt.
🛡️ Schutz – Automatische Ereignisse des Schutzsystems: Überwachung gestartet/gestoppt, Countdown, Alarm ausgelöst/entwarnt.
📱 App-Ereignis – Login, Logout, App in Vordergrund/Hintergrund, Konfigurationsänderungen.
Zeit Benutzer Kategorie Ereignis Details
📖 API-Dokumentation: Weitergeleitete Daten & erwartete Werte

GIS Care sendet bei Alarmen und Heartbeats automatisch JSON-Daten per HTTP POST an alle aktiven Weiterleitungs-Server.

🔗 Verbindungsparameter

MethodeImmer POST
Content-Typeapplication/json
Auth-HeaderX-API-Key: {Ihr API-Key} — optional, wird als HTTP-Header gesendet
TimeoutConnect: 3s, Response: 5s (non-blocking)

🚨 Alarm-Payload (type: "alarm")

Wird gesendet wenn ein Mitarbeiter einen Alarm auslöst (Sturz, Bewegungslosigkeit, Check-in verpasst, etc.)

{
  "type": "alarm",
  "source": "gis_care",
  "timestamp": "2025-01-15T14:30:00+01:00",
  "data": {
    "alarm_id": 42,
    "user_id": 5,
    "username": "mustermann",
    "scenario": "fallDetection",
    "severity": "critical",
    "message": "Möglicher Sturz erkannt! Hohe Beschleunigung...",
    "was_cancelled": 0,
    "event_type": "triggered",
    "latitude": 51.1657,
    "longitude": 10.4515,
    "timestamp": "2025-01-15T14:30:00+01:00"
  }
}
Feld Typ Beschreibung
typestringImmer "alarm"
sourcestringImmer "gis_care"
data.alarm_idintEindeutige Alarm-ID in der GIS Care DB
data.user_idintBenutzer-ID des betroffenen Mitarbeiters
data.usernamestringBenutzername des Mitarbeiters
data.scenariostringfallDetection | immobility | noMovement | tiltAnomaly | checkinHeartbeat
data.severitystringwarning | critical | emergency
data.messagestringMenschenlesbare Alarmbeschreibung (DE)
data.event_typestringtriggered (Alarm ausgelöst) | cancelled (Entwarnung)
data.was_cancelledint0 = aktiver Alarm, 1 = Benutzer hat Entwarnung gegeben
data.latitudefloat|nullGPS-Breitengrad (kann null sein wenn kein GPS)
data.longitudefloat|nullGPS-Längengrad (kann null sein wenn kein GPS)

💓 Heartbeat-Payload (type: "heartbeat")

Wird periodisch gesendet (Standard: alle 30 Sekunden) solange die App aktiv ist.

{
  "type": "heartbeat",
  "source": "gis_care",
  "timestamp": "2025-01-15T14:30:00+01:00",
  "data": {
    "user_id": 5,
    "username": "mustermann",
    "timestamp": "2025-01-15T14:30:00+01:00",
    "monitoring_active": true
  }
}
Feld Typ Beschreibung
data.monitoring_activebooltrue = Schutzüberwachung läuft, false = App offen aber Schutz nicht aktiv

🔌 Test-Payload (type: "test")

Wird beim Klick auf "Verbindung testen" gesendet.

{
  "type": "test",
  "source": "gis_care",
  "timestamp": "2025-01-15T14:30:00+01:00",
  "data": {
    "message": "GIS Care Verbindungstest"
  }
}

📝 Empfangsserver einrichten

Ihr externer Server muss einen POST-Endpoint bereitstellen der JSON empfängt. Minimal-Beispiel (PHP):

<?php
$input = json_decode(file_get_contents('php://input'), true);
$type = $input['type'];       // "alarm", "heartbeat" oder "test"
$data = $input['data'];       // Nutzdaten
$apiKey = $_SERVER['HTTP_X_API_KEY'] ?? '';

// API-Key prüfen (empfohlen)
if ($apiKey !== 'IHR_GEHEIMER_KEY') {
    http_response_code(403);
    exit;
}

// Verarbeitung je nach Typ
if ($type === 'alarm') {
    // Alarm weiterverarbeiten, z.B. an Leitstelle senden
    $scenario = $data['scenario'];
    $severity = $data['severity'];
    $user = $data['username'];
    // ...
}

http_response_code(200);
echo json_encode(['received' => true]);
?>

⚠️ Wichtige Hinweise

  • Weiterleitungen sind fire-and-forget — Fehler blockieren nicht den Alarm-Prozess
  • Timeout: 3s Connect + 5s Response — langsame Server werden übersprungen
  • Ihr Server sollte mit HTTP 2xx antworten, sonst wird ein Fehler protokolliert
  • Latitude/Longitude können null sein wenn der Benutzer kein GPS hat
  • Alle Texte (message, username) sind UTF-8 kodiert
  • Derzeit werden nur Alarme und Heartbeats weitergeleitet, kein User-Info

Lade Server...

Lade Logs...

📋 Bericht erstellen

📁 Erstellte Berichte

Noch keine Berichte erstellt