Files
Monitorink/.env.example
jerem ca4febbc44 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.
2026-06-16 14:06:49 +02:00

45 lines
2.2 KiB
Plaintext

# ── Monitorink — copier en .env et compléter (ne jamais versionner .env) ──
# Credentials Claude d'un login ISOLÉ dédié à Monitorink (scope user:profile requis par
# /usage -> login complet obligatoire, `claude setup-token` ne suffit PAS).
# Créer via : CLAUDE_CONFIG_DIR=/home/jerem/.monitorink-claude claude auth login
# Le backend lit/écrit ce fichier (refresh) ; il est monté dans le conteneur sur /creds.
MONITORINK_CLAUDE_CREDS=/creds/.credentials.json
# User-Agent attendu par l'endpoint /usage (doit ressembler à claude-code/<version>)
MONITORINK_CLAUDE_UA=claude-code/2.1.172
# Burn rate via ccusage (nécessite ccusage installé + ~/.claude/projects monté). 0/1
MONITORINK_CCUSAGE=0
# Affichage — canevas de rendu en PAYSAGE ; le PNG est pivoté de 90° pour la Kobo.
MONITORINK_TZ=Europe/Paris
MONITORINK_WIDTH=1680
MONITORINK_HEIGHT=1264
# Sens de rotation : "cw" = Kobo posée bouton à droite, "ccw" = bouton à gauche.
MONITORINK_ROTATE=cw
MONITORINK_CACHE_TTL=120
# Refresh partiel e-ink (endpoints /frame.meta + /frame.png).
# 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
# Météo (Open-Meteo, sans clé) — coordonnées
MONITORINK_LAT=48.8566
MONITORINK_LON=2.3522
# NAS (optionnel) — endpoint /api/status du moniteur maison nas_monitor.
# Laisser vide pour masquer la section NAS. Depuis le conteneur, viser l'IP LAN du host.
MONITORINK_NAS_URL=http://192.168.0.43:8766/api/status
# Codex (optionnel) — usage ChatGPT/Codex via wham/usage. Token lu dans le auth.json de
# Hermes monté en lecture seule (cf. docker-compose.yml). Laisser vide pour masquer Codex.
MONITORINK_CODEX_TOKEN_FILE=/hermes-auth.json
# Home Assistant (optionnel) — laisser vide pour désactiver
MONITORINK_HA_URL=http://homeassistant.local:8123
MONITORINK_HA_TOKEN=
# Entités : "entity_id|Libellé|unité" séparées par des virgules
MONITORINK_HA_ENTITIES=sensor.salon_temperature|Salon|°C, binary_sensor.porte_entree|Porte, person.jerem|Jerem