Documente la config des rappels pour Android et Ubuntu

This commit is contained in:
Antoine
2026-07-17 21:00:37 +02:00
parent 1ab1cf27c1
commit 459a9b4cc5

112
docs/notifications.md Normal file
View File

@ -0,0 +1,112 @@
# Rappels de pointage
L'app peut te relancer automatiquement si tu es détecté présent au bureau sans
avoir pointé le matin, ou parti sans avoir pointé la sortie. Ça repose sur deux
briques :
- **Réception des notifs** : [ntfy](https://ntfy.sh), un service gratuit de
notifications push par topic.
- **Détection de présence** : ton appareil (téléphone ou laptop) appelle une
URL de l'app quand il entre/sort du bureau. L'app fait le reste (vérifie
toutes les 5 min, 7h20h en semaine, si un pointage manque).
Avant de commencer : va sur `/settings`, choisis un nom de topic ntfy secret
(ex: `prenom-pointeuse-a1b2`, pas devinable), enregistre-le. La page affiche
ensuite tes deux URLs personnelles **Arrivée** et **Départ** — elles
contiennent un token secret, ne les partage pas.
---
## Android
### 1. Recevoir les notifs
1. Installe l'app **ntfy** depuis le Play Store.
2. Bouton **+** → entre le nom de topic choisi sur `/settings` → valide.
Laisse le serveur par défaut (`ntfy.sh`).
### 2. Détecter la présence (Tasker)
1. Installe **Tasker**.
2. Autorise Tasker à utiliser la localisation en arrière-plan (sinon Android
coupe la géolocalisation quand l'app n'est pas au premier plan).
3. Crée un profil : **Trigger → Location** → renseigne l'adresse/coordonnées
du bureau et un rayon (~100150 m) → événement **Enter**.
Tâche associée : **Net → HTTP Request**, méthode `GET`, URL = ton lien
**Arrivée** (copié depuis `/settings`).
4. Crée un second profil symétrique : même géofence, événement **Exit**,
tâche HTTP GET vers ton lien **Départ**.
### 3. Vérifier
- Force une entrée/sortie de zone (ou lance la tâche HTTP manuellement dans
Tasker) et vérifie que la réponse est `{"ok":true}`.
- Simule une journée sans pointage matin pendant que tu es marqué "présent" :
une notif ntfy doit arriver dans les 5 minutes.
---
## Ubuntu (laptop)
### 1. Recevoir les notifs
Le plus simple est le client CLI officiel, qui affiche une notif desktop
native (`notify-send`) à chaque message reçu sur ton topic.
```bash
# via le script d'install officiel
curl -sSL https://archive.ntfy.sh/gpg.key | sudo tee /etc/apt/keyrings/ntfy.asc
echo "deb [signed-by=/etc/apt/keyrings/ntfy.asc] https://archive.ntfy.sh/deb stable main" \
| sudo tee /etc/apt/sources.list.d/ntfy.list
sudo apt update && sudo apt install ntfy
```
Lance un abonnement persistant (à mettre dans un service systemd user, voir
plus bas, ou simplement dans un terminal/tmux) :
```bash
ntfy subscribe --output=notify-send TON_TOPIC
```
### 2. Détecter la présence (hook réseau NetworkManager)
Objectif : appeler l'URL "Arrivée" dès que le laptop se connecte au Wi-Fi du
bureau, et l'URL "Départ" dès qu'il s'en déconnecte.
Crée `/etc/NetworkManager/dispatcher.d/99-pointeuse` :
```bash
#!/bin/bash
# $1 = nom de l'interface, $2 = événement (up/down/...)
BUREAU_SSID="NomDuWifiBureau"
URL_ARRIVEE="https://ton-serveur/presence/TON_TOKEN/arrivee"
URL_DEPART="https://ton-serveur/presence/TON_TOKEN/depart"
current_ssid=$(nmcli -t -f active,ssid dev wifi | grep '^yes' | cut -d: -f2)
case "$2" in
up)
[ "$current_ssid" = "$BUREAU_SSID" ] && curl -fsS "$URL_ARRIVEE"
;;
down)
[ "$current_ssid" != "$BUREAU_SSID" ] && curl -fsS "$URL_DEPART"
;;
esac
```
```bash
sudo chmod +x /etc/NetworkManager/dispatcher.d/99-pointeuse
```
Le script tourne automatiquement à chaque changement de connexion réseau —
pas besoin de cron ni de service à part.
### 3. Vérifier
```bash
# teste le script à la main
sudo /etc/NetworkManager/dispatcher.d/99-pointeuse wlp0s20f3 up
```
La réponse doit être `{"ok":true}`. Reconnecte-toi ensuite au vrai Wi-Fi du
bureau pour valider le déclenchement automatique.