Comment contrôlez-vous votre TV Android?

Hello la communauté !

J’ai rechercher le meilleur moyen d’intégrer et d’utiliser l’Android TV de ma télévision Philips The One.

Pour mon utilisation spécifique, je cherche uniquement à controller le power on/off de ma TV et l’Android TV (Netflix, Youtube, Deezer, Disney +, Prime Vidéo) car ma télé n’est pas branché à la TNT et je n’ai pas d’HDMI de branché dessus.

J’ai donc vu et testé pas mal de solution :

De ce que j’ai pu constater, dans mon cas, l’intégration androidtv avec ADB me permet de faire le plus de choses :

  • power on/off
  • contrôler le volume
  • changer de source
  • lancer un programme particulier grâce aux adb_command (mais malheureusement pas de gestion des comptes si l’app se lance du premier coup).

Et vous ? Comment contrôlez-vous votre télé ?

Pour ceux qui utilise une android TV :

  • Qu’elle est votre intégration préféré et pourquoi ?
  • Utiliser-vous les adb_command et lesquelles ?

Pour ceux qui utilise une android TV sur une télévision Philips :

Merci beaucoup pour vos retours !
Lou_Juicy

Type installation : -
Version HA : 110+
Ver. Supervisor : -

J’ai une télé philips par contre avec adb je n’ai pas réussi à la connecter, j’utilise adb pour mes android box, jai fais de script avec les commandes adb.
Pour le moment j’utilise l’intégration philips mais j’arrive pas a allumer la télé ni à l’éteindre je l’utilise pour avoir une retour d’état dans par exemple quand le state est ON j’allume le Subwoofer à travers une automatisation et je switch OFF le mode adaptive lighting(circadian light) parce que les lampes philips que j’ai dans le salon change avec le ambilight.
Pour le custom components si jamais tu y arrives tu me bip :joy:

Bonsoir,

Pour moi android TV et ADB

Salut !

Moi personnellement j’ai une télé Panasonic, je me sers de HA pour l’allumer/éteindre et régler le volume.
En revanche, j’ai aussi une Amazon Fire TV Stick (sous android) donc j’utilise les commandes adb_command

J’ai créé une view pour me faire une sorte de télécommande (sommaire) qui me permet de contrôler certaines actions mais aussi de lancer des applications sur ma télé.

Je te mets un screen de ma télécommande custom :

1 J'aime

Tu as bien passé ta Tv en mode développeur ?

Oui j’ai installé le custom components après avoir récupéré mon username password. Mais j’ai arrêté de l’utiliser car je n’utilise pas les chaines !

Très cool la télécommande !

@manu_67, @pepite et @Gogo pouvez-vous partager vos commandes ADB ? Ça pourrait aider du monde je pense ! :slight_smile:

J’ai pas réussi à la mettre en mode développeur la télé et pourtant j’ai cherché partout lol

Tu peux m’expliquer comment avoir le username et password stp

Je te prépare le package pour les commandes adb

Suite a ta demande @Lou_Juicy, je partage ma carte compète pour ma télécommande :
(J’ai ajouté quelques commentaires pour la lisibilité)

cards:
  - type: custom:roku-card
    entity: media_player.fire_tv
    name: TV remote
    tv: true
# App list
    apps:
      - app: "Canal+"
        image: /local/icons/canal.png
      - app: "Molotov"
        image: /local/icons/molotov.jpeg
      - app: "Netflix"
        image: /local/icons/netflix.png
      - app: "Plex"
        image: /local/icons/plex.png

# UP Button
    up:
      tap_action:
        action: call-service
        service: androidtv.adb_command
        service_data:
          entity_id: media_player.fire_tv
          command: UP
# DOWN Button
    down:
      tap_action:
        action: call-service
        service: androidtv.adb_command
        service_data:
          entity_id: media_player.fire_tv
          command: DOWN
# RIGHT Button
    right:
      tap_action:
        action: call-service
        service: androidtv.adb_command
        service_data:
          entity_id: media_player.fire_tv
          command: RIGHT
# LEFT Button
    left:
      tap_action:
        action: call-service
        service: androidtv.adb_command
        service_data:
          entity_id: media_player.fire_tv
          command: LEFT
