Bonjour papoo, et merci pour ce script très utile.papoo a écrit : 28 déc. 2017, 14:54 sinon le script dju methode intregale semble fonctionner correctement
Je l'ai modifié et simplifié pour mes besoins personnels, et j'ai besoin d'un coup de pouce pour comprendre l'utilité de l'instruction :
Code : Tout sélectionner
if timeDiff(cpt_djc,'d') < 119 then -- on vérifie si le compteur à été rafraichi depuis moins de deux minutes...Dans mon script, je suis obligé de la supprimer pour que ça fonctionne...
Le voici à toutes fins utiles :
Code : Tout sélectionner
--[[ ~/domoticz/scripts/lua/script_time_dju.lua
auteur : papoo
Modifications : Aile
MAJ : 22/02/2023
création : 26/12/2017
Principe : Calculer, via l'information température d'une sonde extérieure, les Degrés jour Chauffage et Froid "intégrales"
https://easydomoticz.com/forum/viewtopic.php?f=17&t=1876&p=46879#p46879
https://github.com/papo-o/domoticz_scripts/blob/master/Lua/script_time_dju.lua
]]--
if (package.config:sub(1,1) == '/') then
dofile('/home/laurent/domoticz/scripts/lua/Fonctions.lua')
else
dofile('C:\\Program Files (x86)\\Domoticz\\scripts\\lua\\Fonctions.lua')
end
--------------------------------------------
------------ Variables à éditer ------------
--------------------------------------------
local debug = true -- true pour voir les logs dans la console log Dz ou false pour ne pas les voir
local temp_ext = 'Météo' -- nom de la sonde de température extérieure
local var_djc = 'djc' -- nom de la variable utilisateur de type 2 (chaine) pour le stockage temporaire des données journalières DJC
local cpt_djc = 'DJC intégral' -- nom du dummy compteur DJC en degré
local var_djf = 'djf' -- nom de la variable utilisateur de type 2 (chaine) pour le stockage temporaire des données journalières DJF, nil si inutilisé
local cpt_djf = 'DJF intégral' -- nom du dummy compteur DJF en degré, nil si vous ne souhaitez pas calculer les Degrés Jour Climatisation
----------- Fin variables à éditer ---------
--------------------------------------------
commandArray = {}
local nom_script = 'Calcul Degrés jour Chauffage et Froid'
local version = '1.4'
local djc
local djf
temperature = getTemp(temp_ext)
if temperature < 18 then
djc = (18 - temperature)/1440
majVar(var_djc,litVar(var_djc) + djc,1)
log("T° extérieure : "..temperature.."° (< 18°) - "..
"DJC/mn = "..round(djc,5).." - "..
"Variable = "..round(litVar(var_djc),4).." - "..
"DJC du jour = "..round(otherdevices_utility[cpt_djc],2).."°",debug)
else
djf = (temperature - 18)/1440
majVar(var_djf,litVar(var_djf) + djf,1)
log("T° extérieure : "..temperature.."° (> 18°) - "..
"DJF/mn = "..round(djf,5).." - "..
"Variable = "..round(litVar(var_djf),4).." - "..
"DJF du jour = "..round(otherdevices_utility[cpt_djf],2).."°",debug)
end
if litVar(var_djc) > 0.1 then -- si var_djc>0,1, on incrémente le compteur de 1 et on réduit la variable de 0,1
majDevice(cpt_djc,litDevice(cpt_djc) + 1)
majVar(var_djc,litVar(var_djc) - 0.1,1)
log("Reste DJC : "..(litVar(var_djc)/10).." - MAJ DJC : "..round(litDevice(cpt_djc)/10,2),debug)
else
majDevice(cpt_djc,litDevice(cpt_djc)) -- Evite que le compteur soit rouge
end
if litVar(var_djf) > 0.1 then -- si var_djf>0,1, on incrémente le compteur de 1 et on réduit la variable de 0,1
majDevice(cpt_djf,litDevice(cpt_djf) + 1)
majVar(var_djf,litVar(var_djf) - 0.1,1)
log("Reste DJF : "..(litVar(var_djf)/10).." - MAJ DJF : "..round(litDevice(cpt_djf)/10,2),debug)
else
majDevice(cpt_djf,litDevice(cpt_djf)) -- Evite que le compteur soit rouge
end
return commandArray