Être capable d'injecter une variable dans requête HTTP + contrôler un appareil

Ma fille a 15 mois… :grin:

Pour autant je ne sais même pas de quoi on parle avec des injections http :sweat_smile::sweat_smile:

Une alerte vaut mieux que rien xD

En gros je me suis fais une api côté node red
Et lorsque j’envoie cette action côté gladys

Et que je lui passe un text + une pièce alors j’ai un message vocal (pour l’instant google) sur ma ou mes sonos

3 « J'aime »

Ah ouais en effet c’est TRES sympa ça ! J’aime beaucoup le principe.

J’imagine ça chez moi avec le status de l’alarme :

  • “Mise en marche de l’alarme dans 30sec”
  • Bip – Bip – Bip – …
  • “Alarme mise en marche”
  • “Alerte détectée - Appel des secours en cours”

Etc… J’adore :smiley:

2 « J'aime »

Va falloir créer des bots qui vote (pas le choix ^^) :stuck_out_tongue:

1 « J'aime »

Je vote pour ! En fait, j’avais poussé la même idée en novembre, mais elle n’avait pas eu autant de succès :wink: : Permettre d'injecter une variable dans une action "faire une requête HTTP"

Effectivement, est il possible de fusionné les deux ainsi que les votes @pierre-gilles / @VonOx / @Tlse-vins ?

Fusionner ce n’est pas possible à ma connaissance mais il faut dire a @Lokkye de supprimer son vote de l’autre et de voter sur celle-ci.
On pourra fermer l’autre demande.

Je viens de supprimer mon vote sur l’autre :slight_smile:

1 « J'aime »

Salut à tous !

J’ai travaillé sur ce sujet aujourd’hui. Ce n’est pas le sujet le plus demandé du forum, mais c’est un « quick win » et je pense que cette fonctionnalité est très utile pour des gens qui veulent passer à Gladys mais tout en gardant une autre instance à côté (HA, Node-RED, etc…) pour gérer des appareils non géré par Gladys.

Pour l’action « Faire une requête HTTP », cela ressemble donc à ça:

Même comportement que l’action « Envoyer un message » :slight_smile:

La PR est disponible ici:

En revanche, je n’arrive pas trop à voir comment on pourrait faire ça dans l’action « Contrôler un appareil » car cette vue n’a pas de champs texte.

Je me demande au final si c’est pas un développement différent…

Ceux qui voulaient cette fonctionnalité dans l’action « contrôler un appareil », c’était pour faire quoi ?

Est-ce que vous avez un exemple de cas d’usage ?

2 « J'aime »

Tu fais une requête get qui récupère une valeur, cette valeur te permet de définir l’état d’un appareil gladys. Peut importe la feature.

Ça évite un node red juste pour faire ça ( dans la pratique ça peut être compliqué car s’il faut convertir le type de données…)

1 « J'aime »

Ok je vois, effectivement c’est utile.

Après, pour le coup ça sera un visuel totalement différent, vu qu’on veut juste injecter une valeur « pure », et pas un texte concaténé comme dans le cas d’envoie d’un message ou d’une requête HTTP.

Le problème de la conversion de donnée est aussi important, car du coup c’est plus du texte mais des nombres qu’on envoie.

Ca sera une PR différente du coup

Jai cru que cetait dans la new release avant de relire et me rendre compte que la mr est en cours :smiley:
La fausse joie ! M’enfin cest cool jai hâte

1 « J'aime »

Pour ma part, pour mon chauffage j’ai besoin de la température extérieur. Comme je n’ai pas de capteur de température extérieur (pour l’instant), j’utilise Node Red pour faire une requête vers l’API openweathermap (la même api que Gladys) pour récupérer la température et l’envoyé dans un fake device mqtt.
Si on peut le faire directement dans Gladys se serait cool!

Ce serait bien aussi de pouvoir corriger le problème de variables dans les requêtes

@cicoub13 a proposé une PR mais je ne sais pas si il a fini ces tests

La PR est prête. Si quelqu’un peut review :pray:

2 « J'aime »

Merci pour la PR @cicoub13 !

J’ai une question, tu as trouvé où cette solution ? C’était recommandé par la librairie de faire comme ça ?

Parce que ça ressemble quand même très fortement à un bug de la lib qu’on utilise, et forcer un ordre est un peu un hack non ?

D’ailleurs, est-ce que l’ordre que tu défini change l’ordre d’affiche de la dropdown ?

Dans ma tête :slight_smile:

Non, j’avoue que je n’ai pas cherché la source en dehors du code du fichier. C’est peut-être une mauvaise gestion des listes.

Le problème est qu’on essaie de remplacer dans un texte des tags qui sont présents sous plusieurs formes :
Texte

Bonjour, la nuit, les chats sont gris et les libellules sont grises.

Tags à remplacer

gris, grises

Résultat

Bonjour, la nuit, les chats sont gris et les libellules sont grises.

Le remplacement du tag gris remplace aussi le mot « grises »

La solution que je propose semble effectivement un hack.
Texte

Bonjour, la nuit, les chats sont gris et les libellules sont grises.

Tags à remplacer

grises, gris (triés du plus long au plus court)

Résultat

Bonjour, la nuit, les chats sont gris et les libellules sont grises.

Le remplacement du tag gris remplace seulement le mot « gris » car le remplacement du tag « grises » a eu lieu avant.

Non, l’ordre est conservé. C’est uniquement l’opération de recherche et de remplacement qui est touchée.

Tu es sûr ?

J’ai fais un test de ta PR, et j’obtiens ça:

Avant:

Après:

Les boxs sont mixées après, ça rend l’utilisation vraiment pas simple

Ce ne sont pas deux soucis différents liés au ticket ?
On ne souhaite ici que passer des variables au bloc requête http.