Recupérer un état/Envoyer message MQTT : limitation du nb de variables?

Hello,
j’ai une scène qui a 12 Récupérer un état dans une seule action.
Dans le bloc d’actions suivant, je veux envoyer 12 messages MQTT mais je ne vois que seulement que les 10 dernières variables :


Je ne sais pas depuis quelle release ça ne fonctionne plus car j’avais tout ok lorsque j’ai créée la scène (les 12 visibles).

J’ai vu qu’un ancien bug relatait ce fait : [BUG][SCENES] recupération variable limitée à 10 données sur un bloc lors de l'utilisation dans l'action "envoyer un message"

Salut @mutmut,

Je n’arrive pas à reproduire, chez moi si je récupère plein de variables via une action « Requête HTTP » par exemple :

Ensuite j’ai bien toutes les variables :

Il y a une petite barre de scroll, et si j’utilise les flèches haut/bas je peux naviguer dans la liste, tu n’as pas ça chez toi ?

Alors ce n’est pas la même chose car je récupère aussi toutes les variables lorsque que je fais une requête HTTP et que je veux récupérer une des variables.
Dans mon cas je fais plus de 10 Récupérer le dernier état et ensuite je veux Envoyer un message MQTT et c’est là que ça bloque à 10, pas d’ascenseur pour le scroll et quand je « flèche » vers le bas, ça revient à 1 après le 10.
J’ai testé en dupliquant la scène au cas où mais j’ai le même comportement.

Ok merci, j’arrive à reproduire et je comprend ce qui ne va pas :slight_smile: Je corrige !

Le bug était un peu tordu :sweat_smile:

Dans chaque action, il existe une fonction qui vérifie si une variable est “disponible” à ce moment-là. Une variable est considérée comme disponible uniquement si elle a été définie avant l’action actuelle.

Pour déterminer cela, chaque action possède un chemin (path) du type « 1.1 », « 1.1.then.1 », etc. On compare ensuite les segments du chemin pour savoir dans quel ordre les actions s’exécutent.

Le problème apparait lorsqu’il y a plus de 9 actions dans un groupe : les chemins devenaient « 1.10 », « 1.11 », etc. À un endroit du code, on comparait la longueur du chemin (au lieu de la profondeur), ce qui fonctionnait tant que les segments avaient un seul chiffre. Mais dès que les chemins ont atteint deux chiffres, la comparaison devenait incorrecte :grimacing:

Le bug est désormais corrigé ici :

3 « J'aime »

merci pour l’explication !
Ce qui est fou, c’est que ça a marché correctement à un moment car j’avais réussi à faire mes 12 Envoyer sans avoir de pb.
Pas grave moi je dis tant que c’est résolu :wink:

C’est le développement du « SI… ALORS… SINON » qui a retravaillé toute cette partie, c’est là que le bug est apparu !

1 « J'aime »

Le correctif est disponible dans Gladys Assistant 4.59 :

1 « J'aime »