first commit
This commit is contained in:
112
lua/test.lua
Executable file
112
lua/test.lua
Executable file
@@ -0,0 +1,112 @@
|
||||
-- script domoticz/scripts/lua/script_device_compteurHC-HP.lua
|
||||
|
||||
-- Initialisation des variables locales
|
||||
local capteurGlobal = uservariables['Capteur électricité']
|
||||
local capteurCptHP = uservariables['ConsoCapteurHP']
|
||||
local capteurCptHC = uservariables['ConsoCapteurHC']
|
||||
local idxCptHP = uservariables['IdxCptHP']
|
||||
local idxCptHC = uservariables['IdxCptHC']
|
||||
local flagHC = uservariables['FlagHC']
|
||||
local flagHP = uservariables['FlagHP']
|
||||
local lastValueCptElecGlobal = uservariables['LastValueCptElecGlobal']
|
||||
|
||||
-- Mode debug Oui / Non
|
||||
local debug = uservariables['debug']
|
||||
|
||||
-- Fonction de mise à jour
|
||||
function update(device, id, power, energy, index)
|
||||
commandArray[index] = {['UpdateDevice'] = id .. "|0|" .. power .. ";" .. energy}
|
||||
return
|
||||
end
|
||||
|
||||
commandArray = {}
|
||||
|
||||
-- On prend en compte a chaque changement de valeur du compteur global
|
||||
if (devicechanged[capteurGlobal]) then
|
||||
if (debug == 'OUI') then
|
||||
print('-- Calcul Compteurs HC / HP --')
|
||||
print('CapteurGlobal = '..capteurGlobal)
|
||||
print('CapteurCptHP = '..capteurCptHP)
|
||||
print('CapteurCptHC = '..capteurCptHC)
|
||||
print('idxCptHP = '..tostring(idxCptHP))
|
||||
print('idxCptHC = '..tostring(idxCptHC))
|
||||
print('flagHP = '..tostring(flagHP))
|
||||
print('flagHC = '..tostring(flagHC))
|
||||
print('LastValueCptElecGlobal = '..tostring(lastValueCptElecGlobal))
|
||||
end
|
||||
|
||||
-- Recuperation des valeurs du compteur global
|
||||
local consoCumule
|
||||
local consoInstant
|
||||
consoInstant, consoCumule = otherdevices_svalues[capteurGlobal]:match("([^;]+);([^;]+)")
|
||||
consoInstant = tonumber(consoInstant)
|
||||
consoCumule = tonumber(consoCumule)
|
||||
|
||||
if (debug == 'OUI') then
|
||||
print('Conso Instant = '..tostring(consoInstant)..' / Conso Cumule = '..tostring(consoCumule)..' ')
|
||||
end
|
||||
|
||||
-- Calcul de l'ecart avec le dernier envoi de donnees
|
||||
lastValueCptElecGlobal = tonumber(lastValueCptElecGlobal)
|
||||
local consoDelta = consoCumule - lastValueCptElecGlobal
|
||||
|
||||
if (debug == 'OUI') then
|
||||
print('Delta conso = '..tostring(consoDelta))
|
||||
end
|
||||
|
||||
local consoCumuleCible
|
||||
local consoInstantCible
|
||||
|
||||
if (otherdevices[flagHC] == 'On') then
|
||||
-- Periode heures creuse
|
||||
-- Recuperation des valeurs du compteur global
|
||||
consoInstantCible, consoCumuleCible = otherdevices_svalues[capteurCptHC]:match("([^;]+);([^;]+)")
|
||||
-- Seul le cumule du compteur nous interesse pour calculer la nouvelle valeur
|
||||
consoCumuleCible = tonumber(consoCumuleCible)
|
||||
|
||||
if (debug == 'OUI') then
|
||||
print('Compteur cible = HC')
|
||||
print('Valeur precedente = '..tostring(consoCumuleCible))
|
||||
print('Valeur ajustee = '..tostring(consoCumuleCible + consoDelta))
|
||||
end
|
||||
|
||||
consoCumuleCible = consoCumuleCible + consoDelta
|
||||
-- Mise à jour du compteur
|
||||
update(capteurCptHC, idxCptHC, consoInstant, consoCumuleCible, 1)
|
||||
|
||||
-- Mise à 0 de la conso intantanee du compteur HP
|
||||
consoInstantHP, consoCumuleHP = otherdevices_svalues[capteurCptHP]:match("([^;]+);([^;]+)")
|
||||
consoInstantHP = 0
|
||||
update(capteurCptHP, idxCptHP, consoInstantHP, consoCumuleHP, 2)
|
||||
else
|
||||
-- Periode heures pleines
|
||||
-- Recuperation des valeurs du compteur global
|
||||
consoInstantCible, consoCumuleCible = otherdevices_svalues[capteurCptHP]:match("([^;]+);([^;]+)")
|
||||
-- Seul le cumule du compteur nous interesse pour calculer la nouvelle valeur
|
||||
consoCumuleCible = tonumber(consoCumuleCible)
|
||||
|
||||
if (debug == 'OUI') then
|
||||
print('Compteur cible = HP')
|
||||
print('Valeur precedente = '..tostring(consoCumuleCible))
|
||||
print('Valeur ajustee = '..tostring(consoCumuleCible + consoDelta))
|
||||
end
|
||||
|
||||
consoCumuleCible = consoCumuleCible + consoDelta
|
||||
-- Mise à jour du compteur
|
||||
update(capteurCptHP, idxCptHP, consoInstant, consoCumuleCible, 3)
|
||||
|
||||
-- Mise à 0 de la conso intantanee du compteur HC
|
||||
consoInstantHC, consoCumuleHC = otherdevices_svalues[capteurCptHC]:match("([^;]+);([^;]+)")
|
||||
consoInstantHC = 0
|
||||
update(capteurCptHC, idxCptHC, consoInstantHC, consoCumuleHC, 4)
|
||||
end
|
||||
|
||||
-- Sauvegarde de la valeur du compteur global pour prochain calcul
|
||||
commandArray['Variable:LastValueCptElecGlobal'] = tostring(consoCumule)
|
||||
|
||||
if (debug == 'OUI') then
|
||||
print('-- Fin Calcul Compteur HC / HP --')
|
||||
end
|
||||
end
|
||||
|
||||
return commandArray
|
||||
Reference in New Issue
Block a user