Page 7 sur 34
Re: chauffage PID
Publié : 08 nov. 2017, 13:47
par rapinou
Ok, tu as copié entièrement le code source de la page de GitHub au lieu de copier uniquement le script.
Pour être sûr de ne pas faire d'erreur : Une fois sur la page GitHub du script (
https://github.com/vil1driver/lua/blob/ ... odules.lua), clique sur le bouton "Raw", cela t'affichera le script brut sans les numéros de ligne ou autres fioritures, il ne restera plus qu'à tout sélectionner, copier et coller dans ton fichier.
Re: chauffage PID
Publié : 08 nov. 2017, 13:50
par Snake29
OK !
Quel sombre imbécile... En voyant le lien dans la signature de Vil1driver, j'ai directement DL la cible...
Merci Rapinou, je vais attaquer mes essais.
Et désolé tout le monde pour le HS, quel idiot

Re: chauffage PID
Publié : 08 nov. 2017, 17:05
par vil1driver
@rapinou,
ce que j'appel 2nd systême est en fait la méthode première mais je la trouvait pas top pour les gros écarts, passage de éco à confort par exemple, j'ai trouvé plus efficace mais ça ne permettait pas d'atteindre la consigne, alors je repasse sur l’ancienne méthode pour affiner..
voila, passage d'une méthode à l'autre selon le besoin, rattrapage grossier (rapide avec le moins de débordement possible) ou fin (lent)
Re: chauffage PID
Publié : 08 nov. 2017, 17:06
par olorin
Bonjour à tous
Merci pour ce script, je suis en train (d'essayer

) de l'utiliser et de le comprendre.
J'aurais une question sur l’activation des switch de radiateur.
Je ne trouve pas la commande qui appel :
switchOnFor, switchOn et switchOff.
Comment fait le script pour allumer ou éteindre notre bouton virtuel qui gère le radiateur( pid['radiateur'] ) ?
(ou j'ai dû sauter une étape ...)
Merci d'avance
Re: chauffage PID
Publié : 08 nov. 2017, 17:22
par rapinou
@vil1driver,
Merci pour les explications
@olorin,
En fait le script présenté sur ce topic sert juste à enregistrer les variables et lancer la fonction compute(pid). Si tu veux voir le détail du fonctionnement de la régulation PID, il faut regarder à la fin du fichier modules.lua
Re: chauffage PID
Publié : 08 nov. 2017, 17:30
par olorin
Merci pour ta réponse
Justement, je parlais du fichier modules.lua que tu mets dans /etc/domoticz/script/lua.
On doit ensuite faire les appel nous même ? (ça me pose pas de problème soit-dit en passant)
Re: chauffage PID
Publié : 08 nov. 2017, 17:36
par rapinou
Ligne 654 :
Code : Tout sélectionner
-- action sur l'élément chauffant
if heatTime > 0 then
commandArray[1] = {[pid['radiateur']] = marche}
commandArray[2] = {[pid['radiateur']] = arret..' AFTER '..heatTime}
else
commandArray[pid['radiateur']]=arret
end
Re: chauffage PID
Publié : 08 nov. 2017, 17:53
par olorin
J'avais bien trouvé ces lignes, mais je ne vois pas d'appel en curl par la suite (j'ai mis des logs avant les appels pour savoir si le script passait dans ces fonctions)
En changeant la valeur du tableau "commandArray" on met en marche/arrêt notre switch ? (j'ai pas saisi toutes les subtilités de lua...)
edit 09/11/2017 :
Je répond à moi même
J'ai compris, le tableau que l'on déclare dans domoticz, permet justement de modifier nos switchs ...
Et selon le wiki de domoticz :
https://www.domoticz.com/wiki/Events
Il faut utiliser le nom 'commandArray' pour pouvoir interféré entre notre script lua et nos switch déclarés
j'ai bon ?
Re: chauffage PID
Publié : 10 nov. 2017, 17:23
par jackslayter
vous savez pourquoi cette commande (
commandArray[10] = {['Variable:check_timeout'] = "false"}) marche mais pas celle ci (
commandArray[10] = {['Variable:'..check] = "false"})?
Code : Tout sélectionner
commandArray = {}
time = os.date("*t")
local check = uservariables['check_timeout']
local devices = {}
devices[1] = {'salon'}
function jsonInfos(device)
json = assert(loadfile '/home/pi/domoticz/scripts/lua/JSON.lua')()
local config=assert(io.popen('curl -m 5 "http://192.168.1.2:8080/json.htm?type=devices&rid='..otherdevices_idx[device]..'"'))
local blocjson = config:read('*all')
config:close()
return json:decode(blocjson).result[1]
end
for n,device in pairs(devices) do
if (tostring(jsonInfos(device[1]).HaveTimeout) == 'true') then
commandArray[10] = {['Variable:check_timeout'] = "false"}
--commandArray[10] = {['Variable:'..check] = "false"}
end
end
return commandArray
merci
Re: chauffage PID
Publié : 10 nov. 2017, 17:59
par vil1driver
Parce que tu n'as pas ceci
Sinon que ce ne soit pas trop le bronx
Le script de conso à son sujet dédié
viewtopic.php?f=17&t=5151