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

Re: chauffage PID

Message par vil1driver »

super :D

et si en plus ça fait le taf escompté, tu m'en vois ravis ;)
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
lbeaudoin
Messages : 11
Inscription : 11 oct. 2016, 10:13

Re: chauffage PID

Message par lbeaudoin »

Bonjour,

je me suis recollé sur le script.
Voici mon paramétrage en haut du script :

Code : Tout sélectionner

pid['debug'] = true
pid['zone'] = 'Louise'
pid['sonde'] = 'T_Louise'
pid['OnOff'] = 'Louise_Chauffage'
pid['thermostat'] = 'Louise_Thermostat'
-- actionneur
pid['radiateur'] = 'Louise_Actionneur_Chauffage'  -- Qubino a terme -- Nom de l'interrupteur de chauffage
pid['invert'] = false
Voici mes logs :

Code : Tout sélectionner

2017-10-19 15:28:00.018 dzVents: PID zone: LOUISE
2017-10-19 15:28:00.018 dzVents: température: 21.5°C pour 22°C souhaité
2017-10-19 15:28:00.018 dzVents: Kp: 45
2017-10-19 15:28:00.018 dzVents: Ki: 20
2017-10-19 15:28:00.018 dzVents: Kd: 45
2017-10-19 15:28:00.018 dzVents: erreur: 0.5
2017-10-19 15:28:00.018 dzVents: ∑ erreurs: 1.95
2017-10-19 15:28:00.018 dzVents: Δ erreurs: 0.03
2017-10-19 15:28:00.018 dzVents: P: 22.5
2017-10-19 15:28:00.018 dzVents: I: 39
2017-10-19 15:28:00.018 dzVents: D: 1.35
2017-10-19 15:28:00.018 dzVents: cycle: 2min (sécu: 30s)
2017-10-19 15:28:00.018 dzVents: commande: 63% (01'16")
Mais j'ai toujours mon interrupteur virtuel (pour le moment, après j'indiquerai le vrai relais Qubino qui commande le radiateur) qui ne change pas d'état.

Il est déclaré ainsi :
Louise_Actionneur_Chauffage Light/Switch Switch Off
A noter, je suis sur Synology avec Domoticz en SSL, mais atteignable en http depuis mon réseau local.

Je ne comprend pas ce qui bloque pour changer l'état de mon interrupteur.
Comment je peux tenter de déboguer en local ?

merci pour votre aide, et pardonnez mon ignorance :)
Laurent
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: chauffage PID

Message par vil1driver »

c'est un script lua et non dzvents, c'est vrai que je n'ai pas précisé..

Code : Tout sélectionner

