Script lua uservariables

Posez ici vos questions d'utilisation, de configuration de DomoticZ, de bugs, de conseils sur le logiciel lui même dans son utilisation et son paramétrage.
Des forums spécifiques sont ouverts ci-dessous pour regrouper les différents sujets.
shinji
Messages : 13
Inscription : 22 sept. 2017, 10:49

Script lua uservariables

Message par shinji »

Bonjour à tous,

j'ai un souci avec un script uservariable. Il n'est pas "scanner" lorsque je change l'état d'une variable.

Dans un script device j'ai ceci:

Code : Tout sélectionner

commandArray = {}

if devicechanged['Bouton Chambre'] == 'Click' then
    commandArray['Variable:Alarme'] = 'ON' 
    commandArray['Bouton Chambre'] = 'Off'
    
elseif devicechanged['Bouton Chambre'] == 'Double Click' then
    commandArray['Variable:Alarme'] = 'OFF' 
    commandArray['Bouton Chambre'] = 'Off'
end

return commandArray
Et dans un autre script uservariable cette fois, j'ai ceci:

Code : Tout sélectionner

commandArray = {}

print "toto"
if (uservariables["Alarme"] == "ON") then                           
    print"alarm mode jour"
end

return commandArray
La variable est bien maj mais mon print "toto" qui devrait s'afficher à chaque appui sur le bouton, ne s'affiche jamais.
Hors si je change manuellement l'état de la variable dans le menu de déclaration de uservariable, en faisant modifier, tout fonctionne bien.

Du coup je ne comprend pas pourquoi ça ne fonctionne pas quand je modifie la variable via le bouton.
Je n'ai pas réussi a trouver des infos sur internet donc me voici ici :).

Merci d'avance.
Dernière modification par shinji le 27 sept. 2017, 14:11, modifié 1 fois.
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Script lua uservariables

Message par vil1driver »

Salut
Maj ta variable par une requête json
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
jackslayter
Messages : 1040
Inscription : 30 sept. 2014, 14:40
Localisation : Isère (38)

Re: Script lua uservariables

Message par jackslayter »

Raspberry Pi + RFLink + Domoticz Beta
Oregon - 3x Thgr122Nx / Chacon - micromodule 200w, télécommande 3b et 16b, 2x module 1000w, détecteur de fumée, contact de porte, 2x prise 3500w / OWL - CM180 / TRC02 v2 RGB 3M / Cheap - PIR, contact de porte
shinji
Messages : 13
Inscription : 22 sept. 2017, 10:49

Re: Script lua uservariables

Message par shinji »

Ok merci du coup si j'ai bien compris il faut que je change le

commandArray['Variable:Alarme'] = 'ON'
par
/json.htm?type=command&param=updateuservariable&vname=Alarme&vtype=2&vvalue=ON

par contre pourquoi l'autre méthode ne fonctionne pas ? Pas de remontée de modification dans uservariable ?
jackslayter
Messages : 1040
Inscription : 30 sept. 2014, 14:40
Localisation : Isère (38)

Re: Script lua uservariables

Message par jackslayter »

oui c'est ça
si ça fonctionne, c'est exactement ça même si tu peux voir si une variable est modifiée (script_variable_x.lua)
Raspberry Pi + RFLink + Domoticz Beta
Oregon - 3x Thgr122Nx / Chacon - micromodule 200w, télécommande 3b et 16b, 2x module 1000w, détecteur de fumée, contact de porte, 2x prise 3500w / OWL - CM180 / TRC02 v2 RGB 3M / Cheap - PIR, contact de porte
shinji
Messages : 13
Inscription : 22 sept. 2017, 10:49

Re: Script lua uservariables

Message par shinji »

Pfffff c'est la vraie galère le JSON j'y connais pas grand chose.

Du coup j'ai testé ça

Code : Tout sélectionner

http://192.168.0.15:8084/json.htm?type=command&param=updateuservariable&vname=Alarme&vtype=2&vvalue=ON
car il y avait cet exemple:

Code : Tout sélectionner

eg. http://192.168.1.2:8080/json.htm?type=command&param=udevice&idx=$idx&nvalue=0&svalue=79
ça marche pas déjà dans le lua j'ai des erreurs partout et j'ai essayé avec ça et c'est pas mieux

Code : Tout sélectionner

http://bob:toto@domoticz-ip:192.168.0.15:8084/json.htm?type=command&param=updateuservariable&vname=Alarme&vtype=2&vvalue=ON
bob = user et toto en password j'ai vu aussi certain exemple avec curl devant

Code : Tout sélectionner

curl 'http://192.168.0.15:8084/json.htm?type=command&param=updateuservariable&vname=Alarme&vtype=2&vvalue=ON'
mais ça marche pas non plus !

La ligne se suffit à elle même ou alors il faut une déclaration préalable ?

Bref j'ai fait une peu de code à l'école je découvre le lua assez facilement mais JSON je capte pas grand chose !

Merci
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Script lua uservariables

Message par vil1driver »

Code : Tout sélectionner

commandArray['OpenURL'] ='url' 
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
shinji
Messages : 13
Inscription : 22 sept. 2017, 10:49

Re: Script lua uservariables

Message par shinji »

cool ça marche si j’enlève le user et mot de passe sur domoticz

Code : Tout sélectionner

 commandArray['OpenURL'] ='http://192.168.0.15:8084/json.htm?type=command&param=updateuservariable&vname=Alarme&vtype=2&vvalue=ON'
Du coup ça c'est OK merci :)

Par contre je suis toujours bloqué avec le user et password si je le remet

Code : Tout sélectionner

http://<username:password@>domoticz-ip<:port>/json.htm?api-call

Code : Tout sélectionner

 commandArray['OpenURL'] ='http://<bob:toto@>192.168.0.15:8084/json.htm?type=command&param=updateuservariable&vname=Alarme&vtype=2&vvalue=ON'

Error: Error opening url: http://192.168.0.15:8084/json.htm?type=command¶m=updateuservariable&vname=Alarme&vtype=2&vvalue=ON
la déclaration est bien identique à l'exemple pourtant <username:password@> => <bob:toto@>

merci encore ...... :)
cyberbob
Messages : 511
Inscription : 28 nov. 2016, 19:43
Localisation : Belgique

Re: Script lua uservariables

Message par cyberbob »

Un truc que je ne comprend pas en lisant ces post,
J'ai une variable utilisateurs déclarée dans "réglages/plus d'options/variable utilisateur"
Et je la change de valeurs dans différent scipts Blockly avec un "set"
On ne peut donc pas faire la même chose dans un script LUA ?
Domoticz Stable V4.9700 sur Synology DSM 6.2 / 2 x RFlink V48.4 - 433.92MHz(Dio/Chacon) & 433.42MHz(RTS) / Script en LUA & Blocky
papoo
Messages : 2029
Inscription : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: Script lua uservariables

Message par papoo »

Code : Tout sélectionner

commandArray['Variable:MyVar']='Some value'
https://www.domoticz.com/wiki/Events
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github
Répondre