Page 2 sur 5

Re: Regul chauffage PID

Publié : 16 avr. 2015, 09:42
par Guitoo
BenjaminV a écrit : -le fonctionnement de ta chaudière en tout ou rien suppose que tu ne possèdes pas de brûleur modulant ?
Alors bonne question. Sur la chaudière il existe bien un potar de température d'eau et je pense que le bruleur module en fonction de la température d'eau de sortie. On peut utiliser la chaudière comme ça à condition d'avoir des vannes thermosatique aux radiateurs. > La chaudière maintien une température d'eau constante, les radiateurs puisent les calories dans le réseau en autonomie.

Dans mon cas, la chaudière maintien la température d'eau dans le circuit que lorsque le relais du Pi est fermé. Ce qui permet des économies tant au niveau de la circulation que des calories inutiles (par exemple quand je suis pas à la maison)
BenjaminV a écrit : -pourquoi ne pas laisser la chaudière réaliser sa propre régulation au niveau de la température de ton collecteur ? As-tu eu de meilleurs résultats avec ta régul ? Selon moi la vraie plus value d'un PID se situe au niveau de chaque départs de ton collecteur pour avoir une régulation pièce par pièce.
Pasque tu ne régule pas la température de la maison. Tu régule l'eau certe, mais tu ne sais pas à quelle température tu est. Mais bon c'est une discution de chauffagiste, chaque cas est différent fonction de l'installation, de la barraque, de la position géographique...

Moi j'ai une vieille maison 3 niveaux, plutot compacte, 600mm de murs de pièrre. Chaudière gaz + maxi radiateurs en fonte et quasiment pas de vanne thermo. Climat rigoureux avec des hivers bien froid pendant au moins 3 mois.
Grosse inertie >> Kd
Au début je l'avais pas mis, or j'avais un probleme de dépassement du point de consigne dans les deux sens. A la chauffe et à l'arrivée sur la température éco. Le temps de réponse du systeme est de 15minutes environ... c'est sur que dans une isba cest plus rapide!

Le systeme à franchement bien marché depuis 3 mois, pas de plantage, pas de gag. J'ai repérer tout un tas d'améliorations à faire mais le temps me manquant ça sera pour plus tard. D'autant plus qu'on a plus tellement besoin de chauffage en ce moment :D

A+ les domogeek

Re: Regul chauffage PID

Publié : 14 sept. 2015, 20:19
par heartblood
Merci pour ce script, je n'ai pas pu le tester vu que la saison ne s'y prete pas...

Malgré tout, j'ai un problème avec ceci (voire tout simplement avec VarCycle dans le script script_time_cmdchauff)

commandArray['Variable:'..VarCycle]= tostring('0')

Cela me retourne "attempt to concatenate global 'VarCycle' (a nil value)"

Est ce normal ? Est ce par ce que le script n'a pas encore tourné une seule fois, donc il n'a pas eu l'occasion de transformer VarCycle en autre chose que nill ?

Merci d'avance!

Re: Regul chauffage PID

Publié : 14 sept. 2015, 20:22
par vil1driver
La commande est explicite, elle renseigne une variable.. L'as tu créé ?

Je ne suis pas sur mon pc donc pas simple de fouiller le code mais il te faudra trouver où est défini le nom de la variable utilisateur que doit prendre la variable locale.

Perso je laisse au script le soin de créer les variables utiles mais tout le monde ne le fait pas, et ici ça ne semble pas être le cas...

Re: Regul chauffage PID

Publié : 14 sept. 2015, 20:26
par heartblood
C'est bien ce que je pensais, mais dans le script proposé à aucun moment elle n'est appelé ?
Je l'ai créé au cas où mais ça ne fait aucune différence, je remets le script d'origine (créé par Guitoo ) :

Code : Tout sélectionner


-- script_time_cmdchauffv2.lua ---------------------------------------
-- G PETREMENT -------------------------------------------------------
----------------------------------------------------------------------
-- Permet de commander relais de pilotage de chaudiere à gaz ---------
-- Le cycle fait 900s / 15min  ---------------------------------------
-- La commande est un nombre de 0 à 100 ------------------------------
-- Le cycle minimum de la chaudière est de 3min pour réduire l'usure -
----------------------------------------------------------------------

local InterOnOff = 'Chauffage On/Off'     --Interrupteur général de mise en route du chauffage
local VarCmdChauff = 'CmdChauff'          --Variable de commande de chauffage définie par script_device_thermostat
local CycleMini = 180                     --Durée de chauffe minimum en secondes (fonction de la chaudière)
local InterRelais = 'Piface RelayChaud'   --Sortie vers relais chaudière
local domoticz_url = '192.168.0.4:8080'   --Adresse IP:port de Domoticz

-- Fonction retourant la differrence de temps en secondes
function timedifference(s)
   year = string.sub(s, 1, 4)
   month = string.sub(s, 6, 7)
   day = string.sub(s, 9, 10)
   hour = string.sub(s, 12, 13)
   minutes = string.sub(s, 15, 16)
   seconds = string.sub(s, 18, 19)
   t1 = os.time()
   t2 = os.time{year=year, month=month, day=day, hour=hour, min=minutes, sec=seconds}
   difference = os.difftime (t1, t2)
   return difference
