piles : rappel 09:00 et acquittement ; alertes certificats et EDF ; lecture autonomie VW ; dedoublonnage des releves

This commit is contained in:
2026-10-14 00:39:44 +02:00
parent 9d100b45c6
commit da0bcaaa0e
9 changed files with 267 additions and 17 deletions

View File

@@ -50,7 +50,9 @@ PROMPT = ("Photo d'un tableau de bord de véhicule, ou capture d'une application
"\"autonomie_electrique_km\": entier ou null}. kilometrage_km = l'ODOMÈTRE (kilométrage total du "
"véhicule, souvent 5 ou 6 chiffres), JAMAIS une autonomie ni un trajet. batterie_pct = le pourcentage "
"de la batterie de traction s'il est écrit en chiffres, sinon null (ne pas l'estimer d'après une jauge). "
"Valeur illisible ou absente = null.")
"autonomie_electrique_km = le PETIT nombre suivi de « km » placé à côté d'une icône de prise, de "
"pompe ou de batterie (sur la VW : en bas à gauche, ex. « 23 km »), à ne pas confondre avec "
"l'odomètre. Valeur illisible ou absente = null.")
def lire(img, veh):
if not os.path.isfile(img): print(f"Lecture impossible : image introuvable ({img})."); return
@@ -101,6 +103,8 @@ def confirmer():
os.remove(PENDING); print("La lecture de photo date de plus d'une heure : annulée, renvoie la photo."); return
env = dict(os.environ)
if p.get("source"): env["CONCIERGE_RELEVE_SOURCE"] = p["source"] # niveau estimé → 5e champ du relevé
try: env["CONCIERGE_RELEVE_TS"] = str(int(os.path.getmtime(p["image"]))) # relevé daté de la photo (EVCS)
except Exception: pass
res = subprocess.run(["node", os.path.join(WS, "concierge-live.js"), "answer", p["texte"]],
capture_output=True, text=True, timeout=120, env=env)
os.remove(PENDING)