Page 1 sur 1

LUA : Envoi simultané de commandes JSON

Publié : 17 mai 2022, 09:16
par Diab
Salut.
Je bloque sur l'envoi de commandes JSON, si quelqu’un à une idée, je suis preneur de suggestions.
J'actionne des électrovannes de jardin dans un script LUA par l’intermédiaire de commandes JSON. Comme j'ai plusieurs zones à traiter je passe par un compteur de temps qui déclenche le passage d'une zone à une autre.
Les commandes JSON passent très bien quand il n'y en a qu'une dans un bloc d'activation comme :

Code : Tout sélectionner

        if difference > 360 and difference <= 420 then
        commandArray['OpenURL'] = 'http://192.168.0.9:9090/json.htm?type=command&param=switchlight&idx=281&switchcmd=On'
        end
    
        if difference > 420 and difference <= 780 then
        commandArray['OpenURL'] = 'http://192.168.0.9:9090/json.htm?type=command&param=switchlight&idx=278&switchcmd=Off'
        end
Mais, si je mets deux commandes dans un bloc horaire, alors seule la première est exécutée :

Code : Tout sélectionner

        if difference > 420 and difference <= 780 then
        commandArray['OpenURL'] = 'http://192.168.0.9:9090/json.htm?type=command&param=switchlight&idx=281&switchcmd=On'
        commandArray['OpenURL'] = 'http://192.168.0.9:9090/json.htm?type=command&param=switchlight&idx=278&switchcmd=Off'
        end
Les commandes fonctionnent toutes de manière individuelle dans mon navigateur.
On dirait que l'envoi rapproché de deux commandes ne peut pas être traité.

Le système est un Pi4 avec Domoticz en version 2022.1 et Python 3.7.3.
Les vannes sont commandées par des récepteurs Zigbee de marque MOES avec une Pigate V2 (Plugin 6.1.004 et Firmware 0320).
Merci.

Re: LUA : Envoi simultané de commandes JSON

Publié : 17 mai 2022, 12:48
par Keros
Si tu vannes sont ZigBee avec le plugin ZigBeeForDomoticZ, tu dois pouvoir les actionner en appuyant sur les widgets de DomoticZ ?
Si oui, pourquoi utilises-tu l'API Json ?
Les commandes de type commandeArray['Vanne']='On' ne fonctionnent pas ?

Re: LUA : Envoi simultané de commandes JSON

Publié : 17 mai 2022, 14:04
par Diab
Si, ces commandes fonctionnent mais pas avec les modules MOES qui ont un temps d'ouverture de 20 sec (idem volet roulant). C'est pourquoi j'ai reproduit une commande qui fonctionne dans un autre script.
Pour des switch normaux j'utilise des commandes du genre "switchOn('Vanne')", ou lorsque je dois tester un état, une commande du genre "if (otherdevices['Arr_Palissade'] == 'Off') then switchOn ('Arr_Palissade') end".

Je ne connais pas la différence entre "otherdevices..." et "commandArray ..."

J'ai essayé ce que tu préconises (commandeArray['Vanne']='On') mais n'arrive pas à tester l'état de l'actionneur de vanne avant d'envoyer cette commande. Je ne comprends pas pourquoi son état est "Open" ou "Closed" dans la liste des objets alors qu'il faut la commander avec "On" ou "Off".
Y'a du boulot ...

Re: LUA : Envoi simultané de commandes JSON

Publié : 17 mai 2022, 19:20
par Jeff
Il faut utiliser cette syntaxe pour passer plusieurs commandes d'affilé

Code : Tout sélectionner

commandArray[#commandArray +1]={['Device']='On'}

Re: LUA : Envoi simultané de commandes JSON

Publié : 17 mai 2022, 19:32
par Diab
Merci Jeff, il semble donc qu'il faille rester sur la suggestion de Keros et laisser tomber les commandes JSON.
SI je veux lancer plusieurs commandes dans un bloc horaire, il faut donc, dans mon cas quelque chose comme ça ?

Si heure = hh:mm:ss alors
commandArray[#commandArray +1]={['Vanne_1']='Off'}
commandArray[#commandArray +1]={['Vanne_2']='On'}
.....

Re: LUA : Envoi simultané de commandes JSON

Publié : 17 mai 2022, 20:25
par Jeff
Oui tout a fait, cette commande permet de faire plusieurs ordres à la suite que se soit de l'ordre direct SwitchOn, du json, du sendmail...
Le otherdevice c'est une interrogation dans un if, le commandarray, une exécution.

Re: LUA : Envoi simultané de commandes JSON

Publié : 17 mai 2022, 20:35
par Diab
Merci, je vais essayer de reformuler mon script avec ces informations.

[Résolu] LUA : Envoi simultané de commandes JSON

Publié : 18 mai 2022, 09:38
par Diab
Merci à vous deux.
L'utilisation de commandes JSON n'était pas pertinente et l’enchaînement des commandes est maintenant OK (compliquée quand même cette syntaxe ...).
Mais ça marche ;)