Page 1 sur 2

Action On, quel séparateur entre deux commandes JSON ?

Publié : 11 déc. 2017, 23:09
par Dim33
Bonjour,

Tout est dans le titre .... Dans Action On d'un interrupteur, je souhaite envoyer deux commandes JSON, quel est le séparateur entre les deux commandes (http:\\...).

Merci d'avance.

Re: Action On, quel séparateur entre deux commandes JSON ?

Publié : 12 déc. 2017, 18:22
par patrice
Bonsoir
A mon avis cela n'existe pas
tu fais un script et tu met l'appel à tes 2 htpp dedans

Re: Action On, quel séparateur entre deux commandes JSON ?

Publié : 12 déc. 2017, 20:17
par Chrominator
La recommandation dans le wiki Domoticz est de faire un script shell par exemple qui lance en batch la commande qui lui est passée en paramètre.
Comme ça le bouton est tout de suite libéré et Domoticz ne passe pas de temps à attendre la fin de l'exécution du script.

cf le paragraphe "Non-Lua Scripts" dans le wiki.

Re: Action On, quel séparateur entre deux commandes JSON ?

Publié : 12 déc. 2017, 22:44
par Dim33
Pas possible de faire un script lua ? j'y connais rien en shell.

Re: Action On, quel séparateur entre deux commandes JSON ?

Publié : 13 déc. 2017, 06:18
par Chrominator
LUA ? On pourrait, mais ce ne serait pas "naturel".

En réalité ce n'est pas très compliqué ;
Je pars du principe que tu es dans un environnement linux sur un raspberry pi.
A adapter pour d'autres *nux.
  1. Tu ouvres un terminal.
  2. Positionne toi dans le répertoire Domoticz réservé aux scripts :

    Code : Tout sélectionner

    cd /home/pi/domoticz/scripts
    (le chemin peut varier en fonction de ton installation).
  3. Crée un script shell :
    Pour te simplifier la tâche on ne va pas utiliser d'éditeur, copie/colle le code suivant dans le terminal et fait entrée.

    Code : Tout sélectionner

    echo -e '#!/bin/bash\n$@ &\n' > exec.sh
    Ce script est fait pour exécuter en tâche de fond toute commande qui lui est passée avec ses paramètres.
  4. Rend le script exécutable :

    Code : Tout sélectionner

    chmod +x exec.sh
  5. Dans Domoticz, tu modifies ton bouton dans Action On: avec le json qui va bien.
    Par exemple, pour afficher dans le log deux petits textes consécutifs avec 2 json:

    Code : Tout sélectionner

    script://execute.sh /usr/bin/curl --url "127.0.0.1:8080/json.htm?type=command&param=addlogmessage&message=Ok%20Voici%20le%20premier. 127.0.0.1:8080/json.htm?type=command&param=addlogmessage&message=Ok%20Voila%20le%20second."
    Capture.PNG
    Capture.PNG (184.68 Kio) Consulté 8648 fois
    C'est joli non ? :D
    Capture2.PNG
    Capture2.PNG (6.87 Kio) Consulté 8648 fois
    Si l'url 127.0.0.1:8080 ne fonctionne pas pour toi, remplace-la par celle que tu utilises d'habitude.

    Il est important de ne pas spécifier le protocole, c'est à dire http:// dans l'url sans quoi Domoticz se prend les pieds dans le tapis.
    curl va essayer en premier le protocole http, donc on est tout bon.
    Tu peux mettre autant de json que tu veux, ils seront exécutés dans l'ordre et en tâche de fond.
    Par contre, si l'un deux échoue, les autres seront quand même exécutés.

Re: Action On, quel séparateur entre deux commandes JSON ?

Publié : 15 déc. 2017, 22:18
par Dim33
Merci d'avoir pris le temps de répondre.

Je suis sous un NAS Synology. Je vais tenter de suivre tes indications. Merci encore.

Re: Action On, quel séparateur entre deux commandes JSON ?

Publié : 17 déc. 2017, 22:44
par Dim33
Merci , ça marche avec la commande suivante :

Code : Tout sélectionner

script://exec.sh /usr/bin/curl /volume1/@appstore/domoticz/var/scripts/exec.sh --url "xxx.xxx.x.xx:8084/json.htm?type=command&param=udevice&idx=59&nvalue=0&svalue=16 xxx.xxx.x.xx:8084/json.htm?type=command&param=udevice&idx=28&nvalue=0&svalue=16"

Re: Action On, quel séparateur entre deux commandes JSON ?

Publié : 05 nov. 2019, 23:55
par Dim33
Bonjour,

La commande ci-dessus fonctionnait parfaitement. J'ai procédé à la MAJ de Domoticz cet été (Version: 4.10717) et maintenant seul le premier IDX est impacté. Les autres ne sont pas modifié par l'action. Une idée ? La syntaxe aurait-elle changée ? :shock:

Re: Action On, quel séparateur entre deux commandes JSON ?

Publié : 07 nov. 2019, 00:00
par Dim33
Cette commande marche parfaitement. Elle permet de mettre à 0, 4 compteurs.

Code : Tout sélectionner

script://exec.sh /usr/bin/curl /home/dd/domoticz/scripts/exec.sh --url "192.168.1.85:8080/json.htm?type=command&param=udevice&idx=33&nvalue=0&svalue=POWER;ENERGY 192.168.1.85:8080/json.htm?type=command&param=udevice&idx=50&nvalue=0&svalue=POWER;ENERGY 192.168.1.85:8080/json.htm?type=command&param=udevice&idx=31&nvalue=0&svalue=POWER;ENERGY 192.168.1.85:8080/json.htm?type=command&param=udevice&idx=32&nvalue=0&svalue=POWER;ENERGY"
Par contre, cette commande ne marche pas, seul le premier dispositif (idx 59) est modifié :

Code : Tout sélectionner

script://exec.sh /usr/bin/curl /home/dd/domoticz/scripts/exec.sh --url "192.168.1.85:8080/json.htm?type=command&param=udevice&idx=59&nvalue=0&svalue=16 192.168.1.85:8080/json.htm?type=command&param=udevice&idx=28&nvalue=0&svalue=16 192.168.1.85:8080/json.htm?type=command&param=udevice&idx=60&nvalue=0&svalue=16 192.168.1.85:8080/json.htm?type=command&param=udevice&idx=61&nvalue=0&svalue=16"
Je sèche .... :o

Re: Action On, quel séparateur entre deux commandes JSON ?

Publié : 11 nov. 2019, 22:10
par Dim33
Je up au cas où ....