idomotique Posté(e) le 8 octobre 2020 Signaler Posté(e) le 8 octobre 2020 Bonjour tout le monde, Je suis en train de m'arracher les cheveux... Je tente de faire une Quickapp pour des interrupteurs Dingz. Je fais pour commencer une simple requête get pour récupérer les informations de l'appareil. voila le résultat dans le browser de la requète "http://192.168.1.161/api/v1/info": je la fais donc dans une scène: local ip= "192.168.1.161" local address ="http://"..ip.."/api/v1/" local http = net.HTTPClient({timeout=3000}) function apigetinfo() local data = 0 address= address .. "info" http:request(address, { options={ headers = {Accept = "application/json"}, method = 'GET' }, success = function(response) data = json.decode(response.data) fibaro.debug("Scene145", data.ssid) end, error = function(error) fibaro.debug('error API: ' .. json.encode(error)) end }) end apigetinfo() et voila la réponse : [08.10.2020] [21:33:19] [DEBUG] [SCENE145]: idomotique 2.4 GHz donc apparement l'api fonctionne et l'interrupteur me réponds correctement . Du coup je me lance dans la QA function QuickApp:onInit() self:debug("onInit") self.http = net.HTTPClient({timeout = 10000}) self:trace("******** QA is initialised. Connecting to Dingz ********") self:updateView('infos', 'text', 'Connexion à Dingz!') end function QuickApp:bUpdate() local address = "http://192.168.1.161/api/v1/info" self.http:request("http://192.168.1.161/api/v1/info", { options={ headers = {Accept = "application/json"}, method = "GET" }, success = function(response) self:debug("succès") self:debug("response: ".. response.status) local data = json.decode(response.data) self:debug(data.ssid) end, error = function(error) self:debug("fail") self:debug('error: ' .. json.encode(error)) end }) end function QuickApp:allumerlampe() self.http:request("http://192.168.1.161/api/v1/button/1/single-press", { options = { method = "POST", headers = { Accept = "application/json" } }, success = function(response) self:debug( response.status) end, error = function(message) self:debug( message) end }) end Et la c'est le drame...... A tous les coups je reçoit [08.10.2020] [21:24:24] [DEBUG] [QUICKAPP872]: fail[08.10.2020] [21:24:24] [DEBUG] [QUICKAPP872]: error: "Operation canceled" Quand j'utilise la fonction allumerlampe je vois effectivement la lampe connectée à mon interrupteur s'allumer. Du coup mes conclusions sont les suivantes: - l'adresse ip et l'appel API sont juste vu que cela fonctionne dans le browser et dans la scène - l'appareil reçoit les commande envoyée depuis la QA vu que la lampe s'allume sur la requète POST - le retour de la requête GET ne fonctionne pas sur la QA et provoque un timeout. Problème de port? bug des QA? paramétrage caché des QA? .... Est ce que qqn aurait la moindre idée pour me sortir de la? Un grand merci d'avance.
jjacques68 Posté(e) le 10 octobre 2020 Signaler Posté(e) le 10 octobre 2020 tu n'aurais pas un problème d'authentification ?
idomotique Posté(e) le 10 octobre 2020 Auteur Signaler Posté(e) le 10 octobre 2020 Hello, non vu que ça confonde avec la scène...Et de toute façon pour le moment le module n'est pas protégé. Envoyé de mon SM-A516B en utilisant Tapatalk
Messages recommandés