Aller au contenu

Panneau de chauffage


flechg

Messages recommandés

Bonsoir,

voila j avais un module virtuel qui contrôlait le chauffage et qui ne fonctionne plus depuis la mise a jours 

une idée 

HC2 = Net.FHttp("192.168.x.xx",80) 
HC2:setBasicAuthentication(";;;;", ";;;;;") 

-- get harmonogram 
response ,status, errorCode = HC2:GET("/api/panels/heating/287")
jsonTable = json.decode(response)

-- change table in Lua l
jsonTable.properties.handTemperature = 24;
jsonTable.properties.handTimestamp = os.time() + (90*60)

-- send back 
json = json.encode(jsonTable); 
HC2:PUT("/api/panels/heating/287", json) 
fibaro:log("24°C 1 hours")

j ai ca comme message d erreur 

 

[ERROR] 20:55:20: line 9: attempt to call field 'decode' (a nil value)

merci encore 

cdt

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir, mets le son de ton panneau stp, je n'utilise pas ;-)

 

Essaie cela mais sans aucune certitude

response ,status, errorCode = api.get("/api/panels/heating/287")
jsonTable = json.decode(response)
fibaro:debug(jsonTable.properties.handTemperature)
fibaro:debug(jsonTable.properties.handTimestamp)
-- change table in Lua l
jsonTable.properties.handTemperature = 24
jsonTable.properties.handTimestamp = os.time() + (90*60)
-- send back 
json = json.encode(jsonTable)
api.put("/api/panels/heating/287", json) 

 

Lien vers le commentaire
Partager sur d’autres sites

