Dvittorio Posté(e) le 26 juillet 2018 Signaler Posté(e) le 26 juillet 2018 Salut tout le monde,Est-ce que quelqu'un a réussi à s'interfacer via l'API Legrand le Thermostat connecté SMARTHER? https://developer.legrand.com/docs/services/5a00867ea719680f8450b985/operations/5a00867fa719681db4fd473f c'est le thermostat https://www.legrand.fr/pro/actualites/le-thermostat-connecte-smarther-le-pilotage-du-chauffage-en-toute-simplicite J'ai réussi à le lire après l'inscription, mais seulement à partir du web, malheureusementAvec HC2, je ne peux pas m'authentifier mercì
jojo Posté(e) le 26 juillet 2018 Signaler Posté(e) le 26 juillet 2018 je n'ai pas regardé tes liens, mais ce que je peux déjà poser comme questions : - je suppose que tu veux lire les valeurs depuis un VD ? - est-ce que l'api fontionne en https ? Si oui, il n'est pas possible de l'interroger depuis des VD, mais uniquement depuis une scène
Dvittorio Posté(e) le 26 juillet 2018 Auteur Signaler Posté(e) le 26 juillet 2018 il y a 7 minutes, jojo a dit : je n'ai pas regardé tes liens, mais ce que je peux déjà poser comme questions : - je suppose que tu veux lire les valeurs depuis un VD ? - est-ce que l'api fontionne en https ? Si oui, il n'est pas possible de l'interroger depuis des VD, mais uniquement depuis une scène les API fonctionnent en https.Je voulais créer un VD avec des labels gérés par une scène LUA.le problème principal est que je dois faire une authentification Oauth2 mais il faut forcément un redirect_uri avec une page de connexion et c'est impossible pour moi
jojo Posté(e) le 26 juillet 2018 Signaler Posté(e) le 26 juillet 2018 on arrive déjà aux limites de mes connaissances ... mais passer par une page intermédiaire d'authentification, ça ne me semble pas possible depuis la HC2. Mais il devrait te générer un token qui tu permettrait de bypasser cette étape ?
Dvittorio Posté(e) le 26 juillet 2018 Auteur Signaler Posté(e) le 26 juillet 2018 Si j'utilise l'appel Oauth2, je reçois un token que je dois utiliser pour les prochains appels d'API.Le problème que le token est lié à l'interface que j'utilise en ce moment et s'il me redirige vers le web, le token sera valide pour le web et non pour le HC2
pepite Posté(e) le 26 juillet 2018 Signaler Posté(e) le 26 juillet 2018 Bonjour, il y a 17 minutes, Dvittorio a dit : token est lié à l'interface TOn token est lié à l'interface ? Une fois que tu as ton token, tu passes bien par une URL ? Celle ci modifée avec tes infos fonctionnent-elles ? https://api.developer.legrand.com/smarther/{apiVersion}/chronothermostat/thermoregulation/addressLocation/plants/{plantId}/modules/parameter/id/value/{moduleId}/measures
Dvittorio Posté(e) le 26 juillet 2018 Auteur Signaler Posté(e) le 26 juillet 2018 il y a 18 minutes, pepite a dit : Bonjour, TOn token est lié à l'interface ? Une fois que tu as ton token, tu passes bien par une URL ? seulement la première fois, demande l'utilisateur et le mot de passe. il y a 19 minutes, pepite a dit : Celle ci modifée avec tes infos fonctionnent-elles ? https://api.developer.legrand.com/smarther/{apiVersion}/chronothermostat/thermoregulation/addressLocation/plants/{plantId}/modules/parameter/id/value/{moduleId}/measures de hc2 cela fonctionne mais il me renvoie l'erreur 401 "Unauthorized" le token d'autorisation est manquant.si je l'essaie à travers l'interface legrand tout fonctionne correctement
pepite Posté(e) le 26 juillet 2018 Signaler Posté(e) le 26 juillet 2018 Tu as donc déja ecrit une scene avec du net.HTTPclient() ? le token se met dans le Headers, à voir ce qu'il y a a mettre aussi dans le header Exemple pour le Header d'un thermostat nest options = { method = 'PUT', headers = { ["content-type"] = "application/json", ["Authorization"] = "Bearer "..access_token }, Et voila ce que tu as dans la doc de l'API Smarther
Dvittorio Posté(e) le 26 juillet 2018 Auteur Signaler Posté(e) le 26 juillet 2018 l'appel à Chronothermostat mesures que j'ai déjà créé et je n'ai pas de problèmes, sauf que cela me donne 401 parce que je ne suis pas connecté.devorei exécute d'abord le point de fin d'autorisation selon la documentation https://developer.legrand.com/help-center/tutorial malheureusement, je m'arrête ici, je ne peux pas récupérer le token, puis continuer
pepite Posté(e) le 27 juillet 2018 Signaler Posté(e) le 27 juillet 2018 Bonjour, Tu as donc bien fait le Getting Started ? As tu continue et creer l'application ?
Dvittorio Posté(e) le 27 juillet 2018 Auteur Signaler Posté(e) le 27 juillet 2018 Bonjour,Oui, j'ai commencé le gettin, puis j'ai créé l'application, qui a été approuvée par Legrand et ils m'ont envoyé le client_id et le client_secret
pepite Posté(e) le 27 juillet 2018 Signaler Posté(e) le 27 juillet 2018 Re, Maintenant de ce que je comprends évidemment ;-) tu dois passer à Autorization End-Point qui va te retourner un code necessaire pour recuperer l'acess_token
Dvittorio Posté(e) le 27 juillet 2018 Auteur Signaler Posté(e) le 27 juillet 2018 exact, mais ici le problème se pose. dans les paramètres, il veut un redirect_uri à une page Web ou similaire, où je dois insérer mon utilisateur et mot de passe exemple de l'appel : https://partners-login.eliotbylegrand.com/authorize? client_id=7700d7f4-b48e-4452-b493-5d14b45ef47e &response_type=code &state=d8cdccaa-0c37-4493-ab37-d5d92bc99cd7 &redirect_uri=https://www.mycompany.com/callback/
pepite Posté(e) le 27 juillet 2018 Signaler Posté(e) le 27 juillet 2018 C'est là que e ne comprends pas. Pourquoi rencontres tu un probleme ? Si tu mets ton client_id et tu modifies le state, tu n'as pas de retour ?
Dvittorio Posté(e) le 27 juillet 2018 Auteur Signaler Posté(e) le 27 juillet 2018 pour faire l'appel je dois mettre un redirect_uri dans les paramètres et quand je fais l'appel me redirige vers le lien et si je ne mets pas manuellement mon utilisateur et pawwsord ne me donne pas le token
pepite Posté(e) le 27 juillet 2018 Signaler Posté(e) le 27 juillet 2018 heuuuuuu attends que je comprenne, cette partie du tuto tu essaies de la faire en LUA ? c'est ca ?
Dvittorio Posté(e) le 27 juillet 2018 Auteur Signaler Posté(e) le 27 juillet 2018 c'est le mon code lua local http = net.HTTPClient(); http:request('https://partners-login.eliotbylegrand.com/authorize?client_id=(mon client-id)&response_type=code&state=d8cdccaa-0c37-4493-ab37-d5d92bc99cd7&redirect_uri=urn:ietf:wg:oauth:2.0:oob',{ options = { method = 'GET' , }, success = function(response) fibaro:debug(response.data) end, error = function(err) fibaro:debug("Error: " ..err) end }) la réponse [DEBUG] 14:26:14: Error: Connection reset by peer
pepite Posté(e) le 27 juillet 2018 Signaler Posté(e) le 27 juillet 2018 Cette partie tu ne dois pas la faire en lua pour récuperer le code qui va te permettre te recuperer ton token. Ce n'est à faire qu'une seule fois, fias le depuis un navigateur et récupère le code. Citation This flow must be done only once, during account linking. After that, you must used /token flow periodicaly to get and refresh access_token Citation Answer The server returns a code, used with the token end-point. ensuite : Citation Token end-point This end point is used to get and refresh the access_token. Authorization code flow Request To get the access_token (which must be add to the request each time you call an API), you must make a POST request to token end-point te permet de récuperer : - 1 access_token : valide 1h - 1 refresh_token, valide 90 jours.
Dvittorio Posté(e) le 27 juillet 2018 Auteur Signaler Posté(e) le 27 juillet 2018 bien, je comprends.J'ai fait l'appel de la connexion du navigateur et renvoyé un token plus d'autres données.Je l'ai mis dans le code luamais maintenant il me donne l'erreur: 500 internal server error @pepite Je tiens à vous remercier pour l'aide que vous me donnez
pepite Posté(e) le 27 juillet 2018 Signaler Posté(e) le 27 juillet 2018 De rien. L'url à mettre dans le code est celui-ci maintenant : https://partners-login.eliotbylegrand.com/token?client_id=ton_client_id &grant_type=authorization_code &code=celui_que_tu_as_eu_dans_authorization_end_point &client_secret=ton_client_secret et ce n'est plus GET mais POST pour la méthode Citation To get the access_token (which must be add to the request each time you call an API), you must make a POST request to Donc : options = { method = 'POST' , },
Dvittorio Posté(e) le 27 juillet 2018 Auteur Signaler Posté(e) le 27 juillet 2018 rien à faire. lua - connection reset by peer si j'essaye d'appeler de Curl la réponse est "error": "invalid_grant", "error_description": "AADB2C90090: The provided JWE is not a valid 5 segment token.\r\nCorrelation ID: e4f52265-1d2e-464b-b769-426a5e41b375\r\nTimestamp: 2018-07-27 15:00:46Z\r\n Je ne peux pas comprendre ... je suis décourageant
Dvittorio Posté(e) le 1 août 2018 Auteur Signaler Posté(e) le 1 août 2018 Bonjour,Malheureusement, la chose est vraiment étrange.L'assistance de Legrand est lente à répondre et je crains de ne pouvoir comprendre mon problème.
roberto.rattin@gmail.com Posté(e) le 2 février 2019 Signaler Posté(e) le 2 février 2019 Hello everyone! News with the api 2.0? did you manage to create a virtual device? Thank you!
roberto.rattin@gmail.com Posté(e) le 12 février 2019 Signaler Posté(e) le 12 février 2019 Nothing news?
Messages recommandés