Fix TypeError altitude null + erreurs affichées dans l'UI

- 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 <noreply@anthropic.com>
This commit is contained in:
nicoboy
2026-06-01 14:49:22 +02:00
parent f7a096c6a7
commit 1d095cd233
2 changed files with 6 additions and 3 deletions

View File

@ -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")

View File

@ -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":