# CENTER Button
    select:
      tap_action:
        action: call-service
        service: androidtv.adb_command
        service_data:
          entity_id: media_player.fire_tv
          command: CENTER
# BACK Button
    back:
      tap_action:
        action: call-service
        service: androidtv.adb_command
        service_data:
          entity_id: media_player.fire_tv
          command: BACK
# ON/OFF Button
    power:
      tap_action:
        action: call-service
        service: script.on_off_remote
# HOME Button
    home:
      tap_action:
        action: call-service
        service: androidtv.adb_command
        service_data:
          entity_id: media_player.fire_tv
          command: HOME
# FAST_FORWARD Button
    forward:
      tap_action:
        action: call-service
        service: androidtv.adb_command
        service_data:
          entity_id: media_player.fire_tv
          command: FAST_FORWARD
# REWIND Button
    reverse:
      tap_action:
        action: call-service
        service: androidtv.adb_command
        service_data:
          entity_id: media_player.fire_tv
          command: REWIND
# PLAY/PAUSE Button
    play:
      tap_action:
        action: call-service
        service: script.pause_play_remote
          
# HIDE Button
    info:
      show: false
    volume_up:
      show: false
    volume_down:
      show: false
    volume_mute:
      show: false
icon: 'mdi:remote'
title: Remote

A savoir que pour le mode play/pause et le mode on/off, j’ai utilisé des scripts (ça remonte à longtemps alors je ne sais plus pourquoi je l’ai fait …)
Mais aussi pour les commandes liées au son, je les ai désactivées car je n’ai pas réussi a les faire fonctionner correctement.

Si vous avez des questions n’hésitez pas !

PS: si de votre coté vous utilisez des commandes sympas je suis preneur !

2 J'aime

@Lou_Juicy

voila mon package:

media_player:
  - platform: androidtv
    device_class: androidtv
    name: "Android Box Salon"
    host: !secret android_box_salon
    exclude_unnamed_apps: true
    apps:
      'com.canal.android.canal': "Canal+"
      'com.netflix.mediaclient': "Netflix"
      'com.amazon.avod.thirdpartyclient': "Amazon Video"
      'com.plexapp.android': "Plex"
      'com.google.android.youtube.tv': "Youtube"

script:
### TURN ON ###
  start_android_box_salon:
    sequence:
    - service: androidtv.adb_command
      data:
        entity_id: media_player.android_box_salon
        command: "POWER"

### TURN OFF ###
  stop_android_box_salon:
    sequence:
    - service: androidtv.adb_command
      data:
        entity_id: media_player.android_box_salon
        command: "SLEEP"

### NETFLIX ###
  start_netflix_salon:
    sequence:
    - service: media_player.select_source
      data:
        entity_id: media_player.android_box_salon
        source: 'com.netflix.mediaclient'

  stop_netflix_salon:
    sequence:
    - service: media_player.select_source
      data:
        entity_id: media_player.android_box_salon
        source: '!com.netflix.mediaclient'

### AMAZON VIDEO ###
  start_amazon_salon:
    sequence:
    - service: media_player.select_source
      data:
        entity_id: media_player.android_box_salon
        source: 'com.amazon.avod.thirdpartyclient'

  stop_amazon_salon:
    sequence:
    - service: media_player.select_source
      data:
        entity_id: media_player.android_box_salon
        source: '!com.amazon.avod.thirdpartyclient'

### PLEX ###
  start_plex_salon:
    sequence:
    - service: media_player.select_source
      data:
        entity_id: media_player.android_box_salon
        source: 'com.plexapp.android'

  stop_plex_salon:
    sequence:
    - service: media_player.select_source
      data:
        entity_id: media_player.android_box_salon
        source: '!com.plexapp.android'
        
### CANAL + ###
  start_canal_salon:
    sequence:
    - service: media_player.select_source
      data:
        entity_id: media_player.android_box_salon
        source: 'com.canal.android.canal'

  stop_canal_salon:
    sequence:
    - service: media_player.select_source
      data:
        entity_id: media_player.android_box_salon
        source: '!com.canal.android.canal'

