Domotisation de la TV Freebox - nouknouk/ma-domotique GitHub Wiki

Composants:

Le coin TV est composé:

  • d'une TV Sony OLED KD55A1, sous Android 8.0 (comaptible Chromecast), et connexion Ethernet (+WiFi + Bluetooth)
  • d'une Freebox Révolution (boitier TV)
  • d'une prise de courant zwave ON/OFF (coupure du courant, monitoring de la consommation).
  • d'un Google Home mini

La TV donne entière satisfaction tant quand à la qualité (excpetionnelle) de l'image que pour la restitution du son (caisson de basse intégré dans le pied de la TV). La Freebox Révolution dispose de la possibilité d'être contrôlée par le réseau au moyen de requêtes HTTP.

attention à la consommation de courant en veille !!!

  • La TV a une consommation très contenue en veille normale (moins d'un Watt), mais quand on veut pouvoir la piloter (allumage, extinction) via le réseau, il faut activer le mode "démarrage à distance", et à partir de là, la TV consomme près de 20 watts en veille !

  • même chose pour la Freebox TV: sa consommation est de 1.3W en mode veille profonde (appui long sur le bouton power de la télécommande), mais la sortie de mode veille fait un démarrage complet de la box, ce qui prend pas loin de 30 secondes. On peut alors opter pour la veille 'classique' (appui court sur le bouton power de la télécommande), mais sa consommation en veille passe alors à plus de 15 watts en veille !

A titre personnel, je trouve cela totalement inadmissible: on parle d'une consommation des équipements en 'veille' qui dépasse la consommation de courant de mon frigidaire !

TV + Freebox en veille totalisent 40 Watts de consommation 24h/24. C'est près d'un kW de courant par jour, 350kW par an et donc 40€ par an de facture EDF ... pour rien.

réduire la consommation

Une première étape a consisté à ajouter les équipements du secteur via la prise zwave de façon automatisée:

  • au coucher, un appui sur un bouton passe la maison en mode 'nuit': ce scénario ferme les volets, active l'alarme, etc... J'y ai ajouté une règle pour couper la prise alimentant la TV et la Freebox.

  • le lendemain, le capteur de présence du salon détecte les premiers mouvements dans la pièce le matin. Un scénario rétablit alors le courant dans le coin TV, sans besoin d'intervention humaine. Si nous sommes partis en week-end ou en vacances, le coin TV restera débranché.

Cette simple adaptation permet déjà d'économiser environ 8h par jour de consommation en veille, et récupérer un tiers de la consommation inutile des équipements.

La seconde étape consiste à supprimer la Freebox TV (cf. domotisation version 2 ci-après).

lecture/lancement de vidéos (chromecast)

N'importe quel équipement connecté au réseau de la maison peut envoyer un flux vidéo Chromecast sur la TV. Un smartphone sous Android connecté en WiFi peut 'pousser' une vidéo youtube en deux clicss par exemple.

Afin d'intégrer la TV dans mon système domotique et pouvoir lui faire lire automatiquement un flux vidéo, j'utilise la librairie (nodeJs) castv2-client. Elle propose la même fonctionnalité,

pilotage / domotisation

allumage/extinction/contrôle de la TV.

Sony propose plusieurs protocoles pour piloter sa TV par le réseau.

REST API

documentation: https://pro-bravia.sony.net/develop/integrate/rest-api/spec/index.html

Pas testé

IRCC-IP (InfraRed Compatible Control over Internet Protocol)

documentation: https://pro-bravia.sony.net/develop/integrate/ircc-ip/overview/index.html

  • Permet d'émuler les appuis sur les touches de la télécommande.
  • Protocole implémenté dans la librairie NodeJs sony-bravia-remote
  • protocole SOAP (xml) envoie des reqûetes HTTP POST contenant le code de la touche 'appuyée'
  • ne permet pas d'interroger la TV ou de recevoir des notifications d'événements
SSIP (Simple IP control)

documentation: https://pro-bravia.sony.net/develop/integrate/ssip/overview/index.html

  • Plus avancé que IRCC-IP
  • Fonctionne par une connexion TCP sur le port 20060, avec des trames 'brutes' de 24 octets. Exemple: *SAPOWR0000000000000000
  • Permet de recevoir des trames envoyées spontanément par la TV, par exemple quand on allume la TV avec la télécommande, qu'on change le niveau de volume, etc...

contrôle de la freebox

La Freebox Révolution propose une API REST (HTTP) permettant d'interagir à la fois avec le Freebox Serveur et aussi le boitier Freebox Player (TV). Une de ces APIs http://hd1.freebox.fr/pub/remote_control permet d'envoyer des séquences de touches de la télécommande.

commandes vocales

Comme pour d'autres scénarios de la maison, l'assistant Google Home Mini est configuré via IFTTT pour émettre une reqûete HTTP quand une phase commence par certain mots clefs: allume ..., éteins ..., ouvre ..., ferme ....

Le reste de la phrase est convertit en texte et transmis dans le corps de la reqûete que reçoit mon écosystème. Un script décortique la phrase reçue et fait les actions correspondantes (allume le salon, ouvre le volet de la cuisine, ...)

J'ai ajouté le mot clef télévision ... dans IFTTT qui permet de recevoir les reqûetes correspondants et lancer des séquences à la TV (pou l'allumer) puis à la Freebox (allumage, choix de chaîne) en fonction de la phase reçue (exemple: télévision, mets la chaîne france 2)

domotisation version 1

  • La TV est allumée & éteinte grâve au protocole Sony IRCC-IP
  • L'allumage de la Freebox TV et son contrôle sont fait via l'API REST proposée par la Freebox

limites:

Le résultat est fonctionnel, mais il a plusieurs désavantages:

  • cela nécessite que la Freebox TV soit en veille 'non profonde' ; et cela induit donc une consommation de 15Watt 24h/24 supplémentaire

  • Les protocoles (TV et freebox) simulant l'appui sur des touches de la télécommande sont d'une fiabilité relative, car on n'a aucun retour sur les actions effectuées. Par exemple, si on veut allumer la TV sur la chaine x de la Freebox, on ne sait pas si la TV est déjà allumée ou pas, si l'entrée TV est bien positionnée, si les touches ont bien été prises en compte, etc...

  • Impossible de programmer le choix d'un niveau de volume en particulier: on peut 'monter' ou 'descendre' le son, mais le résultat final dépend du niveau de volume de départ.

  • Aucun retour des actions faites par les utilisateurs au moyen de la télécommande.

domotisation version 2 (en cours)

  • Suppression du boitier Freebox TV (donc 15 Watts d'économie 24h/24) et remplacement par une simple antenne TNT (intérieure) branchée en direct sur la TV

  • Remplacement du protocole TV Sony IRCC-IP par le protocole SSIP qui permettra un vrai dialogue dans les deux sens avec la TV

bonus: dahsboard affiché sur la TV

L'écran OLED propose des noirs parfaits, on ne dinstingue pas un écran allumé affichant du noir d'un écran éteint.

Le matin, quand je passe dans le salon avant de me rendre au travail, il devient facile de faire que la TV s'allume toute seule et affiche dans un coin quelques informations pratiques (météo, traffic routier / train, rendez-vous de la journée, rappels, etc...).

Le tout sur un fond noir pour donner l'illusion que la TV est éteinte. C'est une sorte de 'version TV' de ce que proposent les mirroirs magiques:

exemple miroir magique