Page 2 sur 2

Re: Lancement d'un script sh

Publié : 06 avr. 2016, 15:28
par rimram31
staber a écrit :...si j'ajoute

Code : Tout sélectionner

2>&1 >/tmp/wemo_debug.log
la commande et le script ne marchent plus. le log donne «can't find a device with that name» ...
Je ne connais pas l'outil (commande wemo) mais de ce que je vois, il attend le nom du switch en paramètre, la façon dont tu l'as écris doit faire qu'il prend autre chose pour ce paramètre là. As-tu créé un script du genre:

Code : Tout sélectionner

#!/bin/sh
wemo switch "WeMo Switch" on 2>&1 >/tmp/wemo.log
et essayé d'exécuter ce script là ?

A priori pas de différence par rapport a ton script puisque le nom "Wemo Switch" (nom de device qu'il attend) est toujours passé en 2eme paramètre.

Re: Lancement d'un script sh

Publié : 06 avr. 2016, 16:28
par Pyrrhus
> staber
Oui c'est ça. Teste tous les scripts utilisés par domoticz un par un pour savoir si il n'y en a pas un qui bloque le terminal. Si tu en vois un qui ne te rends pas la main, c'est-à-dire qui ne te réaffiche pas

Code : Tout sélectionner

pi@raspberrypi $ 
, par exemple, à la fin de son execution, alors il peut bloquer l'execution des autres script par domoticz. C'est une idée, car ça m'était arrivé, et meme si elle ne résoud pas ton problème, elle t'empecheras de futurs problèmes crois -moi ;)

Re: Lancement d'un script sh

Publié : 06 avr. 2016, 23:05
par staber
le script suivant marche :

Code : Tout sélectionner

#!/bin/sh
wemo switch "WeMo Switch" on 2>&1 >/tmp/wemo.log
Le fichier log est vide et l'action sur mon switch se fait bien.

Dans domoticz :
2016-04-06 16:49:50.933 Executing script: /home/pi/domoticz/scripts/wemo/wemo_off.sh
2016-04-06 16:50:03.987 Error: Error executing script command (/home/pi/domoticz/scripts/wemo/wemo_off.sh). returned: 256

Et le log devient :
No device found with that name.
Teste tous les scripts utilisés par domoticz un par un pour savoir si il n'y en a pas un qui bloque le terminal. Si tu en vois un qui ne te rends pas la main, c'est-à-dire qui ne te réaffiche pas
je suis nouveau sous domoticz c'est simple j'ai :
- script lua de détection de présence par ping
- Weather Underground
- hub philips HUE

pas vraiment grand chose...

Re: Lancement d'un script sh

Publié : 07 avr. 2016, 12:20
par rimram31
staber a écrit :le script suivant marche :

Code : Tout sélectionner

#!/bin/sh
wemo switch "WeMo Switch" on 2>&1 >/tmp/wemo.log
Le fichier log est vide et l'action sur mon switch se fait bien.

Dans domoticz :
2016-04-06 16:49:50.933 Executing script: /home/pi/domoticz/scripts/wemo/wemo_off.sh
2016-04-06 16:50:03.987 Error: Error executing script command (/home/pi/domoticz/scripts/wemo/wemo_off.sh). returned: 256

Et le log devient :
No device found with that name.
...
Ah, on avance, donc c'est wemo qui echoue a trouver ton device lorsque tu l'exécutes dans l'environnement domoticz. Il s'exécute bien mais te dis qu'il ne trouve pas de device avec ce nom, "WeMo Switch", et affiche en sortie une erreur qui entraine le log d'erreur de domoticz ensuite.

Juste pour vérifier, tu indiques le source d'un script on et l'erreur de domoticz est pour un script off, tu n'as pas d'erreur de typo, petite boulette dans le nom de ton device dans ton script off par hasard ?

Sinon, il faut essayer de comprendre pourquoi wemo trouve bien ton device quand tu l'exécutes en ligne de commande (user pi ?) et pourquoi il ne le trouve plus quand tu l'exécutes via domoticz. Attention quand tu lances via domoticz, comme je te le disais l'environnement est différent et le user n'est pas pi mais root. Je vois aussi dans le code http://ouimeaux.readthedocs.org/en/late ... x/cli.html que cet outil utilise un fichier de configuration qui se trouve dans le home du user (donc différent selon que tu es pi ou root).

Premier essai faire un sudo su puis une fois root lancer ton script /home/pi/domoticz/scripts/wemo/wemo_off.sh et voir ce qui se passe.
Ensuite, je vois que wemo a des options de commande pour avoir la liste des devices, essayer de l'exécuter a partir de domoticz (en redirigeant toujours la sortie vers un fichier).

Bref, essayer de debugger par petits bouts pour trouver le souci.

Re: Lancement d'un script sh

Publié : 09 avr. 2016, 16:46
par staber
Merci pour ton aide rimram31!
Juste pour vérifier, tu indiques le source d'un script on et l'erreur de domoticz est pour un script off, tu n'as pas d'erreur de typo, petite boulette dans le nom de ton device dans ton script off par hasard ?
Non c'est bon c'est juste que j'ai deux script wemo_on et wemo_off exactement le même code ça m'évite de double cliquer sur mon interrupteur dans domoticz. Pour le moment les deux scripts on l'argument on
inon, il faut essayer de comprendre pourquoi wemo trouve bien ton device quand tu l'exécutes en ligne de commande (user pi ?) et pourquoi il ne le trouve plus quand tu l'exécutes via domoticz. Attention quand tu lances via domoticz, comme je te le disais l'environnement est différent et le user n'est pas pi mais root.
je crois que tu viens de mettre le doigt dessus!
wemo list liste tout les devices
wemo status me donne l'état des devices

Ces commandes marchent bien en user pi mais effectivement ne retourne rien en user su

wemo device_type "device_name" state permet de changer l'état des devices

La commande et le script renvoie la même erreur que si je la lance dans domoticz :
No device found with that name.

il me reste alors deux questions :
- Est-ce que je peux lancer une commande en user pi depuis domoticz en ajoutant quelque chose dans mon script ?
- Est-ce que je dois réinstaller ouimeaux dans le dossier home du su ?

bref comment je peux fixer ça ?

Re: Lancement d'un script sh

Publié : 09 avr. 2016, 19:09
par Pyrrhus
Essaye ça:

Code : Tout sélectionner

#!/bin/sh
sudo -u pi wemo switch "WeMo Switch" on
-u sert à lancer une commande en tant que user spécifique (pi dans ton cas)

Re: Lancement d'un script sh

Publié : 09 avr. 2016, 19:27
par georges.attali
je crois qu'il faudrait mettre 2>&1 tout à la fin de la ligne.

Re: Lancement d'un script sh

Publié : 09 avr. 2016, 19:32
par staber
MERCI!!!

Code : Tout sélectionner

#!/bin/sh
sudo -u pi wemo switch "WeMo Switch" on
marche à la perfection!!!
Je vais lui mettre un & à la fin car le script est un peu lent