diff --git a/kobo/monitorinkloop.sh b/kobo/monitorinkloop.sh index a982d7e..7cf8b9e 100755 --- a/kobo/monitorinkloop.sh +++ b/kobo/monitorinkloop.sh @@ -56,28 +56,37 @@ suspend_for() { echo 0 > /sys/power/state-extended 2>/dev/null } -while true; do - log "--- itération ---" - ./scripts/ledToggle.sh on 2>/dev/null - - log "wifi: enable" +wifi_up() { ./scripts/enable-wifi.sh >/dev/null 2>&1 ./scripts/force-wifi-connection.sh >/dev/null 2>&1 ./scripts/obtain-ip.sh >/dev/null 2>&1 - log "ip: $(ip addr show 2>/dev/null | grep -o 'inet [0-9.]*' | grep -v '127.0' | head -1)" +} + +# MODE DEV : on garde le WiFi allumé (pas de disable, pas de suspend) -> fiable. +# La gestion d'énergie (suspend + cycle WiFi avec env Nickel) sera ajoutée pour la prod. +wifi_up +log "ip initiale: $(ip addr show 2>/dev/null | grep -o 'inet [0-9.]*' | grep -v '127.0' | head -1)" + +while true; do + log "--- itération ---" + ./scripts/ledToggle.sh on 2>/dev/null if fetch; then log "fetch OK ($(wc -c < "$TMP" 2>/dev/null) octets)" display else - log "fetch ECHEC" - "$FBINK" -pmh "Monitorink : image indisponible ($(date '+%H:%M'))" + # WiFi peut-être tombé : on tente une reconnexion puis un re-essai. + log "fetch KO -> reconnexion WiFi" + wifi_up + if fetch; then + log "fetch OK après reco ($(wc -c < "$TMP" 2>/dev/null) octets)" + display + else + log "fetch ECHEC (hors ligne)" + "$FBINK" -pmh "Monitorink hors ligne ($(date '+%H:%M'))" + fi fi - ./scripts/release-ip.sh >/dev/null 2>&1 - ./scripts/disable-wifi.sh >/dev/null 2>&1 ./scripts/ledToggle.sh off 2>/dev/null - - log "suspend ${REFRESH}s" - suspend_for "$REFRESH" + sleep "$REFRESH" done