[Résolu]Erreur de script lua

Vous avez des questions concernant les scripts dans Domoticz, posez vos questions ici, quelque soit le langage nous tenterons des réponses pertinentes ...
frtoto
Messages : 34
Enregistré le : 17 févr. 2018, 17:02

[Résolu]Erreur de script lua

Message par frtoto » 04 sept. 2018, 11:14

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
Modifié en dernier par frtoto le 06 sept. 2018, 17:00, modifié 1 fois.

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


thier
Messages : 462
Enregistré le : 26 sept. 2015, 10:32
Localisation : charente

Re: Erreur de script lua

Message par thier » 04 sept. 2018, 12:56

Tu as bien enregistré ton script en type device?
PI3 + strech, rfxtrxe, zwave, chauffage piloté par qubino, sondes oregon et Vill1d, boite aux lettres détection passage facteur, volets roulants+qubino

frtoto
Messages : 34
Enregistré le : 17 févr. 2018, 17:02

Re: Erreur de script lua

Message par frtoto » 04 sept. 2018, 13:01

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

lmet
Messages : 78
Enregistré le : 30 juin 2017, 18:16
Localisation : Val d'Oise
Contact :

Re: Erreur de script lua

Message par lmet » 04 sept. 2018, 15:42

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 : V49700

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


frtoto
Messages : 34
Enregistré le : 17 févr. 2018, 17:02

Re: Erreur de script lua

Message par frtoto » 04 sept. 2018, 15:47

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 ?

lmet
Messages : 78
Enregistré le : 30 juin 2017, 18:16
Localisation : Val d'Oise
Contact :

Re: Erreur de script lua

Message par lmet » 04 sept. 2018, 15:56

tu as un article ici pour la partie Domoticz qui renvoie vers la référence ici
Domoticz : V49700

frtoto
Messages : 34
Enregistré le : 17 févr. 2018, 17:02

Re: Erreur de script lua

Message par frtoto » 04 sept. 2018, 15:57

lmet a écrit :tu as un article ici pour la partie Domoticz qui renvoie vers la référence ici
Nickel merci

vil1driver
Messages : 4497
Enregistré le : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Erreur de script lua

Message par vil1driver » 04 sept. 2018, 17:04

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

Domoticz v4.10078 (ubuntu server) OpenZwave v1.4-3000 (zwave+ sigma designs) rfxtrx433 fw1015T1

433mhz : thgn800, ms13e2, phenix, Di.O, zk1pa, creasol sender
868mhz : fgms-001, fgfs-101, dsd37-zweu, ZW098


modules.lua

thier
Messages : 462
Enregistré le : 26 sept. 2015, 10:32
Localisation : charente

Re: Erreur de script lua

Message par thier » 04 sept. 2018, 18:23

@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 + strech, rfxtrxe, zwave, chauffage piloté par qubino, sondes oregon et Vill1d, boite aux lettres détection passage facteur, volets roulants+qubino

frtoto
Messages : 34
Enregistré le : 17 févr. 2018, 17:02

Re: Erreur de script lua

Message par frtoto » 04 sept. 2018, 21:59

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 ?

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Répondre