Aller au contenu

Requette http


Overdrive

Messages recommandés

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
Lien vers le commentaire
Partager sur d’autres sites

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/


 

 

  • Like 1
Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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
 
Lien vers le commentaire
Partager sur d’autres sites

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é par jjacques68
Lien vers le commentaire
Partager sur d’autres sites

  • Lazer a verrouillé ce sujet
Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.
×
×
  • Créer...