end

commandArray = {}
--  Recuperation des variables
local CmdChauff = uservariables[VarCmdChauff]
local OnOff = otherdevices[InterOnOff]

--  Recuperation des minutes
time=os.time()
minutes=tonumber(os.date('%M',time))
hours=tonumber(os.date('%H',time))

-- Execution de cette partie du script toutes les 15 minutes
-- Contacte la chaudière et modifie la variable domoticz Cycle
if( (minutes==15) or (minutes==0) or (minutes==30) or (minutes==45) ) then
   print('-- Lancement du script à '..hours..'h'..minutes)
   print('-- OnOff ='..OnOff..' / CmdChauff ='..CmdChauff)
   
   if  OnOff == 'On' then  --Si l'inter général est ON
      local Cycle = CmdChauff * 9  --Calcul du temps de cycle en seconde
        
      if Cycle < CycleMini then --Si le cycle est trop court on coupe
         commandArray[InterRelais]='Off'
         commandArray['Variable:'..VarCycle]= tostring('0')
      print('Cycle :'..Cycle..'s >> Chaudière Off')
      
    elseif Cycle > 870 then --Si le cycle est trop long (> 14min30) on allume sans coupure
      commandArray[InterRelais]='On'
         commandArray['Variable:'..VarCycle]= tostring(Cycle)
      print('Cycle :'..Cycle..'s >> Chaudière On')
    
    else --Enfin on lance pour X seconde
         print('Cycle lancé pour : '..Cycle..'secondes')
         commandArray[1]={[InterRelais]='On'}
      commandArray[2]={[InterRelais]='Off AFTER '..tostring(Cycle)}
      end
   else
      commandArray[InterRelais]='Off'
      commandArray['Variable:'..VarCycle]= tostring('0')
      print('Chaudière Off')    
   end
end

return commandArray


Re: Regul chauffage PID

Publié : 14 sept. 2015, 20:32
par vil1driver
Varcycle n'est pas le nom de la variable utilisateur mais le nom d'une variable locale dans le script..

Si elle n'est pas définie, tu vas devoir le faire en début de script

local VarCycle = 'nom de ta variable'

Re: Regul chauffage PID

Publié : 14 sept. 2015, 20:44
par heartblood
Merci bien, c'est ce que j'avais fait,
Sauf erreur qui expliquerait tout ma ligne est la suivante : local VarCycle = uservariables[VarCycle]

EDIT : C'était bien une erreur de ma part, il fallait faire comme tu as dit. Je me suis entete avec cette commande ci-dessus, et, je n'ai pas bien regardé comment je devais ecrire ma ligne. (A ce moment là : "commandArray['Variable:'..VarCycle]= tostring('0')" VarCycle est le nom de la variable et non ce que la variable VarCycle contient... :roll: )
Avec local VarCycle = "VarCyle", ça fonctionne impec.

Merci beaucoup!

EDIT 2 : En regardant de long en large ce script, je ne vois pas trop l'interet de cette variable :oops:

Re: Regul chauffage PID

Publié : 15 sept. 2015, 10:21
par vil1driver
heartblood a écrit :Merci bien, c'est ce que j'avais fait,
(...)
EDIT 2 : En regardant de long en large ce script, je ne vois pas trop l’intérêt de cette variable :oops:
j'ai regardé le code de plus près et cette variable est renseignée 3 fois mais n'est jamais réutilisée..

je pense que tu peux simplement supprimer les 3 lignes (51, 56 et 66), probablement un vestige des essais de Guitoo.

Re: Regul chauffage PID

Publié : 15 sept. 2015, 17:36
par heartblood
vil1driver a écrit :
j'ai regardé le code de plus près et cette variable est renseignée 3 fois mais n'est jamais réutilisée..

je pense que tu peux simplement supprimer les 3 lignes (51, 56 et 66), probablement un vestige des essais de Guitoo.
C'est ce que j'ai pensé aussi. Je l'ai d'ailleurs supprimé.
Merci

Re: Regul chauffage PID

Publié : 15 déc. 2015, 23:30
par dokho
Bonsoir,

J'ai bien envie de tester ces scripts pour ma chaudière à gaz, par contre je ne comprends pas comment régler Kp, Ki et Kd ?

Concernant les sécurités je pensais laisser le thermostat actuel (en parallèle) pour gérer une éventuelle température trop basse et utiliser la fonction "auto off after x seconds" du module contact sec qubino afin d'éviter un fonctionnement non-stop en cas de plantage durant un cycle de chauffe.

Cela vous semble-t-il suffisant ?

Re: Regul chauffage PID

Publié : 15 déc. 2015, 23:49
par vil1driver
Le PID ce n'est vraiment pas simple, je te conseil de te documenter pour bien comprendre ce que c'est et l'influence de ces 3 paramètres pour parvenir à correctement les définir.. De très longues heures de lectures/configuration/essais en perspective.

Pour un résultat probablement décevant, ce fut mon cas..

C'est pour cela que j'ai laissé tomber le PID mais je ne possède pas de chaudière et donc les démarrages/arrêts répétés sont moin génants.

Bon courage ;)

Je pense que dans certains cas il ne faut pas hésiter à dépenser.