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]
vil1driver
Messages : 5187
Enregistré le : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: chauffage PID

Message par vil1driver » 21 févr. 2019, 22:49

Tu m'en vois ravi, merci de ton retour

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.


benbiais
Messages : 1
Enregistré le : 24 févr. 2019, 21:44

Re: chauffage PID

Message par benbiais » 24 févr. 2019, 21:55

Bonjour,
Je suis nouveau sur le forum.
Je souhaiterais savoir comment accéder aux scripts lua concernant les PID chauffage dont il est question dans ce fil de discussion. En particulier, je suis intéressé de connaître les derniers scripts complets sur le sujet. Où puis-je les trouver. Merci d'avance.
Ben

garycooper
Messages : 160
Enregistré le : 07 août 2017, 23:58

Re: chauffage PID

Message par garycooper » 26 févr. 2019, 15:54

Bonjour vil1driver et merci pour ce script ! J'aimerais pouvoir le compléter avec deux conditions :

1 - ne chauffer que quand mon device "programmateur de chauffage" est sur "on" (en gros baisser la consigne en thermostat "eco" pendant la nuit et les heures de travail)
2 - laisser en route le chauffage pendant les jours fériés et vacances scolaires, sauf la nuit.

J'ai trouvé sur le forum le script de vacances scolaires donc j'ai créé les interrupteurs "Aujourd'hui vacances scolaires" et "Demain vacances scolaires" et j'ai aussi intégré la variable "jf" d'après le script du forum.

Par contre, je ne sais pas comment les intégrer dans le module.lua pour changer la consigne en fonction de ces éléments. Je pense que le plus simple est de paramétrer le device "Programmateur chauffage" pour qu'il soit sur "on" selon les conditions que je viens de donner mais malheureusement, ça non plus je ne sais pas faire ... Pour l'instant mon device "Programmateur chauffage" n'est programmé que via le bouton "planification". C'est pas mal mais pas aussi optimisé que ce que je souhaiterais.

vil1driver
Messages : 5187
Enregistré le : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: chauffage PID

Message par vil1driver » 26 févr. 2019, 17:36

Le mieux est effectivement de faire un script à côté pour modifier ton device setpoint selon tes souhaits.
Rome ne s'est pas fait en un jour ;) soit curieux, même les sujets qui te semblent sans intérêt peuvent t'apporter des notions utiles

Peut-être un début de réflexion avec ce sujet
https://easydomoticz.com/forum/viewtopi ... =10&t=8005

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.


garycooper
Messages : 160
Enregistré le : 07 août 2017, 23:58

Re: chauffage PID

Message par garycooper » 26 févr. 2019, 22:48

Merci pour le lien. J'ai fait ce script qui fonctionne (à priori) :

Code : Tout sélectionner

-- script pour activer le device "Programmateur chauffage" 

local programmateur_chauffage = 'Programmateur chauffage'
local vacances_scolaires = 'Aujourdhui vacances scolaires'
local jf = uservariables['jf']

-- retourne le jour actuel
days = {"dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"}
jour = days[(os.date("%w")+1)]
-- retourne l'heure actuelle ex: "12:45"
heure = string.sub(os.date("%X"), 1, 5)


commandArray = {}
	commandArray[programmateur_chauffage] = 'On'
-- tous les jours sauf les jours de travail => éteindre le chauffage entre minuit et 6h du matin
	if (heure > '00:00' and heure < '06:00') then
		commandArray[programmateur_chauffage] = 'Off'
-- journée de travail hors vacances scolaires => arrêter chauffage entre 7h30 et 16h30
		elseif otherdevices[vacances_scolaires]=='Off' or uservariables['jf']=='false' or jour=='lundi' or jour=='mardi' or jour=='jeudi' then
		if (heure > '07:30' and heure < '16:30') then
		commandArray[programmateur_chauffage] = 'Off'
		end
	end

return commandArray

Sinon, la philosophie est :
L'interrupteur "Programmateur de chauffage" est sur "OFF" tous les jours entre minuit et 6h du matin mais aussi entre 8h30 et 16h30 les lundi, mardi et jeudi hors vacances et jours fériés.

J'attends demain pour voir si ça c'est bien coupé à minuit et si c'est bon, j'essaie de l'intégrer au PID. Le "problème" c'est qu'à chaque exécution du script (donc toutes les minutes), ça implémente les logs de l'interrupteur d'un "ON" ou d'un "Off"
Modifié en dernier par garycooper le 26 févr. 2019, 23:43, modifié 2 fois.

