Je me demande s’il est possible q’une commande info retourne une liste de valeurs.
J’explique le besoin : dans le #plugin-mymodbus, il sera possible de lire des registres indépendamment, c-à-d une requête par commande. La requête peut lire plusieurs registres en fonction du type de variable à retourner et donc de sa longueur.
Mais les requêtes modbus sont plus optimisées si on lit tout un paquet et qu’on décortique le paquet, par contre, il faudrait que la commande sache retourner chaque élément indépendamment ce qui est possible si c’est une liste. On utiliserait donc un index dans cette liste et le tour serait joué.
Je cherche juste à savoir si c’est possible aujourd’hui, ce n’est pas une demande de développement.
mais bon, on s’en fiche, ce qu’il faut faire (je pense), c’est lire en un bloc tes registres, et ensuite mettre à jour chaque commande avec la valeur de chaque registre car de toute façon je ne vois pas comment l’utilisateur du plugin ferait pour exploiter ta liste dans jeedom
OK, c’est pas possible donc je n’insiste pas.
Merci @Mips pour ta réponse.
Ce serait possible pour l’utilisateur par contre. Il pourrait utiliser un type de donnée « personnalisé », préciser l’adresse de début et la structure, le plugin calculerait la longueur des données à lire.
Ex:
Début: 4000
structure: int16;int16;float32;unit16 (dans un champs option_structure)
#commande#[2] serait donc la valeur réelle correspondant au 3ème élément.
→ le plugin reconnait qu’il faut lire 6 registres à partir de l’adresse 4000 et décortique. Avec pymodbus, la fonction intégrée decode fait ça très bien.
Mais encore une fois, comme ce n’est pas possible…
Je vais peut-être créer une commande dédiée à la lecture d’une plage de donnée et des « sous-commandes » qui prennent la valeur d’un élément de cette plage. Peut-être…