Ce module virtuel va crée automatiquement
les variables si elles n'existent pas.
Comment utiliser la table :
"Nom de la variable", "1" (si prédéfinie) ou "0" (Variable Globale), "Valeur par défault", '"Valeur Prédéfinie"'
-- Table variable Globale
local VG_Table = {
"Mode", "1", "Absent", '"Maison", "Vacances"', -- Variable Prédéfinie Mode
"MPRInfo", "0", "100", -- Variable MPRInfo
"Jour", "1", "Oui", '"Non"' -- Variable Prédéfinie Jour
}
Création des Variables Globales et Prédéfinies
--************************
--Creation de Variable ---
--************************
function VG_Creation(VG_Nom, VG_isEnum, VG_Value, VG_enumValues)
if (fibaro:getGlobal(VG_Nom) == "") then
fibaro:debug(VG_Nom.." "..VG_isEnum.." "..VG_Value)
newVar = {}
newVar.name = VG_Nom
newVar.isEnum = tonumber(VG_isEnum)
if tonumber(VG_isEnum) == 0 then
newVar.value = VG_Value
end
HC2 = Net.FHttp("127.0.0.1", 11111)
HC2:POST("/api/globalVariables", json.encode(newVar))
---------------------------------------------
-- création des valeurs prédéfinies si Besoin
---------------------------------------------
if tonumber(VG_isEnum) == 1 then
VG_Predefinie = '{"value":"'..VG_Value
..'","isEnum":true,"enumValues":'..'["'..VG_Value..'", '..VG_enumValues..']'
..'}'
HC2:PUT("/api/globalVariables/"..VG_Nom, VG_Predefinie)
end
end
end
Lecture du tableaux et création si besoin des variables
----------------------------------------------------
-- Execution du programme
----------------------------------------------------
local j = 1
local NbreVG = 0
while VG_Table[j] ~= nil do
if tonumber(VG_Table[j+1]) == 0 then
fibaro:debug((NbreVG+1).." - Variable Globale")
VG_Creation(VG_Table[j], VG_Table[j+1], VG_Table[j+2])
j=j+3
elseif tonumber(VG_Table[j+1]) == 1 then
fibaro:debug((NbreVG+1).." - Variable prédéfinie")
VG_Creation(VG_Table[j], VG_Table[j+1], VG_Table[j+2], VG_Table[j+3])
j=j+4
else
fibaro:debug("Erreur dans la table VG")
end
NbreVG = NbreVG + 1
end
fibaro:debug("Nombres de variable dans le tableau : " ..NbreVG)
J'ai simplement ajouter un bouton aux VD Variables Globales de STEVEN comme cela on voit de suite si la variable n'est pas crée
Petit Exercice :
Optimiser ce code qui et fonctionnel mais pas très académique, il permet de crée les valeurs de la variable prédéfinie :
if tonumber(VG_isEnum) == 1 then
VG_Predefinie = '{"value":"'..VG_Value
..'","isEnum":true,"enumValues":'..'["'..VG_Value..'", '..VG_enumValues..']'
..'}'
fibaro:debug(VG_Predefinie)
HC2:PUT("/api/globalVariables/"..VG_Nom, VG_Predefinie)
end
Variables_Globales.vfib