variable qui ne change pas lua

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
domoticzmax
Messages : 13
Inscription : 16 mai 2020, 12:24

Re: variable qui ne change pas lua

Message par domoticzmax »

Capture.PNG
Capture.PNG (13.98 Kio) Consulté 3111 fois
ma variable tout est bon normalement
et les logs c'est a dire ?
denis_brasseur
Messages : 898
Inscription : 24 déc. 2018, 17:05
Localisation : (26)

Re: variable qui ne change pas lua

Message par denis_brasseur »

vil1driver a écrit : 25 mai 2020, 22:42

Code : Tout sélectionner

commandArray['variable:compteur'] = '25'
https://www.domoticz.com/wiki/User_variables
commandArray['Variable:compteur']='25'
Et met ta variable en Chaine.
Pi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: variable qui ne change pas lua

Message par vil1driver »

Ah oui :D merci

La variable peut rester en entier, c'est juste qu'elle ne pourra contenir qu'un entier sous forme de chaîne (pas tordu domoticz hein ;))
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
denis_brasseur
Messages : 898
Inscription : 24 déc. 2018, 17:05
Localisation : (26)

Re: variable qui ne change pas lua

Message par denis_brasseur »

Effectivement, complètement pas tordu :D
Prochaine étape : les Logs !
Pi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090
domoticzmax
Messages : 13
Inscription : 16 mai 2020, 12:24

Re: variable qui ne change pas lua

Message par domoticzmax »

c'est a se tirer les cheveux :D
et j'ai fait avec le V mais pas de changement ma variable reste a 0
mon problème viendrai des logs ? (je ne vois pas du tout se que c'est)
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: variable qui ne change pas lua

Message par vil1driver »

Là ou domoticz te parle de tout ce qu'il fait et de ses maleurs...

Image
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
domoticzmax
Messages : 13
Inscription : 16 mai 2020, 12:24

Re: variable qui ne change pas lua

Message par domoticzmax »

a ça pardon je comprenais pas, je croyais il fallait faire une manipulation et lorsque que je passe l'interrupteur a 25 j'ai ça.
Capture1.PNG
Capture1.PNG (6.68 Kio) Consulté 3072 fois
et quand je passe sur off j'ai ça
Capture2.PNG
Capture2.PNG (4.91 Kio) Consulté 3072 fois
et ma variable est bien passer a 25 avec le code comme on peut le voir mais uniquement quand j'ai manuellement appuyer sur off ou que je change de nombre sinon il n'affiche rien sur le log
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: variable qui ne change pas lua

Message par vil1driver »

Bon je pense qu'il y a mal donne
D'où l'importance de bien poser le problème

Tu as un interrupteur selecteur ?
Nommé rideau gauche
C'est lui qui prends les valeurs 25 50 etc..?

Et tu veux qu'en fonction de sa valeur, le rideau réel monte ou descende ?

Dans ce cas ça change un peu les choses
Il va falloir lire sa valeur (position voulue)
De mémoire c'est

Code : Tout sélectionner

if otherdevices_svalues['rideau gauche'] = '25'
La variable peu être conservée (position réelle) pour comparaison

le début du script (type DEVICE) pourrait ressembler à cela

Code : Tout sélectionner

commandArray = {}
 
if (devicechanged['rideau gauche']) then 
	local compteur = uservariables['compteur']
	local selecteur = otherdevices_svalues['rideau gauche']
	commandArray['Variable:compteur'] = selecteur
	print ("compteur: "..compteur)
	print("selecteur: "..selecteur)
	if (selecteur == '0') then  
		if (compteur == '0') then
			commandArray ['rideau gauche'] = 'Off' 
		elseif (compteur == '25') then
			commandArray[1]={['rideau gauche up']='On'}
			commandArray[2]={['rideau gauche up']='Off AFTER 5'} 
		elseif (compteur == '50') then
			commandArray[1]={['rideau gauche up']='On'}
			commandArray[2]={['rideau gauche up']='Off AFTER 50'}  
		elseif (compteur == '75') then
			commandArray[1]={['rideau gauche up']='On'}
			commandArray[2]={['rideau gauche up']='Off AFTER 75'}  
		elseif (compteur == '100') then
			commandArray[1]={['rideau gauche up']='On'}
			commandArray[2]={['rideau gauche up']='Off AFTER 100'}   
		end
	if (selecteur == '25') then
	....
	end
end
return commandArray
il y a un if de plus, un end supplémentaire est donc ajouté à la fin (avant return commandArray)
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
domoticzmax
Messages : 13
Inscription : 16 mai 2020, 12:24

Re: variable qui ne change pas lua

Message par domoticzmax »

exactement j'ai un interrupteur off 0 25 50 75 100 rideau gauche
qui fait lui fonctionner gauche up ou gauche down 2 autre interrupteur

alors j'avais

Code : Tout sélectionner

(compteur == '0' )
et ça ne marchai pas mais en mettant

Code : Tout sélectionner

(compteur == 0 )
ça fonctionne après le dernier problème c'est que rideau gauche(le sélecteur) ne bascule pas sur off comme je le demande

Code : Tout sélectionner

if (devicechanged['rideau gauche'] == '0') then  
    if (compteur == 0 ) then
        commandArray ['rideau gauche'] = 'Off'
pourtant il fait plusieurs tour dans le code car dans les logs il me donne plusieurs fois le 0
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: variable qui ne change pas lua

Message par vil1driver »

tu as peut-être répondu avant que je finisse de copier mon bout de code..

pourquoi souhaites tu qu'il repasse à Off ? ça n'a pas vraiment d’intérêt
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
Répondre