Page 1 sur 2

Blocky qui boucle

Publié : 16 sept. 2018, 15:06
par JuGuSm
Bonjour,

Voici le blocky réalisé :

Image

Je ne comprends pas pourquoi cette action tourne en boucle. Le volet s'ouvre mais pendant l'ouverture il se referme et se rouvre en permanence.

C'est comme si le script se ré-exécute constamment mais je ne comprends pas pourquoi...

J'ai essayé d'écrire un script LUA équivalent mais c'est la même chose.

Merci de votre aide !

Re: Blocky qui boucle

Publié : 16 sept. 2018, 15:36
par fredandrick65
JuGuSm a écrit : Je ne comprends pas pourquoi cette action tourne en boucle. Le volet s'ouvre mais pendant l'ouverture il se referme et se rouvre en permanence.
C'est comme si le script se ré-exécute constamment mais je ne comprends pas pourquoi...
Priemere condition si inter = On et Volet est fermé alors ouvre Volet
Deuxième condition si inter = On et Volet est ouvert alors ferme Volet

donc c'est normal que cela boucle
essayes avec un Off pour la deuxième condition

ton blocky est en "device" ?
Blizzard aussi de mettre "Off" ou "On" dans la condition et "Open" ou "Close" dans l'action

Re: Blocky qui boucle

Publié : 16 sept. 2018, 16:28
par JuGuSm
Merci de répondre.

Que trouves-tu de bizarre ?
Je voudrais que si j'appuie sur mon interrupteur, le volet s'ouvre s'il est fermé ou se ferme s'il est ouvert donc à mon sens, la condition traduit bien ce que je souhaite. D'autant plus que la deuxième condition est un "else if" donc il n'entre que si la première n'est pas vérifiée.

Je suis bien en device mais je n'ai pas vraiment compris cette option car je n'ai pas vu de différence en la modifiant.

Re: Blocky qui boucle

Publié : 16 sept. 2018, 16:36
par vil1driver
Salut,

Impossible que ça ne fonctionne pas en lua,
Fait voir ton code

Re: Blocky qui boucle

Publié : 16 sept. 2018, 16:39
par fredandrick65
dans le else if il faut mettre
"Xiaomi Smart Switch 1" = OFF
et non pas on

Re: Blocky qui boucle

Publié : 16 sept. 2018, 16:41
par vil1driver
Pas nécessairement si c'est un pushOn, sa logique est bonne, blocky est juste horrible.

L'idée pour un blocky en type device serait de n'avoir qu'une seule condition en tête et les autres imbriquées dessous, mais cela est bugué et donc pas vraiment exploitable.

Re: Blocky qui boucle

Publié : 16 sept. 2018, 16:48
par JuGuSm
Je ne retrouves plus mon script lua équivalent à celui en blocky mais voilà celui que je teste à cet instant :

Code : Tout sélectionner

commandArray = {}

if otherdevices['Xiaomi Smart Switch 1'] == "On" and otherdevices_svalues['Xiaomi Smart Switch 1'] == "10" then
	commandArray['Volet séjour 1'] = "On"
	elseif otherdevices['Xiaomi Smart Switch 1'] == "On" and otherdevices_svalues['Xiaomi Smart Switch 1'] == "20" then
	commandArray['Volet séjour 1'] = "Off"
end

return commandArray
Si tu me dis que le blocky est buggé en plus... je vais tout scripter.

Re: Blocky qui boucle

Publié : 16 sept. 2018, 17:00
par vil1driver
Tes 10 et 20 en svalues correspondent à quoi ?

Sinon en type device, la prise en compte de la maj est réalisée par devicechanged['ton_device']

Re: Blocky qui boucle

Publié : 16 sept. 2018, 17:05
par JuGuSm
C'est pour identifier le simple click ou le double click.

Donc je devrais modifier de la sorte ?

Code : Tout sélectionner

commandArray = {}

if otherdevices['Xiaomi Smart Switch 1'] == "On" and otherdevices_svalues['Xiaomi Smart Switch 1'] == "10" then
   commandArray['Volet séjour 1'] = "On"
   devicechanged['Volet séjour 1']
   elseif otherdevices['Xiaomi Smart Switch 1'] == "On" and otherdevices_svalues['Xiaomi Smart Switch 1'] == "20" then
   commandArray['Volet séjour 1'] = "Off"
   devicechanged['Volet séjour 1']
end

return commandArray

Re: Blocky qui boucle

Publié : 16 sept. 2018, 18:01
par vil1driver
Désolé je me suis mal exprimé
Plutôt ainsi

Code : Tout sélectionner

commandArray = {}

if devicechanged['Xiaomi Smart Switch 1'] == "On" and otherdevices_svalues['Xiaomi Smart Switch 1'] == "10" then
   commandArray['Volet séjour 1'] = "On"
   
   elseif devicechanged['Xiaomi Smart Switch 1'] == "On" and otherdevices_svalues['Xiaomi Smart Switch 1'] == "20" then
   commandArray['Volet séjour 1'] = "Off"
   
end

return commandArray
Ou (plus propre imho)

Code : Tout sélectionner

commandArray = {}

if devicechanged['Xiaomi Smart Switch 1'] == "On" then
   if otherdevices_svalues['Xiaomi Smart Switch 1'] == "10" then
      commandArray['Volet séjour 1'] = "On"
   
   elseif otherdevices_svalues['Xiaomi Smart Switch 1'] == "20" then
      commandArray['Volet séjour 1'] = "Off"
   
   end
end

return commandArray