Modifier le logicalId d'une commande

Bonjour,

Ceci est plutôt une suggestion mais je ne peux pas poster dans la rubrique suggestion…

Lorsque je suis dans les modifications d’une commande existante, je voudrais pouvoir modifier le logicalId et ce n’est pas possible (si?)

En particulier, je souhaite créer une commande avec le logicalId refresh car c’est une commande particulière activée par le petit bouton ad-hoc en haut à droite:
image

Alors voila, avec le plugin jmqtt par exemple (mais surement d’autres aussi) on peut exporter l’objet comme template, éditer le fichier json puis le re-impoter, mais c’est vraiment too much, moi je voudrais juste pouvoir modifier ce logicalId dans ce panel.

Hello,

Tu peux aussi le faire avec un bloc code dans un scenario.
Par ex pour ajouter et supprimer le LogicalId pour ta cmd 29577 tu peux faire :

cmd::byId(29577)->setLogicalId('refresh')->save();
cmd::byId(29577)->setLogicalId('')->save();

Je viens de le tester sur jMQTT et ça se comporte bien à première vue,
mais à faire à tes risques et périls :wink:

Bad

1 « J'aime »

Bonjour,

Le logicalId est intrinsèquement lié au code du plug-in, c’est au plug-in de le gérer et pas à l’utilisateur.

Ce n’est pas parce que vous rajouter une commande refesh que cela va effectuer l’action que vous voulez, pour certain plug-in ce concept de refresh n’a aucun sens d’ailleurs.

Pourquoi vouloir intervenir la dedans ?

Non, le logicalId ‹ refresh › est un mot-clé générique du core qui permet de rafraichir la valeur, on peut l’utiliser - ou pas - dans les plugins, il suffit de donner à une commande action le logicalId = ‹ refresh ›, c’est lié au tag #refresh_id# qui contiendra l’id de la commande de refresh.

Mais je te rejoins, que l’utilisateur n’a pas à logicalId en principe, la ce qu’il faudrait c’est plutôt la possibilité de choisir quelle commande de l’objet est la commande refresh tout simplement…

En fouillant dans le code j’ai trouvé c’est tout simple: il suffit de rajouter le tag ‹ refresh_id › avec l’ID de la commande concernée à l’équipement: ‹ Configuration avancée › / Affichage:

C’est pas mal du tout cela. Jusque là je passais pas un virtuel où la commande « Rafraichir » existe déjà et en utilisant « Action après exécution de la commande ». Mais là ça rajoute la commande qu’on veut. Bien vu.

Non, c’est incorrecte.

Si je n’ai pas prévu d’action sur le logicalid refresh dans un plug-in, tu peux danser sur ta tête cela ne va rien faire.

La seule convention qui existe, lié au code donné, c’est que la commande refresh, si elle existe, sera affichée en haut à droite du widget.