Re: Tempo de thermostat
Publié : 02 févr. 2015, 12:33
le script d'alexandredubois est hyper simple à comprendre je trouve.
tu devrais plutôt demander si tu ne comprends pas quelque chose car sinon je ne vois absolument pas ce qui te manque.
au début il met
j'ai bien vu que tu utilisais les températuresetpoint, et bien tu vire le 20 et tu met ta commande à la place ....
et voila c'est à ton gout...
tout est comme ça, tu enlèves, ajoute remplace... au moins si ça ne fonctione plus tu sais que c'est ta dernière modif qui coince, c'est à ça que ça sert de partir d'une base saine...
du moment que tu comprends l'usage des variables, à quoi sert if, else, and, or, otherdevice, deviceChanged etc.... tu peux adapter comme bon te semble.
dans ton premier message tu viens avec une erreur de comparaison entre un nombre et une chaine de caractère (ex: 19 < "20")
je résou cette erreur dans mon script, as tu cherché à voir comment j'obtenais la température pour ne pas avoir cette erreur ?
il faut transformer la chaine en nombre, avec la fonction tonumber(), il existe aussi l'opposé tostring().
j'ai commenté tout le code pour qu'il soit simple à comprendre.
il utilise l'hystérésis sur la baisse ou la hausse, mais rien ne t'empêche de modifier ceci
en ceci
ça te semble simple ou pas ?
si tout mon système d'automatisation de consigne ne te convient pas, effaces simplement cette partie du code....
tu as absolument tout sous la main pour faire ce que tu veux faire, mais si tu bloque sur quelque chose, dis le..
ceci par exemple est clair pour toi ?
tu devrais plutôt demander si tu ne comprends pas quelque chose car sinon je ne vois absolument pas ce qui te manque.
au début il met
Code : Tout sélectionner
local consigne = 20 --Température de consigneCode : Tout sélectionner
local consigne = tonumber(otherdevices_svalues['Temperature Consigne Confort']) --Température de consignetout est comme ça, tu enlèves, ajoute remplace... au moins si ça ne fonctione plus tu sais que c'est ta dernière modif qui coince, c'est à ça que ça sert de partir d'une base saine...
du moment que tu comprends l'usage des variables, à quoi sert if, else, and, or, otherdevice, deviceChanged etc.... tu peux adapter comme bon te semble.
dans ton premier message tu viens avec une erreur de comparaison entre un nombre et une chaine de caractère (ex: 19 < "20")
Code : Tout sélectionner
script_device_chauffage.lua:8: attempt to compare number with stringil faut transformer la chaine en nombre, avec la fonction tonumber(), il existe aussi l'opposé tostring().
Code : Tout sélectionner
local temperature = tonumber(string.sub(otherdevices_svalues[sonde],1,4)) -- Température relevéeil utilise l'hystérésis sur la baisse ou la hausse, mais rien ne t'empêche de modifier ceci
Code : Tout sélectionner
if (temperature < (consigne - hysteresis) ) thenCode : Tout sélectionner
if (temperature < consigne ) thensi tout mon système d'automatisation de consigne ne te convient pas, effaces simplement cette partie du code....
tu as absolument tout sous la main pour faire ce que tu veux faire, mais si tu bloque sur quelque chose, dis le..
ceci par exemple est clair pour toi ?
Code : Tout sélectionner
local today = os.date("%A")
if (today == "Saturday" or today == "Sunday" or otherdevices[boost] == 'On') then
consigne_conf = consigne_conf_weekend
else
consigne_conf = consigne_conf_semaine
end