salut,`

Je viens de vérifier, mon code fonctionne toujours.

Tu verras que j'utilise une autre IP, qui permet de s'affranchir de devoir mettre l'IP réelle de la box et le mdp

----------------------------------
-- User Settings
----------------------------------
local VDVar_Chauffage = 321
local VDVar_Vacances = 318

-- ID des HeatingPanels
local hpID = {
    "Rez_SdB", 6,
    "Etage_SdB", 5,
    "Etage_Bureau", 4,
    "Etage_ChEnfants", 7,
    "Etage_SdJ", 8,
    "Etage_Bibliotheque", 9,
    }

-- HeatingPanels actifs pour variable Chauffage = 0 (ECS)
local hp0 = {
    }
fibaro:debug ("#hp0 = " ..#hp0)

-- HeatingPanels actifs pour variable Chauffage = 1 (SdB)
local hp1 = {
    "Rez_SdB",
    "Etage_SdB",
    }
fibaro:debug ("#hp1 = " ..#hp1)

-- HeatingPanels actifs pour variable Chauffage = 2 (Oui)
local hp2 = {
    "Rez_SdB",
    "Etage_SdB",
    "Etage_Bureau",
    "Etage_ChEnfants",
    "Etage_SdJ",
    "Etage_Bibliotheque",
    }
fibaro:debug ("#hp2 = " ..#hp2)

local tmpOff = 14 -- température pour HP Off

----------------------------------
-- DO not change bellow this line
---------------------------------
local HC2 = Net.FHttp("127.0.0.1",11111)
local GETheating = "/api/panels/heating/"

-- fonction de mise à jour du heating panel
-- si handTemperature == 0, c'est en auto
function HeatPanel(id,HandTmp)
  jsonpanel = HC2:GET(GETheating ..id)
  jsontable = json.decode(jsonpanel)
  handTimestamp = jsontable.properties.handTimestamp
  handTemperature = jsontable.properties.handTemperature
  name = jsontable.name
  NouveauPanel = ('{"id":' ..id.. ',"name":"'..name.. '","properties":{"handTemperature":' ..handTemperature.. ',"handTimestamp": ' ..handTimestamp.. ',"vacationTemperature":' ..HandTmp.. '}}')
  HC2:PUT(GETheating ..id, NouveauPanel)
end

-- fonction pour trouver l'ID du heating panel
function HeatPanelID()
  fibaro:debug("hpName = " ..hpName)
  for j = 1, #hpID, 2 do
    fibaro:debug(hpID[j])
    if hpName == hpID[j] then hpId = hpID[j+1] end
  end
end

hpName = "" -- nom du HP en cours de traiemeent
hpId = 0    -- ID du HP en cours de traitement

-- lecture de la valeur du chauffage
local Chauffage = fibaro:get(VDVar_Chauffage, "ui.Statut.value")
fibaro:debug("Chauffage = " ..Chauffage)

-- lecture de Vacances = Oui/Non
local Vacances = fibaro:get(VDVar_Vacances, "ui.Statut.value")
fibaro:debug("Vacances = " ..Vacances)

-- mettre tous les manneaux en manuel
-- Vacances = Oui, alors tout les HP sont en manuel
fibaro:debug("Mettre tous les HP en mode manuel")
fibaro:debug("#hpID = " ..#hpID)
for i = 1, #hpID, 2 do
  fibaro:debug("hpID[" ..i.. "] = " ..hpID[i].. " = " ..hpID[i+1])
  HeatPanel(hpID[i+1], tmpOff)
end

-- remettre les panneaux qu'il faut en auto
-- seuleement si Vacances = Non
if Vacances == "Non" then
  fibaro:debug("VACANCES = Non")
  fibaro:debug("Mode chauffage : "..Chauffage)
  if Chauffage == "ECS"
    then
      hpId = 0
      for i = 1, #hp0 do
        hpName = hp0[i]
        HeatPanelID()
        fibaro:debug("hpId = " ..hpId)
        HeatPanel(hpId, 0)
      end
  
    elseif Chauffage == "SdB" then
      hpId = 0
      for i = 1, #hp1 do
        hpName = hp1[i]
        HeatPanelID()
        fibaro:debug("hpId = " ..hpId)
        HeatPanel(hpId, 0)
      end
  
    elseif Chauffage == "Oui" then
      hpId = 0
      for i = 1, #hp2 do
        hpName = hp2[i]
        HeatPanelID()
        fibaro:debug("hpId = " ..hpId)
        HeatPanel(hpId, 0)
      end
  end
  else
  fibaro:debug("VACANCES = OUI")
end

 

Lien vers le commentaire
Partager sur d’autres sites

il y a 34 minutes, pepite a dit :

Bonsoir, mets le son de ton panneau stp, je n'utilise pas ;-)

désolé Pepite mais j ai pas compris

pour ce qui du code ca fonctionne pas 

@mprinfo

j utilise la même ip mais depuis la mis a jours j ai ce message d erreur j ai essayé le localhost et le nouveau pass depuis la mise a jours mais rien n y fait :(

 

@jojomerci je vais étudier ton code mais étant pas aussi calé que toi le mien était plus simple 

a koi correspond les vdvar_chauffage

 

merci encore a vous tous :74:

Modifié par flechg
Lien vers le commentaire
Partager sur d’autres sites


@flechg, J'ai dit une betise dans le code que je t'ai donne. Plus simple que @jojo, ca fonctionne aussi. Mais le code de @jojo est TOP


 

local IdPanel = 90
local response, status, errorCode = api.get("/panels/heating/"..IdPanel)
fibaro:debug("ErrorCode = "..tonumber(errorCode or 0))
fibaro:debug("HandTemperature : " ..response.properties.handTemperature)
fibaro:debug("HandTimeStamp : " ..response.properties.handTimestamp)

response.properties.handTemperature = 25
--response.properties.handTimestamp =
api.put("/panels/heating/"..IdPanel)
fibaro:debug("HandTemperature : " ..response.properties.handTemperature)
fibaro:debug("HandTimeStamp : " ..response.properties.handTimestamp)

 

Lien vers le commentaire
Partager sur d’autres sites

@pepite

bonsoir voila le code que j ai mis je n ai pas de message d erreur mais aucune action 

local IdPanel = 287
local response, status, errorCode = api.get("/panels/heating/"..IdPanel)
fibaro:debug("ErrorCode = "..tonumber(errorCode or 0))
fibaro:debug("HandTemperature : " ..response.properties.handTemperature)
fibaro:debug("HandTimeStamp : " ..response.properties.handTimestamp)

response.properties.handTemperature = 28
response.properties.handTimestamp = os.time() + (2*60*60)
api.put("/panels/heating/"..IdPanel)
fibaro:debug("HandTemperature : " ..response.properties.handTemperature)
fibaro:debug("HandTimeStamp : " ..response.properties.handTimestamp)
fibaro:log("28°C 2 hours")

merci

Lien vers le commentaire
Partager sur d’autres sites

Salut @flechg,

 

Mais as-tu un retour dans le debug, vois tu affichée HandTemperature par exemple ? Tu as mis cela dans une scene ou un VD ?

Bizarre, chez moi cela fonctionne, enfin le code, je ne suis pas allé voir le panneau à vrai dire.

Question, je n'utilise pas de panneau, mais lorsque tu mets une temperature et un timestamp ca passe en manuel on est d'accord ?

 

si tu tapes ceci dans un navigateur, as tu un retour avec les valeurs modifiées ?

 

http://IPHC2/api/panels/heating/287

 

 

 

Je viens de tester, t'as raison, ca modifie bien le json mais pas le panneau.

 

Les experts vous avez une idée ou est-ce que je me trompe avec ce code ?

 

 

Modifié par pepite
Lien vers le commentaire
Partager sur d’autres sites

Bonsoir désolé de la réponse tardive 

mais je me battais avec mon téléphone qui après un root doit surement retourner en sav:P:D

bon voila ce que j ai dans le debug

[DEBUG] 23:47:17: ErrorCode = 0
[DEBUG] 23:47:17: HandTemperature : 25
[DEBUG] 23:47:17: HandTimeStamp : 1485278140
[DEBUG] 23:47:17: HandTemperature : 28
[DEBUG] 23:47:17: HandTimeStamp : 1485391637

Merci 

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...