[LUA] Chauffage PID

Vous avez créé un script LUA dont vous êtes fier, un .sh génial, un programme Python hors du commun, un Tuto, c'est ici que vous pouvez les partager.
rapinou
Messages : 119
Inscription : 17 nov. 2016, 01:44

Re: chauffage PID

Message 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.
RPI 3 - Raspbian 8 (Jessie) - Domoticz V3.5877
Snake29
Messages : 40
Inscription : 09 avr. 2016, 22:03
Localisation : Finistère

Re: chauffage PID

Message 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 :roll:
Raspb. Pi 2b - Domoticz v3.5877 - Aeotec Z-stick S5 - RFXtrx 433 + Tabl. murale ImperiHome
5 Qubino fil pilote v2
4 Détect. fumée Popp + Chacon
Cpt. élec. OWL CM160
10 Oregon THGN132N + Lacrosse WS2300

Prises DIO, ZMNHND1, etc...
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: chauffage PID

Message 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)
Dernière modification par vil1driver le 08 nov. 2017, 17:14, modifié 1 fois.
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
olorin
Messages : 19
Inscription : 08 nov. 2017, 16:36

Re: chauffage PID

Message par olorin »

Bonjour à tous

Merci pour ce script, je suis en train (d'essayer :mrgreen: ) 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
rapinou
Messages : 119
Inscription : 17 nov. 2016, 01:44

Re: chauffage PID

Message 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
RPI 3 - Raspbian 8 (Jessie) - Domoticz V3.5877
olorin
Messages : 19
Inscription : 08 nov. 2017, 16:36

Re: chauffage PID

Message 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)
rapinou
Messages : 119
Inscription : 17 nov. 2016, 01:44

Re: chauffage PID

Message 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	
RPI 3 - Raspbian 8 (Jessie) - Domoticz V3.5877
olorin
Messages : 19
Inscription : 08 nov. 2017, 16:36

Re: chauffage PID

Message 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 :mrgreen:
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

Code : Tout sélectionner

commandArray = {} 
compute(pid)
return commandArray
j'ai bon ?
jackslayter
Messages : 1040
Inscription : 30 sept. 2014, 14:40
Localisation : Isère (38)

Re: chauffage PID

Message 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
Raspberry Pi + RFLink + Domoticz Beta
Oregon - 3x Thgr122Nx / Chacon - micromodule 200w, télécommande 3b et 16b, 2x module 1000w, détecteur de fumée, contact de porte, 2x prise 3500w / OWL - CM180 / TRC02 v2 RGB 3M / Cheap - PIR, contact de porte
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: chauffage PID

Message par vil1driver »

Parce que tu n'as pas ceci

Code : Tout sélectionner

check='check_timeout' 
Sinon que ce ne soit pas trop le bronx
Le script de conso à son sujet dédié ;)
viewtopic.php?f=17&t=5151
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
Répondre