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 <\>.
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.
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
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 ?
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 ?
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.
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.