Aller au contenu
mamoreau

Changement de zone de chauffage

Recommended Posts

Bonjour à tous,

 

j'avance dans mon VD mais je n'arrive pas, en fait la partie "pieces" ne se desactive pas :

 

fibaro:setGlobal("ModeChauffage", "Travail");
fibaro:call(205, "setProperty", "ui.Label1.value", "Mode Travail");

local panel = 166

Vacation = tonumber(Vacation)

HC2 = Net.FHttp("127.0.0.1",11111)

--reception josn du panneau de chauggafe
response ,status, errorCode = HC2:GET("/api/panels/heating/"..panel)
if (tonumber(errorCode)==0) then 
  fibaro:debug("recieved OK "..status) 
else 
  fibaro:debug("recieved Error "..errorCode) 
end 

--decode la table json
jsonTable = json.decode(response)

jsonTable.properties.handTemperature = 0
jsonTable.properties.handTimestamp = 0
jsonTable.properties.rooms = ''
--on recode la table json
jsonTable = json.encode(jsonTable)

--envoi les modifs
response ,status, errorCode = HC2:PUT("/api/panels/heating/"..panel, jsonTable)
if (tonumber(errorCode)==0) then 
  fibaro:debug("send OK "..status) 
else 
  fibaro:debug("send Error "..errorCode) 
end

Pouvez vous m'aider

Partager ce message


Lien à poster
Partager sur d’autres sites

Bon j'ai trouvé, ci quelqu'un est intéressé, j'ai créé un VD pour changer mon chauffage

  • 2 zones de chauffage (maison à étage, haut et bas)
  • 3 Modes de chauffage (Travail, Vavance présent et vacances absent)

 

Mode_Chauffage.vfib

Modifié par mamoreau
  • Like 1
  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

 

Bravo !!

Et donc quel était ton bug ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Désolé pour le retard.

 

Bon le but étant de créer un VD afin d'appliquer des typologies de chauffage suivant 3 critères, sachant que j'ai 4 zones de chauffage et 1 étage :

  • Période ou nous sommes présents à la maison
  • Période ou nous sommes au travail
  • Période ou nous sommes en vacances parti de la maison.
  1. Création des variables :

1541331739-variable.png

 

1541332165-variable2.png

 

Avec 3 valeurs : VancancesPresent, VacancesAbsent, et Travail.

 

2. Création des panneaux de chauffage :

 

1541331944-panneaux-chauffage.png

 

Dans ces panneaux j'ai attribué les zones de chauffage :

exemple : RDC Vacances Présent :

 

1541332031-zone-chauffage.png

 

3. Création du VD

 

1541332241-vd-pres-gene.png

 

L'idée est de basculer les zone de chauffage dans les bon panneau de chauffage via les API du home center.

 

A - Bouton "Vancances Absent" (merci jjacques68 )

 

fibaro:setGlobal("ModeChauffage", "VacancesAbsent");
fibaro:call(205, "setProperty", "ui.Label1.value", "Vacances Absent")

local panel = 166
local Vacation = fibaro:getGlobal("TempHorsGel")

Vacation = tonumber(Vacation)

HC2 = Net.FHttp("127.0.0.1",11111)

--reception josn du panneau de chauggafe
response ,status, errorCode = HC2:GET("/api/panels/heating/"..panel)
if (tonumber(errorCode)==0) then 
  fibaro:debug("recieved OK "..status) 
else 
  fibaro:debug("recieved Error "..errorCode) 
end 

--decode la table json
jsonTable = json.decode(response)
--passe en mode vacances
jsonTable.properties.vacationTemperature = Vacation
jsonTable.properties.handTemperature = 0
jsonTable.properties.handTimestamp = 0
--on recode la table json
jsonTable = json.encode(jsonTable)

--envoi les modifs
response ,status, errorCode = HC2:PUT("/api/panels/heating/"..panel, jsonTable)
if (tonumber(errorCode)==0) then 
  fibaro:debug("send OK "..status) 
else 
  fibaro:debug("send Error "..errorCode) 
end

-----

local panel = 168
local Vacation = fibaro:getGlobal("TempHorsGel")

Vacation = tonumber(Vacation)

HC2 = Net.FHttp("127.0.0.1",11111)

--reception josn du panneau de chauggafe
response ,status, errorCode = HC2:GET("/api/panels/heating/"..panel)
if (tonumber(errorCode)==0) then 
  fibaro:debug("recieved OK "..status) 
else 
  fibaro:debug("recieved Error "..errorCode) 
end 

--decode la table json
jsonTable = json.decode(response)
--passe en mode vacances
jsonTable.properties.vacationTemperature = Vacation
jsonTable.properties.handTemperature = 0
jsonTable.properties.handTimestamp = 0
--on recode la table json
jsonTable = json.encode(jsonTable)

