[Tuto] Contrôler son décodeur Livebox avec Ghome mini

Vous avez créé un script LUA dont vous êtes fier, un .sh génial, un programme Python hors du commun, un Tuto, c'est ici que vous pouvez les partager.
mimich25
Messages : 7
Inscription : 03 déc. 2017, 19:10

[Tuto] Contrôler son décodeur Livebox avec Ghome mini

Message par mimich25 »

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)
http://user:mdp@IP externe:PORT/json.htm?type=command&param=updateuservariable&id=1&vname=livebox&vtype=2&vvalue=<<<{{NumberField}}>>>
user:mdp -->identifiant et mot de passe de domoticz.
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}} :
http://user:mdp@IP externe:PORT/json.htm?type=command&param=updateuservariable&id=1&vname=freebox&vtype=2&vvalue=<<<{{TextField}}>>>
Case Method : GET
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
cd ~/home/user/domoticz/scripts/lua
Créer un script lua dans lequel vous allez mettre le code plus bas.
Sudo nano script_variable_livebox.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)

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 commandArray
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.

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 0



sudo chmod +x ~/domoticz/scripts/livebox.sh
Depuis un navigateur vous pouvez taper la commande suivante
on obtiens un résultat du type :
{
"result" : [
{
"LastUpdate" : "2017-12-03 19:22:56",
"Name" : "livebox",
"Type" : "2",
"Value" : "6",
"idx" : "1"
}
],
"status" : "OK",
"title" : "GetUserVariables"
}
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.


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

sudo nano ~/domoticz/scripts/chg_chaine.sh
coller le code ci-dessous à l'intérieur : (modifier le numéro de télécommande par la votre)

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:
  • 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
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:

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'..'&nbspsur&nbsp '..chaine
    commandArray[#commandArray+1]={['UpdateDevice'] = idx..'|0|'.. tostring(livebox)}
    end
return commandArray

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:
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
Donc si une personne peut m'aider sur ce point, j'en serait ravi!
Dernière modification par mimich25 le 28 déc. 2017, 16:21, modifié 1 fois.
loteran
Messages : 59
Inscription : 29 oct. 2017, 18:59

Re: Contrôler son décodeur Livebox avec Ghome mini

Message par loteran »

Pas de soucis ;) au contraire,un ami voulais que je lui fasse pour sa licebox, donc pas besoin de moi emonter, je vais reprendre tes modifs ;)

Pour le état prends exemple sur mon tutoriels à la fin du premier poste, avec nmap, faut juste trouver le port quinclus sur ouvre ou se ferme en fonotion de la état de la box. Y a deux box ou une seule?
papoo
Messages : 2029
Inscription : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: Contrôler son décodeur Livebox avec Ghome mini

Message par papoo »

l'api de la livebox a semble -t-il changée . je n'arrive pas à utiliser vos scripts pour rebooter la livebox, ni pour connaitre les périphériques connectés. Fonctionnent ils encore chez vous?
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github
mimich25
Messages : 7
Inscription : 03 déc. 2017, 19:10

Re: Contrôler son décodeur Livebox avec Ghome mini

Message par mimich25 »

Désolé papoo je n'ai plus accès à une livebox.
J'ai tout compris ;-)
Edika59
Messages : 1
Inscription : 28 janv. 2019, 17:38

Re: Contrôler son décodeur Livebox avec Ghome mini

Message par Edika59 »

Hello,

J'ai bien suivi le tuto... Mais je bloque...
Je suis sur PC... Et non programmeur...
J'utilise déjà ifttt car j'ai configurer mon pc, là je m'occupe de la livebox et après je ferai mon harmony hub...
Bref je bloque sur les lignes de commandes "sudo" pour les fichiers SH , sur PC j'ai copié ton code dans le bloc note et enregistrer sous le nom et l'extension demandée, c ça ? Pas besoin de les activer sous pc win10?
Merci
mimich25
Messages : 7
Inscription : 03 déc. 2017, 19:10

Re: Contrôler son décodeur Livebox avec Ghome mini

Message par mimich25 »

Je ne suis pas certain que sous windows les fichiers soient les mêmes.
J'en serait même très étonné!
Pour ma part ce tuto a été fait avec domoticz sur raspberry donc sous linux.
N'ayant jamais utilisé DMOTICZ sous windows je suis incapable de t'aider.
Bon courage.
ascalaith
Messages : 1
Inscription : 30 mai 2019, 16:56

Re: Contrôler son décodeur Livebox avec Ghome mini

Message par ascalaith »

Bonjour,
Pour l'affichage du nom de la chaîne, je te propose se code :

Code : Tout sélectionner

 --script_time_etatlivebox.lua
commandArray = {} 
json = (loadfile "/home/domoticz/domoticz/scripts/lua/JSON.lua")()  -- For Linux

---------Capteur de type texte pour afficher l'etat et la chaine de la livebox--------------
idx = '195' 

---------Tableau de correspondance-------------
tableau = {}
 t = {}
 
 s = "192=TF1,4=France2,80=France3,34=Canal+,47=France5,118=M6,111=ARTE,445=C8,119=W9,195=TMC,446=TFX,444=NRJ12,234=LCP,78=France4,481=BFM,226=Cnews,458=Cstart,482=Gulli,160=Franceô,1404=HD1,1401=Léquipe,1403=6ter,1402=Numéro23,1400=RCM,1399=FranceInfo"
 
---------Lecture du json de la livebox-------------
  local config = assert(io.popen('/usr/bin/curl "http://192.168.100.8: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)
	for k, v in string.gmatch(s, "(%w+)=(%w+)") do
		if k == jsonValeur.result.data.playedMediaId then
			chaine = v
	   end
	 end
	
	-- print (chaine)
    livebox = 'Marche'..' sur '..chaine
	-- print(livebox)
    commandArray[#commandArray+1]={['UpdateDevice'] = idx..'|0|'.. tostring(livebox)}
    end
return commandArray
Pour l'utilisation sous Windows, à l'époque je marchain en powershell avec le gestionnaire des tâches windows mais depuis, je suis passé sous linux.

Asca
Répondre