Problème de variable dans un PUSH Url

@Loic
Bonjour,
Je reporte dans un nouveau sujet notre échange inclus par erreur dans un autre sujet.



avec toutes mes excuses pour ce bidouiilage.

Je reviens sur le sujet car j’ai essayé de faire le test sans qu’il y ait de deux points :
(Essai) contient 192.168.1.42 /api/set?api_user=xxxxxxx&api_secret=yyyyyyyyyy

variable(Essai) donne :
Je vais évaluer : « 192.168.1.42/api/set?api_user=xxxxxxx&api_secret=yyyyyyyyyy »
Résultat : 192.168.1.42/api/set?api_user=xxxxxxx&api_secret=Xyyyyyyyyyy (Pas de quotes)

Par contre il me suffit de rajouter 1 caractère après la variable :
variable(Essai)&
Je vais évaluer : « 192.168.1.42/api/set?api_user=xxxxxxx&api_secret=yyyyyyyyyy »&
Résultat : « 192.168.1.42/api/set?api_user=xxxxxxx&api_secret=Xyyyyyyyyyy »& (quotes après la variable)

Y aurait-il une autre raison que les : ?
Merci de ton aide

C’est le principe de jeedom si tu as une variable/commande avec des lettres il rajoute des quotes.

Pourquoi ? C’est simple pour pouvoir faire ca : variable(toto) == « plop », alors que normalement il faudrait faire : « variable(toto) » == « plop » mais la pluspart des utilisateurs ne le faisant pas et en ayant marre des tickets la dessus j’ai mis en place un systeme de quote automatique.

Ok c’est un choix et je le comprends parfaitement.

Mais alors tu as bien compris que ma variable me sert pour créer une URL avec l’adresse ip, l’appel à l’API, l’api_user et l’api_secret. Des constantes qu’on utilise régulièrement.
Comment et est-ce possible puis-je traiter ce cas ?
Merci Loic de la promptitude de tes réponses

ben avec ca par exemple ca doit marcher str_replace(’"’,’’,variable(toto))

J’ai essayé cela :
str_replace(’"’,’’,variable(Essai))&action=periph.value&periph_id=1593748&value=#value#
et j’ai obtenu cela
Résultat : « 192.168.1.42/api/set?api_user=yyyyyy&api_secret=xxxxxxx »&action=periph.value&periph_id=1593748&value=#value#

J’ai toujours les quotes. C’est bien dans la configuration que je dois placer le str_replace ?
Capture
Merci et désolé pour ces broutilles. S’il faut je mettrais tut en clair sans la variable.
Edit : Il me semble que c’est bien le fait de rajouter le moindre caractère après la variable qui provoque l’apparition des doubles quotes. Sinon tout est OK.

benf fait : str_replace(’"’,’’,variable(Essai)&action=periph.value&periph_id=1593748&value=#value#) peut etre

Idem, je récupère :
Je vais évaluer : « 192.168.1.42/api/set?api_user=xxxxxxx&api_secret=yyyyyyyy »&action=periph.value&periph_id=1593748&value=#value#"
Résultat : « 192.168.1.42/api/set?api_user=xxxxxxx&api_secret=yyyyyyyy »&action=periph.value&periph_id=1593748&value=#value#"
avec une double quote après le #value#

Ce qu’il y a de curieux c’est que si je mets dans un script http :
variable(Essai)&action=periph.value&periph_id=1007193&value=value(#[Températures][Virtuel-T° Prefailles][T° CH1]#)
avec les mêmes valeurs qu’indiquées précédemment variable(Essai) est « traduit » correctement et la requête se déroule normalement.

Oui le script supprime els " automatiquement. Je viens d’ajouter la suppression des " lors d’un push en 4.1 (branche alpha), en v4 branche beta et en v3 branche release. Par contre je sais pas si ça corrigera bien ton soucis a tester.

Merci Loic
Je teste et je reviens vers toi. Je suis en V4 stable. Donc la maj ne sera pas prise en compte ?
Puis je passer en beta ?
Merci

Oui il faut passer en beta pour tester la

Bonjour Loic
Ce matin j’ai installé la V4 beta. Le problème est toujours présent :



J’ai également refait la manip dans le testeur d’expression et je vois que les " sont encore présentes.
Si je mets en clair les valeurs de ma variable dans le Push cela fonctionne normalement.
Merci

C’est normal c’est que le push qui enleve les " pas le testeur d’expression

OK pour le testeur d’expression, peut-être un peu plus tard ce serait pratique (utile ?).

En revanche pour le Push, chez moi cela ne fonctionne pas du tout, je reproduis le problème très facilement et je récupère toujours l’erreur : Erreur push sur : variable(Eedomus_local_set)&action=periph.value&periph_id=1593748&value=2 commande : [Portes][Portes Ouvertes][Ouvertes] => Echec de la requête HTTP : variable(Eedomus_local_set)&action=periph.value&periph_id=1593748&value=2 cURL error : Could not resolve host: variable(Eedomus_local_set)&action=periph.value&periph_id=1593748&value=2 et quand je remplace variable(Eedomus_local_set) par son contenu cela fonctionne.
Ma variable contient http://192.168.1.42/api/set?api_user=xxxxxxx&api_secret=yyyyyyyyy
Je suis en V4.0.27 (beta)

A oui j’ai jamais prévu que tu utilises une variable dans les push URL, la tu pousse vraiment le truc trop loin c’est pas fait pour ca… Enfin je l’ai quand meme rajouter mais je poussera pas le truc plus loin car rien qu’avec ca les remplacement prennant du temps systeme tu viens de faire ralentir les push chez tous les utilisateurs…

En 4.1 ya une option maintenant pour pas quoter automatiquement (suite a tes retours) attention c’est partout donc faut vraiment maitriser les expression meme moi j’ose pas l’activer.

Ouaouh! Alors là tu me fais culpabiliser grave (comme disent les jeunes dont je ne fais plus partie). Si vraiment c’est trop lourd, je reviendrais à la méthode ancienne en mettant les Url en clair. Je n’imaginais pas de telles conséquences.
En tout cas merci de ton aide et de ton efficacité.

Merci Loîc !!! Un soucis de moins apparemment :

https://community.jeedom.com/t/interpretation-commande-dans-un-virtuel/2214/6

Apparemment ce lien est privé, dommage j’aurai aimé voir de quoi il traitait.
Bonne soirée

D’un soucis de quote sur l’évaluation d’un virtuel

Ah OK ,Merci