Aller au contenu
Overkill

Problème d'API.put sur tête thermostatique Fibaro

Recommended Posts

Bonjour à tous.

J'ai un cas assez simple, mais impossible de m'en sortir...

Si un roi du code LUA pouvait m'aider.. :)

 

Je voudrai juste changer la température de consigne.

Voici le code de la scène et le retour..

 

--[[
%% properties
%% events
%% globals
--]]


local zoneID = 2 -- Chambre

fibaro:debug('Début')
   
response, status, errorCode =  api.get("/panels/heating/" .. zoneID)
if (response) then
     fibaro:debug("vacation Temperature: " ..response.properties.vacationTemperature)
else
     fibaro:debug("Une erreur est survenue")

end

fibaro:debug('Je défini la température de vacation')
response.properties.vacationTemperature = 15
api.put("/panel/heating/" .. zoneID, response)

fibaro:debug('On regarde si pris en compte')
response2, status, errorCode =  api.get("/panels/heating/" .. zoneID)
fibaro:debug("Nouvelle vacation Temperature: " ..response2.properties.vacationTemperature)
fibaro:debug('fin')
 

et voila le retour: 

[DEBUG] 17:27:58: Début
[DEBUG] 17:27:58: vacation Temperature: 5
[DEBUG] 17:27:58: Je défini la température de vacation
[DEBUG] 17:27:58: On regarde si pris en compte
[DEBUG] 17:27:58: Nouvelle vacation Temperature: 5
[DEBUG] 17:27:58: fin

 

Autant dire que l'api.get marche bien, autant l'api.put ne marche pas, c'est pas pris en compte.

Comme c'est une scéne, je suppose que je n'ai pas à faire une quelconque authentification...

 

Merci de votre aide éclairée.!!! 

 

 

Modifié par Overkill

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

 

Peut-être un peu de lumimère ;-)

 

Essaie cela


 

local zoneID = 2 -- Chambre

fibaro:debug('Début')
   
response, status, errorCode =  api.get("/panels/heating/" .. zoneID)
if (response) then
     fibaro:debug("vacation Temperature: " ..response.properties.vacationTemperature)
else
     fibaro:debug("Une erreur est survenue")

end

fibaro:debug('Je défini la température de vacation')
response.properties.vacationTemperature = 15
api.put("/panel/heating/" .. zoneID, response)


fibaro:debug('On regarde si pris en compte')
response, status, errorCode =  api.get("/panels/heating/" .. zoneID)
fibaro:debug("Nouvelle vacation Temperature: " ..response.properties.vacationTemperature)
fibaro:debug('fin')

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Tu as juste mis "response" à la place de "response2"?

j'avais mis response2 pour etre bien sur d'avoir réparer le premier get du deuxieme.

 

En tout cas, avec ton code, ca donne le meme résultat.. pas bon hélas.. :(

 

[DEBUG] 19:45:41: Début
[DEBUG] 19:45:41: vacation Temperature: 5
[DEBUG] 19:45:41: Je défini la température de vacation
[DEBUG] 19:45:41: On regarde si pris en compte
[DEBUG] 19:45:41: Nouvelle vacation Temperature: 5
[DEBUG] 19:45:41: fin

Partager ce message


Lien à poster
Partager sur d’autres sites

moi j’utilise ça pour modifie le mode vacation de la zone de chauffage “IdZone“. 

 

local HeatingPanel = api.get("/panels/heating/"..IdZone)
  
HeatingPanel.properties.handTemperature = 0
HeatingPanel.properties.handTimestamp = 0
HeatingPanel.properties.vacationTemperature = 15
  
api.put("/panels/heating/"..IdZone, HeatingPanel)

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

 

Oui, et normalement, pour relire l'info modifiée, il faut recharger la reponse complete avec un api.get.

 

Tu peux essayer cela stp ?

 

 

local heating = api.get("/panels/heating/2")
print("vacation Temperature: " ..heating.properties.vacationTemperature)
heating.properties.vacationTemperature = 12

api.put("/panels/heating/2", heating)

local heating = api.get("/panels/heating/2")
print("vacation Temperature: " ..heating.properties.vacationTemperature)

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Je crois@pepite qu’il manque un api.put pour mettre la consigne à 12 ...


Envoyé de mon iPhone en utilisant Tapatalk Pro

Partager ce message


Lien à poster
Partager sur d’autres sites

ah oui j'ai zappe le put lol

merci, modifié ;-)

 

Partager ce message


Lien à poster
Partager sur d’autres sites

je confirme, ca marche...!!!

Merci à tous pour votre aide 

meme si en ce moment il y a pas besoin de chauffage dans le sud... :D

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Parfait ;-)

 

Et en Ile  de France ca mouille ;-)

Partager ce message


Lien à poster
Partager sur d’autres sites

Aller, pour info parce que je me suis arraché les cheveux sur mon premier script...

j'avais juste oublié un "s" dans mon api.put... :15:

 

et oui... 

api.put("/panel/heating/" .. zoneID, response)

api.put("/panels/heating/" .. zoneID, response)

 

c'est pas pareil... voila comment passer des heures pour un "s"...

 

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

×