[LUA] Chauffage PID
-
vil1driver
- Messages : 5661
- Inscription : 30 janv. 2015, 11:07
- Localisation : Rennes (35)
Re: chauffage PID
@lmet, t'as rien suivi 
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
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
Re: chauffage PID
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é
Edit : Oups tu as raison, j'ai compris l'inverse de ce qui a été écrit. Désolé
Re: chauffage PID
Ah non excusez moi j'ai fait une boulette...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 :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 ?Error: EventSystem: in Script module chauffage: [string "--[[ ..."]:66: cannot open --[[ "puis il me cite le script en entier..."
-
vil1driver
- Messages : 5661
- Inscription : 30 janv. 2015, 11:07
- Localisation : Rennes (35)
Re: chauffage PID
tu as le fichier JSON.lua dans le dossier ?
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
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
Re: chauffage PID
Non non t'inquiète pas vil1driver, c'était parce que j'avais laissé le fichier 'modules.lua' dans les événements. 
Re: chauffage PID
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 :
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.
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
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.
RPI 3 - Raspbian 8 (Jessie) - Domoticz V3.5877
-
jackslayter
- Messages : 1040
- Inscription : 30 sept. 2014, 14:40
- Localisation : Isère (38)
Re: chauffage PID
une idee pourquoi j'ai des erreurs
alors que ça marche bien
merci
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)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
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
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
Re: chauffage PID
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
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
Je ne vois pas bien d'où vient le souci...Error: EventSystem: in script_time_test: /home/pi/domoticz/scripts/lua/modules.lua:7: unexpected symbol near '<
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...
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...
Re: chauffage PID
Tu as dû modifié le script de vil1driver.
Qu'as-tu en ligne 7 ?
Qu'as-tu en ligne 7 ?
RPI 3 - Raspbian 8 (Jessie) - Domoticz V3.5877
Re: chauffage PID
J'ai simplement modifié l'IP par mon IP locale.
Voilà les premières lignes, je sèche ?
Voilà les premières lignes, je sèche ?
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...
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...