Page 1 sur 2

besoin d'aide script lua

Publié : 27 janv. 2016, 06:40
par jule1986
Bonjour a tous,

je bloque sur un script lua... qui gère mon chauffage, jusque la ca fonctionnait mais je souhaite rajouter une "fonction" et je n'y arrive pas.

voici le script qui ne passe pas

Code : Tout sélectionner

commandArray = {}                                                                                                                                                                                                                          
t1 = os.date("%H:%M")                                                                                                     
if ((t1 >= uservariables["debut_chauf1"] and uservariables["fin_chauf1"] >= t1) or (t1 >= uservariables["debut_chauf2"] and uservariables["fi$
            print ("Confort")                                                                                                                                                                                                                                                               
         if (otherdevices['relais1']=='Off') then                                                                                                                                                                                                                                 
                   commandArray['relais1'] = 'On'                                                                                                                                                                                                                                       
          end                                                                                                                                                                                                                                                                               
elseif otherdevices['matin']=='on' and (t1 >= uservariables["debut_chauf_matin"] and uservariables["fin_chauf_matin"] >= t1) then                                                                                                                                                           
           print ("Confort_matin")                                                                                                                                                                                                                                                          
         if (otherdevices['relais1']=='Off') then                                                                                                                                                                                                                                           
                 commandArray['relais1'] = 'On'                                                                                                                                                                                                                                             
        end                                                                                                                                                                                                                                                                                
     else                                                                                                                                                                                                                                                                                  
           print ("Eco");                                                                                                                                                                                                                                                                
         if (otherdevices['relais1']=='On') then                                                                                                                                                                                                                                          
                   commandArray['relais1'] = 'Off'                                                                                            
          end                                                                                                                                                                                                                                                                             
end                                                                                                                                                                                                                                                                                        
return commandArray
C'est comme si la partie du code contenu dans "elseif" n'etait pas pris en compte...

Merci d'avance pour vos réponse.

Julien

Re: besoin d'aide script lua

Publié : 27 janv. 2016, 08:50
par vil1driver
Salut,

Dans elseif il y a else (sinon) ;)

Re: besoin d'aide script lua

Publié : 27 janv. 2016, 09:03
par jule1986
Ah oui effectivement.... du coup il faudrait que je passe par quoi ?

Re: besoin d'aide script lua

Publié : 27 janv. 2016, 09:30
par vil1driver
else ou elseif, le tout est d'être logique..

parfois simplement changer l'ordre de teste..

ou juste re partir sur un if au lieu de elseif pour rendre ce teste indépendant du premier

le plus difficile à toujours été la réflexion..

Re: besoin d'aide script lua

Publié : 27 janv. 2016, 22:02
par jule1986
Ok, mais j'ai essayé de le rajouter dans mon premier if en rajoutant or mais j'ai du me tromper dans les parenthèses...

Re: besoin d'aide script lua

Publié : 27 janv. 2016, 22:16
par vil1driver
n'hésites pas à passer par la case "j'écris ce que je veux avec des mots" pour bien penser le cheminement..

si ça alors faire ça mais si ça alors faire également ça..etc...

la transcription en code n'en sera que plus simple...

Re: besoin d'aide script lua

Publié : 28 janv. 2016, 07:30
par jule1986
Je pense que j'ai réussi, merci pour les conseils.
Je verrais demain matin si j'ai encore froid ou pas.... Si ça fonctionne je passerais le sujet en résolu.

Voici le script (si ça intéresse quelqu'un):

Code : Tout sélectionner

commandArray = {}

t1 = os.date("%H:%M")

if (((t1 >= uservariables["debut_chauf1"] and uservariables["fin_chauf1"] >= t1) or (t1 >= uservariables["debut_chauf2"] and uservariables["fin_chauf2"] >= t1)) or (otherdevices['matin']=='on' and (t1 >= uservariables["debut_chauf_matin"] and uservariables["fin_chauf_matin"] >= t1))) then
		print ("Confort")
		if (otherdevices['relais1']=='Off') then
			commandArray['relais1'] = 'On'
		end
else
	print("Eco");
	if (otherdevices['relais1']=='On') then
		commandArray['relais1'] = 'Off'
	end
end
return commandArray

Re: besoin d'aide script lua

Publié : 28 janv. 2016, 08:41
par vil1driver
Le end avant le else est de trop..

Re: besoin d'aide script lua

Publié : 28 janv. 2016, 09:17
par jule1986
bon ba en faite ça fonctionne pas..... (enfin pas complètement) :
la partie chauffage "normale" fonctionne mais pas celle qui devrai se mettre en route quand le switch matin est sur On....

Re: besoin d'aide script lua

Publié : 28 janv. 2016, 09:35
par jule1986
vil1driver a écrit :Le end avant le else est de trop..
Tu es sur ? Car si je le met a la fin ca ne fonctionne plus et si je l'enlève non plus(logique)

Je pense que le probleme est dans cette ligne en gras :
if (((t1 >= uservariables["debut_chauf1"] and uservariables["fin_chauf1"] >= t1) or (t1 >= uservariables["debut_chauf2"] and uservariables["fin_chauf2"] >= t1)) or (otherdevices['matin']=='on' and (t1 >= uservariables["debut_chauf_matin"] and uservariables["fin_chauf_matin"] >= t1))) then

Mais je n'en suis pas sur...