### YOUTUBE ###
  start_youtube_salon:
    sequence:
    - service: media_player.select_source
      data:
        entity_id: media_player.android_box_salon
        source: 'com.google.android.youtube.tv'

  stop_youtube_salon:
    sequence:
    - service: media_player.select_source
      data:
        entity_id: media_player.android_box_salon
        source: '!com.google.android.youtube.tv'

Bonjour,

Je vous partage dès que possible avec plaisir.

Merci pour la carte de la télécommande.

De mémoire, il faut aller dans les paramètres de l’Android TV et cliquer un certains nombre de fois sur la version et ensuite un message de confirmation va apparaitre.

Il faut utiliser les commandes dispo dans le readMe du custom components. Cloner le repo, pour lancer le script python. Si tu n’es pas à l’aise avec ce vocubulaire ou que tu n’as jamais ouvert de terminal, je comprends que ce soit pas simple. Essaye de regarder si il n’y a un tuto en français qui explique étape par étape car c’est vrai que leurs tuto est très sommaire !

Je crois que pour la valeur de la source, tu peux utiliser directement la valeur que tu as mis dans la configuration (Netflix) :

Je suis en train de revoir totalement la gestion de mes média players et je recherche aujourd’hui des commandes ADB un peu plus poussé que les commandes de bases. Voilà ce que j’ai trouvé pour le moment :

Rechercher sur la télé :

sequence:
  - service: androidtv.adb_command
    data_template:
      command: am start -a "android.search.action.GLOBAL_SEARCH" --es query "{{  states('input_text.recherche_tele')}}"
      entity_id: media_player.tele

Lancer South park sur Netflix :


variable: 
  show_id: 81058308
sequence:
  - service: androidtv.adb_command
    data_template:
      command: am start -n com.netflix.ninja/.MainActivity -a android.intent.action.VIEW -d netflix://title/{{ show_id }} -f 0x10000020 -e "amzn_deeplink_data" "{{ show_id }}"
      entity_id: media_player.tele

Tout ça est encore en test ! Testez le avant de l’ajouter :slight_smile:

Le problème c’est que je suis sur Windows et que j’arrive pas à lancer le script requirement.txt
J’ai déjà posé une question sur le forum anglais mais sans réponse, je désespère lentement et pourtant et j’y ai mi du mien.
A mon avis ça coince avec l’installation de pip.

Le problème c’est que je suis sur Windows et que j’arrive pas à lancer le script

pip3 install -r requirements.txt

J’ai déjà posé une question sur le forum anglais mais sans réponse, je désespère lentement et pourtant et j’y ai mi du mien.
A mon avis ça coince avec l’installation de pip.

Ligne 4. J’ai bien suivie les instructions mais à la fin quand je fais:

c:\Python27\Scripts>pip freeze

J’ai un message d’erreur

De mémoire, cette commande fait simplement toutes les installations à la suite.
Tu peux très bien ouvrir ce fichier et faire les installations manuellement une par une…

Si jamais t’as le temps un soir cette semaine on peut voir ça en privé je comprend pas ce que tu veux dire

c’est quoi exactement le problème ?
T’es avec HA sous Windows c’est ça ?

Le problème est que le dois exécuter un script python ou pip bref une galère sur un Windows, une fois celui là exécuter je vais pouvoir récupéré l’user et le password de ma
tele puis avec un custom components qui est présent dans HACS je vais pouvoir intégré ma télé. Mais je suis une merguez en Linux et tous ça…

si tu galères avec Python sous Windows, essaie d’installer Anaconda3 Individual : tu auras Python 3 et pip. Ensuite, suit les instructions.

1 J'aime

Merci @Franck31je vais regarder ça demain ça serait cool si ça fonctionne

Yo tout le monde,

Merci @Gogo pour ton partage de card. Grâce à toi, j’ai découvert la custom card roku. Je l’ai donc installé et customisé pour mes propres besoins. Je vous partage cela ci-dessous :

J’ai une Android TV de la marque TCL, je peux désormais la contrôler avec une télécommande virtuelle dans HA basée sur les commandes ADB (utilisation du service androidtv.adb_command) et quelques services de contrôle de média du genre media_player.media_play_pause.


