Documente la config des rappels pour Android et Ubuntu
This commit is contained in:
112
docs/notifications.md
Normal file
112
docs/notifications.md
Normal 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, 7h–20h 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 (~100–150 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.
|
||||||
Reference in New Issue
Block a user