feat: Zentrale per Durchwahl selbst besetzen
Das Busylight im Empfangsbereich wird wechselnd besetzt. Mitarbeiter
koennen sich jetzt selbst darauf setzen, ohne Admin-Passwort.
- Neue Seite /zentrale (Durchwahl eingeben) und /zentrale/{durchwahl}
als Direktlink fuer QR-Codes. Der Direktlink zeigt nur an und aendert
nichts, damit Link-Vorschau und Prefetch niemanden versetzen.
- Neue Tabelle home_assignments merkt das eigene Tuerschild, solange der
Mitarbeiter in der Zentrale sitzt. Beim Verlassen wird es
wiederhergestellt, das Zentral-Segment wird freigegeben.
- Der Vorgaenger bleibt ohne Zuordnung - er ist nicht da. Sein gemerkter
Heimatplatz bleibt erhalten, er kann jederzeit zurueckkehren.
- Ist der Heimatplatz inzwischen belegt, wird die Rueckkehr abgelehnt
und nichts geaendert.
- Eine ausdrueckliche Admin-Zuordnung verwirft den gemerkten Heimatplatz.
Ein reines Loeschen der Zuordnung nicht, sonst kaeme niemand mehr von
der Zentrale zurueck.
- Farbe wird sofort ans Geraet geschickt (scheduler.push_user_light).
Das Polling allein reicht nicht: _process_user sendet nur bei einer
Statusaenderung, und beim Platzwechsel bleibt der Status gleich.
- Neue Settings selfservice_device_id und selfservice_segment,
einstellbar unter Einstellungen.
- Jeder Wechsel landet im Protokoll (zentrale / zentrale_frei).
Die Durchwahl ist eine Kennung, kein Geheimnis - im README dokumentiert.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -14,6 +14,7 @@ Jedes WLED-Geraet verfuegt ueber zwei Segmente (oben/unten), die jeweils einem B
|
||||
- **Telefon-Webhook** fuer Telefonanlage (callstart/callend auf Port 8081)
|
||||
- **Modulare Zeiterfassung** per CSV oder REST API - kompatibel mit jeder Zeiterfassung
|
||||
- **Webbasierte Azure-Authentifizierung** direkt im Browser (kein Terminal noetig)
|
||||
- **Zentrale (Self-Service)** - wechselnde Besetzung des Empfangs-Busylights per Durchwahl, ohne Admin-Passwort
|
||||
- **Einstellungen** fuer Azure, Polling-Intervall und Zeiterfassung
|
||||
- **Protokoll** der letzten Statusaenderungen
|
||||
|
||||
@@ -174,6 +175,59 @@ GET/POST http://SERVER:8081/{durchwahl}/callend - Anruf beendet (WLED -> zu
|
||||
- Waehrend eines aktiven Telefonats ueberschreibt das Teams-Polling die Farbe nicht
|
||||
- Die Telefon-Farbe (`phone_active`) ist unter **Farb-Regeln** konfigurierbar
|
||||
|
||||
## Zentrale (Self-Service)
|
||||
|
||||
Ein Busylight im Empfangsbereich wird wechselnd besetzt. Damit die Mitarbeiter das
|
||||
selbst umstellen koennen, gibt es eine eigene Seite, die **ohne Admin-Passwort**
|
||||
erreichbar ist und die Durchwahl als Kennung nutzt.
|
||||
|
||||
### Einrichtung
|
||||
|
||||
1. Unter **Benutzer** die **Durchwahl** pro Mitarbeiter eintragen (dieselbe wie fuer den Telefon-Webhook)
|
||||
2. Unter **Einstellungen > Zentrale (Self-Service)** das Busylight des Empfangs und das Segment auswaehlen
|
||||
3. Die Seite `http://SERVER:8080/zentrale` an die Mitarbeiter geben
|
||||
|
||||
### Bedienung
|
||||
|
||||
```
|
||||
http://SERVER:8080/zentrale - Durchwahl eingeben und Zentrale uebernehmen
|
||||
http://SERVER:8080/zentrale/{durchwahl} - Direktlink pro Person, z.B. als QR-Code
|
||||
```
|
||||
|
||||
Der Direktlink zeigt nur den Stand an und aendert nichts - das Umstellen passiert
|
||||
erst per Knopfdruck.
|
||||
|
||||
### Verhalten
|
||||
|
||||
- **Zentrale uebernehmen**: Der Mitarbeiter wird auf das Segment der Zentrale
|
||||
gesetzt. Das eigene Tuerschild gibt er dabei ab, weil ein Mitarbeiter nur einer
|
||||
Zuordnung gleichzeitig zugewiesen sein kann. Der alte Platz wird gemerkt und das
|
||||
Segment ausgeschaltet.
|
||||
- **Zurueck auf mein Tuerschild**: Der gemerkte Platz wird wiederhergestellt und die
|
||||
Zentrale freigegeben (Farbe `abwesend`, Standard: aus).
|
||||
- **Vorgaenger**: Wer die Zentrale abgibt, bleibt zunaechst ohne Zuordnung - er ist
|
||||
ja nicht da. Sein gemerkter Heimatplatz bleibt erhalten, er kann jederzeit
|
||||
zurueckkehren.
|
||||
- **Belegter Heimatplatz**: Ist das eigene Tuerschild inzwischen jemand anderem
|
||||
zugeordnet, wird die Rueckkehr abgelehnt und nichts geaendert. Dann muss der
|
||||
Administrator die Zuordnung aufloesen.
|
||||
- **Sofortiges Umschalten**: Die Farbe wird direkt ans Geraet geschickt. Das Polling
|
||||
allein wuerde nicht reichen, weil es nur bei einer Statusaenderung sendet und der
|
||||
Status des Mitarbeiters beim Platzwechsel unveraendert ist.
|
||||
- **Protokoll**: Jeder Wechsel landet unter **Protokoll** (`zentrale` beim Uebernehmen,
|
||||
`zentrale_frei` beim Freigeben).
|
||||
- **Vorrang des Administrators**: Wird ein Mitarbeiter unter **Zuordnungen** neu
|
||||
zugeordnet, verfaellt sein gemerkter Heimatplatz - die ausdrueckliche Zuordnung
|
||||
gilt. Wird seine Zuordnung dort nur geloescht, bleibt der gemerkte Platz erhalten,
|
||||
damit er von der Zentrale zurueckkehren kann.
|
||||
|
||||
### Sicherheit
|
||||
|
||||
Die Durchwahl ist eine Kennung, kein Geheimnis. Wer Port 8080 erreicht, kann jeden
|
||||
Kollegen auf die Zentrale setzen. Fuer den internen Gebrauch ist das gewollt - die
|
||||
Aenderung ist sofort sichtbar, im Protokoll nachvollziehbar und mit einem Klick
|
||||
zurueckzunehmen. Die Seite gehoert deshalb nicht ins Internet.
|
||||
|
||||
## Starten
|
||||
|
||||
### Manuell (zum Testen)
|
||||
@@ -238,7 +292,7 @@ busylight/
|
||||
├── docs/ # Dokumentation
|
||||
├── static/
|
||||
│ └── style.css # CSS Styles
|
||||
└── templates/ # Jinja2 HTML-Templates
|
||||
└── templates/ # Jinja2 HTML-Templates (u.a. zentrale.html)
|
||||
```
|
||||
|
||||
## Ports und Firewall
|
||||
@@ -274,5 +328,15 @@ busylight/
|
||||
- Unter Tuerschilder den Status pruefen ("Alle jetzt pruefen")
|
||||
- Netzwerkverbindung pruefen: `curl http://HOSTNAME/json/info`
|
||||
|
||||
### Zentrale-Seite sagt "noch nicht eingerichtet"
|
||||
|
||||
Unter **Einstellungen > Zentrale (Self-Service)** ist kein Busylight ausgewaehlt.
|
||||
Ohne diese Einstellung weiss die Anwendung nicht, welches Geraet der Empfang ist.
|
||||
|
||||
### Durchwahl wird auf der Zentrale-Seite nicht erkannt
|
||||
|
||||
Die Durchwahl muss unter **Benutzer** exakt so eingetragen sein wie eingegeben, und
|
||||
der Benutzer muss **aktiv** sein. Inaktive Benutzer werden bewusst abgewiesen.
|
||||
|
||||
### Nach git pull aendert sich nichts
|
||||
- Service neustarten: `sudo systemctl restart busylight`
|
||||
|
||||
Reference in New Issue
Block a user