[LUA+Bash] Calcul de DJU
Re: Calcul de DJU
Je corrige dès que je rentre
-
benbidouille
- Messages : 102
- Inscription : 11 déc. 2017, 11:48
Re: Calcul de DJU
Pas d'Urgence, modif version 1.25 faite localement et ça marche
Reste juste la publication officielle sur le forum
Reste juste la publication officielle sur le forum
RPI3 + WDPiDrive + UPS Pico HV3.0B HAT + Teleinfo USB (6) + 1Wire GPIO + DS18B20 (15)+ Gateway MySensor NRF24, Sensors , Relais ... + Gateway Velux .... + Gestion Pompe à Chaleur + NRFDoctor .... tout en DIY
Re: Calcul de DJU
correction et mis à jour 1.25 effectuées 
Re: Calcul de DJU
@benbidouille
on dirait que les deux méthodes se valent
on dirait que les deux méthodes se valent
-
benbidouille
- Messages : 102
- Inscription : 11 déc. 2017, 11:48
Re: Calcul de DJU
@papoo,
Effectivement très proche, à croire que nous sommes tous deux sur Limoges et synchronisés à la seconde près, Incroyable
En dépit du décalage des horaires de mesures 18:00/18:00 vs 0:00/0:00 il en manque très peu pour que la méthode Intégrale égale la méthode MF à 0 heure pour atteindre 12DJU.
Cette quasi égalité est due au profil de température du jours très lissée, si différence il doit y avoir, ce sera sur des profils de température plus accidentés.
Il faut désormais attendre le cumul de DJU sur une semaine voir plus pour comparer, nul doute que ce sera intéressant.
Bref, assurément la méthode Intégrale est la plus fidèle pour quantifier des besoins en energie, maintenant je doute que la méthode Météo France aboutisse à des résultats radicalement différents, je suppose (mais n'en sais rien) que sur une saison la différence est inférieure à10%.
Cordialement
Effectivement très proche, à croire que nous sommes tous deux sur Limoges et synchronisés à la seconde près, Incroyable
En dépit du décalage des horaires de mesures 18:00/18:00 vs 0:00/0:00 il en manque très peu pour que la méthode Intégrale égale la méthode MF à 0 heure pour atteindre 12DJU.
Cette quasi égalité est due au profil de température du jours très lissée, si différence il doit y avoir, ce sera sur des profils de température plus accidentés.
Il faut désormais attendre le cumul de DJU sur une semaine voir plus pour comparer, nul doute que ce sera intéressant.
Bref, assurément la méthode Intégrale est la plus fidèle pour quantifier des besoins en energie, maintenant je doute que la méthode Météo France aboutisse à des résultats radicalement différents, je suppose (mais n'en sais rien) que sur une saison la différence est inférieure à10%.
Cordialement
RPI3 + WDPiDrive + UPS Pico HV3.0B HAT + Teleinfo USB (6) + 1Wire GPIO + DS18B20 (15)+ Gateway MySensor NRF24, Sensors , Relais ... + Gateway Velux .... + Gestion Pompe à Chaleur + NRFDoctor .... tout en DIY
Re: Calcul de DJU
Voici le script de papoo adapté avec les DJC si je n'ai pas fait d'erreur.
Ajout variable à éditer :
Ajout variable à ne pas éditer
Ajout d'une fonction :
Programme :
Ajout variable à éditer :
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
Re: Calcul de DJU
@ thuglife : j'attendais que l'on soit en saison pour ajouter les degrés jour réfrigération mais tu l'as réalisé avant, merci.
pour être complet il manque la création variable à ne pas éditer local reste_djc.
j'ai ajouté ton code à mon script en modifiant un peu, en voici les raisons :
j'ai renommé tes djc en djf la norme voulant que DJC soit les degrés jour de Chauffe et les DJF les degrés jour Froid. les deux composant les DJU. source wikipedia
du coup j'ai renommé les dju en djc
j'ai ajouté la possibilité de ne calculer que les DJC, pour ceux qui ne climatisent pas
reste à attendre un temps plus clément pour que l'on puisse enfin avoir un peu plus chaud
https://easydomoticz.com/forum/viewtopi ... 879#p46879
pour être complet il manque la création variable à ne pas éditer local reste_djc.
j'ai ajouté ton code à mon script en modifiant un peu, en voici les raisons :
j'ai renommé tes djc en djf la norme voulant que DJC soit les degrés jour de Chauffe et les DJF les degrés jour Froid. les deux composant les DJU. source wikipedia
du coup j'ai renommé les dju en djc
j'ai ajouté la possibilité de ne calculer que les DJC, pour ceux qui ne climatisent pas
reste à attendre un temps plus clément pour que l'on puisse enfin avoir un peu plus chaud
https://easydomoticz.com/forum/viewtopi ... 879#p46879
Re: Calcul de DJU
OK, peut être prendre en compte ceux qui n'ont pas de Gaz mais que de l'elec.
Choix Gaz / Elec pour être complet
Choix Gaz / Elec pour être complet
Re: Calcul de DJU
ceux qui ont du chauffage électrique compte déjà l’énergie (kwh) il n'y a pas de conversion à faire, peu d’intérêt d'ajouter un compteur supplémentaire si?