jojo Posté(e) le 13 août 2022 Signaler Posté(e) le 13 août 2022 bonjour, Pour mon QA Nuki (qui une fois ok deviendra un tuto ...) je dois renseigner au ma serrure l'url qu'elle doit appeler dès qu'il y a un changement de statut de la serrure (comme ça le QA affichera toujours la bonne info) J'ai essayé ceci, mais évidemment, ça ne fonctionne pas http://<HC3_user>:<HC3 pxwd>@<IP HC3>/api/callAction?deviceID=<ID du QA>&name=<nom fonction pour mise à jour> quel type d'url (avec authentification) la HC3 s'attends à recevoir ? Merci
Lazer Posté(e) le 13 août 2022 Signaler Posté(e) le 13 août 2022 Ah, le protocole OAuth 2.0 avec redirection d'URL, une vraie plaie. On a le même problème avec Netatmo qui a décidé de changer son API et qui impose ce nouveau mode d'authentification. Pour l'instant je n'ai pas de solution, et de façon générale cette nouvelle mode va être un problème pour toutes les solutions domotiques locales, hors cloud.
Nico Posté(e) le 13 août 2022 Signaler Posté(e) le 13 août 2022 Et oui, c'est la memerde, j'espère que Fibaro trouvera une solution dans le plugin. Sinon j'ai contact avec qqun de chez NETATMO, et lui me parle d'une solution semi-locale... Je vais la poster dans le topic.
jojo Posté(e) le 13 août 2022 Auteur Signaler Posté(e) le 13 août 2022 merci, mais je ne vous suis plus ... quel rapport avec Netatmo ? dans mes Googles Scripts, qui font également appel à une fonction d'un QA, j(ai mis ceci, et ça fonctionne, mais je n"ai pas trouvé ce qui était envoyé en réalite : var Box_User = "xxx"; var Box_Pwd = "yyy"; var Box_AuthHeader ="Basic " + Utilities.base64Encode(Box_User + ':' + Box_Pwd); var Box_Options = {headers: {Authorization: Box_AuthHeader}}; var Box_IP = "hc3.domaine.ndd"; var Box_Port = "443"; // le port externe qui est redirigé vers le port interne var Box_Protocole = "https"; var Box_Cmd = "api/callAction"; var Var1 = "deviceID"; var Val1 = "###"; var Var2 = "name"; var Val2 = "name of the function"; var url = Box_Protocole + "://" + Box_IP + ":" + Box_Port + "/" + Box_Cmd + "?" + var1 + "=" + val1 + "&" + var2 + "=" + val2; envoi = UrlFetchApp.fetch(url, Box_Options); je n'arrive pas à identifier l'url qui est effectivement envoyée à la box et qui fonctionne. Y aurait-il un log des tentatives d'accès à la box qui me permettrait de voir ce qui cloche /où ça coince ?
Lazer Posté(e) le 13 août 2022 Signaler Posté(e) le 13 août 2022 Hum, tu veux dire que tu arrives déjà à te connecter ? Dans ce cas pas de souci, si ce n'est pas du OAuth 2 avec redirection d'URL. J'ai relu ton message, tu veux juste lui fournir une URL pour être notifié des changements d'état ? Dans ce cas vire le login et password dans l'URL, ça fait longtemps que cette écriture est dépréciée (elle est encore supportée par la plupart des navigateurs cependant) Il faut que tu fournisses les identifiants de connexion sur la HC3 en passant par les entêtes (header) de la requête émise par la serrure Nuki.
jojo Posté(e) le 13 août 2022 Auteur Signaler Posté(e) le 13 août 2022 il y a 9 minutes, Lazer a dit : u veux dire que tu arrives déjà à te connecter ? oui, et appeler une méthode spécifique d'un QA il y a 11 minutes, Lazer a dit : avec redirection d'URL. ici (contrairement à avec mes Google Scripts qui utilisent mon HAProxy) je reste en local, donc je dois juste fournir l'ip locale de la HC3 (192.168.X.y) il y a 15 minutes, Lazer a dit : tu veux juste lui fournir une URL pour être notifié des changements d'état ? oui et cette url va exécuter une méthode d'un QA qui va mettre à jour le statut de la Nuki il y a 18 minutes, Lazer a dit : Il faut que tu fournisses les identifiants de connexion sur la HC3 en passant par les entêtes (header) je me doutais bien, maid pourrais-tu me donner un exple car là on atteint les limites de mon (in)compétence ? Merci
Lazer Posté(e) le 13 août 2022 Signaler Posté(e) le 13 août 2022 https://en.wikipedia.org/wiki/Basic_access_authentication mais un exemple non, je n'ai pas de Nuki, je ne sais pas comment ça se paramètre dedans.
jojo Posté(e) le 13 août 2022 Auteur Signaler Posté(e) le 13 août 2022 merci, je vais étudier ton lien. mais pour l'exemple, c'est simple (sinon je n'aurais même pas commencé), c'est url de mon premier post (sans l'authentification, bien-sûr)
Lazer Posté(e) le 13 août 2022 Signaler Posté(e) le 13 août 2022 Et bien ton user:password il faut l'encoder dans le header, je recopie l'exemple de Wikipedia : Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== avec un encodage de type bas64, exactement comme pour le script de backup automatique que tu utilises déjà.
jojo Posté(e) le 13 août 2022 Auteur Signaler Posté(e) le 13 août 2022 oui, c'était là que j'étais arrivé dans ma lecture, mais quelle url COMPLETE (avec l'authentification et le "message" (=url comme si on n'avait pas besoin d'authentification) dois-je mettre (par exemple dans mon browser) ?
Lazer Posté(e) le 13 août 2022 Signaler Posté(e) le 13 août 2022 L'URL c'est juste l'URL normale, sans ajouter le user:password devant, comme tu l'as fait. http://<IP HC3>/api/callAction?deviceID=<ID du QA>&name=<nom fonction pour mise à jour> Et le user:password, lui est encodé dans le header en base64, comme dans l'exemple de Wikipedia Ensuite tu mets tout ça dans la Nuki... sous réserve qu'elle te le permette, comme dit, je n'ai jamais utilisé.
jojo Posté(e) le 13 août 2022 Auteur Signaler Posté(e) le 13 août 2022 ma Nuki n'a que un seul champ : une url, qui idéalement devrait contenir également l'authentification. Donc il n'est pas possible de générer une ligne (url) avec le "message" et le header d'authentification ?
Lazer Posté(e) le 13 août 2022 Signaler Posté(e) le 13 août 2022 ah OK, bon voilà qui est clair..... pour le login dans l'URL, je ne sais pas si Nuki le supporte, il faut leur demander alors.
jojo Posté(e) le 13 août 2022 Auteur Signaler Posté(e) le 13 août 2022 je vais regarder sur le forum de Nuki, mais comme l'url est un champ text, ce champ peut contenir ce qu'on veut. ici exemple du retour du JSON des url enregistrées (ici 1 url, max 3. possibles) // 20220813180405 // http://192.168.x.y:wwww/callback/list?token=abcdefg { "callbacks": [ { "id": 0, "url": "http://192.168.x.z:ppp/UniversalListen?trame=blablabla" } ] } = exemple pour ma LD (où pas d'authentification nécessaire => NO comment)
jjacques68 Posté(e) le 13 août 2022 Signaler Posté(e) le 13 août 2022 je vais peut-être dire une connerie, mais si tu utilises un user spécifique, il faut penser à lui donner le droit d'accès au QA... peut-être pour ça que ton premier lien n'a pas marcher !?
jojo Posté(e) le 13 août 2022 Auteur Signaler Posté(e) le 13 août 2022 ce n'est pas une bête question, ou bien, alors je suis également très bête, car j'ai déjà eu ce soucis par le passé, et on ne m'y reprendra plus. En fait, comme le disais @Lazer, ma première url fonctionne depuis un browser, mais plus entre serveurs. J'ai eu le soucis avec mes Google Scripts. Pour l'instant ça semble être un limitation au niveau du bridge Nuki. Dès que je trouve une solution, je la partage.
Messages recommandés