vil1driver
Messages : 5187
Enregistré le : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: chauffage PID

Message par vil1driver » 26 févr. 2019, 23:31

j'avais cru comprendre que tu voulais faire varier ta consigne.. c'est quoi au juste ce programmateur chauffage ?
garycooper a écrit :
26 févr. 2019, 15:54
baisser la consigne en thermostat "eco" pendant la nuit et les heures de travail

garycooper
Messages : 160
Enregistré le : 07 août 2017, 23:58

Re: chauffage PID

Message par garycooper » 26 févr. 2019, 23:47

Oui, tout à fait. Comme je ne maîtrise pas du tout les scripts, j'y vais par étape.
L'interrupteur "Programmateur chauffage" est l'interrupteur qui me permettra de borner les périodes où le point de consigne du chauffage sera le thermostat "confort". En dehors de ces horaires, le chauffage régulera sur la consigne du thermostat "Eco" (soit environ 17 ou 18°C).

Du coup, dans ton script ça donnerait en gros :
Si l'interrupteur chauffage est sur "ON" et le programmateur de chauffage est sur "ON", alors la consigne de température correspond au thermostat "confort".
Si l'interrupteur chauffage est sur "ON" et le programmateur de chauffage est sur "OFF", alors la consigne de température correspond au thermostat "Eco".
Si l'interrupteur chauffage est sur "OFF", peu importe la position du programmateur de chauffage, la consigne de température correspond au thermostat "Hors gel". => c'est par exemple lorsque nous partons en vacances d'hiver.

Du coup, j'avais pensé modifier commes ça la partie consigne de température :

Code : Tout sélectionner

		-- si l'on veut chauffer
		if ( otherdevices[pid['OnOff']] == 'On' and otherdevices[pid['programmateur']] == 'On') then

			-- récupération de la consigne
			local consigne = tonumber(otherdevices_svalues[pid['thermostat_confort']]) or pid['thermostat']
		elseif ( otherdevices[pid['OnOff']] == 'On' and otherdevices[pid['programmateur']] == 'Off') then
			local consigne = tonumber(otherdevices_svalues[pid['thermostat_eco']]) or pid['thermostat_eco']
		else 
			local consigne = tonumber(otherdevices_svalues[pid['thermostat_horsgel']]) or pid['thermostat_horsgel']
		end
			-- calcul de l'erreur
			local erreur = consigne-temp
J'ai pris soin d'enlever la dernière partie du script qui faisait mettre à l'arrêt les radiateurs quand "chauffage" est sur "Off" mais j'ai le message d'erreur :
"/home/pi/domoticz/scripts/lua/modules.lua:818: attempt to perform arithmetic on global 'consigne' (a nil value)".

La ligne 818 correspond à la ligne "local erreur = consigne-temp"

vil1driver
Messages : 5187
Enregistré le : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: chauffage PID

Message par vil1driver » 27 févr. 2019, 10:26

Ne touche pas à ce code..

Fait juste un script à côté pour modifier ton setpoint (device virtuel thermostat)
Le script chauffage respectera les changements

Tu as bien vu que tu n'est pas obligé d'indiquer une consigne fixe, que tu peux aussi utiliser un thermostat virtuel ?

Image
pid['thermostat'] = 19 -- consigne ou 'nom' de l'interrupteur virtuel de thermostat

Code : Tout sélectionner

pid['thermostat'] = 'thermostaat' 

garycooper
Messages : 160
Enregistré le : 07 août 2017, 23:58

Re: chauffage PID

Message par garycooper » 27 févr. 2019, 11:22

Oui, j'ai créé un thermostat virtuel comme dans ton exemple. Si je te suis bien, ce serait de faire un script qui change la valeur du thermostat virtuel en fonction de l'état du programmateur chauffage et du mode chauffage (On ou Off)?
Effectivement, c'est pas bête ! Et certainement plus à ma portée...
Ce serait un script "device" ou ça resterait un script "time" ?

Tu sais comment faire pour ne pas implémenter mon interrupteur "Programmateur chauffage" tant qu'il n'y a pas de changement d'état ?

garycooper
Messages : 160
Enregistré le : 07 août 2017, 23:58

Re: chauffage PID

Message par garycooper » 27 févr. 2019, 23:34

J'ai eu beau me retourner le cerveau pendant 2heures, je ne vois pas comment m'y prendre ...

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.


Répondre