Refresh partiel e-ink : ne redessine que la zone changée, full refresh ~1h

Backend : endpoints /frame.meta (ligne 'MODE X Y W H SEQ') + /frame.png qui
servent un crop de la zone modifiée (diff PIL par client) ou l'image pleine.
Full refresh forcé tous les N cycles (MONITORINK_FULL_EVERY=12, ~1h) ou si la
zone change sur plus de 60% de l'écran. Mode 'noop' quand rien ne change.

Anti-429 : l'usage Claude est mis en cache (MONITORINK_USAGE_TTL=120s) avec
repli sur la dernière valeur connue en cas d'erreur transitoire.

Kobo : monitorinkloop.sh récupère meta puis png et fait un fbink partiel
(-g file=,x=,y=) sans flash, full refresh (-c -f) en mode full. Refresh 5 min.
This commit is contained in:
jerem
2026-06-15 18:42:32 +02:00
parent ce20d3675d
commit c7395d1c37
8 changed files with 257 additions and 27 deletions

View File

@@ -18,6 +18,14 @@ MONITORINK_HEIGHT=1264
MONITORINK_ROTATE=cw
MONITORINK_CACHE_TTL=120
# Refresh partiel e-ink (endpoints /frame.meta + /frame.png).
# Full refresh (efface le ghosting) tous les N cycles. PROD=12 (~1 h à 5 min/cycle), DEV=2.
MONITORINK_FULL_EVERY=12
# Bascule en full si la zone modifiée dépasse cette fraction de l'écran (partiel inutile).
MONITORINK_PARTIAL_MAX_RATIO=0.6
# Intervalle mini entre deux appels réels à l'endpoint /usage de Claude (anti-429). Secondes.
MONITORINK_USAGE_TTL=120
# Météo (Open-Meteo, sans clé) — coordonnées
MONITORINK_LAT=48.8566
MONITORINK_LON=2.3522