# Client Kobo — Monitorink Affiche le dashboard Monitorink (`/image.png`) sur une **Kobo Libra 2** (FW 4.38.x) déjà équipée de **NickelMenu**. Approche : boucle WiFi → fetch image → `fbink` → suspend `rtcwake`. Ces scripts sont un **overlay** : ils réutilisent les binaires ARM et les helpers WiFi pré-compilés/éprouvés du projet [`usetrmnl/trmnl-kobo`](https://github.com/usetrmnl/trmnl-kobo), afin de ne pas réinventer (et risquer de casser) la gestion WiFi/suspend spécifique au matériel. ## Contenu de ce dossier - `monitorink.sh` — point d'entrée (lancé par NickelMenu). - `monitorinkloop.sh` — boucle d'affichage (réutilise `bin/` et `scripts/` de trmnl-kobo). - `nm/monitorink` — entrée NickelMenu. ## Installation (Kobo branchée en USB) 1. **Récupérer les binaires + helpers WiFi** depuis trmnl-kobo : ```sh git clone https://github.com/usetrmnl/trmnl-kobo ``` On a besoin de `src/TRMNL/bin/` (fbink, fbdepth, busybox_kobo) et `src/TRMNL/scripts/` (enable-wifi.sh, disable-wifi.sh, force-wifi-connection.sh, obtain-ip.sh, release-ip.sh, ledToggle.sh, getrssi.sh). 2. **Construire le dossier Monitorink** sur la Kobo, à `/mnt/onboard/.adds/Monitorink/` : ``` Monitorink/ monitorink.sh (ce repo) monitorinkloop.sh (ce repo) bin/ (copié depuis trmnl-kobo/src/TRMNL/bin/) scripts/ (copié depuis trmnl-kobo/src/TRMNL/scripts/) ``` 3. **Entrée NickelMenu** : copier `nm/monitorink` dans `/mnt/onboard/.adds/nm/monitorink`. 4. **Configurer l'URL** dans `monitorink.sh` (`MONITORINK_URL`) et l'intervalle (`MONITORINK_REFRESH`, en secondes). 5. **Éjecter proprement** la Kobo → l'entrée « Monitorink » apparaît dans NickelMenu. ## Utilisation - Lancer « Monitorink » depuis NickelMenu. La boucle démarre : l'écran se met à jour, puis le device passe en suspend et se réveille à chaque intervalle. - **Mode prod** (réglages par défaut) : refresh **5 min** (`MONITORINK_REFRESH=300`), **rétroéclairage éteint** (frontlight à 0), et **WiFi cyclé** — la radio est rallumée le temps du fetch puis coupée pendant le suspend `rtcwake -m mem` pour économiser la batterie. - Un **swipe** sur l'écran réveille le device et force un rafraîchissement. - Pour **arrêter** : maintenir le bouton power (le device se réveille sous Nickel). - Logs : `/tmp/monitorink.log` (effacés au reboot). ## À valider sur l'appareil (cf. plan, tâche 8) - Orientation framebuffer : si l'image sort tournée, soit pivoter côté serveur, soit ajouter `./bin/fbdepth -r 2` avant l'affichage et `-r -1` après. - Frontlight : `frontlight_off()` écrit 0 dans `/sys/class/backlight/*/brightness`. Vérifier `ls /sys/class/backlight/*/brightness` sur l'appareil et ajuster le glob si le nœud diffère. - Stabilité de `rtcwake -m mem` sur FW 4.38.23171 (sinon le fallback `state-extended` prend le relais ; en dernier recours `sleep`). - Cycle WiFi : confirmer qu'au réveil la reconnexion DHCP aboutit en < ~24 s (`has_ip` OK). - Autonomie réelle sur 24 h.