User variables changement d état avec bloky

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
Damotik
Messages : 9
Inscription : 25 janv. 2015, 15:18

User variables changement d état avec bloky

Message 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
hobbe
Messages : 111
Inscription : 15 déc. 2014, 15:33

Re: User variables changement d état avec bloky

Message 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...
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: User variables changement d état avec bloky

Message 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.
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
Damotik
Messages : 9
Inscription : 25 janv. 2015, 15:18

Message par Damotik »

J'avais la même alternative en tête... dans blocky. Je teste mais c moins lisible. Dommage.
Damotik
Messages : 9
Inscription : 25 janv. 2015, 15:18

Message par Damotik »

Ça marche. Cool.
guigui79
Messages : 39
Inscription : 02 nov. 2015, 22:33

Re: User variables changement d état avec bloky

Message 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
thier
Messages : 807
Inscription : 26 sept. 2015, 10:32
Localisation : charente

Re: User variables changement d état avec bloky

Message par thier »

Et si tu le mets en script_device?
PI3+, Buster, Domoticz V2020.2, rflink, zwave, chauffage piloté par qubino, sondes oregon et Vil1d, boite aux lettres détection passage facteur, volets roulants qubino fibaro.
guigui79
Messages : 39
Inscription : 02 nov. 2015, 22:33

Re: User variables changement d état avec bloky

Message 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.
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: User variables changement d état avec bloky

Message 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..
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
Répondre