Lors du développement de l’integration vigieau il aurait été interressant de récuperer les coordonnées de la maison que l’on a configuré dans Gladys
Voici le retour de claude sur le sujet :
1 & 2. Récupérer le lieu de la maison Gladys — impossible, et ce n'est pas contournable
J'ai cloné le cœur de Gladys pour vérifier plutôt que supposer. La maison a bien des coordonnées (server/models/house.js : latitude/longitude), mais rien ne les expose à un conteneur d'intégration :
L'API hôte des intégrations (/api/integration/v1/*) compte exactement 21 routes (server/api/routes.js) — aucune ne concerne la maison. getConfig() ne renvoie que la config de l'intégration elle-même.
GET /api/v1/house est authenticated: true, donc un JWT utilisateur : session.validateAccessToken exige audience: 'user', alors qu'un token d'intégration porte audience: 'integration'. Le middleware le dit explicitement — les deux publics ne se croisent jamais.
Voie détournée par getDevices() : la réponse inclut bien room, mais getStandardDeviceIncludes() n'imbrique pas la maison — la pièce ne porte qu'un house_id, sans coordonnées.
Le bouton demandé nécessiterait donc une PR sur le cœur (une route GET /api/integration/v1/house + une méthode SDK). Je n'ai rien implémenté de ce côté, et j'ai consigné le constat dans CLAUDE.md pour que ce ne soit pas ré-instruit.
Pas possible de coordonner avec le dev de @Will_71 et choisir son « opérateur » de météo ?
Je sais qu’il était question de ça pour fusionner Openweathermap et MétéoFrance dans l’intégration interne et choisir celui que l’on souhaitait.
Maintenant avec l’intégration externe, je ne sais plus ce qu’il en est, trop de sujets à suivre et se souvenir
@pierre-gilles a modifié le SDK pour qu’on puisse développer des intégrations météo externes.
Le widget que j’ai développé sera dans le core et on pourra choisir la source qui prendra soit OpenWeather, Météo France, Météo Suisse…
De mon côté, l’intégration externe Météo-France est prête à être testée. J’attends juste que la PR du SDK et du core Gladys, avec la partie météo, soit prête.
Bonne nouvelle, on est d’accord que c’est un vrai besoin Et pas que pour vigieau d’ailleurs : météo, qualité de l’air, pollens… toutes les intégrations liées à la localisation ont ce problème aujourd’hui.
Ton analyse est correcte : les coordonnées sont bien en base, mais rien ne les expose côté API des intégrations. On va donc ajouter une route GET /api/integration/v1/house qui renverra la liste des maisons avec leur nom et leurs coordonnées (et uniquement ça, pas les infos d’alarme évidemment), avec la méthode SDK qui va avec.
Petit détail qui a son importance : les coordonnées de la maison, c’est une donnée sensible (c’est l’adresse du domicile !). Du coup, l’intégration devra déclarer dans son manifest qu’elle a besoin de la localisation, et ce sera visible dans le store avant l’installation. Si l’intégration ne l’a pas déclaré, l’API renverra un 403. Même logique que ce qu’on fait déjà pour la découverte réseau.
À noter pour ton code : les coordonnées peuvent être nulles (si l’utilisateur ne les a pas configurées), et il peut y avoir plusieurs maisons. Pense à gérer ces deux cas