/ tech

Comment controler sa freebox en HTTP

Un collègue m'a parlé du fait de controler sa Freebox via des requêtes HTTP.
Ce qui est chouette c'est que du coup on peut scripter ça pour l'intégrer à Home Assistant.

Bon ça reste de la théorie je passerai à la pratique dès que j'ai un moment de libre.

Dans l'idée voici la méthode que j'aimerai mettre en place.

Script de commande Freebox

Pour se faire on se crée un fichier bash de cette forme sur le raspberry :

#!/bin/sh

# On allume la freebox

echo -e ""GET /pub/remote_control?code=12345678&key=power HTTP/1.0\r\n\n" | nc -w 10 hd1.freebox.fr 80

# On zappe sur I-Télé

echo -e ""GET /pub/remote_control?code=12345678&key=1&key=6 HTTP/1.0\r\n\n" | nc -w 10 hd1.freebox.fr 80

Analysons le fonctionnement, on se connecte en telnet sur la freebox Player via la commande nc -w 10 hd1.freebox.fr 80, qui permet de rendre interactif le telnet en scriptant.
GET /pub/remote_control?code=12345678&key=power
on utilise la commande remote_control en passant en argument code=(numéro de la telecommande) et key=(touche désirée).

Pour ce qui est des commandes voici la liste avec leur valeur :

"red" // Bouton rouge "green" // Bouton vert "blue" // Bouton bleu "yellow" // Bouton jaune "power" // Bouton Power "list" // Affichage de la liste des chaines "tv" // Bouton tv "1" // Bouton 1 "2" // Bouton 2 "3" // Bouton 3 "4" // Bouton 4 "5" // Bouton 5 "6" // Bouton 6 "7" // Bouton 7 "8" // Bouton 8 "9" // Bouton 9 "back" // Bouton jaune (retour) "0" // Bouton 0 "swap" // Bouton swap "info" // Bouton info "epg" // Bouton epg (fct+) "mail" // Bouton mail "media" // Bouton media (fct+) "help" // Bouton help "options" // Bouton options (fct+) "pip" // Bouton pip "vol_inc" // Bouton volume + "vol_dec" // Bouton volume - "ok" // Bouton ok "up" // Bouton haut "right" // Bouton droite "down" // Bouton bas "left" // Bouton gauche "prgm_inc" //Bouton programme + "prgm_dec" // Bouton programme - "mute" // Bouton sourdine "home" // Bouton Free "rec" // Bouton Rec "bwd" // Bouton << retour arrière "prev" // Bouton |<< précédent "play" // Bouton Lecture / Pause "fwd" // Bouton >> avance rapide "next" // Bouton >>| suivant

Le script étant créé une execution de ce script permet en théorie d'allumer la Freebox et de zapper sur la chaine 16 (chaine info).

Bon pour que ça marche il faudra quand même activer le HDMI-CEC via la freebox pour activer l'arrêt/démarrage de la TV lors de l'allumage de la Freebox.

Ensuite il faudra intégrer ça à Home Assistant.

Intégration à Home Assistant

D'après le site web on declare dans notre fichier de configuration.yaml :

shell_command:
  allumeTV_Infos: .~/.homeassistant/allumeTV.sh

Cela aura pour action de présenter le script allumeTV en tant que service vu par Home assistant (le service dans ce cas se nomme shell_command.allumeTV_Infos).

Automation pour la Freebox

- alias: 'Allumer la TV le matin au réveil et mettre la chaine Infos'
  trigger:
    hours: 6
    minutes: 20
    seconds: 0
  condition:
    platform: state
      entity_id: group.all_devices
      state: 'home'
  action:
    service: shell_command.allumeTV

A tester je corrigerai une fois mis en place.

Nous pouvons également mettre en place le "OK Google met France 5" sur le téléphone, ce sera l'objet d'un nouvel article.

Comment controler sa freebox en HTTP
Share this