--envoi les modifs
response ,status, errorCode = HC2:PUT("/api/panels/heating/"..panel, jsonTable)
if (tonumber(errorCode)==0) then 
  fibaro:debug("send OK "..status) 
else 
  fibaro:debug("send Error "..errorCode) 
end

-----

local panel = 170
local Vacation = fibaro:getGlobal("TempHorsGel")

Vacation = tonumber(Vacation)

HC2 = Net.FHttp("127.0.0.1",11111)

--reception josn du panneau de chauggafe
response ,status, errorCode = HC2:GET("/api/panels/heating/"..panel)
if (tonumber(errorCode)==0) then 
  fibaro:debug("recieved OK "..status) 
else 
  fibaro:debug("recieved Error "..errorCode) 
end 

--decode la table json
jsonTable = json.decode(response)
--passe en mode vacances
jsonTable.properties.vacationTemperature = Vacation
jsonTable.properties.handTemperature = 0
jsonTable.properties.handTimestamp = 0
--on recode la table json
jsonTable = json.encode(jsonTable)

--envoi les modifs
response ,status, errorCode = HC2:PUT("/api/panels/heating/"..panel, jsonTable)
if (tonumber(errorCode)==0) then 
  fibaro:debug("send OK "..status) 
else 
  fibaro:debug("send Error "..errorCode) 
end

-----

local panel = 169
local Vacation = fibaro:getGlobal("TempHorsGel")

Vacation = tonumber(Vacation)

HC2 = Net.FHttp("127.0.0.1",11111)

--reception josn du panneau de chauggafe
response ,status, errorCode = HC2:GET("/api/panels/heating/"..panel)
if (tonumber(errorCode)==0) then 
  fibaro:debug("recieved OK "..status) 
else 
  fibaro:debug("recieved Error "..errorCode) 
end 

--decode la table json
jsonTable = json.decode(response)
--passe en mode vacances
jsonTable.properties.vacationTemperature = Vacation
jsonTable.properties.handTemperature = 0
jsonTable.properties.handTimestamp = 0
--on recode la table json
jsonTable = json.encode(jsonTable)

--envoi les modifs
response ,status, errorCode = HC2:PUT("/api/panels/heating/"..panel, jsonTable)
if (tonumber(errorCode)==0) then 
  fibaro:debug("send OK "..status) 
else 
  fibaro:debug("send Error "..errorCode) 
end

Ce code permet de passer tous les panneaux de chauffages en mode "Vacances" avec une température déterminée dans la valeur global, (les deux boutons + et - permettent eux de choisir cette valeur)

 

Code du bouton "-"

local tps = fibaro:getGlobalValue("TempHorsGel")
if ( tonumber(fibaro:getGlobalValue("TempHorsGel")) > 0 )
then

tps = tps - 1
fibaro:setGlobal('TempHorsGel', tps);
fibaro:debug(tps)

end

local tempHG = fibaro:getGlobal("TempHorsGel") .. " °C"

fibaro:call(205, "setProperty", "ui.Label2.value", tempHG) 

Code du bouton "+"

local tps = fibaro:getGlobalValue("TempHorsGel")
if ( tonumber(fibaro:getGlobalValue("TempHorsGel")) < 23 )
then

tps = tps + 1
fibaro:setGlobal('TempHorsGel', tps);
fibaro:debug(tps)

end

local tempHG = fibaro:getGlobal("TempHorsGel") .. " °C"

fibaro:call(205, "setProperty", "ui.Label2.value", tempHG) 

4. Passage en mode travail

Le but est de passer toutes les zones de chauffage dans les panneaux "Travail"

 

local panel = 166

Vacation = tonumber(Vacation)

HC2 = Net.FHttp("127.0.0.1",11111)

--reception josn du panneau de chauggafe
response ,status, errorCode = HC2:GET("/api/panels/heating/"..panel)
if (tonumber(errorCode)==0) then 
  fibaro:debug("recieved OK "..status) 
else 
  fibaro:debug("recieved Error "..errorCode) 
end 

--decode la table json
jsonTable = json.decode(response)

jsonTable.properties.handTemperature = 0
jsonTable.properties.handTimestamp = 0
local nouveau = ('{"id": 166,"name": "Température RDC VP","mode": "Schedule","properties": {"handTemperature": 0,"handTimestamp": 0,"vacationTemperature": 0,"currentTemperature": 22,"rooms": []},"created": 1541077542,"modified": 1541077542}')
--on recode la table json
jsonTable = json.encode(nouveau)

