Besoin d'aide Script EDF Tempo

Posez ici vos questions d'utilisation, de configuration de DomoticZ, de bugs, de conseils sur le logiciel lui même dans son utilisation et son paramétrage.
Des forums spécifiques sont ouverts ci-dessous pour regrouper les différents sujets.
damdam78
Messages : 6
Inscription : 09 févr. 2017, 22:29

Besoin d'aide Script EDF Tempo

Message par damdam78 »

Bonsoir à tous,

Je viens vers vous car je suis dépassé et ne sais plus quoi faire donc je viens demander de l'aide.

Tous d'abord sachez que je suis novice dans domoticz mais aussi en programmation.

Je me suis lancé dans se qui me paraissais assez simple pour commencer c'est a dire le lancement d'un script pour récupérer l'information tempo EDF.

Après avoir rédigé mon script puis mis dans mon synology à l'emplacement: :/usr/local/domoticz/var/scripts/ssh (J'ai crée moi même le dossier ssh) + lui avoir appliqué les modification comme l'IP avec le port mais aussi l'IDX, j'essaye de lancer le script et voici le retour:

Si je lance, sachant que j'y ai fais un chmod +x sur mon fichier pour le rendre executabe,

Code : Tout sélectionner

./edftempo.sh
-sh: ./edftempo.sh: No such file or directory
Ensuite j'ai pu voir sur internet qu'on pouvais aussi l’exécuter en faisant un bash avant et voici le retour:

Code : Tout sélectionner

sudo bash edftempo.sh   edftempo.sh: line 7: syntax error near unexpected token `fi'
edftempo.sh: line 7: `fi'
J'ai aussi crée un autre fichier appelé recupedf.sh et voici ce que j'ai comme erreur:

Code : Tout sélectionner

sudo bash recupedf.sh   curl: (3) Illegal characters found in URL
Je ne comprend pas pourquoi je bloque sur cela sachant que j'ai simplement réalisé en copié/collé et en modifiant les éléments nécessaire.

Je m'en remet à vous afin d'obtenir de l'aide. Merci d'avance ;)
Snorky
Messages : 79
Inscription : 02 oct. 2016, 22:13

Re: Besoin d'aide Script EDF Tempo

Message par Snorky »

Salut

Il nous faudrait le code de ton script.

Ensuite faudrait que tu vérifies les droits de ton shall.
Regarde aussi si tu as des caractères spéciaux dans ton script.
DomoticzVersion: V3.8153, CustomPage, GoogleHome
Pi3 Modèle B + RFXCom + Razberry
RFX: Sonde OREGON THGR122, Capteur ouverture Trust AMST-606, Compteur conso OWL Micro+ CM180
ZWave: FGMS001
damdam78
Messages : 6
Inscription : 09 févr. 2017, 22:29

Re: Besoin d'aide Script EDF Tempo

Message par damdam78 »

Bonjour,

Voici mon code pour mon fichier edftempo.sh:

Code : Tout sélectionner

