Overdrive Posté(e) le 15 avril 2020 Signaler Posté(e) le 15 avril 2020 Bonjour, J'essaye de créer un bouton virtuel pour envoyer une requette http a un raspberry. Je suis débutant en lua. Voila ce que j'ai pour le moment function QuickApp:turnOn() self:debug("binary switch turned on") self:updateProperty("value", true) local http = net.HTTPClient() http:request("http://172.20.0.205/api/callAction?deviceID=46&name=turnOn", { success = function(response) if response.status == 200 then fibaro:debug('OK, réponse : '.. response.data) else fibaro:debug("Erreur : status=" .. tostring(response.status)) end end, error = function(err) fibaro:debug("Erreur : " .. err) end, options = { method = 'GET' } }) end function QuickApp:turnOff() self:debug("binary switch turned off") self:updateProperty("value", false) end Une fois que j'appui sur le bouton Ca me marque ; line: 14 Wrong parameter type, string required. Provided param 'table: 0x1a3270e0' is type of table Si quelqu'un a une idée. Merci de votre aide
jjacques68 Posté(e) le 15 avril 2020 Signaler Posté(e) le 15 avril 2020 ligne 14 c'est la ligne de la fonction error ?$ essaye avec fibaro:debug("Erreur : "..json.encode(err))
Krikroff Posté(e) le 15 avril 2020 Signaler Posté(e) le 15 avril 2020 Et pourquoi pas fibaro.call(46, "turnOn") Sinon Il y a 3 heures, Overdrive a dit : http://172.20.0.205 Pourquoi cette adresse ? Si il s'agit de la box qui héberge le script et si tu utilises son adresse il faut aussi passer tes identifiants... Ou bien simplement > 127.0.0.1:11111 tu peux jeter un œil sur mon script ici : https://www.domotique-fibaro.fr/topic/14144-script-custom-callaction/ 1
Overdrive Posté(e) le 16 avril 2020 Auteur Signaler Posté(e) le 16 avril 2020 Bonjour, merci de votre aide. Mais moi je voudrais le faire en distant , pas en local. Avec l'adresse exemple ; http://url:8080/
Krikroff Posté(e) le 16 avril 2020 Signaler Posté(e) le 16 avril 2020 Du coup pas le choix il faut passer des entêtes pour l’authentification, l' API est protégée (heureusement) options = { headers = { ["content-type"] = "application/json;charset=UTF-8", ["Authorization"] = "Basic YWRtaW46YWRtaW4=", ["Cache-Control"] = "no-cache, no-store", ["X-Fibaro-Version"] = "2" }, method = "GET" }, Il faut remplacer "YWRtaW46YWRtaW4=" par ton ID:PWD encodé en base64
Overdrive Posté(e) le 16 avril 2020 Auteur Signaler Posté(e) le 16 avril 2020 Merci 1000 fois, ça marche nikel.
Overdrive Posté(e) le 16 avril 2020 Auteur Signaler Posté(e) le 16 avril 2020 Pardon petit souci ............. Mon script fait une erreur ; line: 12 Wrong parameter type, string required. Provided param 'table: 0x40832990' is type of table function QuickApp:turnOn() self:debug("binary switch turned on") self:updateProperty("value", true) local http = net.HTTPClient() http:request("http://IP:8004/yuri.php?action=CHANGE_ENGINE_STATE&state=1&engine=RASP_SDB&q=on", { success = function(response) if response.status == 200 then fibaro:debug('OK, réponse : '.. response.data) else fibaro:debug("Erreur : status=" .. tostring(response.status)) end end, error = function(err) fibaro:debug("Erreur : " .. err) end, options = { headers = { ["content-type"] = "application/json;charset=UTF-8", ["Authorization"] = "Basic YWRtaW46YWRtaW4=", ["Cache-Control"] = "no-cache, no-store", ["X-Fibaro-Version"] = "2" }, method = "GET" }, }) end function QuickApp:turnOff() self:debug("binary switch turned off") self:updateProperty("value", false) local http = net.HTTPClient() http:request("http://IP:8004/yuri.php?action=CHANGE_ENGINE_STATES&state=1&engine=RASP_SDB&q=off", { success = function(response) if response.status == 200 then fibaro:debug('OK, réponse : '.. response.data) else fibaro:debug("Erreur : status=" .. tostring(response.status)) end end, error = function(err) fibaro:debug("Erreur : " .. err) end, options = { headers = { ["content-type"] = "application/json;charset=UTF-8", ["Authorization"] = "Basic PWD", ["Cache-Control"] = "no-cache, no-store", ["X-Fibaro-Version"] = "2" }, method = "GET" }, }) end function QuickApp:onInit() self:debug("onInit") end
jjacques68 Posté(e) le 16 avril 2020 Signaler Posté(e) le 16 avril 2020 (modifié) je pense que tu as un problème d'authentification. car tu utilises admin:admin !!! Il y a 2 heures, Krikroff a dit : l faut remplacer "YWRtaW46YWRtaW4=" par ton ID:PWD encodé en base64 l'erreur que tu as vient du fait, je pense, que tu cherches à afficher une erreur "err" alors que cette valeur est une table et non une chaîne de caractères comme le dit ton message d'erreur. Le 15/04/2020 à 12:41, jjacques68 a dit : essaye avec fibaro:debug("Erreur : "..json.encode(err)) et tu verras que tu auras un truc du genre accès interdit... Modifié le 16 avril 2020 par jjacques68
Krikroff Posté(e) le 16 avril 2020 Signaler Posté(e) le 16 avril 2020 Yeap YWRtaW46YWRtaW4= Cela correspond à admin:admin
Overdrive Posté(e) le 17 avril 2020 Auteur Signaler Posté(e) le 17 avril 2020 Merci a vous tous, ça fonctionne nickel 2
Messages recommandés