Bonsoir,
J’essaie de mettre en place ce script pour piloter mon chauffage mais je n'ai aucune compétence en programmation .Je rencontre une erreur de ce type:
bad argument #1 to 'sub' (string expected, got nil) à la ligne 52 qui est la ligne :
year = string.sub(s, 1, 4)
J'ai beau chercher si j'ai fait des erreurs mais je n'en vois pas.
Savez vous d’où peut provenir?
Bonsoir,
L'erreur ne vient pas de cette fonction ligne 52, mais sans doute dans tes déclarations de variables qui précèdent.
Vérifie bien chaque ligne local.... l'orthographe des noms est-il bien le même que sur ton domoticz ...
A+
srill a écrit :Bonsoir,
J’essaie de mettre en place ce script pour piloter mon chauffage mais je n'ai aucune compétence en programmation .Je rencontre une erreur de ce type:
bad argument #1 to 'sub' (string expected, got nil) à la ligne 52 qui est la ligne :
year = string.sub(s, 1, 4)
J'ai beau chercher si j'ai fait des erreurs mais je n'en vois pas.
Savez vous d’où peut provenir?
Domoticz sur RPI4 / Rflink / Rftrxcom / Sondes thermo sur 1Wire / Volets Somfy rts / Divers modules 433 mhz pas chers / Poele à pellets Ravelli domotisé / Volets Bubendorf / SonOff / Arrosage enterré sur SonOff 4 / Robot piscine domotisé
Merci beaucoup!
J'ai trouvé mon erreur, j'avais mis un C majuscule à Chambre dans le tableau et un c minuscule dans les switchs et interrupteurs! ça tiend à peu de chose!!!
Bonjour,
Mise à jour du code pour alléger un tant soit peu les boucles, quelques IF étaient inutiles.
Ce script gère la totalité des radiateurs d'une maison avec un minimum de modification en cas de rajout.
Domoticz sur RPI4 / Rflink / Rftrxcom / Sondes thermo sur 1Wire / Volets Somfy rts / Divers modules 433 mhz pas chers / Poele à pellets Ravelli domotisé / Volets Bubendorf / SonOff / Arrosage enterré sur SonOff 4 / Robot piscine domotisé
Bonjour Nissa,
Je voie que sur le premier post les thermostats sont en "bandeau rouge", si tu n'as pas modifié depuis,
J'avais le même problème et ai résolu la chose en lisant la consigne et en la "réinjectant" dans la foulée sur le thermostat..
Au cas ou
cdt
Bertrand
Bonjour,
Merci bcp pour ce script que j'ai mis en place.
ça a fonctionné mais j'ai eu des allumages / arrêts très rapprochés.
Est-ce qu'il n'y a pas un "else" en trop qui coupe le chauffage dès qu'on passe au dessus de la valeur consigne-hysterisis?
else
commandArray[radiateur]='Off'
status = 0
log = '*** Le Radiateur est arrêté'
if (debug) then print('>>>>>>>>ELSE>>>>>>>>>>>>>>>>>>>>>>>>>>>> Radiateur arrêté ! '..valeur) end
end
xav999 a écrit :Bonjour,
Merci bcp pour ce script que j'ai mis en place.
ça a fonctionné mais j'ai eu des allumages / arrêts très rapprochés.
Est-ce qu'il n'y a pas un "else" en trop qui coupe le chauffage dès qu'on passe au dessus de la valeur consigne-hysterisis?
else
commandArray[radiateur]='Off'
status = 0
log = '*** Le Radiateur est arrêté'
if (debug) then print('>>>>>>>>ELSE>>>>>>>>>>>>>>>>>>>>>>>>>>>> Radiateur arrêté ! '..valeur) end
end
L'arrêt ou le démarrage du radiateur s'effectue toujours en cumulant la consigne et l'hystérisis (en plus pour le off et en moins pour le on).
En fonction de la dissipation de la chaleur dans la pièce, il faut ajuster l'hysteresis dans la déclaration des variables (local hystérisis = ...) pour éviter des on/off trop frequents. Pour moi je l'ai mis très bas, à 0,4 °, car ma maison est bien isolée. Il faut trouver là bonne valeur en fonction de chacun.
Domoticz sur RPI4 / Rflink / Rftrxcom / Sondes thermo sur 1Wire / Volets Somfy rts / Divers modules 433 mhz pas chers / Poele à pellets Ravelli domotisé / Volets Bubendorf / SonOff / Arrosage enterré sur SonOff 4 / Robot piscine domotisé
Oui mais là on a :
if (temperature <= (consigne - hysteresis)) then
commandArray[radiateur]='On' -- on allume le radiateur*
...
else
commandArray[radiateur]='Off'
du coup dès que la condition (temperature <= (consigne - hysteresis) ) n'est plus remplie, le radiateur s'éteint. Donc dans mon cas ou la consigne est à 19,5 et l'hysteresis à 0,4 (j'ai laissé la même valeur), dès que la température dépasse 19,1 le chauffage se coupe. Donc j'ai un cycle de chauffe hyper court puisqu'il correspond à une hausse de température de seulement 0,1°