Geräte-Pairing
Pairing ist der Vorgang, bei dem ein neu in Betrieb genommenes Endgerät einer
konkreten Mandant + Standort + ggf. Kasse zugeordnet wird. Es ist die Stufe
nach der UDP-Discovery (die nur Erreichbarkeit liefert) und vor dem
ersten REST-Call mit pp_*-Token.
Pairing-Flows
ProfiPOS unterscheidet zwei Onboarding-Stufen:
| Stufe | Wer? | Trigger |
|---|---|---|
| Stufe 1 — Display-Pairing | Geräte mit eigenem Bildschirm (Kasse, goapp, Kunden-/Küchen-/Selfservice-Display) | Gerät zeigt 6-stelligen Code, Backoffice gibt ihn frei |
| Stufe 2 — Headless-Discovery | Geräte ohne UI (LED-Modul, Drucker, ZVT, MDB) | Server findet sie per UDP/MQTT-Broadcast, meldet sie an Cloud, Admin claimed |
Stufe 1 — Display-Pairing (Beispiel: Kundendisplay)
Kasse / goapp / kitchendisplay
Diese Geräte zeigen statt eines automatischen Codes einen PIN-Login —
Provisionierung erfolgt durch Eintragen von Server-URL + Bediener-PIN durch
das Personal. Der Geräte-Token wird über POST /api/v1/auth/device/login
ausgehandelt und in den App-Settings persistiert.
Stufe 2 — Headless-Discovery
Persistenz nach Pairing
| Gerät | Speicherort |
|---|---|
| Kasse, Kundendisplay | %LOCALAPPDATA%\ProfiPOS\<App>\settings.json (atomic .tmp-Move) |
| Android-Apps (goapp, KD, Werbe, Self, MDB, Lieferapp) | DataStore-Preferences |
| LED-Modul (ESP32) | NVS-Namespace profipos, Keys mqtt_*, geraet_uu, wifi_* |
| Drucker, ZVT, MDB | passive Hardware — Config liegt im Server-DB-Record |
Reset / Re-Pairing
- Kasse/Display:
settings.jsonlöschen + App neu starten → DeviceUuid wird neu erzeugt, Pairing startet von vorne. - Android: App-Daten löschen oder Settings-Screen → Logout/Token-Reset.
- LED-Modul: Captive-Portal
ProfiPOS-LED-<XXXXXX>öffnen → „NVS leeren“- Reboot. (Hardware-Reset-Knopf ist Sprint-Welle-3-TODO.)