Page 1 sur 1

Peut-on appeler un script shell avec json.htm?api-call ?

Publié : 05 janv. 2018, 22:55
par Snorky
Bonjour,

Peut-on appeler un script shell depuis l'API Domoticz ou faut-il obligatoirement associer le script à un device type switch ?

Code : Tout sélectionner

http://<username:password@>domoticz-ip<:port>/json.htm?api-call
A la place de api-call, j'aimerais appeler un script shell.

Désolé si ma question est étrange...


Objectif de ma demande tordue :
Via Google Home, j'aimerais dire "Ok Google...Ajoute 4 sacs de pellets dans la base"

Aujourd'hui j'ai un switch "AjoutPelle" qui exécute un script LUA lorsqu'il passe à ON.
Le script LUA met à jour des devices counter (consommation et dépense de sacs de pellets) lorsque je passe mon switch à ON.

Pour le moment, ma consommation augmente de 1 sac à chaque fois que j'appuie sur mon interrupteur.

Mon idée (probablement pas idéale) est de créer un shell dans lequel je boucle n fois pour allumer mon switch.

Via IFTT, je me disais naivement que je pourrais appeler via une web request :

Code : Tout sélectionner

http://<username:password@>domoticz-ip<:port>/json.htm?script/shell/monscriptpellet.sh {{NumberField}}
Si vous avez une méthode plus simple (ou une méthode qui fonctionne tout simplement), je suis preneur

Merci d'avance pour votre aide

Re: Peut-on appeler un script shell avec json.htm?api-call ?

Publié : 05 janv. 2018, 23:07
par vil1driver
Salut,


Le mieux est peut être de mettre à jour une variable (via json) avec le nombre de sacs souhaité et un script lua de type variable qui va faire le taf voulu

Re: Peut-on appeler un script shell avec json.htm?api-call ?

Publié : 05 janv. 2018, 23:35
par Snorky
Merci Vildriver (ça faisait longtemps... :D )

J'en étais finalement arrivé à la même idée, tu as devancé mon post


Merci

Re: Peut-on appeler un script shell avec json.htm?api-call ?

Publié : 07 janv. 2018, 12:31
par DavidTrier
Pour faire changer d'état ton switch "AjoutPellet", il te suffit d'utiliser IFTTT avec ses deux modules :
- pour "if this" tu utilises l'applet Google Assistant "say a simple phrase" et tu lui fais reconnaître ta phrase
- pour "then that", tu utilises le l'applet WebHooks en choisissant "send a web request" avec, comme requête : http://LOGIN:PASSWORD@ADRESSE IP BOX OU DOMOTICX:PORT DOMOTICZ/json.htm?type=command&param=switchlight&idx=??&switchcmd=On&level=0&passcode=

Tuto : https://easydomoticz.com/forum/viewtopi ... 617#p39908

Re: Peut-on appeler un script shell avec json.htm?api-call ?

Publié : 07 janv. 2018, 12:38
par Snorky
Pour allumer un switch aucun soucis.

Mais avec un simple switch comme tu le proposes on ne peut pas demander d'ajouter plusieurs sacs de pellet.

Avec la méthode de Vildriver, ça marche nikel

Re: Peut-on appeler un script shell avec json.htm?api-call ?

Publié : 07 janv. 2018, 19:59
par DavidTrier
Ok, mais j'avoue ne pas comprendre la méthode de vil1driver :oops: Si quelqu'un peut me l'expliquer, ce serait cool ;)

Re: Peut-on appeler un script shell avec json.htm?api-call ?

Publié : 07 janv. 2018, 20:22
par Snorky
Via Ifttt, au lieu de modifier un switch comme tu le proposes tu mets à jour une variable utilisateur.

Code : Tout sélectionner

/json.htm?type=command&param=updateuservariable&vname=USERVARIABLENAME&vtype=USERVARIABLETYPE
Tu créés un script Lua par exemple (script_variable) qui se déclenchera sur modification de ta variable utilisateur.

Sur Ifttt, dans This tu mets une phrase avec un ingrédient numérique (nombre de sacs).

Tu peux donc gérer un nombre de sacs de 1 à n et pas uniquement un seul sac sur la méthode avec le switch

Re: Peut-on appeler un script shell avec json.htm?api-call ?

Publié : 14 janv. 2018, 09:53
par DavidTrier
Ok merci Snorky!

Le truc c'est que je ne sais pas encore faire des scripts Lua tout seul :oops: Mais ce n'est pas grave, un jour je m'y mettrai!

Merci encore ;)