--envoi les modifs
response ,status, errorCode = HC2:PUT("/api/panels/heating/"..panel, nouveau)
if (tonumber(errorCode)==0) then 
  fibaro:debug("send OK "..status) 
else 
  fibaro:debug("send Error "..errorCode) 
end


-- Je charge les pieces dans le nouveau panel


local panel2 = 169

Vacation = tonumber(Vacation)

HC2 = Net.FHttp("127.0.0.1",11111)

--reception josn du panneau de chauggafe
response ,status, errorCode = HC2:GET("/api/panels/heating/"..panel2)
if (tonumber(errorCode)==0) then 
  fibaro:debug("recieved OK "..status) 
else 
  fibaro:debug("recieved Error "..errorCode) 
end 

--decode la table json
jsonTable = json.decode(response)

jsonTable.properties.handTemperature = 0
jsonTable.properties.handTimestamp = 0
local nouveau2 = ('{"id": 169,"name": "Température RDC Travail","mode": "Schedule","properties": {"handTemperature": 0,"handTimestamp": 0,"vacationTemperature": 0,"currentTemperature": 22,"rooms": [4,40,41,57,93]},"created": 1541077542,"modified": 1541077542}')
--on recode la table json
jsonTable = json.encode(nouveau2)

--envoi les modifs
response ,status, errorCode = HC2:PUT("/api/panels/heating/"..panel2, nouveau2)
if (tonumber(errorCode)==0) then 
  fibaro:debug("send OK "..status) 
else 
  fibaro:debug("send Error "..errorCode) 
end

------


local panel3 = 168

Vacation = tonumber(Vacation)

HC2 = Net.FHttp("127.0.0.1",11111)

--reception josn du panneau de chauggafe
response ,status, errorCode = HC2:GET("/api/panels/heating/"..panel3)
if (tonumber(errorCode)==0) then 
  fibaro:debug("recieved OK "..status) 
else 
  fibaro:debug("recieved Error "..errorCode) 
end 

--decode la table json
jsonTable = json.decode(response)

jsonTable.properties.handTemperature = 0
jsonTable.properties.handTimestamp = 0
local nouveau3 = ('{"id": 168,"name": "Température ETAGE VP","mode": "Schedule","properties": {"handTemperature": 0,"handTimestamp": 0,"vacationTemperature": 0,"currentTemperature": 22,"rooms": []},"created": 1541077542,"modified": 1541077542}')
--on recode la table json
jsonTable = json.encode(nouveau3)

--envoi les modifs
response ,status, errorCode = HC2:PUT("/api/panels/heating/"..panel3, nouveau3)
if (tonumber(errorCode)==0) then 
  fibaro:debug("send OK "..status) 
else 
  fibaro:debug("send Error "..errorCode) 
end



----

local panel4 = 170

Vacation = tonumber(Vacation)

HC2 = Net.FHttp("127.0.0.1",11111)

--reception josn du panneau de chauggafe
response ,status, errorCode = HC2:GET("/api/panels/heating/"..panel4)
if (tonumber(errorCode)==0) then 
  fibaro:debug("recieved OK "..status) 
else 
  fibaro:debug("recieved Error "..errorCode) 
end 

--decode la table json
jsonTable = json.decode(response)

jsonTable.properties.handTemperature = 0
jsonTable.properties.handTimestamp = 0
local nouveau4 = ('{"id": 170,"name": "Température ETAGE Travail","mode": "Schedule","properties": {"handTemperature": 0,"handTimestamp": 0,"vacationTemperature": 0,"currentTemperature": 22,"rooms": [58,59,121]},"created": 1541077542,"modified": 1541077542}')
--on recode la table json
jsonTable = json.encode(nouveau4)

--envoi les modifs
response ,status, errorCode = HC2:PUT("/api/panels/heating/"..panel4, nouveau4)
if (tonumber(errorCode)==0) then 
  fibaro:debug("send OK "..status) 
else 
  fibaro:debug("send Error "..errorCode) 
end
fibaro:setGlobal("ModeChauffage", "Travail");
fibaro:call(205, "setProperty", "ui.Label1.value", "Mode Travail");

5. Passage en mode "Vacances Présent"

 

local panel = 166

Vacation = tonumber(Vacation)

HC2 = Net.FHttp("127.0.0.1",11111)

--reception josn du panneau de chauggafe
response ,status, errorCode = HC2:GET("/api/panels/heating/"..panel)
if (tonumber(errorCode)==0) then 
  fibaro:debug("recieved OK "..status) 
else 
  fibaro:debug("recieved Error "..errorCode) 
end 

--decode la table json
jsonTable = json.decode(response)

