jjacques68 Posté(e) le 2 juillet Signaler Posté(e) le 2 juillet (modifié) Hello ! j'aimerai savoir si qqun a déjà utilisé l'API d'une bbox ? le but étant de faire un reboot de la bbox toutes les nuits. (le plan B sera un wall plug sur son alim... mais si on peut faire un peu plus en finesse... j'ai fouillé sur le net et j'ai trouvé ça : https://api.bbox.fr/doc/apirouter/index.html mais je sais pas si c'est à jour, et semble restreint à des développeurs pro J'ai testé quelques URL vite fait (celles sans paramètres) et j'ai des réponses... Mais elles sont rares... Et là manière de s'authentifier (password=xxxxxxx) semble assez "simpliste" et bien sûr ne marche pas. j'ai l'impression d'être le seul à vouloir faire ça... si vous avez des idées, je suis preneur merci à vous !! Modifié le 2 juillet par jjacques68
RHODITIS Posté(e) le 3 juillet Signaler Posté(e) le 3 juillet (modifié) Vous n'êtes absolument pas le seul à vouloir faire ça. En ce qui me concerne je voulais un peu plus mais en le mettant en place en moins de 3 minutes et sans développement... J'utilise une prise Keep Connect qui peut être programmée pour relancer la box si il y a une coupure internet ou simplement pour relancer la box sur une base régulière. Le principe est simple. Un site web (Ex. Google.com) est demandé toutes les X minutes. Si le site ne répond pas un second site est demandé (CNN.com). Si aucun des deux ne répond la prise coupe le courant et relance la box. La prise Keep Connect n'est pas beaucoup plus chère qu'un wall plug et est extrêmement paramétrable. Je peux par exemple entrer le nombre d'essais avant de relancer la box, combien de temps attendre entre deux essais. Aussi, si ma box met 6 minutes à démarrer je vais indiquer qu'il faut attendre 8 minutes après un reset pour faire un nouvel essai sinon je vais avoir des resets en boucle. Vous recevez par SMS ou Email une notification que votre Keep Connect à procédé à une relance de votre box. Pour plus de raffinement dans les paramètres les pros pourront souscrire à un abonnement mais en toute honnêteté pour un utilisateur lambda les fonctionnalités de base sont largement suffisantes. Modifié le 3 juillet par RHODITIS 1
RHODITIS Posté(e) le 3 juillet Signaler Posté(e) le 3 juillet Oui bien sûr. Ici par exemple l'explication du fonctionnement. On peut trouver la prise sur Amazon.fr pour une cinquantaine d'euros. Chercher avec "Keep Connect" 1
jojo Posté(e) le 3 juillet Signaler Posté(e) le 3 juillet de ce que je vois cela dépend fortement du cloud. Y a-t-il une API locale, car si je coupe mon modem par leur cloud, je ne pourrai plus le redémarrer à distance. Est-il possible de lui dire que de (date & heure) à (date et heure) il ne fasse rien (par exemple parce que j'ai été informé d'une coupure internet, et je ne veux donc pas de reboots intempestifs inutiles) ?
RHODITIS Posté(e) le 3 juillet Signaler Posté(e) le 3 juillet Lorsque internet est coupé il n'est plus question de cloud : le module est programmé (en interne) pour couper le courant si les deux sites ne répondent pas. En ce qui me concerne, ma hantise est qu'il faille rebooter la box pendant une absence, donc pendant cette période je le mets sur un essai par heure. Il ne m'est jamais arrivé qu'on me prévienne d'une coupure internet mais si cela devait être le cas je laisserais l'automatisme en indiquant qu'après un essai il faut attendre 6 heures par exemple pour ré-essayer. Maintenant, moyennant abonnement on peut accéder à l'appareil et agir sur lui à distance. Je n'ai pas exploré parce que je n'en ai pas besoin. Cela fait l'objet d'une seconde vidéo qui explique ce possibilités.
jjacques68 Posté(e) le 3 juillet Auteur Signaler Posté(e) le 3 juillet (modifié) merci @RHODITIS, mais je vais encore creuser un peu côté API... Et j'ai trouvé tout ce qu'il me faut. https://mabbox.bytel.fr/api/v1/login (pour se loguer sur la bbox) https://mabbox.bytel.fr/api/v1/device/token (pour récupérer un token) https://mabbox.bytel.fr/api/v1/device/reboot?btoken=le_token_récupéré_précédement (pour demander le reboot) J'arrive à faire fonctionner exactement comme je veux avec Postman depuis mon poste de dev (windows) sauf que quand j'essaye de transposé dans un QA ça bug... et je ne sais pas pourquoi !! Il semblerait y avoir un soucis de certificat, mais alors pourquoi PAS avec Postman... ??? voici avec Postman la requête exécutée qui fonctionne très bien : POST /api/v1/login HTTP/1.1 Host: mabbox.bytel.fr Content-Type: application/x-www-form-urlencoded Cookie: BBOX_ID=2.1e.6d42.6633487374b0dc5119495cff.a8442c867218f0341777fe038ca005a8c7d8581a Content-Length: 24 password=blablabla voici ce que je code dans le QA : function QuickApp:login() local adresse = "192.168.0.1" local url = string.format("https://%s/api/v1/login", adresse) self.http:request(url, { options={ headers = { ["Content-Type"] = "application/x-www-form-urlencoded", ["Content-Length"] = "24", ["Host"] = adresse }, method = 'POST', checkCertificate = false, data = "password=blablabla" }, success = function(response) self:debug(response.status, json.encode(response)) end, error = function(error) self:warning("error:", error) end, }) end avec checkCertificate = true (ou sans le checkCertificate), j'ai la réponse suivante : error: certificate verify failed avec checkCertificate = false, j'ai la réponse suivante : err 400 (mais dans le retour success) {"headers":{"Content-Type":"text\/html","Connection":"close","Server":"Lighttpd","Content-Length":"345","Date":"Wed, 03 Jul 2024 14:01:54 GMT"},"status":400,"data":""} C'est vraiment étrange... en plus je dois changer l'adresse car avec Postman, il connait "mabbox.bytel.fr" mais pas la HC3 (obligé de passer par son IP locale) J'ai du mal à situer l'erreur... Le Header "Cookie" est géré par postman, j'ai essayé de l'ajouté mais ça change rien du tout. En plus la valeur change à chaque appel. si qqun a une idée ? merci d'avance ! Modifié le 3 juillet par jjacques68
Kana-chan Posté(e) le 4 juillet Signaler Posté(e) le 4 juillet Bonjour, Dans le header, il n'est pas utile de mettre Content-Length et Host. Après, est-ce de la data le password ? ou bien un params plutôt ?
jjacques68 Posté(e) le 5 juillet Auteur Signaler Posté(e) le 5 juillet Il y a 21 heures, Kana-chan a dit : Bonjour, Dans le header, il n'est pas utile de mettre Content-Length et Host. Après, est-ce de la data le password ? ou bien un params plutôt ? si je ne mets pas le host et content-length, j'ai une erreur. pour le password, dans Postman, il est déclaré dans la section "body". idem, si je le mets ailleurs j'ai une erreur. Après est ce que le body = data ?
jjacques68 Posté(e) le 6 juillet Auteur Signaler Posté(e) le 6 juillet C'est un truc de fou ! J'ai essayé en faisant un batch avec windev (toujours sur avec mon de dev) et j'ai le même comportement qu'avec la HC3 error 400 bad request ! qu'est ce que Postman peut bien faire de plus que ce que je fais ?!
Kana-chan Posté(e) le 6 juillet Signaler Posté(e) le 6 juillet (modifié) Je ne sais plus trop en LUA mais request doit avoir plusieurs arguments, il doit être possible de mettre data= (comme body) ou bien params= (pour mettre des ?aa=bb&cc=dd comme sur une URL) ou encore json= (avec du code JSON derrière), comme vous faite le headers=. Après, il faut trouver la forme de ces arguments, est-ce une chaine de caractères ? Je ne sais plus. Edit : Bon je viens de lire la doc de fibaro sur request et dans les options c'est bien headers=, data=, method= et timeout=. Donc essaie plutôt avec adresse = "mabbox.bytel.fr". Modifié le 6 juillet par Kana-chan
jjacques68 Posté(e) le 6 juillet Auteur Signaler Posté(e) le 6 juillet il y a 12 minutes, Kana-chan a dit : params= (pour mettre des ?aa=bb&cc=dd comme sur une URL) mais oui biensûr !! merci @Kana-chan https://mabbox.bytel.fr/api/v1/login?password=blablabla et là ça fonctionne avec windev, mais toujours un problème de certificat avec la HC3
Kana-chan Posté(e) le 6 juillet Signaler Posté(e) le 6 juillet (modifié) C'est le request implémenté en LUA fibaro qui doit poser problème. Essayez avec data="password=blabla" pour voir car il n'y a pas params= pour request dans le LUA de fibaro, et adresse = "mabbox.bytel.fr" pour être dans les mêmes conditions. Modifié le 6 juillet par Kana-chan
jjacques68 Posté(e) le 8 juillet Auteur Signaler Posté(e) le 8 juillet (modifié) j'ai essayé, ça passe pas. Toujours ce problème de certificat, que je n'ai pas avec windev sous windows... si je n'y arrive pas avec la HC3, je fais un batch avec windev, et je le fais tourner avec le planificateur de tâches... Mais ce serait dommage... je creuserais encore, mais bon... Modifié le 8 juillet par jjacques68
Messages recommandés