#!/bin/bash
tempo=$(curl -s http://domogeek.entropialux.com/tempoedf/now)
if [ $tempo = "bleu" ]; then
curl "http://192.168.1.2:8084/json.htm?type=command&param=switchlight&idx=16&switchcmd="On"&level=0"
else
curl "http://192.168.1.2:8084/json.htm?type=command&param=switchlight&idx=16&switchcmd="Off"&level=0"
fi
Voici le retour à l’exécution:

Code : Tout sélectionner

sudo bash edftempo.sh   edftempo.sh: line 7: syntax error near unexpected token `fi'
edftempo.sh: line 7: `fi'

Voici le code pour mon fichier recupedf.sh:

Code : Tout sélectionner

#!/bin/bash
tempo=$(curl -s "http://domogeek.entropialux.com/tempoedf/now")
curl "http://192.168.1.2:8084/json.htm?type=command&param=udevice&idx=16&svalue=$tempo"
Voici le retour à l'exécution:

Code : Tout sélectionner

sudo bash recupedf.sh   curl: (3) Illegal characters found in URL
J'ai tenté de travailler dessus mais je tourne en rond. Sinon pour l’exécution avec ./, cela ne fonctionne toujours pas malgré l'ajout d'un chmod 777 sur mes fichiers.

Merci pour vos retours et votre aide.
Doume
Messages : 550
Inscription : 28 déc. 2014, 10:27
Localisation : Nord (59)
Contact :

Re: Besoin d'aide Script EDF Tempo

Message par Doume »

Dans une string encadrée par des " , tu ne peux pas avoir d'autre chaine elle-même encadrée de " :

Code : Tout sélectionner

curl "http://192.168.1.2:8084/json.htm?type=command&param=switchlight&idx=16&switchcmd="Off"&level=0"
tu vois que le mot Off a des quotes : il faut les rendre 'transparentes' :
curl "http://192.168.1.2:8084/json.htm?type=c ... \"&level=0"

Dans ton dernier exemple, il est probable que la variable tempo contient aussi des quotes....
mjeanne
Messages : 13
Inscription : 26 janv. 2017, 16:20

Re: Besoin d'aide Script EDF Tempo

Message par mjeanne »

Bonjour,

votre test va échouer, car "bleu" est retourné en majuscules et vous comparez avec une valeur minuscule.

Testez cette version:

Code : Tout sélectionner

#!/bin/bash
tempo=$(curl -s "http://domogeek.entropialux.com/tempoedf/now")
if [ $tempo = "BLEU" ]; then
echo "bleu"
curl "http://192.168.1.2:8084/json.htm?type=command&param=switchlight&idx=16&switchcmd=On"
else
echo "pas bleu"
curl "http://192.168.1.2:8084/json.htm?type=command&param=switchlight&idx=16&switchcmd=Off"
fi
Si vous éditez depuis windows, attention de bien sauver le script au format unix
D'autre part, si Domoticz est aussi installé sur votre synology, utilisez l'IP 127.0.0.1
damdam78
Messages : 6
Inscription : 09 févr. 2017, 22:29

Re: Besoin d'aide Script EDF Tempo

Message par damdam78 »

Merci pour vos retour.

Je testerai tous cela demain. Par contre je souhaiterai avoir plus d'infos sur l'adresse IP. Êtes vous sur qu'il faut utiliser l'adresse IP. J'ai justement eu un doute là dessus sachant qu'effectivement l'adresse IP 127.0.0.1 est une IP de rebouclage.

Je vais essayer cela et vous tiens informé. En tous cas merci à vous pour votre aide.
damdam78
Messages : 6
Inscription : 09 févr. 2017, 22:29

Re: Besoin d'aide Script EDF Tempo

Message par damdam78 »

Bonjour à vous,

Je viens de tester tous cela.

J'ai essayé vos deux solutions mais rien de change.

Pour la deuxieme solution, j'ai crée un nouveau fichier nommé testedf.sh

Voici le code:

Code : Tout sélectionner

#!/bin/bash
tempo=$(curl -s "http://domogeek.entropialux.com/tempoedf/now")
if [ $tempo = "BLEU" ]; then
echo "bleu"
curl "http://192.168.1.2:8084/json.htm?type=command&param=switchlight&idx=19&switchcmd=On"
else
echo "pas bleu"
curl "http://192.168.1.2:8084/json.htm?type=command&param=switchlight&idx=19&switchcmd=Off"
fi
Voici chaque retour avec deux commandes lancées:

Code : Tout sélectionner

Damien@Syno-Damien:/usr/local/domoticz/var/scripts/ssh$ ./testedf.sh
-sh: ./testedf.sh: /bin/bash^M: bad interpreter: No such file or directory

Code : Tout sélectionner

Damien@Syno-Damien:/usr/local/domoticz/var/scripts/ssh$ bash testedf.sh         
testedf.sh: line 10: syntax error: unexpected end of file
Cela n'a pas modifier mon problème. J'ai essayé aussi en modifiant mon IP du Syno mais idem. Pourtant quand je copie le texte intégré au curl dans mon navigateur, je vois bien mon interrupteur IDX19 changé d'état. Après je l'exécute sous putty mais j'ai les erreurs ci dessus.

Je suis dépassé. Dur dur de ce lancer dans la programmation...
Doume
Messages : 550
Inscription : 28 déc. 2014, 10:27
Localisation : Nord (59)
Contact :

Re: Besoin d'aide Script EDF Tempo

Message par Doume »

La première erreur citée est dûe au fait que ton script est au format Dos, au lieu d'être au format Unix !

C'est la présence des ^M en fin de ligne qui pose problème

Tu peux essayer de lancer la commande :
dos2unix nom_du_script

pour convertir le fichier d'un format dans l'autre

La seconde peut être une conséquence du même type de problème
Répondre