[Résolu]Erreur de script lua

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 <\>.
frtoto
Messages : 320
Inscription : 17 févr. 2018, 17:02

[Résolu]Erreur de script lua

Message 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
Dernière modification par frtoto le 06 sept. 2018, 17:00, modifié 1 fois.
Dz 2025.11_16729 - Conbee II
thier
Messages : 807
Inscription : 26 sept. 2015, 10:32
Localisation : charente

Re: Erreur de script lua

Message par thier »

Tu as bien enregistré ton script en type device?
PI3+, Buster, Domoticz V2020.2, rflink, zwave, chauffage piloté par qubino, sondes oregon et Vil1d, boite aux lettres détection passage facteur, volets roulants qubino fibaro.
frtoto
Messages : 320
Inscription : 17 févr. 2018, 17:02

Re: Erreur de script lua

Message 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
Dz 2025.11_16729 - Conbee II
lmet
Messages : 252
Inscription : 30 juin 2017, 18:16
Localisation : Val d'Oise
Contact :

Re: Erreur de script lua

Message 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
Domoticz : V4.10717
Zigate : V4.11230 plugin:4.5.4 firmware:031a
Mon petit blog domotique
frtoto
Messages : 320
Inscription : 17 févr. 2018, 17:02

Re: Erreur de script lua

Message 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 ?
Dz 2025.11_16729 - Conbee II
lmet
Messages : 252
Inscription : 30 juin 2017, 18:16
Localisation : Val d'Oise
Contact :

Re: Erreur de script lua

Message par lmet »

tu as un article ici pour la partie Domoticz qui renvoie vers la référence ici
Domoticz : V4.10717
Zigate : V4.11230 plugin:4.5.4 firmware:031a
Mon petit blog domotique
frtoto
Messages : 320
Inscription : 17 févr. 2018, 17:02

Re: Erreur de script lua

Message par frtoto »

lmet a écrit :tu as un article ici pour la partie Domoticz qui renvoie vers la référence ici
Nickel merci
Dz 2025.11_16729 - Conbee II
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Erreur de script lua

Message 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
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
thier
Messages : 807
Inscription : 26 sept. 2015, 10:32
Localisation : charente

Re: Erreur de script lua

Message 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).
PI3+, Buster, Domoticz V2020.2, rflink, zwave, chauffage piloté par qubino, sondes oregon et Vil1d, boite aux lettres détection passage facteur, volets roulants qubino fibaro.
frtoto
Messages : 320
Inscription : 17 févr. 2018, 17:02

Re: Erreur de script lua

Message 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 ?
Dz 2025.11_16729 - Conbee II
Répondre