Re: Calcul de DJU
Publié : 07 janv. 2018, 17:03
Je corrige dès que je rentre
Reprenez le contrôle de votre domotique
https://easydomoticz.com/forum/
Code : Tout sélectionner
local var_user_djc = 'CalcDJC'
local cpt_djc = 'DJC'
Code : Tout sélectionner
local djc
local somme_djc
Code : Tout sélectionner
--==============================================================================================
function calc_djc(temperature)
djc = tonumber((temperature - 18)*1/1440)
return dju
end
Code : Tout sélectionner
-- calcul DJU et DJC
if otherdevices_svalues[temp_ext] ~= nil then
if (uservariables[var_user_dju] == nil) then creaVar(var_user_dju,2,0)end
if (uservariables[var_user_djc] == nil) then creaVar(var_user_djc,2,0)end
temperature = tonumber(string.match(otherdevices_svalues[temp_ext], "%d+%.*%d*"))
if temperature < 18 then --si la température extérieure est inférieure à 18
voir_les_logs("--- --- Température extérieure : ".. temperature .."°C inférieure à 18°C --- ---",debugging)
dju = calc_dju(temperature)
voir_les_logs("--- --- DJU : ".. round(dju,5) .." --- ---",debugging)
voir_les_logs("--- --- Variable DJU : ".. round(tonumber(uservariables[var_user_dju]),4) .." --- ---",debugging)
somme_dju = tonumber(uservariables[var_user_dju]) + dju
voir_les_logs("--- --- somme DJU : ".. round(somme_dju,4) .." --- ---",debugging)
commandArray[#commandArray+1] = {['Variable:'.. var_user_dju] = tostring(somme_dju)}
cpt_dju_index = otherdevices_svalues[cpt_dju]
voir_les_logs("--- --- compteur DJU : ".. cpt_dju_index .." --- ---",debugging)
somme_djc = tonumber(uservariables[var_user_djc])
voir_les_logs("--- --- somme DJC : ".. somme_djc .." --- ---",debugging)
else --si la température extérieure est supérieure à 18
voir_les_logs("--- --- Température extérieure : ".. temperature .."°C supérieure à 18°C --- ---",debugging)
djc = calc_djc(temperature)
voir_les_logs("--- --- DJC : ".. round(djc,5) .." --- ---",debugging)
voir_les_logs("--- --- Variable DJC : ".. round(tonumber(uservariables[var_user_djc]),4) .." --- ---",debugging)
somme_djc = tonumber(uservariables[var_user_djc]) + djc
voir_les_logs("--- --- somme DJC : ".. round(somme_djc,4) .." --- ---",debugging)
commandArray[#commandArray+1] = {['Variable:'.. var_user_djc] = tostring(somme_djc)}
cpt_djc_index = otherdevices_svalues[cpt_djc]
voir_les_logs("--- --- compteur DJC : ".. cpt_djc_index .." --- ---",debugging)
somme_dju = tonumber(uservariables[var_user_dju])
voir_les_logs("--- --- somme DJU : ".. somme_dju .." --- ---",debugging)
end -- fin si temp ext
if tonumber(uservariables[var_user_dju]) > 1 and cpt_dju ~= nil then -- si variable dju supérieure à 1 on incrémente le compteur de 1 et on réduit la variable de 1
voir_les_logs("--- --- mise a jour compteur DJU --- ---",debugging)
reste_dju = tonumber(uservariables[var_user_dju]) - 1
if timeDiff(cpt_dju,'d') < 119 then -- on vérifie si le compteur à été rafraichi depuis moins de deux minutes si c'est le cas on soustrait 1 de la variable
voir_les_logs("--- --- dernier rafraichissement compteur DJU : ".. timeDiff(cpt_dju,'d') .." secondes --- ---",debugging)
commandArray[#commandArray+1] = {['Variable:'.. var_user_dju] = tostring(reste_dju)}
voir_les_logs("--- --- reste DJU : ".. tonumber(uservariables[var_user_dju]) .." --- ---",debugging)
else -- si le compteur n'as pas été rafraichi depuis moins de 2 minutes on l'incremente de 1
cpt_dju_index = tonumber(cpt_dju_index) + 1
commandArray[#commandArray+1] = {['UpdateDevice'] = GetDeviceIdxByName(cpt_dju) .. '|0|'..tostring(cpt_dju_index)}
end
end
if tonumber(uservariables[var_user_djc]) > 1 and cpt_djc ~= nil then -- si variable djc supérieure à 1 on incrémente le compteur de 1 et on réduit la variable de 1
voir_les_logs("--- --- mise a jour compteur DJC --- ---",debugging)
reste_djc = tonumber(uservariables[var_user_djc]) - 1
if timeDiff(cpt_djc,'d') < 119 then -- on vérifie si le compteur à été rafraichi depuis moins de deux minutes si c'est le cas on soustrait 1 de la variable
voir_les_logs("--- --- dernier rafraichissement compteur DJC : ".. timeDiff(cpt_djc,'d') .." secondes --- ---",debugging)
commandArray[#commandArray+1] = {['Variable:'.. var_user_djc] = tostring(reste_djc)}
voir_les_logs("--- --- reste DJC : ".. tonumber(uservariables[var_user_djc]) .." --- ---",debugging)
else -- si le compteur n'as pas été rafraichi depuis moins de 2 minutes on l'incremente de 1
cpt_djc_index = tonumber(cpt_djc_index) + 1
commandArray[#commandArray+1] = {['UpdateDevice'] = GetDeviceIdxByName(cpt_djc) .. '|0|'..tostring(cpt_djc_index)}
end
end
else
voir_les_logs("--- --- le device : ".. temp_ext .." n\'existe pas --- ---",debugging)
end -- fin si otherdevices_svalues[temp_ext] ~= nil
-- fin calcul DJU et DJC