Page 1 sur 1

Script LUA qui ne s’exécute pas

Publié : 17 déc. 2017, 21:06
par dimitri
Bonjour,

je suis tout nouveau dans le monde de la domotique et Domoticz. J'ai installé Domoticz sur un raspberry et j'ai ajouté des capteurs xiaomi (avec la gateway) ainsi que des prises DIO 433. J'essaye de créer des scripts LUA mais sans succès.

J'ai essayé des scripts de type "time" et "device" via l'interface et aussi directement dans le répertoire scripts/lua mais je n'ai aucun retour dans les logs. Je pense qu'ils ne s’exécutent pas !

Un exemple tout bête avec mon sapin de noël piloté par une prise 433. Ça fonctionne parfaitement depuis l'interface des interrupteurs, je peux allumer et éteindre mon sapin.

Code : Tout sélectionner

Local MyDeviceName = 'Sapin_de_noel'
commandArray = {}
if (devicechanged['Sapin_de_noel'] ) then
print('sapin on/off')
end
return commandArray
Je n'ai aucun retour dans les logs (de mon print) quand j'allume ou que j’éteins mon sapin. Je vois seulement les logs de ma télécommande DIO 433 :

Code : Tout sélectionner

2017-12-17 21:00:15.653 (RFX) Lighting 2 (Sapin_de_noel)
2017-12-17 21:00:17.061 (RFX) Lighting 2 (Sapin_de_noel)
Dans l'éditeur d'évènement si je clique sur "Show current states" j'ai ça : Error getting current states, Is the Eventsystem Enabled?

Je suis en version béta 3.8791. Je suis passé sur la béta pour avoir mon sensor aqara (détecteur de présence v2) qui n'était pas encore implémenté dans la stable.

Merci pour votre aide car je sèche :roll:

Re: Script LUA qui ne s’exécute pas

Publié : 18 déc. 2017, 12:57
par landaisbenj
Bonjour.

Moi j'utilise l’événement interne.

Effectivement ton script a premiere vue devrait fonctionner.

Connais tu les differences entre time device etc...?

Pour info ta variable local ne sert a rien ici... En plus hors du tableau donc pas terrible.

As tu essayé juste un print lors de l'execution d'un script time ?

[EDIT]As tu fais un tour ici?

Re: Script LUA qui ne s’exécute pas

Publié : 18 déc. 2017, 15:26
par dimitri
Bonjour

merci pour ton retour.

Effectivement ma variable "local" ne sert à rien, j'ai modifié mon script plusieurs fois pour faire des tests :)

J'ai essayé un script time et device avec un seul print :

Code : Tout sélectionner

commandArray = {}
print('sapin on/off')
return commandArray
Mais le script ne fonctionne dans aucun des 2 modes. J'ai testé de créer le script sous unix et depuis l'éditeur interne. J'ai redémarré plusieurs fois domoticz aussi mais rien n'y fait !

Je bloque toujours je ne vois où est mon erreur...

Re: Script LUA qui ne s’exécute pas

Publié : 18 déc. 2017, 16:38
par vil1driver
dimitri a écrit : Is the Eventsystem Enabled?

Re: Script LUA qui ne s’exécute pas

Publié : 18 déc. 2017, 16:47
par dimitri
Très bonne question, en tout cas dans les paramètres de Domoticz il n'est pas désactivé !

Comment vérifier qu'il est bien lancé ?

Re: Script LUA qui ne s’exécute pas

Publié : 18 déc. 2017, 17:15
par vil1driver
Tu dis avoir testé dans le dossier lua.
Quel nom avait ton script ?

Re: Script LUA qui ne s’exécute pas

Publié : 18 déc. 2017, 18:08
par dimitri
Mon dossier scripts/lua :

Code : Tout sélectionner

pi@raspberrypi:~/domoticz/scripts/lua $ ls -l
total 68
-rw-r--r-- 1 pi pi 50533 août  29 16:35 JSON.lua
-rw-r--r-- 1 pi pi  1870 août  29 16:35 script_device_demo.lua
-rwxr-xr-x 1 pi pi    54 déc.  18 18:04 script_device_test1.lua
-rw-r--r-- 1 pi pi  1932 août  29 16:35 script_time_demo.lua
-rwxrwxrwx 1 pi pi    52 déc.  18 18:04 script_time_test2.lua
J'ai un script test1 et test2 avec a l'interieur :

Code : Tout sélectionner

commandArray = {}
print('test DEVICE')
return commandArray
et

Code : Tout sélectionner

commandArray = {}
print('test TIME')
return commandArray

Dans la page de l'éditeur d'évènements sous domoticz j'ai toujours le message "Error getting current states, Is the Eventsystem Enabled?" quand je clique sur "Show current states".
Dans Réglages > Paramètres > Autre, Système événement (Lua/Blockly/Scripts): la case "Désactivé" est décochée et celle d’après "Enregistrer les déclencheurs..." est cochée.

Re: Script LUA qui ne s’exécute pas

Publié : 18 déc. 2017, 18:26
par dimitri
Je viens de passer de la béta 3.8791 à la 3.8793 à l'instant et ça fonctionne.

Code : Tout sélectionner

2017-12-18 18:22:28.362 EventSystem: reset all events...
2017-12-18 18:22:28.363 EventSystem: reset all device statuses...
2017-12-18 18:22:28.366 EventSystem: Started
2017-12-18 18:22:28.366 EventSystem: Queue thread started...
2017-12-18 18:22:28.392 Active notification Subsystems: (0/14)
2017-12-18 18:23:00.378 LUA: TIME
2017-12-18 18:23:01.053 (RFX) Energy (Unknown)
2017-12-18 18:23:14.004 Active notification Subsystems: (0/14)
2017-12-18 18:23:27.663 Login successful from 90.113.80.138 for user 'dimitri'
2017-12-18 18:24:00.390 LUA: TIME
2017-12-18 18:24:01.116 (RFX) Lighting 2 (Sapin_de_noel)
2017-12-18 18:24:01.120 LUA: DEVICE
2017-12-18 18:24:01.709 (RFX) Lighting 2 (Sapin_de_noel)
2017-12-18 18:24:01.712 LUA: DEVICE
2017-12-18 18:24:15.088 (Gateway) Light/Switch (Aqara Motion Sensor)
2017-12-18 18:24:15.091 LUA: DEVICE
2017-12-18 18:25:00.403 LUA: TIME
Dans les paramètres je n'ai plus "désactivé" mais "activé" maintenant et la case est cochée :)