Savez vous si on peut passer un tag comportant un espace, car https://Mon_IP_Jeedom/core/api/jeeApi.php?apikey=d8RaIZcJA0iAaUkQGMVyLhk0rAZq2nGl&type=scenario&id=102&action=start&tags=TagMusique%3DFrance%20Info dans lequel je passe France Info comme tag arrive dans le scénario (Id=102) avec comme tag uniquement France ?
Et on ne peut pas définir un autre code qui représenterait un espace dans un tag, bien sur cela cela engendrerait des modifs dans la gestion des scénarios pour interpréter ce code, ou ce n’est vraiment pas possible ?
Oui c’est vrai, mais je ne pense pas que les utilisateurs de l’API HTTP soient nombreux, et le risque de tomber sur un même code est très très réduit, et d’un autre côté cette contrainte n’est indiquée nulle part, on est donc devant un bug.
Pourquoi ne pas, par exemple, remplacer l’espace dans l’appel api par un tiret bas et ensuite traiter dans ton scénario directement en remplaçant les tirets bas par des espaces ?
Parce que ce n’est pas un bug, l’explication a été donnée par Loïc juste quelques messages au-dessus. Modifier la séparation des tags par autre chose que l’espace déjà utilisé reviendrait à obliger tout le monde à revoir ses appels et sa gestion des tags alors que gérer le cas d’un tag comprenant un espace est plutôt simple à prendre en compte
Quant à dire que ce n’est pas documenté, c’est quand même explicite dans la documentation sur l’api :
tags [optionnel] : si l’action est “start”, vous pouvez passer des tags au scénario (voir la documentation sur les scénarios) sous la forme tags=toto%3D1%20tata%3D2 (à noter que %20 correspond à un espace et %3D à = ).
On voit bien que 2 tags sont passés avec un espace entre les 2
Et bien nous ne sommes pas d’accord, pour moi c’est un bug car il n’y a pas de contrainte indiquée sur les tags, les espaces sont par exemple acceptés pour les appels depuis les scénarios… Quant tu dis tout le monde, en toute rigueur c’est tout ceux qui utilisent l’API HTTP, et la on va réduite le ‹ tout le monde › à un tout petit nombre de personnes.
Et de nouveau vous affirmez des choses que vous ignorez
Vous avez les chiffres ? Ca m’intéresse.
et il faut tout changer pour que ca corresponde à votre usage personnel?
Déjà vu ça…
Votre logique n’est pas celle des autres et n’est pas non plus la logique de référence ni pour jeedom, ni pour le reste de la planète.
Même si vous ne comprenez pas la logique elle est pourtant là et c’est à vous de vous adapter.
Vous avez reçu une solution: passez le caractère que vous voulez dans votre appel api et remplacez le par un espace dans un bloc code de scénario.
En effet, il faut bien un élément qui permette de savoir si le mot qui suit un espace est un tag ou un espace. Dans une requête HTTP, on ne peut bien entendu pas utiliser cette méthode, il faudrait donc un code pour spécifier un espace. On en revient au départ !
En détail la partie scénario avec tag : id=102&action=start&tags=TagMusique%3D%22France%20Info%22
Id=102 ID du scénario à exécuter
&action=start spécifie que le scénario sera exécuté (il pourrait être stopper, désactiver ou activer avec d’autres mots clé, voir la doc https://doc.jeedom.com/fr_FR/core/4.0/api_http)
&tags : définie la partie tag
TagMusique : nom du tag à passer au scénario
%3D code le caractère =
%22 code le caractère "
France%20 Info : contenu du tag, le %20 code la caractère espace
%22 code le caractère "
Le scénario recevra donc en tag : « France Info »
Loic, pourquoi ne pas m’avoir donner ces info au début de ce post ?