Refresh e-ink: multi-régions + full toutes les 2h (basé temps)
Le full refresh apparaissait trop souvent: getbbox() renvoyait un seul rectangle englobant tous les pixels modifiés, donc météo (haut) + heure de MaJ (ailleurs) qui changeaient au même cycle produisaient un rectangle quasi plein écran -> ratio > partial_max_ratio -> full forcé. - frame.py: détection des bandes horizontales modifiées disjointes (_changed_regions), refresh partiel serré par zone. Full basé sur le temps écoulé (last_full_at + time.monotonic) au lieu d'un compteur de cycles. État pngs/regions en liste, get_png(client, region). - config.py: full_refresh_interval_minutes (MONITORINK_FULL_INTERVAL_MIN, défaut 120). Suppression de partial_max_ratio. - app.py: /frame.meta renvoie un bloc multi-ligne "MODE SEQ N" + N régions "i x y w h"; /frame.png?region=i. - monitorinkloop.sh: display_meta parse le bloc et fait N fbink partiels.
This commit is contained in:
@@ -19,10 +19,9 @@ 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
|
||||
# Full refresh (flash, efface le ghosting) au 1er lancement/reset puis toutes les N minutes ;
|
||||
# entre deux, uniquement des partiels serrés sur les zones modifiées. PROD=120 (2 h), DEV=1-2.
|
||||
MONITORINK_FULL_INTERVAL_MIN=120
|
||||
# Intervalle mini entre deux appels réels à l'endpoint /usage de Claude (anti-429). Secondes.
|
||||
MONITORINK_USAGE_TTL=120
|
||||
|
||||
|
||||
Reference in New Issue
Block a user