plugmate-storage-free-space-check-10.ino
Script Python pour l'hôte qui interroge le PlugMate via ADB pour surveiller l'espace libre sur le stockage eMMC.
Nécessite Python 3 et ADB installé sur la machine hôte. Le PlugMate doit être connecté et déverrouillé. Le script utilise la commande df standard d'Android pour lire la partition /data. Cela permet de prévenir les erreurs d'écriture dues au chiffrement eMMC saturé.
plugmate-storage-free-space-check-10.ino
import os
import subprocess
import sys
def check_storage():
try:
# Utilise df pour vérifier l'espace sur /data (partition principale utilisateur sur Android)
# -h : format humain, /data : chemin standard sur Android/PlugOS
result = subprocess.run(
['adb', 'shell', 'df', '-h', '/data'],
capture_output=True,
text=True,
check=True
)
lines = result.stdout.splitlines()
if len(lines) < 2:
print("Erreur : Impossible de lire la sortie de df.")
return
header = lines[0].split()
data_row = lines[1].split()
# Extraire l'utilisation (ex: 45%)
use_idx = header.index('Use%') if 'Use%' in header else 4
use_percent = data_row[use_idx]
print(f"PlugMate Storage Status:")
print(f"Partition : /data (eMMC chiffré)")
print(f"Utilisation : {use_percent}")
print(f"Détails : {data_row}")
# Alerte si plus de 90%
val = int(use_percent.strip('%'))
if val > 90:
print("ALERTE : Espace disque critique (<10% restant).")
sys.exit(1)
except subprocess.CalledProcessError as e:
print(f"Erreur ADB : {e.stderr}")
sys.exit(1)
except Exception as e:
print(f"Erreur inattendue : {e}")
sys.exit(1)
if __name__ == "__main__":
check_storage()