script Blocky tombe dans une boucle

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 <\>.
nitro
Messages : 7
Inscription : 20 sept. 2019, 11:17

script Blocky tombe dans une boucle

Message 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é 3847 fois
Un autre pour le magic cube :
blocky-cube.JPG
blocky-cube.JPG (43.17 Kio) Consulté 3847 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.
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: script Blocky tombe dans une boucle

Message 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.
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
nitro
Messages : 7
Inscription : 20 sept. 2019, 11:17

Re: script Blocky tombe dans une boucle

Message par nitro »

Merci pour ta réponse.
J'ai inversé les conditions :
blocky-cube.JPG
blocky-cube.JPG (43.39 Kio) Consulté 3837 fois
switch.JPG
switch.JPG (46.33 Kio) Consulté 3837 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é 3837 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é 3837 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...
denis_brasseur
Messages : 898
Inscription : 24 déc. 2018, 17:05
Localisation : (26)

Re: script Blocky tombe dans une boucle

Message 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é 3825 fois
Pi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090
nitro
Messages : 7
Inscription : 20 sept. 2019, 11:17

Re: script Blocky tombe dans une boucle

Message 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é 3817 fois
switch.JPG
switch.JPG (45.24 Kio) Consulté 3817 fois
et avec un seul script qui prends toutes les conditions :
all.JPG
all.JPG (43.96 Kio) Consulté 3817 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
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: script Blocky tombe dans une boucle

Message 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..
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
nitro
Messages : 7
Inscription : 20 sept. 2019, 11:17

Re: script Blocky tombe dans une boucle

Message 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.
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: script Blocky tombe dans une boucle

Message par vil1driver »

Ce script en lua, c'est juste 3 mots à apprendre ;)
Les choses simples se font simplement
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
djksage
Messages : 190
Inscription : 16 déc. 2015, 19:42

Re: script Blocky tombe dans une boucle

Message 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

djksage
Messages : 190
Inscription : 16 déc. 2015, 19:42

Re: script Blocky tombe dans une boucle

Message par djksage »

voila mon blocly

Image

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