flacon030 Posté(e) le 29 novembre 2021 Signaler Posté(e) le 29 novembre 2021 (modifié) Je me doute bien qu'il y a déjà des infos pour savoir comment faire, c'est pas faute d'avoir essayer de comprendre Mais Désolé je n'arrive pas toujours Pour moi c'est une nouveau chapitre que j'aborde avec la HC3 J'y arrive beaucoup mieux quant j'ai un exemple concret sous les yeux Après cela me permet de mieux assimiler et de pouvoir adapter en fonction de mes besoins J'ai déjà regarder tous le week-end comment on fait mais désolé je n'ai pas réussi pour l'exemple ci dessus ok je comprends qu'il ne faut mettre que l'adresse IP et son port dans http:request(), mais du coup que faire du reste? Ou le placer? GET /googlehome? annoucement=someone%20at%20the%20door HTTP/1.1 Merci Modifié le 29 novembre 2021 par flacon030
Lazer Posté(e) le 29 novembre 2021 Auteur Signaler Posté(e) le 29 novembre 2021 Juste l'URL, comme dans ton navigateur. Tout simple. Exemple : "http://mon.adresse.com/googlehome?annoucement=someone%20at%20the%20door" Pour ton QuickApp, il te suffit de partir d'un QA exemple proposé par Fibaro. Choisi le type qui correspond à ton besoin. En complément ne pas oublier la doc officielle : https://manuals.fibaro.com/home-center-3-quick-apps/ Il y a un paragraphe sur la création d'un bouton.
flacon030 Posté(e) le 30 novembre 2021 Signaler Posté(e) le 30 novembre 2021 Merci je vais regarder a tous cela
971jmd Posté(e) le 22 mars 2022 Signaler Posté(e) le 22 mars 2022 (modifié) salut à tous J'ai une erreur 400 de mon code ci-dessous, après un bonheur de recherche je ne trouve toujours pas le problème. Merci d'avance pour votre aide [22.03.2022] [13:25:39] [DEBUG] [SCENE253]: Erreur : status=400 https://voicemonkey.io/start local var1 = "Hello%20monkey" local http = net.HTTPClient() http:request("https://api.voicemonkey.io/trigger?access_token=xxxxxxxxxxxde15&secret_token=xxxxxxxxxxxxx&monkey=fibaro&announcement="..var1, { success = function(response) if response.status == 200 then print('OK, réponse : '.. response.data) else print("Erreur : status=" .. tostring(response.status)) end end, error = function(err) print("Erreur : " .. err) end, options = { method = 'GET' } }) Modifié le 22 mars 2022 par 971jmd
Lazer Posté(e) le 22 mars 2022 Auteur Signaler Posté(e) le 22 mars 2022 Le code http 400 signifie "bad request". Jamais facile à débugger... mais tu n'aurais pas un caractère caché, ou autre problème de syntaxe dans l'URL que tu utilises pour ta requête ? Car du point de vue de ta box domotique, ta requête a bien été effectuée, puis c'est la fonction success() qui a été appelée, donc c'est bien le serveur Web qui a reçu puis rejeté ta requête.
971jmd Posté(e) le 23 mars 2022 Signaler Posté(e) le 23 mars 2022 salut j'ai abandonné pour le moment je test https://voicemonkey.io/start qui est prometteur
stipower Posté(e) le 24 janvier Signaler Posté(e) le 24 janvier (modifié) Hello, Bon, j'ai un truc bizarre. Je n'ai pas le même comportement avec net.HTTPClient() dans une scène ou dans un QApp. Cela marche bien dans une scène. réponse 302 : login ok donc redirection et je récupère le cookie et je fais la suite, blablabla. Sur ma Qapp, si je vire pas le CheckCertificate alors je n'ai plus de réponse. Il ne se passe rien. Si je vire le CheckCertificate, alors j'ai une réponse erreur 404. La même erreur que quand je mets des faux login/password. Dans la scène, ces même logins/ password sont OK. Y a-t-il un comportement différent attendu entre les Scènes et les App ??? Merci Voici mon code QA qui marche pas (erreur 404) : function QuickApp:onInit() self:debug("onInit") -- récupère le token Easee -- variables locales local Debugging = 01 local EaseeURLlogin = "https://api.easee.com/api/accounts/login" EaseeURLlogin = "https://www.rika-firenet.com/web/login/" --EaseeURLlogin = "https://free.fr" local http = net.HTTPClient() local user = "toto" local password = "titi" local HTTPdata = '{"email": "'.. user .. '", "password": "' .. password .. '"}' if Debugging > 0 then fibaro.debug(DebugTag,"EaseeURLlogin : "..EaseeURLlogin) fibaro.debug(DebugTag,"HTTPdata : "..HTTPdata) end http:request(EaseeURLlogin, { options = { --checkCertificate = false, method = 'POST', headers = { ['Accept'] = 'application/json', ['Content-Type'] = 'application/json', }, data = HTTPdata, timeout = 10000 }, success = function(response) fibaro.debug(DebugTag,'ici') fibaro.debug(DebugTag,response.status) end, error = function(err) local msg = "Erreur : " .. err fibaro.warning(DebugTag,msg) end, } ) end debug Qapp: [24.01.2025] [13:41:18] [DEBUG] [QUICKAPP345]: onInit [24.01.2025] [13:41:18] [DEBUG] [TEST]: EaseeURLlogin : https://www.rika-firenet.com/web/login/ [24.01.2025] [13:41:18] [DEBUG] [TEST]: HTTPdata : {"email": "toto", "password": "titi"} [24.01.2025] [13:41:19] [DEBUG] [TEST]: ici [24.01.2025] [13:41:19] [DEBUG] [TEST]: 404 Voici mon code dans la scène (qui marche bien code 302) function APIGetInfo(URLBase, user ,password, Stove, parametre, value) -- variables locales local DebugTag = "SC_RIKA_107_APIGetInfo" local Debugging = 0 local URLLogin = "/web/login" local URLAPI = "/api/client/"..Stove.."/status?nocache=" local Cookie = "vide" local Revision = "vide" -- à virer ?????????? local URL = URLBase..URLLogin local HTTPdata = '{"email": "'.. user .. '", "password": "' .. password .. '"}' if Debugging > 0 then fibaro.debug(DebugTag,"**************** Login ****************") fibaro.debug(DebugTag,"URL = " .. URL) fibaro.debug(DebugTag,"HTTPdata : "..HTTPdata) end http:request(URL, { options = { method = 'POST', headers = { ['Accept'] = 'application/json', ['Content-Type'] = 'application/json', }, data = HTTPdata, timeout = 10000 }, success = function(response) if Debugging > 0 then fibaro.debug(DebugTag,"status : "..response.status) fibaro.debug(DebugTag,"response : " ..json.encode(response)) fibaro.debug(DebugTag,"response.data : " ..json.encode(response.data)) fibaro.debug(DebugTag,"Cookie : "..response.headers["Set-Cookie"]) end if response.status == 302 or response.status == 200 or response.status == 201 then fibaro.trace(DebugTag,"Login Firenet OK.") Cookie = response.headers["Set-Cookie"] --[... suite du code] debug scène : [24.01.2025] [13:43:09] [DEBUG] [SC_RIKA_107]: **************** Start **************** [24.01.2025] [13:43:09] [DEBUG] [SC_RIKA_107_APIGETINFO]: **************** Login **************** [24.01.2025] [13:43:09] [DEBUG] [SC_RIKA_107_APIGETINFO]: URL = https://www.rika-firenet.com/web/login [24.01.2025] [13:43:09] [DEBUG] [SC_RIKA_107_APIGETINFO]: HTTPdata : {"email": "XXX", "password": "YYY"} [24.01.2025] [13:43:10] [DEBUG] [SC_RIKA_107_APIGETINFO]: status : 302 [24.01.2025] [13:43:10] [DEBUG] [SC_RIKA_107_APIGETINFO]: response : {"data":"","headers":{"Strict-Transport-Security":"max-age=15552000; includeSubDomains","........ Modifié le 24 janvier par stipower
Lazer Posté(e) le 24 janvier Auteur Signaler Posté(e) le 24 janvier Il est fort possible que la version des librairies utilisées par Fibaro soit différente entre les Scènes et les QuickApps... car même la version du moteur d'exécution LUA diffère ! Par ailleurs, certaines libraires et fonctions sont carrément présentes/absentes selon si on est dans une Scène ou un QuickApp... voir mon topic dédié à l'exploration : S'il s'agit d'un comportement anormal, bug, ou changement de comportement apporté par une mise à jour récente, le mieux est de remonter le problème directement à Fibaro en passant par le forum officiel.
stipower Posté(e) vendredi à 21:48 Signaler Posté(e) vendredi à 21:48 Rha la loose. Merci pour ton retour. J'ai ouvert un case au support. Obligé en attendant de faire tourner une scène toutes les 10 secondes en allant chercher de variables globales. Ca me rappelle ma HC2 ...
Messages recommandés