Aller au contenu

Panneau de chauffage


Messages recommandés

Posté(e)

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

Posté(e)

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) 

 

Posté(e)

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

 

Posté(e)

Tu n'utilise pas une autre ip
Tu utilises le localhost et le port 11111 pour éviter le mot de passe

Envoyé de mon SM-G901F en utilisant Tapatalk

Posté(e) (modifié)
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
Posté(e)


@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)

 

Posté(e)

t'as changé l'id de ton panneau ? 

Comment cela tu le mets dans le debug ? 

Faut decommenter timestamp et mettre une valeur

Il y a 8 heures, pepite a dit :

--response.properties.handTimestamp =

 

Posté(e)

@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

Posté(e) (modifié)

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
Posté(e)

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 

×
×
  • Créer...