Tout les boutons fonctionnent, par contre j’ai jugé plus utile pour mes besoins d’avoir un bouton « source » (pour sélectionner un port HDMI). Du coup, j’ai modifié la commande du bouton « étoile » de la télécommande virtuelle pour qu’elle déclenche le sélecteur de source !
Enfin en dessous de la custom card roku, j’ai mis une custom card mini media player pour avoir un visuel sur ce qui s’affiche actuellement sur mon Android TV.

Voilà le code l’interface ci-dessous :

  - icon: 'mdi:remote'
    title: Télécommande
    badges: []
    cards:
      - type: markdown
        content: '**Télécommande Android TV**'
        theme: amoled
      - type: 'custom:roku-card'
        entity: media_player.android_tv
        tv: true
        icon: 'mdi:remote'
        title: Télécommande virtuelle
        apps:
          - app: Twitch App
            image: 'https://votre.duckdns.org/local/media/images/Twitch.png'
          - app: Molotov
            image: 'https://votre.duckdns.org/local/media/images/Molotov.png'
          - app: Netflix
            image: 'https://votre.duckdns.org/local/media/images/Netflix.png'
          - app: YouTube
            image: 'https://votre.duckdns.org/local/media/images/Youtube.png'
        info:
          tap_action:
            action: call-service
            service: androidtv.adb_command
            service_data:
              entity_id: media_player.android_tv
              command: INPUT
        up:
          tap_action:
            action: call-service
            service: androidtv.adb_command
            service_data:
              entity_id: media_player.android_tv
              command: UP
        down:
          tap_action:
            action: call-service
            service: androidtv.adb_command
            service_data:
              entity_id: media_player.android_tv
              command: DOWN
        right:
          tap_action:
            action: call-service
            service: androidtv.adb_command
            service_data:
              entity_id: media_player.android_tv
              command: RIGHT
        left:
          tap_action:
            action: call-service
            service: androidtv.adb_command
            service_data:
              entity_id: media_player.android_tv
              command: LEFT
        select:
          tap_action:
            action: call-service
            service: androidtv.adb_command
            service_data:
              entity_id: media_player.android_tv
              command: CENTER
        back:
          tap_action:
            action: call-service
            service: androidtv.adb_command
            service_data:
              entity_id: media_player.android_tv
              command: BACK
        power:
          tap_action:
            action: call-service
            service: androidtv.adb_command
            service_data:
              entity_id: media_player.android_tv
              command: SLEEP
        home:
          tap_action:
            action: call-service
            service: androidtv.adb_command
            service_data:
              entity_id: media_player.android_tv
              command: HOME
        forward:
          tap_action:
            action: call-service
            service: androidtv.adb_command
            service_data:
              entity_id: media_player.android_tv
              command: FAST_FORWARD
        reverse:
          tap_action:
            action: call-service
            service: androidtv.adb_command
            service_data:
              entity_id: media_player.android_tv
              command: REWIND
        play:
          tap_action:
            action: call-service
            service: media_player.media_play_pause
            service_data:
              entity_id: media_player.android_tv
        volume_up:
          tap_action:
            action: call-service
            service: androidtv.adb_command
            service_data:
              entity_id: media_player.android_tv
              command: VOLUME_UP
        volume_down:
          tap_action:
            action: call-service
            service: androidtv.adb_command
            service_data:
              entity_id: media_player.android_tv
              command: VOLUME_DOWN
        volume_mute:
          tap_action:
            action: call-service
            service: androidtv.adb_command
            service_data:
              entity_id: media_player.android_tv
              command: MUTE
      - type: markdown
        content: '**Aperçu écran TV**'
        theme: amoled
      - type: 'custom:mini-media-player'
        entity: media_player.android_tv
        icon: 'mdi:television-play'
        name: Android TV
        hide:
          icon: true
          info: true
          source: true
          power: true
          controls: true
          name: true
          volume: true
          sound_mode: true
        artwork: full-cover

A+

1 J'aime

Merci pour le partage.

N’hésite pas à partager ton code malgré tout :+1:(edites ton post)