Page 1 sur 2
Script si temp < 20 alors chauffe
Publié : 21 nov. 2020, 10:15
par myeleec
Bonjour,
j'ai un module SonOff TH10 avec sa sonde de température.
Je pense avoir bien installé le module, puisque si je le commande depuis Domoticz, ça fonctionne.

- interrupteur.PNG (10.48 Kio) Consulté 3940 fois
J'ai bien le relevé de température qui fonctionne également :

- mesures.PNG (23.06 Kio) Consulté 3940 fois
Et j'ai créé un programme Blocky tout simple pour faire des tests :

- blocky.PNG (6.85 Kio) Consulté 3940 fois
J'ai un second script qui fonctionne très bien :

- douche.PNG (11.8 Kio) Consulté 3940 fois
(Si j'appuie sur un bouton virtuel, la lumière de la douche s'allume pendant 1 minute et ce même chauffage chauffe pendant 2 minutes)
Et pourtant, dans le premier script :

- blocky.PNG (6.85 Kio) Consulté 3940 fois
Il ne se passe absolument rien.
Auriez-vous une idée ?
merci beaucoup
Christophe
Re: Script si temp < 20 alors chauffe
Publié : 21 nov. 2020, 11:48
par Keros
Pour comprendre pourquoi un script ne fonctionne pas, il faut faire du débogage. J'ai un lien dans ma signature où je donne quelques astuces / conseils.
Est-ce que tu as compris comment fonctionnait les scripts et les triggers en particulier ?
Est-ce que "Il ne se passe absolument rien." veut aussi dire que tu rien dans les log même pendant 2 minutes ?
Re: Script si temp < 20 alors chauffe
Publié : 21 nov. 2020, 12:48
par myeleec
Bonjour,
Merci pour ta réponse.
J'ai une petite idée, dans le IF, est-ce que je peux mettre la valeur de la température directement ou dois utiliser une variable ?
Si oui ... J'ai tenté de trouver comment envoyé la valeur de la température dans une variable, mais je n'ai rien compris

Re: Script si temp < 20 alors chauffe
Publié : 26 nov. 2020, 17:06
par myeleec
Bonjour,
je suis toujours en galère pour résoudre ce problème

Si vous avez une idée ...
merci beaucoup
Christophe
Re: Script si temp < 20 alors chauffe
Publié : 26 nov. 2020, 21:18
par manu663
Bonsoir,
Je te joins juste mon blocky chauffage, si ça peut aider.
Je suis un peu pris mais je reviens vers toi dès que possible!

Re: Script si temp < 20 alors chauffe
Publié : 28 nov. 2020, 16:56
par myeleec
Bonjour,
Merci pour ton aide.
je vois dans le dernier else if : que tu a mis ton capteur et la consigne inférieure à 31°C.
C'est bien ce que j'ai fais, et pourtant, ça ne fonctionne pas

Re: Script si temp < 20 alors chauffe
Publié : 29 nov. 2020, 08:16
par lost
myeleec a écrit : 28 nov. 2020, 16:56
je vois dans le dernier else if : que tu a mis ton capteur et la consigne inférieure à 31°C.
C'est bien ce que j'ai fais, et pourtant, ça ne fonctionne pas
Pour ma part, j'ai ceci en Lua pour mettre une consigne de chauffe pour 30mn (1800s) si la température est en dessous de 18.5, que le chauffage était allumé mais en en mode hors-gel (cad hors d'un horaire de présence habituel sinon on serait au moins en eco, j'ai alors une consigne "variateur" entre 10 et 20 sur le module fil pilote) mais que qqun est là quand même (via le status de présence globale alarme) et qu'il est dans le salon (le capteur de mouvement a déclenché).
Les conditions sont plus complexes, mais note les conversions chaînes de caractères contenant des valeurs numériques (faites uniquement si les conditions présence/mouvement sont là, histoire de pas faire de conversions inutiles). Je n'utilise pas le code "lego", car je trouve cela vite illisible au delà de trucs très simples, mais ne faut-il pas faire pareil afin de ne pas se retrouver à comparer des chaînes de caractères, avec un résultat qui n'est pas celui attendu.
Le script reste simple, même si on n'a jamais fait de Lua ou autre mais qu'on se débrouille en anglais:
Code : Tout sélectionner
timeOnSec='1800'
tempLimit=18.5
presence='PresenceGlobal'
move1='MvtSalon'
heat1='Radiateur Salon'
temp1='Temperature Salon'
commandArray = {}
if (devicechanged[move1] == 'On' and otherdevices[presence] == 'On') then
curLvl=tonumber(otherdevices_svalues[heat1])
curTmp=tonumber(otherdevices_svalues[temp1])
-- Uncomment for debug:
-- print(heat1..": Level="..tostring(curLvl).."/Temp="..tostring(curTmp))
if ((curLvl > 10) and (curLvl < 20) and (curTmp < tempLimit)) then
print(heat1.." HG->ECO on presence detection : Salon.")
commandArray[1]={[heat1]='Set Level 25'}
commandArray[2]={[heat1]='Set Level 15 AFTER '..timeOnSec}
end
end
return commandArray
On se retrouve à empiler une commande changeant la consigne (25%, soit entre 20 et 30 = éco sur ces modules) immédiatement et une autre remettant hors-gel (15%) 30mn après.
Etant entendu que si les conditions de déclenchement restent vraies à ce terme, on va alors repartir pour 30mn...
Ca me sert à gérer un peu d'adaptatif (hors plannings switchs contrôlant les modules) quand les enfants rentrent car ils ont un cours qui saute, afin qu'ils ne se pèlent pas trop.
Re: Script si temp < 20 alors chauffe
Publié : 03 déc. 2020, 20:33
par myeleec
Bonjour,
Merci beaucoup pour votre aide.
pour le moment, j'essaie un programme simple comme vous l'avez posté ...

- Capture.PNG (6.77 Kio) Consulté 3720 fois

- Capture2.PNG (11.2 Kio) Consulté 3720 fois
Aucune idée ... mais ça ne fonctionne pas ...
Dans le log du relais SonOff, je vois bien les On OFF que j'effectue manuellement mais aucune via le programme

Re: Script si temp < 20 alors chauffe
Publié : 04 déc. 2020, 05:45
par denis_brasseur
Curieux concernant la température de SonTH Chambre.
Ton post initial du 21/11 et celui du 03/12 affiche tout 2 une température de 18.6° mais avec un last seen du 04/10.
Sur que ta sonde fonctionne afin que le changement de valeur soit pris en compte par le script ?
Re: Script si temp < 20 alors chauffe
Publié : 04 déc. 2020, 13:30
par myeleec
Bonjour,
ah oui, je n'avais pas vu ce détail !
Je vais regarder !
Merci beaucoup