chauffage PID

Vous avez crée 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.
Soyez précis quant aux prérequis, les manips à faire pour que votre bijou fonctionne (des chmod ?, un apt-get à faire ...)
Décrivez précisément son fonctionnement
Placez votre code entre [Quote] et {/Quote]
rapinou
Messages : 119
Inscription : 17 nov. 2016, 01:44

Re: chauffage PID

Messagepar rapinou » 08 nov. 2017, 13:47

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/master/modules.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

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Snake29
Messages : 37
Inscription : 09 avr. 2016, 22:03
Localisation : Finistère

Re: chauffage PID

Messagepar Snake29 » 08 nov. 2017, 13:50

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 : 4062
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: chauffage PID

Messagepar vil1driver » 08 nov. 2017, 17:05

@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 édition par vil1driver le 08 nov. 2017, 17:14, édité 1 fois.

Domoticz v3.8158 (ubuntu server) OpenZwave v1.4-2503 (zwave+ sigma designs) mysensors v1.5 (serial gateway) rfxtrx433 fw1015T1

433mhz : thgn800, ms13e2, phenix, Di.O, zk1pa, creasol sender
868mhz : fgms-001, fgfs-101, dsd37-zweu
2.4ghz : RGB-3D

modules.lua

olorin
Messages : 4
Inscription : 08 nov. 2017, 16:36

Re: chauffage PID

Messagepar olorin » 08 nov. 2017, 17:06

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

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


rapinou
Messages : 119
Inscription : 17 nov. 2016, 01:44

Re: chauffage PID

Messagepar rapinou » 08 nov. 2017, 17:22

@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 : 4
Inscription : 08 nov. 2017, 16:36

Re: chauffage PID

Messagepar olorin » 08 nov. 2017, 17:30

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

Messagepar rapinou » 08 nov. 2017, 17:36

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 : 4
Inscription : 08 nov. 2017, 16:36

Re: chauffage PID

Messagepar olorin » 08 nov. 2017, 17:53

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 : 825
Inscription : 30 sept. 2014, 14:40
Localisation : RA38

Re: chauffage PID

Messagepar jackslayter » 10 nov. 2017, 17:23

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 : 4062
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: chauffage PID

Messagepar vil1driver » 10 nov. 2017, 17:59

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

Domoticz v3.8158 (ubuntu server) OpenZwave v1.4-2503 (zwave+ sigma designs) mysensors v1.5 (serial gateway) rfxtrx433 fw1015T1

433mhz : thgn800, ms13e2, phenix, Di.O, zk1pa, creasol sender
868mhz : fgms-001, fgfs-101, dsd37-zweu
2.4ghz : RGB-3D

modules.lua

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.



Revenir vers « La Bibliothèque Scripts et Tutos »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 6 invités