jsonTable.properties.handTemperature = 0
jsonTable.properties.handTimestamp = 0
local nouveau = ('{"id": 166,"name": "Température RDC VP","mode": "Schedule","properties": {"handTemperature": 0,"handTimestamp": 0,"vacationTemperature": 0,"currentTemperature": 22,"rooms": [4,40,41,57,93]},"created": 1541077542,"modified": 1541077542}')
--on recode la table json
jsonTable = json.encode(nouveau)

--envoi les modifs
response ,status, errorCode = HC2:PUT("/api/panels/heating/"..panel, nouveau)
if (tonumber(errorCode)==0) then 
  fibaro:debug("send OK "..status) 
else 
  fibaro:debug("send Error "..errorCode) 
end


-- Je charge les pieces dans le nouveau panel


local panel2 = 169

Vacation = tonumber(Vacation)

HC2 = Net.FHttp("127.0.0.1",11111)

--reception josn du panneau de chauggafe
response ,status, errorCode = HC2:GET("/api/panels/heating/"..panel2)
if (tonumber(errorCode)==0) then 
  fibaro:debug("recieved OK "..status) 
else 
  fibaro:debug("recieved Error "..errorCode) 
end 

--decode la table json
jsonTable = json.decode(response)

jsonTable.properties.handTemperature = 0
jsonTable.properties.handTimestamp = 0
local nouveau2 = ('{"id": 169,"name": "Température RDC Travail","mode": "Schedule","properties": {"handTemperature": 0,"handTimestamp": 0,"vacationTemperature": 0,"currentTemperature": 22,"rooms": []},"created": 1541077542,"modified": 1541077542}')
--on recode la table json
jsonTable = json.encode(nouveau2)

--envoi les modifs
response ,status, errorCode = HC2:PUT("/api/panels/heating/"..panel2, nouveau2)
if (tonumber(errorCode)==0) then 
  fibaro:debug("send OK "..status) 
else 
  fibaro:debug("send Error "..errorCode) 
end

-----

local panel3 = 168

Vacation = tonumber(Vacation)

HC2 = Net.FHttp("127.0.0.1",11111)

--reception josn du panneau de chauggafe
response ,status, errorCode = HC2:GET("/api/panels/heating/"..panel3)
if (tonumber(errorCode)==0) then 
  fibaro:debug("recieved OK "..status) 
else 
  fibaro:debug("recieved Error "..errorCode) 
end 

--decode la table json
jsonTable = json.decode(response)

jsonTable.properties.handTemperature = 0
jsonTable.properties.handTimestamp = 0
local nouveau3 = ('{"id": 168,"name": "Température ETAGE VP","mode": "Schedule","properties": {"handTemperature": 0,"handTimestamp": 0,"vacationTemperature": 0,"currentTemperature": 22,"rooms": [58,59,121]},"created": 1541077542,"modified": 1541077542}')
--on recode la table json
jsonTable = json.encode(nouveau3)

--envoi les modifs
response ,status, errorCode = HC2:PUT("/api/panels/heating/"..panel3, nouveau3)
if (tonumber(errorCode)==0) then 
  fibaro:debug("send OK "..status) 
else 
  fibaro:debug("send Error "..errorCode) 
end

-----

local panel4 = 170

Vacation = tonumber(Vacation)

HC2 = Net.FHttp("127.0.0.1",11111)

--reception josn du panneau de chauggafe
response ,status, errorCode = HC2:GET("/api/panels/heating/"..panel4)
if (tonumber(errorCode)==0) then 
  fibaro:debug("recieved OK "..status) 
else 
  fibaro:debug("recieved Error "..errorCode) 
end 

--decode la table json
jsonTable = json.decode(response)

jsonTable.properties.handTemperature = 0
jsonTable.properties.handTimestamp = 0
local nouveau4 = ('{"id": 170,"name": "Température ETAGE Travail","mode": "Schedule","properties": {"handTemperature": 0,"handTimestamp": 0,"vacationTemperature": 0,"currentTemperature": 22,"rooms": []},"created": 1541077542,"modified": 1541077542}')
--on recode la table json
jsonTable = json.encode(nouveau4)

--envoi les modifs
response ,status, errorCode = HC2:PUT("/api/panels/heating/"..panel4, nouveau4)
if (tonumber(errorCode)==0) then 
  fibaro:debug("send OK "..status) 
else 
  fibaro:debug("send Error "..errorCode) 
end
fibaro:setGlobal("ModeChauffage", "VacancesPresent");
fibaro:call(205, "setProperty", "ui.Label1.value", "Vacances Présent");

Voila, il y a surement des amélioration à faire mais cela fonctionne.

 

Je vous ai mis en PJ le VD, merci encore pour votre aide. ;) 

 

 

Mode_Chauffage (1).vfib

Modifié par mamoreau

Partager ce message


Lien à poster
Partager sur d’autres sites

×