Bonjour,
Je suis entrain de faire un module virtuel pour mettre et enlever le mode vacances sur mes zones du panneau de chauffage.
exemple pour la mise en route:
HC2 = Net.FHttp("192.168.0.21",80)
HC2:setBasicAuthentication("xxx", "xxx")
local stra = 2
response ,status, errorCode = HC2:GET("/api/panels/heating?id="..stra)
jsonTable = json.decode(response)
jsonTable.properties.vacationTemperature =7;
json = json.encode(jsonTable);
HC2:PUT("/api/panels/heating?id="..stra, json)
et pareil avec la désactivation en mettant 0 au lieu de 7
mais j'ai 4 zones à faire, et si je répète 4 fois ce code, ça ne marche pas.
HC2 = Net.FHttp("192.168.0.21",80)
HC2:setBasicAuthentication("admin", "xxx")
local strefa = 2
response ,status, errorCode = HC2:GET("/api/panels/heating?id="..strefa)
jsonTable = json.decode(response)
jsonTable.properties.vacationTemperature =0;
json = json.encode(jsonTable);
HC2:PUT("/api/panels/heating?id="..strefa, json)
HC2 = Net.FHttp("192.168.0.21",80)
HC2:setBasicAuthentication("admin", "xxx")
local strefa = 4
response ,status, errorCode = HC2:GET("/api/panels/heating?id="..strefa)
jsonTable = json.decode(response)
jsonTable.properties.vacationTemperature =0;
json = json.encode(jsonTable);
HC2:PUT("/api/panels/heating?id="..strefa, json)
HC2 = Net.FHttp("192.168.0.21",80)
HC2:setBasicAuthentication("admin", "xxx")
local strefa = 6
response ,status, errorCode = HC2:GET("/api/panels/heating?id="..strefa)
jsonTable = json.decode(response)
jsonTable.properties.vacationTemperature =0;
json = json.encode(jsonTable);
HC2:PUT("/api/panels/heating?id="..strefa, json)
HC2 = Net.FHttp("192.168.0.21",80)
HC2:setBasicAuthentication("admin", "xxx")
local strefa = 8
response ,status, errorCode = HC2:GET("/api/panels/heating?id="..strefa)
jsonTable = json.decode(response)
jsonTable.properties.vacationTemperature =0;
json = json.encode(jsonTable);
HC2:PUT("/api/panels/heating?id="..strefa, json)
Je débute dans la programmation et je me doute que la syntaxe ou la manière n'est pas là .
Autre question: pourquoi passer par des commandes "extérieures HTTP" pour faire changer des données du HC2? On ne peut pas le faire directement avec une commande du style fibaro:get.... ou fibaro:setglobal... ?
Au final je veux juste mettre "7" dans la donnée "vacationTemperature" des mes "panels/heating" qui ont les id 2,4,6 et 8
Sinon, pour comprendre un peu mieux le premier code qui marche:
HC2 = Net.FHttp("192.168.0.21",80) => donne l'adresse pour se loguer au HC2 HC2:setBasicAuthentication("xxx", "xxx") => donne les identifiants
local stra = 2 => défini la variable "stra" à 2 response ,status, errorCode = HC2:GET("/api/panels/heating?id="..stra) => capture toues les valeurs du panneau de chauffage 2 ??
jsonTable = json.decode(response) => met ces données dans la table appelée jsontable ??? jsonTable.properties.vacationTemperature =7; => met le champs "vacationtemperature" à 7 ??? json = json.encode(jsonTable); => ??? ré-encode tous les champs? HC2:PUT("/api/panels/heating?id="..stra, json) => remet tous les champs, y compris les modifés dans le panneau de chauffage 2
Voila ce que j'en comprend, est-ce à peut près ça?
Merci de votre patiente si vous êtes arrivés jusqu'ici