J'ai fait un tuto permettant de contrôler sa freebox avec google home, jusque la tout va bien, sauf que mon script lua est trop gros et du coup pas facile à gérer lorsqu'on veut le modifier.
Pour faire simple, je lance une commande vocale par le biais d'ifttt, qui alimente une uservariable "freebox" dans domoticz, exemple de valeur "tf 1", puis le script lua va reconnaitre la valeur "tf 1" et me lancer un script sh (chg_chaine.sh) avec la valeur de la uservariable "freebox", qui aura été transmise à la variable "ifttt", une fonction "si" va me convertir "tf 1" en "0 0 1", ce qui déclanchera le script chg_chaine avec comme argument 0 0 1.
Code : Tout sélectionner
if ifttt=="tf 1" or ifttt=="la 1" then
chaine="0 0 1"
os.execute('/home/'..nom..'/domoticz/scripts/chg_chaine.sh '..chaine)Mon autre script lua
Code : Tout sélectionner
commandArray = {}
nom="osmc"
ip="xxxxxx"
port="8080"
ifttt=uservariables["freebox"]
ifttt=string.lower(ifttt)
print("valeur d'ifttt au début du script : "..ifttt)
if ifttt=="vide" or ifttt== nil then
print("sortie du script")
return commandArray
else
print("lancement du script freebox.sh avec ifttt = "..ifttt)
os.execute('/home/'..nom..'/domoticz/scripts/freebox.sh '..ifttt)
end
raz="vide"
commandArray['Variable:freebox']=''..raz
return commandArrayMais rien ne se passe quand je le lance et je ne sais pas comment je peux déboguer pour voir d'ou vient le problème, sachant que lorsque je lance mon script
Code : Tout sélectionner
freebox.sh tf 1freebox.sh
Code : Tout sélectionner
#!/bin/bash
#########################declaration des variables#################################
ifttt="" #remise à zero d'ifttt
chaine="sh /home/"$USER"/domoticz/scripts/chg_chaine.sh"
touche="sh /home/"$USER"/domoticz/scripts/chg_touche.sh"
########################Recuperation de la valeur d'ifttt##########################
case $# in
1) ifttt="$1";;
2) ifttt="$1 $2";;
3) ifttt="$1 $2 $3";;
4) ifttt="$1 $2 $3 $4";;
5) ifttt="$1 $2 $3 $4 $5";;
6) ifttt="$1 $2 $3 $4 $5 $6";;
7) ifttt="$1 $2 $3 $4 $5 $6 $7";;
8) ifttt="$1 $2 $3 $4 $5 $6 $7 $8";;
9) ifttt="$1 $2 $3 $4 $5 $6 $7 $8 $9";;
esac
######################################Changement de chaines######################################################
case "$ifttt" in
# Par nom de chaine
"tf 1") $chaine 0 0 1;;
"france 2") $chaine 0 0 2;;
"france 3") $chaine 0 0 3;;
"canal plus") $chaine 0 0 4;;
"france 5") $chaine 0 0 5;;
"m 6") $chaine 0 0 6;;
"arte") $chaine 0 0 7;;
"c 8") $chaine 0 0 8;;
"w 9") $chaine 0 0 9;;
"tmc") $chaine 0 1 0;;
"nt1") $chaine 0 1 1;;
"nrj 12") $chaine 0 1 2;;
"lcp") $chaine 0 1 3;;
"france 4") $chaine 0 1 4;;
"bfm") $chaine 0 1 5;;
"cnews") $chaine 0 1 6;;
"cstar") $chaine 0 1 7;;
"gulli") $chaine 0 1 8;;
"france haut") $chaine 0 1 9;;
"hd 1") $chaine 0 2 0;;
"lquipe") $chaine 0 2 1;;
"6 ter") $chaine 0 2 2;;
"numro 23") $chaine 0 2 3;;
"rmc") $chaine 0 2 4;;
# Par numéro de chaine
"la 1") $chaine 0 0 1;;
"la 2") $chaine 0 0 2;;
"la 3") $chaine 0 0 3;;
"la 4") $chaine 0 0 4;;
"la 5") $chaine 0 0 5;;
"la 6") $chaine 0 0 6;;
"la 7") $chaine 0 0 7;;
"la 8") $chaine 0 0 8;;
"la 9") $chaine 0 0 9;;
"la 10") $chaine 0 1 0;;
"la 11") $chaine 0 1 1;;
"la 12") $chaine 0 1 2;;
"la 13") $chaine 0 1 3;;
"la 14") $chaine 0 1 4;;
"la 15") $chaine 0 1 5;;
"la 16") $chaine 0 1 6;;
"la 17") $chaine 0 1 7;;
"la 18") $chaine 0 1 8;;
"la 19") $chaine 0 1 9;;
"la 20") $chaine 0 2 0;;
"la 21") $chaine 0 2 1;;
"la 22") $chaine 0 2 2;;
"la 23") $chaine 0 2 3;;
"la 24") $chaine 0 2 4;;
######################################Appuie sur une touche######################################################
esac
exit 0
Code : Tout sélectionner
os.execute('/home/'..nom..'/domoticz/scripts/freebox.sh '..ifttt)Code : Tout sélectionner
test="tf 1"
os.execute('/home/'..nom..'/domoticz/scripts/chg_chaine.sh '..test)C'est comme si le script freebox.sh ne recevait pas l'argument du script freebox.lua, alors que sur le script chg_chaine.sh celui-ci le recoit bien ...
Je sèche complet...
Merci de vos lumières