Page 1 sur 2

script Blocky tombe dans une boucle

Publié : 20 sept. 2019, 11:53
par nitro
Bonjour à tous,
Je me tournes vers vous car ça fait plusieurs jours que je me bats avec Blocky car je tombe dans une boucle, et je ne comprends pas pourquoi.
Pour info, l'ensemble de mes équipements font partie de la gamme Xiaomi mi, et sont centralisés sur la gateway V2. Ces actions que je souhaites faire sous Domoticz sont facilement réalisable sur l'application Mi Home mais je souhaiterais ne plus en être dépendant au plus vite pour tout un tas de raisons que vous ne connaissez tout que trop bien :D

Je vous explique la situation :
J'ai, entre autre, une prise connecté Xiaomi sur laquelle j'ai une petite lampe. Je souhaiterais pouvoir allumer celle ci via 2 interrupteur différents : le wireless switch, qui n'est autre qu'un bouton click - double click et un magic cube qui a plusieurs possibilités, donc le shake_air ( on le secoue comme une wiimote :-) ) et le flip90 ( bascule à 90° ).

L'idée, ça serait que je puisse allumer la prise ( et donc la lampe qui est branché dessus ), soit via un simple click du wireless switch, soit via un chake_air du magic cube, et pouvoir éteindre cette même prise soit via un double click ( voir dans l'idéal via un autre click si prise=on ) du wireless switch ou via un flip90 ( voir dans l'idéal un autre shake_air si prise=on ) du magic cube.

J'ai donc crée 2 blocky différents, un pour le wireless switch :
blocky-switch.JPG
blocky-switch.JPG (44.98 Kio) Consulté 3849 fois
Un autre pour le magic cube :
blocky-cube.JPG
blocky-cube.JPG (43.17 Kio) Consulté 3849 fois
J'ai essayé de tout passer dans le même script, mais je m'y perdais un peu et comme ça ne fonctionnait pas comme je le voulais j'ai préféré les différencier pour plus de simplicité. ( peut être la source de mon problème ? )

Ces 2 scripts fonctionnent quand ils sont activés seul, par contre si j'active les 2, le second va tomber dans une boucle et faire redémarrer en boucle ( toutes les secondes d'après la condition que j'ai posé ) et je ne comprends pas pourquoi.
J'ai l'impression que le AND qui est placé dans le IF ne s'applique pas, et qu'il s'arrête simplement à la condition IF prise salon = ON ou OFF.
Cela est valable, que j'active d'abord le script du wireless switch puis celui du magic cube, mais aussi dans l'autre sens. Les scripts semblent donc unitairement OK, mais on dirait qu'ils se marchent dessus l'un l'autre quand ils sont tout les 2 activés...

Je suis sur que c'est une connerie qui me bloque, mais j'ai essayé dans tout les sens et je retombe toujours dans une boucle, et je commence à désespérer. Le but étant que ce soit simple à mettre en place, et la je commence à m'arracher les cheveux pour simplement allumer et éteindre une prise :lol:

Si quelqu'un voit ce qui peut me poser problème, je suis grandement preneur !
Merci d'avance.

Re: script Blocky tombe dans une boucle

Publié : 20 sept. 2019, 12:02
par vil1driver
Salut,

Choisi bien DEVICE comme type (là où tu as du laisser ALL)
Et permute les conditions de chaque côté du AND pour les 4 lignes..
Et ça devrait aller.

Re: script Blocky tombe dans une boucle

Publié : 20 sept. 2019, 13:05
par nitro
Merci pour ta réponse.
J'ai inversé les conditions :
blocky-cube.JPG
blocky-cube.JPG (43.39 Kio) Consulté 3839 fois
switch.JPG
switch.JPG (46.33 Kio) Consulté 3839 fois
Mais le résultat est toujours le même.

Par contre, effectivement j'ai un doute sur le choix des "objets" que j'utilise.

Je suis en version 4.10717 de Domoticz, et pour le choix des "objets" je n'ai pas de All, mais le menu suivant :
menu.JPG
menu.JPG (39.18 Kio) Consulté 3839 fois
Je séléctionne donc mes devices dans device --> switchs. Par contre, je constate que je retrouve également mes devices avec la mention "actual." sous Devices --> utility :
menu-utility.JPG
menu-utility.JPG (42.97 Kio) Consulté 3839 fois
Quelle est la différence concrètement entre les 2 ? J'ai cru comprendre que ceux sous utility étaient à utiliser pour le changement d'état mesuré, mais est ce que c'est sensé fonctionner pour un état on / off ? je n'avais pas de résultat, même en debug avec ces objets du coup je suis resté sur les devices switch, mais j'ai quand même un doute...

Re: script Blocky tombe dans une boucle

Publié : 20 sept. 2019, 17:23
par denis_brasseur
vil1driver a écrit : 20 sept. 2019, 12:02
Choisi bien DEVICE comme type (là où tu as du laisser ALL)
vil1driver parle bien du type de script (triggers)
Capture.PNG
Capture.PNG (1.75 Kio) Consulté 3827 fois

Re: script Blocky tombe dans une boucle

Publié : 20 sept. 2019, 22:39
par nitro
Ok, merci de la précision effectivement, je n'avais jamais fait gaffe à cet onglet.
Par contre, j'ai bien passé l'onglet sur device mais j'ai toujours le même problème. J'ai essayé avec 2 scripts différents :
cube.JPG
cube.JPG (42.99 Kio) Consulté 3819 fois
switch.JPG
switch.JPG (45.24 Kio) Consulté 3819 fois
et avec un seul script qui prends toutes les conditions :
all.JPG
all.JPG (43.96 Kio) Consulté 3819 fois
Dans tout les cas lorsque j'utilise le 2 eme interrupteur je tombe dans la boucle qui allume et éteint ma prise en boucle ... Je désespère la !
ça m'embête car je ne voulais pas avoir à passer sous jeedom qui impose de payer pour le plugin xiaomi d'après ce que j'en ai compris

Re: script Blocky tombe dans une boucle

Publié : 20 sept. 2019, 23:45
par vil1driver
Dans ce cas enlève la prise salon du teste.

Il n'est pas très dérangeant d'envoyer Off si déjà Off..

Tu n'aurais pas ce genre de problème en lua..

Re: script Blocky tombe dans une boucle

Publié : 21 sept. 2019, 00:46
par nitro
Effectivement, a la base j'étais partit sur ces conditions car je voulais utiliser la même action Switch pour activer et désactiver la prise, mais j'ai cru comprendre que ce n'était pas possible dans ce genre de scripts du coup j'ai fini comme ça et finalement, c'est vrai que je l'ai pas besoin de vérifier l'état de la lampe si les actions sont différentes.
J'ai commencé a regardé le LUA, mais je t'avoue que je n'ai pas assez de temps a consacrer a la domotique pour apprendre un nouveau langage complet.
J'essaye sans ces conditions et vous fait un retour. Merci a tous pour vos réponses et vos suggestions rapides.

Re: script Blocky tombe dans une boucle

Publié : 21 sept. 2019, 08:37
par vil1driver
Ce script en lua, c'est juste 3 mots à apprendre ;)
Les choses simples se font simplement

Re: script Blocky tombe dans une boucle

Publié : 21 sept. 2019, 18:37
par djksage
Bonjour, avec les switch rond de xiaomi je contrôle 3 devices : deux lumières différentes et un dumy ( temporisateur de l'escalier)

Je ne suis pas chez moi, je ne sais donc pas te copier mes blockly mais gosso modo ça donne sa :

If lumières salon = off and interrupteur xiaomi = click
Then set lumières salon = on
Interrupteur xiaomi = off
If else lumières salon = on and interrupteur xiaomi = click
Then set lumières salon = off
Interrupteur xiaomi = off
If else lumières cuisine = on and interrupteur xiaomi = double click
Then set lumières cuisine = off
Interrupteur xiaomi = off
If else lumières cuisine = off and interrupteur xiaomi = double click
Then set lumières cuisine = on
Interrupteur xiaomi = off
If else lumières SaM = on and interrupteur xiaomi = long presse
Then set lumières SaM = off
Interrupteur xiaomi = off
If else lumières SaM = off and interrupteur xiaomi = long presse
Then set lumières SaM = on
Interrupteur xiaomi = off

Je repasse toujours le switch a off pour éviter les boucles, le long presse je ne suis plus vraiment certain que c'est la bonne dénomination, je te confirme ça ce soir

Par contre le modèle carré ne gère que deux actions click ou double click


Envoyé de mon SM-G950F en utilisant Tapatalk


Re: script Blocky tombe dans une boucle

Publié : 21 sept. 2019, 21:20
par djksage
voila mon blocly

Image

avec une remise à Off du switch plus de problème de boucle ;)