[Tuto] Contrôler son décodeur Livebox avec Ghome mini
Publié : 05 déc. 2017, 20:49
Bonjour à tous.
Voici un petit tuto pour controler le décodeur de la livebox avec google home et domoticz.
Vous pourrez allumer/éteindre,changer de chaines,accéder au menu...
J'utilise IFTTT pour envoyer les commandes vocale en Json.
Vous trouverez ici un très bon tuto pour vous aider : https://easydomoticz.com/forum/viewtopi ... ilit=ifttt.
Cliquez sur "+ this" (en bleu)
vous tapez "google assistant", une fois l'icone de google assistant apparue, cliquez dessus
Sur cet écran on vous demande de choisir un "trigger" (ce qui va déclancher google home), pour mon tuto il en faudra 2,
- "say a phrase with a number"
- "say a phrase with a text ingredient"
Pourquoi 2 ? simplement pour pouvoir demander de zapper sur la 24 ou zapper sur RMC, l'un est considéré comme un chiffre (booléen) et le second comme une phrase (string)
Commencons par celui avec le chiffre, on clique sur "say a phrase with a number"
un formulaire apparait :
What do you want to say
Dans cette case on indique ce que l'on dira à google home pour déclancher l'action, on peut mettre pratiquement ce que l'on veut mais certains mots sont réservé comme "chaine" donc attention, moi j'utilise (sans les guillemets : "mets la #" (le # est très important car il remplace le chiffre que vous allez dire (on va pas faire un applet par chaine
)
Les deux cases suivantes permettent de mettre d'autre variantes de votre phrase, exemple zappe sur la # (on oubli pas le #)
what do you want the assistant to say in response
on indique ce que dira google lorsqu'il entendra la commande, j'ai mis : ok, je zappe sur la # (google va repeter le chiffre de votre chaine grace au #)
language, choisir french et cliquer sur create trigger.
Cliquez sur +That
rechercher webhooks et cliquer dessus, une case bleue apparait "make a web request", cliquer dessus.
Première case URL :
c'est ici que l'on va mettre la commande json, ne pas utiliser l'adresse ip local.
Notre commande va permettre de renseigner une variable sur domoticz (afin de récupérer le numéro de la chaine)
updateuservariable&id=1 --> correspond à l'idx de votre variable, ici 1, je n'en ai pas d'autres.
vname=livebox --> le nom de la variable (ne pas le modifier si vous ne savez pas ce que vous faites).
Type=2 pour indiquer le type de variable 1 pour les chiffres et 2 pour les phrases (oui j'utilise 2, ca me facilite mes scripts).
value={{NumberField}} la valeur que l'on va donner à la variable (le chiffre de la chaine que l'on viens de demander à google).
pour vérifier votre lien vous pourrez le copier dans un navigateur, en remplacent <<<{{NumberField}}>>> par une valeur ou un ordre.
biensur pour cela il faut avoir paramètrer domoticz (cf: plus bas)
Case Method : GET
Content Type (optional): application/json
cliquez sur Save et voilà.
On passe au second, c'est la même chose mais on va choisir l'applet say a phrase with a text ingredient.
on clique sur +this et on recherche google assistant.
premier écran, on remet la même chose que tout à l'heure mais on remplace le # par un $ (# pour les chiffres, $ pour les mots)
on clique sur create a trigger.
on clique sur +That, on recherche webhooks.
Dans URL on remet la même chose, mais on remplace {{NumberField}} par {{TextField}} :
Content Type (optional): application/json
On sauvegarde.
Voilà terminé pour IFTTT.
Du côté de domoticz maintenant :
on va créer la variable qui permet de recevoir le chiffre ou la phrase que vous avez demandez à google pour changer de chaine
Cliquez sur Réglages | plus d'options | variables utilisateur
Dans le champ Nom de la variable, mettre : livebox
Type de variable : Chaîne
cliquer sur Ajouter, votre variable apparait dans le tableau du dessus. (on y est presque)
Voilà tout est prêt, ne reste plus qu'à ajouter le script.
J'ai fait un script lua (optimisable surement, je ne suis pas dev
)
sur votre RPI ou pc où se trouve votre serveur domoticz, allez dans le répertoire /domoticz/scripts/lua
Et à l'intérieur de celui-ci, coller le code ci-dessous :
Edit : Script du 05/12
Modifier en fonction de votre systeme la variable "user" en remplaçant "pi" par autre chose, qui correspond au répertoire après /home/
ON NE TOUCHE PAS AUX AUTRES ! (sauf si vous savez ce que vous faites;))
Pour vérifier le contenu de la variable "livebox", j'ai mis en commentaire la ligne commandArray['Variable:livebox']=''..raz en mettant -- devant la ligne, sinon la variable se remet à "vide" automatiquement.
Ensuite on va créer un script intermédiaire entre script_variable_livebox.lua et chg_chaine.sh ou chg_touche.sh
Donc dans le répertoire ~/home/user/domoticz/scripts, on créer le fichier livebox.sh
On modifie si besoin comme tout à l'heure la variable user.
Comme vous le voyez, ce script appel deux autre script "chg_chaine.sh" et "chg_touche.sh"
Dans le répertoire domoticz/scripts, créer un fichier chg_chaine.sh
On refait la même chose mais ce coup-ci on crée le fichier chg_touche.sh
On enregistre et on oubli pas de rendre le script executable :
Voilà,vous pouvez demander à google de changer de chaine,augmenter le son, éteindre le décodeur....
J'ai pu réaliser ce tuto grâce à loteran et ces informations:
vu sur internet:
EDIT 28/12/17:
J'ai finalement réussi à créer un capteur virtuel de type texte, qui m'indique si la livebox est en arret ou en marche et sur quelle chaîne.
Voici donc le script Lua:
Je voudrais afficher la chaine en cours mais n'étant qu'un amateur en programmation, je n'arrive pas à transcrire le code fournit par "chaine".
Je connais les correspondances qui sont ainsi:
Voici un petit tuto pour controler le décodeur de la livebox avec google home et domoticz.
Vous pourrez allumer/éteindre,changer de chaines,accéder au menu...
J'utilise IFTTT pour envoyer les commandes vocale en Json.
Vous trouverez ici un très bon tuto pour vous aider : https://easydomoticz.com/forum/viewtopi ... ilit=ifttt.
Cliquez sur "+ this" (en bleu)
vous tapez "google assistant", une fois l'icone de google assistant apparue, cliquez dessus
Sur cet écran on vous demande de choisir un "trigger" (ce qui va déclancher google home), pour mon tuto il en faudra 2,
- "say a phrase with a number"
- "say a phrase with a text ingredient"
Pourquoi 2 ? simplement pour pouvoir demander de zapper sur la 24 ou zapper sur RMC, l'un est considéré comme un chiffre (booléen) et le second comme une phrase (string)
Commencons par celui avec le chiffre, on clique sur "say a phrase with a number"
un formulaire apparait :
What do you want to say
Dans cette case on indique ce que l'on dira à google home pour déclancher l'action, on peut mettre pratiquement ce que l'on veut mais certains mots sont réservé comme "chaine" donc attention, moi j'utilise (sans les guillemets : "mets la #" (le # est très important car il remplace le chiffre que vous allez dire (on va pas faire un applet par chaine
Les deux cases suivantes permettent de mettre d'autre variantes de votre phrase, exemple zappe sur la # (on oubli pas le #)
what do you want the assistant to say in response
on indique ce que dira google lorsqu'il entendra la commande, j'ai mis : ok, je zappe sur la # (google va repeter le chiffre de votre chaine grace au #)
language, choisir french et cliquer sur create trigger.
Cliquez sur +That
rechercher webhooks et cliquer dessus, une case bleue apparait "make a web request", cliquer dessus.
Première case URL :
c'est ici que l'on va mettre la commande json, ne pas utiliser l'adresse ip local.
Notre commande va permettre de renseigner une variable sur domoticz (afin de récupérer le numéro de la chaine)
user:mdp -->identifiant et mot de passe de domoticz.http://user:mdp@IP externe:PORT/json.htm?type=command¶m=updateuservariable&id=1&vname=livebox&vtype=2&vvalue=<<<{{NumberField}}>>>
updateuservariable&id=1 --> correspond à l'idx de votre variable, ici 1, je n'en ai pas d'autres.
vname=livebox --> le nom de la variable (ne pas le modifier si vous ne savez pas ce que vous faites).
Type=2 pour indiquer le type de variable 1 pour les chiffres et 2 pour les phrases (oui j'utilise 2, ca me facilite mes scripts).
value={{NumberField}} la valeur que l'on va donner à la variable (le chiffre de la chaine que l'on viens de demander à google).
pour vérifier votre lien vous pourrez le copier dans un navigateur, en remplacent <<<{{NumberField}}>>> par une valeur ou un ordre.
biensur pour cela il faut avoir paramètrer domoticz (cf: plus bas)
Case Method : GET
Content Type (optional): application/json
cliquez sur Save et voilà.
On passe au second, c'est la même chose mais on va choisir l'applet say a phrase with a text ingredient.
on clique sur +this et on recherche google assistant.
premier écran, on remet la même chose que tout à l'heure mais on remplace le # par un $ (# pour les chiffres, $ pour les mots)
on clique sur create a trigger.
on clique sur +That, on recherche webhooks.
Dans URL on remet la même chose, mais on remplace {{NumberField}} par {{TextField}} :
Case Method : GEThttp://user:mdp@IP externe:PORT/json.htm?type=command¶m=updateuservariable&id=1&vname=freebox&vtype=2&vvalue=<<<{{TextField}}>>>
Content Type (optional): application/json
On sauvegarde.
Voilà terminé pour IFTTT.
Du côté de domoticz maintenant :
on va créer la variable qui permet de recevoir le chiffre ou la phrase que vous avez demandez à google pour changer de chaine
Cliquez sur Réglages | plus d'options | variables utilisateur
Dans le champ Nom de la variable, mettre : livebox
Type de variable : Chaîne
cliquer sur Ajouter, votre variable apparait dans le tableau du dessus. (on y est presque)
Voilà tout est prêt, ne reste plus qu'à ajouter le script.
J'ai fait un script lua (optimisable surement, je ne suis pas dev
sur votre RPI ou pc où se trouve votre serveur domoticz, allez dans le répertoire /domoticz/scripts/lua
Créer un script lua dans lequel vous allez mettre le code plus bas.cd ~/home/user/domoticz/scripts/lua
(le nom doit absolument commencer par script_variable et finir en .lua, cela permet à domoticz de lancer le script quand la variable livebox change, en gros quand on demande à google de zapper)Sudo nano script_variable_livebox.lua
Et à l'intérieur de celui-ci, coller le code ci-dessous :
Edit : Script du 05/12
Modifier en fonction de votre systeme la variable "user" en remplaçant "pi" par autre chose, qui correspond au répertoire après /home/
ON NE TOUCHE PAS AUX AUTRES ! (sauf si vous savez ce que vous faites;))
Code : Tout sélectionner
commandArray = {}
user="pi"
ifttt=uservariables["livebox"]
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 livebox.sh avec ifttt = "..ifttt)
os.execute('/home/user/domoticz/scripts/livebox.sh '..ifttt)
end
raz="vide"
--commandArray['Variable:livebox']=''..raz
return commandArrayEnsuite on va créer un script intermédiaire entre script_variable_livebox.lua et chg_chaine.sh ou chg_touche.sh
Donc dans le répertoire ~/home/user/domoticz/scripts, on créer le fichier livebox.sh
On modifie si besoin comme tout à l'heure la variable user.
Code : Tout sélectionner
#!/bin/bash
#livebox.sh
#########################declaration des variables#################################
user="pi"
ifttt="" #remise à zéro 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
case $ifttt in
###########################Appuie sur une touche########################################
"marche") $touche 116;;
"arret") $touche 116;;
"monte le son") $touche 115;;
"baisse le son") $touche 114;;
"ok") $touche 352;;
"suivante") $touche 402;;
"précédente") $touche 403;;
"coupe le son") $touche 113;;
"remets le son de la") $touche 113;;
"fait une pause sur la") $touche 164;;
"remets lecture sur la") $touche 164;;
"lecture sur la livebox") $touche 164;;
"appuie sur haut sur la") $touche 103;;
"appuie sur bas sur la") $touche 108;;
"appuie sur droite sur la") $touche 116;;
"appuie sur gauche sur la") $touche 105;;
"appuie sur retour sur la") $touche 158;;
"appuie sur ok sur la") $touche 352;;
"menu") $touche 139;;
#############################Changement de chaines######################################
# Par nom de chaine
"tf 1") $chaine 512 512 513;;
"france 2") $chaine 512 512 514;;
"france 3") $chaine 512 512 515;;
"canal plus") $chaine 512 512 516;;
"france 5") $chaine 512 512 517;;
"m 6") $chaine 512 512 518;;
"arte") $chaine 512 512 519;;
"c 8") $chaine 512 512 520;;
"w 9") $chaine 512 512 521;;
"tmc") $chaine 512 513 512;;
"nt1") $chaine 512 513 513;;
"nrj 12") $chaine 512 513 514;;
"lcp") $chaine 512 513 515;;
"france 4") $chaine 512 513 516;;
"bfm") $chaine 512 513 517;;
"cnews") $chaine 512 513 518;;
"cstar") $chaine 512 513 519;;
"gulli") $chaine 512 513 520;;
"France Ô") $chaine 512 513 521;;
"hd 1") $chaine 512 514 512;;
"l ' équipe") $chaine 512 514 513;;
"sister") $chaine 512 514 514;;
"numro 23") $chaine 0 2 3;;
"rmc") $chaine 0 2 4;;
# Par numéro de chaine
"1") $chaine 512 512 513;;
"2") $chaine 512 512 514;;
"3") $chaine 512 512 515;;
"4") $chaine 512 512 516;;
"5") $chaine 512 512 517;;
"6") $chaine 512 512 518;;
"7") $chaine 512 512 519;;
"8") $chaine 512 512 520;;
"9") $chaine 512 512 521;;
"10") $chaine 512 513 512;;
"11") $chaine 512 513 513;;
"12") $chaine 512 513 514;;
"13") $chaine 512 513 515;;
"14") $chaine 512 513 516;;
"15") $chaine 512 513 517;;
"16") $chaine 512 513 518;;
"17") $chaine 512 513 519;;
"18") $chaine 512 513 520;;
"19") $chaine 512 513 521;;
"20") $chaine 512 514 512;;
"21") $chaine 512 514 513;;
"22") $chaine 512 514 514;;
"23") $chaine 512 514 515;;
"24") $chaine 512 514 516;;
"25") $chaine 512 514 517;;
"26") $chaine 512 514 518;;
"27") $chaine 512 514 519;;
"28") $chaine 512 514 520;;
"29") $chaine 512 514 521;;
"30") $chaine 512 515 512;;
"31") $chaine 512 515 513;;
"32") $chaine 512 515 514;;
"33") $chaine 512 515 515;;
"34") $chaine 512 515 516;;
"35") $chaine 512 515 517;;
"36") $chaine 512 515 518;;
"37") $chaine 512 515 519;;
"38") $chaine 512 515 520;;
"39") $chaine 512 515 521;;
"40") $chaine 512 516 512;;
"41") $chaine 512 516 513;;
"42") $chaine 512 516 514;;
"43") $chaine 512 516 515;;
"44") $chaine 512 516 516;;
"45") $chaine 512 516 517;;
"46") $chaine 512 516 518;;
"47") $chaine 512 516 519;;
"48") $chaine 512 516 520;;
"49") $chaine 512 516 521;;
"50") $chaine 512 517 512;;
"51") $chaine 512 517 513;;
"52") $chaine 512 517 514;;
"53") $chaine 512 517 515;;
"54") $chaine 512 517 516;;
"55") $chaine 512 517 517;;
"56") $chaine 512 517 518;;
"57") $chaine 512 517 519;;
"58") $chaine 512 517 520;;
"59") $chaine 512 517 521;;
"60") $chaine 512 518 512;;
"61") $chaine 512 518 513;;
"62") $chaine 512 518 514;;
"63") $chaine 512 518 515;;
"64") $chaine 512 518 516;;
"65") $chaine 512 518 517;;
"66") $chaine 512 518 518;;
"67") $chaine 512 518 519;;
"68") $chaine 512 518 520;;
"69") $chaine 512 518 521;;
"70") $chaine 512 519 512;;
"71") $chaine 512 519 513;;
"72") $chaine 512 519 514;;
"73") $chaine 512 519 515;;
"74") $chaine 512 519 516;;
"75") $chaine 512 519 517;;
"76") $chaine 512 519 518;;
"77") $chaine 512 519 519;;
"78") $chaine 512 519 520;;
"79") $chaine 512 519 521;;
"80") $chaine 512 520 512;;
"81") $chaine 512 520 513;;
"82") $chaine 512 520 514;;
"83") $chaine 512 520 515;;
"84") $chaine 512 520 516;;
"85") $chaine 512 520 517;;
"86") $chaine 512 520 518;;
"87") $chaine 512 520 519;;
"88") $chaine 512 520 520;;
"89") $chaine 512 520 521;;
"90") $chaine 512 521 512;;
"91") $chaine 512 521 513;;
"92") $chaine 512 521 514;;
"93") $chaine 512 521 515;;
"94") $chaine 512 521 516;;
"95") $chaine 512 521 517;;
"96") $chaine 512 521 518;;
"97") $chaine 512 521 519;;
"98") $chaine 512 521 520;;
"99") $chaine 512 521 521;;
"100") $chaine 513 512 512;;
"101") $chaine 513 512 513;;
"102") $chaine 513 512 514;;
"103") $chaine 513 512 515;;
"104") $chaine 513 512 516;;
"105") $chaine 513 512 517;;
"106") $chaine 513 512 518;;
"107") $chaine 513 512 519;;
"108") $chaine 513 512 520;;
"109") $chaine 513 512 521;;
"110") $chaine 513 513 512;;
"111") $chaine 513 513 513;;
"112") $chaine 513 513 514;;
"113") $chaine 513 513 515;;
"114") $chaine 513 513 516;;
"115") $chaine 513 513 517;;
"116") $chaine 513 513 518;;
"117") $chaine 513 513 519;;
"118") $chaine 513 513 520;;
"119") $chaine 513 513 521;;
"120") $chaine 513 514 512;;
"121") $chaine 513 514 513;;
"122") $chaine 513 514 514;;
"123") $chaine 513 514 515;;
"124") $chaine 513 514 516;;
"125") $chaine 513 514 517;;
"126") $chaine 513 514 518;;
"127") $chaine 513 514 519;;
"128") $chaine 513 514 520;;
"129") $chaine 513 514 521;;
"130") $chaine 513 515 512;;
"131") $chaine 513 515 513;;
"132") $chaine 513 515 514;;
"133") $chaine 513 515 515;;
"134") $chaine 513 515 516;;
"135") $chaine 513 515 517;;
"136") $chaine 513 515 518;;
"137") $chaine 513 515 519;;
"138") $chaine 513 515 520;;
"139") $chaine 513 515 521;;
"140") $chaine 513 516 512;;
"141") $chaine 513 516 513;;
"142") $chaine 513 516 514;;
"143") $chaine 513 516 515;;
"144") $chaine 513 516 516;;
"145") $chaine 513 516 517;;
"146") $chaine 513 516 518;;
"147") $chaine 513 516 519;;
"148") $chaine 513 516 520;;
"149") $chaine 513 516 521;;
"150") $chaine 513 517 522;;
"151") $chaine 513 517 513;;
"152") $chaine 513 517 514;;
"153") $chaine 513 517 515;;
"154") $chaine 513 517 516;;
"155") $chaine 513 517 517;;
"156") $chaine 513 517 518;;
"157") $chaine 513 517 519;;
"158") $chaine 513 517 520;;
"159") $chaine 513 517 521;;
"160") $chaine 513 518 512;;
"161") $chaine 513 518 513;;
"162") $chaine 513 518 514;;
"163") $chaine 513 518 515;;
"164") $chaine 513 518 516;;
"165") $chaine 513 518 517;;
"166") $chaine 513 518 518;;
"167") $chaine 513 518 519;;
"168") $chaine 513 518 520;;
"169") $chaine 513 518 521;;
"170") $chaine 513 519 512;;
"171") $chaine 513 519 513;;
"172") $chaine 513 519 514;;
"173") $chaine 513 519 515;;
"174") $chaine 513 519 516;;
"175") $chaine 513 519 517;;
"176") $chaine 513 519 518;;
"177") $chaine 513 519 519;;
"178") $chaine 513 519 520;;
"179") $chaine 513 519 521;;
"180") $chaine 513 520 512;;
"181") $chaine 513 520 513;;
"182") $chaine 513 520 514;;
"183") $chaine 513 520 515;;
"184") $chaine 513 520 516;;
"185") $chaine 513 520 517;;
"186") $chaine 513 520 518;;
"187") $chaine 513 520 519;;
"188") $chaine 513 520 520;;
"189") $chaine 513 520 521;;
"190") $chaine 513 521 512;;
"191") $chaine 513 521 513;;
"192") $chaine 513 521 514;;
"193") $chaine 513 521 515;;
"194") $chaine 513 521 516;;
"195") $chaine 513 521 517;;
"196") $chaine 513 521 518;;
"197") $chaine 513 521 519;;
"198") $chaine 513 521 520;;
"199") $chaine 513 521 521;;
esac
exit 0Depuis un navigateur vous pouvez taper la commande suivantesudo chmod +x ~/domoticz/scripts/livebox.sh
on obtiens un résultat du type :
Donc dans mon exemple, la variable livebox prend la valeur "6" vous pouvez ainsi vérifier la commande reçu de Ghome au travers d'IFTTT, vous pouvez ainsi adapter l'orthographe des ordres suivant ce que google comprend.{
"result" : [
{
"LastUpdate" : "2017-12-03 19:22:56",
"Name" : "livebox",
"Type" : "2",
"Value" : "6",
"idx" : "1"
}
],
"status" : "OK",
"title" : "GetUserVariables"
}
Comme vous le voyez, ce script appel deux autre script "chg_chaine.sh" et "chg_touche.sh"
Dans le répertoire domoticz/scripts, créer un fichier chg_chaine.sh
coller le code ci-dessous à l'intérieur : (modifier le numéro de télécommande par la votre)sudo nano ~/domoticz/scripts/chg_chaine.sh
Code : Tout sélectionner
#!/bin/bash
#chg_chaine
centaine=$1
dizaine=$2
unite=$3
sudo curl "http://192.168.1.10:8080/remoteControl/cmd?operation=01&key=$centaine&mode=1"
sudo curl "http://192.168.1.10:8080/remoteControl/cmd?operation=01&key=$centaine&mode=2"
sudo curl "http://192.168.1.10:8080/remoteControl/cmd?operation=01&key=$dizaine&mode=1"
sudo curl "http://192.168.1.10:8080/remoteControl/cmd?operation=01&key=$dizaine&mode=2"
sudo curl "http://192.168.1.10:8080/remoteControl/cmd?operation=01&key=$unite&mode=0"On refait la même chose mais ce coup-ci on crée le fichier chg_touche.sh
Code : Tout sélectionner
#!/bin/bash
#chg_touche
code=$1
sudo curl "http://192.168.1.10:8080/remoteControl/cmd?operation=01&key=$code&mode=0"On enregistre et on oubli pas de rendre le script executable :
sudo chmod +x ~/domoticz/scripts/chg_touche.sh
Voilà,vous pouvez demander à google de changer de chaine,augmenter le son, éteindre le décodeur....
J'ai pu réaliser ce tuto grâce à loteran et ces informations:
vu sur internet:
- pour l'état du décodeur:
http://192.168.1.xx:8080/remoteControl/cmd?operation=10
- Les autres commandes ont la forme:
http://ip_livebox_tv:8080/remoteControl/cmd?
operation=01&key=code_touche&mode=numéro_mode
Code : Tout sélectionner
numéro_mode :
0 : envoi unique de touche
1 : appui prolongé de touche
2 : relacher la touche après un appui prolongé
code_touche :
116 : ON/OFF
512 : 0
513 : 1
514 : 2
515 : 3
516 : 4
517 : 5
518 : 6
519 : 7
520 : 8
521 : 9
402 : CH+
403 : CH-
115 : VOL+
114 : VOL-
113 : MUTE
103 : UP
108 : DOWN
105 : LEFT
116 : RIGHT
352 : OK
158 : BACK
139 : MENU
164 : PLAY/PAUSE
168 : FBWD
159 : FFWD
167 : REC
393 : VOD
J'ai finalement réussi à créer un capteur virtuel de type texte, qui m'indique si la livebox est en arret ou en marche et sur quelle chaîne.
Voici donc le script Lua:
Code : Tout sélectionner
--script_time_etatlivebox.lua
commandArray = {}
json = (loadfile "/home/pi/domoticz/scripts/lua/JSON.lua")() -- For Linux
---------Capteur de type texte pour afficher l'etat et la chaine de la livebox--------------
idx = '20'
---------Lecture du json de la livebox-------------
local config = assert(io.popen('/usr/bin/curl "http://192.168.1.10:8080/remoteControl/cmd?operation=10"'))
local blocjson = config:read('*all')
config:close()
local jsonValeur = json:decode(blocjson)
---------Lecture de valeur indiquant l'état du décodeur----------
local etat = jsonValeur.result.data.activeStandbyState
print(etat)
--------Verification livebox Eteinte ou Allumée-------
if etat == '1' then
commandArray[#commandArray+1]={['UpdateDevice'] = idx..'|0|'..'Arret' }
end
if etat == '0' then
chaine = jsonValeur.result.data.playedMediaId
print(chaine)
livebox = 'Marche'..' sur  '..chaine
commandArray[#commandArray+1]={['UpdateDevice'] = idx..'|0|'.. tostring(livebox)}
end
return commandArrayJe voudrais afficher la chaine en cours mais n'étant qu'un amateur en programmation, je n'arrive pas à transcrire le code fournit par "chaine".
Je connais les correspondances qui sont ainsi:
Donc si une personne peut m'aider sur ce point, j'en serait ravi!TF1 = 192
France 2 = 4
France 3 = 80
Canal+ = 34
France 5 = 47
M6 = 118
ARTE = 111
C8 = 445
W9 = 119
TMC = 195
NT1 = 446
NRJ 12 = 444
LCP = 234
France 4 = 78
BFM = 481
Cnews = 226
Cstar = 458
Gulli = 482
France ô = 160
HD1 = 1404
L'équipe = 1401
6Ter = 1403
Numéro 23 = 1402
RMC = 1400
France info = 1399