2017-10-19 17:00:00.465 LUA: PID zone: THOMAS
2017-10-19 17:00:00.465 LUA: température: 18.9°C pour 19°C souhaité
2017-10-19 17:00:00.465 LUA: Kp: 45
2017-10-19 17:00:00.465 LUA: Ki: 12
2017-10-19 17:00:00.465 LUA: Kd: 45
2017-10-19 17:00:00.465 LUA: erreur: 0.11
2017-10-19 17:00:00.465 LUA: ∑ erreurs: 0
2017-10-19 17:00:00.465 LUA: Δ erreurs: -0.04
2017-10-19 17:00:00.465 LUA: P: 4.95
2017-10-19 17:00:00.465 LUA: I: 0
2017-10-19 17:00:00.465 LUA: D: -1.8
2017-10-19 17:00:00.465 LUA: cycle: 15min (sécu: 30s)
2017-10-19 17:00:00.465 LUA: commande: 3% (00'30")
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
lbeaudoin
Messages : 11
Inscription : 11 oct. 2016, 10:13

Re: chauffage PID

Message par lbeaudoin »

DzEvents est activé dans sur mon Domoticz, mais je ne m'y suis pas penché.
Je peux le désactiver.
Pour déposer ton script (pas modules.lua), je peux passer par l'interface ou c'est mieux par ftp ?

merci
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: chauffage PID

Message par vil1driver »

comme tu préfères..
par l'interface (menu événement) c'est ok mais il faut choisir lua et non dzvents, c'est tout ;)
et surtout bien spécifier le type TIME
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
lbeaudoin
Messages : 11
Inscription : 11 oct. 2016, 10:13

Re: chauffage PID

Message par lbeaudoin »

Merci de ton retour.
Les commandes Marche ou Arrêt ne passe pas, j'ai dû ajouter ca

Code : Tout sélectionner

os.execute(curl..'-u '..domoticzUSER..':'..domoticzPSWD..' "'..domoticzURL..'/json.htm?type=command&param=switchlight&idx='..pid['radiateurID']..'&switchcmd=Set%20Level&level=2" &')
en prenant en compte que c'est un dimmer.

Merci pour ton aide et pour ton script
Laurent
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: chauffage PID

Message par vil1driver »

l'idée d'utiliser un switch On/Off virtuel me semblait meilleure.

tu pouvais en suite l'utiliser pour commander ton module zwave par script ou blocky ou des scènes avec les niveaux voulus..
comme l'a fait lmet avec son ipx

là je ne suis pas certain que ça fonctionne bien, comment gères tu le Off AFTER ?

je me répète mais l'as tu bien déclaré comme lua et non dzvents ? car il n'y a pas de raison pour que cela ne fonctionne pas.
au pire laisses tomber l'interface si tu n'es pas à l'aise avec et crée un fichier dans le dossier lua pour le script
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
ogulf
Messages : 445
Inscription : 15 juin 2017, 14:41

Re: chauffage PID

Message par ogulf »

Pour ma part, j'utilise ce script depuis 3 jours, adapté à mon équipement X2D (obligé de passer par un Selector Switch car passe par le plugin RFPlayer), dans ma cuisine.
Aucun problème de mise en place, ni d'utilisation :)

En parallèle, j'utilise un autre script pour une autre zone (une chambre en bas) : Script chauffage Hysteresis et PID, multi radiateurs et thermomètres.

La comparaison en termes de performances risque d'être difficile malheureusement, car la cuisine est souvent au dessus de sa température de consigne, alors que la chambre elle est naturellement sous sa consigne...
Faudrait que j'ai une autre zone en haut, ce n'est pas encore possible pour le moment.

Par contre, question installation... j'dirai rien mais y'en a un qui est autrement plus facile à installer que l'autre... :mrgreen:
L'autre script propose cependant plus de fonctionnalités.

En bref, je vais organiser un speed dating entre ces deux scripts, et j'en garderai l'enfant illégitime ! :lol:

Merci pour ce travail ;)
Domoticz Stable sur RPi3 + RFPlayer + ZWave+ + RFLink R48 :
- 11 x RF660P
- 1 x FGSD-002
- 10 x F007TH
- 5 x Emcoluxr EV1527 + 4 x NAS-DS01Z
- 4 x NAS-PD02Z
- 1 x Shelly 1PM
rapinou
Messages : 119
Inscription : 17 nov. 2016, 01:44

Re: chauffage PID

Message par rapinou »

Salut vil1driver,

Je suis en train de tester ton script, merci pour le partage ;)

Concernant les réglages :
vil1driver a écrit :au niveau des paramètre Kp, Ki et Kd, aucune méthode de calcule pour les déterminer n'a été efficace ici, la méthode empirique reste encore la meilleur..

o Commencer par le Proportionnel tout seul et le faire augmenter jusqu'à la limite de l'instabilité (doit pouvoir tenir une température comprise entre 1/2 degré sous la consigne et la consigne - sans la dépasser - y aller par palier de 20 puis affiner par 10 et 5)
o Passer ensuite à l'Intégral, même méthode (de bons résultats ici avec Ki = Kp/3 environs)
o Terminer par la Dérivé pour lisser les oscillations restantes (de bons résultats ici avec Kd=Kp)
Je ne suis pas sûr de bien comprendre la méthode.
Il faut tout mettre à zéro au départ ?
Qu'entends-tu par instabilité pour la proportionnelle ?

Merci.
RPI 3 - Raspbian 8 (Jessie) - Domoticz V3.5877
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: chauffage PID

Message par vil1driver »

commencer avec Ki = Kd = 0

instable c'est si tu défini Kp trop élevé, tu vas chauffer très fort, dépasser la consigne puis ne plus chauffer du tout, puis re chauffer à fond, etc... du coups ça oscille énormément, c'est instable.

ce qui se représenterait ainsi
Image

le but est d'obtenir une température assez stable, cela peut prendre des heures..
puis augmenter Kp pour essayer de réduire l'écart avec la consigne.
puis patienter encore un bon moment que la température se stabilise.
si tu parvient à t'approcher à 1/2 degré de la consigne, c'est super, ne touche plus à rien

il faut tenter d'obtenir ceci
Image

ne pas chercher à trop peaufiner dans l'immédiat..

puis défini Ki à environ 1/3 de Kp grosso modo et vois ce que cela donne déjà ainsi (en laissant Kd = 0)
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