Page 6 sur 34

Re: chauffage PID

Publié : 31 oct. 2017, 12:40
par vil1driver
@lmet, t'as rien suivi :D

Re: chauffage PID

Publié : 31 oct. 2017, 13:50
par lmet
Bah, je ne parlais pas de modules.lua mais des scripts en général. Pour une fois que je lis le wiki
Edit : Oups tu as raison, j'ai compris l'inverse de ce qui a été écrit. Désolé

Re: chauffage PID

Publié : 01 nov. 2017, 09:34
par Djodo
Ok pas de problème si ce n'est pas possible. Le jour où je restaurerai le système et que j'oublierai le fichier 'modules.lua', Domoticz me l'indiquera dans les logs...

Par contre j'ai un problème avec ce fichier !
Domoticz m'indique dans les logs :
Error: EventSystem: in Script module chauffage: [string "--[[ ..."]:66: cannot open --[[ "puis il me cite le script en entier..."
J'ai augmenté les autorisations du fichier jusqu'à 777 mais ça ne change rien. Est ce que ce serait lié au fait que j'utilise la distribution DietPi avec je pense une disposition différente des dossiers ?
Ah non excusez moi j'ai fait une boulette... :oops:

Re: chauffage PID

Publié : 01 nov. 2017, 10:38
par vil1driver
tu as le fichier JSON.lua dans le dossier ?

Re: chauffage PID

Publié : 01 nov. 2017, 10:41
par Djodo
Non non t'inquiète pas vil1driver, c'était parce que j'avais laissé le fichier 'modules.lua' dans les événements. :roll:

Re: chauffage PID

Publié : 05 nov. 2017, 13:37
par rapinou
Salut vil1driver,

J'étais en train d'essayer de décrypter ton script, car j'aime bien comprendre plutôt que d'appliquer simplement, et je me demandais l'intérêt de ce passage là sur le second système intégrale :

Code : Tout sélectionner

			-- Aux abords de la consigne, passage au second système intégrale
			if somme_erreurs < 2 then
				somme_erreurs = tonumber(uservariables['PID_integrale_'..pid['zone']])
				-- Re-calcul intégrale si hors hysteresis
				-- A plus ou moins 2 dixièmes de degrés d'écart avec la consigne
				-- Le ratrapage est considéré OK, l'intégrale n'est pas recalculée
				if math.abs(erreur) > 0.11 then
					-- Calcul intégrale
					somme_erreurs = round(constrain(somme_erreurs+erreur/2,0,2),2)
					-- Màj
					commandArray['Variable:PID_integrale_'..pid['zone']] = tostring(somme_erreurs)
				end
			end
Pourquoi ne pas continuer à calculer l'intégrale de la même façon ?

Au passage, une coquille : "A plus ou moins 2 dixièmes de degrés" à modifier comme tu as changé pour 0.11 il y a quelques jours.

Re: chauffage PID

Publié : 07 nov. 2017, 11:33
par jackslayter
une idee pourquoi j'ai des erreurs

Code : Tout sélectionner

2017-11-07 02:09:20.425 Error: EventSystem: in thermostat2: [string "commandArray = {}..."]:40: attempt to perform arithmetic on global 'duree' (a string value)
alors que ça marche bien

Code : Tout sélectionner

time = os.date("*t")
local radiateur = 'radiateur salon'

function lastSeen(device)
  timestamp = otherdevices_lastupdate[device] or device
  y, m, d, H, M, S = timestamp:match("(%d+)-(%d+)-(%d+) (%d+):(%d+):(%d+)")
  difference = os.difftime(os.time(), os.time{year=y, month=m, day=d, hour=H, min=M, sec=S})
  return difference
end


function stateChange(device)
	if (devicechanged[device] == nil) then
		return false
	elseif (devicechanged[device] == uservariables['lastState_'..device]) then
		return false
	else
		duree = lastSeen(uservariables_lastupdate['lastState_'..device])
		commandArray[120] = {['Variable:lastState_'..device] = otherdevices[device]}
		--updateVar('lastState_'..device,otherdevices[device])
		return otherdevices[device]
	end
end	

if stateChange(radiateur) == 'Off' then
      power, energy = string.match(otherdevices_svalues["conso_rad_salon"], "(%d+%.*%d*);(%d+%.*%d*)")
      commandArray['UpdateDevice'] = otherdevices_idx["conso_rad_salon"] .. '|0|2020;' .. energy
end
if stateChange(radiateur) == 'On' then
      power, energy = string.match(otherdevices_svalues["conso_rad_salon"], "(%d+%.*%d*);(%d+%.*%d*)")
      energy = tonumber(energy + (2020 / 3600 * duree))
      commandArray['UpdateDevice'] = otherdevices_idx["conso_rad_salon"] .. '|0|0;' .. energy
end
merci

Re: chauffage PID

Publié : 08 nov. 2017, 09:16
par Snake29
Bonjour à tous,

Et un grand merci pour toutes vos contributions...

Vil1driver, je suis hyper intéressé par ton script PID.
En effet, je gère le chauffage sur 4 zones (2 pièces de vie + 2 chambres) avec un script "classique". Mes radiateurs sont à inertie et le résultat me satisfait moyennement.
Aussi je voulais tester ton script.

J'ai donc pris modules.lua, et créé un script suivant ton modèle en première page.

Et je bute désespérement sur cette erreur
Error: EventSystem: in script_time_test: /home/pi/domoticz/scripts/lua/modules.lua:7: unexpected symbol near '<
Je ne vois pas bien d'où vient le souci...

Re: chauffage PID

Publié : 08 nov. 2017, 11:48
par rapinou
Tu as dû modifié le script de vil1driver.
Qu'as-tu en ligne 7 ?

Re: chauffage PID

Publié : 08 nov. 2017, 13:33
par Snake29
J'ai simplement modifié l'IP par mon IP locale.

Voilà les premières lignes, je sèche ?
Capture.JPG
Capture.JPG (43.05 Kio) Consulté 9061 fois