Re: chauffage PID
Publié : 31 oct. 2017, 12:40
@lmet, t'as rien suivi 
Reprenez le contrôle de votre domotique
https://easydomoticz.com/forum/
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..."
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
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
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 '<