Page 13 sur 13

Re: Calcul de DJU méthode intégrale

Publié : 22 févr. 2023, 17:00
par Aile
papoo a écrit : 28 déc. 2017, 14:54 sinon le script dju methode intregale semble fonctionner correctement
Bonjour papoo, et merci pour ce script très utile.

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...
Peux-tu m'expliquer quelle est son utilité ?
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