Comportement étrange avec script LUA

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 <\>.
Kirk67
Messages : 24
Inscription : 23 sept. 2015, 13:50

Comportement étrange avec script LUA

Message par Kirk67 »

Bonjour,

J'ai écris un petit script LUA qui effectue la chose suivante. Une prise Edimax me retourne la consommation d'un équipement. J'ai créé un interrupteur virtuel qui contient l'état de cet équipement (ON pour en marche et OFF pour arrêt). Via ce script LUA, je positionne l'état de cet interrupteur en fonction de la valeur retournée par ma prise Edimax :

Code : Tout sélectionner

commandArray = {}

valeur = otherdevices_svalues['Edimax']
pos = string.find(valeur, ";")
conso = string.sub(valeur, 1, pos-1)

etat = otherdevices['Interrupteur']
if (tonumber(conso) > 200.0 and etat == 'Off') then
    commandArray['Interrupteur'] = "On"
    os.execute('python /home/pi/domoticz/scripts/tweet.py')
else
    if (tonumber(conso) < 200 and etat == 'On') then
        commandArray['Interrupteur'] = "Off"
    end
end

return commandArray
Mon problème est le suivant : le script python lancé par os.execute est exécuté deux fois de suite, avec quelques secondes d'écart. On a l'impression que le changement d'état de l'interrupteur n'est pas fait de manière synchrone, et que le script LUA est de nouveau appelé alors que l'état de l'interr n'est pas encore sur ON.

Quelle est la parade pour ce genre de problème ?

Merci d'avance.

Cordialement.
Répondre