Blocky qui boucle

Vous avez des questions concernant les scripts dans Domoticz, posez vos questions ici, quelque soit le langage nous tenterons des réponses pertinentes ...
JuGuSm
Messages : 13
Enregistré le : 16 sept. 2018, 15:00

Blocky qui boucle

Message par JuGuSm » 16 sept. 2018, 15:06

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 !

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


fredandrick65
Messages : 99
Enregistré le : 23 avr. 2016, 20:45

Re: Blocky qui boucle

Message par fredandrick65 » 16 sept. 2018, 15:36

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
Domoticz V3.8153 sur Synology DS3615xs DSM 5.2-5967 Update 3
RFLink_v1.1_r46 (433.92 & 433.42 Mhz)
Sonde Oregon THGR810-Prise Everspring-OWL CM180
Humidité du sol Opus XT300-Sondes Oregon pour les nuls V2

Les non-dit font les pires malentendus ! ;)

JuGuSm
Messages : 13
Enregistré le : 16 sept. 2018, 15:00

Re: Blocky qui boucle

Message par JuGuSm » 16 sept. 2018, 16:28

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.

vil1driver
Messages : 4457
Enregistré le : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Blocky qui boucle

Message par vil1driver » 16 sept. 2018, 16:36

Salut,

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

Domoticz v3.9203 (ubuntu server) OpenZwave v1.4-3000 (zwave+ sigma designs) rfxtrx433 fw1015T1

433mhz : thgn800, ms13e2, phenix, Di.O, zk1pa, creasol sender
868mhz : fgms-001, fgfs-101, dsd37-zweu, ZW098


modules.lua

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


fredandrick65
Messages : 99
Enregistré le : 23 avr. 2016, 20:45

Re: Blocky qui boucle

Message par fredandrick65 » 16 sept. 2018, 16:39

dans le else if il faut mettre
"Xiaomi Smart Switch 1" = OFF
et non pas on
Domoticz V3.8153 sur Synology DS3615xs DSM 5.2-5967 Update 3
RFLink_v1.1_r46 (433.92 & 433.42 Mhz)
Sonde Oregon THGR810-Prise Everspring-OWL CM180
Humidité du sol Opus XT300-Sondes Oregon pour les nuls V2

Les non-dit font les pires malentendus ! ;)

vil1driver
Messages : 4457
Enregistré le : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Blocky qui boucle

Message par vil1driver » 16 sept. 2018, 16:41

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.

Domoticz v3.9203 (ubuntu server) OpenZwave v1.4-3000 (zwave+ sigma designs) rfxtrx433 fw1015T1

433mhz : thgn800, ms13e2, phenix, Di.O, zk1pa, creasol sender
868mhz : fgms-001, fgfs-101, dsd37-zweu, ZW098


modules.lua

JuGuSm
Messages : 13
Enregistré le : 16 sept. 2018, 15:00

Re: Blocky qui boucle

Message par JuGuSm » 16 sept. 2018, 16:48

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.

vil1driver
Messages : 4457
Enregistré le : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Blocky qui boucle

Message par vil1driver » 16 sept. 2018, 17:00

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']

Domoticz v3.9203 (ubuntu server) OpenZwave v1.4-3000 (zwave+ sigma designs) rfxtrx433 fw1015T1

433mhz : thgn800, ms13e2, phenix, Di.O, zk1pa, creasol sender
868mhz : fgms-001, fgfs-101, dsd37-zweu, ZW098


modules.lua

JuGuSm
Messages : 13
Enregistré le : 16 sept. 2018, 15:00

Re: Blocky qui boucle

Message par JuGuSm » 16 sept. 2018, 17:05

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

vil1driver
Messages : 4457
Enregistré le : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Blocky qui boucle

Message par vil1driver » 16 sept. 2018, 18:01

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

Domoticz v3.9203 (ubuntu server) OpenZwave v1.4-3000 (zwave+ sigma designs) rfxtrx433 fw1015T1

433mhz : thgn800, ms13e2, phenix, Di.O, zk1pa, creasol sender
868mhz : fgms-001, fgfs-101, dsd37-zweu, ZW098


modules.lua

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Répondre