Page 1 sur 1

User variables changement d état avec bloky

Publié : 11 févr. 2015, 13:28
par Damotik
Salut,
Petit problème de changement de valeur pour variables user.
Quand un blocky change la valeur d une user variable, un second script ne voit pas l'évent. Mais quand je change manuellement la valeur , alors ce second script se lance.
Merci d'avance pour l'aide

Re: User variables changement d état avec bloky

Publié : 11 févr. 2015, 23:24
par hobbe
Damotik a écrit :Salut,
Petit problème de changement de valeur pour variables user.
Quand un blocky change la valeur d une user variable, un second script ne voit pas l'évent. Mais quand je change manuellement la valeur , alors ce second script se lance.
Merci d'avance pour l'aide
J'ai remarqué la même chose, dans un script lua.

Si, dans un script script_time_blabla.lua, je fais :

Code : Tout sélectionner

commandArray['Variable:Pushbullet'] = 'Alerte !'
Le script de détection de changement de valeur de la variable script_variable_pushbullet.lua ne se déclenche pas.
Par contre, le changement manuel de la variable à partir de l'interface déclenche bien ce script.

Ce doit être "by design", mais je n'en suis pas sûr...

Re: User variables changement d état avec bloky

Publié : 12 févr. 2015, 13:32
par vil1driver
c'est identique chez moi (v2.2256)

en utilisant json pour modifier la variable ça fonctionne

Code : Tout sélectionner

--script_time_set.lua
--script pour modifier une variable

commandArray = {}
commandArray['OpenURL']='localhost:8080/json.htm?type=command&param=updateuservariable&id=45&vname=Pushbullet&vtype=2&vvalue=Alerte'
return commandArray 
mon script variable voit bien la mise a jour de la variable de cette façon.

Publié : 12 févr. 2015, 17:26
par Damotik
J'avais la même alternative en tête... dans blocky. Je teste mais c moins lisible. Dommage.

Publié : 15 févr. 2015, 12:32
par Damotik
Ça marche. Cool.

Re: User variables changement d état avec bloky

Publié : 27 juil. 2016, 23:24
par guigui79
Bonjour.
J'ai le même souci en blocky ou lua.
Si je met en mode "UserVariable" mon script lua ci-dessous, il ne démarre jamais lorsque la variable change.
Alors que si je change la variable manuellement, il démarre aussitôt.
Si je le met en mode "Time", il démarre et fait son travail.
Mais il y a un délai d'une minute.
Je ne comprend pas bien votre solution.
Merci de m'éclairer. ;)

Code : Tout sélectionner

-- titre du fichier: script_variable_alarme_sirene.lua
-- Ce script vérifie l'état de la variable AlarmSoundSiren.
-- Si la variable passe a 1, la procedure d'alerte est lancée.

commandArray = {}
print('Le Script alarme Sirene à démarré')

if ( uservariables["AlarmSoundSiren"] == 1 ) then
    commandArray['Scene:Alarme']='On'
    print('L alarme sonne !!!')
end

return commandArray

Re: User variables changement d état avec bloky

Publié : 27 juil. 2016, 23:51
par thier
Et si tu le mets en script_device?

Re: User variables changement d état avec bloky

Publié : 27 juil. 2016, 23:58
par guigui79
En mode device, il ne démarre pas car j'ai un autre script qui vérifie le changement d'État des capteurs, et qui modifie les variables en conséquence.
Celui ci est la juste pour vérifier l'État d'une variable.
Je l'ai fait en blocky et j'ai le même problème.

Re: User variables changement d état avec bloky

Publié : 28 juil. 2016, 03:57
par vil1driver
Salut,

Une variable est une chaîne,

Donc il est préférable de tester avec

Code : Tout sélectionner

== '1'
Le soucis évoqué dans ce sujet vient de la méthode de mise à jour de la variable, il faut le faire par la commande json comme expliqué..

@thier,

Un script_device se lance à la mise à jour d'un dispositif..
Un script_variable se lance à la mise à jour d'une variable..