Premier script probleme

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 <\>.
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Premier script probleme

Message par vil1driver »

Salut,
Alexandre a écrit :Pour info l'erreur serait sur la 4 eme ligne
Ça aurait pu en effet mais
Le message d'erreur indique ligne 2..
Alexandre a écrit :Error: EventSystem: in Ambil On: [string "commandArray = {} ..."]:2: attempt to index global 'devicechanged' (a nil value)
Indiquer le message d'erreur est clairement le mieux à faire..
Il est également utile de préciser le nom donné au script.. Ou le type si usage de l'éditeur d'événements.

* devicechanged ne peut être utilisé que dans un script_device.... Voir wiki ou articles du blog sur les tables des périphériques Domoticz passées aux scripts lua.
Les scripts selon leur type n'ont pas tous accès aux même infos..
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
Alexandre
Messages : 11
Inscription : 11 avr. 2016, 22:10

Re: Premier script probleme

Message par Alexandre »

vil1driver a écrit :Salut,
Alexandre a écrit :Pour info l'erreur serait sur la 4 eme ligne
Ça aurait pu en effet mais
Le message d'erreur indique ligne 2..
Alexandre a écrit :Error: EventSystem: in Ambil On: [string "commandArray = {} ..."]:2: attempt to index global 'devicechanged' (a nil value)
Indiquer le message d'erreur est clairement le mieux à faire..
Il est également utile de préciser le nom donné au script.. Ou le type si usage de l'éditeur d'événements.

* devicechanged ne peut être utilisé que dans un script_device.... Voir wiki ou articles du blog sur les tables des périphériques Domoticz passées aux scripts lua.
Les scripts selon leur type n'ont pas tous accès aux même infos..

Si dans" event" je met sur "device" au lieu de "all" il ne se passe plus rien!
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Premier script probleme

Message par vil1driver »

Pas d'action visible ne veut pas dire que rien ne se passe !

Mets un print dans ton script, tu verras qu'il se lance (dans les logs)
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
Alexandre
Messages : 11
Inscription : 11 avr. 2016, 22:10

Re: Premier script probleme

Message par Alexandre »

Dans le switch virtuel,faut il lui indiqué un commande?
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Premier script probleme

Message par vil1driver »

Pourquoi cette question ?
Tu penses que le script ne se suffit pas à lui-même ?
Comprends tu ce que fait le script que tu nous à montré ?
Que souhaite tu obtenir comme fonctionnement ?
D'ou te vient ta commande curl ?
A-t-elle été testée dans un navigateur ou en ligne de commande avant ?
As tu suivi les conseils de rimram31 ?
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
Alexandre
Messages : 11
Inscription : 11 avr. 2016, 22:10

Re: Premier script probleme

Message par Alexandre »

vil1driver a écrit :Pourquoi cette question ?
Tu penses que le script ne se suffit pas à lui-même ?
Comprends tu ce que fait le script que tu nous à montré ?
Que souhaite tu obtenir comme fonctionnement ?
D'ou te vient ta commande curl ?
A-t-elle été testée dans un navigateur ou en ligne de commande avant ?
As tu suivi les conseils de rimram31 ?

SI mais je doit passer a coté de quelque chose,et oui j'ai testé dans chrome et je t'assure que je suit de près vos conseils
Je veux via des switch virtuel allumé la tv,l'ambilight... il me faut des commande POST comme ceci:

http://192.168.1.22:1925/1/ambilight/power
Donnée:
{"power":"Off"}
Cette commande POSTque je prend pour exemple fonctionnne .
Je pense que je me complique la vie!
rimram31
Messages : 659
Inscription : 04 oct. 2015, 11:22
Localisation : Toulouse

Re: Premier script probleme

Message par rimram31 »

La bonne question est effectivement que veux-tu faire exactement ?

Si j'essaie de comprendre ton premier post, quand ton device nommé ambilight_power de domoticz (switch ?) passe a On, tu exécutes ton appel, qui apparemment éteins un ambilight qque chose, soit.

Le plus simple pour moi c'est de créer un switch virtuel dans domoticz lié a tes commandes.

Tu écris deux scripts sh, un script on et un script off, power_on.sh par exemple:

Code : Tout sélectionner

#!/bin/sh
curl -X POST -H "Content-Type: application/json" -d '{"power":"On"}' http://192.168.1.22:1925/1/ambilight/power
et le power_off.sh. Tu vérifies que tes deux scripts font bien ce que tu veux (tu testes aussi avec root au cas ou ...) et tu mets ces deux scripts dans le répertoire domoticz/scripts.

Ensuite sous domoticz, tu créés un switch virtuel et tu l'édites. Dans Action On, tu mets l'appel a power_on.sh -> script://power_on.sh et Action Off le script off. Tu peux a ce moment là tester de domoticz en allumant/éteignant ton switch virtuel que ça fait bien toujours l'action on/off.

Enfin tu utilises ce switch dans ta logique de domotique domoticz -> quand machin est actionné, j'éteins/j'allume bidule ...

En règle générale en "programmation", il est préférable de procéder par étapes simples, les valider puis enchainer pour arriver au résultat souhaité. C'est le plus efficace.
Raspberry Pi 2 + carte RF pi "maison" + Domoticz
Sonde Oregon + Aliexpress - Prises Chacon (3500W) - 1wire DS18B20
Alexandre
Messages : 11
Inscription : 11 avr. 2016, 22:10

Re: Premier script probleme

Message par Alexandre »

rimram31 a écrit :La bonne question est effectivement que veux-tu faire exactement ?

Si j'essaie de comprendre ton premier post, quand ton device nommé ambilight_power de domoticz (switch ?) passe a On, tu exécutes ton appel, qui apparemment éteins un ambilight qque chose, soit.

Le plus simple pour moi c'est de créer un switch virtuel dans domoticz lié a tes commandes.

Tu écris deux scripts sh, un script on et un script off, power_on.sh par exemple:

Code : Tout sélectionner

#!/bin/sh
curl -X POST -H "Content-Type: application/json" -d '{"power":"On"}' http://192.168.1.22:1925/1/ambilight/power
et le power_off.sh. Tu vérifies que tes deux scripts font bien ce que tu veux (tu testes aussi avec root au cas ou ...) et tu mets ces deux scripts dans le répertoire domoticz/scripts.

Ensuite sous domoticz, tu créés un switch virtuel et tu l'édites. Dans Action On, tu mets l'appel a power_on.sh -> script://power_on.sh et Action Off le script off. Tu peux a ce moment là tester de domoticz en allumant/éteignant ton switch virtuel que ça fait bien toujours l'action on/off.

Enfin tu utilises ce switch dans ta logique de domotique domoticz -> quand machin est actionné, j'éteins/j'allume bidule ...

En règle générale en "programmation", il est préférable de procéder par étapes simples, les valider puis enchainer pour arriver au résultat souhaité. C'est le plus efficace.

Rimram en effet tu vois bien ce que je veux faire.
Je pensais juste q'en éditant un script On et un OFF pour commencer dans "evenement"/"Lua"/" device" se serait plus simple pour moi , oublie pas je suis novice.Et aussi je t'ai pas préciser je suis sous windows.
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Premier script probleme

Message par vil1driver »

rahh Windows, le truc hyper important à préciser.. !

il faut vraiment tout dire à son médecin sinon il ne peut pas soigner correctement son malade ;)

pas de curl en natif sous windows, mais on doit trouver des équivalent à installer..
https://curl.haxx.se/download.html
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
rimram31
Messages : 659
Inscription : 04 oct. 2015, 11:22
Localisation : Toulouse

Re: Premier script probleme

Message par rimram31 »

Alexandre a écrit :...Et aussi je t'ai pas préciser je suis sous windows.
Aie, ça va beaucoup moins bien marcher alors ... Comme tu utilises curl, j'avais déduit que tu étais sous linux, là, je vais laisser les windosiens t'aider, même si dans le principe, au sens de l'interface avec dz, ça fonctionne de façon similaire. Un conseil, bosse le power shell.
Raspberry Pi 2 + carte RF pi "maison" + Domoticz
Sonde Oregon + Aliexpress - Prises Chacon (3500W) - 1wire DS18B20
Répondre