Page 1 sur 2

[Résolu]Erreur de script lua

Publié : 04 sept. 2018, 11:14
par frtoto
Bonjour,

j'ai fait ce tout petit script qui fonctionne (le group comprends 4 yeelight+ 1 strip)

Code : Tout sélectionner

commandArray = {}
if (devicechanged['sensor_cine_led'] == 'On') then
    commandArray['Group:led_cine']='On'
    elseif (devicechanged['sensor_cine_led']=='Off') then
    commandArray['Group:led_cine']='Off'
   end
return commandArray
Mais quand je vais dans le log j'ai ce message d'erreur :
2018-09-04 11:12:00.235 Error: EventSystem: in led_cine_lua: [string "commandArray = {}
..."]:2: attempt to index global 'devicechanged' (a nil value)


Si quelqu'un peut m'expliquer ?
merci

Re: Erreur de script lua

Publié : 04 sept. 2018, 12:56
par thier
Tu as bien enregistré ton script en type device?

Re: Erreur de script lua

Publié : 04 sept. 2018, 13:01
par frtoto
Merci, c'était ça le pb , je laissais toujours en 'ALL', j'ai plein de choses à apprendre en lua, des liens à me proposer pour que je progresse ?

par contre ce script pose pb maintenant :

Code : Tout sélectionner

commandArray = {}
if (otherdevices['Détecteur Pres. WC'] == 'On') then
    commandArray['Yee WC']='On'
    command ="curl 'xxx:xxx@192.168.0.100:8084/json.htm?type=command&param=setcolbrightnessvalue&idx=124&hex=FF0000&brightness=100' " -- Allume la passerelle en rouge
    os.execute(command)
elseif (otherdevices['Détecteur Pres. WC'] == 'Off') then
    commandArray['Yee WC']='Off'
    commandArray['Passerelle Light']='Off'
end
return commandArray
Le log ne m'envoie pas d'erreur mais le script ralenti le systeme car il se lance tout le temps, exemple sur 2 secondes
2018-09-04 14:19:33.142 Status: EventSystem: Script event triggered: test wc
2018-09-04 14:19:33.339 Status: EventSystem: Script event triggered: test wc
2018-09-04 14:19:33.397 Status: EventSystem: Script event triggered: test wc
2018-09-04 14:19:33.595 Status: EventSystem: Script event triggered: test wc
2018-09-04 14:19:33.654 Status: EventSystem: Script event triggered: test wc
2018-09-04 14:19:33.760 Status: EventSystem: Script event triggered: test wc
2018-09-04 14:19:33.916 Status: EventSystem: Script event triggered: test wc
2018-09-04 14:19:34.015 Status: EventSystem: Script event triggered: test wc
2018-09-04 14:19:34.172 Status: EventSystem: Script event triggered: test wc
2018-09-04 14:19:34.370 Status: EventSystem: Script event triggered: test wc
2018-09-04 14:19:34.427 Status: EventSystem: Script event triggered: test wc

Re: Erreur de script lua

Publié : 04 sept. 2018, 15:42
par lmet
Bonjour,

Si ton script est en mode device alors il faut utiliser la commande :

Code : Tout sélectionner

if devicechanged['Détecteur Pres. WC'] == 'On' then ...
et non :
if (otherdevices['Détecteur Pres. WC'] == 'On') then ... 
Pareil pour la commande Off

Re: Erreur de script lua

Publié : 04 sept. 2018, 15:47
par frtoto
lmet a écrit :Bonjour,

Si ton script est en mode device alors il faut utiliser la commande :

Code : Tout sélectionner

if devicechanged['Détecteur Pres. WC'] == 'On' then ...
et non :
if (otherdevices['Détecteur Pres. WC'] == 'On') then ... 
Merci bcp, je réitère ma demande, où puis-je trouver un site ou un bouquin qui me donnerait toutes ces bases ?

Re: Erreur de script lua

Publié : 04 sept. 2018, 15:56
par lmet
tu as un article ici pour la partie Domoticz qui renvoie vers la référence ici

Re: Erreur de script lua

Publié : 04 sept. 2018, 15:57
par frtoto
lmet a écrit :tu as un article ici pour la partie Domoticz qui renvoie vers la référence ici
Nickel merci

Re: Erreur de script lua

Publié : 04 sept. 2018, 17:04
par vil1driver
Oui, enfin la source à vraiment lire c'est la doc domoticz
Car otherdevices, devicechanged, etc... sont spécifiques à domoticz et la façon dont les scripts sont lancés également...

https://www.google.fr/search?q=wiki+domoticz

Même si Patrice nous a bien décortiqué le principal, il est toujours bon de se rapprocher de la source

Avec une préférence perso pour celle ci
https://www.domoticz.com/wiki/Events

Re: Erreur de script lua

Publié : 04 sept. 2018, 18:23
par thier
@frtoto
tout à fait d'accord avec la lecture du wiki domoticz. Tu vas déjà en apprendre pas mal. Ensuite no stress Avec le langage lua. Je donnerai juste deux conseils:
- si un script doit faire plusieurs actions, tu commences par en programmer une et tu valides son exécution. Ensuite tu le complètes au fur et à mesure avec les actions suivantes.
- pour valider et suivre l'exécution d'un script, tu mets des print un peu partout qui vont t'indiquer le déroulement du script (les print doivent bien être expliqués dans le wiki).

Re: Erreur de script lua

Publié : 04 sept. 2018, 21:59
par frtoto
Effectivement j'ai commencé la lecture et maintenant que je n'ai plus d'erreur dans mon log, c'est bcp plus lisible pour debugger,

j'essaie aussi de prendre des scripts et de les comprendre mais sans les bases c’était dur ! Cela va être plus simple maintenant.

En tout cas merci à vous pour votre aide

Edit : dernière question, dans un script quelle est la difference entre
commandArray['Group:Kitchen']='Inactive'
et commandArray['Group:Kitchen']='Off'

et donc entre active et On ?