From 1d095cd233bda3128d1f70a4c6fdc05dcbdbe3da Mon Sep 17 00:00:00 2001 From: nicoboy Date: Mon, 1 Jun 2026 14:49:22 +0200 Subject: [PATCH] =?UTF-8?q?Fix=20TypeError=20altitude=20null=20+=20erreurs?= =?UTF-8?q?=20affich=C3=A9es=20dans=20l'UI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - float(cmd.get("altitude") or 15) : gère altitude=null retourné par Gemini pour les commandes sans altitude (land, rtl, status…) - /command attrape les exceptions et retourne JSON 500 avec le message d'erreur, évite le "Erreur réseau" opaque dans la page Co-Authored-By: Claude Sonnet 4.6 --- web_server.py | 7 +++++-- wireclaw_core.py | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/web_server.py b/web_server.py index 7354180..a429e72 100644 --- a/web_server.py +++ b/web_server.py @@ -28,8 +28,11 @@ class CommandRequest(BaseModel): @app.post("/command") async def command(req: CommandRequest): - response = await process(req.text) - return {"response": response} + try: + response = await process(req.text) + return {"response": response} + except Exception as e: + return JSONResponse(status_code=500, content={"response": f"Erreur : {e}"}) @app.get("/status") diff --git a/wireclaw_core.py b/wireclaw_core.py index abafb63..8e44a00 100644 --- a/wireclaw_core.py +++ b/wireclaw_core.py @@ -96,7 +96,7 @@ async def interpret_command(text): async def execute_command(drone, cmd): global drone_armed action = cmd.get("action") - alt = float(cmd.get("altitude", 15)) + alt = float(cmd.get("altitude") or 15) msg = cmd.get("message", "OK") if action == "position":