Aller au contenu
hartyem

Comment Modifier Une Api Avec Lua?

Recommended Posts

Bonjour tous,

 

déjà  merci pour votre lecture et surtout votre compréhension, je débute...

 

Mon petit problème, modifier un paramètre d'un module (dans mon exemple "powerConsumption" d'un switch) avec Lua.

Via l'interface des paramètres je fixe une valeur et la commande figaro:getValue(340.0, "powerConsumption") me renvoie également la bonne valeur.

Existe-t'il une commande pour modifier un paramètre spécifique d'une API?

 

Merci pour vos réponses!

Hartyem

Partager ce message


Lien à poster
Partager sur d’autres sites

@hartyem, il faut simplement pousser le paramètre sur l' API. J'ai donné un exemple ici pour modifier un paramètre d'un FGMS http://www.domotique-fibaro.fr/index.php/topic/2320-désactiver-un-motionsensor/?p=32361

 

JC.

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci JC!

je vais faire mes petits tests mais cela semble déjà  assez prometteur... du moins après avoir compris que cela ne marche que dans un module virtuel.

 

Hartyem

Partager ce message


Lien à poster
Partager sur d’autres sites

Maitre Yoda,

la fonction PUT ne semble pas (ou peut-etre plus sur 4.021) fonctionner (vu sur le forum).

Hartyem

Partager ce message


Lien à poster
Partager sur d’autres sites

En V4 l'api n'est plus la même qu'en V3.5xx, il y a bien quelques api qui répondent mais en PUT il faut partir sur la nouvelle API donc je pense que ceci devrait marcher (je n'ai pas essayé) 

local deviceID = 445
local json = '{"id":'..deviceID..',"properties":[{"disabled": "1"}]}'
local HC2 = Net.FHttp("192.168.1.xxx", 80)
HC2:setBasicAuthentication("admin", "password")
 
local response, status, errorCode = HC2:PUT("/api/devices/"..deviceID, json)
if tonumber(status) == 200 then
-- ok
else
fibaro:debug("Try again "..deviceID.. " "..status)
end

Si cela ne marche pas c'est qu'il faut aussi modifier la structure du body.

Partager ce message


Lien à poster
Partager sur d’autres sites

Ca marche, ça marche, ça marche!

faut juste enlever les crochets et guillemets!

Parfait, merci pour ton aide.

Hartyem

 

  1. local json = '{"id":'..deviceID..',"properties":[{"disabled": "1"}]}'
  2.  
  3. par
  4.  
  5. local json = '{"id":'..deviceID..',"properties":{"disabled": 1}}'

Partager ce message


Lien à poster
Partager sur d’autres sites

×