Push-Benachrichtigungen
Tocco-Mate sendet echte Web-Push-Benachrichtigungen über die Web-Push-API — Mozilla Autopush, Google FCM, Apple Push und Windows Notification Service. Kein Firebase, kein Polling, kein Vendor-Lock.
Was wird gepusht?
Abschnitt betitelt „Was wird gepusht?“| Ereignis | Inhalt |
|---|---|
| 🆕 Neue Note | Modulname + Note + Direktlink zum Modul-Detail |
| ✏️ Notenänderung | Vorher → Nachher + Modulname |
| 🚪 Zimmerwechsel | Datum, Zeit, alter → neuer Raum (auch Online ↔ Offline) |
Notifications kommen auch wenn die App komplett geschlossen ist.
Voraussetzungen
Abschnitt betitelt „Voraussetzungen“| Plattform | Voraussetzung |
|---|---|
| iOS | PWA auf den Home-Bildschirm installiert (kein Safari-Tab) |
| Android | PWA installiert oder Browser-Tab offen (Tab-Push funktioniert auch) |
| Desktop | Browser-Tab offen oder PWA installiert |
| Brave | brave://settings/privacy → „Google-Dienste für Push-Nachrichten verwenden” aktiviert |
| Server | HTTPS + gültige VAPID-Keys |
Aktivieren
Abschnitt betitelt „Aktivieren“1. Mobile-App installieren
Abschnitt betitelt „1. Mobile-App installieren“Siehe Mobile-App (PWA) — auf iOS Pflicht, auf Android empfohlen.
2. In der App
Abschnitt betitelt „2. In der App“Settings → „Push aktivieren” → Browser-Erlaubnis bestätigen.
3. Test
Abschnitt betitelt „3. Test“„Test-Push senden” drücken → innerhalb 1–2 s sollte die Notification kommen.
VAPID-Keys
Abschnitt betitelt „VAPID-Keys“Beim ersten Start werden die Keys auto-generiert in data/vapid.json:
{ "publicKey": "BO_...", "privateKey": "..."}Du kannst sie auch manuell setzen über VAPID_PUBLIC_KEY und VAPID_PRIVATE_KEY in der .env.
VAPID_SUBJECT (default mailto:admin@example.com) ist die Kontakt-Adresse für den Push-Provider — bitte auf eine echte Adresse setzen, sonst sperren manche Provider deinen Server bei Problemen.
SSRF-Schutz
Abschnitt betitelt „SSRF-Schutz“Push-Endpoints werden nur an folgende Whitelist gesendet:
*.googleapis.com(FCM)updates.push.services.mozilla.com(Mozilla)*.push.apple.com(Apple)*.notify.windows.com(Windows)
Andere URLs werden geblockt — auch wenn sich ein Client mit gefälschtem Endpoint registriert.
Subscription verwalten
Abschnitt betitelt „Subscription verwalten“Endpoints für PWA / Dashboard:
GET /api/push/vapid-key # VAPID Public KeyPOST /api/push/subscribe # Subscription registrierenDELETE /api/push/subscribe # Subscription entfernenPOST /api/push/test # Test-Push an alle SubscriptionsSubscriptions liegen in der SQLite-Tabelle push_subscriptions (endpoint + Krypto-Keys).
Push trotzdem nicht angekommen?
Abschnitt betitelt „Push trotzdem nicht angekommen?“- HTTPS aktiv? Mobile-Push braucht HTTPS. Über LAN-IP funktioniert’s nicht (Browser-Sicherheitsregel)
- PWA wirklich installiert? Auf iOS Pflicht
- Erlaubnis im Browser?
chrome://settings/content/notificationsprüfen - Subscription noch gültig? Test-Push aus den Settings probieren
- Server-Logs: Push-Provider-Antworten loggen Fehler-Codes
Troubleshooting
Abschnitt betitelt „Troubleshooting“iOS: Toggle ist ausgegraut
Abschnitt betitelt „iOS: Toggle ist ausgegraut“- Erst PWA über Safari → „Zum Home-Bildschirm” installieren
Android: Erlaubnis-Dialog kommt nicht
Abschnitt betitelt „Android: Erlaubnis-Dialog kommt nicht“- Browser-Settings → Notifications für die Domain prüfen
Test-Push kommt, echte Pushes nicht
Abschnitt betitelt „Test-Push kommt, echte Pushes nicht“- Subscription wurde später ungültig → in Settings deaktivieren + neu aktivieren
Brave Desktop: Push schlägt still fehl
Abschnitt betitelt „Brave Desktop: Push schlägt still fehl“brave://settings/privacy→ „Google-Dienste für Push-Nachrichten verwenden” aktivieren