Scripts LUA qui ne se déclenchent pas

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 <\>.
dokho
Messages : 685
Inscription : 28 déc. 2014, 19:32

Scripts LUA qui ne se déclenchent pas

Message 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 :)
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: Scripts LUA qui ne se déclenchent pas

Message 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 ?
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
denis_brasseur
Messages : 898
Inscription : 24 déc. 2018, 17:05
Localisation : (26)

Re: Scripts LUA qui ne se déclenchent pas

Message 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 ?
Pi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: Scripts LUA qui ne se déclenchent pas

Message 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.
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
dokho
Messages : 685
Inscription : 28 déc. 2014, 19:32

Re: Scripts LUA qui ne se déclenchent pas

Message 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.
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: Scripts LUA qui ne se déclenchent pas

Message 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.
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
Répondre