Problème sur un script shell curl

bonjour,
j’ai créé une commande shell comme ceci pour parametrer un timer de 30 secondes sur un inter sonoff tasmota
timer_sonoff_temp: "/usr/bin/curl 'http://ip tasmota/cm?cmnd=pulsetime%20130"

le %20 c’est l’espace
cette commande fonctionne parfaitement en mode cli de HA et j’ai bien un pulsetime à 30 sur le sonoff
elle s’exécute bien aussi sur HA mais sans les 30 secondes, je soupçonne le %20
j’ai essayé de mettre un \ pour échapper le % mais sans succès…
avez vous une idée ?
merci

Salut,

Il ne te manque pas la quote simple pour fermer ta commande ?
image

La simple quote est effectivement en trop …
J’avais essayé en entourant la commande http de simples quotes…mais c’est pareil …
Je pense vraiment au % car ce qui vient après n’est pas interprété par HA…

Essaye
/usr/bin/curl -X POST http://ip/cm?cmnd=pulsetime%20130

bonsoir,
voici la solution pour échapper le % (caractère réservé de HA) il faut mettre des simples quotes, la commande suivante fonctionne

/usr/bin/curl -X POST http://ip/cm?cmnd=pulsetime'%'20130

Dans ce cas c’est sans doute plus propre de traiter la chaine complète :
/usr/bin/curl -X POST 'http://ip/cm?cmnd=pulsetime%20130'

C’est ce que j’ai fait au début, sans succès…

testé avec les 2 ’ ?
Dans ton message initial il n’y en avait qu’une

bonjour
j’ai refait mes tests donc :
/usr/bin/curl -X POST 'http://ip/cm?cmnd=pulsetime%20130' simples quotes entourant la commande http, fonctionne également
merci Pulpy-luke

1 « J'aime »

sinon question annexe…
j’ai créé une liste déroulante dans « entrée » avec 2 valeurs 700 et 900
comment récupérer ces 2 valeurs pour les utiliser dans ma commande ( variable contenant une des 2 valeurs ) :
/usr/bin/curl -X POST 'http://ip/cm?cmnd=pulsetime%20variable'

merci beaucoup

ça doit être jouable avec un truc du genre
/usr/bin/curl -X POST 'http://ip/cm?cmnd=pulsetime%20' ~ {{ states('input.select.type')}}

Après très honnêtement, pour 2 valeurs, autant faire 2 boutons qui balancent chacun un curl différent en dur

merci ça fonctionne sans le ~ , les 2 valeurs était pour l’exemple, il y en aura plus…

`/usr/bin/curl -X POST http://ip/cm?cmnd=pulsetime'%'20{{ states('input.select.type')}}`