Page 1 sur 1

Scripts LUA qui ne se déclenchent pas

Publié : 31 déc. 2020, 12:52
par dokho
Bonjour,

Je viens de basculer ma domotique d'une machine virtuelle vers un Rpi (+ SSD USB) et donc je repars plus ou moins de zéro.

Je rencontre quelques problèmes avec des scripts LUA qui ne veulent pas se lancer. J'ai chercher quelques heures mais je ne trouve pas, si quelqu'un à une idée.

Domoticz: 2020.2
Raspbian: buster

L'un des scripts en question:

Code : Tout sélectionner

commandArray = {}
t1 = os.date("%H:%M")
if (devicechanged['[VMC] Mode'] == 'Off')
then
print("DEBUG: VMC MODE OFF")
commandArray['[VMC] Vitesse']='Off'
elseif (devicechanged['[VMC] Mode'] == 'Manuel')
then
commandArray['[VMC] Vitesse']='Set Level: 10'
elseif (devicechanged['[VMC] Mode'] == 'Automatique')
then
if ((tonumber(os.date("%w")) == 0) or (tonumber(os.date("%w")) == 6)) then
if ((t1>=uservariables["VMC_LOW_TIME1_WE"]) and (t1<uservariables["VMC_HIGH_TIME1_WE"])) then
commandArray['[VMC] Vitesse']='Set Level: 10'
elseif ((t1>=uservariables["VMC_HIGH_TIME1_WE"]) and (t1<uservariables["VMC_LOW_TIME2_WE"])) then
commandArray['[VMC] Vitesse']='Set Level: 20'
elseif ((t1>=uservariables["VMC_LOW_TIME2_WE"]) and (t1<uservariables["VMC_HIGH_TIME2"])) then
commandArray['[VMC] Vitesse']='Set Level: 10'
elseif ((t1>=uservariables["VMC_HIGH_TIME2"]) and (t1<uservariables["VMC_LOW_TIME3"])) then
commandArray['[VMC] Vitesse']='Set Level: 20'
elseif ((t1>=uservariables["VMC_LOW_TIME3"]) and (t1<uservariables["VMC_STOP_TIME2"])) then
commandArray['[VMC] Vitesse']='Set Level: 10'
elseif ((t1>=uservariables["VMC_STOP_TIME2"]) and (t1<uservariables["VMC_LOW_TIME1_WE"])) then
commandArray['[VMC] Vitesse']='Off'
end
else
if ((t1>=uservariables["VMC_HIGH_TIME1"]) and (t1<uservariables["VMC_LOW_TIME1"])) then
commandArray['[VMC] Vitesse']='Set Level: 20'
elseif ((t1>=uservariables["VMC_LOW_TIME1"]) and (t1<uservariables["VMC_STOP_TIME1"])) then
commandArray['[VMC] Vitesse']='Set Level: 10'
elseif ((t1>=uservariables["VMC_STOP_TIME1"]) and (t1<uservariables["VMC_LOW_TIME2"])) then
commandArray['[VMC] Vitesse']='Off'
print("Entre STOP_TIME1 et LOW_TIME2"..dayNow)
elseif ((t1>=uservariables["VMC_LOW_TIME2"]) and (t1<uservariables["VMC_HIGH_TIME2"])) then
commandArray['[VMC] Vitesse']='Set Level: 10'
elseif ((t1>=uservariables["VMC_HIGH_TIME2"]) and (t1<uservariables["VMC_LOW_TIME3"])) then
commandArray['[VMC] Vitesse']='Set Level: 20'
elseif ((t1>=uservariables["VMC_LOW_TIME3"]) and (t1<uservariables["VMC_STOP_TIME2"])) then
commandArray['[VMC] Vitesse']='Set Level: 10'
elseif ((t1>=uservariables["VMC_STOP_TIME2"]) and (t1<uservariables["VMC_HIGH_TIME1"])) then
commandArray['[VMC] Vitesse']='Off'
end
end
end
 return commandArray
Merci :)

Re: Scripts LUA qui ne se déclenchent pas

Publié : 31 déc. 2020, 13:51
par Keros
Ton script est enregistré à quel endroit ? Dans DomoticZ / Événements ou c'est un fichier .lua dans le dossier Script sur le Pi ?

Quel est le trigger du script ? De ce que je comprends, il devrait se lancer toutes les minutes : tu peux ajouter un print au début pour voir son exécution ?

Re: Scripts LUA qui ne se déclenchent pas

Publié : 31 déc. 2020, 14:25
par denis_brasseur
Keros a écrit : 31 déc. 2020, 13:51 Quel est le trigger du script ? De ce que je comprends, il devrait se lancer toutes les minutes : tu peux ajouter un print au début pour voir son exécution ?
S'agissant d'un devicechanged, le script devrait être de type device, et devrait s'exécuter sur le changement d'état du device VMC, et non pas toutes les minutes.
Il y a déjà un
print("DEBUG: VMC MODE OFF")
qui devrait afficher quelque chose lors du changement d'état du device VMC.

De quel type de matériel dont tu surveilles le fonctionnement s'agit-il ?

Code : Tout sélectionner

if (devicechanged['[VMC] Mode'] == 'Off')
idem pour

Code : Tout sélectionner

commandArray['[VMC] Vitesse']='Set Level: 10'
Tu as déjà des scripts qui fonctionnent ?

Re: Scripts LUA qui ne se déclenchent pas

Publié : 31 déc. 2020, 14:56
par Keros
Désolé pour le trigger, j'ai mal vu :oops:
denis_brasseur a écrit : 31 déc. 2020, 14:25 Il y a déjà un

print("DEBUG: VMC MODE OFF")

qui devrait afficher quelque chose lors du changement d'état du device VMC.
Par contre, l'affichage du print n'est valable que si [VMC] Mode passe à Off. Les autres cas pour Manuel et Automatique n'ont pas de débogage.

Re: Scripts LUA qui ne se déclenchent pas

Publié : 01 janv. 2021, 20:35
par dokho
Bonjour,

Tout d'abord meilleurs vœux à tous :)

Pour revenir à mon problème, tout est rentré dans l'ordre ... je ne sais pas comment.

J'avais un autre script (time) qui me générait pas mal d'erreur et qui se lançait toutes les 2 secondes. Aprés avoir corrigé les erreurs le script time se lance bien toutes les minutes et le script device VMC s'est mis à fonctionner normalement.

Si j'arrive à trouver le pourquoi du comment je ne manquerait pas de vous en faire part.
Encore merci pour vos réponses.

Re: Scripts LUA qui ne se déclenchent pas

Publié : 01 janv. 2021, 21:51
par Keros
Comme quoi, on peut retourner un script dans tous les sens, c'est peut-être son environnement qui pose problème :?
Je note dans un coin qu'il vaut mieux demander si les autres scripts fonctionnent et s'il y a d'autres erreurs dans DomoticZ.